@acedatacloud/nexior 3.26.1 → 3.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Auth-DglafbPG.js → Auth-DcpGIqwi.js} +1 -1
- package/dist/assets/{BotPlaceholder-BxnL1MJo.js → BotPlaceholder-Drm6xiuT.js} +1 -1
- package/dist/assets/{Callback-qRwf1Gnw.js → Callback-REiOMkuD.js} +1 -1
- package/dist/assets/{Console-BZY_C7lr.js → Console-BrjF9_It.js} +1 -1
- package/dist/assets/{Conversation-knBzdwgV.js → Conversation-Clf-3NQi.js} +2 -2
- package/dist/assets/{CopyToClipboard-CxIZo4NZ.js → CopyToClipboard-CBliPgeP.js} +1 -1
- package/dist/assets/{Detail-DnGOnfgI.js → Detail-Dnd4Nd0T.js} +2 -2
- package/dist/assets/{EditArray-FPa9DU-F.js → EditArray-KYrcEW6W.js} +1 -1
- package/dist/assets/{Extra-BWQZ0rxR.css → Extra-Bqh2sys8.css} +1 -1
- package/dist/assets/Extra-y_XywERF.js +1 -0
- package/dist/assets/{FilePreview-CSfNLpz8.js → FilePreview-Bz-RkJBC.js} +1 -1
- package/dist/assets/{History-BLQv2SNG.js → History-CeaaKZfy.js} +1 -1
- package/dist/assets/{ImagePreview-BCYkjzYE.js → ImagePreview-BnQhS1sy.js} +1 -1
- package/dist/assets/{ImageWrapper-Bk45C3cb.js → ImageWrapper-LkV6h7vR.js} +1 -1
- package/dist/assets/{Index-De0ZpK2f.js → Index-6xzU8HJN.js} +1 -1
- package/dist/assets/{Index-DY_teL9e.js → Index-B17LFoFo.js} +1 -1
- package/dist/assets/{Index-D29VUEW7.js → Index-BPs_CTLK.js} +1 -1
- package/dist/assets/{Index-CJukGrYx.js → Index-BWPDDqlj.js} +1 -1
- package/dist/assets/{Index-Bedu5xZ1.js → Index-CLBa1eAb.js} +1 -1
- package/dist/assets/{Index-YHzXr_W3.js → Index-CLEC89Jo.js} +1 -1
- package/dist/assets/{Index-CvxFIHT8.js → Index-CRTcv7xy.js} +1 -1
- package/dist/assets/{Index-BBKt9Spg.js → Index-CaI6zBZ3.js} +1 -1
- package/dist/assets/{Index-CmCkcG7V.js → Index-CqoL0s33.js} +1 -1
- package/dist/assets/{Index-CPHf5p_Q.js → Index-DC_YoIhM.js} +1 -1
- package/dist/assets/{Index-CDdbp7Nf.js → Index-DcyyV6Sz.js} +1 -1
- package/dist/assets/{Index-Bw2uh2J2.js → Index-DhUCvaCi.js} +1 -1
- package/dist/assets/{Index-D2w26fLi.js → Index-DjI-ZL96.js} +1 -1
- package/dist/assets/{Index-CCYEU3oJ.js → Index-E1wsWno5.js} +1 -1
- package/dist/assets/{Index-v4kQdYBi.js → Index-VAxSP8lV.js} +1 -1
- package/dist/assets/{Index-BSYmsGxA.js → Index-xa7bNKA9.js} +1 -1
- package/dist/assets/{Invitees-TD8DYR0_.js → Invitees-BdKbK4gL.js} +1 -1
- package/dist/assets/{List-Dna8lz5n.js → List-4_OW5KaJ.js} +1 -1
- package/dist/assets/List-B9hq6lUq.js +1 -0
- package/dist/assets/{List-BENZw7xg.css → List-B9sT18--.css} +1 -1
- package/dist/assets/List-Cc5KKfCM.css +1 -0
- package/dist/assets/List-DURh04Gf.js +1 -0
- package/dist/assets/Main-F_4zsEk0.js +1 -0
- package/dist/assets/{Navigator-4sTAUDLY.js → Navigator-CGT5cZ47.js} +1 -1
- package/dist/assets/{NoTasks-Dg6rLhZ3.js → NoTasks-3Z1b05wG.js} +1 -1
- package/dist/assets/{Pagination-CEqe9IZP.js → Pagination-DXYXr-Qm.js} +1 -1
- package/dist/assets/{ScrollList-Dhr97grQ.js → ScrollList-BkRXLc_a.js} +1 -1
- package/dist/assets/Status-D-2VRcqL.js +1 -0
- package/dist/assets/Status-wRPeglNe.css +1 -0
- package/dist/assets/Subscribe-B5VcnrBh.js +1 -0
- package/dist/assets/{VideoPlayer-BYN9kAcb.js → VideoPlayer-Ci_7fcAo.js} +1 -1
- package/dist/assets/application-4sCLHc8H.js +1 -0
- package/dist/assets/application-B3aCFTSw.js +1 -0
- package/dist/assets/application-BEYmfFJz.js +1 -0
- package/dist/assets/application-BIKcbaVW.js +1 -0
- package/dist/assets/application-BeoSDqMh.js +1 -0
- package/dist/assets/application-Bis14xw7.js +1 -0
- package/dist/assets/application-CUkYQyol.js +1 -0
- package/dist/assets/application-CobHPXFx.js +1 -0
- package/dist/assets/application-Cx03xyWX.js +1 -0
- package/dist/assets/application-D9f2k0Z7.js +1 -0
- package/dist/assets/application-DDCXm6fP.js +1 -0
- package/dist/assets/application-F1iqle9v.js +1 -0
- package/dist/assets/application-IPq1e_Il.js +1 -0
- package/dist/assets/application-KyKnYbJy.js +1 -0
- package/dist/assets/application-OKlUcxSS.js +1 -0
- package/dist/assets/application-QJ9ZEQYt.js +1 -0
- package/dist/assets/application-m4x26hDG.js +1 -0
- package/dist/assets/application-rjK39_oK.js +1 -0
- package/dist/assets/coin---jmV5d3.js +1 -0
- package/dist/assets/coin-BhOL0L82.js +1 -0
- package/dist/assets/coin-BplV0rp3.js +1 -0
- package/dist/assets/coin-CevLkt3x.js +1 -0
- package/dist/assets/coin-D1xK6HrR.js +1 -0
- package/dist/assets/coin-D4A1zhD3.js +1 -0
- package/dist/assets/coin-D68hXR13.js +1 -0
- package/dist/assets/coin-D9UJDO64.js +1 -0
- package/dist/assets/coin-DB8LitKm.js +1 -0
- package/dist/assets/coin-DD1bmkS2.js +1 -0
- package/dist/assets/coin-DmW3AlDt.js +1 -0
- package/dist/assets/coin-DqoEQDC8.js +1 -0
- package/dist/assets/coin-DwbnfqVd.js +1 -0
- package/dist/assets/coin-ZbWiLVH3.js +1 -0
- package/dist/assets/coin-kUzHncYu.js +1 -0
- package/dist/assets/coin-njK3etEa.js +1 -0
- package/dist/assets/coin-vTvlgRXc.js +1 -0
- package/dist/assets/common-B-EGiyep.js +1 -0
- package/dist/assets/common-B_8azNNB.js +1 -0
- package/dist/assets/common-Bj1QcGsP.js +1 -0
- package/dist/assets/common-BjCDdbb-.js +1 -0
- package/dist/assets/common-BkT5tE0t.js +1 -0
- package/dist/assets/common-C-IzjSKC.js +1 -0
- package/dist/assets/common-C9eXfUEo.js +1 -0
- package/dist/assets/common-CRr8UPV-.js +1 -0
- package/dist/assets/common-CSbTh7Es.js +1 -0
- package/dist/assets/common-CnDyLF8c.js +1 -0
- package/dist/assets/common-CpvsNb6Z.js +1 -0
- package/dist/assets/common-DCBdMh4C.js +1 -0
- package/dist/assets/common-DEzGcp3u.js +1 -0
- package/dist/assets/common-Dfjl8VXX.js +1 -0
- package/dist/assets/common-DgsCAY9A.js +1 -0
- package/dist/assets/common-giBfYpVG.js +1 -0
- package/dist/assets/common-ifG7Jngn.js +1 -0
- package/dist/assets/common-oJuxEHvM.js +1 -0
- package/dist/assets/console-B3eP-WO_.js +1 -0
- package/dist/assets/console-B6WpNFZR.js +1 -0
- package/dist/assets/console-BSA-nQut.js +1 -0
- package/dist/assets/console-BfVdppQq.js +1 -0
- package/dist/assets/console-BqANz1qU.js +1 -0
- package/dist/assets/console-C0jNAT2v.js +1 -0
- package/dist/assets/console-C8SjjSMs.js +1 -0
- package/dist/assets/console-CQDVZ5kW.js +1 -0
- package/dist/assets/console-CbryeCQt.js +1 -0
- package/dist/assets/console-CdExu4-O.js +1 -0
- package/dist/assets/console-CkF3DYko.js +1 -0
- package/dist/assets/console-D-9NxLjR.js +1 -0
- package/dist/assets/console-D5rJzc1E.js +1 -0
- package/dist/assets/console-DMTF96hK.js +1 -0
- package/dist/assets/console-DMlew7iX.js +1 -0
- package/dist/assets/console-EbWSW-Fu.js +1 -0
- package/dist/assets/console-dlCwwK2t.js +1 -0
- package/dist/assets/console-fIqOWY6V.js +1 -0
- package/dist/assets/{distribution-CRR-Tj6o.js → distribution-zXeAGkCu.js} +1 -1
- package/dist/assets/{index-BJb6Gg89.css → index-Cn_0hZFW.css} +1 -1
- package/dist/assets/index-Dn72Szn0.js +3 -0
- package/dist/assets/order-2938TXeL.js +1 -0
- package/dist/assets/order-691hfcVo.js +1 -0
- package/dist/assets/order-7yDEF-wE.js +1 -0
- package/dist/assets/order-BDWVwDAn.js +1 -0
- package/dist/assets/order-Bqc53rmv.js +1 -0
- package/dist/assets/{order-D7XKznDV.js → order-CCQxecEz.js} +1 -1
- package/dist/assets/order-CESPqprA.js +1 -0
- package/dist/assets/order-CH4FTZdz.js +1 -0
- package/dist/assets/order-CL6RqSCE.js +1 -0
- package/dist/assets/order-C_9poK2b.js +1 -0
- package/dist/assets/order-CfKXYzuo.js +1 -0
- package/dist/assets/order-CjpgvCGB.js +1 -0
- package/dist/assets/order-Cx9acmu9.js +1 -0
- package/dist/assets/order-DQmJSByk.js +1 -0
- package/dist/assets/order-DdMK7tK_.js +1 -0
- package/dist/assets/order-DqKzccXP.js +1 -0
- package/dist/assets/order-DxbjGnCv.js +1 -0
- package/dist/assets/order-sPPLdLb3.js +1 -0
- package/dist/assets/order-yEiwj_v2.js +1 -0
- package/dist/assets/{price-8az7VHed.js → price-7kPhVK1M.js} +1 -1
- package/dist/assets/usage-03lq5UJ3.js +1 -0
- package/dist/assets/usage-B11bMhMu.js +1 -0
- package/dist/assets/usage-BKq6wop8.js +1 -0
- package/dist/assets/usage-Bmfw2Wfu.js +1 -0
- package/dist/assets/usage-Bzj3lxYU.js +1 -0
- package/dist/assets/usage-CHOeMSGZ.js +1 -0
- package/dist/assets/usage-CXILxQmB.js +1 -0
- package/dist/assets/usage-Cs8IIsUQ.js +1 -0
- package/dist/assets/usage-CuISlf-m.js +1 -0
- package/dist/assets/usage-D-hJR3BT.js +1 -0
- package/dist/assets/usage-D1OnFGRV.js +1 -0
- package/dist/assets/usage-D28S0Rr_.js +1 -0
- package/dist/assets/usage-DGU-d7c5.js +1 -0
- package/dist/assets/usage-DT49JIvm.js +1 -0
- package/dist/assets/usage-DyZHxchW.js +1 -0
- package/dist/assets/usage-Nsqhxc9s.js +1 -0
- package/dist/assets/usage-jdUmayn9.js +1 -0
- package/dist/assets/usage-oJCiUJ8P.js +1 -0
- package/dist/assets/{vendor-BG5lCpoe.js → vendor-BVnhgPs4.js} +10 -10
- package/dist/assets/{vendor-chart-DlegxWjs.js → vendor-chart-BdX85Ip7.js} +1 -1
- package/dist/assets/{vendor-dayjs-BRrJyY8K.js → vendor-dayjs-C40ROiFS.js} +1 -1
- package/dist/assets/{vendor-element-plus-7rF3khck.js → vendor-element-plus-BUOzLm6W.js} +1 -1
- package/dist/assets/{vendor-highlight-xfJzRjy2.js → vendor-highlight-6BASrUTN.js} +1 -1
- package/dist/index.html +5 -5
- package/package.json +1 -1
- package/dist/assets/Extra-HFDDa-iX.js +0 -1
- package/dist/assets/List-7G9Uv5xw.js +0 -1
- package/dist/assets/List-C-gXjInO.js +0 -1
- package/dist/assets/List-JGRPVsQo.css +0 -1
- package/dist/assets/Main-Q_OpfF8L.js +0 -1
- package/dist/assets/Status-61u7CQ2x.css +0 -1
- package/dist/assets/Status-Bzpp73t0.js +0 -1
- package/dist/assets/Subscribe-e_szYStL.js +0 -1
- package/dist/assets/application--jxRGPwL.js +0 -1
- package/dist/assets/application-63ZiZRBB.js +0 -1
- package/dist/assets/application-B7A9D2Ax.js +0 -1
- package/dist/assets/application-BGGNys47.js +0 -1
- package/dist/assets/application-BLbSQe1x.js +0 -1
- package/dist/assets/application-BWqsz75E.js +0 -1
- package/dist/assets/application-Bcyo2WXC.js +0 -1
- package/dist/assets/application-BdF5iGG1.js +0 -1
- package/dist/assets/application-BhrWZHF4.js +0 -1
- package/dist/assets/application-C1Y9RY2-.js +0 -1
- package/dist/assets/application-C8B9SWDS.js +0 -1
- package/dist/assets/application-C8VAI6jj.js +0 -1
- package/dist/assets/application-CgCvwGUU.js +0 -1
- package/dist/assets/application-D6bGTmT3.js +0 -1
- package/dist/assets/application-DJ4ufpSX.js +0 -1
- package/dist/assets/application-DR2dsacC.js +0 -1
- package/dist/assets/application-DVJ0RjBC.js +0 -1
- package/dist/assets/application-Xl_V7Vvw.js +0 -1
- package/dist/assets/coin-BEmGht_E.js +0 -1
- package/dist/assets/coin-BTZicwhr.js +0 -1
- package/dist/assets/coin-BY1f2AGt.js +0 -1
- package/dist/assets/coin-BfOIeDbl.js +0 -1
- package/dist/assets/coin-BpqbFO16.js +0 -1
- package/dist/assets/coin-BsuV_YeV.js +0 -1
- package/dist/assets/coin-C0soSeyR.js +0 -1
- package/dist/assets/coin-C1vThE7K.js +0 -1
- package/dist/assets/coin-CIHIAMWv.js +0 -1
- package/dist/assets/coin-COhdbXyd.js +0 -1
- package/dist/assets/coin-Cbnm3Xy-.js +0 -1
- package/dist/assets/coin-CuoluQSV.js +0 -1
- package/dist/assets/coin-DCvKQ0Nc.js +0 -1
- package/dist/assets/coin-DESNZPRB.js +0 -1
- package/dist/assets/coin-F--7ubaN.js +0 -1
- package/dist/assets/coin-ashRjWk0.js +0 -1
- package/dist/assets/coin-jcPx8ZMO.js +0 -1
- package/dist/assets/common-6FZ_tYpg.js +0 -1
- package/dist/assets/common-B3cVuyFv.js +0 -1
- package/dist/assets/common-BAxUV6og.js +0 -1
- package/dist/assets/common-BHnqpgOQ.js +0 -1
- package/dist/assets/common-BUld6hJq.js +0 -1
- package/dist/assets/common-CpryBlSq.js +0 -1
- package/dist/assets/common-D3mNlW6b.js +0 -1
- package/dist/assets/common-D4Zudk-z.js +0 -1
- package/dist/assets/common-DQXIhRdJ.js +0 -1
- package/dist/assets/common-DUw9A690.js +0 -1
- package/dist/assets/common-DbQuScSb.js +0 -1
- package/dist/assets/common-DetSPGk0.js +0 -1
- package/dist/assets/common-Dx88pxYN.js +0 -1
- package/dist/assets/common-Fo438SS-.js +0 -1
- package/dist/assets/common-PAx8Dvpp.js +0 -1
- package/dist/assets/common-x75KDjU8.js +0 -1
- package/dist/assets/common-xme8KErb.js +0 -1
- package/dist/assets/common-ymT_ZIQ8.js +0 -1
- package/dist/assets/console-95XEcGOc.js +0 -1
- package/dist/assets/console-Ac28oQWd.js +0 -1
- package/dist/assets/console-BFILeQRi.js +0 -1
- package/dist/assets/console-BQ8StUHq.js +0 -1
- package/dist/assets/console-B_2GqCeq.js +0 -1
- package/dist/assets/console-BjsFThUG.js +0 -1
- package/dist/assets/console-BoXqkLTB.js +0 -1
- package/dist/assets/console-ByMS0Q8v.js +0 -1
- package/dist/assets/console-C1KVS7Xx.js +0 -1
- package/dist/assets/console-C9UrVX_Y.js +0 -1
- package/dist/assets/console-CFvURZbu.js +0 -1
- package/dist/assets/console-CQbV4qXo.js +0 -1
- package/dist/assets/console-Ck3VbmRo.js +0 -1
- package/dist/assets/console-CpYR4Dzu.js +0 -1
- package/dist/assets/console-D7I3jGvJ.js +0 -1
- package/dist/assets/console-DDvFCAU_.js +0 -1
- package/dist/assets/console-Nww9cLdQ.js +0 -1
- package/dist/assets/console-mBmajUaf.js +0 -1
- package/dist/assets/index-C963Via1.js +0 -3
- package/dist/assets/order-5Q2NSU5A.js +0 -1
- package/dist/assets/order-7sVfWX_m.js +0 -1
- package/dist/assets/order-BspD8oHa.js +0 -1
- package/dist/assets/order-CGebGmiZ.js +0 -1
- package/dist/assets/order-Cg6Z4GIW.js +0 -1
- package/dist/assets/order-ChIfVdAa.js +0 -1
- package/dist/assets/order-CmN2xY-p.js +0 -1
- package/dist/assets/order-D1keYPzu.js +0 -1
- package/dist/assets/order-DAOBmqsZ.js +0 -1
- package/dist/assets/order-DF-Nyswd.js +0 -1
- package/dist/assets/order-DNG0G59-.js +0 -1
- package/dist/assets/order-DVTAHRL7.js +0 -1
- package/dist/assets/order-DlAFUU9_.js +0 -1
- package/dist/assets/order-DszuiA3J.js +0 -1
- package/dist/assets/order-P2ML4NX3.js +0 -1
- package/dist/assets/order-eMd8F_I4.js +0 -1
- package/dist/assets/order-ip3zUjH0.js +0 -1
- package/dist/assets/order-lRxQRPUo.js +0 -1
- package/dist/assets/usage-BEYQuDdt.js +0 -1
- package/dist/assets/usage-Bc1XOPF0.js +0 -1
- package/dist/assets/usage-BgEAkK9i.js +0 -1
- package/dist/assets/usage-Bn7KY8lM.js +0 -1
- package/dist/assets/usage-Bsq1Hk5A.js +0 -1
- package/dist/assets/usage-C35-QblK.js +0 -1
- package/dist/assets/usage-C41JZQ8E.js +0 -1
- package/dist/assets/usage-CBK2Oe1h.js +0 -1
- package/dist/assets/usage-CFUYH65J.js +0 -1
- package/dist/assets/usage-Caq4CTU6.js +0 -1
- package/dist/assets/usage-CaqYASGL.js +0 -1
- package/dist/assets/usage-Ceev41EX.js +0 -1
- package/dist/assets/usage-D2XEeyQ_.js +0 -1
- package/dist/assets/usage-DiPV0e2o.js +0 -1
- package/dist/assets/usage-MdFcPMEh.js +0 -1
- package/dist/assets/usage-crXxi3jO.js +0 -1
- package/dist/assets/usage-p7rPGs92.js +0 -1
- package/dist/assets/usage-t6jUbAuV.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bF as C}from"./vendor-BG5lCpoe.js";import{o as A,N as L,q as U,r as w,A as z,z as B,i as G,R as D,S as j,B as M,T as O,G as q}from"./vendor-element-plus-7rF3khck.js";import{d as v,c as l,a as r,l as s,P as R,S as d,al as o,o as a,Z as i,Y as _,F as T,ai as I,R as S,V,b as N,W as $}from"./vendor-vue-Bb02XvLT.js";import{_ as b,S as F,by as H,a6 as W,X,a2 as Y,a3 as E}from"./index-C963Via1.js";import{I as Z,S as J}from"./ScrollList-Dhr97grQ.js";import{I as K}from"./ImagePreview-BCYkjzYE.js";import{A as Q}from"./Status-Bzpp73t0.js";import{C as x}from"./CopyToClipboard-CxIZo4NZ.js";import{l as ee}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-BRrJyY8K.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const se=v({name:"LayoutHeadshots",components:{ElDrawer:L,ElButton:A,FontAwesomeIcon:C},data(){return{drawer:!1}}}),te={class:"main flex flex-row flex-1"},ae={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},oe={class:"result h-full p-[15px] flex-1 flex flex-col"};function ne(e,t,m,h,k,y){const p=o("font-awesome-icon"),u=o("el-button"),n=o("el-drawer");return a(),l("div",te,[r("div",ae,[R(e.$slots,"config",{},void 0,!0)]),r("div",oe,[R(e.$slots,"result",{},void 0,!0)]),s(u,{circle:"",class:"menu",onClick:t[0]||(t[0]=c=>e.drawer=!0)},{default:d(()=>[s(p,{icon:"fa-solid fa-gear"})]),_:1}),s(n,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=c=>e.drawer=c),"with-header":!1,size:"340px",class:"drawer"},{default:d(()=>[R(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ie=b(se,[["render",ne],["__scopeId","data-v-21e11492"]]),le=v({name:"ImageUrlsInput",components:{ElUpload:U,ElButton:A,InfoIcon:Z,ImagePreview:K,FontAwesomeIcon:C},data(){return{fileList:[],uploadUrl:F()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.headshots?.config?.image_urls},set(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})}}},mounted(){this.value||(this.value=void 0),this.onSetImageUrls()},methods:{onExceed(){w.warning(this.$t("headshots.message.uploadImageExceed"))},onError(){w.error(this.$t("headshots.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})},async onSuccess(){this.onSetImageUrls()}}}),re={class:"field"},ce={class:"title font-bold"},de={class:"upload-wrapper"};function pe(e,t,m,h,k,y){const p=o("image-preview"),u=o("font-awesome-icon"),n=o("el-button"),c=o("el-upload"),g=o("info-icon");return a(),l("div",re,[r("h2",ce,i(e.$t("headshots.name.endImageUrls")),1),r("div",de,[s(c,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=f=>e.fileList=f),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value upload-wrapper",limit:2,multiple:!0,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:d(({file:f})=>[s(p,{url:f.url||f.response?.file_url,name:f.name,percentage:f.percentage,onRemove:P=>e.fileList.splice(e.fileList.indexOf(f),1)},null,8,["url","name","percentage","onRemove"])]),default:d(()=>[s(n,{size:"small",type:"primary",round:""},{default:d(()=>[s(u,{icon:"fa-solid fa-upload",class:"mr-1"}),_(" "+i(e.$t("headshots.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])]),s(g,{content:e.$t("headshots.description.endImageUrls"),class:"info"},null,8,["content"])])}const me=b(le,[["render",pe],["__scopeId","data-v-1690629a"]]),he="fast",ue=v({name:"ModeSelector",components:{ElRadioButton:B,ElRadioGroup:z},data(){return{options:[{label:this.$t("headshots.button.fast"),value:"fast"},{label:this.$t("headshots.button.relax"),value:"relax"}]}},computed:{value:{get(){return this.$store.state.headshots.config?.mode},set(e){console.debug("set mode",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots.config,mode:e})}}},mounted(){this.value||(this.value=he)}}),ge={class:"field"},fe={class:"title font-bold"};function _e(e,t,m,h,k,y){const p=o("el-radio-button"),u=o("el-radio-group");return a(),l("div",ge,[r("h2",fe,i(e.$t("headshots.name.mode")),1),s(u,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=n=>e.value=n),size:"small",class:"mode"},{default:d(()=>[(a(!0),l(T,null,I(e.options,n=>(a(),S(p,{key:n.value,label:n.value},{default:d(()=>[_(i(n.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])}const $e=b(ue,[["render",_e],["__scopeId","data-v-a2a0d5fa"]]),ve=v({name:"StylizeSelector",components:{ElTabs:j,ElTabPane:D,ElImage:G},data(){return{tab:"styles",value:"",elements:{styles:{displayName:this.$t("headshots.styleCategory.styles"),items:[{image:"https://static.aipedias.com/aicamera/common/20241008/20241008202314260779439.png",label:this.$t("headshots.styleTag.malePportrait"),value:"male_portrait"},{image:"https://static.aipedias.com/aicamera/common/20241008/202410082022241e9755548.png",label:this.$t("headshots.styleTag.malePportrait2"),value:"male_portrait2"},{image:"https://static.aipedias.com/aicamera/common/20241101/20241101170130d78f66521.png",label:this.$t("headshots.styleTag.kindergarten"),value:"kindergarten"},{image:"https://static.aipedias.com/aicamera/common/20240923/20240923123233accf60398.webp",label:this.$t("headshots.styleTag.logoTshirt"),value:"logo_tshirt"},{image:"https://static.aipedias.com/aicamera/common/20241025/202410252012329472d0656.jpg",label:this.$t("headshots.styleTag.wedding"),value:"wedding"},{image:"https://static.aipedias.com/aicamera/common/20240915/20240915145045254931400.webp",label:this.$t("headshots.styleTag.businessPphoto"),value:"business_photo"},{image:"https://static.aipedias.com/aicamera/common/20240810/20240810194526040341795.jpg",label:this.$t("headshots.styleTag.bobSuit"),value:"bob_suit"},{image:"https://static.aipedias.com/aicamera/common/20240717/20240717152654e0b348173.webp",label:this.$t("headshots.styleTag.femalePortrait"),value:"female_portrait"}]}}}},watch:{value(e){console.debug("set template",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:e})}},mounted(){this.value||(this.value=""),console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})},methods:{onToggle(e){this.value===e?this.value="":this.value=e,console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})}}}),be={class:"field"},ke=["onClick"],ye={class:"name"};function we(e,t,m,h,k,y){const p=o("el-image"),u=o("el-tab-pane"),n=o("el-tabs");return a(),l("div",be,[s(n,{modelValue:e.tab,"onUpdate:modelValue":t[0]||(t[0]=c=>e.tab=c)},{default:d(()=>[(a(!0),l(T,null,I(e.elements,(c,g)=>(a(),S(u,{key:g,label:c.displayName,name:g,class:"pane"},{default:d(()=>[(a(!0),l(T,null,I(c.items,(f,P)=>(a(),l("div",{key:P,class:V({item:!0,active:e.value===f.value}),onClick:_s=>e.onToggle(f.value)},[s(p,{src:f.image,fit:"fill",class:"preview"},null,8,["src"]),r("span",ye,i(f.label),1)],10,ke))),128))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])}const Te=b(ve,[["render",we],["__scopeId","data-v-be4bd25d"]]),Ie=v({name:"PresetPanel",components:{ModeSelector:$e,ImageUrlsInput:me,ElButton:A,FontAwesomeIcon:C,ElementsSelector:Te},emits:["generate"],computed:{config(){return this.$store.state.headshots?.config}},methods:{onGenerate(){this.$emit("generate")}}}),Se={class:"panel"},Ve={class:"config"},Ee={class:"actions"};function Ce(e,t,m,h,k,y){const p=o("elements-selector"),u=o("mode-selector"),n=o("image-urls-input"),c=o("font-awesome-icon"),g=o("el-button");return a(),l("div",Se,[r("div",Ve,[s(p,{class:"mb-4"}),s(u,{class:"mb-4"}),s(n,{class:"mb-4"}),r("div",Ee,[s(g,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:d(()=>[s(c,{icon:"fa-solid fa-magic",class:"mr-2"}),_(" "+i(e.$t("headshots.button.generate")),1)]),_:1},8,["onClick"])])])])}const Re=b(Ie,[["render",Ce],["__scopeId","data-v-78172a54"]]),Ae=v({name:"ImageGallery",props:{modelValue:{type:Object,required:!0}},setup(e){return{images:N(()=>e.modelValue?.response?.data?.slice(0,2)||[]),viewImage:h=>{window.open(h,"_blank")}}}}),Pe={class:"image-gallery"},Ge=["src"],Le=["onClick"];function Ue(e,t,m,h,k,y){return a(),l("div",Pe,[(a(!0),l(T,null,I(e.images,(p,u)=>(a(),l("div",{key:u,class:"image-container"},[r("img",{src:p.image_url,alt:"Image"},null,8,Ge),p.image_url?(a(),l("button",{key:0,class:"view-button",onClick:n=>e.viewImage(p.image_url)},i(e.$t("headshots.button.viewImage")),9,Le)):$("",!0)]))),128))])}const ze=b(Ae,[["render",Ue],["__scopeId","data-v-03641510"]]),Be=v({name:"TaskPreview",components:{ElImage:G,CopyToClipboard:x,FontAwesomeIcon:C,ElAlert:M,ImageGallery:ze},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.headshots?.application},config(){return this.$store.state.headshots?.config}},methods:{onDownload(e,t){e.stopPropagation(),console.log("on download"),window.open(t,"_blank")},onReload(e){const t=e.target,m=new URL(t.src),h=m.searchParams.get("retry");if(!h)m.searchParams.set("retry","1");else if(parseInt(h)<2)m.searchParams.set("retry",(parseInt(h)+1).toString());else return;t.src=m.toString()},onOpenVideo(e){window.open(e,"_blank")}}}),De={class:"preview"},je={class:"left"},Me={class:"main"},Oe={class:"bot"},qe={class:"datetime"},Ne={class:"info"},Fe={key:0,class:"prompt mt-2"},He={key:0},We={key:1},Xe={key:0,class:V({content:!0,failed:!0})},Ye={class:"image-wrapper"},Ze={class:"description"},Je={key:1,class:V({content:!0})},Ke={class:"description"},Qe={class:"description"},xe={class:"description"},es={key:2,class:V({content:!0})},ss={class:"description"},ts={key:3,class:V({content:!0})},as={class:"description"};function os(e,t,m,h,k,y){const p=o("el-image"),u=o("image-gallery"),n=o("font-awesome-icon"),c=o("copy-to-clipboard"),g=o("el-alert");return a(),l("div",De,[r("div",je,[s(p,{src:"https://cdn.acedata.cloud/isxyfw.png",class:"avatar"})]),r("div",Me,[r("div",Oe,[_(i(e.$t("headshots.name.headshotsBot"))+" ",1),r("span",qe,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Ne,[e.modelValue?.request?.template?(a(),l("p",Fe,[_(i(e.modelValue?.request?.template)+" ",1),e.modelValue?.response?$("",!0):(a(),l("span",He," - ("+i(e.$t("headshots.status.pending"))+") ",1)),e.modelValue?.response?.status==="unknown"?(a(),l("span",We," - ("+i(e.$t("headshots.status.processing"))+") ",1)):$("",!0)])):$("",!0)]),e.modelValue?.response?.success===!0?(a(),l("div",Xe,[r("div",Ye,[s(u,{"model-value":e.modelValue},null,8,["model-value"])]),s(g,{closable:!1,class:"mt-2 success"},{default:d(()=>[r("p",Ze,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(a(),l("div",Je,[s(g,{closable:!1,class:"failure"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",Ke,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),r("p",Qe,[s(n,{icon:"fa-solid fa-circle-info",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),s(c,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),r("p",xe,[s(n,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+i(e.$t("headshots.name.traceId"))+": "+i(e.modelValue?.response?.trace_id)+" ",1),s(c,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?$("",!0):(a(),l("div",es,[s(g,{closable:!1,class:"info"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",ss,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])),e.modelValue?.response?.status==="unknown"?(a(),l("div",ts,[s(g,{closable:!1,class:"info"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",as,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0)])])}const ns=b(Be,[["render",os],["__scopeId","data-v-77229910"]]),is=v({name:"RecentPanel",components:{TaskPreview:ns,ElSkeleton:q,ElSkeletonItem:O,ScrollList:J},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.headshots?.tasks,items:this.$store.state.headshots?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),ls={key:0,class:"tasks"},rs={class:"left"},cs={class:"main"},ds={key:1,class:"tasks"},ps={key:2,class:"description"};function ms(e,t,m,h,k,y){const p=o("el-skeleton-item"),u=o("el-skeleton"),n=o("task-preview"),c=o("scroll-list");return a(),S(c,{ref:"scrollList",class:"panel recent",loading:e.loading,onReachTop:t[0]||(t[0]=g=>e.$emit("reach-top"))},{default:d(()=>[e.tasks?.items===void 0?(a(),l("div",ls,[(a(),l(T,null,I(3,g=>r("div",{key:g,class:"task placeholder"},[r("div",rs,[s(u,{animated:""},{template:d(()=>[s(p,{variant:"image",class:"avatar"})]),_:1})]),r("div",cs,[s(u,{animated:""},{template:d(()=>[s(p,{variant:"p",class:"title"}),s(p,{variant:"image",class:"icon"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),l("div",ds,[(a(!0),l(T,null,I(e.tasks?.items,(g,f)=>(a(),S(n,{key:f,"model-value":g,class:"preview"},null,8,["model-value"]))),128))])):$("",!0),e.tasks?.items?.length===0?(a(),l("p",ps,i(e.$t("headshots.message.noTasks")),1)):$("",!0)]),_:1},8,["loading"])}const hs=b(is,[["render",ms],["__scopeId","data-v-ffd55c16"]]),us="https://webhook.acedata.cloud/headshots",gs=v({name:"HeadshotsIndex",components:{ConfigPanel:Re,Layout:ie,ApplicationStatus:Q,RecentPanel:hs},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.headshots?.status?.getApplications===E.Request},tasksLoading(){return this.$store.state.headshots?.status?.getTasks===E.Request||this.fetchingTasks},service(){return this.$store.state.headshots.service},credential(){return this.$store.state.headshots.credential},config(){return this.$store.state.headshots.config},initializing(){return this.$store.state.headshots.status.getApplications===E.Request},needApply(){return this.$store.state.headshots.status.getApplications===E.Success&&!this.application},application(){return this.$store.state.headshots.application},applications(){return this.$store.state.headshots.applications},tasks(){return this.$store.state.headshots.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await ee({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("headshots/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("headshots/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},onApply(){X.create({application:this.application}).then(({data:e})=>{this.application=e,w.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Y&&w.error(this.$t("application.message.alreadyApplied"))})},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:m,createdAtMax:h}=e||{};console.debug("limit",t,"createdAtMin",m,"createdAtMax",h),this.fetchingTasks=!0;try{await this.$store.dispatch("headshots/getTasks",{limit:t,createdAtMin:m,createdAtMax:h})}finally{this.fetchingTasks=!1}},async onGeneratePicture(){const e={...this.config,callback_url:us},t=this.credential?.token;if(!t){console.error("no token specified");return}w.info(this.$t("headshots.message.startingTask")),H.generate(e,{token:t}).then(()=>{w.success(this.$t("headshots.message.startTaskSuccess")),this.$store.commit("headshots/setConfig",{config:void 0})}).catch(m=>{m?.response?.data?.error?.code===W?w.error(this.$t("headshots.message.usedUp")):w.error(this.$t("headshots.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function fs(e,t,m,h,k,y){const p=o("config-panel"),u=o("application-status"),n=o("recent-panel"),c=o("layout");return a(),S(c,null,{config:d(()=>[s(p,{onGenerate:e.onGeneratePicture},null,8,["onGenerate"])]),result:d(()=>[s(u,{initializing:e.initializing,application:e.application,applications:e.applications,service:e.service,"need-apply":e.needApply,class:"mb-4",onRefresh:e.onGetApplication,onSelect:t[0]||(t[0]=g=>e.$store.dispatch("headshots/setApplication",g))},null,8,["initializing","application","applications","service","need-apply","onRefresh"]),s(n,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const As=b(gs,[["render",fs],["__scopeId","data-v-6cafffbd"]]);export{As as default};
|
|
1
|
+
import{bG as C}from"./vendor-BVnhgPs4.js";import{o as A,N as L,q as U,r as w,A as z,z as B,i as G,R as D,S as j,B as M,T as O,G as q}from"./vendor-element-plus-BUOzLm6W.js";import{d as v,c as l,a as r,l as s,P as R,S as d,al as o,o as a,Z as i,Y as _,F as T,ai as I,R as S,V,b as N,W as $}from"./vendor-vue-Bb02XvLT.js";import{_ as b,S as F,by as H,a6 as W,X,a2 as Y,a3 as E}from"./index-Dn72Szn0.js";import{I as Z,S as J}from"./ScrollList-BkRXLc_a.js";import{I as K}from"./ImagePreview-BnQhS1sy.js";import{A as Q}from"./Status-D-2VRcqL.js";import{C as x}from"./CopyToClipboard-CBliPgeP.js";import{l as ee}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const se=v({name:"LayoutHeadshots",components:{ElDrawer:L,ElButton:A,FontAwesomeIcon:C},data(){return{drawer:!1}}}),te={class:"main flex flex-row flex-1"},ae={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},oe={class:"result h-full p-[15px] flex-1 flex flex-col"};function ne(e,t,m,h,k,y){const p=o("font-awesome-icon"),u=o("el-button"),n=o("el-drawer");return a(),l("div",te,[r("div",ae,[R(e.$slots,"config",{},void 0,!0)]),r("div",oe,[R(e.$slots,"result",{},void 0,!0)]),s(u,{circle:"",class:"menu",onClick:t[0]||(t[0]=c=>e.drawer=!0)},{default:d(()=>[s(p,{icon:"fa-solid fa-gear"})]),_:1}),s(n,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=c=>e.drawer=c),"with-header":!1,size:"340px",class:"drawer"},{default:d(()=>[R(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ie=b(se,[["render",ne],["__scopeId","data-v-21e11492"]]),le=v({name:"ImageUrlsInput",components:{ElUpload:U,ElButton:A,InfoIcon:Z,ImagePreview:K,FontAwesomeIcon:C},data(){return{fileList:[],uploadUrl:F()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.headshots?.config?.image_urls},set(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})}}},mounted(){this.value||(this.value=void 0),this.onSetImageUrls()},methods:{onExceed(){w.warning(this.$t("headshots.message.uploadImageExceed"))},onError(){w.error(this.$t("headshots.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})},async onSuccess(){this.onSetImageUrls()}}}),re={class:"field"},ce={class:"title font-bold"},de={class:"upload-wrapper"};function pe(e,t,m,h,k,y){const p=o("image-preview"),u=o("font-awesome-icon"),n=o("el-button"),c=o("el-upload"),g=o("info-icon");return a(),l("div",re,[r("h2",ce,i(e.$t("headshots.name.endImageUrls")),1),r("div",de,[s(c,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=f=>e.fileList=f),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value upload-wrapper",limit:2,multiple:!0,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:d(({file:f})=>[s(p,{url:f.url||f.response?.file_url,name:f.name,percentage:f.percentage,onRemove:P=>e.fileList.splice(e.fileList.indexOf(f),1)},null,8,["url","name","percentage","onRemove"])]),default:d(()=>[s(n,{size:"small",type:"primary",round:""},{default:d(()=>[s(u,{icon:"fa-solid fa-upload",class:"mr-1"}),_(" "+i(e.$t("headshots.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])]),s(g,{content:e.$t("headshots.description.endImageUrls"),class:"info"},null,8,["content"])])}const me=b(le,[["render",pe],["__scopeId","data-v-1690629a"]]),he="fast",ue=v({name:"ModeSelector",components:{ElRadioButton:B,ElRadioGroup:z},data(){return{options:[{label:this.$t("headshots.button.fast"),value:"fast"},{label:this.$t("headshots.button.relax"),value:"relax"}]}},computed:{value:{get(){return this.$store.state.headshots.config?.mode},set(e){console.debug("set mode",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots.config,mode:e})}}},mounted(){this.value||(this.value=he)}}),ge={class:"field"},fe={class:"title font-bold"};function _e(e,t,m,h,k,y){const p=o("el-radio-button"),u=o("el-radio-group");return a(),l("div",ge,[r("h2",fe,i(e.$t("headshots.name.mode")),1),s(u,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=n=>e.value=n),size:"small",class:"mode"},{default:d(()=>[(a(!0),l(T,null,I(e.options,n=>(a(),S(p,{key:n.value,label:n.value},{default:d(()=>[_(i(n.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])}const $e=b(ue,[["render",_e],["__scopeId","data-v-a2a0d5fa"]]),ve=v({name:"StylizeSelector",components:{ElTabs:j,ElTabPane:D,ElImage:G},data(){return{tab:"styles",value:"",elements:{styles:{displayName:this.$t("headshots.styleCategory.styles"),items:[{image:"https://static.aipedias.com/aicamera/common/20241008/20241008202314260779439.png",label:this.$t("headshots.styleTag.malePportrait"),value:"male_portrait"},{image:"https://static.aipedias.com/aicamera/common/20241008/202410082022241e9755548.png",label:this.$t("headshots.styleTag.malePportrait2"),value:"male_portrait2"},{image:"https://static.aipedias.com/aicamera/common/20241101/20241101170130d78f66521.png",label:this.$t("headshots.styleTag.kindergarten"),value:"kindergarten"},{image:"https://static.aipedias.com/aicamera/common/20240923/20240923123233accf60398.webp",label:this.$t("headshots.styleTag.logoTshirt"),value:"logo_tshirt"},{image:"https://static.aipedias.com/aicamera/common/20241025/202410252012329472d0656.jpg",label:this.$t("headshots.styleTag.wedding"),value:"wedding"},{image:"https://static.aipedias.com/aicamera/common/20240915/20240915145045254931400.webp",label:this.$t("headshots.styleTag.businessPphoto"),value:"business_photo"},{image:"https://static.aipedias.com/aicamera/common/20240810/20240810194526040341795.jpg",label:this.$t("headshots.styleTag.bobSuit"),value:"bob_suit"},{image:"https://static.aipedias.com/aicamera/common/20240717/20240717152654e0b348173.webp",label:this.$t("headshots.styleTag.femalePortrait"),value:"female_portrait"}]}}}},watch:{value(e){console.debug("set template",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:e})}},mounted(){this.value||(this.value=""),console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})},methods:{onToggle(e){this.value===e?this.value="":this.value=e,console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})}}}),be={class:"field"},ke=["onClick"],ye={class:"name"};function we(e,t,m,h,k,y){const p=o("el-image"),u=o("el-tab-pane"),n=o("el-tabs");return a(),l("div",be,[s(n,{modelValue:e.tab,"onUpdate:modelValue":t[0]||(t[0]=c=>e.tab=c)},{default:d(()=>[(a(!0),l(T,null,I(e.elements,(c,g)=>(a(),S(u,{key:g,label:c.displayName,name:g,class:"pane"},{default:d(()=>[(a(!0),l(T,null,I(c.items,(f,P)=>(a(),l("div",{key:P,class:V({item:!0,active:e.value===f.value}),onClick:_s=>e.onToggle(f.value)},[s(p,{src:f.image,fit:"fill",class:"preview"},null,8,["src"]),r("span",ye,i(f.label),1)],10,ke))),128))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])}const Te=b(ve,[["render",we],["__scopeId","data-v-be4bd25d"]]),Ie=v({name:"PresetPanel",components:{ModeSelector:$e,ImageUrlsInput:me,ElButton:A,FontAwesomeIcon:C,ElementsSelector:Te},emits:["generate"],computed:{config(){return this.$store.state.headshots?.config}},methods:{onGenerate(){this.$emit("generate")}}}),Se={class:"panel"},Ve={class:"config"},Ee={class:"actions"};function Ce(e,t,m,h,k,y){const p=o("elements-selector"),u=o("mode-selector"),n=o("image-urls-input"),c=o("font-awesome-icon"),g=o("el-button");return a(),l("div",Se,[r("div",Ve,[s(p,{class:"mb-4"}),s(u,{class:"mb-4"}),s(n,{class:"mb-4"}),r("div",Ee,[s(g,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:d(()=>[s(c,{icon:"fa-solid fa-magic",class:"mr-2"}),_(" "+i(e.$t("headshots.button.generate")),1)]),_:1},8,["onClick"])])])])}const Re=b(Ie,[["render",Ce],["__scopeId","data-v-78172a54"]]),Ae=v({name:"ImageGallery",props:{modelValue:{type:Object,required:!0}},setup(e){return{images:N(()=>e.modelValue?.response?.data?.slice(0,2)||[]),viewImage:h=>{window.open(h,"_blank")}}}}),Pe={class:"image-gallery"},Ge=["src"],Le=["onClick"];function Ue(e,t,m,h,k,y){return a(),l("div",Pe,[(a(!0),l(T,null,I(e.images,(p,u)=>(a(),l("div",{key:u,class:"image-container"},[r("img",{src:p.image_url,alt:"Image"},null,8,Ge),p.image_url?(a(),l("button",{key:0,class:"view-button",onClick:n=>e.viewImage(p.image_url)},i(e.$t("headshots.button.viewImage")),9,Le)):$("",!0)]))),128))])}const ze=b(Ae,[["render",Ue],["__scopeId","data-v-03641510"]]),Be=v({name:"TaskPreview",components:{ElImage:G,CopyToClipboard:x,FontAwesomeIcon:C,ElAlert:M,ImageGallery:ze},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.headshots?.application},config(){return this.$store.state.headshots?.config}},methods:{onDownload(e,t){e.stopPropagation(),console.log("on download"),window.open(t,"_blank")},onReload(e){const t=e.target,m=new URL(t.src),h=m.searchParams.get("retry");if(!h)m.searchParams.set("retry","1");else if(parseInt(h)<2)m.searchParams.set("retry",(parseInt(h)+1).toString());else return;t.src=m.toString()},onOpenVideo(e){window.open(e,"_blank")}}}),De={class:"preview"},je={class:"left"},Me={class:"main"},Oe={class:"bot"},qe={class:"datetime"},Ne={class:"info"},Fe={key:0,class:"prompt mt-2"},He={key:0},We={key:1},Xe={key:0,class:V({content:!0,failed:!0})},Ye={class:"image-wrapper"},Ze={class:"description"},Je={key:1,class:V({content:!0})},Ke={class:"description"},Qe={class:"description"},xe={class:"description"},es={key:2,class:V({content:!0})},ss={class:"description"},ts={key:3,class:V({content:!0})},as={class:"description"};function os(e,t,m,h,k,y){const p=o("el-image"),u=o("image-gallery"),n=o("font-awesome-icon"),c=o("copy-to-clipboard"),g=o("el-alert");return a(),l("div",De,[r("div",je,[s(p,{src:"https://cdn.acedata.cloud/isxyfw.png",class:"avatar"})]),r("div",Me,[r("div",Oe,[_(i(e.$t("headshots.name.headshotsBot"))+" ",1),r("span",qe,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Ne,[e.modelValue?.request?.template?(a(),l("p",Fe,[_(i(e.modelValue?.request?.template)+" ",1),e.modelValue?.response?$("",!0):(a(),l("span",He," - ("+i(e.$t("headshots.status.pending"))+") ",1)),e.modelValue?.response?.status==="unknown"?(a(),l("span",We," - ("+i(e.$t("headshots.status.processing"))+") ",1)):$("",!0)])):$("",!0)]),e.modelValue?.response?.success===!0?(a(),l("div",Xe,[r("div",Ye,[s(u,{"model-value":e.modelValue},null,8,["model-value"])]),s(g,{closable:!1,class:"mt-2 success"},{default:d(()=>[r("p",Ze,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(a(),l("div",Je,[s(g,{closable:!1,class:"failure"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",Ke,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),r("p",Qe,[s(n,{icon:"fa-solid fa-circle-info",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),s(c,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),r("p",xe,[s(n,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+i(e.$t("headshots.name.traceId"))+": "+i(e.modelValue?.response?.trace_id)+" ",1),s(c,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?$("",!0):(a(),l("div",es,[s(g,{closable:!1,class:"info"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",ss,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])),e.modelValue?.response?.status==="unknown"?(a(),l("div",ts,[s(g,{closable:!1,class:"info"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",as,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0)])])}const ns=b(Be,[["render",os],["__scopeId","data-v-77229910"]]),is=v({name:"RecentPanel",components:{TaskPreview:ns,ElSkeleton:q,ElSkeletonItem:O,ScrollList:J},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.headshots?.tasks,items:this.$store.state.headshots?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),ls={key:0,class:"tasks"},rs={class:"left"},cs={class:"main"},ds={key:1,class:"tasks"},ps={key:2,class:"description"};function ms(e,t,m,h,k,y){const p=o("el-skeleton-item"),u=o("el-skeleton"),n=o("task-preview"),c=o("scroll-list");return a(),S(c,{ref:"scrollList",class:"panel recent",loading:e.loading,onReachTop:t[0]||(t[0]=g=>e.$emit("reach-top"))},{default:d(()=>[e.tasks?.items===void 0?(a(),l("div",ls,[(a(),l(T,null,I(3,g=>r("div",{key:g,class:"task placeholder"},[r("div",rs,[s(u,{animated:""},{template:d(()=>[s(p,{variant:"image",class:"avatar"})]),_:1})]),r("div",cs,[s(u,{animated:""},{template:d(()=>[s(p,{variant:"p",class:"title"}),s(p,{variant:"image",class:"icon"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),l("div",ds,[(a(!0),l(T,null,I(e.tasks?.items,(g,f)=>(a(),S(n,{key:f,"model-value":g,class:"preview"},null,8,["model-value"]))),128))])):$("",!0),e.tasks?.items?.length===0?(a(),l("p",ps,i(e.$t("headshots.message.noTasks")),1)):$("",!0)]),_:1},8,["loading"])}const hs=b(is,[["render",ms],["__scopeId","data-v-ffd55c16"]]),us="https://webhook.acedata.cloud/headshots",gs=v({name:"HeadshotsIndex",components:{ConfigPanel:Re,Layout:ie,ApplicationStatus:Q,RecentPanel:hs},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.headshots?.status?.getApplications===E.Request},tasksLoading(){return this.$store.state.headshots?.status?.getTasks===E.Request||this.fetchingTasks},service(){return this.$store.state.headshots.service},credential(){return this.$store.state.headshots.credential},config(){return this.$store.state.headshots.config},initializing(){return this.$store.state.headshots.status.getApplications===E.Request},needApply(){return this.$store.state.headshots.status.getApplications===E.Success&&!this.application},application(){return this.$store.state.headshots.application},applications(){return this.$store.state.headshots.applications},tasks(){return this.$store.state.headshots.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await ee({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("headshots/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("headshots/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},onApply(){X.create({application:this.application}).then(({data:e})=>{this.application=e,w.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Y&&w.error(this.$t("application.message.alreadyApplied"))})},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:m,createdAtMax:h}=e||{};console.debug("limit",t,"createdAtMin",m,"createdAtMax",h),this.fetchingTasks=!0;try{await this.$store.dispatch("headshots/getTasks",{limit:t,createdAtMin:m,createdAtMax:h})}finally{this.fetchingTasks=!1}},async onGeneratePicture(){const e={...this.config,callback_url:us},t=this.credential?.token;if(!t){console.error("no token specified");return}w.info(this.$t("headshots.message.startingTask")),H.generate(e,{token:t}).then(()=>{w.success(this.$t("headshots.message.startTaskSuccess")),this.$store.commit("headshots/setConfig",{config:void 0})}).catch(m=>{m?.response?.data?.error?.code===W?w.error(this.$t("headshots.message.usedUp")):w.error(this.$t("headshots.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function fs(e,t,m,h,k,y){const p=o("config-panel"),u=o("application-status"),n=o("recent-panel"),c=o("layout");return a(),S(c,null,{config:d(()=>[s(p,{onGenerate:e.onGeneratePicture},null,8,["onGenerate"])]),result:d(()=>[s(u,{initializing:e.initializing,application:e.application,applications:e.applications,service:e.service,"need-apply":e.needApply,class:"mb-4",onRefresh:e.onGetApplication,onSelect:t[0]||(t[0]=g=>e.$store.dispatch("headshots/setApplication",g))},null,8,["initializing","application","applications","service","need-apply","onRefresh"]),s(n,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const As=b(gs,[["render",fs],["__scopeId","data-v-6cafffbd"]]);export{As as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bF as q}from"./vendor-BG5lCpoe.js";import{o as U,N as W,p as H,q as K,r as I,J as B,K as G,n as x,B as J,i as Y}from"./vendor-element-plus-7rF3khck.js";import{d as k,c as l,a as c,l as a,P,S as $,al as s,o as n,Z as o,Y as u,F as V,ai as N,R as A,W as f,V as C,a1 as Z}from"./vendor-vue-Bb02XvLT.js";import{_ as y,S as Q,bB as X,bC as ee,bD as T,bE as S,bF as M,bG as j,bH as D,bI as te,a6 as ae,a3 as F}from"./index-C963Via1.js";import{I as O,S as oe}from"./ScrollList-Dhr97grQ.js";import{I as z}from"./ImagePreview-BCYkjzYE.js";import{C as ne,N as se}from"./NoTasks-Dg6rLhZ3.js";import{a as le}from"./price-8az7VHed.js";import{C as re}from"./CopyToClipboard-CxIZo4NZ.js";import{I as ie}from"./ImageWrapper-Bk45C3cb.js";import{B as ce}from"./BotPlaceholder-BxnL1MJo.js";import"./vendor-dayjs-BRrJyY8K.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const ue=k({name:"LayoutNanobanana",components:{ElDrawer:W,ElButton:U,FontAwesomeIcon:q},data(){return{drawer:!1}}}),de={class:"main flex flex-row flex-1"},me={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},pe={class:"result h-full p-[15px] flex-1 flex flex-col"};function fe(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-drawer");return n(),l("div",de,[c("div",me,[P(e.$slots,"config",{},void 0,!0)]),c("div",pe,[P(e.$slots,"result",{},void 0,!0)]),a(g,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(_,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[P(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const he=y(ue,[["render",fe],["__scopeId","data-v-3794959b"]]),_e="",ge=k({name:"PromptInput",components:{ElInput:H,InfoIcon:O},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=_e)}}),be={class:"field"},$e={class:"box"},ve={class:"title font-bold"};function ke(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-input");return n(),l("div",be,[c("div",$e,[c("h2",ve,o(e.$t("nanobanana.name.prompt")),1),a(_,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(g,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt"),maxlength:300,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const ye=y(ge,[["render",ke],["__scopeId","data-v-38b040ab"]]),we=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:U,InfoIcon:O,ImagePreview:z,FontAwesomeIcon:q},data(){return{fileList:[],uploadUrl:Q()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(h=>h?.response?.file_url===r||h?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(h=>h===r||h?.url===r?.url||h?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){I.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){I.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Ve={class:"field flex items-center justify-between"},Ae={class:"title font-bold text-[14px] mb-[10px]"},Ne={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Re={class:"controls flex items-center"},Ie={class:"file-list flex flex-wrap gap-[10px]"};function Ee(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(V,null,[c("div",Ve,[c("h2",Ae,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ne,[c("div",Re,[a(m,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=i=>e.fileList=i),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:$(()=>[a(g,{size:"small",type:"primary",round:""},{default:$(()=>[a(_,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Ie,[(n(!0),l(V,null,N(e.fileList,(i,v)=>(n(),A(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Le=y(we,[["render",Ee]]),Se=k({name:"AspectRatioSelector",components:{ElSelect:G,ElOption:B},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Te={class:"field"},qe={class:"title font-bold"};function Ue(e,t,b,r,d,h){const _=s("el-option"),g=s("el-select");return n(),l("div",Te,[c("h2",qe,o(e.$t("nanobanana.name.aspectRatio")),1),a(g,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(V,null,N(e.options,m=>(n(),A(_,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=y(Se,[["render",Ue],["__scopeId","data-v-67f08a08"]]),Oe=k({name:"NanobananaModelSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{options:[{value:ee,label:this.$t("nanobanana.model.nanoBanana")},{value:T,label:this.$t("nanobanana.model.nanoBananaPro")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=X)}}),Pe={class:"field"},Be={class:"label"},Ge={class:"box"},Me={class:"title font-bold"};function je(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",Pe,[c("div",Be,[c("div",Ge,[c("h2",Me,o(e.$t("nanobanana.name.model")),1),a(_,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const De=y(Oe,[["render",je],["__scopeId","data-v-e279ee32"]]),Fe=k({name:"NanobananaResolutionSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{cachedResolution:S,options:[{value:M,label:M},{value:j,label:j},{value:D,label:D}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model===T}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||S):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=S),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),ze={class:"field"},We={class:"label"},He={class:"box"},Ke={class:"title font-bold"};function xe(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",ze,[c("div",We,[c("div",He,[c("h2",Ke,o(e.$t("nanobanana.name.resolution")),1),a(_,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Je=y(Fe,[["render",xe],["__scopeId","data-v-05ae87bb"]]),Ye=k({name:"ConfigPanel",components:{ElButton:U,FontAwesomeIcon:q,PromptInput:ye,Consumption:ne,ImageUrlsInput:Le,AspectRatioSelector:Ce,ModelSelector:De,ResolutionSelector:Je},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return le({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ze={class:"flex flex-col h-full"},Qe={class:"flex-1 overflow-y-auto p-[15px]"},Xe={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function et(e,t,b,r,d,h){const _=s("model-selector"),g=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ze,[c("div",Qe,[a(_,{class:"mb-4"}),a(g,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",Xe,[a(i,{value:e.consumption,service:e.service},null,8,["value","service"]),a(R,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:$(()=>[a(v,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const tt=y(Ye,[["render",et]]),at=k({name:"TaskPreview",components:{ElImage:Y,CopyToClipboard:re,FontAwesomeIcon:q,ElAlert:J,ImageWrapper:ie,ElButton:U,ElTooltip:x,ImagePreview:z},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),ot={class:"preview"},nt={class:"left"},st={class:"main"},lt={class:"bot"},rt={class:"datetime"},it={class:"info"},ct={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ut={key:1,class:"prompt mt-2"},dt={key:0},mt={key:0,class:C({content:!0,failed:!0})},pt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},ft={class:C({operations:!0,"mt-2":!0,"mb-2":!0})},ht={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},kt={key:1,class:C({content:!0})},yt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},wt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Nt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Et={key:2,class:C({content:!0})},Lt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},St={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Ct(e,t,b,r,d,h){const _=s("el-image"),g=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",ot,[c("div",nt,[a(_,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",st,[c("div",lt,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",rt,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",it,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",ct,[(n(!0),l(V,null,N(e.modelValue?.request?.image_urls,(E,L)=>(n(),A(g,{key:L,url:E,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):f("",!0),e.modelValue?.request?.prompt?(n(),l("p",ut,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?f("",!0):(n(),l("span",dt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):f("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",mt,[c("div",pt,[(n(!0),l(V,null,N(e.images,(E,L)=>(n(),A(m,{key:L,src:E?.image_url,"raw-src":E?.image_url},null,8,["src","raw-src"]))),128))]),c("div",ft,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Z(E=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",ht,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",_t,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):f("",!0),c("p",$t,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):f("",!0)]),_:1})])):f("",!0),e.modelValue?.response?.success===!1?(n(),l("div",kt,[a(R,{closable:!1,class:"failure"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",wt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",At,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):f("",!0),c("p",Nt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),c("p",Rt,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(v,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",It,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):f("",!0)]),_:1})])):f("",!0),!e.modelValue?.response||!e.modelValue?.response?.data?.[0]?.image_url?(n(),l("div",Et,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",St,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Tt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):f("",!0),c("p",Ut,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):f("",!0)])])}const Ot=y(at,[["render",Ct],["__scopeId","data-v-9e0f580a"]]),Pt=k({name:"RecentPanel",components:{TaskPreview:Ot,BotPlaceholder:ce,NoTasks:se,ScrollList:oe},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Bt={key:0},Gt={key:2,class:"w-full h-full flex items-center justify-center"};function Mt(e,t,b,r,d,h){const _=s("bot-placeholder"),g=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(V,null,[e.tasks?.items===void 0?(n(),l("div",Bt,[a(_)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),A(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(V,null,N(e.tasks?.items,w=>(n(),A(g,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):f("",!0),e.tasks?.items?.length===0?(n(),l("div",Gt,[a(p)])):f("",!0)],64)}const jt=y(Pt,[["render",Mt]]),Dt="https://webhook.acedata.cloud/nanobanana",Ft=k({name:"NanobananaIndex",components:{ConfigPanel:tt,Layout:he,RecentPanel:jt},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const b=this.tasks?.items?.[0];if(!b?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),h=d?.scrollHeight||0,_=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:b.created_at}),await this.$nextTick(),d){const g=d.scrollHeight;d.scrollTop=g-h+_}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:b,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",b,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:b,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==T&&"resolution"in e&&delete e.resolution,e?.model===T&&!e?.resolution&&(e.resolution=S);const b={...e,action:t?"edit":"generate",callback_url:Dt},r=this.credential?.token;if(!r){console.error("no token specified");return}I.info(this.$t("nanobanana.message.startingTask")),te.generate(b,{token:r}).then(()=>{I.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const h=d?.response?.data;h?.error?.code===ae?I.error(this.$t("nanobanana.message.usedUp")):I.error(this.$t("nanobanana.message.startTaskFailed")+(h?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function zt(e,t,b,r,d,h){const _=s("config-panel"),g=s("recent-panel"),m=s("layout");return n(),A(m,null,{config:$(()=>[a(_,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(g,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const la=y(Ft,[["render",zt]]);export{la as default};
|
|
1
|
+
import{bG as q}from"./vendor-BVnhgPs4.js";import{o as U,N as W,p as H,q as K,r as I,J as B,K as G,n as x,B as J,i as Y}from"./vendor-element-plus-BUOzLm6W.js";import{d as k,c as l,a as c,l as a,P,S as $,al as s,o as n,Z as o,Y as u,F as V,ai as N,R as A,W as f,V as C,a1 as Z}from"./vendor-vue-Bb02XvLT.js";import{_ as y,S as Q,bB as X,bC as ee,bD as T,bE as S,bF as M,bG as j,bH as D,bI as te,a6 as ae,a3 as F}from"./index-Dn72Szn0.js";import{I as O,S as oe}from"./ScrollList-BkRXLc_a.js";import{I as z}from"./ImagePreview-BnQhS1sy.js";import{C as ne,N as se}from"./NoTasks-3Z1b05wG.js";import{a as le}from"./price-7kPhVK1M.js";import{C as re}from"./CopyToClipboard-CBliPgeP.js";import{I as ie}from"./ImageWrapper-LkV6h7vR.js";import{B as ce}from"./BotPlaceholder-Drm6xiuT.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const ue=k({name:"LayoutNanobanana",components:{ElDrawer:W,ElButton:U,FontAwesomeIcon:q},data(){return{drawer:!1}}}),de={class:"main flex flex-row flex-1"},me={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},pe={class:"result h-full p-[15px] flex-1 flex flex-col"};function fe(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-drawer");return n(),l("div",de,[c("div",me,[P(e.$slots,"config",{},void 0,!0)]),c("div",pe,[P(e.$slots,"result",{},void 0,!0)]),a(g,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(_,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[P(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const he=y(ue,[["render",fe],["__scopeId","data-v-3794959b"]]),_e="",ge=k({name:"PromptInput",components:{ElInput:H,InfoIcon:O},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=_e)}}),be={class:"field"},$e={class:"box"},ve={class:"title font-bold"};function ke(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-input");return n(),l("div",be,[c("div",$e,[c("h2",ve,o(e.$t("nanobanana.name.prompt")),1),a(_,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(g,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt"),maxlength:300,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const ye=y(ge,[["render",ke],["__scopeId","data-v-38b040ab"]]),we=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:U,InfoIcon:O,ImagePreview:z,FontAwesomeIcon:q},data(){return{fileList:[],uploadUrl:Q()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(h=>h?.response?.file_url===r||h?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(h=>h===r||h?.url===r?.url||h?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){I.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){I.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Ve={class:"field flex items-center justify-between"},Ae={class:"title font-bold text-[14px] mb-[10px]"},Ne={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Re={class:"controls flex items-center"},Ie={class:"file-list flex flex-wrap gap-[10px]"};function Ee(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(V,null,[c("div",Ve,[c("h2",Ae,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ne,[c("div",Re,[a(m,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=i=>e.fileList=i),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:$(()=>[a(g,{size:"small",type:"primary",round:""},{default:$(()=>[a(_,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Ie,[(n(!0),l(V,null,N(e.fileList,(i,v)=>(n(),A(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Le=y(we,[["render",Ee]]),Se=k({name:"AspectRatioSelector",components:{ElSelect:G,ElOption:B},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Te={class:"field"},qe={class:"title font-bold"};function Ue(e,t,b,r,d,h){const _=s("el-option"),g=s("el-select");return n(),l("div",Te,[c("h2",qe,o(e.$t("nanobanana.name.aspectRatio")),1),a(g,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(V,null,N(e.options,m=>(n(),A(_,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=y(Se,[["render",Ue],["__scopeId","data-v-67f08a08"]]),Oe=k({name:"NanobananaModelSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{options:[{value:ee,label:this.$t("nanobanana.model.nanoBanana")},{value:T,label:this.$t("nanobanana.model.nanoBananaPro")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=X)}}),Pe={class:"field"},Be={class:"label"},Ge={class:"box"},Me={class:"title font-bold"};function je(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",Pe,[c("div",Be,[c("div",Ge,[c("h2",Me,o(e.$t("nanobanana.name.model")),1),a(_,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const De=y(Oe,[["render",je],["__scopeId","data-v-e279ee32"]]),Fe=k({name:"NanobananaResolutionSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{cachedResolution:S,options:[{value:M,label:M},{value:j,label:j},{value:D,label:D}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model===T}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||S):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=S),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),ze={class:"field"},We={class:"label"},He={class:"box"},Ke={class:"title font-bold"};function xe(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",ze,[c("div",We,[c("div",He,[c("h2",Ke,o(e.$t("nanobanana.name.resolution")),1),a(_,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Je=y(Fe,[["render",xe],["__scopeId","data-v-05ae87bb"]]),Ye=k({name:"ConfigPanel",components:{ElButton:U,FontAwesomeIcon:q,PromptInput:ye,Consumption:ne,ImageUrlsInput:Le,AspectRatioSelector:Ce,ModelSelector:De,ResolutionSelector:Je},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return le({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ze={class:"flex flex-col h-full"},Qe={class:"flex-1 overflow-y-auto p-[15px]"},Xe={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function et(e,t,b,r,d,h){const _=s("model-selector"),g=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ze,[c("div",Qe,[a(_,{class:"mb-4"}),a(g,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",Xe,[a(i,{value:e.consumption,service:e.service},null,8,["value","service"]),a(R,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:$(()=>[a(v,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const tt=y(Ye,[["render",et]]),at=k({name:"TaskPreview",components:{ElImage:Y,CopyToClipboard:re,FontAwesomeIcon:q,ElAlert:J,ImageWrapper:ie,ElButton:U,ElTooltip:x,ImagePreview:z},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),ot={class:"preview"},nt={class:"left"},st={class:"main"},lt={class:"bot"},rt={class:"datetime"},it={class:"info"},ct={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ut={key:1,class:"prompt mt-2"},dt={key:0},mt={key:0,class:C({content:!0,failed:!0})},pt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},ft={class:C({operations:!0,"mt-2":!0,"mb-2":!0})},ht={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},kt={key:1,class:C({content:!0})},yt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},wt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Nt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Et={key:2,class:C({content:!0})},Lt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},St={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Ct(e,t,b,r,d,h){const _=s("el-image"),g=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",ot,[c("div",nt,[a(_,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",st,[c("div",lt,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",rt,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",it,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",ct,[(n(!0),l(V,null,N(e.modelValue?.request?.image_urls,(E,L)=>(n(),A(g,{key:L,url:E,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):f("",!0),e.modelValue?.request?.prompt?(n(),l("p",ut,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?f("",!0):(n(),l("span",dt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):f("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",mt,[c("div",pt,[(n(!0),l(V,null,N(e.images,(E,L)=>(n(),A(m,{key:L,src:E?.image_url,"raw-src":E?.image_url},null,8,["src","raw-src"]))),128))]),c("div",ft,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Z(E=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",ht,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",_t,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):f("",!0),c("p",$t,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):f("",!0)]),_:1})])):f("",!0),e.modelValue?.response?.success===!1?(n(),l("div",kt,[a(R,{closable:!1,class:"failure"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",wt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",At,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):f("",!0),c("p",Nt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),c("p",Rt,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(v,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",It,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):f("",!0)]),_:1})])):f("",!0),!e.modelValue?.response||!e.modelValue?.response?.data?.[0]?.image_url?(n(),l("div",Et,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",St,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Tt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):f("",!0),c("p",Ut,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):f("",!0)])])}const Ot=y(at,[["render",Ct],["__scopeId","data-v-9e0f580a"]]),Pt=k({name:"RecentPanel",components:{TaskPreview:Ot,BotPlaceholder:ce,NoTasks:se,ScrollList:oe},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Bt={key:0},Gt={key:2,class:"w-full h-full flex items-center justify-center"};function Mt(e,t,b,r,d,h){const _=s("bot-placeholder"),g=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(V,null,[e.tasks?.items===void 0?(n(),l("div",Bt,[a(_)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),A(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(V,null,N(e.tasks?.items,w=>(n(),A(g,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):f("",!0),e.tasks?.items?.length===0?(n(),l("div",Gt,[a(p)])):f("",!0)],64)}const jt=y(Pt,[["render",Mt]]),Dt="https://webhook.acedata.cloud/nanobanana",Ft=k({name:"NanobananaIndex",components:{ConfigPanel:tt,Layout:he,RecentPanel:jt},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const b=this.tasks?.items?.[0];if(!b?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),h=d?.scrollHeight||0,_=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:b.created_at}),await this.$nextTick(),d){const g=d.scrollHeight;d.scrollTop=g-h+_}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:b,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",b,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:b,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==T&&"resolution"in e&&delete e.resolution,e?.model===T&&!e?.resolution&&(e.resolution=S);const b={...e,action:t?"edit":"generate",callback_url:Dt},r=this.credential?.token;if(!r){console.error("no token specified");return}I.info(this.$t("nanobanana.message.startingTask")),te.generate(b,{token:r}).then(()=>{I.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const h=d?.response?.data;h?.error?.code===ae?I.error(this.$t("nanobanana.message.usedUp")):I.error(this.$t("nanobanana.message.startTaskFailed")+(h?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function zt(e,t,b,r,d,h){const _=s("config-panel"),g=s("recent-panel"),m=s("layout");return n(),A(m,null,{config:$(()=>[a(_,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(g,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const la=y(Ft,[["render",zt]]);export{la as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bF as B,bR as Y,bS as H,l as oe,bT as se,bU as G,bV as ne,bW as ie,bX as ae,bY as le}from"./vendor-BG5lCpoe.js";import{o as J,N as re,j as ee,J as ce,K as ue,q as de,r as k,p as N,P as pe,e as W,i as X,f as me,g as he,h as _e,n as fe,Q as te,U as $e,G as ge,T as ve,V as ye}from"./vendor-element-plus-7rF3khck.js";import{d as y,c as d,a as s,l as o,P as M,S as p,al as a,o as i,Z as m,F as j,ai as O,R as v,Y as I,W as g,U as K,as as Q,a1 as T,b as E,z as S,w as ke,X as we,_ as be}from"./vendor-vue-Bb02XvLT.js";import{_ as w,bz as Z,bA as q,S as Ce,a3 as L,X as Ve,a2 as Ae}from"./index-C963Via1.js";import{I as F,S as Pe}from"./ScrollList-Dhr97grQ.js";import{C as Se,N as Te}from"./NoTasks-Dg6rLhZ3.js";import{a as Ie}from"./price-8az7VHed.js";import{l as Ee}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-BRrJyY8K.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const Ue=y({name:"LayoutSuno",components:{ElDrawer:re,ElButton:J,FontAwesomeIcon:B},data(){return{drawer:!1,preview:!1}},computed:{}}),Le={class:"main flex flex-row flex-1"},je={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},De={class:"result h-full flex flex-col flex-1 border-r border-[var(--el-border-color)]"},Ge={class:"preview h-full w-[300px] flex flex-col"};function Fe(e,t,l,n,u,r){const c=a("font-awesome-icon"),h=a("el-button"),_=a("el-drawer");return i(),d("div",Le,[s("div",je,[M(e.$slots,"config",{},void 0,!0)]),s("div",De,[M(e.$slots,"result",{},void 0,!0)]),s("div",Ge,[M(e.$slots,"preview",{},void 0,!0)]),o(h,{circle:"",class:"menu",onClick:t[0]||(t[0]=f=>e.drawer=!0)},{default:p(()=>[o(c,{icon:"fa-solid fa-magic"})]),_:1}),o(_,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=f=>e.drawer=f),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:p(()=>[M(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const Re=w(Ue,[["render",Fe],["__scopeId","data-v-6cc632e5"]]),ze=y({name:"VersionSelector",components:{ElSelect:ue,ElOption:ce,ElSwitch:ee},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{label:this.$t("suno.model.model1"),value:"chirp-v2-xxl-alpha"},{label:this.$t("suno.model.model2"),value:"chirp-v3-0"},{label:this.$t("suno.model.model3"),value:"chirp-v3-5"},{label:this.$t("suno.model.model4"),value:"chirp-v4"},{label:this.$t("suno.model.model45"),value:"chirp-v4-5"},{label:this.$t("suno.model.model45plus"),value:"chirp-v4-5-plus"},{label:this.$t("suno.model.model5"),value:"chirp-v5"}]}},computed:{custom:{get(){return this.$store.state.suno?.config?.custom},set(e){console.debug("set custom",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,custom:e})}},model:{get(){return this.$store.state.suno?.config?.model},set(e){console.debug("set model",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e})}}},mounted(){this.model||(console.debug("set default type",Z),this.model=Z)}}),Me={class:"field"},Oe={class:"title font-bold"};function qe(e,t,l,n,u,r){const c=a("el-switch"),h=a("el-option"),_=a("el-select");return i(),d("div",Me,[s("h2",Oe,m(e.$t("suno.name.type")),1),o(c,{modelValue:e.custom,"onUpdate:modelValue":t[0]||(t[0]=f=>e.custom=f),class:"value"},null,8,["modelValue"]),o(_,{modelValue:e.model,"onUpdate:modelValue":t[1]||(t[1]=f=>e.model=f),class:"value",placeholder:e.$t("suno.placeholder.select")},{default:p(()=>[(i(!0),d(j,null,O(e.options,f=>(i(),v(h,{key:f.value,label:f.label,value:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Be=w(ze,[["render",qe],["__scopeId","data-v-5ebe40d6"]]),Ne=y({name:"UploadAudio",components:{ElUpload:de,ElButton:J,InfoIcon:F,FontAwesomeIcon:B},emits:["change"],data(){return{fileList:[],uploadUrl:Ce()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.suno?.config?.audio_id},set(){}}},watch:{urls:{handler(e){this.$emit("change",e)}}},mounted(){this.value||(this.value=void 0),this.onSetAudio()},methods:{onExceed(){k.warning(this.$t("suno.message.uploadReferencesExceed"))},onError(){k.error(this.$t("suno.message.uploadReferencesError"))},async onSuccess(){const e=this.urls?.[0];await this.onGenerateAudioId(e)},async onGenerateAudioId(e){const t={audio_url:e},l=this.credential?.token;if(!l){console.error("no token specified");return}k.info(this.$t("suno.message.startingUploadAudio")),q.upload(t,{token:l}).then(n=>{console.debug("get upload music success",n.data);const u=n.data?.data.audio_id;this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,audio_id:u,action:"upload_extend"}),k.success(this.$t("suno.message.startUploadAudioSuccess"))}).catch(n=>{k.error(n?.response?.data?.error?.message||this.$t("suno.message.startUploadAudioFailed"))})},onSetAudio(){}}}),We={class:"relative"},Xe={class:"flex justify-between"},Ke={class:"flex justify-start items-center"},Ye={class:"text-sm font-bold"};function He(e,t,l,n,u,r){const c=a("info-icon"),h=a("font-awesome-icon"),_=a("el-button"),f=a("el-upload");return i(),d("div",We,[s("div",Xe,[s("div",Ke,[s("span",Ye,m(e.$t("suno.name.referenceAudios")),1),o(c,{content:e.$t("suno.description.uploadAudios")},null,8,["content"])])]),o(f,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=C=>e.fileList=C),name:"file",limit:1,class:"upload-wrapper",action:e.uploadUrl,accept:".mp3","show-file-list":!0,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{default:p(()=>[o(_,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:p(()=>[o(h,{icon:"fa-solid fa-upload",class:"icon mr-1"}),I(" "+m(e.$t("suno.button.uploadAudios")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Je=w(Ne,[["render",He],["__scopeId","data-v-6236152c"]]),Qe="",Ze=y({name:"PromptInput",components:{ElInput:N,ElSwitch:ee,InfoIcon:F},data(){return{}},computed:{prompt:{get(){return this.$store.state.suno?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,prompt:e})}},instrumental:{get(){return this.$store.state.suno?.config?.instrumental},set(e){console.debug("set instrumental",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,instrumental:e})}}},mounted(){this.prompt||(this.prompt=Qe)}}),xe={class:"field"},et={class:"box"},tt={class:"title-info"},ot={class:"title font-bold"},st={class:"instrumental"},nt={class:"title inline-block"};function it(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-switch"),_=a("el-input");return i(),d("div",xe,[s("div",et,[s("div",tt,[s("h2",ot,m(e.$t("suno.name.prompt")),1),o(c,{content:e.$t("suno.description.prompt"),class:"info"},null,8,["content"])]),s("div",st,[o(h,{modelValue:e.instrumental,"onUpdate:modelValue":t[0]||(t[0]=f=>e.instrumental=f),class:"value mr-2"},null,8,["modelValue"]),s("h2",nt,m(e.$t("suno.name.instrumental")),1)])]),o(_,{modelValue:e.prompt,"onUpdate:modelValue":t[1]||(t[1]=f=>e.prompt=f),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("suno.placeholder.prompt"),maxlength:200,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const at=w(Ze,[["render",it],["__scopeId","data-v-d7004a7c"]]),lt="",rt=y({name:"LyricInput",components:{ElInput:N,InfoIcon:F},data(){return{}},computed:{lyric:{get(){return this.$store.state.suno?.config?.lyric},set(e){console.debug("set lyric",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,lyric:e})}},config(){return this.$store.state.suno?.config}},mounted(){this.lyric||(this.lyric=lt)}}),ct={class:"field"},ut={class:"box"},dt={class:"title font-bold"};function pt(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-input");return i(),d("div",ct,[s("div",ut,[s("h2",dt,m(e.$t("suno.name.lyrics")),1),o(c,{content:e.$t("suno.description.lyrics"),class:"info"},null,8,["content"])]),e.config?.action!=="extend"?(i(),v(h,{key:0,modelValue:e.lyric,"onUpdate:modelValue":t[0]||(t[0]=_=>e.lyric=_),rows:3,type:"textarea",class:"lyrics",placeholder:e.$t("suno.placeholder.lyrics"),maxlength:3e3,"show-word-limit":""},null,8,["modelValue","placeholder"])):(i(),v(h,{key:1,modelValue:e.lyric,"onUpdate:modelValue":t[1]||(t[1]=_=>e.lyric=_),rows:3,type:"textarea",class:"lyrics",placeholder:e.$t("suno.placeholder.extend.lyrics"),maxlength:3e3,"show-word-limit":""},null,8,["modelValue","placeholder"]))])}const mt=w(rt,[["render",pt],["__scopeId","data-v-99dfded8"]]),ht=y({name:"StyleInput",components:{ElInput:N,InfoIcon:F},data(){return{}},computed:{style:{get(){return this.$store.state.suno?.config?.style},set(e){console.debug("set style",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,style:e})}},config(){return this.$store.state.suno?.config}}}),_t={class:"field"},ft={class:"title-container"},$t={class:"titlefont-bold"};function gt(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-input");return i(),d("div",_t,[s("div",ft,[s("h2",$t,m(e.$t("suno.name.style")),1),o(c,{content:e.$t("suno.description.style"),class:"info"},null,8,["content"])]),o(h,{modelValue:e.style,"onUpdate:modelValue":t[0]||(t[0]=_=>e.style=_),rows:3,type:"textarea",class:"style",placeholder:e.$t("suno.placeholder.style"),maxlength:200,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const vt=w(ht,[["render",gt],["__scopeId","data-v-85bbfcaa"]]),yt=y({name:"TitleInput",components:{ElInput:N,InfoIcon:F},data(){return{}},computed:{title:{get(){return this.$store.state.suno?.config?.title},set(e){console.debug("set title",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,title:e})}},instrumental:{get(){return this.$store.state.suno?.config?.instrumental},set(e){console.debug("set instrumental",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,instrumental:e})}}}}),kt={class:"field"},wt={class:"title-container"},bt={class:"title font-bold"};function Ct(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-input");return i(),d("div",kt,[s("div",wt,[s("h2",bt,m(e.$t("suno.name.title")),1),o(c,{content:e.$t("suno.description.title"),class:"info"},null,8,["content"])]),o(h,{modelValue:e.title,"onUpdate:modelValue":t[0]||(t[0]=_=>e.title=_),rows:3,type:"textarea",class:"title",placeholder:e.$t("suno.placeholder.title"),maxlength:80,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const Vt=w(yt,[["render",Ct],["__scopeId","data-v-ce70fe34"]]);function D(e){const t=Math.floor(e)%60;e=Math.floor(e/60);const l=e%60,n=l<10?`0${l}`:l,u=t<10?`0${t}`:t;return n+":"+u}const At=y({name:"ExtendFromInput",components:{ElImage:X,ElIcon:W,ElInputNumber:pe,VideoPlay:H,VideoPause:Y},data(){return{}},computed:{audio(){return this.$store.state.suno?.config?.audio},value:{get(){return this.$store.state.suno?.config?.continue_at},set(e){console.debug("set continue_at",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,continue_at:e?parseInt(e):void 0})}}},mounted(){this.value||(this.value=void 0)},methods:{handleChange(e){if(e===void 0){this.value=void 0;return}e<0?this.value=0:e>this.audio?.duration?this.value=this.audio?.duration:this.value=e},useFormatDuring:D,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})}}}),Pt={class:"field"},St={class:"box"},Tt={class:"title font-bold"},It={class:"input-wrapper"},Et={class:"task"},Ut={class:"left"},Lt={key:2,class:"duration"},jt={class:"info"},Dt={class:"title"},Gt={class:"style"};function Ft(e,t,l,n,u,r){const c=a("el-input-number"),h=a("el-image"),_=a("video-pause"),f=a("el-icon"),C=a("video-play"),V=Q("loading");return i(),d("div",Pt,[s("div",St,[s("h2",Tt,m(e.$t("suno.name.extend")),1),s("div",It,[o(c,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=b=>e.value=b),class:"value",min:0,max:e.audio?.duration,controls:!1,placeholder:e.$t("suno.placeholder.extend.continue_at"),onChange:e.handleChange},null,8,["modelValue","max","placeholder","onChange"])])]),s("div",Et,[e.audio?(i(),d("div",{key:0,class:"audio",onClick:t[3]||(t[3]=b=>e.onClick(e.audio))},[K((i(),d("div",Ut,[o(h,{src:e.audio?.image_url,class:"cover",fit:"cover"},null,8,["src"]),e.audio?.audio_url&&e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="playing"?(i(),d("div",{key:0,class:"overlay",onClick:t[1]||(t[1]=b=>e.onPause(e.audio))},[o(f,null,{default:p(()=>[o(_)]),_:1})])):g("",!0),e.audio?.audio_url&&(e.$store.state?.suno?.audio?.id!==e.audio.id||e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="paused")?(i(),d("div",{key:1,class:"overlay",onClick:t[2]||(t[2]=b=>e.onPlay(e.audio))},[o(f,null,{default:p(()=>[o(C)]),_:1})])):g("",!0),e.audio?.duration?(i(),d("div",Lt,m(e.useFormatDuring(e.audio?.duration)),1)):g("",!0)])),[[V,!e.audio?.audio_url]]),s("div",jt,[s("h2",Dt,m(e.audio?.title),1),s("p",Gt,m(e.audio?.style),1)])])):g("",!0)])])}const Rt=w(At,[["render",Ft],["__scopeId","data-v-bcce4821"]]),zt=y({name:"CoverFromInput",components:{ElImage:X,ElIcon:W,VideoPlay:H,VideoPause:Y},data(){return{}},computed:{audio(){return this.$store.state.suno?.config?.audio},value:{get(){return this.$store.state.suno?.config?.continue_at},set(e){console.debug("set continue_at",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,continue_at:e?parseInt(e):void 0})}}},mounted(){this.value||(this.value=void 0)},methods:{handleChange(e){e<0?this.value=0:e>this.audio?.duration?this.value=this.audio?.duration:this.value=e},useFormatDuring:D,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})}}}),Mt={class:"field"},Ot={class:"box"},qt={class:"title font-bold"},Bt={class:"task"},Nt={class:"left"},Wt={key:2,class:"duration"},Xt={class:"info"},Kt={class:"title"},Yt={class:"style"};function Ht(e,t,l,n,u,r){const c=a("el-image"),h=a("video-pause"),_=a("el-icon"),f=a("video-play"),C=Q("loading");return i(),d("div",Mt,[s("div",Ot,[s("h2",qt,m(e.$t("suno.name.cover")),1)]),s("div",Bt,[e.audio?(i(),d("div",{key:0,class:"audio",onClick:t[2]||(t[2]=V=>e.onClick(e.audio))},[K((i(),d("div",Nt,[o(c,{src:e.audio?.image_url,class:"cover",fit:"cover"},null,8,["src"]),e.audio?.audio_url&&e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="playing"?(i(),d("div",{key:0,class:"overlay",onClick:t[0]||(t[0]=V=>e.onPause(e.audio))},[o(_,null,{default:p(()=>[o(h)]),_:1})])):g("",!0),e.audio?.audio_url&&(e.$store.state?.suno?.audio?.id!==e.audio.id||e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="paused")?(i(),d("div",{key:1,class:"overlay",onClick:t[1]||(t[1]=V=>e.onPlay(e.audio))},[o(_,null,{default:p(()=>[o(f)]),_:1})])):g("",!0),e.audio?.duration?(i(),d("div",Wt,m(e.useFormatDuring(e.audio?.duration)),1)):g("",!0)])),[[C,!e.audio?.audio_url]]),s("div",Xt,[s("h2",Kt,m(e.audio?.title),1),s("p",Yt,m(e.audio?.style),1)])])):g("",!0)])])}const Jt=w(zt,[["render",Ht],["__scopeId","data-v-06640216"]]),Qt=y({name:"PresetPanel",components:{TypeSelector:Be,PromptInput:at,LyricInput:mt,StyleInput:vt,TitleInput:Vt,ExtendFromInput:Rt,CoverFromInput:Jt,UploadAudio:Je,FontAwesomeIcon:B,ElButton:J,Consumption:Se},emits:["generate"],computed:{config(){return this.$store.state.suno?.config},consumption(){return Ie(this.config,this.service?.cost)},service(){return this.$store.state.suno?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Zt={class:"flex flex-col h-full"},xt={class:"flex-1 overflow-y-auto p-[15px]"},eo={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function to(e,t,l,n,u,r){const c=a("type-selector"),h=a("upload-audio"),_=a("prompt-input"),f=a("lyric-input"),C=a("style-input"),V=a("title-input"),b=a("extend-from-input"),A=a("cover-from-input"),R=a("consumption"),U=a("font-awesome-icon"),z=a("el-button");return i(),d("div",Zt,[s("div",xt,[o(c,{class:"mb-4"}),o(h,{class:"mb-4"}),e.config?.custom?g("",!0):(i(),v(_,{key:0,class:"mb-4"})),e.config?.custom&&!e.config.instrumental?(i(),v(f,{key:1,class:"mb-4"})):g("",!0),e.config?.custom?(i(),v(C,{key:2,class:"mb-4"})):g("",!0),e.config?.custom?(i(),v(V,{key:3,class:"mb-4"})):g("",!0),e.config?.action==="extend"?(i(),v(b,{key:4,class:"mb-4"})):g("",!0),e.config?.action==="cover"?(i(),v(A,{key:5,class:"mb-4"})):g("",!0)]),s("div",eo,[o(R,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.action!=="extend"?(i(),v(z,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:p(()=>[o(U,{icon:"fa-solid fa-magic",class:"mr-2"}),I(" "+m(e.$t("suno.button.generate")),1)]),_:1},8,["onClick"])):(i(),v(z,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:p(()=>[o(U,{icon:"fa-solid fa-magic",class:"mr-2"}),I(" "+m(e.$t("suno.button.extend")),1)]),_:1},8,["onClick"]))])])}const oo=w(Qt,[["render",to],["__scopeId","data-v-8c98e5e5"]]),so="https://webhook.acedata.cloud/suno",no=y({name:"TaskPreview",components:{ElImage:X,ElIcon:W,ElTooltip:fe,FontAwesomeIcon:B,VideoPlay:H,VideoPause:Y,ElDropdown:_e,ElDropdownMenu:he,ElDropdownItem:me,Loading:oe},props:{modelValue:{type:Object,required:!0}},data(){return{isFetchingVideoUrl:!1}},computed:{loading(){return this.$store.state.suno?.status?.getApplications===L.Request},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},task(){return this.$store.state.suno?.tasks},audios(){const e=this.modelValue?.response?.data??[],t=this.modelValue?.request?.action;return t?e.map(l=>({...l,action:t})):e},application(){return this.$store.state.suno?.application},active(){return this.$store.state.suno?.tasks?.active}},methods:{useFormatDuring:D,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})},onExtend(e,t){e.stopPropagation(),console.log("on extend"),console.debug("set config",t),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:t.model,custom:!0,instrumental:!1,style:t.style,action:"extend",audio:t,audio_id:t.id,continue_at:t.duration})},onDownload(e,t){e&&e.stopPropagation(),console.log("on download",t);const n=new URL(t).pathname,u=n.substring(n.lastIndexOf("/")+1);console.log("on preview",u),fetch(t).then(r=>r.blob()).then(r=>{se.saveAs(r,u)})},async handleVideoDownload(e){if(e.video_url){this.onDownload(null,e.video_url);return}if(!this.isFetchingVideoUrl)try{this.isFetchingVideoUrl=!0;const t=await this.fetchVideoUrlFromApi(e?.id);console.log(`get videoUrl: ${t}`),e.video_url=t,this.onDownload(null,t)}catch(t){console.error("get videoUrl failed:",t),k.error(this.$t("suno.message.getVideoUrlFailed"))}finally{this.isFetchingVideoUrl=!1}},async fetchVideoUrlFromApi(e){return new Promise((t,l)=>{const n={audio_id:e},u=this.credential?.token;if(!u){console.error("no token specified"),l(new Error("No token specified"));return}q.mp4(n,{token:u}).then(r=>{const c=r.data?.data?.video_url;c?t(c):l(new Error("Video URL not found in response"))}).catch(r=>{l(r)})})},onPreview(e,t){e.stopPropagation(),console.log("on preview",t),window.open(t,"_blank")},async onGetStems(e){await this.onGenerateAudioUrl("stems",e)},onCover(e){console.log("on cover"),console.debug("set config",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e.model,custom:!0,instrumental:!1,style:e.style,action:"cover",audio:e,audio_id:e.id})},async onConcatMusic(e){await this.onGenerateAudioUrl("concat",e)},async onGenerateAudioUrl(e,t){const l={action:e,audio_id:t,callback_url:so},n=this.credential?.token;if(!n){console.error("no token specified");return}k.info(this.$t("suno.message.startingTask")),q.audio(l,{token:n}).then(()=>{k.success(this.$t("suno.message.startTaskSuccess"))}).catch(u=>{k.error(u?.response?.data?.error?.message||this.$t("suno.message.startTaskFailed"))}).finally(async()=>{await this.onGetTasks(),await this.onScrollDown()})},async onScrollDown(){setTimeout(()=>{const e=document.querySelector(".tasks");e&&(e.scrollTop=e.scrollHeight)},1e3)},async onGetTasks(){if(this.loading){console.debug("loading");return}await this.$store.dispatch("suno/getTasks",{limit:30,offset:0})}}}),io={class:"task"},ao=["onClick"],lo={class:"left"},ro=["onClick"],co=["onClick"],uo={key:2,class:"duration"},po={class:"info"},mo={class:"title"},ho={class:"style"},_o={class:"right"},fo={class:"el-dropdown-link"},$o={class:"flex items-center min-w-[120px]"},go={class:"el-dropdown-link"};function vo(e,t,l,n,u,r){const c=a("el-image"),h=a("video-pause"),_=a("el-icon"),f=a("video-play"),C=a("font-awesome-icon"),V=a("el-tooltip"),b=a("Loading"),A=a("el-dropdown-item"),R=a("el-dropdown-menu"),U=a("el-dropdown"),z=Q("loading");return i(),d("div",io,[(i(!0),d(j,null,O(e.audios,$=>(i(),d("div",{key:$.id,class:"audio",onClick:T(P=>e.onClick($),["stop"])},[K((i(),d("div",lo,[o(c,{src:$?.image_url,class:"cover",fit:"cover",lazy:""},null,8,["src"]),$?.audio_url&&e.$store.state?.suno?.audio?.id===$.id&&e.$store.state?.suno?.audio?.state==="playing"?(i(),d("div",{key:0,class:"overlay",onClick:T(P=>e.onPause($),["stop"])},[o(_,null,{default:p(()=>[o(h)]),_:1})],8,ro)):g("",!0),$?.audio_url&&(e.$store.state?.suno?.audio?.id!==$.id||e.$store.state?.suno?.audio?.id===$.id&&e.$store.state?.suno?.audio?.state==="paused")?(i(),d("div",{key:1,class:"overlay",onClick:T(P=>e.onPlay($),["stop"])},[o(_,null,{default:p(()=>[o(f)]),_:1})],8,co)):g("",!0),$?.duration?(i(),d("div",uo,m(e.useFormatDuring($?.duration)),1)):g("",!0)])),[[z,!$?.audio_url]]),s("div",po,[s("h2",mo,m($?.title),1),s("p",ho,m($?.style),1)]),s("div",_o,[o(U,null,{dropdown:p(()=>[o(R,null,{default:p(()=>[o(A,{disabled:e.isFetchingVideoUrl,onClick:P=>e.handleVideoDownload($)},{default:p(()=>[s("div",$o,[e.isFetchingVideoUrl?(i(),v(_,{key:0,class:"is-loading mr-2"},{default:p(()=>[o(b)]),_:1})):g("",!0),s("span",null,m(e.$t("suno.button.download_video")),1)])]),_:2},1032,["disabled","onClick"]),$?.audio_url?(i(),v(A,{key:0,onClick:T(P=>e.onDownload(P,$?.audio_url),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.download_audio")),1)]),_:2},1032,["onClick"])):g("",!0)]),_:2},1024)]),default:p(()=>[s("span",fo,[o(V,{effect:"dark",content:e.$t("suno.button.download"),placement:"top"},{default:p(()=>[$?.audio_url||$?.video_url?(i(),v(C,{key:0,icon:"fa-solid fa-download",class:"icon icon-download"})):g("",!0)]),_:2},1032,["content"])])]),_:2},1024),o(U,null,{dropdown:p(()=>[o(R,null,{default:p(()=>[$?.audio_url?(i(),v(A,{key:0,onClick:T(P=>e.onExtend(P,$),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.extend")),1)]),_:2},1032,["onClick"])):g("",!0),$.id?(i(),v(A,{key:1,onClick:T(P=>e.onGetStems($.id),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.get_stems")),1)]),_:2},1032,["onClick"])):g("",!0),o(A,{onClick:T(P=>e.onCover($),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.cover_music")),1)]),_:2},1032,["onClick"]),$?.id&&$?.action==="extend"?(i(),v(A,{key:2,onClick:T(P=>e.onConcatMusic($?.id),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.concat_music")),1)]),_:2},1032,["onClick"])):g("",!0)]),_:2},1024)]),default:p(()=>[s("span",go,[o(V,{effect:"dark",content:e.$t("suno.button.more"),placement:"top"},{default:p(()=>[$?.audio_url||$?.video_url?(i(),v(C,{key:0,icon:"fa-solid fa-ellipsis",class:"icon icon-ellipsis"})):g("",!0)]),_:2},1032,["content"])])]),_:2},1024)])],8,ao))),128))])}const yo=w(no,[["render",vo]]),ko={class:"player-slider"},wo=y({__name:"PlayerSlider",setup(e){const t=G(),l=E({get:()=>t.state.suno?.audio?.progress,set:c=>t.commit("suno/setAudio",{...t.state.suno.audio,progress:c})}),n=E({get:()=>t.state.suno?.audio?.duration,set:c=>t.commit("suno/setAudio",{...t.state.suno.audio,duration:c})}),u=()=>{},r=c=>t.dispatch("suno/setAudio",{...t.state.suno.audio,progress:c});return(c,h)=>(i(),d("div",ko,[o(S(te),{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=_=>l.value=_),"show-tooltip":!1,min:0,max:n.value,onChange:r,onInput:u},null,8,["modelValue","max"])]))}}),bo="/assets/disk-XFRmVAfp.png",Co={class:"flex player-song"},Vo=["src"],Ao={class:"ml-2 text-xs flex flex-col justify-between"},Po={class:"w-52 2xl:w-96 cursor-pointer truncate"},So={class:"flex"},To={class:"ml-2 text-dc"},Io=y({__name:"PlayerSong",setup(e){const t=G(),l=E({get:()=>t.state.suno.audio,set:n=>t.commit("suno/setAudio",n)});return ke(l,(n,u)=>{if(n?.audio_url!==u?.audio_url){console.log("audio changed",n),n.object&&(console.log("111",n.object),n.object.pause(),delete n.object);const r=new Audio(n.audio_url);n.state==="playing"?r.play():r.pause(),r.addEventListener("loadedmetadata",()=>{r.currentTime=0,r.addEventListener("timeupdate",()=>{t.commit("suno/setAudio",{...t.state.suno.audio,progress:r.currentTime})})}),t.commit("suno/setAudio",{...t.state.suno.audio,object:r})}else if(n?.progress!==u?.progress&&Math.abs(n.progress-n.object.currentTime)>2){console.log("progress changed",n.progress);const r=t.state.suno.audio;r.object&&(r.object.currentTime=r.progress)}else n?.state!==u?.state&&(console.log("state changed",n.state),n.object&&(n.state==="playing"?n.object.play():n.object.pause()));n?.volume!==u?.volume&&(console.log("volume changed",n.volume),n.object&&(n.object.volume=n.volume/100))}),(n,u)=>(i(),d("div",Co,[s("img",{alt:"",class:"w-11 h-11 rounded",src:l.value?.image_url||S(bo)},null,8,Vo),s("div",Ao,[s("div",Po,[s("div",So,[s("span",null,m(l.value?.title||"Music"),1),s("span",To,"- "+m(l.value?.style||"SmallRuralDog"),1)])])])]))}}),Eo={class:"flex justify-end items-center gap-x-2.5"},Uo={class:"text-xs"},Lo=y({__name:"PlayerAction",setup(e){const t=G(),l=E({get:()=>t.state.suno?.audio?.progress,set:u=>t.commit("suno/setAudio",{...t.state.suno.audio,progress:u})}),n=E({get:()=>t.state.suno?.audio?.duration,set:u=>t.commit("suno/setAudio",{...t.state.suno.audio,duration:u})});return(u,r)=>(i(),d("div",Eo,[s("span",Uo,m(S(D)(l.value))+" / "+m(S(D)(n.value)),1)]))}}),x=y({__name:"IconPark",props:{icon:{},theme:{},size:{},spin:{type:Boolean},fill:{},strokeLinecap:{},strokeLinejoin:{},strokeWidth:{}},setup(e){return(t,l)=>(i(),v(we(t.icon),{theme:t.theme,size:t.size,spin:t.spin,fill:t.fill,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,"stroke-width":t.strokeWidth},null,8,["theme","size","spin","fill","stroke-linecap","stroke-linejoin","stroke-width"]))}}),jo={class:"player-volume flex flex-col items-center pt-2"},Do={class:"text-sm mt-3"},Go=y({__name:"PlayerVolumeSlider",setup(e){const t=G(),l=E({get:()=>t.state.suno.audio?.volume,set:r=>t.commit("suno/setAudio",{...t.state.suno.audio,volume:r})}),n=E({get:()=>t.state.suno.audio?.muted,set:r=>t.commit("suno/setAudio",{...t.state.suno.audio,muted:r})}),u=r=>t.dispatch("suno/setVolume",r);return(r,c)=>(i(),d("div",jo,[o(S(te),{modelValue:l.value,"onUpdate:modelValue":c[0]||(c[0]=h=>l.value=h),vertical:"",height:"100px","show-tooltip":!1,max:100,min:0,size:"small",disabled:n.value,onInput:u},null,8,["modelValue","disabled"]),s("div",Do,m(l.value),1)]))}}),Fo={class:"flex items-center justify-center gap-x-3"},Ro=y({__name:"PlayerController",setup(e){const t=G(),l=()=>t.dispatch("suno/setAudio",{...t.state.suno.audio,state:t.state.suno.audio.state==="playing"?"paused":"playing"}),n=E(()=>t.state.suno.audio);return(u,r)=>(i(),d("div",Fo,[o(x,{icon:n.value?.state==="playing"?S(ne):S(ie),size:"45",theme:"filled",class:"text-[var(--el-color-primary)] cursor-pointer",onClick:l},null,8,["icon"]),o(S($e),{placement:"top",width:"50px",trigger:"click"},{reference:p(()=>[o(x,{icon:S(ae),size:"20","stroke-width":2,class:"cursor-pointer"},null,8,["icon"])]),default:p(()=>[o(Go)]),_:1})]))}}),zo={class:"flex flex-col items-stretch h-20"},Mo={class:"flex grow px-5 items-center"},Oo={class:"flex-1"},qo={class:"flex-1"},Bo={class:"flex-1"},No=y({__name:"Player",setup(e){return(t,l)=>(i(),d("div",zo,[o(wo),s("div",Mo,[s("div",Oo,[o(Io)]),s("div",qo,[o(Ro)]),s("div",Bo,[o(Lo)])])]))}}),Wo=y({name:"RecentPanel",components:{ElSkeletonItem:ve,ElSkeleton:ge,TaskPreview:yo,Player:No,NoTasks:Te,ScrollList:Pe},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.suno?.tasks,items:this.$store.state.suno?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Xo={key:0,class:"tasks"},Ko={class:"left w-[70px] p-[10px] flex items-center"},Yo={class:"main w-[calc(100%-70px)] flex-1 p-[10px]"},Ho={key:2,class:"w-full flex-1 flex items-center justify-center"},Jo={class:"h-20"};function Qo(e,t,l,n,u,r){const c=a("el-skeleton-item"),h=a("el-skeleton"),_=a("task-preview"),f=a("scroll-list"),C=a("no-tasks"),V=a("player");return i(),d(j,null,[e.tasks?.items===void 0?(i(),d("div",Xo,[(i(),d(j,null,O(3,b=>s("div",{key:b,class:"flex"},[s("div",Ko,[o(h,{animated:""},{template:p(()=>[o(c,{variant:"image",class:"avatar w-[50px] h-[50px]"})]),_:1})]),s("div",Yo,[o(h,{animated:""},{template:p(()=>[o(c,{variant:"p",class:"w-[200px] h-[15px] mb-[5px] mt-[10px]"}),o(c,{variant:"text"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(i(),v(f,{key:1,ref:"scrollList",class:"flex-1 w-full overflow-y-auto tasks p-2",loading:e.loading,onReachTop:t[0]||(t[0]=b=>e.$emit("reach-top"))},{default:p(()=>[(i(!0),d(j,null,O(e.tasks?.items,(b,A)=>(i(),v(_,{key:A,"model-value":b,class:"preview"},null,8,["model-value"]))),128))]),_:1},8,["loading"])):g("",!0),e.tasks?.items?.length===0?(i(),d("div",Ho,[o(C)])):g("",!0),K(s("div",Jo,[o(V)],512),[[be,!!e.$store?.state?.suno?.audio?.object]])],64)}const Zo=w(Wo,[["render",Qo]]),xo=y({name:"TaskPreview",components:{IconPicture:le,ElImage:X,ElAvatar:ye,ElIcon:W},computed:{audio(){return this.$store.state.suno?.audio}}}),es={key:0,class:"size-full overflow-hidden"},ts={class:"relative h-[300px]"},os={class:"flex items-center justify-center size-full bg-[var(--el-bg-color)]"},ss={class:"absolute bottom-0 left-0 right-0 m-0 p-4 text-white z-10 bg-gradient-to-t from-black/70 to-transparent"},ns={class:"p-4"},is={class:"flex items-center font-bold mb-2"},as={class:"text-[var(--el-text-color-regular)] mb-2"},ls={class:"text-xs text-[var(--el-text-color-regular)]"},rs={class:"mt-4 text-sm leading-[25px] whitespace-pre-wrap"},cs={key:1,class:"w-full h-full"};function us(e,t,l,n,u,r){const c=a("icon-picture"),h=a("el-icon"),_=a("el-image"),f=a("el-avatar");return e.audio?.object?(i(),d("div",es,[s("div",ts,[o(_,{src:e.audio.image_url,fit:"cover",class:"size-full"},{error:p(()=>[s("div",os,[o(h,{class:"text-3xl"},{default:p(()=>[o(c)]),_:1})])]),_:1},8,["src"]),s("h2",ss,m(e.audio?.title),1)]),s("div",ns,[s("div",is,[o(f,{size:30,src:e.audio?.image_url,class:"mr-2"},null,8,["src"]),s("span",null,m(e.audio?.title),1)]),s("p",as,m(e.audio?.style),1),s("p",ls,m(e.$dayjs.format(e.audio?.created_at)),1),s("div",rs,[s("p",null,m(e.audio?.lyric),1)])])])):(i(),d("div",cs))}const ds=w(xo,[["render",us]]),ps="https://webhook.acedata.cloud/suno",ms=y({name:"SunoIndex",components:{Layout:Re,ConfigPanel:oo,RecentPanel:Zo,PreviewPanel:ds},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.suno?.status?.getApplications===L.Request},tasksLoading(){return this.$store.state.suno?.status?.getTasks===L.Request||this.fetchingTasks},service(){return this.$store.state.suno.service},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},initializing(){return this.$store.state.suno.status.getApplications===L.Request},needApply(){return this.$store.state.suno.status.getApplications===L.Success&&!this.application},application(){return this.$store.state.suno.application},tasks(){return this.$store.state.suno.tasks},applications(){return this.$store.state.suno.applications}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await Ee({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("suno/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplications"),await this.$store.dispatch("suno/getApplications"),console.debug("end onGetApplications"),await this.onGetTasks()},onApply(){Ve.create({application:this.application}).then(({data:e})=>{this.application=e,k.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Ae&&k.error(this.$t("application.message.alreadyApplied"))})},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:l,createdAtMax:n}=e||{};console.debug("limit",t,"createdAtMin",l,"createdAtMax",n),this.fetchingTasks=!0;try{await this.$store.dispatch("suno/getTasks",{limit:t,createdAtMin:l,createdAtMax:n})}finally{this.fetchingTasks=!1}},async onGenerateAudio(){const e={...this.config,callback_url:ps},t=this.credential?.token;if(!t){console.error("no token specified");return}k.info(this.$t("suno.message.startingTask")),q.audio(e,{token:t}).then(()=>{k.success(this.$t("suno.message.startTaskSuccess"))}).catch(l=>{k.error(l?.response?.data?.error?.message||this.$t("suno.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function hs(e,t,l,n,u,r){const c=a("config-panel"),h=a("recent-panel"),_=a("preview-panel"),f=a("layout");return i(),v(f,null,{config:p(()=>[o(c,{onGenerate:e.onGenerateAudio},null,8,["onGenerate"])]),result:p(()=>[o(h,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),preview:p(()=>[o(_)]),_:1})}const Ps=w(ms,[["render",hs],["__scopeId","data-v-d1296b1a"]]);export{Ps as default};
|
|
1
|
+
import{bG as B,bS as Y,bT as H,l as oe,bU as se,bV as D,bW as ne,bX as ie,bY as ae,bZ as le}from"./vendor-BVnhgPs4.js";import{o as Z,N as re,j as ee,J as ce,K as ue,q as de,r as k,p as N,P as pe,e as W,i as X,f as me,g as he,h as _e,n as fe,Q as te,U as $e,G as ge,T as ve,V as ye}from"./vendor-element-plus-BUOzLm6W.js";import{d as y,c as d,a as s,l as o,P as M,S as p,al as a,o as i,Z as m,F as j,ai as O,R as v,Y as I,W as g,U as K,as as J,a1 as T,b as E,z as S,w as ke,X as we,_ as be}from"./vendor-vue-Bb02XvLT.js";import{_ as w,bz as Q,bA as q,S as Ce,a3 as L,X as Ve,a2 as Ae}from"./index-Dn72Szn0.js";import{I as F,S as Pe}from"./ScrollList-BkRXLc_a.js";import{C as Se,N as Te}from"./NoTasks-3Z1b05wG.js";import{a as Ie}from"./price-7kPhVK1M.js";import{l as Ee}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const Ue=y({name:"LayoutSuno",components:{ElDrawer:re,ElButton:Z,FontAwesomeIcon:B},data(){return{drawer:!1,preview:!1}},computed:{}}),Le={class:"main flex flex-row flex-1"},je={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},Ge={class:"result h-full flex flex-col flex-1 border-r border-[var(--el-border-color)]"},De={class:"preview h-full w-[300px] flex flex-col"};function Fe(e,t,l,n,u,r){const c=a("font-awesome-icon"),h=a("el-button"),_=a("el-drawer");return i(),d("div",Le,[s("div",je,[M(e.$slots,"config",{},void 0,!0)]),s("div",Ge,[M(e.$slots,"result",{},void 0,!0)]),s("div",De,[M(e.$slots,"preview",{},void 0,!0)]),o(h,{circle:"",class:"menu",onClick:t[0]||(t[0]=f=>e.drawer=!0)},{default:p(()=>[o(c,{icon:"fa-solid fa-magic"})]),_:1}),o(_,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=f=>e.drawer=f),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:p(()=>[M(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const Re=w(Ue,[["render",Fe],["__scopeId","data-v-6cc632e5"]]),ze=y({name:"VersionSelector",components:{ElSelect:ue,ElOption:ce,ElSwitch:ee},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{label:this.$t("suno.model.model1"),value:"chirp-v2-xxl-alpha"},{label:this.$t("suno.model.model2"),value:"chirp-v3-0"},{label:this.$t("suno.model.model3"),value:"chirp-v3-5"},{label:this.$t("suno.model.model4"),value:"chirp-v4"},{label:this.$t("suno.model.model45"),value:"chirp-v4-5"},{label:this.$t("suno.model.model45plus"),value:"chirp-v4-5-plus"},{label:this.$t("suno.model.model5"),value:"chirp-v5"}]}},computed:{custom:{get(){return this.$store.state.suno?.config?.custom},set(e){console.debug("set custom",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,custom:e})}},model:{get(){return this.$store.state.suno?.config?.model},set(e){console.debug("set model",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e})}}},mounted(){this.model||(console.debug("set default type",Q),this.model=Q)}}),Me={class:"field"},Oe={class:"title font-bold"};function qe(e,t,l,n,u,r){const c=a("el-switch"),h=a("el-option"),_=a("el-select");return i(),d("div",Me,[s("h2",Oe,m(e.$t("suno.name.type")),1),o(c,{modelValue:e.custom,"onUpdate:modelValue":t[0]||(t[0]=f=>e.custom=f),class:"value"},null,8,["modelValue"]),o(_,{modelValue:e.model,"onUpdate:modelValue":t[1]||(t[1]=f=>e.model=f),class:"value",placeholder:e.$t("suno.placeholder.select")},{default:p(()=>[(i(!0),d(j,null,O(e.options,f=>(i(),v(h,{key:f.value,label:f.label,value:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Be=w(ze,[["render",qe],["__scopeId","data-v-5ebe40d6"]]),Ne=y({name:"UploadAudio",components:{ElUpload:de,ElButton:Z,InfoIcon:F,FontAwesomeIcon:B},emits:["change"],data(){return{fileList:[],uploadUrl:Ce()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.suno?.config?.audio_id},set(){}}},watch:{urls:{handler(e){this.$emit("change",e)}}},mounted(){this.value||(this.value=void 0),this.onSetAudio()},methods:{onExceed(){k.warning(this.$t("suno.message.uploadReferencesExceed"))},onError(){k.error(this.$t("suno.message.uploadReferencesError"))},async onSuccess(){const e=this.urls?.[0];await this.onGenerateAudioId(e)},async onGenerateAudioId(e){const t={audio_url:e},l=this.credential?.token;if(!l){console.error("no token specified");return}k.info(this.$t("suno.message.startingUploadAudio")),q.upload(t,{token:l}).then(n=>{console.debug("get upload music success",n.data);const u=n.data?.data.audio_id;this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,audio_id:u,action:"upload_extend"}),k.success(this.$t("suno.message.startUploadAudioSuccess"))}).catch(n=>{k.error(n?.response?.data?.error?.message||this.$t("suno.message.startUploadAudioFailed"))})},onSetAudio(){}}}),We={class:"relative"},Xe={class:"flex justify-between"},Ke={class:"flex justify-start items-center"},Ye={class:"text-sm font-bold"};function He(e,t,l,n,u,r){const c=a("info-icon"),h=a("font-awesome-icon"),_=a("el-button"),f=a("el-upload");return i(),d("div",We,[s("div",Xe,[s("div",Ke,[s("span",Ye,m(e.$t("suno.name.referenceAudios")),1),o(c,{content:e.$t("suno.description.uploadAudios")},null,8,["content"])])]),o(f,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=C=>e.fileList=C),name:"file",limit:1,class:"upload-wrapper",action:e.uploadUrl,accept:".mp3","show-file-list":!0,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{default:p(()=>[o(_,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:p(()=>[o(h,{icon:"fa-solid fa-upload",class:"icon mr-1"}),I(" "+m(e.$t("suno.button.uploadAudios")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Ze=w(Ne,[["render",He],["__scopeId","data-v-6236152c"]]),Je="",Qe=y({name:"PromptInput",components:{ElInput:N,ElSwitch:ee,InfoIcon:F},data(){return{}},computed:{prompt:{get(){return this.$store.state.suno?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,prompt:e})}},instrumental:{get(){return this.$store.state.suno?.config?.instrumental},set(e){console.debug("set instrumental",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,instrumental:e})}}},mounted(){this.prompt||(this.prompt=Je)}}),xe={class:"field"},et={class:"box"},tt={class:"title-info"},ot={class:"title font-bold"},st={class:"instrumental"},nt={class:"title inline-block"};function it(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-switch"),_=a("el-input");return i(),d("div",xe,[s("div",et,[s("div",tt,[s("h2",ot,m(e.$t("suno.name.prompt")),1),o(c,{content:e.$t("suno.description.prompt"),class:"info"},null,8,["content"])]),s("div",st,[o(h,{modelValue:e.instrumental,"onUpdate:modelValue":t[0]||(t[0]=f=>e.instrumental=f),class:"value mr-2"},null,8,["modelValue"]),s("h2",nt,m(e.$t("suno.name.instrumental")),1)])]),o(_,{modelValue:e.prompt,"onUpdate:modelValue":t[1]||(t[1]=f=>e.prompt=f),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("suno.placeholder.prompt"),maxlength:200,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const at=w(Qe,[["render",it],["__scopeId","data-v-d7004a7c"]]),lt="",rt=y({name:"LyricInput",components:{ElInput:N,InfoIcon:F},data(){return{}},computed:{lyric:{get(){return this.$store.state.suno?.config?.lyric},set(e){console.debug("set lyric",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,lyric:e})}},config(){return this.$store.state.suno?.config}},mounted(){this.lyric||(this.lyric=lt)}}),ct={class:"field"},ut={class:"box"},dt={class:"title font-bold"};function pt(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-input");return i(),d("div",ct,[s("div",ut,[s("h2",dt,m(e.$t("suno.name.lyrics")),1),o(c,{content:e.$t("suno.description.lyrics"),class:"info"},null,8,["content"])]),e.config?.action!=="extend"?(i(),v(h,{key:0,modelValue:e.lyric,"onUpdate:modelValue":t[0]||(t[0]=_=>e.lyric=_),rows:3,type:"textarea",class:"lyrics",placeholder:e.$t("suno.placeholder.lyrics"),maxlength:3e3,"show-word-limit":""},null,8,["modelValue","placeholder"])):(i(),v(h,{key:1,modelValue:e.lyric,"onUpdate:modelValue":t[1]||(t[1]=_=>e.lyric=_),rows:3,type:"textarea",class:"lyrics",placeholder:e.$t("suno.placeholder.extend.lyrics"),maxlength:3e3,"show-word-limit":""},null,8,["modelValue","placeholder"]))])}const mt=w(rt,[["render",pt],["__scopeId","data-v-99dfded8"]]),ht=y({name:"StyleInput",components:{ElInput:N,InfoIcon:F},data(){return{}},computed:{style:{get(){return this.$store.state.suno?.config?.style},set(e){console.debug("set style",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,style:e})}},config(){return this.$store.state.suno?.config}}}),_t={class:"field"},ft={class:"title-container"},$t={class:"titlefont-bold"};function gt(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-input");return i(),d("div",_t,[s("div",ft,[s("h2",$t,m(e.$t("suno.name.style")),1),o(c,{content:e.$t("suno.description.style"),class:"info"},null,8,["content"])]),o(h,{modelValue:e.style,"onUpdate:modelValue":t[0]||(t[0]=_=>e.style=_),rows:3,type:"textarea",class:"style",placeholder:e.$t("suno.placeholder.style"),maxlength:200,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const vt=w(ht,[["render",gt],["__scopeId","data-v-85bbfcaa"]]),yt=y({name:"TitleInput",components:{ElInput:N,InfoIcon:F},data(){return{}},computed:{title:{get(){return this.$store.state.suno?.config?.title},set(e){console.debug("set title",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,title:e})}},instrumental:{get(){return this.$store.state.suno?.config?.instrumental},set(e){console.debug("set instrumental",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,instrumental:e})}}}}),kt={class:"field"},wt={class:"title-container"},bt={class:"title font-bold"};function Ct(e,t,l,n,u,r){const c=a("info-icon"),h=a("el-input");return i(),d("div",kt,[s("div",wt,[s("h2",bt,m(e.$t("suno.name.title")),1),o(c,{content:e.$t("suno.description.title"),class:"info"},null,8,["content"])]),o(h,{modelValue:e.title,"onUpdate:modelValue":t[0]||(t[0]=_=>e.title=_),rows:3,type:"textarea",class:"title",placeholder:e.$t("suno.placeholder.title"),maxlength:80,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const Vt=w(yt,[["render",Ct],["__scopeId","data-v-ce70fe34"]]);function G(e){const t=Math.floor(e)%60;e=Math.floor(e/60);const l=e%60,n=l<10?`0${l}`:l,u=t<10?`0${t}`:t;return n+":"+u}const At=y({name:"ExtendFromInput",components:{ElImage:X,ElIcon:W,ElInputNumber:pe,VideoPlay:H,VideoPause:Y},data(){return{}},computed:{audio(){return this.$store.state.suno?.config?.audio},value:{get(){return this.$store.state.suno?.config?.continue_at},set(e){console.debug("set continue_at",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,continue_at:e?parseInt(e):void 0})}}},mounted(){this.value||(this.value=void 0)},methods:{handleChange(e){if(e===void 0){this.value=void 0;return}e<0?this.value=0:e>this.audio?.duration?this.value=this.audio?.duration:this.value=e},useFormatDuring:G,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})}}}),Pt={class:"field"},St={class:"box"},Tt={class:"title font-bold"},It={class:"input-wrapper"},Et={class:"task"},Ut={class:"left"},Lt={key:2,class:"duration"},jt={class:"info"},Gt={class:"title"},Dt={class:"style"};function Ft(e,t,l,n,u,r){const c=a("el-input-number"),h=a("el-image"),_=a("video-pause"),f=a("el-icon"),C=a("video-play"),V=J("loading");return i(),d("div",Pt,[s("div",St,[s("h2",Tt,m(e.$t("suno.name.extend")),1),s("div",It,[o(c,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=b=>e.value=b),class:"value",min:0,max:e.audio?.duration,controls:!1,placeholder:e.$t("suno.placeholder.extend.continue_at"),onChange:e.handleChange},null,8,["modelValue","max","placeholder","onChange"])])]),s("div",Et,[e.audio?(i(),d("div",{key:0,class:"audio",onClick:t[3]||(t[3]=b=>e.onClick(e.audio))},[K((i(),d("div",Ut,[o(h,{src:e.audio?.image_url,class:"cover",fit:"cover"},null,8,["src"]),e.audio?.audio_url&&e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="playing"?(i(),d("div",{key:0,class:"overlay",onClick:t[1]||(t[1]=b=>e.onPause(e.audio))},[o(f,null,{default:p(()=>[o(_)]),_:1})])):g("",!0),e.audio?.audio_url&&(e.$store.state?.suno?.audio?.id!==e.audio.id||e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="paused")?(i(),d("div",{key:1,class:"overlay",onClick:t[2]||(t[2]=b=>e.onPlay(e.audio))},[o(f,null,{default:p(()=>[o(C)]),_:1})])):g("",!0),e.audio?.duration?(i(),d("div",Lt,m(e.useFormatDuring(e.audio?.duration)),1)):g("",!0)])),[[V,!e.audio?.audio_url]]),s("div",jt,[s("h2",Gt,m(e.audio?.title),1),s("p",Dt,m(e.audio?.style),1)])])):g("",!0)])])}const Rt=w(At,[["render",Ft],["__scopeId","data-v-bcce4821"]]),zt=y({name:"CoverFromInput",components:{ElImage:X,ElIcon:W,VideoPlay:H,VideoPause:Y},data(){return{}},computed:{audio(){return this.$store.state.suno?.config?.audio},value:{get(){return this.$store.state.suno?.config?.continue_at},set(e){console.debug("set continue_at",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,continue_at:e?parseInt(e):void 0})}}},mounted(){this.value||(this.value=void 0)},methods:{handleChange(e){e<0?this.value=0:e>this.audio?.duration?this.value=this.audio?.duration:this.value=e},useFormatDuring:G,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})}}}),Mt={class:"field"},Ot={class:"box"},qt={class:"title font-bold"},Bt={class:"task"},Nt={class:"left"},Wt={key:2,class:"duration"},Xt={class:"info"},Kt={class:"title"},Yt={class:"style"};function Ht(e,t,l,n,u,r){const c=a("el-image"),h=a("video-pause"),_=a("el-icon"),f=a("video-play"),C=J("loading");return i(),d("div",Mt,[s("div",Ot,[s("h2",qt,m(e.$t("suno.name.cover")),1)]),s("div",Bt,[e.audio?(i(),d("div",{key:0,class:"audio",onClick:t[2]||(t[2]=V=>e.onClick(e.audio))},[K((i(),d("div",Nt,[o(c,{src:e.audio?.image_url,class:"cover",fit:"cover"},null,8,["src"]),e.audio?.audio_url&&e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="playing"?(i(),d("div",{key:0,class:"overlay",onClick:t[0]||(t[0]=V=>e.onPause(e.audio))},[o(_,null,{default:p(()=>[o(h)]),_:1})])):g("",!0),e.audio?.audio_url&&(e.$store.state?.suno?.audio?.id!==e.audio.id||e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="paused")?(i(),d("div",{key:1,class:"overlay",onClick:t[1]||(t[1]=V=>e.onPlay(e.audio))},[o(_,null,{default:p(()=>[o(f)]),_:1})])):g("",!0),e.audio?.duration?(i(),d("div",Wt,m(e.useFormatDuring(e.audio?.duration)),1)):g("",!0)])),[[C,!e.audio?.audio_url]]),s("div",Xt,[s("h2",Kt,m(e.audio?.title),1),s("p",Yt,m(e.audio?.style),1)])])):g("",!0)])])}const Zt=w(zt,[["render",Ht],["__scopeId","data-v-06640216"]]),Jt=y({name:"PresetPanel",components:{TypeSelector:Be,PromptInput:at,LyricInput:mt,StyleInput:vt,TitleInput:Vt,ExtendFromInput:Rt,CoverFromInput:Zt,UploadAudio:Ze,FontAwesomeIcon:B,ElButton:Z,Consumption:Se},emits:["generate"],computed:{config(){return this.$store.state.suno?.config},consumption(){return Ie(this.config,this.service?.cost)},service(){return this.$store.state.suno?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Qt={class:"flex flex-col h-full"},xt={class:"flex-1 overflow-y-auto p-[15px]"},eo={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function to(e,t,l,n,u,r){const c=a("type-selector"),h=a("upload-audio"),_=a("prompt-input"),f=a("lyric-input"),C=a("style-input"),V=a("title-input"),b=a("extend-from-input"),A=a("cover-from-input"),R=a("consumption"),U=a("font-awesome-icon"),z=a("el-button");return i(),d("div",Qt,[s("div",xt,[o(c,{class:"mb-4"}),o(h,{class:"mb-4"}),e.config?.custom?g("",!0):(i(),v(_,{key:0,class:"mb-4"})),e.config?.custom&&!e.config.instrumental?(i(),v(f,{key:1,class:"mb-4"})):g("",!0),e.config?.custom?(i(),v(C,{key:2,class:"mb-4"})):g("",!0),e.config?.custom?(i(),v(V,{key:3,class:"mb-4"})):g("",!0),e.config?.action==="extend"?(i(),v(b,{key:4,class:"mb-4"})):g("",!0),e.config?.action==="cover"?(i(),v(A,{key:5,class:"mb-4"})):g("",!0)]),s("div",eo,[o(R,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.action!=="extend"?(i(),v(z,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:p(()=>[o(U,{icon:"fa-solid fa-magic",class:"mr-2"}),I(" "+m(e.$t("suno.button.generate")),1)]),_:1},8,["onClick"])):(i(),v(z,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:p(()=>[o(U,{icon:"fa-solid fa-magic",class:"mr-2"}),I(" "+m(e.$t("suno.button.extend")),1)]),_:1},8,["onClick"]))])])}const oo=w(Jt,[["render",to],["__scopeId","data-v-8c98e5e5"]]),so="https://webhook.acedata.cloud/suno",no=y({name:"TaskPreview",components:{ElImage:X,ElIcon:W,ElTooltip:fe,FontAwesomeIcon:B,VideoPlay:H,VideoPause:Y,ElDropdown:_e,ElDropdownMenu:he,ElDropdownItem:me,Loading:oe},props:{modelValue:{type:Object,required:!0}},data(){return{isFetchingVideoUrl:!1}},computed:{loading(){return this.$store.state.suno?.status?.getApplications===L.Request},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},task(){return this.$store.state.suno?.tasks},audios(){const e=this.modelValue?.response?.data??[],t=this.modelValue?.request?.action;return t?e.map(l=>({...l,action:t})):e},application(){return this.$store.state.suno?.application},active(){return this.$store.state.suno?.tasks?.active}},methods:{useFormatDuring:G,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})},onExtend(e,t){e.stopPropagation(),console.log("on extend"),console.debug("set config",t),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:t.model,custom:!0,instrumental:!1,style:t.style,action:"extend",audio:t,audio_id:t.id,continue_at:t.duration})},onDownload(e,t){e&&e.stopPropagation(),console.log("on download",t);const n=new URL(t).pathname,u=n.substring(n.lastIndexOf("/")+1);console.log("on preview",u),fetch(t).then(r=>r.blob()).then(r=>{se.saveAs(r,u)})},async handleVideoDownload(e){if(e.video_url){this.onDownload(null,e.video_url);return}if(!this.isFetchingVideoUrl)try{this.isFetchingVideoUrl=!0;const t=await this.fetchVideoUrlFromApi(e?.id);console.log(`get videoUrl: ${t}`),e.video_url=t,this.onDownload(null,t)}catch(t){console.error("get videoUrl failed:",t),k.error(this.$t("suno.message.getVideoUrlFailed"))}finally{this.isFetchingVideoUrl=!1}},async fetchVideoUrlFromApi(e){return new Promise((t,l)=>{const n={audio_id:e},u=this.credential?.token;if(!u){console.error("no token specified"),l(new Error("No token specified"));return}q.mp4(n,{token:u}).then(r=>{const c=r.data?.data?.video_url;c?t(c):l(new Error("Video URL not found in response"))}).catch(r=>{l(r)})})},onPreview(e,t){e.stopPropagation(),console.log("on preview",t),window.open(t,"_blank")},async onGetStems(e){await this.onGenerateAudioUrl("stems",e)},onCover(e){console.log("on cover"),console.debug("set config",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e.model,custom:!0,instrumental:!1,style:e.style,action:"cover",audio:e,audio_id:e.id})},async onConcatMusic(e){await this.onGenerateAudioUrl("concat",e)},async onGenerateAudioUrl(e,t){const l={action:e,audio_id:t,callback_url:so},n=this.credential?.token;if(!n){console.error("no token specified");return}k.info(this.$t("suno.message.startingTask")),q.audio(l,{token:n}).then(()=>{k.success(this.$t("suno.message.startTaskSuccess"))}).catch(u=>{k.error(u?.response?.data?.error?.message||this.$t("suno.message.startTaskFailed"))}).finally(async()=>{await this.onGetTasks(),await this.onScrollDown()})},async onScrollDown(){setTimeout(()=>{const e=document.querySelector(".tasks");e&&(e.scrollTop=e.scrollHeight)},1e3)},async onGetTasks(){if(this.loading){console.debug("loading");return}await this.$store.dispatch("suno/getTasks",{limit:30,offset:0})}}}),io={class:"task"},ao=["onClick"],lo={class:"left"},ro=["onClick"],co=["onClick"],uo={key:2,class:"duration"},po={class:"info"},mo={class:"title"},ho={class:"style"},_o={class:"right"},fo={class:"el-dropdown-link"},$o={class:"flex items-center min-w-[120px]"},go={class:"el-dropdown-link"};function vo(e,t,l,n,u,r){const c=a("el-image"),h=a("video-pause"),_=a("el-icon"),f=a("video-play"),C=a("font-awesome-icon"),V=a("el-tooltip"),b=a("Loading"),A=a("el-dropdown-item"),R=a("el-dropdown-menu"),U=a("el-dropdown"),z=J("loading");return i(),d("div",io,[(i(!0),d(j,null,O(e.audios,$=>(i(),d("div",{key:$.id,class:"audio",onClick:T(P=>e.onClick($),["stop"])},[K((i(),d("div",lo,[o(c,{src:$?.image_url,class:"cover",fit:"cover",lazy:""},null,8,["src"]),$?.audio_url&&e.$store.state?.suno?.audio?.id===$.id&&e.$store.state?.suno?.audio?.state==="playing"?(i(),d("div",{key:0,class:"overlay",onClick:T(P=>e.onPause($),["stop"])},[o(_,null,{default:p(()=>[o(h)]),_:1})],8,ro)):g("",!0),$?.audio_url&&(e.$store.state?.suno?.audio?.id!==$.id||e.$store.state?.suno?.audio?.id===$.id&&e.$store.state?.suno?.audio?.state==="paused")?(i(),d("div",{key:1,class:"overlay",onClick:T(P=>e.onPlay($),["stop"])},[o(_,null,{default:p(()=>[o(f)]),_:1})],8,co)):g("",!0),$?.duration?(i(),d("div",uo,m(e.useFormatDuring($?.duration)),1)):g("",!0)])),[[z,!$?.audio_url]]),s("div",po,[s("h2",mo,m($?.title),1),s("p",ho,m($?.style),1)]),s("div",_o,[o(U,null,{dropdown:p(()=>[o(R,null,{default:p(()=>[o(A,{disabled:e.isFetchingVideoUrl,onClick:P=>e.handleVideoDownload($)},{default:p(()=>[s("div",$o,[e.isFetchingVideoUrl?(i(),v(_,{key:0,class:"is-loading mr-2"},{default:p(()=>[o(b)]),_:1})):g("",!0),s("span",null,m(e.$t("suno.button.download_video")),1)])]),_:2},1032,["disabled","onClick"]),$?.audio_url?(i(),v(A,{key:0,onClick:T(P=>e.onDownload(P,$?.audio_url),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.download_audio")),1)]),_:2},1032,["onClick"])):g("",!0)]),_:2},1024)]),default:p(()=>[s("span",fo,[o(V,{effect:"dark",content:e.$t("suno.button.download"),placement:"top"},{default:p(()=>[$?.audio_url||$?.video_url?(i(),v(C,{key:0,icon:"fa-solid fa-download",class:"icon icon-download"})):g("",!0)]),_:2},1032,["content"])])]),_:2},1024),o(U,null,{dropdown:p(()=>[o(R,null,{default:p(()=>[$?.audio_url?(i(),v(A,{key:0,onClick:T(P=>e.onExtend(P,$),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.extend")),1)]),_:2},1032,["onClick"])):g("",!0),$.id?(i(),v(A,{key:1,onClick:T(P=>e.onGetStems($.id),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.get_stems")),1)]),_:2},1032,["onClick"])):g("",!0),o(A,{onClick:T(P=>e.onCover($),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.cover_music")),1)]),_:2},1032,["onClick"]),$?.id&&$?.action==="extend"?(i(),v(A,{key:2,onClick:T(P=>e.onConcatMusic($?.id),["stop"])},{default:p(()=>[I(m(e.$t("suno.button.concat_music")),1)]),_:2},1032,["onClick"])):g("",!0)]),_:2},1024)]),default:p(()=>[s("span",go,[o(V,{effect:"dark",content:e.$t("suno.button.more"),placement:"top"},{default:p(()=>[$?.audio_url||$?.video_url?(i(),v(C,{key:0,icon:"fa-solid fa-ellipsis",class:"icon icon-ellipsis"})):g("",!0)]),_:2},1032,["content"])])]),_:2},1024)])],8,ao))),128))])}const yo=w(no,[["render",vo]]),ko={class:"player-slider"},wo=y({__name:"PlayerSlider",setup(e){const t=D(),l=E({get:()=>t.state.suno?.audio?.progress,set:c=>t.commit("suno/setAudio",{...t.state.suno.audio,progress:c})}),n=E({get:()=>t.state.suno?.audio?.duration,set:c=>t.commit("suno/setAudio",{...t.state.suno.audio,duration:c})}),u=()=>{},r=c=>t.dispatch("suno/setAudio",{...t.state.suno.audio,progress:c});return(c,h)=>(i(),d("div",ko,[o(S(te),{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=_=>l.value=_),"show-tooltip":!1,min:0,max:n.value,onChange:r,onInput:u},null,8,["modelValue","max"])]))}}),bo="/assets/disk-XFRmVAfp.png",Co={class:"flex player-song"},Vo=["src"],Ao={class:"ml-2 text-xs flex flex-col justify-between"},Po={class:"w-52 2xl:w-96 cursor-pointer truncate"},So={class:"flex"},To={class:"ml-2 text-dc"},Io=y({__name:"PlayerSong",setup(e){const t=D(),l=E({get:()=>t.state.suno.audio,set:n=>t.commit("suno/setAudio",n)});return ke(l,(n,u)=>{if(n?.audio_url!==u?.audio_url){console.log("audio changed",n),n.object&&(console.log("111",n.object),n.object.pause(),delete n.object);const r=new Audio(n.audio_url);n.state==="playing"?r.play():r.pause(),r.addEventListener("loadedmetadata",()=>{r.currentTime=0,r.addEventListener("timeupdate",()=>{t.commit("suno/setAudio",{...t.state.suno.audio,progress:r.currentTime})})}),t.commit("suno/setAudio",{...t.state.suno.audio,object:r})}else if(n?.progress!==u?.progress&&Math.abs(n.progress-n.object.currentTime)>2){console.log("progress changed",n.progress);const r=t.state.suno.audio;r.object&&(r.object.currentTime=r.progress)}else n?.state!==u?.state&&(console.log("state changed",n.state),n.object&&(n.state==="playing"?n.object.play():n.object.pause()));n?.volume!==u?.volume&&(console.log("volume changed",n.volume),n.object&&(n.object.volume=n.volume/100))}),(n,u)=>(i(),d("div",Co,[s("img",{alt:"",class:"w-11 h-11 rounded",src:l.value?.image_url||S(bo)},null,8,Vo),s("div",Ao,[s("div",Po,[s("div",So,[s("span",null,m(l.value?.title||"Music"),1),s("span",To,"- "+m(l.value?.style||"SmallRuralDog"),1)])])])]))}}),Eo={class:"flex justify-end items-center gap-x-2.5"},Uo={class:"text-xs"},Lo=y({__name:"PlayerAction",setup(e){const t=D(),l=E({get:()=>t.state.suno?.audio?.progress,set:u=>t.commit("suno/setAudio",{...t.state.suno.audio,progress:u})}),n=E({get:()=>t.state.suno?.audio?.duration,set:u=>t.commit("suno/setAudio",{...t.state.suno.audio,duration:u})});return(u,r)=>(i(),d("div",Eo,[s("span",Uo,m(S(G)(l.value))+" / "+m(S(G)(n.value)),1)]))}}),x=y({__name:"IconPark",props:{icon:{},theme:{},size:{},spin:{type:Boolean},fill:{},strokeLinecap:{},strokeLinejoin:{},strokeWidth:{}},setup(e){return(t,l)=>(i(),v(we(t.icon),{theme:t.theme,size:t.size,spin:t.spin,fill:t.fill,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,"stroke-width":t.strokeWidth},null,8,["theme","size","spin","fill","stroke-linecap","stroke-linejoin","stroke-width"]))}}),jo={class:"player-volume flex flex-col items-center pt-2"},Go={class:"text-sm mt-3"},Do=y({__name:"PlayerVolumeSlider",setup(e){const t=D(),l=E({get:()=>t.state.suno.audio?.volume,set:r=>t.commit("suno/setAudio",{...t.state.suno.audio,volume:r})}),n=E({get:()=>t.state.suno.audio?.muted,set:r=>t.commit("suno/setAudio",{...t.state.suno.audio,muted:r})}),u=r=>t.dispatch("suno/setVolume",r);return(r,c)=>(i(),d("div",jo,[o(S(te),{modelValue:l.value,"onUpdate:modelValue":c[0]||(c[0]=h=>l.value=h),vertical:"",height:"100px","show-tooltip":!1,max:100,min:0,size:"small",disabled:n.value,onInput:u},null,8,["modelValue","disabled"]),s("div",Go,m(l.value),1)]))}}),Fo={class:"flex items-center justify-center gap-x-3"},Ro=y({__name:"PlayerController",setup(e){const t=D(),l=()=>t.dispatch("suno/setAudio",{...t.state.suno.audio,state:t.state.suno.audio.state==="playing"?"paused":"playing"}),n=E(()=>t.state.suno.audio);return(u,r)=>(i(),d("div",Fo,[o(x,{icon:n.value?.state==="playing"?S(ne):S(ie),size:"45",theme:"filled",class:"text-[var(--el-color-primary)] cursor-pointer",onClick:l},null,8,["icon"]),o(S($e),{placement:"top",width:"50px",trigger:"click"},{reference:p(()=>[o(x,{icon:S(ae),size:"20","stroke-width":2,class:"cursor-pointer"},null,8,["icon"])]),default:p(()=>[o(Do)]),_:1})]))}}),zo={class:"flex flex-col items-stretch h-20"},Mo={class:"flex grow px-5 items-center"},Oo={class:"flex-1"},qo={class:"flex-1"},Bo={class:"flex-1"},No=y({__name:"Player",setup(e){return(t,l)=>(i(),d("div",zo,[o(wo),s("div",Mo,[s("div",Oo,[o(Io)]),s("div",qo,[o(Ro)]),s("div",Bo,[o(Lo)])])]))}}),Wo=y({name:"RecentPanel",components:{ElSkeletonItem:ve,ElSkeleton:ge,TaskPreview:yo,Player:No,NoTasks:Te,ScrollList:Pe},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.suno?.tasks,items:this.$store.state.suno?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Xo={key:0,class:"tasks"},Ko={class:"left w-[70px] p-[10px] flex items-center"},Yo={class:"main w-[calc(100%-70px)] flex-1 p-[10px]"},Ho={key:2,class:"w-full flex-1 flex items-center justify-center"},Zo={class:"h-20"};function Jo(e,t,l,n,u,r){const c=a("el-skeleton-item"),h=a("el-skeleton"),_=a("task-preview"),f=a("scroll-list"),C=a("no-tasks"),V=a("player");return i(),d(j,null,[e.tasks?.items===void 0?(i(),d("div",Xo,[(i(),d(j,null,O(3,b=>s("div",{key:b,class:"flex"},[s("div",Ko,[o(h,{animated:""},{template:p(()=>[o(c,{variant:"image",class:"avatar w-[50px] h-[50px]"})]),_:1})]),s("div",Yo,[o(h,{animated:""},{template:p(()=>[o(c,{variant:"p",class:"w-[200px] h-[15px] mb-[5px] mt-[10px]"}),o(c,{variant:"text"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(i(),v(f,{key:1,ref:"scrollList",class:"flex-1 w-full overflow-y-auto tasks p-2",loading:e.loading,onReachTop:t[0]||(t[0]=b=>e.$emit("reach-top"))},{default:p(()=>[(i(!0),d(j,null,O(e.tasks?.items,(b,A)=>(i(),v(_,{key:A,"model-value":b,class:"preview"},null,8,["model-value"]))),128))]),_:1},8,["loading"])):g("",!0),e.tasks?.items?.length===0?(i(),d("div",Ho,[o(C)])):g("",!0),K(s("div",Zo,[o(V)],512),[[be,!!e.$store?.state?.suno?.audio?.object]])],64)}const Qo=w(Wo,[["render",Jo]]),xo=y({name:"TaskPreview",components:{IconPicture:le,ElImage:X,ElAvatar:ye,ElIcon:W},computed:{audio(){return this.$store.state.suno?.audio}}}),es={key:0,class:"size-full overflow-hidden"},ts={class:"relative h-[300px]"},os={class:"flex items-center justify-center size-full bg-[var(--el-bg-color)]"},ss={class:"absolute bottom-0 left-0 right-0 m-0 p-4 text-white z-10 bg-gradient-to-t from-black/70 to-transparent"},ns={class:"p-4"},is={class:"flex items-center font-bold mb-2"},as={class:"text-[var(--el-text-color-regular)] mb-2"},ls={class:"text-xs text-[var(--el-text-color-regular)]"},rs={class:"mt-4 text-sm leading-[25px] whitespace-pre-wrap"},cs={key:1,class:"w-full h-full"};function us(e,t,l,n,u,r){const c=a("icon-picture"),h=a("el-icon"),_=a("el-image"),f=a("el-avatar");return e.audio?.object?(i(),d("div",es,[s("div",ts,[o(_,{src:e.audio.image_url,fit:"cover",class:"size-full"},{error:p(()=>[s("div",os,[o(h,{class:"text-3xl"},{default:p(()=>[o(c)]),_:1})])]),_:1},8,["src"]),s("h2",ss,m(e.audio?.title),1)]),s("div",ns,[s("div",is,[o(f,{size:30,src:e.audio?.image_url,class:"mr-2"},null,8,["src"]),s("span",null,m(e.audio?.title),1)]),s("p",as,m(e.audio?.style),1),s("p",ls,m(e.$dayjs.format(e.audio?.created_at)),1),s("div",rs,[s("p",null,m(e.audio?.lyric),1)])])])):(i(),d("div",cs))}const ds=w(xo,[["render",us]]),ps="https://webhook.acedata.cloud/suno",ms=y({name:"SunoIndex",components:{Layout:Re,ConfigPanel:oo,RecentPanel:Qo,PreviewPanel:ds},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.suno?.status?.getApplications===L.Request},tasksLoading(){return this.$store.state.suno?.status?.getTasks===L.Request||this.fetchingTasks},service(){return this.$store.state.suno.service},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},initializing(){return this.$store.state.suno.status.getApplications===L.Request},needApply(){return this.$store.state.suno.status.getApplications===L.Success&&!this.application},application(){return this.$store.state.suno.application},tasks(){return this.$store.state.suno.tasks},applications(){return this.$store.state.suno.applications}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await Ee({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("suno/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplications"),await this.$store.dispatch("suno/getApplications"),console.debug("end onGetApplications"),await this.onGetTasks()},onApply(){Ve.create({application:this.application}).then(({data:e})=>{this.application=e,k.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Ae&&k.error(this.$t("application.message.alreadyApplied"))})},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:l,createdAtMax:n}=e||{};console.debug("limit",t,"createdAtMin",l,"createdAtMax",n),this.fetchingTasks=!0;try{await this.$store.dispatch("suno/getTasks",{limit:t,createdAtMin:l,createdAtMax:n})}finally{this.fetchingTasks=!1}},async onGenerateAudio(){const e={...this.config,callback_url:ps},t=this.credential?.token;if(!t){console.error("no token specified");return}k.info(this.$t("suno.message.startingTask")),q.audio(e,{token:t}).then(()=>{k.success(this.$t("suno.message.startTaskSuccess"))}).catch(l=>{k.error(l?.response?.data?.error?.message||this.$t("suno.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function hs(e,t,l,n,u,r){const c=a("config-panel"),h=a("recent-panel"),_=a("preview-panel"),f=a("layout");return i(),v(f,null,{config:p(()=>[o(c,{onGenerate:e.onGenerateAudio},null,8,["onGenerate"])]),result:p(()=>[o(h,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),preview:p(()=>[o(_)]),_:1})}const Ps=w(ms,[["render",hs],["__scopeId","data-v-d1296b1a"]]);export{Ps as default};
|