@acedatacloud/nexior 3.318.6 → 3.318.7

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 (151) hide show
  1. package/dist/assets/{ApiCodeButton-Cdz-Fy3S.js → ApiCodeButton-WF_-U1A1.js} +1 -1
  2. package/dist/assets/{Artifacts-BImBqI6A.js → Artifacts-BJuA2Ibd.js} +1 -1
  3. package/dist/assets/{AskUserQuestionCard-C2JnGaxW.js → AskUserQuestionCard-Qi_DuDNL.js} +1 -1
  4. package/dist/assets/{Auth-Dzjlaxkg.js → Auth-IHwtaeqi.js} +1 -1
  5. package/dist/assets/{Bare-BPMYTI45.js → Bare-BPZYY1Xq.js} +1 -1
  6. package/dist/assets/{BotPlaceholder-60_H2JxQ.js → BotPlaceholder-BU4a0XLq.js} +1 -1
  7. package/dist/assets/{BottomFooter-C69AsjsW.js → BottomFooter-DY3eyfcG.js} +1 -1
  8. package/dist/assets/{Callback-DkeSGsX-.js → Callback-Btt65S_U.js} +1 -1
  9. package/dist/assets/{CodeSnippet-BO6HTf2g.js → CodeSnippet-ica94L3y.js} +1 -1
  10. package/dist/assets/{Console-CLxRepSL.js → Console-DiZQcY3g.js} +1 -1
  11. package/dist/assets/{Consumption-C6c-vSv0.js → Consumption-B2gTsRAP.js} +1 -1
  12. package/dist/assets/{Conversation-gjCMEybz.js → Conversation-C5ufdabm.js} +1 -1
  13. package/dist/assets/{Conversation-C8vf4X_M.js → Conversation-hHrmJR3C.js} +1 -1
  14. package/dist/assets/{CopyToClipboard-BPv_hKe6.js → CopyToClipboard-CdGWA3lV.js} +1 -1
  15. package/dist/assets/{Detail-CsXy5uwE.js → Detail-pDe65zRE.js} +2 -2
  16. package/dist/assets/{Extra-C6dHZNTg.js → Extra-p0NTSwXZ.js} +1 -1
  17. package/dist/assets/{FilePreview-BNce0rD6.js → FilePreview--fPsrQcg.js} +1 -1
  18. package/dist/assets/{Hailuo-BhiYWRfG.js → Hailuo-CVqeGU-4.js} +1 -1
  19. package/dist/assets/{History-BAKfOWTG.js → History-C0QvSJ18.js} +1 -1
  20. package/dist/assets/{ImagePreview-DiItKL-y.js → ImagePreview-8jJNA6v3.js} +1 -1
  21. package/dist/assets/{ImageWrapper-CxRidcAh.js → ImageWrapper-BF74hGuQ.js} +1 -1
  22. package/dist/assets/{Index-DANxC1Zb.js → Index-5Rrfw-vP.js} +1 -1
  23. package/dist/assets/{Index-D9wtwCUj.js → Index-B-3lMHHe.js} +1 -1
  24. package/dist/assets/{Index-D6ZB82Kt.js → Index-B6PzpIkT.js} +1 -1
  25. package/dist/assets/{Index-B0TkfH1N.js → Index-B7-2IhUF.js} +1 -1
  26. package/dist/assets/{Index-51D-2SQS.js → Index-B8mmAOjF.js} +1 -1
  27. package/dist/assets/{Index-25HtaL2Q.js → Index-BTAv3pQ-.js} +1 -1
  28. package/dist/assets/{Index-DSmP-t5T.js → Index-BTwKM5NU.js} +1 -1
  29. package/dist/assets/{Index-D64Dw4Ob.js → Index-BVA6ejN4.js} +1 -1
  30. package/dist/assets/{Index-BQOhP75-.js → Index-BYPHtn-T.js} +1 -1
  31. package/dist/assets/{Index-D-hz0fJB.js → Index-Bb-7m17t.js} +1 -1
  32. package/dist/assets/{Index-BLMiXSJ-.js → Index-BkXlcoCe.js} +1 -1
  33. package/dist/assets/{Index-BUczs_C9.js → Index-Bn1gz0JH.js} +1 -1
  34. package/dist/assets/{Index-CQhaxDc5.js → Index-Bxk7USXS.js} +1 -1
  35. package/dist/assets/{Index-BZhyOGJE.js → Index-C-XGtgZ9.js} +1 -1
  36. package/dist/assets/{Index-D_EvoZ9u.css → Index-CA7cJJ3U.css} +1 -1
  37. package/dist/assets/{Index-DSr6ENSK.js → Index-CMZfBMn8.js} +1 -1
  38. package/dist/assets/{Index-CTup-78i.js → Index-CRrfzBgG.js} +1 -1
  39. package/dist/assets/{Index-BeUs6yIg.js → Index-CWNapjip.js} +1 -1
  40. package/dist/assets/{Index-CxVOj4Z4.js → Index-CoEB7A3T.js} +1 -1
  41. package/dist/assets/{Index-czH0QaAg.js → Index-DGebSLQB.js} +1 -1
  42. package/dist/assets/{Index-Ck4pfae7.js → Index-Dl6N0Qho.js} +1 -1
  43. package/dist/assets/{Index-D1OE9OED.js → Index-DlUv1xiC.js} +1 -1
  44. package/dist/assets/{Index-DhZxvIs0.js → Index-Dm0EJorz.js} +1 -1
  45. package/dist/assets/{Index-DdLl12bK.js → Index-Dt20_8CD.js} +1 -1
  46. package/dist/assets/{Index-B21eKFVR.js → Index-FBRgeKJa.js} +1 -1
  47. package/dist/assets/{Index-DfCvXx28.js → Index-ZF4u8nZX.js} +1 -1
  48. package/dist/assets/{Index-BqJ9csRC.js → Index-kLVRnI_F.js} +1 -1
  49. package/dist/assets/{Index-J_r-y6zM.js → Index-kqYWhuFx.js} +1 -1
  50. package/dist/assets/Index-odsWj4gY.js +1 -0
  51. package/dist/assets/{Invitees-B3rU3nQS.js → Invitees-BxKU6H8S.js} +1 -1
  52. package/dist/assets/{List-CCS5887g.js → List-BGWhworY.js} +1 -1
  53. package/dist/assets/{List-CmQcVv3m.js → List-BSahF1YS.js} +1 -1
  54. package/dist/assets/{List-XkMfd3QO.js → List-DmuBxflh.js} +1 -1
  55. package/dist/assets/{LocalTools-BJAMtJn7.js → LocalTools-Bt74g9N0.js} +1 -1
  56. package/dist/assets/{LocalTools-DuDjwFNl.js → LocalTools-DSaGPY01.js} +1 -1
  57. package/dist/assets/{Main-CW87MEHM.js → Main-CI1xkhqc.js} +1 -1
  58. package/dist/assets/{Message-CWbPXkhr.js → Message-DZ2lB0Vx.js} +1 -1
  59. package/dist/assets/{Model-Cr1HDNsw.js → Model-B-zSAdfC.js} +1 -1
  60. package/dist/assets/{Navigator-BO8oejW1.js → Navigator-C-zX58Pb.js} +3 -3
  61. package/dist/assets/{NoTasks-BUMSVlPF.js → NoTasks-C3tcHEtF.js} +1 -1
  62. package/dist/assets/{NotFound-FWk-RhOI.js → NotFound-Czd24iIv.js} +1 -1
  63. package/dist/assets/{Pagination-BMKyrsOm.js → Pagination-chMaME-P.js} +1 -1
  64. package/dist/assets/{Pay-W6gY3YR6.js → Pay-Cox3QdNV.js} +1 -1
  65. package/dist/assets/{Player-Dueh_pOa.js → Player-Cv4vJuad.js} +1 -1
  66. package/dist/assets/{PromptTextarea-Dfu-o_C6.js → PromptTextarea-66psG0Ji.js} +1 -1
  67. package/dist/assets/{RealtimeCall-Lh-jOAGd.js → RealtimeCall-he2KZoic.js} +1 -1
  68. package/dist/assets/{ScheduledTasks-C4TnBpsV.js → ScheduledTasks-5XOH7usN.js} +1 -1
  69. package/dist/assets/{Status-Dk-vw_fo.js → Status-BdUtKKUD.js} +1 -1
  70. package/dist/assets/{Subscribe-DEq5Ziv4.js → Subscribe-IEBf_6o4.js} +1 -1
  71. package/dist/assets/{TabSwitcher-CIK5WRf5.js → TabSwitcher-BW7vqtMl.js} +1 -1
  72. package/dist/assets/{Tts-CaiUH0EQ.js → Tts-BTpAV7uV.js} +1 -1
  73. package/dist/assets/{VideoPlayer-DR0GK7w6.js → VideoPlayer-NjLw9ykt.js} +1 -1
  74. package/dist/assets/{VideoPreview-eYaQopZ6.js → VideoPreview-B8FUS_c5.js} +1 -1
  75. package/dist/assets/{alert-Opv77n_G.js → alert-BDvIuUu3.js} +1 -1
  76. package/dist/assets/{avatar-BAVZqEOx.js → avatar-yhJ0eKlG.js} +1 -1
  77. package/dist/assets/{basic-T-z6rKsv.js → basic-D8QqTpQW.js} +1 -1
  78. package/dist/assets/{chat-BriRY4Le.js → chat-6oNmsNfD.js} +1 -1
  79. package/dist/assets/{codingBridge-BXnPnZR_.js → codingBridge-D771TbWD.js} +1 -1
  80. package/dist/assets/{codingBridgeNotify-C6xU4DBK.js → codingBridgeNotify-pIQNli04.js} +2 -2
  81. package/dist/assets/{collapse-c2sK1KTq.js → collapse-C-qULowS.js} +1 -1
  82. package/dist/assets/constants-Bs-70rQx.js +1 -0
  83. package/dist/assets/{createTaskActions-BOdoxpV8.js → createTaskActions-Da73ug9a.js} +1 -1
  84. package/dist/assets/{date-picker-CtcBG4yB.js → date-picker-zEEUWoJD.js} +1 -1
  85. package/dist/assets/{digitalhuman-BzspKP2J.js → digitalhuman-B69MLLAr.js} +1 -1
  86. package/dist/assets/{drawer-VR-pZKxs.js → drawer-B9vlF9-6.js} +1 -1
  87. package/dist/assets/{dropdown-p35jSqoK.js → dropdown-CsAasnhQ.js} +1 -1
  88. package/dist/assets/{dropdown-SyKEnRGq.js → dropdown-DO-f0tMd.js} +1 -1
  89. package/dist/assets/{esm-Bcu9rj2X.js → esm-1q07ali_.js} +1 -1
  90. package/dist/assets/{esm-Cf3y_sOc.js → esm-8ErrqOJ9.js} +1 -1
  91. package/dist/assets/{esm-OY_UWqNA.js → esm-COYGa9F5.js} +2 -2
  92. package/dist/assets/esm-DSLXJo7A.js +1 -0
  93. package/dist/assets/{esm-BFnMDv4b.js → esm-Dv2l1uq9.js} +3 -3
  94. package/dist/assets/{esm-C_Jf-Gza.js → esm-OzpD8pHa.js} +1 -1
  95. package/dist/assets/{esm-C4UJ3Iov.js → esm-QRXEX6Zg.js} +2 -2
  96. package/dist/assets/{fish-CNJAj25U.js → fish-CRiKi-L5.js} +1 -1
  97. package/dist/assets/{flux-zJUFsvuR.js → flux-5cAbmOQY.js} +1 -1
  98. package/dist/assets/{grokvideo-B4li7ObW.js → grokvideo-COILDSeT.js} +1 -1
  99. package/dist/assets/{hailuo-BojaMJ7H.js → hailuo-DCfAkLJG.js} +1 -1
  100. package/dist/assets/{headshots-BrWIJjDQ.js → headshots-D09bGBJX.js} +1 -1
  101. package/dist/assets/{i18n-DznFwuOo.js → i18n-B1v8pkqA.js} +1 -1
  102. package/dist/assets/{image-D2Uc31X4.js → image-DsbwPTmm.js} +1 -1
  103. package/dist/assets/{index-DPT0LY_a.js → index-BDvTozfe.js} +4 -4
  104. package/dist/assets/{index.browser.esm-BVPh7rJF.js → index.browser.esm-taL9mIxG.js} +1 -1
  105. package/dist/assets/{index.es-BF0roIeI.js → index.es-B8y6GOsn.js} +1 -1
  106. package/dist/assets/{input-number-CjZlVSMZ.js → input-number-Co-ZG8zL.js} +1 -1
  107. package/dist/assets/{kling-NdcJDIMv.js → kling-DWi0wCKE.js} +1 -1
  108. package/dist/assets/{luma-D2qRDbRW.js → luma-CGUUM-Ta.js} +1 -1
  109. package/dist/assets/{maestro-BR0_32A8.js → maestro-Br5yaBFy.js} +1 -1
  110. package/dist/assets/{maestro-S1f6xymm.js → maestro-By4YajaZ.js} +1 -1
  111. package/dist/assets/{maestro-CQTXWsL-.js → maestro-DZHDJXP9.js} +1 -1
  112. package/dist/assets/{midjourney-xrMjHyy7.js → midjourney-DgjZEOZ3.js} +1 -1
  113. package/dist/assets/{mobileLocalExec-C-BqE-A8.js → mobileLocalExec-6yMCCAj6.js} +2 -2
  114. package/dist/assets/{nanobanana-B4CPs-DV.js → nanobanana-DNrdLCBS.js} +1 -1
  115. package/dist/assets/{openaiimage-0MCEvIOF.js → openaiimage-BYGPf0wj.js} +1 -1
  116. package/dist/assets/{pagination-CUnmIqY0.js → pagination-BNew-8XN.js} +1 -1
  117. package/dist/assets/{pika-B02PS2SS.js → pika-PLLq1RTW.js} +1 -1
  118. package/dist/assets/{pixverse-hGS5yg2C.js → pixverse-IOCk7a01.js} +1 -1
  119. package/dist/assets/{popover-DDUaOsYb.js → popover-DT7zNo3z.js} +1 -1
  120. package/dist/assets/{producer-BptOe2yo.js → producer-C3TkrgUA.js} +1 -1
  121. package/dist/assets/{qrart-xFFmORGv.js → qrart-DajQO3oi.js} +1 -1
  122. package/dist/assets/{realtime-DopmSstM.js → realtime-B43C_a2D.js} +1 -1
  123. package/dist/assets/{row-BObmfvTI.js → row-GPnV-Mb1.js} +1 -1
  124. package/dist/assets/{seedance-BDeajC--.js → seedance-BO4A9Bw_.js} +1 -1
  125. package/dist/assets/{seedream-Ct5XCthv.js → seedream-CFXJbScI.js} +1 -1
  126. package/dist/assets/{select-leWGa1qy.js → select-BMkecWJ3.js} +1 -1
  127. package/dist/assets/{serp-C2YZ4etl.js → serp-7VJtgbbD.js} +1 -1
  128. package/dist/assets/{slider-CtUWZeFa.js → slider-C8QFYGMv.js} +1 -1
  129. package/dist/assets/{solana-wallets-C1kyG7zs.js → solana-wallets-MyNvL3wy.js} +2 -2
  130. package/dist/assets/{solana-wallets-vue-XcfIGgDN.js → solana-wallets-vue-vOsKpkZE.js} +1 -1
  131. package/dist/assets/{sora-BPV1PBfs.js → sora-CLQRLFhs.js} +1 -1
  132. package/dist/assets/{suno-CRWPzAz6.js → suno-CZ50MDNU.js} +1 -1
  133. package/dist/assets/{switch-DJBjdzV-.js → switch-D9jGUBnB.js} +1 -1
  134. package/dist/assets/{table-fiT7UBle.js → table-Z4ix7Txh.js} +1 -1
  135. package/dist/assets/{tabs-CL1IKHZm.js → tabs-DjGinRJL.js} +1 -1
  136. package/dist/assets/{time-picker-Bnhiky3Z.js → time-picker-BZMTrkSW.js} +1 -1
  137. package/dist/assets/{tooltip-Bg-5iX0y.js → tooltip-DW1XZtXG.js} +1 -1
  138. package/dist/assets/{upload-DFnNkCSJ.js → upload-BVKjQKBq.js} +1 -1
  139. package/dist/assets/{veo-nz1x28ar.js → veo-B4DXqFCr.js} +1 -1
  140. package/dist/assets/{wan-D7W0TaoT.js → wan-DQYbgMO7.js} +1 -1
  141. package/dist/assets/{web-gjjT5EV1.js → web-B89HYN77.js} +1 -1
  142. package/dist/assets/{web-CPHEGuLs.js → web-Camq_Kr6.js} +1 -1
  143. package/dist/assets/{web-K2lh7xuM.js → web-CbCElfem.js} +1 -1
  144. package/dist/assets/{web-CYZZdbwr.js → web-D1lM6mmb.js} +1 -1
  145. package/dist/assets/{web-BLsW0wnr.js → web-lR2PaDWQ.js} +1 -1
  146. package/dist/assets/{webextrator-CJ7tIg_O.js → webextrator-DMsh9lCW.js} +1 -1
  147. package/dist/index.html +3 -3
  148. package/package.json +1 -1
  149. package/dist/assets/Index-CI-c4tuB.js +0 -1
  150. package/dist/assets/constants-BqvGY8Qp.js +0 -1
  151. package/dist/assets/esm-DDubVLqZ.js +0 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,I as r,N as i,O as a,P as o,Q as s,S as c,dt as l,et as u,ft as d,k as f,nt as p,tt as m,v as h}from"./vendor-chart-kBsXB1rh.js";import{r as g,t as _}from"./select-leWGa1qy.js";import{t as v}from"./upload-DFnNkCSJ.js";import{t as y}from"./image-D2Uc31X4.js";import{t as b}from"./alert-Opv77n_G.js";import{n as x,r as S}from"./radio-Ct6y4mt7.js";import{t as C}from"./drawer-VR-pZKxs.js";import{t as w}from"./progress-Cq9EP8XU.js";import{_r as T,cr as E,dr as D,hr as ee,lr as te,mr as O,ur as k}from"./constants-BqvGY8Qp.js";import{A,An as j,Kt as ne,Vr as M,Wr as N,en as P,fi as F,ti as I,tr as L,xi as R}from"./index-DPT0LY_a.js";import{t as z}from"./index.es-BF0roIeI.js";import{t as B}from"./CopyToClipboard-BPv_hKe6.js";import{n as V}from"./taskDrawerMixin-CfysS2FH.js";import{t as H}from"./Consumption-C6c-vSv0.js";import{i as U,n as W,t as G}from"./pagination-CUnmIqY0.js";import{t as K}from"./VideoPlayer-DR0GK7w6.js";import{t as q}from"./ApiCodeButton-Cdz-Fy3S.js";import{t as J}from"./BotPlaceholder-60_H2JxQ.js";import{t as Y}from"./NoTasks-BUMSVlPF.js";var X=r({name:`LayoutDigitalHuman`,components:{ElDrawer:C,ElButton:F,FontAwesomeIcon:z},mixins:[V]}),Z={class:`main flex flex-row flex-1`},re={class:`config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ie={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ae(n,r,i,a,c,u){let f=p(`font-awesome-icon`),g=p(`el-button`),_=p(`el-drawer`);return s(),e(`div`,Z,[t(`div`,re,[m(n.$slots,`config`,{},void 0,!0)]),t(`div`,ie,[m(n.$slots,`result`,{},void 0,!0)]),d(o(g,{circle:``,class:`menu`,onClick:r[0]||=e=>n.drawer=!0},{default:l(()=>[o(f,{icon:`fa-solid fa-user`})]),_:1},512),[[h,!n.tasksEmpty]]),o(_,{modelValue:n.drawer,"onUpdate:modelValue":r[1]||=e=>n.drawer=e,direction:`ltr`,"with-header":!1,size:`350px`},{default:l(()=>[m(n.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var oe=A(X,[[`render`,ae],[`__scopeId`,`data-v-b03e40b3`]]),se=r({name:`DigitalHumanFileInput`,components:{ElUpload:v,ElButton:F,FontAwesomeIcon:z},props:{accept:{type:String,default:``},buttonText:{type:String,default:``},icon:{type:String,default:`fa-solid fa-upload`}},emits:[`change`],data(){return{fileList:[],uploadUrl:N()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}}},methods:{onExceed(e){let t=this.$refs.uploader;t?.clearFiles();let n=e[0];n&&(t?.handleStart?.(n),t?.submit?.())},onError(){I.error(this.$t(`digitalhuman.message.uploadError`))},onChange(){let e=this.fileList?.[0]?.response?.file_url;this.$emit(`change`,e)}}});function ce(t,r,a,c,u,d){let f=p(`font-awesome-icon`),m=p(`el-button`),h=p(`el-upload`);return s(),e(`div`,null,[o(h,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":r[0]||=e=>t.fileList=e,accept:t.accept,name:`file`,class:`w-full`,limit:1,action:t.uploadUrl,headers:t.headers,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onChange,"on-remove":t.onChange},{default:l(()=>[o(m,{size:`small`,round:``},{default:l(()=>[o(f,{icon:t.icon,class:`mr-1`},null,8,[`icon`]),i(` `+n(t.buttonText),1)]),_:1})]),_:1},8,[`file-list`,`accept`,`action`,`headers`,`on-exceed`,`on-error`,`on-success`,`on-remove`])])}var Q=A(se,[[`render`,ce]]),le=3e3,ue=60,de=r({name:`VoiceClone`,components:{ElButton:F,ElSelect:g,ElOption:_,ElAlert:b,FileInput:Q,FontAwesomeIcon:z},data(){return{sampleUrl:void 0,lang:`zh`,cloning:!1,destroyed:!1,runId:0,DIGITALHUMAN_ALLOWED_LANGS:te,DIGITALHUMAN_AUDIO_ACCEPT:D}},computed:{credentialToken(){return this.$store.state.digitalhuman?.credential?.token},voiceId(){return this.$store.state.digitalhuman?.config?.voice_id}},watch:{lang(){this.invalidate()}},beforeUnmount(){this.destroyed=!0,this.runId++},methods:{onSampleChange(e){this.sampleUrl=e,this.invalidate()},invalidate(){this.runId++,this.cloning=!1,this.voiceId&&this.setVoiceId(void 0)},isStale(e){return this.destroyed||e!==this.runId},setVoiceId(e){this.$store.commit(`digitalhuman/setConfig`,{...this.$store.state.digitalhuman?.config,voice_id:e})},sleep(e){return new Promise(t=>setTimeout(t,e))},async onClone(){let e=this.credentialToken;if(!this.sampleUrl||!e)return;let t=++this.runId;this.cloning=!0,this.setVoiceId(void 0);try{let{data:n}=await j.cloneVoice({audio_url:this.sampleUrl,lang:this.lang},{token:e});if(this.isStale(t))return;if(n?.voice_id){this.onCloned(n.voice_id);return}if(n?.task_id)await this.pollVoice(n.task_id,e,t);else throw Error(`no task`)}catch{this.isStale(t)||I.error(this.$t(`digitalhuman.message.voiceCloneFailed`))}finally{this.isStale(t)||(this.cloning=!1)}},async pollVoice(e,t,n){for(let r=0;r<ue;r++){if(this.isStale(n)||(await this.sleep(le),this.isStale(n)))return;let{data:r}=await j.pollTask(e,{token:t});if(this.isStale(n))return;if(r?.voice_id){this.onCloned(r.voice_id);return}if(r?.state===`failed`)throw Error(`clone failed`)}throw Error(`timeout`)},onCloned(e){this.setVoiceId(e),I.success(this.$t(`digitalhuman.message.voiceCloneSuccess`))}}}),fe={class:`voice-clone`},pe={class:`text-xs text-[var(--el-text-color-secondary)] mb-2`},me={class:`flex flex-row items-center gap-2 mb-2`},he={class:`text-xs mb-0`};function ge(r,d,m,h,g,_){let v=p(`file-input`),y=p(`el-option`),b=p(`el-select`),x=p(`font-awesome-icon`),S=p(`el-button`),C=p(`el-alert`);return s(),e(`div`,fe,[t(`p`,pe,n(r.$t(`digitalhuman.description.voiceClone`)),1),t(`div`,me,[o(v,{accept:r.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadSample`),icon:`fa-solid fa-microphone`,onChange:r.onSampleChange},null,8,[`accept`,`button-text`,`onChange`]),o(b,{modelValue:r.lang,"onUpdate:modelValue":d[0]||=e=>r.lang=e,size:`small`,class:`!w-[90px]`},{default:l(()=>[(s(!0),e(c,null,u(r.DIGITALHUMAN_ALLOWED_LANGS,e=>(s(),a(y,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),o(S,{size:`small`,type:`primary`,round:``,loading:r.cloning,disabled:!r.sampleUrl||r.cloning,onClick:r.onClone},{default:l(()=>[o(x,{icon:`fa-solid fa-wand-magic-sparkles`,class:`mr-1`}),i(` `+n(r.cloning?r.$t(`digitalhuman.button.cloning`):r.$t(`digitalhuman.button.clone`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),r.voiceId?(s(),a(C,{key:0,closable:!1,type:`success`,class:`mt-2`},{default:l(()=>[t(`p`,he,[o(x,{icon:`fa-solid fa-check`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.voiceReady`))+`: `+n(r.voiceId),1)])]),_:1})):f(``,!0)])}var _e=r({name:`ConfigPanel`,components:{ElButton:F,ElInput:R,ElRadioGroup:S,ElRadioButton:x,Consumption:H,InfoIcon:U,FileInput:Q,VoiceClone:A(de,[[`render`,ge]]),FontAwesomeIcon:z},emits:[`generate`],data(){return{faceMode:`video`,voiceMode:`audio`,DIGITALHUMAN_ALLOWED_ENGINES:E,DIGITALHUMAN_ALLOWED_RESOLUTIONS:k,DIGITALHUMAN_VIDEO_ACCEPT:T,DIGITALHUMAN_IMAGE_ACCEPT:O,DIGITALHUMAN_AUDIO_ACCEPT:D}},computed:{config(){return this.$store.state.digitalhuman?.config},service(){return this.$store.state.digitalhuman?.service},consumption(){return ne(this.config,this.service?.cost)},canGenerate(){let e=this.faceMode===`video`?!!this.config?.video_url:!!this.config?.image_url,t=this.voiceMode===`audio`?!!this.config?.audio_url:!!this.config?.text?.trim()&&!!this.config?.voice_id;return e&&t},text:{get(){return this.config?.text},set(e){this.update({text:e})}},engine:{get(){return this.config?.engine},set(e){this.update({engine:e})}},resolution:{get(){return this.config?.resolution},set(e){this.update({resolution:e})}}},mounted(){this.config?.image_url&&!this.config?.video_url&&(this.faceMode=`photo`),(this.config?.text||this.config?.voice_id)&&(this.voiceMode=`text`),this.update({engine:this.config?.engine??`latentsync`,resolution:this.config?.resolution??`720p`})},methods:{update(e){this.$store.commit(`digitalhuman/setConfig`,{...this.config,...e})},onFaceModeChange(e){this.update(e===`video`?{image_url:void 0}:{video_url:void 0})},onVoiceModeChange(e){this.update(e===`audio`?{text:void 0,voice_id:void 0}:{audio_url:void 0})},onFaceVideoChange(e){this.update({video_url:e})},onFacePhotoChange(e){this.update({image_url:e})},onAudioChange(e){this.update({audio_url:e})},onGenerate(){let e=this.config||{},t={engine:e.engine,resolution:e.resolution};this.faceMode===`video`?t.video_url=e.video_url:t.image_url=e.image_url,this.voiceMode===`audio`?t.audio_url=e.audio_url:(t.text=e.text,t.voice_id=e.voice_id),this.$emit(`generate`,t)}}}),ve={class:`flex flex-col h-full`},ye={class:`flex-1 overflow-y-auto p-5`},be={class:`field-block mb-5`},xe={class:`field-head`},Se={class:`field-title font-bold`},Ce={class:`field-block mb-5`},we={class:`field-head`},Te={class:`field-title font-bold`},Ee={class:`field-block mb-5`},De={class:`field-head`},Oe={class:`field-title font-bold`},ke={class:`field-block`},Ae={class:`field-head`},je={class:`field-title font-bold`},Me={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ne(r,d,f,m,h,g){let _=p(`info-icon`),v=p(`el-radio-button`),y=p(`el-radio-group`),b=p(`file-input`),x=p(`el-input`),S=p(`voice-clone`),C=p(`consumption`),w=p(`font-awesome-icon`),T=p(`el-button`);return s(),e(`div`,ve,[t(`div`,ye,[t(`div`,be,[t(`div`,xe,[t(`h2`,Se,n(r.$t(`digitalhuman.name.face`)),1),o(_,{content:r.$t(`digitalhuman.description.face`),class:`ml-1`},null,8,[`content`])]),o(y,{modelValue:r.faceMode,"onUpdate:modelValue":d[0]||=e=>r.faceMode=e,class:`w-full mb-2`,onChange:r.onFaceModeChange},{default:l(()=>[o(v,{value:`video`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.faceVideo`)),1)]),_:1}),o(v,{value:`photo`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.facePhoto`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),r.faceMode===`video`?(s(),a(b,{key:0,accept:r.DIGITALHUMAN_VIDEO_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadVideo`),icon:`fa-solid fa-film`,onChange:r.onFaceVideoChange},null,8,[`accept`,`button-text`,`onChange`])):(s(),a(b,{key:1,accept:r.DIGITALHUMAN_IMAGE_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadPhoto`),icon:`fa-solid fa-image`,onChange:r.onFacePhotoChange},null,8,[`accept`,`button-text`,`onChange`]))]),t(`div`,Ce,[t(`div`,we,[t(`h2`,Te,n(r.$t(`digitalhuman.name.voice`)),1)]),o(y,{modelValue:r.voiceMode,"onUpdate:modelValue":d[1]||=e=>r.voiceMode=e,class:`w-full mb-2`,onChange:r.onVoiceModeChange},{default:l(()=>[o(v,{value:`audio`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.voiceAudio`)),1)]),_:1}),o(v,{value:`text`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.voiceText`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),r.voiceMode===`audio`?(s(),a(b,{key:0,accept:r.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadAudio`),icon:`fa-solid fa-music`,onChange:r.onAudioChange},null,8,[`accept`,`button-text`,`onChange`])):(s(),e(c,{key:1},[o(x,{modelValue:r.text,"onUpdate:modelValue":d[2]||=e=>r.text=e,type:`textarea`,rows:4,placeholder:r.$t(`digitalhuman.placeholder.text`),class:`mb-2`},null,8,[`modelValue`,`placeholder`]),o(S)],64))]),t(`div`,Ee,[t(`div`,De,[t(`h2`,Oe,n(r.$t(`digitalhuman.name.engine`)),1)]),o(y,{modelValue:r.engine,"onUpdate:modelValue":d[3]||=e=>r.engine=e,class:`w-full`},{default:l(()=>[(s(!0),e(c,null,u(r.DIGITALHUMAN_ALLOWED_ENGINES,e=>(s(),a(v,{key:e,value:e},{default:l(()=>[i(n(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),t(`div`,ke,[t(`div`,Ae,[t(`h2`,je,n(r.$t(`digitalhuman.name.resolution`)),1)]),o(y,{modelValue:r.resolution,"onUpdate:modelValue":d[4]||=e=>r.resolution=e,class:`w-full`},{default:l(()=>[(s(!0),e(c,null,u(r.DIGITALHUMAN_ALLOWED_RESOLUTIONS,e=>(s(),a(v,{key:e,value:e},{default:l(()=>[i(n(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])])]),t(`div`,Me,[o(C,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),o(T,{type:`primary`,class:`btn w-full`,round:``,disabled:!r.canGenerate,onClick:r.onGenerate},{default:l(()=>[o(w,{icon:`fa-solid fa-user`,class:`mr-2`}),i(` `+n(r.$t(`digitalhuman.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var Pe=A(_e,[[`render`,Ne],[`__scopeId`,`data-v-0908bd0e`]]),Fe=r({name:`TaskPreview`,components:{ElImage:y,CopyToClipboard:B,FontAwesomeIcon:z,ElAlert:b,ElProgress:w,VideoPlayer:K,ElButton:F,ApiCodeButton:q},props:{modelValue:{type:Object,required:!0}},data(){return{DIGITALHUMAN_LOGO:ee}},computed:{status(){return this.modelValue?.status||this.modelValue?.response?.state||`pending`},isSuccess(){return[`succeed`,`succeeded`].includes(this.status)||!!this.modelValue?.response?.video_url},isFailure(){return[`failed`,`dead`].includes(this.status)||this.modelValue?.response?.success===!1},isTerminal(){return this.isSuccess||this.isFailure},videoUrl(){return this.modelValue?.response?.video_url},progressPct(){let e=this.modelValue?.response?.progress;return typeof e==`number`?e:0},voiceLabel(){return this.modelValue?.request?.audio_url?this.$t(`digitalhuman.name.audioDriven`):this.$t(`digitalhuman.name.textDriven`)},faceLabel(){return this.modelValue?.request?.image_url?this.$t(`digitalhuman.name.facePhoto`):this.$t(`digitalhuman.name.faceVideo`)},faceIcon(){return this.modelValue?.request?.image_url?`fa-solid fa-image`:`fa-solid fa-film`},engineLabel(){return this.modelValue?.request?.engine||this.modelValue?.response?.engine||`latentsync`},statusLabel(){let e=`digitalhuman.status.${this.status}`,t=this.$t(e);return t===e?this.$t(`digitalhuman.status.processing`):t},failureReason(){let e=this.modelValue?.response?.error;if(e)return typeof e==`string`?e:e?.message}},methods:{onDownload(e,t){e?.stopPropagation(),window.open(t,`_blank`)}}}),Ie={class:`preview`},Le={class:`left`},Re={class:`main`},ze={class:`bot`},Be={class:`datetime`},Ve={class:`info`},He={key:0,class:`prompt mt-2`},Ue={key:0},We={key:1,class:`prompt mt-2`},Ge={key:0},Ke={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},qe={class:`ml-2`},Je={key:0,class:`content`},$={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},Ye={key:1,class:`content`},Xe={class:`operations mt-2`},Ze={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Qe={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},$e={key:2,class:`content`},et={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},tt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function nt(r,c,u,d,m,h){let g=p(`el-image`),_=p(`font-awesome-icon`),v=p(`el-progress`),y=p(`video-player`),b=p(`el-button`),x=p(`api-code-button`),S=p(`copy-to-clipboard`),C=p(`el-alert`);return s(),e(`div`,Ie,[t(`div`,Le,[o(g,{src:r.DIGITALHUMAN_LOGO,class:`avatar`},null,8,[`src`])]),t(`div`,Re,[t(`div`,ze,[i(n(r.$t(`digitalhuman.name.bot`))+` `,1),t(`span`,Be,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,Ve,[r.modelValue?.request?.text?(s(),e(`p`,He,[i(n(r.modelValue?.request?.text)+` `,1),r.isTerminal?f(``,!0):(s(),e(`span`,Ue,` - (`+n(r.statusLabel)+`) `,1))])):(s(),e(`p`,We,[i(n(r.voiceLabel)+` `,1),r.isTerminal?f(``,!0):(s(),e(`span`,Ge,` - (`+n(r.statusLabel)+`) `,1))])),t(`p`,Ke,[o(_,{icon:r.faceIcon,class:`mr-1`},null,8,[`icon`]),i(n(r.faceLabel)+` `,1),t(`span`,qe,[o(_,{icon:`fa-solid fa-sliders`,class:`mr-1`}),i(n(r.engineLabel),1)])])]),r.isTerminal?f(``,!0):(s(),e(`div`,Je,[t(`p`,$,n(r.statusLabel),1),o(v,{percentage:r.progressPct,"stroke-width":6},null,8,[`percentage`])])),r.isSuccess?(s(),e(`div`,Ye,[r.videoUrl?(s(),a(y,{key:0,src:r.videoUrl},null,8,[`src`])):f(``,!0),t(`div`,Xe,[r.videoUrl?(s(),a(b,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[0]||=e=>r.onDownload(e,r.videoUrl)},{default:l(()=>[i(n(r.$t(`digitalhuman.button.download`)),1)]),_:1})):f(``,!0),o(x,{path:`/digital-human/videos`,body:r.modelValue?.request},null,8,[`body`])]),o(C,{closable:!1,class:`mt-2 success`},{default:l(()=>[t(`p`,Ze,[o(_,{icon:`fa-solid fa-user`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),o(S,{content:r.modelValue?.id},null,8,[`content`])]),r.modelValue?.elapsed?(s(),e(`p`,Qe,[o(_,{icon:`fa-solid fa-clock`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):f(``,!0)]),_:1})])):f(``,!0),r.isFailure?(s(),e(`div`,$e,[o(C,{closable:!1,class:`failure`},{template:l(()=>[o(_,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.failure`)),1)]),default:l(()=>[t(`p`,et,[o(_,{icon:`fa-solid fa-user`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),o(S,{content:r.modelValue?.id},null,8,[`content`])]),r.failureReason?(s(),e(`p`,tt,[o(_,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.failureReason`))+`: `+n(r.failureReason),1)])):f(``,!0)]),_:1})])):f(``,!0)])])}var rt=r({name:`RecentPanel`,components:{TaskPreview:A(Fe,[[`render`,nt],[`__scopeId`,`data-v-da5f1dfb`]]),NoTasks:Y,BotPlaceholder:J,ScrollList:W},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.digitalhuman?.tasks,items:this.$store.state.digitalhuman?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),it={key:0},at={key:2,class:`w-full h-full flex items-center justify-center`};function ot(t,n,r,i,d,m){let h=p(`bot-placeholder`),g=p(`task-preview`),_=p(`scroll-list`),v=p(`no-tasks`);return s(),e(c,null,[t.tasks?.items===void 0?(s(),e(`div`,it,[o(h)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(s(),a(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:l(()=>[(s(!0),e(c,null,u(t.tasks?.items,(e,t)=>(s(),a(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):f(``,!0),t.tasks?.items?.length===0?(s(),e(`div`,at,[o(v)])):f(``,!0)],64)}var st=r({name:`DigitalHumanIndex`,components:{ConfigPanel:Pe,Layout:oe,RecentPanel:A(rt,[[`render`,ot]])},inject:[`initialized`],data(){return{job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.digitalhuman?.status?.getApplications===M.Request},tasksLoading(){return this.$store.state.digitalhuman?.status?.getTasks===M.Request||this.fetchingTasks},credential(){return this.$store.state.digitalhuman.credential},config(){return this.$store.state.digitalhuman.config},tasks(){return this.$store.state.digitalhuman.tasks}},watch:{initialized:{async handler(e){window.clearInterval(this.job),e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await G({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(){await this.$store.dispatch(`digitalhuman/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`digitalhuman/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(e){if(!P())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}I.info(this.$t(`digitalhuman.message.startingTask`)),L(`digitalhuman`,j.generate(e,{token:t})).then(()=>{I.success(this.$t(`digitalhuman.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?I.error(this.$t(`digitalhuman.message.usedUp`)):I.error(this.$t(`digitalhuman.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function ct(e,t,n,r,i,c){let u=p(`config-panel`),d=p(`recent-panel`),f=p(`layout`);return s(),a(f,null,{config:l(()=>[o(u,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:l(()=>[o(d,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var lt=A(st,[[`render`,ct]]);export{lt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,I as r,N as i,O as a,P as o,Q as s,S as c,dt as l,et as u,ft as d,k as f,nt as p,tt as m,v as h}from"./vendor-chart-kBsXB1rh.js";import{r as g,t as _}from"./select-BMkecWJ3.js";import{t as v}from"./upload-BVKjQKBq.js";import{t as y}from"./image-DsbwPTmm.js";import{t as b}from"./alert-BDvIuUu3.js";import{n as x,r as S}from"./radio-Ct6y4mt7.js";import{t as C}from"./drawer-B9vlF9-6.js";import{t as w}from"./progress-Cq9EP8XU.js";import{_r as T,cr as E,dr as D,hr as ee,lr as te,mr as O,ur as k}from"./constants-Bs-70rQx.js";import{A,An as j,Kt as ne,Vr as M,Wr as N,en as P,fi as F,ti as I,tr as L,xi as R}from"./index-BDvTozfe.js";import{t as z}from"./index.es-B8y6GOsn.js";import{t as B}from"./CopyToClipboard-CdGWA3lV.js";import{n as V}from"./taskDrawerMixin-CfysS2FH.js";import{t as H}from"./Consumption-B2gTsRAP.js";import{i as U,n as W,t as G}from"./pagination-BNew-8XN.js";import{t as K}from"./VideoPlayer-NjLw9ykt.js";import{t as q}from"./ApiCodeButton-WF_-U1A1.js";import{t as J}from"./BotPlaceholder-BU4a0XLq.js";import{t as Y}from"./NoTasks-C3tcHEtF.js";var X=r({name:`LayoutDigitalHuman`,components:{ElDrawer:C,ElButton:F,FontAwesomeIcon:z},mixins:[V]}),Z={class:`main flex flex-row flex-1`},re={class:`config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ie={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ae(n,r,i,a,c,u){let f=p(`font-awesome-icon`),g=p(`el-button`),_=p(`el-drawer`);return s(),e(`div`,Z,[t(`div`,re,[m(n.$slots,`config`,{},void 0,!0)]),t(`div`,ie,[m(n.$slots,`result`,{},void 0,!0)]),d(o(g,{circle:``,class:`menu`,onClick:r[0]||=e=>n.drawer=!0},{default:l(()=>[o(f,{icon:`fa-solid fa-user`})]),_:1},512),[[h,!n.tasksEmpty]]),o(_,{modelValue:n.drawer,"onUpdate:modelValue":r[1]||=e=>n.drawer=e,direction:`ltr`,"with-header":!1,size:`350px`},{default:l(()=>[m(n.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var oe=A(X,[[`render`,ae],[`__scopeId`,`data-v-b03e40b3`]]),se=r({name:`DigitalHumanFileInput`,components:{ElUpload:v,ElButton:F,FontAwesomeIcon:z},props:{accept:{type:String,default:``},buttonText:{type:String,default:``},icon:{type:String,default:`fa-solid fa-upload`}},emits:[`change`],data(){return{fileList:[],uploadUrl:N()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}}},methods:{onExceed(e){let t=this.$refs.uploader;t?.clearFiles();let n=e[0];n&&(t?.handleStart?.(n),t?.submit?.())},onError(){I.error(this.$t(`digitalhuman.message.uploadError`))},onChange(){let e=this.fileList?.[0]?.response?.file_url;this.$emit(`change`,e)}}});function ce(t,r,a,c,u,d){let f=p(`font-awesome-icon`),m=p(`el-button`),h=p(`el-upload`);return s(),e(`div`,null,[o(h,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":r[0]||=e=>t.fileList=e,accept:t.accept,name:`file`,class:`w-full`,limit:1,action:t.uploadUrl,headers:t.headers,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onChange,"on-remove":t.onChange},{default:l(()=>[o(m,{size:`small`,round:``},{default:l(()=>[o(f,{icon:t.icon,class:`mr-1`},null,8,[`icon`]),i(` `+n(t.buttonText),1)]),_:1})]),_:1},8,[`file-list`,`accept`,`action`,`headers`,`on-exceed`,`on-error`,`on-success`,`on-remove`])])}var Q=A(se,[[`render`,ce]]),le=3e3,ue=60,de=r({name:`VoiceClone`,components:{ElButton:F,ElSelect:g,ElOption:_,ElAlert:b,FileInput:Q,FontAwesomeIcon:z},data(){return{sampleUrl:void 0,lang:`zh`,cloning:!1,destroyed:!1,runId:0,DIGITALHUMAN_ALLOWED_LANGS:te,DIGITALHUMAN_AUDIO_ACCEPT:D}},computed:{credentialToken(){return this.$store.state.digitalhuman?.credential?.token},voiceId(){return this.$store.state.digitalhuman?.config?.voice_id}},watch:{lang(){this.invalidate()}},beforeUnmount(){this.destroyed=!0,this.runId++},methods:{onSampleChange(e){this.sampleUrl=e,this.invalidate()},invalidate(){this.runId++,this.cloning=!1,this.voiceId&&this.setVoiceId(void 0)},isStale(e){return this.destroyed||e!==this.runId},setVoiceId(e){this.$store.commit(`digitalhuman/setConfig`,{...this.$store.state.digitalhuman?.config,voice_id:e})},sleep(e){return new Promise(t=>setTimeout(t,e))},async onClone(){let e=this.credentialToken;if(!this.sampleUrl||!e)return;let t=++this.runId;this.cloning=!0,this.setVoiceId(void 0);try{let{data:n}=await j.cloneVoice({audio_url:this.sampleUrl,lang:this.lang},{token:e});if(this.isStale(t))return;if(n?.voice_id){this.onCloned(n.voice_id);return}if(n?.task_id)await this.pollVoice(n.task_id,e,t);else throw Error(`no task`)}catch{this.isStale(t)||I.error(this.$t(`digitalhuman.message.voiceCloneFailed`))}finally{this.isStale(t)||(this.cloning=!1)}},async pollVoice(e,t,n){for(let r=0;r<ue;r++){if(this.isStale(n)||(await this.sleep(le),this.isStale(n)))return;let{data:r}=await j.pollTask(e,{token:t});if(this.isStale(n))return;if(r?.voice_id){this.onCloned(r.voice_id);return}if(r?.state===`failed`)throw Error(`clone failed`)}throw Error(`timeout`)},onCloned(e){this.setVoiceId(e),I.success(this.$t(`digitalhuman.message.voiceCloneSuccess`))}}}),fe={class:`voice-clone`},pe={class:`text-xs text-[var(--el-text-color-secondary)] mb-2`},me={class:`flex flex-row items-center gap-2 mb-2`},he={class:`text-xs mb-0`};function ge(r,d,m,h,g,_){let v=p(`file-input`),y=p(`el-option`),b=p(`el-select`),x=p(`font-awesome-icon`),S=p(`el-button`),C=p(`el-alert`);return s(),e(`div`,fe,[t(`p`,pe,n(r.$t(`digitalhuman.description.voiceClone`)),1),t(`div`,me,[o(v,{accept:r.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadSample`),icon:`fa-solid fa-microphone`,onChange:r.onSampleChange},null,8,[`accept`,`button-text`,`onChange`]),o(b,{modelValue:r.lang,"onUpdate:modelValue":d[0]||=e=>r.lang=e,size:`small`,class:`!w-[90px]`},{default:l(()=>[(s(!0),e(c,null,u(r.DIGITALHUMAN_ALLOWED_LANGS,e=>(s(),a(y,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),o(S,{size:`small`,type:`primary`,round:``,loading:r.cloning,disabled:!r.sampleUrl||r.cloning,onClick:r.onClone},{default:l(()=>[o(x,{icon:`fa-solid fa-wand-magic-sparkles`,class:`mr-1`}),i(` `+n(r.cloning?r.$t(`digitalhuman.button.cloning`):r.$t(`digitalhuman.button.clone`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),r.voiceId?(s(),a(C,{key:0,closable:!1,type:`success`,class:`mt-2`},{default:l(()=>[t(`p`,he,[o(x,{icon:`fa-solid fa-check`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.voiceReady`))+`: `+n(r.voiceId),1)])]),_:1})):f(``,!0)])}var _e=r({name:`ConfigPanel`,components:{ElButton:F,ElInput:R,ElRadioGroup:S,ElRadioButton:x,Consumption:H,InfoIcon:U,FileInput:Q,VoiceClone:A(de,[[`render`,ge]]),FontAwesomeIcon:z},emits:[`generate`],data(){return{faceMode:`video`,voiceMode:`audio`,DIGITALHUMAN_ALLOWED_ENGINES:E,DIGITALHUMAN_ALLOWED_RESOLUTIONS:k,DIGITALHUMAN_VIDEO_ACCEPT:T,DIGITALHUMAN_IMAGE_ACCEPT:O,DIGITALHUMAN_AUDIO_ACCEPT:D}},computed:{config(){return this.$store.state.digitalhuman?.config},service(){return this.$store.state.digitalhuman?.service},consumption(){return ne(this.config,this.service?.cost)},canGenerate(){let e=this.faceMode===`video`?!!this.config?.video_url:!!this.config?.image_url,t=this.voiceMode===`audio`?!!this.config?.audio_url:!!this.config?.text?.trim()&&!!this.config?.voice_id;return e&&t},text:{get(){return this.config?.text},set(e){this.update({text:e})}},engine:{get(){return this.config?.engine},set(e){this.update({engine:e})}},resolution:{get(){return this.config?.resolution},set(e){this.update({resolution:e})}}},mounted(){this.config?.image_url&&!this.config?.video_url&&(this.faceMode=`photo`),(this.config?.text||this.config?.voice_id)&&(this.voiceMode=`text`),this.update({engine:this.config?.engine??`latentsync`,resolution:this.config?.resolution??`720p`})},methods:{update(e){this.$store.commit(`digitalhuman/setConfig`,{...this.config,...e})},onFaceModeChange(e){this.update(e===`video`?{image_url:void 0}:{video_url:void 0})},onVoiceModeChange(e){this.update(e===`audio`?{text:void 0,voice_id:void 0}:{audio_url:void 0})},onFaceVideoChange(e){this.update({video_url:e})},onFacePhotoChange(e){this.update({image_url:e})},onAudioChange(e){this.update({audio_url:e})},onGenerate(){let e=this.config||{},t={engine:e.engine,resolution:e.resolution};this.faceMode===`video`?t.video_url=e.video_url:t.image_url=e.image_url,this.voiceMode===`audio`?t.audio_url=e.audio_url:(t.text=e.text,t.voice_id=e.voice_id),this.$emit(`generate`,t)}}}),ve={class:`flex flex-col h-full`},ye={class:`flex-1 overflow-y-auto p-5`},be={class:`field-block mb-5`},xe={class:`field-head`},Se={class:`field-title font-bold`},Ce={class:`field-block mb-5`},we={class:`field-head`},Te={class:`field-title font-bold`},Ee={class:`field-block mb-5`},De={class:`field-head`},Oe={class:`field-title font-bold`},ke={class:`field-block`},Ae={class:`field-head`},je={class:`field-title font-bold`},Me={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ne(r,d,f,m,h,g){let _=p(`info-icon`),v=p(`el-radio-button`),y=p(`el-radio-group`),b=p(`file-input`),x=p(`el-input`),S=p(`voice-clone`),C=p(`consumption`),w=p(`font-awesome-icon`),T=p(`el-button`);return s(),e(`div`,ve,[t(`div`,ye,[t(`div`,be,[t(`div`,xe,[t(`h2`,Se,n(r.$t(`digitalhuman.name.face`)),1),o(_,{content:r.$t(`digitalhuman.description.face`),class:`ml-1`},null,8,[`content`])]),o(y,{modelValue:r.faceMode,"onUpdate:modelValue":d[0]||=e=>r.faceMode=e,class:`w-full mb-2`,onChange:r.onFaceModeChange},{default:l(()=>[o(v,{value:`video`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.faceVideo`)),1)]),_:1}),o(v,{value:`photo`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.facePhoto`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),r.faceMode===`video`?(s(),a(b,{key:0,accept:r.DIGITALHUMAN_VIDEO_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadVideo`),icon:`fa-solid fa-film`,onChange:r.onFaceVideoChange},null,8,[`accept`,`button-text`,`onChange`])):(s(),a(b,{key:1,accept:r.DIGITALHUMAN_IMAGE_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadPhoto`),icon:`fa-solid fa-image`,onChange:r.onFacePhotoChange},null,8,[`accept`,`button-text`,`onChange`]))]),t(`div`,Ce,[t(`div`,we,[t(`h2`,Te,n(r.$t(`digitalhuman.name.voice`)),1)]),o(y,{modelValue:r.voiceMode,"onUpdate:modelValue":d[1]||=e=>r.voiceMode=e,class:`w-full mb-2`,onChange:r.onVoiceModeChange},{default:l(()=>[o(v,{value:`audio`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.voiceAudio`)),1)]),_:1}),o(v,{value:`text`},{default:l(()=>[i(n(r.$t(`digitalhuman.name.voiceText`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),r.voiceMode===`audio`?(s(),a(b,{key:0,accept:r.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":r.$t(`digitalhuman.button.uploadAudio`),icon:`fa-solid fa-music`,onChange:r.onAudioChange},null,8,[`accept`,`button-text`,`onChange`])):(s(),e(c,{key:1},[o(x,{modelValue:r.text,"onUpdate:modelValue":d[2]||=e=>r.text=e,type:`textarea`,rows:4,placeholder:r.$t(`digitalhuman.placeholder.text`),class:`mb-2`},null,8,[`modelValue`,`placeholder`]),o(S)],64))]),t(`div`,Ee,[t(`div`,De,[t(`h2`,Oe,n(r.$t(`digitalhuman.name.engine`)),1)]),o(y,{modelValue:r.engine,"onUpdate:modelValue":d[3]||=e=>r.engine=e,class:`w-full`},{default:l(()=>[(s(!0),e(c,null,u(r.DIGITALHUMAN_ALLOWED_ENGINES,e=>(s(),a(v,{key:e,value:e},{default:l(()=>[i(n(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),t(`div`,ke,[t(`div`,Ae,[t(`h2`,je,n(r.$t(`digitalhuman.name.resolution`)),1)]),o(y,{modelValue:r.resolution,"onUpdate:modelValue":d[4]||=e=>r.resolution=e,class:`w-full`},{default:l(()=>[(s(!0),e(c,null,u(r.DIGITALHUMAN_ALLOWED_RESOLUTIONS,e=>(s(),a(v,{key:e,value:e},{default:l(()=>[i(n(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])])]),t(`div`,Me,[o(C,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),o(T,{type:`primary`,class:`btn w-full`,round:``,disabled:!r.canGenerate,onClick:r.onGenerate},{default:l(()=>[o(w,{icon:`fa-solid fa-user`,class:`mr-2`}),i(` `+n(r.$t(`digitalhuman.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var Pe=A(_e,[[`render`,Ne],[`__scopeId`,`data-v-0908bd0e`]]),Fe=r({name:`TaskPreview`,components:{ElImage:y,CopyToClipboard:B,FontAwesomeIcon:z,ElAlert:b,ElProgress:w,VideoPlayer:K,ElButton:F,ApiCodeButton:q},props:{modelValue:{type:Object,required:!0}},data(){return{DIGITALHUMAN_LOGO:ee}},computed:{status(){return this.modelValue?.status||this.modelValue?.response?.state||`pending`},isSuccess(){return[`succeed`,`succeeded`].includes(this.status)||!!this.modelValue?.response?.video_url},isFailure(){return[`failed`,`dead`].includes(this.status)||this.modelValue?.response?.success===!1},isTerminal(){return this.isSuccess||this.isFailure},videoUrl(){return this.modelValue?.response?.video_url},progressPct(){let e=this.modelValue?.response?.progress;return typeof e==`number`?e:0},voiceLabel(){return this.modelValue?.request?.audio_url?this.$t(`digitalhuman.name.audioDriven`):this.$t(`digitalhuman.name.textDriven`)},faceLabel(){return this.modelValue?.request?.image_url?this.$t(`digitalhuman.name.facePhoto`):this.$t(`digitalhuman.name.faceVideo`)},faceIcon(){return this.modelValue?.request?.image_url?`fa-solid fa-image`:`fa-solid fa-film`},engineLabel(){return this.modelValue?.request?.engine||this.modelValue?.response?.engine||`latentsync`},statusLabel(){let e=`digitalhuman.status.${this.status}`,t=this.$t(e);return t===e?this.$t(`digitalhuman.status.processing`):t},failureReason(){let e=this.modelValue?.response?.error;if(e)return typeof e==`string`?e:e?.message}},methods:{onDownload(e,t){e?.stopPropagation(),window.open(t,`_blank`)}}}),Ie={class:`preview`},Le={class:`left`},Re={class:`main`},ze={class:`bot`},Be={class:`datetime`},Ve={class:`info`},He={key:0,class:`prompt mt-2`},Ue={key:0},We={key:1,class:`prompt mt-2`},Ge={key:0},Ke={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},qe={class:`ml-2`},Je={key:0,class:`content`},$={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},Ye={key:1,class:`content`},Xe={class:`operations mt-2`},Ze={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Qe={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},$e={key:2,class:`content`},et={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},tt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function nt(r,c,u,d,m,h){let g=p(`el-image`),_=p(`font-awesome-icon`),v=p(`el-progress`),y=p(`video-player`),b=p(`el-button`),x=p(`api-code-button`),S=p(`copy-to-clipboard`),C=p(`el-alert`);return s(),e(`div`,Ie,[t(`div`,Le,[o(g,{src:r.DIGITALHUMAN_LOGO,class:`avatar`},null,8,[`src`])]),t(`div`,Re,[t(`div`,ze,[i(n(r.$t(`digitalhuman.name.bot`))+` `,1),t(`span`,Be,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,Ve,[r.modelValue?.request?.text?(s(),e(`p`,He,[i(n(r.modelValue?.request?.text)+` `,1),r.isTerminal?f(``,!0):(s(),e(`span`,Ue,` - (`+n(r.statusLabel)+`) `,1))])):(s(),e(`p`,We,[i(n(r.voiceLabel)+` `,1),r.isTerminal?f(``,!0):(s(),e(`span`,Ge,` - (`+n(r.statusLabel)+`) `,1))])),t(`p`,Ke,[o(_,{icon:r.faceIcon,class:`mr-1`},null,8,[`icon`]),i(n(r.faceLabel)+` `,1),t(`span`,qe,[o(_,{icon:`fa-solid fa-sliders`,class:`mr-1`}),i(n(r.engineLabel),1)])])]),r.isTerminal?f(``,!0):(s(),e(`div`,Je,[t(`p`,$,n(r.statusLabel),1),o(v,{percentage:r.progressPct,"stroke-width":6},null,8,[`percentage`])])),r.isSuccess?(s(),e(`div`,Ye,[r.videoUrl?(s(),a(y,{key:0,src:r.videoUrl},null,8,[`src`])):f(``,!0),t(`div`,Xe,[r.videoUrl?(s(),a(b,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[0]||=e=>r.onDownload(e,r.videoUrl)},{default:l(()=>[i(n(r.$t(`digitalhuman.button.download`)),1)]),_:1})):f(``,!0),o(x,{path:`/digital-human/videos`,body:r.modelValue?.request},null,8,[`body`])]),o(C,{closable:!1,class:`mt-2 success`},{default:l(()=>[t(`p`,Ze,[o(_,{icon:`fa-solid fa-user`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),o(S,{content:r.modelValue?.id},null,8,[`content`])]),r.modelValue?.elapsed?(s(),e(`p`,Qe,[o(_,{icon:`fa-solid fa-clock`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):f(``,!0)]),_:1})])):f(``,!0),r.isFailure?(s(),e(`div`,$e,[o(C,{closable:!1,class:`failure`},{template:l(()=>[o(_,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.failure`)),1)]),default:l(()=>[t(`p`,et,[o(_,{icon:`fa-solid fa-user`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),o(S,{content:r.modelValue?.id},null,8,[`content`])]),r.failureReason?(s(),e(`p`,tt,[o(_,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),i(` `+n(r.$t(`digitalhuman.name.failureReason`))+`: `+n(r.failureReason),1)])):f(``,!0)]),_:1})])):f(``,!0)])])}var rt=r({name:`RecentPanel`,components:{TaskPreview:A(Fe,[[`render`,nt],[`__scopeId`,`data-v-da5f1dfb`]]),NoTasks:Y,BotPlaceholder:J,ScrollList:W},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.digitalhuman?.tasks,items:this.$store.state.digitalhuman?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),it={key:0},at={key:2,class:`w-full h-full flex items-center justify-center`};function ot(t,n,r,i,d,m){let h=p(`bot-placeholder`),g=p(`task-preview`),_=p(`scroll-list`),v=p(`no-tasks`);return s(),e(c,null,[t.tasks?.items===void 0?(s(),e(`div`,it,[o(h)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(s(),a(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:l(()=>[(s(!0),e(c,null,u(t.tasks?.items,(e,t)=>(s(),a(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):f(``,!0),t.tasks?.items?.length===0?(s(),e(`div`,at,[o(v)])):f(``,!0)],64)}var st=r({name:`DigitalHumanIndex`,components:{ConfigPanel:Pe,Layout:oe,RecentPanel:A(rt,[[`render`,ot]])},inject:[`initialized`],data(){return{job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.digitalhuman?.status?.getApplications===M.Request},tasksLoading(){return this.$store.state.digitalhuman?.status?.getTasks===M.Request||this.fetchingTasks},credential(){return this.$store.state.digitalhuman.credential},config(){return this.$store.state.digitalhuman.config},tasks(){return this.$store.state.digitalhuman.tasks}},watch:{initialized:{async handler(e){window.clearInterval(this.job),e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await G({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(){await this.$store.dispatch(`digitalhuman/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`digitalhuman/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(e){if(!P())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}I.info(this.$t(`digitalhuman.message.startingTask`)),L(`digitalhuman`,j.generate(e,{token:t})).then(()=>{I.success(this.$t(`digitalhuman.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?I.error(this.$t(`digitalhuman.message.usedUp`)):I.error(this.$t(`digitalhuman.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function ct(e,t,n,r,i,c){let u=p(`config-panel`),d=p(`recent-panel`),f=p(`layout`);return s(),a(f,null,{config:l(()=>[o(u,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:l(()=>[o(d,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var lt=A(st,[[`render`,ct]]);export{lt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,Ht as r,I as i,N as a,O as o,P as s,Q as c,S as l,b as u,dt as d,et as f,ft as p,k as m,nt as h,tt as g,v as _}from"./vendor-chart-kBsXB1rh.js";import{r as v,t as y}from"./select-leWGa1qy.js";import{t as b}from"./upload-DFnNkCSJ.js";import{t as x}from"./tooltip-Bg-5iX0y.js";import{t as S}from"./image-D2Uc31X4.js";import{t as C}from"./alert-Opv77n_G.js";import{t as w}from"./drawer-VR-pZKxs.js";import{gt as T,ht as E}from"./constants-BqvGY8Qp.js";import{A as D,Ht as O,Kt as ee,Ut as te,Vr as k,Vt as A,Wr as j,Wt as M,en as N,fi as P,mn as F,ti as I,tr as L}from"./index-DPT0LY_a.js";import{t as R}from"./index.es-BF0roIeI.js";import{t as z}from"./CopyToClipboard-BPv_hKe6.js";import{t as B}from"./ImagePreview-DiItKL-y.js";import{n as V}from"./taskDrawerMixin-CfysS2FH.js";import{t as H}from"./Consumption-C6c-vSv0.js";import{i as U,n as W,t as G}from"./pagination-CUnmIqY0.js";import{t as K}from"./VideoPlayer-DR0GK7w6.js";import{t as q}from"./ApiCodeButton-Cdz-Fy3S.js";import{t as J}from"./BotPlaceholder-60_H2JxQ.js";import{t as Y}from"./NoTasks-BUMSVlPF.js";import{t as X}from"./PromptTextarea-Dfu-o_C6.js";var Z=i({name:`LayoutWan`,components:{ElDrawer:w,ElButton:P,FontAwesomeIcon:R},mixins:[V]}),Q={class:`main flex flex-row flex-1`},ne={class:`config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},re={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ie(n,r,i,a,o,l){let u=h(`font-awesome-icon`),f=h(`el-button`),m=h(`el-drawer`);return c(),e(`div`,Q,[t(`div`,ne,[g(n.$slots,`config`,{},void 0,!0)]),t(`div`,re,[g(n.$slots,`result`,{},void 0,!0)]),p(s(f,{circle:``,class:`menu`,onClick:r[0]||=e=>n.drawer=!0},{default:d(()=>[s(u,{icon:`fa-solid fa-magic`})]),_:1},512),[[_,!n.tasksEmpty]]),s(m,{modelValue:n.drawer,"onUpdate:modelValue":r[1]||=e=>n.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`},{default:d(()=>[g(n.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ae=D(Z,[[`render`,ie],[`__scopeId`,`data-v-1ffeb6b4`]]),oe=i({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},data(){return{}},computed:{options(){return[{value:`wan2.6-t2v`,label:this.$t(`wan.button.modelT2v`)},{value:`wan2.6-i2v`,label:this.$t(`wan.button.modelI2v`)},{value:`wan2.6-i2v-flash`,label:this.$t(`wan.button.modelI2vFlash`)},{value:`wan2.6-r2v`,label:this.$t(`wan.button.modelR2v`)}]},value:{get(){return this.$store.state.wan?.config?.model},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,model:e})}}},mounted(){this.value||=E}}),se={class:`field`},ce={class:`title font-bold`},le={class:`float-left`};function ue(r,i,a,u,p,m){let g=h(`el-option`),_=h(`el-select`);return c(),e(`div`,se,[t(`h2`,ce,n(r.$t(`wan.name.model`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`wan.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,le,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var de=D(oe,[[`render`,ue],[`__scopeId`,`data-v-eb090beb`]]),fe=`720p`,pe=i({name:`ResolutionSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:`480p`,label:this.$t(`wan.name.resolution480p`)},{value:`720p`,label:this.$t(`wan.name.resolution720p`)},{value:`1080p`,label:this.$t(`wan.name.resolution1080p`)}]},value:{get(){return this.$store.state.wan?.config?.resolution},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,resolution:e})}}},mounted(){this.value||=fe}}),me={class:`field`},he={class:`title font-bold`},ge={class:`float-left`};function _e(r,i,a,u,p,m){let g=h(`el-option`),_=h(`el-select`);return c(),e(`div`,me,[t(`h2`,he,n(r.$t(`wan.name.resolution`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`wan.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,ge,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var ve=D(pe,[[`render`,_e],[`__scopeId`,`data-v-3e39f44e`]]),ye=5,be=i({name:`DurationSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:5,label:this.$t(`wan.name.duration5s`)},{value:10,label:this.$t(`wan.name.duration10s`)},{value:15,label:this.$t(`wan.name.duration15s`)}]},value:{get(){return this.$store.state.wan?.config?.duration},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,duration:e})}}},mounted(){this.value||=ye}}),xe={class:`field`},Se={class:`title font-bold`},Ce={class:`float-left`};function we(r,i,a,u,p,m){let g=h(`el-option`),_=h(`el-select`);return c(),e(`div`,xe,[t(`h2`,Se,n(r.$t(`wan.name.duration`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`wan.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,Ce,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Te=D(be,[[`render`,we],[`__scopeId`,`data-v-5f35a2cf`]]),Ee=i({name:`ImageUrlInput`,components:{ElUpload:b,ElButton:P,InfoIcon:U,ImagePreview:B},mixins:[M,O],data(){return{fileList:[],uploadUrl:j()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.wan?.config?.image_url},set(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})}}},mounted(){this.value||=void 0,this.onSetImageUrl()},methods:{onExceed(){I.warning(this.$t(`wan.message.uploadImageExceed`))},onError(){I.error(this.$t(`wan.message.uploadImageError`))},async onRemove(){I.error(this.$t(`wan.message.uploadImageError`))},onSetImageUrl(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})},async onSuccess(){this.onSetImageUrl()}}}),De={class:`relative`},Oe={class:`flex justify-between`},ke={class:`flex justify-start items-center`},Ae={class:`text-sm font-bold`};function je(r,i,l,u,f,p){let g=h(`info-icon`),_=h(`image-preview`),v=h(`el-button`),y=h(`el-upload`);return c(),e(`div`,De,[t(`div`,Oe,[t(`div`,ke,[t(`span`,Ae,n(r.$t(`wan.name.imageUrl`)),1),s(g,{content:r.$t(`wan.description.imageUrl`),class:`info`},null,8,[`content`])])]),s(y,{"file-list":r.fileList,"onUpdate:fileList":i[0]||=e=>r.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,"show-file-list":!0,limit:1,multiple:!1,"list-type":`picture`,action:r.uploadUrl,"on-exceed":r.onExceed,"on-error":r.onError,"on-remove":r.onRemove,"on-success":r.onSuccess,headers:r.headers},{file:d(({file:e})=>[e.url&&e.percentage!==void 0?(c(),o(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):m(``,!0)]),default:d(()=>[s(v,{size:`small`,type:`primary`,class:`btn btn-upload`,round:``},{default:d(()=>[a(n(r.$t(`wan.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-remove`,`on-success`,`headers`])])}var Me=D(Ee,[[`render`,je],[`__scopeId`,`data-v-41a69004`]]),Ne=i({name:`PromptInput`,components:{PromptTextarea:X},computed:{prompt:{get(){return this.$store.state.wan?.config?.prompt},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,prompt:e})}}},mounted(){this.prompt||=``}});function Pe(e,t,n,r,i,a){let s=h(`prompt-textarea`);return c(),o(s,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`wan.name.prompt`),info:e.$t(`wan.description.prompt`),placeholder:e.$t(`wan.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Fe=i({name:`PresetPanel`,components:{ElButton:P,FontAwesomeIcon:R,PromptInput:D(Ne,[[`render`,Pe]]),ImageUrlInput:Me,ModelSelector:de,ResolutionSelector:ve,DurationSelector:Te,Consumption:H},emits:[`generate`],computed:{config(){return this.$store.state.wan?.config},consumption(){return ee(this.config,this.service?.cost)},service(){return this.$store.state.wan?.service},supportsResolution(){let e=this.config?.model;return e===`wan2.6-t2v`||e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`},supportsDuration(){return this.config?.model===`wan2.6-t2v`},supportsImageUrl(){let e=this.config?.model;return e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ie={class:`flex flex-col h-full`},Le={class:`flex-1 overflow-y-auto p-5`},Re={class:`flex flex-col items-center justify-center px-5 pb-5`};function ze(r,i,l,u,f,p){let g=h(`prompt-input`),_=h(`model-selector`),v=h(`resolution-selector`),y=h(`duration-selector`),b=h(`image-url-input`),x=h(`consumption`),S=h(`font-awesome-icon`),C=h(`el-button`);return c(),e(`div`,Ie,[t(`div`,Le,[s(g,{class:`mb-4`}),s(_,{class:`mb-4`}),r.supportsResolution?(c(),o(v,{key:0,class:`mb-4`})):m(``,!0),r.supportsDuration?(c(),o(y,{key:1,class:`mb-4`})):m(``,!0),r.supportsImageUrl?(c(),o(b,{key:2,class:`mb-2`})):m(``,!0)]),t(`div`,Re,[s(x,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),s(C,{type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:d(()=>[s(S,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`wan.button.generate`)),1)]),_:1},8,[`onClick`])])])}var Be=D(Fe,[[`render`,ze]]),Ve=i({name:`TaskPreview`,components:{ElImage:S,CopyToClipboard:z,FontAwesomeIcon:R,ElAlert:C,VideoPlayer:K,ElTooltip:x,ElButton:P,ApiCodeButton:q},props:{modelValue:{type:Object,required:!0}},setup(){return{WAN_LOGO:T}},computed:{application(){return this.$store.state.wan?.application},config(){return this.$store.state.wan?.config}},methods:{onDownload(e){console.debug(`on download wan video`,e),window.open(e,`_blank`)}}}),He={class:`preview`},Ue={class:`left`},We={class:`main`},Ge={class:`bot`},Ke={class:`datetime`},qe={class:`info`},Je={key:0,class:`prompt mt-2`},Ye={key:0},Xe={key:1},Ze={key:0,class:r({content:!0,failed:!0})},Qe={key:0,class:`mb-4`},$e={key:1,class:r({operations:!0,"mt-2":!0})},et={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},tt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},nt={key:1,class:r({content:!0})},rt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},it={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},at={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ot={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},st={key:2,class:r({content:!0})},ct={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function lt(r,i,o,l,f,p){let g=h(`el-image`),_=h(`video-player`),v=h(`el-button`),y=h(`el-tooltip`),b=h(`api-code-button`),x=h(`font-awesome-icon`),S=h(`copy-to-clipboard`),C=h(`el-alert`);return c(),e(`div`,He,[t(`div`,Ue,[s(g,{src:r.WAN_LOGO,class:`avatar`},null,8,[`src`])]),t(`div`,We,[t(`div`,Ge,[a(n(r.$t(`wan.name.wanBot`))+` `,1),t(`span`,Ke,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,qe,[r.modelValue?.request?.prompt?(c(),e(`p`,Je,[a(n(r.modelValue?.request?.prompt)+` `,1),r.modelValue?.response?m(``,!0):(c(),e(`span`,Ye,` - (`+n(r.$t(`wan.status.pending`))+`) `,1)),r.modelValue?.response?.state===`processing`||r.modelValue?.response?.state===`pending`||r.modelValue?.response?.state===`running`?(c(),e(`span`,Xe,` - (`+n(r.$t(`wan.status.processing`))+`) `,1)):m(``,!0)])):m(``,!0)]),r.modelValue?.response?.success===!0?(c(),e(`div`,Ze,[r.modelValue?.response?.video_url?(c(),e(`div`,Qe,[s(_,{src:r.modelValue?.response?.video_url},null,8,[`src`])])):m(``,!0),r.modelValue?.response?.video_url?(c(),e(`div`,$e,[s(y,{class:`box-item`,effect:`dark`,content:r.$t(`wan.message.downloadVideo`),placement:`top-start`},{default:d(()=>[s(v,{type:`info`,size:`small`,class:`mb-2`,onClick:i[0]||=u(e=>r.onDownload(r.modelValue?.response?.video_url),[`stop`])},{default:d(()=>[a(n(r.$t(`wan.button.download`)),1)]),_:1})]),_:1},8,[`content`]),s(b,{path:`/wan/videos`,body:r.modelValue?.request},null,8,[`body`])])):m(``,!0),s(C,{closable:!1,class:`mt-2 success`},{default:d(()=>[r.modelValue?.request?.model?(c(),e(`p`,et,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.model`))+`: `+n(r.modelValue?.request?.model)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])])):m(``,!0),t(`p`,tt,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,$,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):m(``,!0)]),_:1})])):m(``,!0),r.modelValue?.response?.success===!1?(c(),e(`div`,nt,[s(C,{closable:!1,class:`failure`},{template:d(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.failure`)),1)]),default:d(()=>[t(`p`,rt,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])]),t(`p`,it,[s(x,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.failureReason`))+`: `+n(r.modelValue?.response?.error?.message)+` `,1),s(S,{content:r.modelValue?.response?.error?.message},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,at,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):m(``,!0),t(`p`,ot,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.traceId`))+`: `+n(r.modelValue?.response?.trace_id)+` `,1),s(S,{content:r.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):m(``,!0),r.modelValue?.response?.success===void 0?(c(),e(`div`,st,[s(C,{closable:!1,class:`info`},{template:d(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.failure`)),1)]),default:d(()=>[t(`p`,ct,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])])]),_:1})])):m(``,!0)])])}var ut=i({name:`RecentPanel`,components:{TaskPreview:D(Ve,[[`render`,lt],[`__scopeId`,`data-v-916b8970`]]),BotPlaceholder:J,NoTasks:Y,ScrollList:W},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.wan?.tasks,items:this.$store.state.wan?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),dt={key:0},ft={key:2,class:`w-full h-full flex items-center justify-center`};function pt(t,n,r,i,a,u){let p=h(`bot-placeholder`),g=h(`task-preview`),_=h(`scroll-list`),v=h(`no-tasks`);return c(),e(l,null,[t.tasks?.items===void 0?(c(),e(`div`,dt,[s(p)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(c(),o(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:d(()=>[(c(!0),e(l,null,f(t.tasks?.items,e=>(c(),o(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):m(``,!0),t.tasks?.items?.length===0?(c(),e(`div`,ft,[s(v)])):m(``,!0)],64)}var mt=i({name:`WanIndex`,components:{ConfigPanel:Be,Layout:ae,RecentPanel:D(ut,[[`render`,pt]])},mixins:[te],inject:[`initialized`],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.wan?.status?.getApplications===k.Request},tasksLoading(){return this.$store.state.wan?.status?.getTasks===k.Request||this.fetchingTasks},credential(){return this.$store.state.wan.credential},config(){return this.$store.state.wan.config},application(){return this.$store.state.wan.application},tasks(){return this.$store.state.wan.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await G({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(`wan/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`wan/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let 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);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`wan/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!A(this.uploadTracker,e=>this.$t(e),e=>I.warning(e)))return;let e={...this.config,async:!0};if(!N())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}I.info(this.$t(`wan.message.startingTask`)),L(`wan`,F.generate(e,{token:t})).then(()=>{I.success(this.$t(`wan.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?I.error(this.$t(`wan.message.usedUp`)):I.error(this.$t(`wan.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function ht(e,t,n,r,i,a){let l=h(`config-panel`),u=h(`recent-panel`),f=h(`layout`);return c(),o(f,null,{config:d(()=>[s(l,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:d(()=>[s(u,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var gt=D(mt,[[`render`,ht]]);export{gt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,Ht as r,I as i,N as a,O as o,P as s,Q as c,S as l,b as u,dt as d,et as f,ft as p,k as m,nt as h,tt as g,v as _}from"./vendor-chart-kBsXB1rh.js";import{r as v,t as y}from"./select-BMkecWJ3.js";import{t as b}from"./upload-BVKjQKBq.js";import{t as x}from"./tooltip-DW1XZtXG.js";import{t as S}from"./image-DsbwPTmm.js";import{t as C}from"./alert-BDvIuUu3.js";import{t as w}from"./drawer-B9vlF9-6.js";import{gt as T,ht as E}from"./constants-Bs-70rQx.js";import{A as D,Ht as O,Kt as ee,Ut as te,Vr as k,Vt as A,Wr as j,Wt as M,en as N,fi as P,mn as F,ti as I,tr as L}from"./index-BDvTozfe.js";import{t as R}from"./index.es-B8y6GOsn.js";import{t as z}from"./CopyToClipboard-CdGWA3lV.js";import{t as B}from"./ImagePreview-8jJNA6v3.js";import{n as V}from"./taskDrawerMixin-CfysS2FH.js";import{t as H}from"./Consumption-B2gTsRAP.js";import{i as U,n as W,t as G}from"./pagination-BNew-8XN.js";import{t as K}from"./VideoPlayer-NjLw9ykt.js";import{t as q}from"./ApiCodeButton-WF_-U1A1.js";import{t as J}from"./BotPlaceholder-BU4a0XLq.js";import{t as Y}from"./NoTasks-C3tcHEtF.js";import{t as X}from"./PromptTextarea-66psG0Ji.js";var Z=i({name:`LayoutWan`,components:{ElDrawer:w,ElButton:P,FontAwesomeIcon:R},mixins:[V]}),Q={class:`main flex flex-row flex-1`},ne={class:`config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},re={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ie(n,r,i,a,o,l){let u=h(`font-awesome-icon`),f=h(`el-button`),m=h(`el-drawer`);return c(),e(`div`,Q,[t(`div`,ne,[g(n.$slots,`config`,{},void 0,!0)]),t(`div`,re,[g(n.$slots,`result`,{},void 0,!0)]),p(s(f,{circle:``,class:`menu`,onClick:r[0]||=e=>n.drawer=!0},{default:d(()=>[s(u,{icon:`fa-solid fa-magic`})]),_:1},512),[[_,!n.tasksEmpty]]),s(m,{modelValue:n.drawer,"onUpdate:modelValue":r[1]||=e=>n.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`},{default:d(()=>[g(n.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ae=D(Z,[[`render`,ie],[`__scopeId`,`data-v-1ffeb6b4`]]),oe=i({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},data(){return{}},computed:{options(){return[{value:`wan2.6-t2v`,label:this.$t(`wan.button.modelT2v`)},{value:`wan2.6-i2v`,label:this.$t(`wan.button.modelI2v`)},{value:`wan2.6-i2v-flash`,label:this.$t(`wan.button.modelI2vFlash`)},{value:`wan2.6-r2v`,label:this.$t(`wan.button.modelR2v`)}]},value:{get(){return this.$store.state.wan?.config?.model},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,model:e})}}},mounted(){this.value||=E}}),se={class:`field`},ce={class:`title font-bold`},le={class:`float-left`};function ue(r,i,a,u,p,m){let g=h(`el-option`),_=h(`el-select`);return c(),e(`div`,se,[t(`h2`,ce,n(r.$t(`wan.name.model`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`wan.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,le,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var de=D(oe,[[`render`,ue],[`__scopeId`,`data-v-eb090beb`]]),fe=`720p`,pe=i({name:`ResolutionSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:`480p`,label:this.$t(`wan.name.resolution480p`)},{value:`720p`,label:this.$t(`wan.name.resolution720p`)},{value:`1080p`,label:this.$t(`wan.name.resolution1080p`)}]},value:{get(){return this.$store.state.wan?.config?.resolution},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,resolution:e})}}},mounted(){this.value||=fe}}),me={class:`field`},he={class:`title font-bold`},ge={class:`float-left`};function _e(r,i,a,u,p,m){let g=h(`el-option`),_=h(`el-select`);return c(),e(`div`,me,[t(`h2`,he,n(r.$t(`wan.name.resolution`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`wan.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,ge,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var ve=D(pe,[[`render`,_e],[`__scopeId`,`data-v-3e39f44e`]]),ye=5,be=i({name:`DurationSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:5,label:this.$t(`wan.name.duration5s`)},{value:10,label:this.$t(`wan.name.duration10s`)},{value:15,label:this.$t(`wan.name.duration15s`)}]},value:{get(){return this.$store.state.wan?.config?.duration},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,duration:e})}}},mounted(){this.value||=ye}}),xe={class:`field`},Se={class:`title font-bold`},Ce={class:`float-left`};function we(r,i,a,u,p,m){let g=h(`el-option`),_=h(`el-select`);return c(),e(`div`,xe,[t(`h2`,Se,n(r.$t(`wan.name.duration`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`wan.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,Ce,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Te=D(be,[[`render`,we],[`__scopeId`,`data-v-5f35a2cf`]]),Ee=i({name:`ImageUrlInput`,components:{ElUpload:b,ElButton:P,InfoIcon:U,ImagePreview:B},mixins:[M,O],data(){return{fileList:[],uploadUrl:j()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.wan?.config?.image_url},set(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})}}},mounted(){this.value||=void 0,this.onSetImageUrl()},methods:{onExceed(){I.warning(this.$t(`wan.message.uploadImageExceed`))},onError(){I.error(this.$t(`wan.message.uploadImageError`))},async onRemove(){I.error(this.$t(`wan.message.uploadImageError`))},onSetImageUrl(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})},async onSuccess(){this.onSetImageUrl()}}}),De={class:`relative`},Oe={class:`flex justify-between`},ke={class:`flex justify-start items-center`},Ae={class:`text-sm font-bold`};function je(r,i,l,u,f,p){let g=h(`info-icon`),_=h(`image-preview`),v=h(`el-button`),y=h(`el-upload`);return c(),e(`div`,De,[t(`div`,Oe,[t(`div`,ke,[t(`span`,Ae,n(r.$t(`wan.name.imageUrl`)),1),s(g,{content:r.$t(`wan.description.imageUrl`),class:`info`},null,8,[`content`])])]),s(y,{"file-list":r.fileList,"onUpdate:fileList":i[0]||=e=>r.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,"show-file-list":!0,limit:1,multiple:!1,"list-type":`picture`,action:r.uploadUrl,"on-exceed":r.onExceed,"on-error":r.onError,"on-remove":r.onRemove,"on-success":r.onSuccess,headers:r.headers},{file:d(({file:e})=>[e.url&&e.percentage!==void 0?(c(),o(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):m(``,!0)]),default:d(()=>[s(v,{size:`small`,type:`primary`,class:`btn btn-upload`,round:``},{default:d(()=>[a(n(r.$t(`wan.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-remove`,`on-success`,`headers`])])}var Me=D(Ee,[[`render`,je],[`__scopeId`,`data-v-41a69004`]]),Ne=i({name:`PromptInput`,components:{PromptTextarea:X},computed:{prompt:{get(){return this.$store.state.wan?.config?.prompt},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,prompt:e})}}},mounted(){this.prompt||=``}});function Pe(e,t,n,r,i,a){let s=h(`prompt-textarea`);return c(),o(s,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`wan.name.prompt`),info:e.$t(`wan.description.prompt`),placeholder:e.$t(`wan.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Fe=i({name:`PresetPanel`,components:{ElButton:P,FontAwesomeIcon:R,PromptInput:D(Ne,[[`render`,Pe]]),ImageUrlInput:Me,ModelSelector:de,ResolutionSelector:ve,DurationSelector:Te,Consumption:H},emits:[`generate`],computed:{config(){return this.$store.state.wan?.config},consumption(){return ee(this.config,this.service?.cost)},service(){return this.$store.state.wan?.service},supportsResolution(){let e=this.config?.model;return e===`wan2.6-t2v`||e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`},supportsDuration(){return this.config?.model===`wan2.6-t2v`},supportsImageUrl(){let e=this.config?.model;return e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ie={class:`flex flex-col h-full`},Le={class:`flex-1 overflow-y-auto p-5`},Re={class:`flex flex-col items-center justify-center px-5 pb-5`};function ze(r,i,l,u,f,p){let g=h(`prompt-input`),_=h(`model-selector`),v=h(`resolution-selector`),y=h(`duration-selector`),b=h(`image-url-input`),x=h(`consumption`),S=h(`font-awesome-icon`),C=h(`el-button`);return c(),e(`div`,Ie,[t(`div`,Le,[s(g,{class:`mb-4`}),s(_,{class:`mb-4`}),r.supportsResolution?(c(),o(v,{key:0,class:`mb-4`})):m(``,!0),r.supportsDuration?(c(),o(y,{key:1,class:`mb-4`})):m(``,!0),r.supportsImageUrl?(c(),o(b,{key:2,class:`mb-2`})):m(``,!0)]),t(`div`,Re,[s(x,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),s(C,{type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:d(()=>[s(S,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`wan.button.generate`)),1)]),_:1},8,[`onClick`])])])}var Be=D(Fe,[[`render`,ze]]),Ve=i({name:`TaskPreview`,components:{ElImage:S,CopyToClipboard:z,FontAwesomeIcon:R,ElAlert:C,VideoPlayer:K,ElTooltip:x,ElButton:P,ApiCodeButton:q},props:{modelValue:{type:Object,required:!0}},setup(){return{WAN_LOGO:T}},computed:{application(){return this.$store.state.wan?.application},config(){return this.$store.state.wan?.config}},methods:{onDownload(e){console.debug(`on download wan video`,e),window.open(e,`_blank`)}}}),He={class:`preview`},Ue={class:`left`},We={class:`main`},Ge={class:`bot`},Ke={class:`datetime`},qe={class:`info`},Je={key:0,class:`prompt mt-2`},Ye={key:0},Xe={key:1},Ze={key:0,class:r({content:!0,failed:!0})},Qe={key:0,class:`mb-4`},$e={key:1,class:r({operations:!0,"mt-2":!0})},et={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},tt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},nt={key:1,class:r({content:!0})},rt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},it={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},at={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ot={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},st={key:2,class:r({content:!0})},ct={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function lt(r,i,o,l,f,p){let g=h(`el-image`),_=h(`video-player`),v=h(`el-button`),y=h(`el-tooltip`),b=h(`api-code-button`),x=h(`font-awesome-icon`),S=h(`copy-to-clipboard`),C=h(`el-alert`);return c(),e(`div`,He,[t(`div`,Ue,[s(g,{src:r.WAN_LOGO,class:`avatar`},null,8,[`src`])]),t(`div`,We,[t(`div`,Ge,[a(n(r.$t(`wan.name.wanBot`))+` `,1),t(`span`,Ke,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,qe,[r.modelValue?.request?.prompt?(c(),e(`p`,Je,[a(n(r.modelValue?.request?.prompt)+` `,1),r.modelValue?.response?m(``,!0):(c(),e(`span`,Ye,` - (`+n(r.$t(`wan.status.pending`))+`) `,1)),r.modelValue?.response?.state===`processing`||r.modelValue?.response?.state===`pending`||r.modelValue?.response?.state===`running`?(c(),e(`span`,Xe,` - (`+n(r.$t(`wan.status.processing`))+`) `,1)):m(``,!0)])):m(``,!0)]),r.modelValue?.response?.success===!0?(c(),e(`div`,Ze,[r.modelValue?.response?.video_url?(c(),e(`div`,Qe,[s(_,{src:r.modelValue?.response?.video_url},null,8,[`src`])])):m(``,!0),r.modelValue?.response?.video_url?(c(),e(`div`,$e,[s(y,{class:`box-item`,effect:`dark`,content:r.$t(`wan.message.downloadVideo`),placement:`top-start`},{default:d(()=>[s(v,{type:`info`,size:`small`,class:`mb-2`,onClick:i[0]||=u(e=>r.onDownload(r.modelValue?.response?.video_url),[`stop`])},{default:d(()=>[a(n(r.$t(`wan.button.download`)),1)]),_:1})]),_:1},8,[`content`]),s(b,{path:`/wan/videos`,body:r.modelValue?.request},null,8,[`body`])])):m(``,!0),s(C,{closable:!1,class:`mt-2 success`},{default:d(()=>[r.modelValue?.request?.model?(c(),e(`p`,et,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.model`))+`: `+n(r.modelValue?.request?.model)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])])):m(``,!0),t(`p`,tt,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,$,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):m(``,!0)]),_:1})])):m(``,!0),r.modelValue?.response?.success===!1?(c(),e(`div`,nt,[s(C,{closable:!1,class:`failure`},{template:d(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.failure`)),1)]),default:d(()=>[t(`p`,rt,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])]),t(`p`,it,[s(x,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.failureReason`))+`: `+n(r.modelValue?.response?.error?.message)+` `,1),s(S,{content:r.modelValue?.response?.error?.message},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,at,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):m(``,!0),t(`p`,ot,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.traceId`))+`: `+n(r.modelValue?.response?.trace_id)+` `,1),s(S,{content:r.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):m(``,!0),r.modelValue?.response?.success===void 0?(c(),e(`div`,st,[s(C,{closable:!1,class:`info`},{template:d(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.failure`)),1)]),default:d(()=>[t(`p`,ct,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`wan.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id},null,8,[`content`])])]),_:1})])):m(``,!0)])])}var ut=i({name:`RecentPanel`,components:{TaskPreview:D(Ve,[[`render`,lt],[`__scopeId`,`data-v-916b8970`]]),BotPlaceholder:J,NoTasks:Y,ScrollList:W},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.wan?.tasks,items:this.$store.state.wan?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),dt={key:0},ft={key:2,class:`w-full h-full flex items-center justify-center`};function pt(t,n,r,i,a,u){let p=h(`bot-placeholder`),g=h(`task-preview`),_=h(`scroll-list`),v=h(`no-tasks`);return c(),e(l,null,[t.tasks?.items===void 0?(c(),e(`div`,dt,[s(p)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(c(),o(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:d(()=>[(c(!0),e(l,null,f(t.tasks?.items,e=>(c(),o(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):m(``,!0),t.tasks?.items?.length===0?(c(),e(`div`,ft,[s(v)])):m(``,!0)],64)}var mt=i({name:`WanIndex`,components:{ConfigPanel:Be,Layout:ae,RecentPanel:D(ut,[[`render`,pt]])},mixins:[te],inject:[`initialized`],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.wan?.status?.getApplications===k.Request},tasksLoading(){return this.$store.state.wan?.status?.getTasks===k.Request||this.fetchingTasks},credential(){return this.$store.state.wan.credential},config(){return this.$store.state.wan.config},application(){return this.$store.state.wan.application},tasks(){return this.$store.state.wan.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await G({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(`wan/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`wan/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let 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);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`wan/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!A(this.uploadTracker,e=>this.$t(e),e=>I.warning(e)))return;let e={...this.config,async:!0};if(!N())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}I.info(this.$t(`wan.message.startingTask`)),L(`wan`,F.generate(e,{token:t})).then(()=>{I.success(this.$t(`wan.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?I.error(this.$t(`wan.message.usedUp`)):I.error(this.$t(`wan.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function ht(e,t,n,r,i,a){let l=h(`config-panel`),u=h(`recent-panel`),f=h(`layout`);return c(),o(f,null,{config:d(()=>[s(l,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:d(()=>[s(u,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var gt=D(mt,[[`render`,ht]]);export{gt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,Ht as r,I as i,N as a,O as o,P as s,Q as c,S as l,b as u,dt as d,et as f,k as p,nt as m}from"./vendor-chart-kBsXB1rh.js";import{r as h,t as g}from"./select-leWGa1qy.js";import{t as _}from"./upload-DFnNkCSJ.js";import{t as v}from"./tooltip-Bg-5iX0y.js";import{t as y}from"./image-D2Uc31X4.js";import{t as b}from"./alert-Opv77n_G.js";import{Jn as x}from"./constants-BqvGY8Qp.js";import{A as S,Dn as C,Ht as w,Kt as T,Ut as E,Vr as D,Vt as O,Wr as ee,Wt as te,en as k,fi as A,ti as j,tr as M}from"./index-DPT0LY_a.js";import{t as N}from"./index.es-BF0roIeI.js";import{t as P}from"./CopyToClipboard-BPv_hKe6.js";import{t as F}from"./ImagePreview-DiItKL-y.js";import{t as I}from"./Consumption-C6c-vSv0.js";import{i as L,n as R,t as z}from"./pagination-CUnmIqY0.js";import{t as B}from"./VideoPlayer-DR0GK7w6.js";import{t as V}from"./ApiCodeButton-Cdz-Fy3S.js";import{t as H}from"./BotPlaceholder-60_H2JxQ.js";import{t as U}from"./NoTasks-BUMSVlPF.js";import{t as W}from"./Hailuo-BhiYWRfG.js";import{t as G}from"./PromptTextarea-Dfu-o_C6.js";var K=i({name:`ModelSelector`,components:{ElSelect:h,ElOption:g},data(){return{}},computed:{options(){return[{value:`minimax-t2v`,label:this.$t(`hailuo.button.model1`)},{value:`minimax-i2v`,label:this.$t(`hailuo.button.model2`)},{value:`minimax-i2v-director`,label:this.$t(`hailuo.button.model3`)}]},value:{get(){return this.$store.state.hailuo?.config?.model},set(e){this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,model:e})}}},mounted(){this.value||=x}}),q={class:`field`},J={class:`title font-bold`},Y={class:`float-left`};function X(r,i,a,u,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,q,[t(`h2`,J,n(r.$t(`hailuo.name.model`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`hailuo.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,Y,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Z=S(K,[[`render`,X],[`__scopeId`,`data-v-a768fbd9`]]),Q=i({name:`StartImageUrlInput`,components:{ElUpload:_,ElButton:A,InfoIcon:L,ImagePreview:F},mixins:[te,w],data(){return{fileList:[],uploadUrl:ee()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.hailuo?.config?.first_image_url},set(){let e=this.urls?.[0];this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,first_image_url:e})}}},mounted(){this.value||=void 0,this.onSetStartImageUrl()},methods:{onExceed(){j.warning(this.$t(`hailuo.message.uploadStartImageExceed`))},onError(){j.error(this.$t(`hailuo.message.uploadStartImageError`))},async onRemove(){j.error(this.$t(`hailuo.message.uploadStartImageError`))},onSetStartImageUrl(){let e=this.urls?.[0];this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,first_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),ne={class:`relative`},re={class:`flex justify-between`},ie={class:`flex justify-start items-center`},ae={class:`text-sm font-bold`};function oe(r,i,l,u,f,h){let g=m(`info-icon`),_=m(`image-preview`),v=m(`el-button`),y=m(`el-upload`);return c(),e(`div`,ne,[t(`div`,re,[t(`div`,ie,[t(`span`,ae,n(r.$t(`hailuo.name.startImageUrl`)),1),s(g,{content:r.$t(`hailuo.description.startImageUrl`),class:`info`},null,8,[`content`])])]),s(y,{ref:`uploader`,"file-list":r.fileList,"onUpdate:fileList":i[0]||=e=>r.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,"show-file-list":!0,limit:1,multiple:!1,"list-type":`picture`,action:r.uploadUrl,"on-exceed":r.onExceed,"on-error":r.onError,"on-remove":r.onRemove,"on-success":r.onSuccess,headers:r.headers},{file:d(({file:e})=>[e.url&&e.percentage!==void 0?(c(),o(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):p(``,!0)]),default:d(()=>[s(v,{size:`small`,type:`primary`,class:`btn btn-upload`,round:``},{default:d(()=>[a(n(r.$t(`hailuo.button.uploadStartImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-remove`,`on-success`,`headers`])])}var se=S(Q,[[`render`,oe],[`__scopeId`,`data-v-fbf49b06`]]),ce=i({name:`PromptInput`,components:{PromptTextarea:G},computed:{prompt:{get(){return this.$store.state.hailuo?.config?.prompt},set(e){this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,prompt:e})}}},mounted(){this.prompt||=``}});function le(e,t,n,r,i,a){let s=m(`prompt-textarea`);return c(),o(s,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`hailuo.name.prompt`),info:e.$t(`hailuo.description.prompt`),placeholder:e.$t(`hailuo.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var ue=i({name:`PresetPanel`,components:{ElButton:A,FontAwesomeIcon:N,PromptInput:S(ce,[[`render`,le]]),StartImageUrlInput:se,ModelSelector:Z,Consumption:I},emits:[`generate`],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return T(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),de={class:`flex flex-col h-full`},fe={class:`flex-1 overflow-y-auto p-5`},pe={class:`flex flex-col items-center justify-center px-5 pb-5`};function me(r,i,l,u,f,h){let g=m(`prompt-input`),_=m(`model-selector`),v=m(`start-image-url-input`),y=m(`consumption`),b=m(`font-awesome-icon`),x=m(`el-button`);return c(),e(`div`,de,[t(`div`,fe,[s(g,{class:`mb-4`}),s(_,{class:`mb-4`}),r.config?.model===`minimax-i2v`?(c(),o(v,{key:0,class:`mb-2`})):p(``,!0)]),t(`div`,pe,[s(y,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),r.config?.video_url!==void 0||r.config?.custom?(c(),o(x,{key:0,type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:d(()=>[s(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`hailuo.button.extend`)),1)]),_:1},8,[`onClick`])):(c(),o(x,{key:1,type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:d(()=>[s(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`hailuo.button.generate`)),1)]),_:1},8,[`onClick`]))])])}var he=S(ue,[[`render`,me]]),ge=i({name:`TaskPreview`,components:{ElImage:y,CopyToClipboard:P,FontAwesomeIcon:N,ElAlert:b,VideoPlayer:B,ElTooltip:v,ElButton:A,ApiCodeButton:V},props:{modelValue:{type:Object,required:!0}},computed:{application(){return this.$store.state.hailuo?.application},config(){return this.$store.state.hailuo?.config},video(){return this.modelValue?.response?.data?.[0]}},methods:{onDownload(e){console.debug(`on download hailuo video`,e),window.open(e,`_blank`)}}}),_e={class:`preview`},ve={class:`left`},ye={class:`main`},be={class:`bot`},xe={class:`datetime`},Se={class:`info`},Ce={key:0,class:`prompt mt-2`},we={key:0},Te={key:1},Ee={key:0,class:r({content:!0,failed:!0})},De={key:0,class:`mb-4`},Oe={key:1,class:r({operations:!0,"mt-2":!0})},ke={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ae={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},je={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Me={key:1,class:r({content:!0})},Ne={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pe={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Fe={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ie={key:2,class:r({content:!0})},Le={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Re(r,i,l,f,h,g){let _=m(`el-image`),v=m(`video-player`),y=m(`el-button`),b=m(`el-tooltip`),x=m(`api-code-button`),S=m(`font-awesome-icon`),C=m(`copy-to-clipboard`),w=m(`el-alert`);return c(),e(`div`,_e,[t(`div`,ve,[s(_,{src:`https://cdn.acedata.cloud/0qg4gp.png`,class:`avatar`})]),t(`div`,ye,[t(`div`,be,[a(n(r.$t(`hailuo.name.hailuoBot`))+` `,1),t(`span`,xe,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,Se,[r.modelValue?.request?.prompt?(c(),e(`p`,Ce,[a(n(r.modelValue?.request?.prompt)+` `,1),r.modelValue?.response?p(``,!0):(c(),e(`span`,we,` - (`+n(r.$t(`hailuo.status.pending`))+`) `,1)),r.video?.state===`processing`||r.video?.state===`pending`||r.video?.state===`running`?(c(),e(`span`,Te,` - (`+n(r.$t(`hailuo.status.processing`))+`) `,1)):p(``,!0)])):p(``,!0)]),r.modelValue?.response?.success===!0?(c(),e(`div`,Ee,[r.video?.video_url?(c(),e(`div`,De,[s(v,{src:r.video?.video_url},null,8,[`src`])])):p(``,!0),r.video?(c(),e(`div`,Oe,[s(b,{class:`box-item`,effect:`dark`,content:r.$t(`hailuo.message.downloadVideo`),placement:`top-start`},{default:d(()=>[r.video?.video_url?(c(),o(y,{key:0,type:`info`,size:`small`,class:`mb-2`,onClick:i[0]||=u(e=>r.onDownload(r.video?.video_url),[`stop`])},{default:d(()=>[a(n(r.$t(`hailuo.button.download`)),1)]),_:1})):p(``,!0)]),_:1},8,[`content`]),s(x,{path:`/hailuo/videos`,body:r.modelValue?.request},null,8,[`body`])])):p(``,!0),s(w,{closable:!1,class:`mt-2 success`},{default:d(()=>[r.modelValue?.request?.model?(c(),e(`p`,ke,[s(S,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.model`))+`: `+n(r.modelValue?.request?.model)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])])):p(``,!0),t(`p`,Ae,[s(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,je,[s(S,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0)]),_:1})])):p(``,!0),r.modelValue?.response?.success===!1?(c(),e(`div`,Me,[s(w,{closable:!1,class:`failure`},{template:d(()=>[s(S,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.failure`)),1)]),default:d(()=>[t(`p`,Ne,[s(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])]),t(`p`,Pe,[s(S,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.failureReason`))+`: `+n(r.modelValue?.response?.error?.message)+` `,1),s(C,{content:r.modelValue?.response?.error?.message},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,$,[s(S,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0),t(`p`,Fe,[s(S,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.traceId`))+`: `+n(r.modelValue?.response?.trace_id)+` `,1),s(C,{content:r.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):p(``,!0),r.modelValue?.response?.success===void 0?(c(),e(`div`,Ie,[s(w,{closable:!1,class:`info`},{template:d(()=>[s(S,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.failure`)),1)]),default:d(()=>[t(`p`,Le,[s(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])])]),_:1})])):p(``,!0)])])}var ze=i({name:`RecentPanel`,components:{TaskPreview:S(ge,[[`render`,Re],[`__scopeId`,`data-v-53d13da4`]]),BotPlaceholder:H,NoTasks:U,ScrollList:R},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.hailuo?.tasks,items:this.$store.state.hailuo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Be={key:0},Ve={key:2,class:`w-full h-full flex items-center justify-center`};function He(t,n,r,i,a,u){let h=m(`bot-placeholder`),g=m(`task-preview`),_=m(`scroll-list`),v=m(`no-tasks`);return c(),e(l,null,[t.tasks?.items===void 0?(c(),e(`div`,Be,[s(h)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(c(),o(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:d(()=>[(c(!0),e(l,null,f(t.tasks?.items,e=>(c(),o(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):p(``,!0),t.tasks?.items?.length===0?(c(),e(`div`,Ve,[s(v)])):p(``,!0)],64)}var Ue=i({name:`HailuoIndex`,components:{ConfigPanel:he,Layout:W,RecentPanel:S(ze,[[`render`,He]])},mixins:[E],inject:[`initialized`],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.hailuo?.status?.getApplications===D.Request},tasksLoading(){return this.$store.state.hailuo?.status?.getTasks===D.Request||this.fetchingTasks},credential(){return this.$store.state.hailuo.credential},config(){return this.$store.state.hailuo.config},application(){return this.$store.state.hailuo.application},tasks(){return this.$store.state.hailuo.tasks}},watch:{tasks:{handler(e,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 z({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`hailuo/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`hailuo/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let 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);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`hailuo/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!O(this.uploadTracker,e=>this.$t(e),e=>j.warning(e)))return;let e={...this.config,async:!0};if(!k())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}j.info(this.$t(`hailuo.message.startingTask`)),M(`hailuo`,C.generate(e,{token:t})).then(()=>{j.success(this.$t(`hailuo.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?j.error(this.$t(`hailuo.message.usedUp`)):j.error(this.$t(`hailuo.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function We(e,t,n,r,i,a){let l=m(`config-panel`),u=m(`recent-panel`),f=m(`layout`);return c(),o(f,null,{config:d(()=>[s(l,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:d(()=>[s(u,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Ge=S(Ue,[[`render`,We]]);export{Ge as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,Ht as r,I as i,N as a,O as o,P as s,Q as c,S as l,b as u,dt as d,et as f,k as p,nt as m}from"./vendor-chart-kBsXB1rh.js";import{r as h,t as g}from"./select-BMkecWJ3.js";import{t as _}from"./upload-BVKjQKBq.js";import{t as v}from"./tooltip-DW1XZtXG.js";import{t as y}from"./image-DsbwPTmm.js";import{t as b}from"./alert-BDvIuUu3.js";import{Jn as x}from"./constants-Bs-70rQx.js";import{A as S,Dn as C,Ht as w,Kt as T,Ut as E,Vr as D,Vt as O,Wr as ee,Wt as te,en as k,fi as A,ti as j,tr as M}from"./index-BDvTozfe.js";import{t as N}from"./index.es-B8y6GOsn.js";import{t as P}from"./CopyToClipboard-CdGWA3lV.js";import{t as F}from"./ImagePreview-8jJNA6v3.js";import{t as I}from"./Consumption-B2gTsRAP.js";import{i as L,n as R,t as z}from"./pagination-BNew-8XN.js";import{t as B}from"./VideoPlayer-NjLw9ykt.js";import{t as V}from"./ApiCodeButton-WF_-U1A1.js";import{t as H}from"./BotPlaceholder-BU4a0XLq.js";import{t as U}from"./NoTasks-C3tcHEtF.js";import{t as W}from"./Hailuo-CVqeGU-4.js";import{t as G}from"./PromptTextarea-66psG0Ji.js";var K=i({name:`ModelSelector`,components:{ElSelect:h,ElOption:g},data(){return{}},computed:{options(){return[{value:`minimax-t2v`,label:this.$t(`hailuo.button.model1`)},{value:`minimax-i2v`,label:this.$t(`hailuo.button.model2`)},{value:`minimax-i2v-director`,label:this.$t(`hailuo.button.model3`)}]},value:{get(){return this.$store.state.hailuo?.config?.model},set(e){this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,model:e})}}},mounted(){this.value||=x}}),q={class:`field`},J={class:`title font-bold`},Y={class:`float-left`};function X(r,i,a,u,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,q,[t(`h2`,J,n(r.$t(`hailuo.name.model`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`hailuo.placeholder.select`),clearable:``},{default:d(()=>[(c(!0),e(l,null,f(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},{default:d(()=>[t(`span`,Y,n(e.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Z=S(K,[[`render`,X],[`__scopeId`,`data-v-a768fbd9`]]),Q=i({name:`StartImageUrlInput`,components:{ElUpload:_,ElButton:A,InfoIcon:L,ImagePreview:F},mixins:[te,w],data(){return{fileList:[],uploadUrl:ee()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.hailuo?.config?.first_image_url},set(){let e=this.urls?.[0];this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,first_image_url:e})}}},mounted(){this.value||=void 0,this.onSetStartImageUrl()},methods:{onExceed(){j.warning(this.$t(`hailuo.message.uploadStartImageExceed`))},onError(){j.error(this.$t(`hailuo.message.uploadStartImageError`))},async onRemove(){j.error(this.$t(`hailuo.message.uploadStartImageError`))},onSetStartImageUrl(){let e=this.urls?.[0];this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,first_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),ne={class:`relative`},re={class:`flex justify-between`},ie={class:`flex justify-start items-center`},ae={class:`text-sm font-bold`};function oe(r,i,l,u,f,h){let g=m(`info-icon`),_=m(`image-preview`),v=m(`el-button`),y=m(`el-upload`);return c(),e(`div`,ne,[t(`div`,re,[t(`div`,ie,[t(`span`,ae,n(r.$t(`hailuo.name.startImageUrl`)),1),s(g,{content:r.$t(`hailuo.description.startImageUrl`),class:`info`},null,8,[`content`])])]),s(y,{ref:`uploader`,"file-list":r.fileList,"onUpdate:fileList":i[0]||=e=>r.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,"show-file-list":!0,limit:1,multiple:!1,"list-type":`picture`,action:r.uploadUrl,"on-exceed":r.onExceed,"on-error":r.onError,"on-remove":r.onRemove,"on-success":r.onSuccess,headers:r.headers},{file:d(({file:e})=>[e.url&&e.percentage!==void 0?(c(),o(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):p(``,!0)]),default:d(()=>[s(v,{size:`small`,type:`primary`,class:`btn btn-upload`,round:``},{default:d(()=>[a(n(r.$t(`hailuo.button.uploadStartImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-remove`,`on-success`,`headers`])])}var se=S(Q,[[`render`,oe],[`__scopeId`,`data-v-fbf49b06`]]),ce=i({name:`PromptInput`,components:{PromptTextarea:G},computed:{prompt:{get(){return this.$store.state.hailuo?.config?.prompt},set(e){this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,prompt:e})}}},mounted(){this.prompt||=``}});function le(e,t,n,r,i,a){let s=m(`prompt-textarea`);return c(),o(s,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`hailuo.name.prompt`),info:e.$t(`hailuo.description.prompt`),placeholder:e.$t(`hailuo.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var ue=i({name:`PresetPanel`,components:{ElButton:A,FontAwesomeIcon:N,PromptInput:S(ce,[[`render`,le]]),StartImageUrlInput:se,ModelSelector:Z,Consumption:I},emits:[`generate`],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return T(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),de={class:`flex flex-col h-full`},fe={class:`flex-1 overflow-y-auto p-5`},pe={class:`flex flex-col items-center justify-center px-5 pb-5`};function me(r,i,l,u,f,h){let g=m(`prompt-input`),_=m(`model-selector`),v=m(`start-image-url-input`),y=m(`consumption`),b=m(`font-awesome-icon`),x=m(`el-button`);return c(),e(`div`,de,[t(`div`,fe,[s(g,{class:`mb-4`}),s(_,{class:`mb-4`}),r.config?.model===`minimax-i2v`?(c(),o(v,{key:0,class:`mb-2`})):p(``,!0)]),t(`div`,pe,[s(y,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),r.config?.video_url!==void 0||r.config?.custom?(c(),o(x,{key:0,type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:d(()=>[s(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`hailuo.button.extend`)),1)]),_:1},8,[`onClick`])):(c(),o(x,{key:1,type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:d(()=>[s(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`hailuo.button.generate`)),1)]),_:1},8,[`onClick`]))])])}var he=S(ue,[[`render`,me]]),ge=i({name:`TaskPreview`,components:{ElImage:y,CopyToClipboard:P,FontAwesomeIcon:N,ElAlert:b,VideoPlayer:B,ElTooltip:v,ElButton:A,ApiCodeButton:V},props:{modelValue:{type:Object,required:!0}},computed:{application(){return this.$store.state.hailuo?.application},config(){return this.$store.state.hailuo?.config},video(){return this.modelValue?.response?.data?.[0]}},methods:{onDownload(e){console.debug(`on download hailuo video`,e),window.open(e,`_blank`)}}}),_e={class:`preview`},ve={class:`left`},ye={class:`main`},be={class:`bot`},xe={class:`datetime`},Se={class:`info`},Ce={key:0,class:`prompt mt-2`},we={key:0},Te={key:1},Ee={key:0,class:r({content:!0,failed:!0})},De={key:0,class:`mb-4`},Oe={key:1,class:r({operations:!0,"mt-2":!0})},ke={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ae={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},je={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Me={key:1,class:r({content:!0})},Ne={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pe={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Fe={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ie={key:2,class:r({content:!0})},Le={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Re(r,i,l,f,h,g){let _=m(`el-image`),v=m(`video-player`),y=m(`el-button`),b=m(`el-tooltip`),x=m(`api-code-button`),S=m(`font-awesome-icon`),C=m(`copy-to-clipboard`),w=m(`el-alert`);return c(),e(`div`,_e,[t(`div`,ve,[s(_,{src:`https://cdn.acedata.cloud/0qg4gp.png`,class:`avatar`})]),t(`div`,ye,[t(`div`,be,[a(n(r.$t(`hailuo.name.hailuoBot`))+` `,1),t(`span`,xe,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,Se,[r.modelValue?.request?.prompt?(c(),e(`p`,Ce,[a(n(r.modelValue?.request?.prompt)+` `,1),r.modelValue?.response?p(``,!0):(c(),e(`span`,we,` - (`+n(r.$t(`hailuo.status.pending`))+`) `,1)),r.video?.state===`processing`||r.video?.state===`pending`||r.video?.state===`running`?(c(),e(`span`,Te,` - (`+n(r.$t(`hailuo.status.processing`))+`) `,1)):p(``,!0)])):p(``,!0)]),r.modelValue?.response?.success===!0?(c(),e(`div`,Ee,[r.video?.video_url?(c(),e(`div`,De,[s(v,{src:r.video?.video_url},null,8,[`src`])])):p(``,!0),r.video?(c(),e(`div`,Oe,[s(b,{class:`box-item`,effect:`dark`,content:r.$t(`hailuo.message.downloadVideo`),placement:`top-start`},{default:d(()=>[r.video?.video_url?(c(),o(y,{key:0,type:`info`,size:`small`,class:`mb-2`,onClick:i[0]||=u(e=>r.onDownload(r.video?.video_url),[`stop`])},{default:d(()=>[a(n(r.$t(`hailuo.button.download`)),1)]),_:1})):p(``,!0)]),_:1},8,[`content`]),s(x,{path:`/hailuo/videos`,body:r.modelValue?.request},null,8,[`body`])])):p(``,!0),s(w,{closable:!1,class:`mt-2 success`},{default:d(()=>[r.modelValue?.request?.model?(c(),e(`p`,ke,[s(S,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.model`))+`: `+n(r.modelValue?.request?.model)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])])):p(``,!0),t(`p`,Ae,[s(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,je,[s(S,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0)]),_:1})])):p(``,!0),r.modelValue?.response?.success===!1?(c(),e(`div`,Me,[s(w,{closable:!1,class:`failure`},{template:d(()=>[s(S,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.failure`)),1)]),default:d(()=>[t(`p`,Ne,[s(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])]),t(`p`,Pe,[s(S,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.failureReason`))+`: `+n(r.modelValue?.response?.error?.message)+` `,1),s(C,{content:r.modelValue?.response?.error?.message},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,$,[s(S,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0),t(`p`,Fe,[s(S,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.traceId`))+`: `+n(r.modelValue?.response?.trace_id)+` `,1),s(C,{content:r.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):p(``,!0),r.modelValue?.response?.success===void 0?(c(),e(`div`,Ie,[s(w,{closable:!1,class:`info`},{template:d(()=>[s(S,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.failure`)),1)]),default:d(()=>[t(`p`,Le,[s(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`hailuo.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(C,{content:r.modelValue?.id},null,8,[`content`])])]),_:1})])):p(``,!0)])])}var ze=i({name:`RecentPanel`,components:{TaskPreview:S(ge,[[`render`,Re],[`__scopeId`,`data-v-53d13da4`]]),BotPlaceholder:H,NoTasks:U,ScrollList:R},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.hailuo?.tasks,items:this.$store.state.hailuo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Be={key:0},Ve={key:2,class:`w-full h-full flex items-center justify-center`};function He(t,n,r,i,a,u){let h=m(`bot-placeholder`),g=m(`task-preview`),_=m(`scroll-list`),v=m(`no-tasks`);return c(),e(l,null,[t.tasks?.items===void 0?(c(),e(`div`,Be,[s(h)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(c(),o(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:d(()=>[(c(!0),e(l,null,f(t.tasks?.items,e=>(c(),o(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):p(``,!0),t.tasks?.items?.length===0?(c(),e(`div`,Ve,[s(v)])):p(``,!0)],64)}var Ue=i({name:`HailuoIndex`,components:{ConfigPanel:he,Layout:W,RecentPanel:S(ze,[[`render`,He]])},mixins:[E],inject:[`initialized`],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.hailuo?.status?.getApplications===D.Request},tasksLoading(){return this.$store.state.hailuo?.status?.getTasks===D.Request||this.fetchingTasks},credential(){return this.$store.state.hailuo.credential},config(){return this.$store.state.hailuo.config},application(){return this.$store.state.hailuo.application},tasks(){return this.$store.state.hailuo.tasks}},watch:{tasks:{handler(e,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 z({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`hailuo/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`hailuo/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let 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);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`hailuo/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!O(this.uploadTracker,e=>this.$t(e),e=>j.warning(e)))return;let e={...this.config,async:!0};if(!k())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}j.info(this.$t(`hailuo.message.startingTask`)),M(`hailuo`,C.generate(e,{token:t})).then(()=>{j.success(this.$t(`hailuo.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?j.error(this.$t(`hailuo.message.usedUp`)):j.error(this.$t(`hailuo.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function We(e,t,n,r,i,a){let l=m(`config-panel`),u=m(`recent-panel`),f=m(`layout`);return c(),o(f,null,{config:d(()=>[s(l,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:d(()=>[s(u,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Ge=S(Ue,[[`render`,We]]);export{Ge as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,Ht as r,I as i,N as a,O as o,P as s,Q as c,S as l,dt as u,et as d,ft as f,k as p,nt as m,tt as h,v as g}from"./vendor-chart-kBsXB1rh.js";import{r as _,t as v}from"./select-leWGa1qy.js";import{t as y}from"./upload-DFnNkCSJ.js";import{t as b}from"./image-D2Uc31X4.js";import{t as x}from"./alert-Opv77n_G.js";import{t as S}from"./drawer-VR-pZKxs.js";import{t as C}from"./input-number-CjZlVSMZ.js";import{t as w}from"./slider-CtUWZeFa.js";import{$n as T,Qn as E,Zn as D}from"./constants-BqvGY8Qp.js";import{A as O,Ht as k,Kt as A,On as ee,Ut as te,Vr as j,Vt as M,Wr as N,Wt as P,en as F,fi as I,ti as L,tr as R}from"./index-DPT0LY_a.js";import{t as z}from"./index.es-BF0roIeI.js";import{t as B}from"./CopyToClipboard-BPv_hKe6.js";import{t as V}from"./ImagePreview-DiItKL-y.js";import{n as H}from"./taskDrawerMixin-CfysS2FH.js";import{t as U}from"./Consumption-C6c-vSv0.js";import{i as W,n as G,t as K}from"./pagination-CUnmIqY0.js";import{t as q}from"./ApiCodeButton-Cdz-Fy3S.js";import{t as J}from"./BotPlaceholder-60_H2JxQ.js";import{t as Y}from"./NoTasks-BUMSVlPF.js";import{t as X}from"./PromptTextarea-Dfu-o_C6.js";import{t as Z}from"./ImageWrapper-CxRidcAh.js";var Q=i({name:`LayoutFlux`,components:{ElDrawer:S,ElButton:I,FontAwesomeIcon:z},mixins:[H]}),ne={class:`main flex flex-row flex-1`},re={class:`config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ie={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ae(n,r,i,a,o,l){let d=m(`font-awesome-icon`),p=m(`el-button`),_=m(`el-drawer`);return c(),e(`div`,ne,[t(`div`,re,[h(n.$slots,`config`,{},void 0,!0)]),t(`div`,ie,[h(n.$slots,`result`,{},void 0,!0)]),f(s(p,{circle:``,class:`menu`,onClick:r[0]||=e=>n.drawer=!0},{default:u(()=>[s(d,{icon:`fa-solid fa-magic`})]),_:1},512),[[g,!n.tasksEmpty]]),s(_,{modelValue:n.drawer,"onUpdate:modelValue":r[1]||=e=>n.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer`},{default:u(()=>[h(n.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var oe=O(Q,[[`render`,ae],[`__scopeId`,`data-v-8ae8c974`]]),se=i({name:`ModelSelector`,components:{ElSelect:_,ElOption:v},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=T}}),ce={class:`field`},le={class:`title font-bold`};function ue(r,i,a,f,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,ce,[t(`h2`,le,n(r.$t(`flux.name.model`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`flux.placeholder.select`)},{default:u(()=>[(c(!0),e(l,null,d(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var de=O(se,[[`render`,ue],[`__scopeId`,`data-v-e9b17945`]]),fe=i({name:`CountSelector`,components:{ElSlider:w,InfoIcon:W,ElInputNumber:C},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),pe={class:`flex justify-between`},me={class:`flex justify-start items-center`},he={class:`text-sm font-bold`},ge={class:`flex justify-end items-center`},_e={class:`w-full`};function ve(r,i,a,o,l,u){let d=m(`info-icon`),f=m(`el-input-number`),p=m(`el-slider`);return c(),e(`div`,null,[t(`div`,pe,[t(`div`,me,[t(`span`,he,n(r.$t(`flux.name.numbers`)),1),s(d,{content:r.$t(`flux.description.numbers`)},null,8,[`content`])]),t(`div`,ge,[s(f,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),t(`div`,_e,[s(p,{modelValue:r.value,"onUpdate:modelValue":i[1]||=e=>r.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var ye=O(fe,[[`render`,ve]]),be=i({name:`ActionSelector`,components:{ElSelect:_,ElOption:v},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=E}}),xe={class:`field`},Se={class:`title font-bold`};function Ce(r,i,a,f,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,xe,[t(`h2`,Se,n(r.$t(`flux.name.task`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`flux.placeholder.select`)},{default:u(()=>[(c(!0),e(l,null,d(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var we=O(be,[[`render`,Ce],[`__scopeId`,`data-v-81fd05e5`]]),Te=i({name:`ImageUrlInput`,components:{ElUpload:y,ElButton:I,InfoIcon:W,FontAwesomeIcon:z,ImagePreview:V},mixins:[P,k],emits:[`change`],data(){return{fileList:[],uploadUrl:N()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){L.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){L.error(this.$t(`flux.message.uploadStartImageError`))}}}),Ee={class:`relative`},De={class:`flex justify-between`},Oe={class:`flex justify-start items-center`},ke={class:`text-sm font-bold`};function Ae(r,i,o,l,d,f){let p=m(`info-icon`),h=m(`image-preview`),g=m(`font-awesome-icon`),_=m(`el-button`),v=m(`el-upload`);return c(),e(`div`,Ee,[t(`div`,De,[t(`div`,Oe,[t(`span`,ke,n(r.$t(`flux.name.imageUrl`)),1),s(p,{content:r.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),s(v,{ref:`uploader`,"file-list":r.fileList,"onUpdate:fileList":i[0]||=e=>r.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,action:r.uploadUrl,"on-exceed":r.onExceed,"on-error":r.onError,headers:r.headers},{file:u(({file:e})=>[s(h,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:u(()=>[s(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:u(()=>[s(g,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),a(` `+n(r.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`headers`])])}var je=O(Te,[[`render`,Ae],[`__scopeId`,`data-v-7482072d`]]),Me=i({name:`PromptInput`,components:{PromptTextarea:X},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function Ne(e,t,n,r,i,a){let s=m(`prompt-textarea`);return c(),o(s,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Pe=O(Me,[[`render`,Ne]]),Fe=i({name:`SizeSelector`,components:{ElSelect:_,ElOption:v},data(){return{options:D}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),Ie={class:`field`},Le={class:`title font-bold`};function Re(r,i,a,f,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,Ie,[t(`h2`,Le,n(r.$t(`flux.name.ratio`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`flux.placeholder.select`)},{default:u(()=>[(c(!0),e(l,null,d(r.options,e=>(c(),o(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var ze=i({name:`PresetPanel`,components:{ElButton:I,FontAwesomeIcon:z,PromptInput:Pe,ModelSelector:de,CountSelector:ye,Consumption:U,ActionSelector:we,ImageUrlInput:je,SizeSelector:O(Fe,[[`render`,Re],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return A(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Be={class:`flex flex-col h-full`},Ve={class:`flex-1 overflow-y-auto p-5`},He={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ue(r,i,l,d,f,h){let g=m(`action-selector`),_=m(`prompt-input`),v=m(`image-url-input`),y=m(`model-selector`),b=m(`size-selector`),x=m(`count-selector`),S=m(`consumption`),C=m(`font-awesome-icon`),w=m(`el-button`);return c(),e(`div`,Be,[t(`div`,Ve,[s(g,{class:`mb-4`}),s(_,{class:`mb-4`}),r.config?.action===`edits`?(c(),o(v,{key:0,class:`mb-4`})):p(``,!0),s(y,{class:`mb-4`}),s(b,{class:`mb-4`}),s(x,{class:`mb-4`})]),t(`div`,He,[s(S,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),s(w,{type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:u(()=>[s(C,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var We=O(ze,[[`render`,Ue]]),Ge=i({name:`TaskPreview`,components:{ElImage:b,CopyToClipboard:B,FontAwesomeIcon:z,ElAlert:x,ImageWrapper:Z,ApiCodeButton:q},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),Ke={class:`preview`},qe={class:`left`},Je={class:`main`},Ye={class:`bot`},Xe={class:`datetime`},Ze={class:`info`},Qe={key:0,class:`prompt mt-2`},$e={key:0},et={key:0,class:r({content:!0,failed:!0})},tt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},nt={class:r({operations:!0,"mt-2":!0,"mb-2":!0})},rt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},it={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},at={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},ot={key:1,class:r({content:!0})},st={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ct={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},lt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ut={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},dt={key:2,class:r({content:!0})},ft={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function $(r,i,f,h,g,_){let v=m(`el-image`),y=m(`image-wrapper`),b=m(`api-code-button`),x=m(`font-awesome-icon`),S=m(`copy-to-clipboard`),C=m(`el-alert`);return c(),e(`div`,Ke,[t(`div`,qe,[s(v,{src:`https://cdn.acedata.cloud/ogm2oa.png`,class:`avatar`})]),t(`div`,Je,[t(`div`,Ye,[a(n(r.$t(`flux.name.fluxBot`))+` `,1),t(`span`,Xe,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,Ze,[r.modelValue?.request?.prompt?(c(),e(`p`,Qe,[a(n(r.modelValue?.request?.prompt)+` `,1),r.modelValue?.response?p(``,!0):(c(),e(`span`,$e,` - (`+n(r.$t(`flux.status.pending`))+`) `,1))])):p(``,!0)]),r.modelValue?.response?.success===!0?(c(),e(`div`,et,[t(`div`,tt,[(c(!0),e(l,null,d(r.images,(e,t)=>(c(),o(y,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),t(`div`,nt,[s(b,{path:`/flux/images`,body:r.modelValue?.request},null,8,[`body`])]),s(C,{closable:!1,class:`mt-2 success`},{default:u(()=>[t(`p`,rt,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.model`))+`: `+n(r.modelValue?.request?.model),1)]),t(`p`,it,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,at,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0)]),_:1})])):p(``,!0),r.modelValue?.response?.success===!1?(c(),e(`div`,ot,[s(C,{closable:!1,class:`failure`},{template:u(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.failure`)),1)]),default:u(()=>[t(`p`,st,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),t(`p`,ct,[s(x,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.failureReason`))+`: `+n(r.modelValue?.response?.error?.message)+` `,1),s(S,{content:r.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,lt,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0),t(`p`,ut,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.traceId`))+`: `+n(r.modelValue?.response?.trace_id)+` `,1),s(S,{content:r.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):p(``,!0),r.modelValue?.response?p(``,!0):(c(),e(`div`,dt,[s(C,{closable:!1,class:`info`},{template:u(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.failure`)),1)]),default:u(()=>[t(`p`,ft,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var pt=i({name:`RecentPanel`,components:{TaskPreview:O(Ge,[[`render`,$],[`__scopeId`,`data-v-bf1b183c`]]),BotPlaceholder:J,NoTasks:Y,ScrollList:G},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),mt={key:0},ht={key:2,class:`w-full h-full flex items-center justify-center`};function gt(t,n,r,i,a,f){let h=m(`bot-placeholder`),g=m(`task-preview`),_=m(`scroll-list`),v=m(`no-tasks`);return c(),e(l,null,[t.tasks?.items===void 0?(c(),e(`div`,mt,[s(h)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(c(),o(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:u(()=>[(c(!0),e(l,null,d(t.tasks?.items,e=>(c(),o(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):p(``,!0),t.tasks?.items?.length===0?(c(),e(`div`,ht,[s(v)])):p(``,!0)],64)}var _t=i({name:`FluxIndex`,components:{ConfigPanel:We,Layout:oe,RecentPanel:O(pt,[[`render`,gt]])},mixins:[te],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===j.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===j.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await K({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(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let 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);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!M(this.uploadTracker,e=>this.$t(e),e=>L.warning(e)))return;let e={...this.config,async:!0};if(!F())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}L.info(this.$t(`flux.message.startingTask`)),R(`flux`,ee.generate(e,{token:t})).then(()=>{L.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?L.error(this.$t(`flux.message.usedUp`)):L.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function vt(e,t,n,r,i,a){let l=m(`config-panel`),d=m(`recent-panel`),f=m(`layout`);return c(),o(f,null,{config:u(()=>[s(l,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:u(()=>[s(d,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var yt=O(_t,[[`render`,vt]]);export{yt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,Gt as n,Ht as r,I as i,N as a,O as o,P as s,Q as c,S as l,dt as u,et as d,ft as f,k as p,nt as m,tt as h,v as g}from"./vendor-chart-kBsXB1rh.js";import{r as _,t as v}from"./select-BMkecWJ3.js";import{t as y}from"./upload-BVKjQKBq.js";import{t as b}from"./image-DsbwPTmm.js";import{t as x}from"./alert-BDvIuUu3.js";import{t as S}from"./drawer-B9vlF9-6.js";import{t as C}from"./input-number-Co-ZG8zL.js";import{t as w}from"./slider-C8QFYGMv.js";import{$n as T,Qn as E,Zn as D}from"./constants-Bs-70rQx.js";import{A as O,Ht as k,Kt as A,On as ee,Ut as te,Vr as j,Vt as M,Wr as N,Wt as P,en as F,fi as I,ti as L,tr as R}from"./index-BDvTozfe.js";import{t as z}from"./index.es-B8y6GOsn.js";import{t as B}from"./CopyToClipboard-CdGWA3lV.js";import{t as V}from"./ImagePreview-8jJNA6v3.js";import{n as H}from"./taskDrawerMixin-CfysS2FH.js";import{t as U}from"./Consumption-B2gTsRAP.js";import{i as W,n as G,t as K}from"./pagination-BNew-8XN.js";import{t as q}from"./ApiCodeButton-WF_-U1A1.js";import{t as J}from"./BotPlaceholder-BU4a0XLq.js";import{t as Y}from"./NoTasks-C3tcHEtF.js";import{t as X}from"./PromptTextarea-66psG0Ji.js";import{t as Z}from"./ImageWrapper-BF74hGuQ.js";var Q=i({name:`LayoutFlux`,components:{ElDrawer:S,ElButton:I,FontAwesomeIcon:z},mixins:[H]}),ne={class:`main flex flex-row flex-1`},re={class:`config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ie={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ae(n,r,i,a,o,l){let d=m(`font-awesome-icon`),p=m(`el-button`),_=m(`el-drawer`);return c(),e(`div`,ne,[t(`div`,re,[h(n.$slots,`config`,{},void 0,!0)]),t(`div`,ie,[h(n.$slots,`result`,{},void 0,!0)]),f(s(p,{circle:``,class:`menu`,onClick:r[0]||=e=>n.drawer=!0},{default:u(()=>[s(d,{icon:`fa-solid fa-magic`})]),_:1},512),[[g,!n.tasksEmpty]]),s(_,{modelValue:n.drawer,"onUpdate:modelValue":r[1]||=e=>n.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer`},{default:u(()=>[h(n.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var oe=O(Q,[[`render`,ae],[`__scopeId`,`data-v-8ae8c974`]]),se=i({name:`ModelSelector`,components:{ElSelect:_,ElOption:v},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=T}}),ce={class:`field`},le={class:`title font-bold`};function ue(r,i,a,f,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,ce,[t(`h2`,le,n(r.$t(`flux.name.model`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`flux.placeholder.select`)},{default:u(()=>[(c(!0),e(l,null,d(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var de=O(se,[[`render`,ue],[`__scopeId`,`data-v-e9b17945`]]),fe=i({name:`CountSelector`,components:{ElSlider:w,InfoIcon:W,ElInputNumber:C},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),pe={class:`flex justify-between`},me={class:`flex justify-start items-center`},he={class:`text-sm font-bold`},ge={class:`flex justify-end items-center`},_e={class:`w-full`};function ve(r,i,a,o,l,u){let d=m(`info-icon`),f=m(`el-input-number`),p=m(`el-slider`);return c(),e(`div`,null,[t(`div`,pe,[t(`div`,me,[t(`span`,he,n(r.$t(`flux.name.numbers`)),1),s(d,{content:r.$t(`flux.description.numbers`)},null,8,[`content`])]),t(`div`,ge,[s(f,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),t(`div`,_e,[s(p,{modelValue:r.value,"onUpdate:modelValue":i[1]||=e=>r.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var ye=O(fe,[[`render`,ve]]),be=i({name:`ActionSelector`,components:{ElSelect:_,ElOption:v},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=E}}),xe={class:`field`},Se={class:`title font-bold`};function Ce(r,i,a,f,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,xe,[t(`h2`,Se,n(r.$t(`flux.name.task`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`flux.placeholder.select`)},{default:u(()=>[(c(!0),e(l,null,d(r.options,e=>(c(),o(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var we=O(be,[[`render`,Ce],[`__scopeId`,`data-v-81fd05e5`]]),Te=i({name:`ImageUrlInput`,components:{ElUpload:y,ElButton:I,InfoIcon:W,FontAwesomeIcon:z,ImagePreview:V},mixins:[P,k],emits:[`change`],data(){return{fileList:[],uploadUrl:N()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){L.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){L.error(this.$t(`flux.message.uploadStartImageError`))}}}),Ee={class:`relative`},De={class:`flex justify-between`},Oe={class:`flex justify-start items-center`},ke={class:`text-sm font-bold`};function Ae(r,i,o,l,d,f){let p=m(`info-icon`),h=m(`image-preview`),g=m(`font-awesome-icon`),_=m(`el-button`),v=m(`el-upload`);return c(),e(`div`,Ee,[t(`div`,De,[t(`div`,Oe,[t(`span`,ke,n(r.$t(`flux.name.imageUrl`)),1),s(p,{content:r.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),s(v,{ref:`uploader`,"file-list":r.fileList,"onUpdate:fileList":i[0]||=e=>r.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,action:r.uploadUrl,"on-exceed":r.onExceed,"on-error":r.onError,headers:r.headers},{file:u(({file:e})=>[s(h,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:t=>r.fileList.splice(r.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:u(()=>[s(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:u(()=>[s(g,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),a(` `+n(r.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`headers`])])}var je=O(Te,[[`render`,Ae],[`__scopeId`,`data-v-7482072d`]]),Me=i({name:`PromptInput`,components:{PromptTextarea:X},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function Ne(e,t,n,r,i,a){let s=m(`prompt-textarea`);return c(),o(s,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Pe=O(Me,[[`render`,Ne]]),Fe=i({name:`SizeSelector`,components:{ElSelect:_,ElOption:v},data(){return{options:D}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),Ie={class:`field`},Le={class:`title font-bold`};function Re(r,i,a,f,p,h){let g=m(`el-option`),_=m(`el-select`);return c(),e(`div`,Ie,[t(`h2`,Le,n(r.$t(`flux.name.ratio`)),1),s(_,{modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e,class:`value`,placeholder:r.$t(`flux.placeholder.select`)},{default:u(()=>[(c(!0),e(l,null,d(r.options,e=>(c(),o(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var ze=i({name:`PresetPanel`,components:{ElButton:I,FontAwesomeIcon:z,PromptInput:Pe,ModelSelector:de,CountSelector:ye,Consumption:U,ActionSelector:we,ImageUrlInput:je,SizeSelector:O(Fe,[[`render`,Re],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return A(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Be={class:`flex flex-col h-full`},Ve={class:`flex-1 overflow-y-auto p-5`},He={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ue(r,i,l,d,f,h){let g=m(`action-selector`),_=m(`prompt-input`),v=m(`image-url-input`),y=m(`model-selector`),b=m(`size-selector`),x=m(`count-selector`),S=m(`consumption`),C=m(`font-awesome-icon`),w=m(`el-button`);return c(),e(`div`,Be,[t(`div`,Ve,[s(g,{class:`mb-4`}),s(_,{class:`mb-4`}),r.config?.action===`edits`?(c(),o(v,{key:0,class:`mb-4`})):p(``,!0),s(y,{class:`mb-4`}),s(b,{class:`mb-4`}),s(x,{class:`mb-4`})]),t(`div`,He,[s(S,{value:r.consumption,service:r.service},null,8,[`value`,`service`]),s(w,{type:`primary`,class:`btn w-full`,round:``,onClick:r.onGenerate},{default:u(()=>[s(C,{icon:`fa-solid fa-magic`,class:`mr-2`}),a(` `+n(r.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var We=O(ze,[[`render`,Ue]]),Ge=i({name:`TaskPreview`,components:{ElImage:b,CopyToClipboard:B,FontAwesomeIcon:z,ElAlert:x,ImageWrapper:Z,ApiCodeButton:q},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),Ke={class:`preview`},qe={class:`left`},Je={class:`main`},Ye={class:`bot`},Xe={class:`datetime`},Ze={class:`info`},Qe={key:0,class:`prompt mt-2`},$e={key:0},et={key:0,class:r({content:!0,failed:!0})},tt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},nt={class:r({operations:!0,"mt-2":!0,"mb-2":!0})},rt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},it={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},at={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},ot={key:1,class:r({content:!0})},st={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ct={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},lt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ut={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},dt={key:2,class:r({content:!0})},ft={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function $(r,i,f,h,g,_){let v=m(`el-image`),y=m(`image-wrapper`),b=m(`api-code-button`),x=m(`font-awesome-icon`),S=m(`copy-to-clipboard`),C=m(`el-alert`);return c(),e(`div`,Ke,[t(`div`,qe,[s(v,{src:`https://cdn.acedata.cloud/ogm2oa.png`,class:`avatar`})]),t(`div`,Je,[t(`div`,Ye,[a(n(r.$t(`flux.name.fluxBot`))+` `,1),t(`span`,Xe,n(r.$dayjs.format(``+new Date(parseFloat((r.modelValue?.created_at||``).toString())*1e3))),1)]),t(`div`,Ze,[r.modelValue?.request?.prompt?(c(),e(`p`,Qe,[a(n(r.modelValue?.request?.prompt)+` `,1),r.modelValue?.response?p(``,!0):(c(),e(`span`,$e,` - (`+n(r.$t(`flux.status.pending`))+`) `,1))])):p(``,!0)]),r.modelValue?.response?.success===!0?(c(),e(`div`,et,[t(`div`,tt,[(c(!0),e(l,null,d(r.images,(e,t)=>(c(),o(y,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),t(`div`,nt,[s(b,{path:`/flux/images`,body:r.modelValue?.request},null,8,[`body`])]),s(C,{closable:!1,class:`mt-2 success`},{default:u(()=>[t(`p`,rt,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.model`))+`: `+n(r.modelValue?.request?.model),1)]),t(`p`,it,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,at,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0)]),_:1})])):p(``,!0),r.modelValue?.response?.success===!1?(c(),e(`div`,ot,[s(C,{closable:!1,class:`failure`},{template:u(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.failure`)),1)]),default:u(()=>[t(`p`,st,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),t(`p`,ct,[s(x,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.failureReason`))+`: `+n(r.modelValue?.response?.error?.message)+` `,1),s(S,{content:r.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),r.modelValue?.elapsed?(c(),e(`p`,lt,[s(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.elapsed`))+`: `+n(r.modelValue?.elapsed?.toFixed(2))+`s `,1)])):p(``,!0),t(`p`,ut,[s(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.traceId`))+`: `+n(r.modelValue?.response?.trace_id)+` `,1),s(S,{content:r.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):p(``,!0),r.modelValue?.response?p(``,!0):(c(),e(`div`,dt,[s(C,{closable:!1,class:`info`},{template:u(()=>[s(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.failure`)),1)]),default:u(()=>[t(`p`,ft,[s(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),a(` `+n(r.$t(`flux.name.taskId`))+`: `+n(r.modelValue?.id)+` `,1),s(S,{content:r.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var pt=i({name:`RecentPanel`,components:{TaskPreview:O(Ge,[[`render`,$],[`__scopeId`,`data-v-bf1b183c`]]),BotPlaceholder:J,NoTasks:Y,ScrollList:G},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),mt={key:0},ht={key:2,class:`w-full h-full flex items-center justify-center`};function gt(t,n,r,i,a,f){let h=m(`bot-placeholder`),g=m(`task-preview`),_=m(`scroll-list`),v=m(`no-tasks`);return c(),e(l,null,[t.tasks?.items===void 0?(c(),e(`div`,mt,[s(h)])):t.tasks?.items?.length&&t.tasks?.items?.length>0?(c(),o(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:t.loading,onReachTop:n[0]||=e=>t.$emit(`reach-top`)},{default:u(()=>[(c(!0),e(l,null,d(t.tasks?.items,e=>(c(),o(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):p(``,!0),t.tasks?.items?.length===0?(c(),e(`div`,ht,[s(v)])):p(``,!0)],64)}var _t=i({name:`FluxIndex`,components:{ConfigPanel:We,Layout:oe,RecentPanel:O(pt,[[`render`,gt]])},mixins:[te],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===j.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===j.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await K({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(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let 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);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!M(this.uploadTracker,e=>this.$t(e),e=>L.warning(e)))return;let e={...this.config,async:!0};if(!F())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}L.info(this.$t(`flux.message.startingTask`)),R(`flux`,ee.generate(e,{token:t})).then(()=>{L.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?L.error(this.$t(`flux.message.usedUp`)):L.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function vt(e,t,n,r,i,a){let l=m(`config-panel`),d=m(`recent-panel`),f=m(`layout`);return c(),o(f,null,{config:u(()=>[s(l,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:u(()=>[s(d,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var yt=O(_t,[[`render`,vt]]);export{yt as default};