@acedatacloud/nexior 3.335.2 → 3.335.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/dist/assets/{ApiCodeButton-nw-ZA0Py.js → ApiCodeButton-DGclRu1O.js} +1 -1
  2. package/dist/assets/{Artifacts-CEfRTUsN.js → Artifacts-CGf_G79Z.js} +1 -1
  3. package/dist/assets/{AskUserQuestionCard-B8c3P8qF.js → AskUserQuestionCard-BZiJy9Ja.js} +1 -1
  4. package/dist/assets/{AudioPreview-B1TynJ4J.js → AudioPreview-Ba2ePKTe.js} +1 -1
  5. package/dist/assets/{Auth-xMgzgbKH.js → Auth-DKt1AiXQ.js} +1 -1
  6. package/dist/assets/{Bare-5pIJGHoz.js → Bare-IfZEdYOR.js} +1 -1
  7. package/dist/assets/{BotPlaceholder-Dic4ZbnL.js → BotPlaceholder-CFxjLuuq.js} +1 -1
  8. package/dist/assets/{BottomFooter-CnCjwft7.js → BottomFooter-YnEwvSTu.js} +1 -1
  9. package/dist/assets/{Callback-DrAbnPvh.js → Callback-BqT2615m.js} +1 -1
  10. package/dist/assets/{CodeSnippet-w3TFU94R.js → CodeSnippet-CglvZYp4.js} +1 -1
  11. package/dist/assets/{Console-Bk3PrtL8.js → Console-EySz3Ki7.js} +1 -1
  12. package/dist/assets/{Consumption-BAcIAStE.js → Consumption-DTqfhGvj.js} +1 -1
  13. package/dist/assets/{Conversation-BHC8BnVU.js → Conversation-2gsWiQzl.js} +1 -1
  14. package/dist/assets/{Conversation-Vvz5f3be.js → Conversation-BlfMX6cJ.js} +1 -1
  15. package/dist/assets/{CopyToClipboard-Dp75q0hN.js → CopyToClipboard-DXXsGqfP.js} +1 -1
  16. package/dist/assets/{Detail-CgKaHm73.js → Detail-4H0v5nfR.js} +2 -2
  17. package/dist/assets/{Detail-X40wZr9r.css → Detail-DzWBjma1.css} +1 -1
  18. package/dist/assets/{Extra-CPPDcQDL.js → Extra-HDL8bSJb.js} +1 -1
  19. package/dist/assets/{FilePreview-C_5oZhbT.js → FilePreview-4j_9YVUP.js} +1 -1
  20. package/dist/assets/{Hailuo-GUIyoOMD.js → Hailuo-B7_6LeBq.js} +1 -1
  21. package/dist/assets/{History-ZO4b0Fdm.js → History-CSoi-2gz.js} +1 -1
  22. package/dist/assets/{ImagePreview-CCsnTCCZ.js → ImagePreview-BgbF2I47.js} +1 -1
  23. package/dist/assets/{ImageWrapper-DmsLP650.js → ImageWrapper-H_XFI3vI.js} +1 -1
  24. package/dist/assets/{Index-BcGd4fGA.js → Index-2nppHy5-.js} +1 -1
  25. package/dist/assets/{Index-BfRZmbSG.css → Index-69npHHxH.css} +1 -1
  26. package/dist/assets/{Index-BnyqV23u.css → Index-7Gg2u3bs.css} +1 -1
  27. package/dist/assets/{Index-C6K1joSn.js → Index-7VBUywL4.js} +1 -1
  28. package/dist/assets/{Index-DDZ__7oy.js → Index-8-R4DANF.js} +1 -1
  29. package/dist/assets/{Index-BiNqRsFh.js → Index-B2-_-QHV.js} +1 -1
  30. package/dist/assets/Index-B33ff9832.js +1 -0
  31. package/dist/assets/{Index-CHZyS9fv2.js → Index-B3eNjUS42.js} +1 -1
  32. package/dist/assets/{Index-C1FmlFI6.js → Index-BZ-oc8Ie.js} +1 -1
  33. package/dist/assets/{Index-CTrO3w_L.js → Index-Bc8Yo4n_.js} +1 -1
  34. package/dist/assets/{Index-DiIiYUs7.js → Index-BpJUqfnS.js} +1 -1
  35. package/dist/assets/{Index-CVl9XgCw.js → Index-CMplLVco.js} +1 -1
  36. package/dist/assets/{Index-zyBHecyP2.js → Index-CPp_dndk2.js} +1 -1
  37. package/dist/assets/{Index-hjIXv8-J.js → Index-CQ2K_JzX.js} +1 -1
  38. package/dist/assets/Index-Cagh5TqP.css +1 -0
  39. package/dist/assets/{Index-yKJdpwHG.js → Index-CmPtlYGq.js} +1 -1
  40. package/dist/assets/{Index-yUDep7hp2.js → Index-CtelfMYm2.js} +1 -1
  41. package/dist/assets/{Index-jGAv8EIY2.js → Index-Cwpzglzi2.js} +1 -1
  42. package/dist/assets/{Index-CBtukrCY.js → Index-D73O3fFf.js} +1 -1
  43. package/dist/assets/{Index-CEi1D2UL.js → Index-DCb-nBmK.js} +1 -1
  44. package/dist/assets/{Index-Dk6izr7E2.js → Index-DeIcof8l2.js} +1 -1
  45. package/dist/assets/{Index-CqxBxxFv.js → Index-DeZWV0Iq.js} +1 -1
  46. package/dist/assets/{Index-BnvYFODF.js → Index-DhBhhg-u.js} +1 -1
  47. package/dist/assets/{Index-Dr-vyWkk.js → Index-DpNRgGVM.js} +1 -1
  48. package/dist/assets/{Index-BfA6BWK-.js → Index-DppcNaPM.js} +1 -1
  49. package/dist/assets/{Index-3hhjlASo.js → Index-DzaNTF3m.js} +1 -1
  50. package/dist/assets/{Index-C-MZknGc.js → Index-HO-cFd5I.js} +1 -1
  51. package/dist/assets/{Index-D-F6OvTA2.js → Index-KDiU2RI12.js} +1 -1
  52. package/dist/assets/{Index-k5bkXp9W.js → Index-KNAhACmd.js} +1 -1
  53. package/dist/assets/Index-QFcnttvO.css +1 -0
  54. package/dist/assets/{Index-jTzjwjH1.js → Index-pcLI3FCC.js} +1 -1
  55. package/dist/assets/{Index-alDfjpHR.js → Index-q-E4XbVy.js} +1 -1
  56. package/dist/assets/{Index-jjUobCZB.js → Index-tRm1bdJu.js} +1 -1
  57. package/dist/assets/{Index-D7-yV1dI.js → Index-v2XPd1e9.js} +1 -1
  58. package/dist/assets/Index-zrHzLR97.css +1 -0
  59. package/dist/assets/{Invitees-COFIfIEv.js → Invitees-_RfKbWXS.js} +1 -1
  60. package/dist/assets/List-DLbGGkT8.js +1 -0
  61. package/dist/assets/List-DtG_-rJ9.css +1 -0
  62. package/dist/assets/{List-DDiNYkUz.js → List-Lqgy-G7F.js} +1 -1
  63. package/dist/assets/{List-BAbZqy6H.js → List-OmlSGUPD.js} +1 -1
  64. package/dist/assets/{LocalTools-BqQSkGX3.js → LocalTools-CEvJ95gm.js} +1 -1
  65. package/dist/assets/{LocalTools-D6HsuLTi.js → LocalTools-DFsVH8HY.js} +1 -1
  66. package/dist/assets/{Main-tWP0D4T0.js → Main-CySqW_N-.js} +1 -1
  67. package/dist/assets/{Message-Bvw0Q5qg.js → Message-DP68lknT.js} +1 -1
  68. package/dist/assets/{Model-BNfroQDz.js → Model-BMsXU-B7.js} +1 -1
  69. package/dist/assets/{Navigator-BCdNzawB.js → Navigator-C-6KEyEB.js} +3 -3
  70. package/dist/assets/{NotFound-PBAexG5-.js → NotFound-DTgFYser.js} +1 -1
  71. package/dist/assets/Pay-D0EjPnrv.css +1 -0
  72. package/dist/assets/Pay-OpHgPHph.js +1 -0
  73. package/dist/assets/{Player-CoUGc3zL.js → Player-DwzYnyvX.js} +1 -1
  74. package/dist/assets/{Poivelle-DGqUei59.js → Poivelle-C6wRUTNu.js} +1 -1
  75. package/dist/assets/{PromptTextarea-B7SHxAI_.js → PromptTextarea-C-97wCqR.js} +1 -1
  76. package/dist/assets/{RealtimeCall-Ufz5fBvR.js → RealtimeCall-Dvg57Odk.js} +1 -1
  77. package/dist/assets/{ScheduledTasks-CArzq21e.js → ScheduledTasks-CxGf4Rc-.js} +1 -1
  78. package/dist/assets/{Status-BHWQk75s.js → Status-D1X5RHE3.js} +1 -1
  79. package/dist/assets/{Subscribe-DZMvbPFt.js → Subscribe-BeC2eoC3.js} +1 -1
  80. package/dist/assets/TabSwitcher-BSyVWzG0.js +1 -0
  81. package/dist/assets/TabSwitcher-Cx95Dphe.css +1 -0
  82. package/dist/assets/{Tts-DPdWCzCB.js → Tts-COPO1C0J.js} +1 -1
  83. package/dist/assets/{VideoPlayer-CahZtZ6S.js → VideoPlayer-CpcrXw4y.js} +1 -1
  84. package/dist/assets/{alert-B7fgHHT0.js → alert-K5JGGVlq.js} +1 -1
  85. package/dist/assets/arrow-down-g2L_SRbH.js +1 -0
  86. package/dist/assets/{arrow-down-wide-narrow-CZCLoK0_.js → arrow-down-wide-narrow-C6F5JIsc.js} +1 -1
  87. package/dist/assets/arrow-left-BN-Qv78d.js +1 -0
  88. package/dist/assets/arrow-right-Dygj5lD2.js +1 -0
  89. package/dist/assets/arrow-up-UMKLO1h1.js +1 -0
  90. package/dist/assets/{avatar-t5MD9sJr.js → avatar-89nw19av.js} +1 -1
  91. package/dist/assets/{basic-Cu3YX_SF.js → basic-DBRaz-cz.js} +1 -1
  92. package/dist/assets/{box-DSzThDfd.js → box-DrnUMCzU.js} +1 -1
  93. package/dist/assets/{boxes-DXbnzT79.js → boxes-CNRzRQ0Z.js} +1 -1
  94. package/dist/assets/{brain-CcT3VfUJ.js → brain-CeO7l8IZ.js} +1 -1
  95. package/dist/assets/{chart-no-axes-combined-B_OvQ4B9.js → chart-no-axes-combined-D-c6Pad5.js} +1 -1
  96. package/dist/assets/{chat-xlU_UtYs.js → chat-DanTnSN6.js} +1 -1
  97. package/dist/assets/check-DeZrkKtd.js +1 -0
  98. package/dist/assets/chevron-down-DF03gYnR.js +1 -0
  99. package/dist/assets/chevron-right-Nv3OJ_Cd.js +1 -0
  100. package/dist/assets/circle-check-8oZQi7az.js +1 -0
  101. package/dist/assets/clock-BgIAgrXk.js +1 -0
  102. package/dist/assets/{codingBridge-gaA3s80j.js → codingBridge-D9svltbB.js} +1 -1
  103. package/dist/assets/{codingBridgeNotify-Cub9E_rC.js → codingBridgeNotify-DD2PeDy5.js} +2 -2
  104. package/dist/assets/{coins-DF2N_u7q.js → coins-CHJLgqm_.js} +1 -1
  105. package/dist/assets/{collapse-CQghM5pp.js → collapse-B71nCxcc.js} +1 -1
  106. package/dist/assets/{constants-VAjhuTLc.js → constants-B7y9pxL6.js} +1 -1
  107. package/dist/assets/{copy-DlAjld9b.js → copy-DVQrOZYX.js} +1 -1
  108. package/dist/assets/{createTaskActions-BVBX_qA7.js → createTaskActions-NJT3Ku6m.js} +1 -1
  109. package/dist/assets/{digitalhuman-DDbodWEY.js → digitalhuman-DbXilImg.js} +1 -1
  110. package/dist/assets/{dollar-sign-D-zT8PEd.js → dollar-sign-yfg7thMf.js} +1 -1
  111. package/dist/assets/{download-BWq4ZPbd.js → download-Cch4wN97.js} +1 -1
  112. package/dist/assets/{drawer-D_9JEG61.js → drawer-CAFbzETb.js} +1 -1
  113. package/dist/assets/{dropdown-CH8pnubA.js → dropdown-BFRbIyd8.js} +1 -1
  114. package/dist/assets/{dropdown-DISeYo3S.js → dropdown-D_ebLCPH.js} +1 -1
  115. package/dist/assets/{ellipsis-a72MBXV5.js → ellipsis-DuroiMTT.js} +1 -1
  116. package/dist/assets/{esm-Bw3cvB_6.js → esm-AkA7al90.js} +1 -1
  117. package/dist/assets/{esm-CCD0jDRk.js → esm-B0ba-eN8.js} +1 -1
  118. package/dist/assets/{esm-BI0di3oJ.js → esm-B1ZDPHGC.js} +3 -3
  119. package/dist/assets/{esm-Bk9TkwC6.js → esm-BAJEMZ5o.js} +2 -2
  120. package/dist/assets/{esm-C8pom1bl.js → esm-BWNGtmYl.js} +2 -2
  121. package/dist/assets/esm-CASCdCcD.js +1 -0
  122. package/dist/assets/{esm-DzY9ZcDq.js → esm-vQYhR6Vm.js} +1 -1
  123. package/dist/assets/{external-link-C5LYG0zf.js → external-link-kwx1yFr-.js} +1 -1
  124. package/dist/assets/{eye-BxSK7Kdo.js → eye-C53AoECk.js} +1 -1
  125. package/dist/assets/{file-output-BZgJlDyZ.js → file-output-8IOECnWG.js} +1 -1
  126. package/dist/assets/{file-text-COsDa5cs.js → file-text-CUTZoMQV.js} +1 -1
  127. package/dist/assets/{fish-CSjtJAuW.js → fish-DkJ60fr9.js} +1 -1
  128. package/dist/assets/{flux-CHhthq4i.js → flux-CRTC8X42.js} +1 -1
  129. package/dist/assets/{folder-4mF0BKov.js → folder-6CjDps7W.js} +1 -1
  130. package/dist/assets/gauge-DR5Sj3g4.js +1 -0
  131. package/dist/assets/{globe-QJ-FLtr-.js → globe-C04M7-fN.js} +1 -1
  132. package/dist/assets/{grokvideo-CLtCkw2N.js → grokvideo-CGTl6yBB.js} +1 -1
  133. package/dist/assets/{hailuo-Cx_E0-Oy.js → hailuo-Dvl32Rgz.js} +1 -1
  134. package/dist/assets/{headphones-GDUpjlZE.js → headphones-D3ot_l0_.js} +1 -1
  135. package/dist/assets/{history-DyESIOwO.js → history-C0vT7gBd.js} +1 -1
  136. package/dist/assets/{house-BEgzWR9a.js → house-BGJJI8Ap.js} +1 -1
  137. package/dist/assets/{i18n-BvLjwYdI.js → i18n-CTzo1oyX.js} +1 -1
  138. package/dist/assets/{image-Dm3PlDcm.js → image-DOCMqtZ6.js} +1 -1
  139. package/dist/assets/{index-_kd3UVgo.css → index-A6IWsaDV.css} +1 -1
  140. package/dist/assets/{index-fpmyjfIO.js → index-DIz8jBLv.js} +4 -4
  141. package/dist/assets/{index.browser.esm-F7TNZyLi.js → index.browser.esm-BNiqGCBC.js} +1 -1
  142. package/dist/assets/{index.es-bF32sxAt.js → index.es-BESipK62.js} +1 -1
  143. package/dist/assets/{info-FvxLQPXx.js → info-cAAEAAmO.js} +1 -1
  144. package/dist/assets/{input-number-DSrtDU5g.js → input-number-DEvy_cu6.js} +1 -1
  145. package/dist/assets/{key-round-B_z0hNTD.js → key-round-C-bgX_Pi.js} +1 -1
  146. package/dist/assets/{kling-Ce2Zabc6.js → kling-BNkvEnXX.js} +1 -1
  147. package/dist/assets/{languages-DI1NqtFw.js → languages-Cx-pvzlN.js} +1 -1
  148. package/dist/assets/{laptop-CmvIAY5N.js → laptop-CLtEFjPt.js} +1 -1
  149. package/dist/assets/{lightbulb-BxOeo86Z.js → lightbulb-BRvVqxZl.js} +1 -1
  150. package/dist/assets/{link-c3EiNkKi.js → link-DiBKlTZE.js} +1 -1
  151. package/dist/assets/loader-circle-B7OQbtEJ.js +1 -0
  152. package/dist/assets/{luma-B5rfuOzV.js → luma-DHA8UekZ.js} +1 -1
  153. package/dist/assets/{maestro-BrbN4Q_4.js → maestro-Ba9kppv3.js} +1 -1
  154. package/dist/assets/{maestro-57h-OuPA.js → maestro-CL8l072f.js} +1 -1
  155. package/dist/assets/{mail-fYczmG1X.js → mail-Q3gBXfsA.js} +1 -1
  156. package/dist/assets/{message-circle-uxO8_xh5.js → message-circle-DMPGeLnU.js} +1 -1
  157. package/dist/assets/{mic-Cdzv7j9o.js → mic-BX862YBz.js} +1 -1
  158. package/dist/assets/{midjourney-CSIQY5vP.js → midjourney-DIok64pQ.js} +1 -1
  159. package/dist/assets/{mobileLocalExec-BxVgk1cK.js → mobileLocalExec-D4AOsB7z.js} +2 -2
  160. package/dist/assets/{mouse-pointer-2-CYp2wswK.js → mouse-pointer-2-BwGi-FP9.js} +1 -1
  161. package/dist/assets/music-2-CpL839Zc.js +1 -0
  162. package/dist/assets/{nanobanana-BxE0eFmA.js → nanobanana-DJKFqExG.js} +1 -1
  163. package/dist/assets/{omni-c_siDhJH.js → omni-DnvWOXgz.js} +1 -1
  164. package/dist/assets/{openaiimage-Cae1KJpI.js → openaiimage-Nyt_m6cD.js} +1 -1
  165. package/dist/assets/order-00O2rG9J.js +1 -0
  166. package/dist/assets/order-BD2ngZxJ.js +1 -0
  167. package/dist/assets/order-BGZjg64Q.js +1 -0
  168. package/dist/assets/order-BSXpfu2Y.js +1 -0
  169. package/dist/assets/order-BSdYBZo9.js +1 -0
  170. package/dist/assets/order-BUHFSd1L.js +1 -0
  171. package/dist/assets/order-Bbfrbts1.js +1 -0
  172. package/dist/assets/order-C9fxrOWb.js +1 -0
  173. package/dist/assets/order-CKgu3BhK.js +1 -0
  174. package/dist/assets/order-CKz8GhIS.js +1 -0
  175. package/dist/assets/order-CM_n6Zzc.js +1 -0
  176. package/dist/assets/order-CWnfpaYa.js +1 -0
  177. package/dist/assets/order-D1VQ9bFR.js +1 -0
  178. package/dist/assets/order-DKKNdxMu.js +1 -0
  179. package/dist/assets/order-DgIZdpSA.js +1 -0
  180. package/dist/assets/order-QJYX4BgT.js +1 -0
  181. package/dist/assets/order-j99o4fyp.js +1 -0
  182. package/dist/assets/order-ta9lE1GL.js +1 -0
  183. package/dist/assets/{pagination-L-18_c7T.js → pagination-BvuMWaAI.js} +1 -1
  184. package/dist/assets/{pagination-BJUc_LJD.js → pagination-wq4CSAWS.js} +1 -1
  185. package/dist/assets/{palette-D4Z6NMzv.js → palette-BoE6Ukua.js} +1 -1
  186. package/dist/assets/{paperclip-DgzLJZtw.js → paperclip-D9PPh5oM.js} +1 -1
  187. package/dist/assets/{pause-BtSApyH7.js → pause-LN5yUIY2.js} +1 -1
  188. package/dist/assets/{pencil-0Zi2Gi8a.js → pencil-DMpsCazI.js} +1 -1
  189. package/dist/assets/{pika-B4nyXsIa.js → pika-iOnWbfxG.js} +1 -1
  190. package/dist/assets/{pixverse-DWDNRsiY.js → pixverse-DOnAqo3l.js} +1 -1
  191. package/dist/assets/play-Cp_rlWIB.js +1 -0
  192. package/dist/assets/plus-5k78IV00.js +1 -0
  193. package/dist/assets/{poivelle-DuG0Jjo_.js → poivelle-C-nbMbtX.js} +1 -1
  194. package/dist/assets/{popover-CxUdleHw.js → popover-CNoknIY3.js} +1 -1
  195. package/dist/assets/{producer-Lt2BY3DJ.js → producer-4nf5E3CA.js} +1 -1
  196. package/dist/assets/{qrart-KmXm6GFJ.js → qrart-6TKqxlrj.js} +1 -1
  197. package/dist/assets/{realtime-MjXFe8J6.js → realtime-DsoGLLw3.js} +1 -1
  198. package/dist/assets/{refresh-cw-DMypJ9Jq.js → refresh-cw-GtqNYsnU.js} +1 -1
  199. package/dist/assets/rotate-ccw-CHhX5Jg8.js +1 -0
  200. package/dist/assets/rotate-cw-BporIvS_.js +1 -0
  201. package/dist/assets/{row-CVa6ZOZ-.js → row-DHDYOAPV.js} +1 -1
  202. package/dist/assets/search-lfbObm6y.js +1 -0
  203. package/dist/assets/{seedance-BBT6ksO0.js → seedance-DILkSDmk.js} +1 -1
  204. package/dist/assets/{seedream-CJOJKhE7.js → seedream-BR7MSaEK.js} +1 -1
  205. package/dist/assets/{select-C8i2RhXB.js → select-BrIV30zB.js} +1 -1
  206. package/dist/assets/{serp-NJaXFHZh.js → serp-Dz1MFEM-.js} +1 -1
  207. package/dist/assets/{shield-CDvUNj4J.js → shield-B3PGQU_h.js} +1 -1
  208. package/dist/assets/{shuffle-CXcWSl9Z.js → shuffle-D_deQHj6.js} +1 -1
  209. package/dist/assets/{slider-DuaLss9X.js → slider-9wpzHkXi.js} +1 -1
  210. package/dist/assets/{sliders-horizontal-BxOmB3UL.js → sliders-horizontal-BjJWnDLW.js} +1 -1
  211. package/dist/assets/{solana-wallets-zyLC5paO.js → solana-wallets-BR2dYKcf.js} +2 -2
  212. package/dist/assets/{solana-wallets-vue-DQM2RwvN.js → solana-wallets-vue-BTLmdj7o.js} +1 -1
  213. package/dist/assets/{sora-F1HWFAwi.js → sora-CpRfOpxR.js} +1 -1
  214. package/dist/assets/{sparkles-Cbun-Y_q.js → sparkles-CImKWkKB.js} +1 -1
  215. package/dist/assets/square-BdHGw72N.js +1 -0
  216. package/dist/assets/{suno-CbDlTrKv.js → suno-CMpsRWhf.js} +1 -1
  217. package/dist/assets/{switch-0Aqt_kEr.js → switch-yP6j6pso.js} +1 -1
  218. package/dist/assets/{table-D7BveuDO.js → table-NznQ589c.js} +1 -1
  219. package/dist/assets/{tabs-BYEDzy8f.js → tabs-B9K7IogD.js} +1 -1
  220. package/dist/assets/{tag-C2pbM29x.js → tag-Q17Zjy0d.js} +1 -1
  221. package/dist/assets/{taskDrawerMixin-Ah1F0GIY.js → taskDrawerMixin-7SBjYHl8.js} +1 -1
  222. package/dist/assets/terminal-Ckf8V18a.js +1 -0
  223. package/dist/assets/{time-picker-BknRxTfu.js → time-picker-BiUDkXoi.js} +1 -1
  224. package/dist/assets/{tooltip-CCH3FXDC.js → tooltip-Bh_J2TCQ.js} +1 -1
  225. package/dist/assets/{trash-2-Dx2C1cKb.js → trash-2-C8AjzNq0.js} +1 -1
  226. package/dist/assets/{triangle-alert-C09uUqNi.js → triangle-alert-a7zSyPVi.js} +1 -1
  227. package/dist/assets/{upload-CKZ0yMv2.js → upload-Bk_CFlEX.js} +1 -1
  228. package/dist/assets/{upload-DyuXMnjr.js → upload-SgJ0SsaE.js} +1 -1
  229. package/dist/assets/user-B6ZTb89o.js +1 -0
  230. package/dist/assets/{veo-CBB5HAI_.js → veo-IxxQr7D0.js} +1 -1
  231. package/dist/assets/{video-eO5l-Unb.js → video-CUAzbXpi.js} +1 -1
  232. package/dist/assets/{volume-2-B13ClSAW.js → volume-2-B_6Y9jzS.js} +1 -1
  233. package/dist/assets/{wallet-CzKCTOfX.js → wallet-BZVR6JNx.js} +1 -1
  234. package/dist/assets/{wan-DI3FABKb.js → wan-BWi4QIe4.js} +1 -1
  235. package/dist/assets/{wand-sparkles-C-owUuGi.js → wand-sparkles-CHzbkPuj.js} +1 -1
  236. package/dist/assets/{web-CJVulyvH.js → web-B5quRZ4S.js} +1 -1
  237. package/dist/assets/{web-CxdYpYG9.js → web-BJaQDCk5.js} +1 -1
  238. package/dist/assets/{web-CYl5fw2L.js → web-ByKho4fc.js} +1 -1
  239. package/dist/assets/{web-BXvOY-dz.js → web-CoPmpwSG.js} +1 -1
  240. package/dist/assets/{web-CQ_F7i2s.js → web-Dg6aUqb2.js} +1 -1
  241. package/dist/assets/{webextrator-DrvcPCQR.js → webextrator-BRqW6qid.js} +1 -1
  242. package/dist/assets/{zap-icpAl5ek.js → zap-BJpgChMV.js} +1 -1
  243. package/dist/index.html +4 -4
  244. package/package.json +1 -1
  245. package/dist/assets/Index-Bp8Y_j7f.css +0 -1
  246. package/dist/assets/Index-CWXcCOk-.css +0 -1
  247. package/dist/assets/Index-CfbKxdVl.css +0 -1
  248. package/dist/assets/Index-LIsn2utO2.js +0 -1
  249. package/dist/assets/List-BXM61o79.js +0 -1
  250. package/dist/assets/List-D-S6ZUW_.css +0 -1
  251. package/dist/assets/Pay-CQO3B5x4.css +0 -1
  252. package/dist/assets/Pay-DijIWQMd.js +0 -1
  253. package/dist/assets/TabSwitcher-CBbp5tEr.js +0 -1
  254. package/dist/assets/TabSwitcher-CLJnjjhG.css +0 -1
  255. package/dist/assets/arrow-down-Icj1L0qN.js +0 -1
  256. package/dist/assets/arrow-left-CIehkCph.js +0 -1
  257. package/dist/assets/arrow-right-CrPOTA1G.js +0 -1
  258. package/dist/assets/arrow-up-C6LPd3s0.js +0 -1
  259. package/dist/assets/check-B1C4r6_m.js +0 -1
  260. package/dist/assets/chevron-down-kfE7On2W.js +0 -1
  261. package/dist/assets/chevron-right-DgLFdR88.js +0 -1
  262. package/dist/assets/circle-check-BOs1uE8s.js +0 -1
  263. package/dist/assets/clock-D24mG5jT.js +0 -1
  264. package/dist/assets/esm-De0QYhFZ.js +0 -1
  265. package/dist/assets/gauge-D6ZPkiUr.js +0 -1
  266. package/dist/assets/loader-circle-D5yuF42z.js +0 -1
  267. package/dist/assets/music-2-DIEgnlEG.js +0 -1
  268. package/dist/assets/order-AYr_5JAl.js +0 -1
  269. package/dist/assets/order-B0EBRnrR.js +0 -1
  270. package/dist/assets/order-B5MpHY3u.js +0 -1
  271. package/dist/assets/order-B9nvhcba.js +0 -1
  272. package/dist/assets/order-BPRYLqtW.js +0 -1
  273. package/dist/assets/order-BTMMFift.js +0 -1
  274. package/dist/assets/order-BczBs5XB.js +0 -1
  275. package/dist/assets/order-Bd38yjAk.js +0 -1
  276. package/dist/assets/order-CCZV715j.js +0 -1
  277. package/dist/assets/order-CFWVNd0G.js +0 -1
  278. package/dist/assets/order-CXRQxogz.js +0 -1
  279. package/dist/assets/order-Cal7uM1_.js +0 -1
  280. package/dist/assets/order-DO5yhSIl.js +0 -1
  281. package/dist/assets/order-DPFt7jqR.js +0 -1
  282. package/dist/assets/order-DUWP5NLv.js +0 -1
  283. package/dist/assets/order-Dkyebi6r.js +0 -1
  284. package/dist/assets/order-N0_f7Z7x.js +0 -1
  285. package/dist/assets/order-aaJ7aU0W.js +0 -1
  286. package/dist/assets/play-CuUUMg7h.js +0 -1
  287. package/dist/assets/plus-fLAe4qO0.js +0 -1
  288. package/dist/assets/rotate-ccw-JPBlJgkh.js +0 -1
  289. package/dist/assets/rotate-cw-zxAe-hoy.js +0 -1
  290. package/dist/assets/search-9_1i5pje.js +0 -1
  291. package/dist/assets/square-B6-JMEfo.js +0 -1
  292. package/dist/assets/terminal-Bs32LwKU.js +0 -1
  293. package/dist/assets/user-BDEw2Jel.js +0 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{t as v}from"./upload-DyuXMnjr.js";import{t as y}from"./tooltip-CCH3FXDC.js";import{t as b}from"./alert-B7fgHHT0.js";import{t as x}from"./drawer-D_9JEG61.js";import{t as S}from"./switch-0Aqt_kEr.js";import{n as C}from"./taskDrawerMixin-Ah1F0GIY.js";import{t as w}from"./clock-D24mG5jT.js";import{r as T,t as E}from"./PromptTextarea-B7SHxAI_.js";import{t as D}from"./info-FvxLQPXx.js";import{t as O}from"./trash-2-Dx2C1cKb.js";import{t as ee}from"./triangle-alert-C09uUqNi.js";import{t as k}from"./upload-CKZ0yMv2.js";import{t as A}from"./wand-sparkles-C-owUuGi.js";import"./constants-VAjhuTLc.js";import{Bt as j,E as M,Ht as te,Ii as N,Kt as P,Si as F,Ut as I,Vt as L,Wt as R,br as ne,li as z,oi as B,qn as V,tn as H,xi as U}from"./index-fpmyjfIO.js";import{t as W}from"./CopyToClipboard-Dp75q0hN.js";import{t as G}from"./FilePreview-C_5oZhbT.js";import{t as K}from"./ImagePreview-CCsnTCCZ.js";import{t as q}from"./Consumption-BAcIAStE.js";import{a as J,n as Y,r as X,t as Z}from"./pagination-L-18_c7T.js";import{t as Q}from"./VideoPlayer-CahZtZ6S.js";import{t as re}from"./ApiCodeButton-nw-ZA0Py.js";import{t as ie}from"./BotPlaceholder-Dic4ZbnL.js";var ae=_({name:`LayoutLuma`,components:{MagicIcon:A,ElDrawer:x,ElButton:N},mixins:[C]}),oe={class:`main flex flex-row flex-1`},se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ce={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function le(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,oe,[e(`div`,se,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,ce,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ue=M(ae,[[`render`,le],[`__scopeId`,`data-v-d13d43a9`]]),de=_({name:`EnhancementSelector`,components:{ElSwitch:S,InfoIcon:J},computed:{value:{get(){return this.$store.state.luma?.config?.enhancement},set(e){console.debug(`set enhancement`,e),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,enhancement:e})}}},mounted(){this.value===void 0&&(this.value=!0)}}),fe={class:`relative`},pe={class:`flex justify-between`},me={class:`flex justify-start items-center`},he={class:`text-sm font-bold`},ge={class:`flex justify-end items-center`};function _e(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-switch`);return h(),s(`div`,fe,[e(`div`,pe,[e(`div`,me,[e(`span`,he,i(t.$t(`luma.name.enhancement`)),1),a(d,{content:t.$t(`luma.description.enhancement`)},null,8,[`content`])]),e(`div`,ge,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var ve=M(de,[[`render`,_e]]),ye=_({name:`CustomSelector`,components:{ElSwitch:S,InfoIcon:J},computed:{value:{get(){return this.$store.state.luma?.config?.custom},set(e){console.debug(`set custom`,e),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,custom:e})}}},mounted(){this.value===void 0&&(this.value=!1)}}),be={class:`relative`},xe={class:`flex justify-between`},Se={class:`flex justify-start items-center`},Ce={class:`text-sm font-bold`},we={class:`flex justify-end items-center`};function Te(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-switch`);return h(),s(`div`,be,[e(`div`,xe,[e(`div`,Se,[e(`span`,Ce,i(t.$t(`luma.name.custom`)),1),a(d,{content:t.$t(`luma.description.custom`)},null,8,[`content`])]),e(`div`,we,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var Ee=M(ye,[[`render`,Te]]),De=_({name:`LoopSelector`,components:{ElSwitch:S,InfoIcon:J},computed:{value:{get(){return this.$store.state.luma?.config?.loop},set(e){console.debug(`set loop`,e),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,loop:e})}}},mounted(){this.value===void 0&&(this.value=!1)}}),Oe={class:`relative`},ke={class:`flex justify-between`},Ae={class:`flex justify-start items-center`},je={class:`text-sm font-bold`},Me={class:`flex justify-end items-center`};function Ne(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-switch`);return h(),s(`div`,Oe,[e(`div`,ke,[e(`div`,Ae,[e(`span`,je,i(t.$t(`luma.name.loop`)),1),a(d,{content:t.$t(`luma.description.loop`)},null,8,[`content`])]),e(`div`,Me,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var Pe=M(De,[[`render`,Ne]]),Fe=_({name:`EndImage`,components:{UploadIcon:k,ElUpload:v,ElButton:N,ImagePreview:K,InfoIcon:J},mixins:[R,I,L],data(){return{fileList:[],uploadUrl:z()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||=void 0,this.onSetEndImageUrl()},methods:{onExceed(){F.warning(this.$t(`luma.message.uploadReferencesExceed`))},onError(){F.error(this.$t(`luma.message.uploadReferencesError`))},onSetEndImageUrl(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,end_image_url:e})},async onSuccess(){this.onSetEndImageUrl()}}}),Ie={class:`relative`},Le={class:`flex justify-between`},Re={class:`flex justify-start items-center`},ze={class:`text-sm font-bold`};function Be(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return h(),s(`div`,Ie,[e(`div`,Le,[e(`div`,Re,[e(`span`,ze,i(t.$t(`luma.name.endImageUrl`)),1),a(g,{content:t.$t(`luma.description.endImageUrl`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:5,class:`upload-wrapper`,multiple:!1,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(h(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.uploadEndImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Ve=M(Fe,[[`render`,Be],[`__scopeId`,`data-v-b8b121be`]]),He=_({name:`StartImage`,components:{UploadIcon:k,ElUpload:v,ElButton:N,ImagePreview:K,InfoIcon:J},mixins:[R,I,L],data(){return{fileList:[],uploadUrl:z()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||=void 0,this.onSetStartImageUrl()},methods:{onExceed(){F.warning(this.$t(`luma.message.uploadReferencesExceed`))},onError(){F.error(this.$t(`luma.message.uploadReferencesError`))},onSetStartImageUrl(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,start_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Ue={class:`relative`},We={class:`flex justify-between`},Ge={class:`flex justify-start items-center`},Ke={class:`text-sm font-bold`};function qe(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return h(),s(`div`,Ue,[e(`div`,We,[e(`div`,Ge,[e(`span`,Ke,i(t.$t(`luma.name.startImageUrl`)),1),a(g,{content:t.$t(`luma.description.startImageUrl`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:5,class:`upload-wrapper`,multiple:!1,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.percentage==null?o(``,!0):(h(),f(_,{key:0,url:e.url||e.response.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`]))]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.uploadStartImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Je=M(He,[[`render`,qe],[`__scopeId`,`data-v-5bb7722a`]]),Ye=_({name:`UploadVideo`,components:{UploadIcon:k,ElUpload:v,ElButton:N,InfoIcon:J,FilePreview:G},mixins:[I,L],data(){return{fileList:[],uploadUrl:z()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.luma?.config?.video_url},set(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,video_url:e})}}},mounted(){this.value||=void 0},methods:{onExceed(){F.warning(this.$t(`luma.message.uploadVideoExceed`))},onError(){F.error(this.$t(`luma.message.uploadVideoError`))},beforeUpload(e){let t=e.type===`video/mp4`,n=e.size/1024/1024<10;return t?n?!0:(F.error(this.$t(`luma.message.uploadVideoSizeExceed`)),!1):(F.error(this.$t(`luma.message.uploadVideoTypeFailed`)),!1)},onSetVideoUrl(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,video_url:e,action:`extend`})},async onSuccess(){this.onSetVideoUrl()}}}),Xe={class:`relative`},Ze={class:`flex justify-between`},Qe={class:`flex justify-start items-center`},$e={class:`text-sm font-bold`};function et(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`file-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return h(),s(`div`,Xe,[e(`div`,Ze,[e(`div`,Qe,[e(`span`,$e,i(t.$t(`luma.name.videoUrl`)),1),a(g,{content:t.$t(`luma.description.videoUrl`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,accept:`.mp4`,name:`file`,class:`value`,"show-file-list":!0,limit:1,multiple:!1,action:t.uploadUrl,"before-upload":t.beforeUpload,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.percentage==null?o(``,!0):(h(),f(_,{key:0,url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`]))]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.uploadVideoUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`before-upload`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var tt=M(Ye,[[`render`,et],[`__scopeId`,`data-v-2189fc52`]]),nt=_({name:`PromptInput`,components:{PromptTextarea:E},computed:{prompt:{get(){return this.$store.state.luma?.config?.prompt},set(e){this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,prompt:e})}}},mounted(){this.prompt||=``}});function rt(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`luma.name.prompt`),info:e.$t(`luma.description.prompt`),placeholder:e.$t(`luma.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var it=M(nt,[[`render`,rt]]),at=_({name:`ExtendFromInput`,components:{VideoPlayer:Q},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:`1080p`}}}},computed:{config(){return this.$store.state.luma?.config}}}),ot={class:`relative`},st={class:`flex mb-2`},ct={class:`text-sm font-bold`};function lt(t,n,r,a,c,u){let d=l(`video-player`);return h(),s(`div`,ot,[e(`div`,st,[e(`span`,ct,i(t.$t(`luma.name.extend`)),1)]),e(`div`,null,[t.config?.video_url?(h(),f(d,{key:0,src:t.config?.video_url},null,8,[`src`])):o(``,!0)])])}var ut=_({name:`ConfigPanel`,components:{MagicIcon:A,LoopSelector:Pe,StartImageInput:Je,EndImageInput:Ve,EnhancementSelector:ve,ElButton:N,PromptInput:it,ExtendFromInput:M(at,[[`render`,lt]]),CustomSelector:Ee,UploadVideo:tt,Consumption:q},emits:[`generate`],computed:{config(){return this.$store.state.luma?.config},consumption(){return P(this.config,this.service?.cost)},service(){return this.$store.state.luma?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),dt={class:`flex flex-col h-full`},ft={class:`flex-1 overflow-y-auto p-5`},pt={class:`flex flex-col items-center justify-center px-5 pb-5`};function mt(t,n,c,u,d,m){let g=l(`extend-from-input`),_=l(`prompt-input`),v=l(`custom-selector`),y=l(`upload-video`),b=l(`start-image-input`),x=l(`end-image-input`),S=l(`enhancement-selector`),C=l(`loop-selector`),w=l(`consumption`),T=l(`magic-icon`),E=l(`el-button`);return h(),s(`div`,dt,[e(`div`,ft,[t.config?.video_id||t.config?.video_url?(h(),f(g,{key:0,class:`mb-4`})):o(``,!0),a(_,{class:`mb-4`}),t.config?.video_id?o(``,!0):(h(),f(v,{key:1,class:`mb-4`})),t.config?.custom?(h(),f(y,{key:2,class:`mb-4`})):o(``,!0),!(t.config?.video_id||t.config?.video_url)&&!t.config?.custom?(h(),f(b,{key:3,class:`mb-4`})):o(``,!0),a(x,{class:`mb-4`}),a(S,{class:`mb-4`}),a(C,{class:`mb-4`})]),e(`div`,pt,[a(w,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),t.config?.video_url!==void 0||t.config?.custom?(h(),f(E,{key:0,type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.extend`)),1)]),_:1},8,[`onClick`])):(h(),f(E,{key:1,type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.generate`)),1)]),_:1},8,[`onClick`]))])])}var ht=M(ut,[[`render`,mt]]),gt=_({name:`TaskPreview`,components:{DeleteIcon:O,ChannelIcon:T,InfoIcon:D,MagicIcon:A,TimeIcon:w,WarningIcon:ee,CopyToClipboard:W,ElAlert:b,VideoPlayer:Q,ElTooltip:y,ElButton:N,ApiCodeButton:re},props:{modelValue:{type:Object,required:!0}},emits:[`extend`],data(){return{}},computed:{application(){return this.$store.state.luma?.application},config(){return this.$store.state.luma?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await U.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`luma/deleteTask`,{id:e}),F.success(this.$t(`common.message.deleteTaskSuccess`))}catch{F.error(this.$t(`common.message.deleteTaskFailed`))}}},onExtend(e,t){console.debug(`set config`,t),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,video_id:t.video_id,prompt:t.prompt,action:`extend`,thumbnail_url:t.thumbnail_url,video_url:t.video_url}),this.$emit(`extend`)},onDownload(e){window.open(e,`_blank`)}}}),_t={class:`preview`},vt={class:`left`},yt={class:`main`},bt={class:`bot`},xt={class:`datetime`},St=[`aria-label`],Ct={class:`info`},wt={key:0,class:`prompt mt-2`},Tt={key:0},Et={key:1},Dt={key:0,class:n({content:!0,failed:!0})},Ot={key:0,class:`mb-4`},kt={key:1,class:n({operations:!0,"mt-2":!0,"mb-4":!0})},At={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},jt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Mt={key:1,class:n({content:!0})},Nt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ft={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},It={key:2,class:n({content:!0})},Lt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Rt(n,c,u,d,f,m){let g=l(`capability-presentation`),_=l(`delete-icon`),v=l(`el-tooltip`),y=l(`video-player`),b=l(`el-button`),x=l(`api-code-button`),S=l(`magic-icon`),C=l(`copy-to-clipboard`),w=l(`time-icon`),T=l(`el-alert`),E=l(`warning-icon`),D=l(`info-icon`),O=l(`channel-icon`);return h(),s(`div`,_t,[e(`div`,vt,[a(g,{capability:`luma`,part:`avatar`,class:`avatar`})]),e(`div`,yt,[e(`div`,bt,[a(g,{capability:`luma`,part:`name`}),e(`span`,xt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(v,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,St)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,Ct,[n.modelValue?.request?.prompt?(h(),s(`p`,wt,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,Tt,` - (`+i(n.$t(`luma.status.pending`))+`) `,1)),n.modelValue?.response?.state===`processing`||n.modelValue?.response?.state===`pending`?(h(),s(`span`,Et,` - (`+i(n.$t(`luma.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,Dt,[n.modelValue.response.video_url?(h(),s(`div`,Ot,[a(y,{src:n.modelValue.response.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response&&!n.config?.custom?(h(),s(`div`,kt,[a(v,{class:`box-item`,effect:`dark`,content:n.$t(`luma.message.extendVideo`),placement:`top-start`},{default:p(()=>[a(b,{type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=t(e=>n.onExtend(e,n.modelValue?.response),[`stop`])},{default:p(()=>[r(i(n.$t(`luma.button.extend`)),1)]),_:1})]),_:1},8,[`content`]),a(v,{class:`box-item`,effect:`dark`,content:n.$t(`luma.message.downloadVideo`),placement:`top-start`},{default:p(()=>[a(b,{type:`info`,size:`small`,class:`btn-action`,onClick:c[2]||=t(e=>n.onDownload(n.modelValue?.response?.video_url),[`stop`])},{default:p(()=>[r(i(n.$t(`luma.button.download`)),1)]),_:1})]),_:1},8,[`content`]),a(x,{path:`/luma/videos`,body:n.modelValue?.request},null,8,[`body`])])):o(``,!0),a(T,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,At,[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,jt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.state===`failed`||n.modelValue?.response?.success===!1?(h(),s(`div`,Mt,[a(T,{closable:!1,class:`failure`},{template:p(()=>[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.failure`)),1)]),default:p(()=>[e(`p`,Nt,[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,$,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(C,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,Pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,Ft,[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.traceId`))+`: `+i(n.modelValue?.trace_id)+` `,1),a(C,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):o(``,!0),!n.modelValue?.response||n.modelValue?.response?.state===`processing`||n.modelValue?.response?.state===`pending`?(h(),s(`div`,It,[a(T,{closable:!1,class:`info`},{template:p(()=>[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`luma.status.processing`:`luma.status.pending`)),1)]),default:p(()=>[e(`p`,Lt,[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])])]),_:1})])):o(``,!0)])])}var zt=_({name:`RecentPanel`,components:{BotPlaceholder:ie,TaskPreview:M(gt,[[`render`,Rt],[`__scopeId`,`data-v-6411e1a8`]]),NoTasks:X,ScrollList:Y},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`,`extend`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.luma?.tasks,items:this.$store.state.luma?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Bt={key:0},Vt={key:2,class:`w-full h-full flex items-center justify-center`};function Ht(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,Bt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:e.loading,onReachTop:t[1]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,n=>(h(),f(g,{key:n.id,"model-value":n,onExtend:t[0]||=t=>e.$emit(`extend`)},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Vt,[a(v)])):o(``,!0)],64)}var Ut=_({name:`LumaIndex`,components:{ConfigPanel:ht,Layout:ue,RecentPanel:M(zt,[[`render`,Ht]])},mixins:[te],inject:[`initialized`],emits:[`extend`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.luma?.status?.getApplications===B.Request},tasksLoading(){return this.$store.state.luma?.status?.getTasks===B.Request||this.fetchingTasks},credential(){return this.$store.state.luma.credential},config(){return this.$store.state.luma.config},application(){return this.$store.state.luma.application},tasks(){return this.$store.state.luma.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await Z({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`luma/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`luma/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){console.debug(`scrolling down`),await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`luma/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!j(this.uploadTracker,e=>this.$t(e),e=>F.warning(e)))return;let e={...this.config,async:!0};if(!this.hasText(e.prompt)){F.error(this.$t(`luma.message.promptRequired`));return}if(e.prompt=e.prompt?.trim(),!H())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}F.info(this.$t(`luma.message.startingTask`)),ne(`luma`,V.generate(e,{token:t})).then(()=>{F.success(this.$t(`luma.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?F.error(this.$t(`luma.message.usedUp`)):F.error(this.$t(`luma.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()},hasText(e){return typeof e==`string`&&e.trim().length>0}}});function Wt(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop,onExtend:t[0]||=t=>e.$emit(`extend`)},null,8,[`loading`,`onReachTop`])]),_:1})}var Gt=M(Ut,[[`render`,Wt]]);export{Gt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{t as v}from"./upload-SgJ0SsaE.js";import{t as y}from"./tooltip-Bh_J2TCQ.js";import{t as b}from"./alert-K5JGGVlq.js";import{t as x}from"./drawer-CAFbzETb.js";import{t as S}from"./switch-yP6j6pso.js";import{n as C}from"./taskDrawerMixin-7SBjYHl8.js";import{t as w}from"./clock-BgIAgrXk.js";import{r as T,t as E}from"./PromptTextarea-C-97wCqR.js";import{t as D}from"./info-cAAEAAmO.js";import{t as O}from"./trash-2-C8AjzNq0.js";import{t as ee}from"./triangle-alert-a7zSyPVi.js";import{t as k}from"./upload-Bk_CFlEX.js";import{t as A}from"./wand-sparkles-CHzbkPuj.js";import"./constants-B7y9pxL6.js";import{Bt as j,E as M,Ht as te,Ii as N,Kt as P,Si as F,Ut as I,Vt as L,Wt as R,br as ne,li as z,oi as B,qn as V,tn as H,xi as U}from"./index-DIz8jBLv.js";import{t as W}from"./CopyToClipboard-DXXsGqfP.js";import{t as G}from"./FilePreview-4j_9YVUP.js";import{t as K}from"./ImagePreview-BgbF2I47.js";import{t as q}from"./Consumption-DTqfhGvj.js";import{a as J,n as Y,r as X,t as Z}from"./pagination-BvuMWaAI.js";import{t as Q}from"./VideoPlayer-CpcrXw4y.js";import{t as re}from"./ApiCodeButton-DGclRu1O.js";import{t as ie}from"./BotPlaceholder-CFxjLuuq.js";var ae=_({name:`LayoutLuma`,components:{MagicIcon:A,ElDrawer:x,ElButton:N},mixins:[C]}),oe={class:`main flex flex-row flex-1`},se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ce={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function le(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,oe,[e(`div`,se,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,ce,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ue=M(ae,[[`render`,le],[`__scopeId`,`data-v-d13d43a9`]]),de=_({name:`EnhancementSelector`,components:{ElSwitch:S,InfoIcon:J},computed:{value:{get(){return this.$store.state.luma?.config?.enhancement},set(e){console.debug(`set enhancement`,e),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,enhancement:e})}}},mounted(){this.value===void 0&&(this.value=!0)}}),fe={class:`relative`},pe={class:`flex justify-between`},me={class:`flex justify-start items-center`},he={class:`text-sm font-bold`},ge={class:`flex justify-end items-center`};function _e(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-switch`);return h(),s(`div`,fe,[e(`div`,pe,[e(`div`,me,[e(`span`,he,i(t.$t(`luma.name.enhancement`)),1),a(d,{content:t.$t(`luma.description.enhancement`)},null,8,[`content`])]),e(`div`,ge,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var ve=M(de,[[`render`,_e]]),ye=_({name:`CustomSelector`,components:{ElSwitch:S,InfoIcon:J},computed:{value:{get(){return this.$store.state.luma?.config?.custom},set(e){console.debug(`set custom`,e),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,custom:e})}}},mounted(){this.value===void 0&&(this.value=!1)}}),be={class:`relative`},xe={class:`flex justify-between`},Se={class:`flex justify-start items-center`},Ce={class:`text-sm font-bold`},we={class:`flex justify-end items-center`};function Te(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-switch`);return h(),s(`div`,be,[e(`div`,xe,[e(`div`,Se,[e(`span`,Ce,i(t.$t(`luma.name.custom`)),1),a(d,{content:t.$t(`luma.description.custom`)},null,8,[`content`])]),e(`div`,we,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var Ee=M(ye,[[`render`,Te]]),De=_({name:`LoopSelector`,components:{ElSwitch:S,InfoIcon:J},computed:{value:{get(){return this.$store.state.luma?.config?.loop},set(e){console.debug(`set loop`,e),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,loop:e})}}},mounted(){this.value===void 0&&(this.value=!1)}}),Oe={class:`relative`},ke={class:`flex justify-between`},Ae={class:`flex justify-start items-center`},je={class:`text-sm font-bold`},Me={class:`flex justify-end items-center`};function Ne(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-switch`);return h(),s(`div`,Oe,[e(`div`,ke,[e(`div`,Ae,[e(`span`,je,i(t.$t(`luma.name.loop`)),1),a(d,{content:t.$t(`luma.description.loop`)},null,8,[`content`])]),e(`div`,Me,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var Pe=M(De,[[`render`,Ne]]),Fe=_({name:`EndImage`,components:{UploadIcon:k,ElUpload:v,ElButton:N,ImagePreview:K,InfoIcon:J},mixins:[R,I,L],data(){return{fileList:[],uploadUrl:z()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||=void 0,this.onSetEndImageUrl()},methods:{onExceed(){F.warning(this.$t(`luma.message.uploadReferencesExceed`))},onError(){F.error(this.$t(`luma.message.uploadReferencesError`))},onSetEndImageUrl(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,end_image_url:e})},async onSuccess(){this.onSetEndImageUrl()}}}),Ie={class:`relative`},Le={class:`flex justify-between`},Re={class:`flex justify-start items-center`},ze={class:`text-sm font-bold`};function Be(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return h(),s(`div`,Ie,[e(`div`,Le,[e(`div`,Re,[e(`span`,ze,i(t.$t(`luma.name.endImageUrl`)),1),a(g,{content:t.$t(`luma.description.endImageUrl`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:5,class:`upload-wrapper`,multiple:!1,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(h(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.uploadEndImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Ve=M(Fe,[[`render`,Be],[`__scopeId`,`data-v-b8b121be`]]),He=_({name:`StartImage`,components:{UploadIcon:k,ElUpload:v,ElButton:N,ImagePreview:K,InfoIcon:J},mixins:[R,I,L],data(){return{fileList:[],uploadUrl:z()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||=void 0,this.onSetStartImageUrl()},methods:{onExceed(){F.warning(this.$t(`luma.message.uploadReferencesExceed`))},onError(){F.error(this.$t(`luma.message.uploadReferencesError`))},onSetStartImageUrl(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,start_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Ue={class:`relative`},We={class:`flex justify-between`},Ge={class:`flex justify-start items-center`},Ke={class:`text-sm font-bold`};function qe(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return h(),s(`div`,Ue,[e(`div`,We,[e(`div`,Ge,[e(`span`,Ke,i(t.$t(`luma.name.startImageUrl`)),1),a(g,{content:t.$t(`luma.description.startImageUrl`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:5,class:`upload-wrapper`,multiple:!1,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.percentage==null?o(``,!0):(h(),f(_,{key:0,url:e.url||e.response.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`]))]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.uploadStartImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Je=M(He,[[`render`,qe],[`__scopeId`,`data-v-5bb7722a`]]),Ye=_({name:`UploadVideo`,components:{UploadIcon:k,ElUpload:v,ElButton:N,InfoIcon:J,FilePreview:G},mixins:[I,L],data(){return{fileList:[],uploadUrl:z()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.luma?.config?.video_url},set(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,video_url:e})}}},mounted(){this.value||=void 0},methods:{onExceed(){F.warning(this.$t(`luma.message.uploadVideoExceed`))},onError(){F.error(this.$t(`luma.message.uploadVideoError`))},beforeUpload(e){let t=e.type===`video/mp4`,n=e.size/1024/1024<10;return t?n?!0:(F.error(this.$t(`luma.message.uploadVideoSizeExceed`)),!1):(F.error(this.$t(`luma.message.uploadVideoTypeFailed`)),!1)},onSetVideoUrl(){let e=this.urls?.[0];this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,video_url:e,action:`extend`})},async onSuccess(){this.onSetVideoUrl()}}}),Xe={class:`relative`},Ze={class:`flex justify-between`},Qe={class:`flex justify-start items-center`},$e={class:`text-sm font-bold`};function et(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`file-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return h(),s(`div`,Xe,[e(`div`,Ze,[e(`div`,Qe,[e(`span`,$e,i(t.$t(`luma.name.videoUrl`)),1),a(g,{content:t.$t(`luma.description.videoUrl`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,accept:`.mp4`,name:`file`,class:`value`,"show-file-list":!0,limit:1,multiple:!1,action:t.uploadUrl,"before-upload":t.beforeUpload,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.percentage==null?o(``,!0):(h(),f(_,{key:0,url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`]))]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.uploadVideoUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`before-upload`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var tt=M(Ye,[[`render`,et],[`__scopeId`,`data-v-2189fc52`]]),nt=_({name:`PromptInput`,components:{PromptTextarea:E},computed:{prompt:{get(){return this.$store.state.luma?.config?.prompt},set(e){this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,prompt:e})}}},mounted(){this.prompt||=``}});function rt(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`luma.name.prompt`),info:e.$t(`luma.description.prompt`),placeholder:e.$t(`luma.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var it=M(nt,[[`render`,rt]]),at=_({name:`ExtendFromInput`,components:{VideoPlayer:Q},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:`1080p`}}}},computed:{config(){return this.$store.state.luma?.config}}}),ot={class:`relative`},st={class:`flex mb-2`},ct={class:`text-sm font-bold`};function lt(t,n,r,a,c,u){let d=l(`video-player`);return h(),s(`div`,ot,[e(`div`,st,[e(`span`,ct,i(t.$t(`luma.name.extend`)),1)]),e(`div`,null,[t.config?.video_url?(h(),f(d,{key:0,src:t.config?.video_url},null,8,[`src`])):o(``,!0)])])}var ut=_({name:`ConfigPanel`,components:{MagicIcon:A,LoopSelector:Pe,StartImageInput:Je,EndImageInput:Ve,EnhancementSelector:ve,ElButton:N,PromptInput:it,ExtendFromInput:M(at,[[`render`,lt]]),CustomSelector:Ee,UploadVideo:tt,Consumption:q},emits:[`generate`],computed:{config(){return this.$store.state.luma?.config},consumption(){return P(this.config,this.service?.cost)},service(){return this.$store.state.luma?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),dt={class:`flex flex-col h-full`},ft={class:`flex-1 overflow-y-auto p-5`},pt={class:`flex flex-col items-center justify-center px-5 pb-5`};function mt(t,n,c,u,d,m){let g=l(`extend-from-input`),_=l(`prompt-input`),v=l(`custom-selector`),y=l(`upload-video`),b=l(`start-image-input`),x=l(`end-image-input`),S=l(`enhancement-selector`),C=l(`loop-selector`),w=l(`consumption`),T=l(`magic-icon`),E=l(`el-button`);return h(),s(`div`,dt,[e(`div`,ft,[t.config?.video_id||t.config?.video_url?(h(),f(g,{key:0,class:`mb-4`})):o(``,!0),a(_,{class:`mb-4`}),t.config?.video_id?o(``,!0):(h(),f(v,{key:1,class:`mb-4`})),t.config?.custom?(h(),f(y,{key:2,class:`mb-4`})):o(``,!0),!(t.config?.video_id||t.config?.video_url)&&!t.config?.custom?(h(),f(b,{key:3,class:`mb-4`})):o(``,!0),a(x,{class:`mb-4`}),a(S,{class:`mb-4`}),a(C,{class:`mb-4`})]),e(`div`,pt,[a(w,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),t.config?.video_url!==void 0||t.config?.custom?(h(),f(E,{key:0,type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.extend`)),1)]),_:1},8,[`onClick`])):(h(),f(E,{key:1,type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`luma.button.generate`)),1)]),_:1},8,[`onClick`]))])])}var ht=M(ut,[[`render`,mt]]),gt=_({name:`TaskPreview`,components:{DeleteIcon:O,ChannelIcon:T,InfoIcon:D,MagicIcon:A,TimeIcon:w,WarningIcon:ee,CopyToClipboard:W,ElAlert:b,VideoPlayer:Q,ElTooltip:y,ElButton:N,ApiCodeButton:re},props:{modelValue:{type:Object,required:!0}},emits:[`extend`],data(){return{}},computed:{application(){return this.$store.state.luma?.application},config(){return this.$store.state.luma?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await U.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`luma/deleteTask`,{id:e}),F.success(this.$t(`common.message.deleteTaskSuccess`))}catch{F.error(this.$t(`common.message.deleteTaskFailed`))}}},onExtend(e,t){console.debug(`set config`,t),this.$store.commit(`luma/setConfig`,{...this.$store.state.luma?.config,video_id:t.video_id,prompt:t.prompt,action:`extend`,thumbnail_url:t.thumbnail_url,video_url:t.video_url}),this.$emit(`extend`)},onDownload(e){window.open(e,`_blank`)}}}),_t={class:`preview`},vt={class:`left`},yt={class:`main`},bt={class:`bot`},xt={class:`datetime`},St=[`aria-label`],Ct={class:`info`},wt={key:0,class:`prompt mt-2`},Tt={key:0},Et={key:1},Dt={key:0,class:n({content:!0,failed:!0})},Ot={key:0,class:`mb-4`},kt={key:1,class:n({operations:!0,"mt-2":!0,"mb-4":!0})},At={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},jt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Mt={key:1,class:n({content:!0})},Nt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ft={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},It={key:2,class:n({content:!0})},Lt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Rt(n,c,u,d,f,m){let g=l(`capability-presentation`),_=l(`delete-icon`),v=l(`el-tooltip`),y=l(`video-player`),b=l(`el-button`),x=l(`api-code-button`),S=l(`magic-icon`),C=l(`copy-to-clipboard`),w=l(`time-icon`),T=l(`el-alert`),E=l(`warning-icon`),D=l(`info-icon`),O=l(`channel-icon`);return h(),s(`div`,_t,[e(`div`,vt,[a(g,{capability:`luma`,part:`avatar`,class:`avatar`})]),e(`div`,yt,[e(`div`,bt,[a(g,{capability:`luma`,part:`name`}),e(`span`,xt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(v,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,St)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,Ct,[n.modelValue?.request?.prompt?(h(),s(`p`,wt,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,Tt,` - (`+i(n.$t(`luma.status.pending`))+`) `,1)),n.modelValue?.response?.state===`processing`||n.modelValue?.response?.state===`pending`?(h(),s(`span`,Et,` - (`+i(n.$t(`luma.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,Dt,[n.modelValue.response.video_url?(h(),s(`div`,Ot,[a(y,{src:n.modelValue.response.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response&&!n.config?.custom?(h(),s(`div`,kt,[a(v,{class:`box-item`,effect:`dark`,content:n.$t(`luma.message.extendVideo`),placement:`top-start`},{default:p(()=>[a(b,{type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=t(e=>n.onExtend(e,n.modelValue?.response),[`stop`])},{default:p(()=>[r(i(n.$t(`luma.button.extend`)),1)]),_:1})]),_:1},8,[`content`]),a(v,{class:`box-item`,effect:`dark`,content:n.$t(`luma.message.downloadVideo`),placement:`top-start`},{default:p(()=>[a(b,{type:`info`,size:`small`,class:`btn-action`,onClick:c[2]||=t(e=>n.onDownload(n.modelValue?.response?.video_url),[`stop`])},{default:p(()=>[r(i(n.$t(`luma.button.download`)),1)]),_:1})]),_:1},8,[`content`]),a(x,{path:`/luma/videos`,body:n.modelValue?.request},null,8,[`body`])])):o(``,!0),a(T,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,At,[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,jt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.state===`failed`||n.modelValue?.response?.success===!1?(h(),s(`div`,Mt,[a(T,{closable:!1,class:`failure`},{template:p(()=>[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.failure`)),1)]),default:p(()=>[e(`p`,Nt,[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,$,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(C,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,Pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,Ft,[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.traceId`))+`: `+i(n.modelValue?.trace_id)+` `,1),a(C,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):o(``,!0),!n.modelValue?.response||n.modelValue?.response?.state===`processing`||n.modelValue?.response?.state===`pending`?(h(),s(`div`,It,[a(T,{closable:!1,class:`info`},{template:p(()=>[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`luma.status.processing`:`luma.status.pending`)),1)]),default:p(()=>[e(`p`,Lt,[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`luma.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])])]),_:1})])):o(``,!0)])])}var zt=_({name:`RecentPanel`,components:{BotPlaceholder:ie,TaskPreview:M(gt,[[`render`,Rt],[`__scopeId`,`data-v-6411e1a8`]]),NoTasks:X,ScrollList:Y},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`,`extend`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.luma?.tasks,items:this.$store.state.luma?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Bt={key:0},Vt={key:2,class:`w-full h-full flex items-center justify-center`};function Ht(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,Bt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:e.loading,onReachTop:t[1]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,n=>(h(),f(g,{key:n.id,"model-value":n,onExtend:t[0]||=t=>e.$emit(`extend`)},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Vt,[a(v)])):o(``,!0)],64)}var Ut=_({name:`LumaIndex`,components:{ConfigPanel:ht,Layout:ue,RecentPanel:M(zt,[[`render`,Ht]])},mixins:[te],inject:[`initialized`],emits:[`extend`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.luma?.status?.getApplications===B.Request},tasksLoading(){return this.$store.state.luma?.status?.getTasks===B.Request||this.fetchingTasks},credential(){return this.$store.state.luma.credential},config(){return this.$store.state.luma.config},application(){return this.$store.state.luma.application},tasks(){return this.$store.state.luma.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await Z({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`luma/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`luma/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){console.debug(`scrolling down`),await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`luma/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!j(this.uploadTracker,e=>this.$t(e),e=>F.warning(e)))return;let e={...this.config,async:!0};if(!this.hasText(e.prompt)){F.error(this.$t(`luma.message.promptRequired`));return}if(e.prompt=e.prompt?.trim(),!H())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}F.info(this.$t(`luma.message.startingTask`)),ne(`luma`,V.generate(e,{token:t})).then(()=>{F.success(this.$t(`luma.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?F.error(this.$t(`luma.message.usedUp`)):F.error(this.$t(`luma.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()},hasText(e){return typeof e==`string`&&e.trim().length>0}}});function Wt(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop,onExtend:t[0]||=t=>e.$emit(`extend`)},null,8,[`loading`,`onReachTop`])]),_:1})}var Gt=M(Ut,[[`render`,Wt]]);export{Gt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-C8i2RhXB.js";import{t as b}from"./upload-DyuXMnjr.js";import{t as x}from"./tooltip-CCH3FXDC.js";import{t as S}from"./alert-B7fgHHT0.js";import{t as C}from"./drawer-D_9JEG61.js";import{t as w}from"./input-number-DSrtDU5g.js";import{t as T}from"./slider-DuaLss9X.js";import{n as E}from"./taskDrawerMixin-Ah1F0GIY.js";import{t as D}from"./clock-D24mG5jT.js";import{r as O,t as k}from"./PromptTextarea-B7SHxAI_.js";import{t as A}from"./info-FvxLQPXx.js";import{t as j}from"./trash-2-Dx2C1cKb.js";import{t as M}from"./triangle-alert-C09uUqNi.js";import{t as N}from"./upload-CKZ0yMv2.js";import{t as P}from"./wand-sparkles-C-owUuGi.js";import{cr as F,or as ee,sr as te}from"./constants-VAjhuTLc.js";import{Bt as ne,E as I,Ht as L,Ii as R,Kt as z,Rn as B,Si as V,Ut as H,Vt as U,Wt as W,br as G,li as K,oi as q,tn as J,xi as Y}from"./index-fpmyjfIO.js";import{t as X}from"./CopyToClipboard-Dp75q0hN.js";import{t as Z}from"./ImagePreview-CCsnTCCZ.js";import{t as re}from"./Consumption-BAcIAStE.js";import{a as Q,n as ie,r as ae,t as oe}from"./pagination-L-18_c7T.js";import{t as se}from"./ApiCodeButton-nw-ZA0Py.js";import{t as ce}from"./BotPlaceholder-Dic4ZbnL.js";import{t as le}from"./ImageWrapper-DmsLP650.js";var ue=_({name:`LayoutFlux`,components:{MagicIcon:P,ElDrawer:C,ElButton:R},mixins:[E]}),de={class:`main flex flex-row flex-1`},fe={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},pe={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function me(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,de,[e(`div`,fe,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,pe,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var he=I(ue,[[`render`,me],[`__scopeId`,`data-v-72e82d52`]]),ge=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=F}}),_e={class:`field`},ve={class:`title font-bold`};function ye(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,_e,[e(`h2`,ve,i(t.$t(`flux.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var be=I(ge,[[`render`,ye],[`__scopeId`,`data-v-e9b17945`]]),xe=_({name:`CountSelector`,components:{ElSlider:T,InfoIcon:Q,ElInputNumber:w},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),Se={class:`flex justify-between`},Ce={class:`flex justify-start items-center`},we={class:`text-sm font-bold`},Te={class:`flex justify-end items-center`},Ee={class:`w-full`};function De(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-input-number`),p=l(`el-slider`);return h(),s(`div`,null,[e(`div`,Se,[e(`div`,Ce,[e(`span`,we,i(t.$t(`flux.name.numbers`)),1),a(d,{content:t.$t(`flux.description.numbers`)},null,8,[`content`])]),e(`div`,Te,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),e(`div`,Ee,[a(p,{modelValue:t.value,"onUpdate:modelValue":n[1]||=e=>t.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var Oe=I(xe,[[`render`,De]]),ke=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=te}}),Ae={class:`field`},je={class:`title font-bold`};function Me(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ae,[e(`h2`,je,i(t.$t(`flux.name.task`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ne=I(ke,[[`render`,Me],[`__scopeId`,`data-v-81fd05e5`]]),Pe=_({name:`ImageUrlInput`,components:{UploadIcon:N,ElUpload:b,ElButton:R,InfoIcon:Q,ImagePreview:Z},mixins:[W,H,U],emits:[`change`],data(){return{fileList:[],uploadUrl:K()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){V.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){V.error(this.$t(`flux.message.uploadStartImageError`))}}}),Fe={class:`relative`},Ie={class:`flex justify-between`},Le={class:`flex justify-start items-center`},Re={class:`text-sm font-bold`};function ze(t,n,o,c,u,d){let f=l(`info-icon`),m=l(`image-preview`),g=l(`upload-icon`),_=l(`el-button`),v=l(`el-upload`);return h(),s(`div`,Fe,[e(`div`,Ie,[e(`div`,Le,[e(`span`,Re,i(t.$t(`flux.name.imageUrl`)),1),a(f,{content:t.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),a(v,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,headers:t.headers},{file:p(({file:e})=>[a(m,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:p(()=>[a(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(g,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`headers`])])}var Be=I(Pe,[[`render`,ze],[`__scopeId`,`data-v-2e7e6966`]]),Ve=_({name:`PromptInput`,components:{PromptTextarea:k},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function He(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ue=I(Ve,[[`render`,He]]),We=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:ee}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),Ge={class:`field`},Ke={class:`title font-bold`};function qe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ge,[e(`h2`,Ke,i(t.$t(`flux.name.ratio`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Je=_({name:`PresetPanel`,components:{MagicIcon:P,ElButton:R,PromptInput:Ue,ModelSelector:be,CountSelector:Oe,Consumption:re,ActionSelector:Ne,ImageUrlInput:Be,SizeSelector:I(We,[[`render`,qe],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return z(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ye={class:`flex flex-col h-full`},Xe={class:`flex-1 overflow-y-auto p-5`},Ze={class:`flex flex-col items-center justify-center px-5 pb-5`};function Qe(t,n,c,u,d,m){let g=l(`action-selector`),_=l(`prompt-input`),v=l(`image-url-input`),y=l(`model-selector`),b=l(`size-selector`),x=l(`count-selector`),S=l(`consumption`),C=l(`magic-icon`),w=l(`el-button`);return h(),s(`div`,Ye,[e(`div`,Xe,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.config?.action===`edits`?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`})]),e(`div`,Ze,[a(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var $e=I(Je,[[`render`,Qe]]),et=_({name:`TaskPreview`,components:{DeleteIcon:j,ElTooltip:x,ChannelIcon:O,InfoIcon:A,MagicIcon:P,TimeIcon:D,WarningIcon:M,CopyToClipboard:X,ElAlert:S,ImageWrapper:le,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await Y.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`flux/deleteTask`,{id:e}),V.success(this.$t(`common.message.deleteTaskSuccess`))}catch{V.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),tt={class:`preview`},nt={class:`left`},rt={class:`main`},it={class:`bot`},at={class:`datetime`},ot=[`aria-label`],st={class:`info`},ct={key:0,class:`prompt mt-2`},lt={key:0},ut={key:0,class:n({content:!0,failed:!0})},dt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},ft={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},pt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gt={key:1,class:n({content:!0})},_t={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},bt={key:2,class:n({content:!0})},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function St(n,u,d,g,_,v){let y=l(`capability-presentation`),b=l(`delete-icon`),x=l(`el-tooltip`),S=l(`image-wrapper`),C=l(`api-code-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return h(),s(`div`,tt,[e(`div`,nt,[a(y,{capability:`flux`,part:`avatar`,class:`avatar`})]),e(`div`,rt,[e(`div`,it,[a(y,{capability:`flux`,part:`name`}),e(`span`,at,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(x,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:u[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(b,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,ot)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,st,[n.modelValue?.request?.prompt?(h(),s(`p`,ct,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,lt,` - (`+i(n.$t(`flux.status.pending`))+`) `,1))])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,ut,[e(`div`,dt,[(h(!0),s(c,null,m(n.images,(e,t)=>(h(),f(S,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),e(`div`,ft,[a(C,{path:`/flux/images`,body:n.modelValue?.request},null,8,[`body`])]),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,mt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,ht,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(h(),s(`div`,gt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failure`)),1)]),default:p(()=>[e(`p`,_t,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,vt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,yt,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,$,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0),n.modelValue?.response?o(``,!0):(h(),s(`div`,bt,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.status.pending`)),1)]),default:p(()=>[e(`p`,xt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var Ct=_({name:`RecentPanel`,components:{TaskPreview:I(et,[[`render`,St],[`__scopeId`,`data-v-6df6d58d`]]),BotPlaceholder:ce,NoTasks:ae,ScrollList:ie},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),wt={key:0},Tt={key:2,class:`w-full h-full flex items-center justify-center`};function Et(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,wt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Tt,[a(v)])):o(``,!0)],64)}var Dt=_({name:`FluxIndex`,components:{ConfigPanel:$e,Layout:he,RecentPanel:I(Ct,[[`render`,Et]])},mixins:[L],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===q.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===q.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await oe({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!ne(this.uploadTracker,e=>this.$t(e),e=>V.warning(e)))return;let e={...this.config,async:!0};if(!J())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}V.info(this.$t(`flux.message.startingTask`)),G(`flux`,B.generate(e,{token:t})).then(()=>{V.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?V.error(this.$t(`flux.message.usedUp`)):V.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ot(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var kt=I(Dt,[[`render`,Ot]]);export{kt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-BrIV30zB.js";import{t as b}from"./upload-SgJ0SsaE.js";import{t as x}from"./tooltip-Bh_J2TCQ.js";import{t as S}from"./alert-K5JGGVlq.js";import{t as C}from"./drawer-CAFbzETb.js";import{t as w}from"./input-number-DEvy_cu6.js";import{t as T}from"./slider-9wpzHkXi.js";import{n as E}from"./taskDrawerMixin-7SBjYHl8.js";import{t as D}from"./clock-BgIAgrXk.js";import{r as O,t as k}from"./PromptTextarea-C-97wCqR.js";import{t as A}from"./info-cAAEAAmO.js";import{t as j}from"./trash-2-C8AjzNq0.js";import{t as M}from"./triangle-alert-a7zSyPVi.js";import{t as N}from"./upload-Bk_CFlEX.js";import{t as P}from"./wand-sparkles-CHzbkPuj.js";import{cr as F,or as ee,sr as te}from"./constants-B7y9pxL6.js";import{Bt as ne,E as I,Ht as L,Ii as R,Kt as z,Rn as B,Si as V,Ut as H,Vt as U,Wt as W,br as G,li as K,oi as q,tn as J,xi as Y}from"./index-DIz8jBLv.js";import{t as X}from"./CopyToClipboard-DXXsGqfP.js";import{t as Z}from"./ImagePreview-BgbF2I47.js";import{t as re}from"./Consumption-DTqfhGvj.js";import{a as Q,n as ie,r as ae,t as oe}from"./pagination-BvuMWaAI.js";import{t as se}from"./ApiCodeButton-DGclRu1O.js";import{t as ce}from"./BotPlaceholder-CFxjLuuq.js";import{t as le}from"./ImageWrapper-H_XFI3vI.js";var ue=_({name:`LayoutFlux`,components:{MagicIcon:P,ElDrawer:C,ElButton:R},mixins:[E]}),de={class:`main flex flex-row flex-1`},fe={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},pe={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function me(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,de,[e(`div`,fe,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,pe,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var he=I(ue,[[`render`,me],[`__scopeId`,`data-v-72e82d52`]]),ge=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=F}}),_e={class:`field`},ve={class:`title font-bold`};function ye(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,_e,[e(`h2`,ve,i(t.$t(`flux.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var be=I(ge,[[`render`,ye],[`__scopeId`,`data-v-e9b17945`]]),xe=_({name:`CountSelector`,components:{ElSlider:T,InfoIcon:Q,ElInputNumber:w},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),Se={class:`flex justify-between`},Ce={class:`flex justify-start items-center`},we={class:`text-sm font-bold`},Te={class:`flex justify-end items-center`},Ee={class:`w-full`};function De(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-input-number`),p=l(`el-slider`);return h(),s(`div`,null,[e(`div`,Se,[e(`div`,Ce,[e(`span`,we,i(t.$t(`flux.name.numbers`)),1),a(d,{content:t.$t(`flux.description.numbers`)},null,8,[`content`])]),e(`div`,Te,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),e(`div`,Ee,[a(p,{modelValue:t.value,"onUpdate:modelValue":n[1]||=e=>t.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var Oe=I(xe,[[`render`,De]]),ke=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=te}}),Ae={class:`field`},je={class:`title font-bold`};function Me(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ae,[e(`h2`,je,i(t.$t(`flux.name.task`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ne=I(ke,[[`render`,Me],[`__scopeId`,`data-v-81fd05e5`]]),Pe=_({name:`ImageUrlInput`,components:{UploadIcon:N,ElUpload:b,ElButton:R,InfoIcon:Q,ImagePreview:Z},mixins:[W,H,U],emits:[`change`],data(){return{fileList:[],uploadUrl:K()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){V.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){V.error(this.$t(`flux.message.uploadStartImageError`))}}}),Fe={class:`relative`},Ie={class:`flex justify-between`},Le={class:`flex justify-start items-center`},Re={class:`text-sm font-bold`};function ze(t,n,o,c,u,d){let f=l(`info-icon`),m=l(`image-preview`),g=l(`upload-icon`),_=l(`el-button`),v=l(`el-upload`);return h(),s(`div`,Fe,[e(`div`,Ie,[e(`div`,Le,[e(`span`,Re,i(t.$t(`flux.name.imageUrl`)),1),a(f,{content:t.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),a(v,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,headers:t.headers},{file:p(({file:e})=>[a(m,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:p(()=>[a(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(g,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`headers`])])}var Be=I(Pe,[[`render`,ze],[`__scopeId`,`data-v-2e7e6966`]]),Ve=_({name:`PromptInput`,components:{PromptTextarea:k},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function He(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ue=I(Ve,[[`render`,He]]),We=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:ee}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),Ge={class:`field`},Ke={class:`title font-bold`};function qe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ge,[e(`h2`,Ke,i(t.$t(`flux.name.ratio`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Je=_({name:`PresetPanel`,components:{MagicIcon:P,ElButton:R,PromptInput:Ue,ModelSelector:be,CountSelector:Oe,Consumption:re,ActionSelector:Ne,ImageUrlInput:Be,SizeSelector:I(We,[[`render`,qe],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return z(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ye={class:`flex flex-col h-full`},Xe={class:`flex-1 overflow-y-auto p-5`},Ze={class:`flex flex-col items-center justify-center px-5 pb-5`};function Qe(t,n,c,u,d,m){let g=l(`action-selector`),_=l(`prompt-input`),v=l(`image-url-input`),y=l(`model-selector`),b=l(`size-selector`),x=l(`count-selector`),S=l(`consumption`),C=l(`magic-icon`),w=l(`el-button`);return h(),s(`div`,Ye,[e(`div`,Xe,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.config?.action===`edits`?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`})]),e(`div`,Ze,[a(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var $e=I(Je,[[`render`,Qe]]),et=_({name:`TaskPreview`,components:{DeleteIcon:j,ElTooltip:x,ChannelIcon:O,InfoIcon:A,MagicIcon:P,TimeIcon:D,WarningIcon:M,CopyToClipboard:X,ElAlert:S,ImageWrapper:le,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await Y.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`flux/deleteTask`,{id:e}),V.success(this.$t(`common.message.deleteTaskSuccess`))}catch{V.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),tt={class:`preview`},nt={class:`left`},rt={class:`main`},it={class:`bot`},at={class:`datetime`},ot=[`aria-label`],st={class:`info`},ct={key:0,class:`prompt mt-2`},lt={key:0},ut={key:0,class:n({content:!0,failed:!0})},dt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},ft={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},pt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gt={key:1,class:n({content:!0})},_t={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},bt={key:2,class:n({content:!0})},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function St(n,u,d,g,_,v){let y=l(`capability-presentation`),b=l(`delete-icon`),x=l(`el-tooltip`),S=l(`image-wrapper`),C=l(`api-code-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return h(),s(`div`,tt,[e(`div`,nt,[a(y,{capability:`flux`,part:`avatar`,class:`avatar`})]),e(`div`,rt,[e(`div`,it,[a(y,{capability:`flux`,part:`name`}),e(`span`,at,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(x,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:u[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(b,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,ot)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,st,[n.modelValue?.request?.prompt?(h(),s(`p`,ct,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,lt,` - (`+i(n.$t(`flux.status.pending`))+`) `,1))])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,ut,[e(`div`,dt,[(h(!0),s(c,null,m(n.images,(e,t)=>(h(),f(S,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),e(`div`,ft,[a(C,{path:`/flux/images`,body:n.modelValue?.request},null,8,[`body`])]),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,mt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,ht,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(h(),s(`div`,gt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failure`)),1)]),default:p(()=>[e(`p`,_t,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,vt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,yt,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,$,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0),n.modelValue?.response?o(``,!0):(h(),s(`div`,bt,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.status.pending`)),1)]),default:p(()=>[e(`p`,xt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var Ct=_({name:`RecentPanel`,components:{TaskPreview:I(et,[[`render`,St],[`__scopeId`,`data-v-6df6d58d`]]),BotPlaceholder:ce,NoTasks:ae,ScrollList:ie},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),wt={key:0},Tt={key:2,class:`w-full h-full flex items-center justify-center`};function Et(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,wt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Tt,[a(v)])):o(``,!0)],64)}var Dt=_({name:`FluxIndex`,components:{ConfigPanel:$e,Layout:he,RecentPanel:I(Ct,[[`render`,Et]])},mixins:[L],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===q.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===q.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await oe({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!ne(this.uploadTracker,e=>this.$t(e),e=>V.warning(e)))return;let e={...this.config,async:!0};if(!J())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}V.info(this.$t(`flux.message.startingTask`)),G(`flux`,B.generate(e,{token:t})).then(()=>{V.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?V.error(this.$t(`flux.message.usedUp`)):V.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ot(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var kt=I(Dt,[[`render`,Ot]]);export{kt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,rt as p,tt as m,x as h,z as g}from"./vendor-chart-Dw-P17PN.js";import{r as _,t as v}from"./select-C8i2RhXB.js";import{t as y}from"./upload-DyuXMnjr.js";import{t as b}from"./tooltip-CCH3FXDC.js";import{t as x}from"./alert-B7fgHHT0.js";import{n as S,r as C}from"./radio-DgDgyT2l.js";import{t as w}from"./drawer-D_9JEG61.js";import{t as T}from"./progress-bSUZvkfj.js";import{n as E}from"./taskDrawerMixin-Ah1F0GIY.js";import{t as D}from"./check-B1C4r6_m.js";import{t as O}from"./clock-D24mG5jT.js";import{t as k}from"./image-Dm3PlDcm.js";import{t as A}from"./info-FvxLQPXx.js";import{t as j}from"./mic-Cdzv7j9o.js";import{t as M}from"./music-2-DIEgnlEG.js";import{t as N}from"./sliders-horizontal-BxOmB3UL.js";import{t as P}from"./trash-2-Dx2C1cKb.js";import{t as ee}from"./triangle-alert-C09uUqNi.js";import{t as F}from"./upload-CKZ0yMv2.js";import{t as I}from"./user-BDEw2Jel.js";import{t as L}from"./video-eO5l-Unb.js";import{t as R}from"./wand-sparkles-C-owUuGi.js";import{Cr as te,Er as ne,_r as re,br as z,vr as B,yr as V}from"./constants-VAjhuTLc.js";import{Bn as H,E as U,Gi as W,Ii as G,Kt as K,Si as q,Ut as J,br as Y,li as X,oi as Z,tn as ie,xi as ae}from"./index-fpmyjfIO.js";import{t as oe}from"./CopyToClipboard-Dp75q0hN.js";import{t as se}from"./Consumption-BAcIAStE.js";import{a as ce,n as le,r as ue,t as de}from"./pagination-L-18_c7T.js";import{t as fe}from"./VideoPlayer-CahZtZ6S.js";import{t as pe}from"./ApiCodeButton-nw-ZA0Py.js";import{t as me}from"./BotPlaceholder-Dic4ZbnL.js";var he=g({name:`LayoutDigitalHuman`,components:{UserIcon:I,ElDrawer:w,ElButton:G},mixins:[E]}),ge={class:`main flex flex-row flex-1`},_e={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ve={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ye(t,n,r,a,s,d){let p=c(`user-icon`),g=c(`el-button`),_=c(`el-drawer`);return m(),o(`div`,ge,[e(`div`,_e,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,ve,[u(t.$slots,`result`,{},void 0,!0)]),l(i(g,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[h,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var be=U(he,[[`render`,ye],[`__scopeId`,`data-v-e912fd04`]]),xe=g({name:`DigitalHumanFileInput`,components:{ElUpload:y,ElButton:G,ImageIcon:k,MicrophoneIcon:j,MusicIcon:M,UploadIcon:F,VideoIcon:L},mixins:[J],props:{accept:{type:String,default:``},buttonText:{type:String,default:``},icon:{type:String,default:`upload`}},emits:[`change`],data(){return{fileList:[],uploadUrl:X()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}}},methods:{onExceed(e){let t=this.$refs.uploader;t?.clearFiles();let n=e[0];n&&(t?.handleStart?.(n),t?.submit?.())},onError(){q.error(this.$t(`digitalhuman.message.uploadError`))},onChange(){let e=this.fileList?.[0]?.response?.file_url;this.$emit(`change`,e)}}});function Se(e,t,a,s,l,u){let p=c(`video-icon`),h=c(`image-icon`),g=c(`microphone-icon`),_=c(`music-icon`),v=c(`upload-icon`),y=c(`el-button`),b=c(`el-upload`);return m(),o(`div`,null,[i(b,{ref:`uploader`,"file-list":e.fileList,"onUpdate:fileList":t[0]||=t=>e.fileList=t,accept:e.accept,name:`file`,class:`w-full`,limit:1,action:e.uploadUrl,headers:e.headers,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onChange,"on-remove":e.onChange},{default:f(()=>[i(y,{size:`small`,round:``},{default:f(()=>[e.icon===`video`?(m(),d(p,{key:0,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`image`?(m(),d(h,{key:1,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`microphone`?(m(),d(g,{key:2,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`music`?(m(),d(_,{key:3,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(m(),d(v,{key:4,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})),n(` `+r(e.buttonText),1)]),_:1})]),_:1},8,[`file-list`,`accept`,`action`,`headers`,`on-exceed`,`on-error`,`on-success`,`on-remove`])])}var Q=U(xe,[[`render`,Se]]),Ce=3e3,we=60,Te=g({name:`VoiceClone`,components:{ConfirmIcon:D,MagicIcon:R,ElButton:G,ElSelect:_,ElOption:v,ElAlert:x,FileInput:Q},data(){return{sampleUrl:void 0,lang:`zh`,cloning:!1,destroyed:!1,runId:0,DIGITALHUMAN_ALLOWED_LANGS:B,DIGITALHUMAN_AUDIO_ACCEPT:z}},computed:{credentialToken(){return this.$store.state.digitalhuman?.credential?.token},voiceId(){return this.$store.state.digitalhuman?.config?.voice_id}},watch:{lang(){this.invalidate()}},beforeUnmount(){this.destroyed=!0,this.runId++},methods:{onSampleChange(e){this.sampleUrl=e,this.invalidate()},invalidate(){this.runId++,this.cloning=!1,this.voiceId&&this.setVoiceId(void 0)},isStale(e){return this.destroyed||e!==this.runId},setVoiceId(e){this.$store.commit(`digitalhuman/setConfig`,{...this.$store.state.digitalhuman?.config,voice_id:e})},sleep(e){return new Promise(t=>setTimeout(t,e))},async onClone(){let e=this.credentialToken;if(!this.sampleUrl||!e)return;let t=++this.runId;this.cloning=!0,this.setVoiceId(void 0);try{let{data:n}=await H.cloneVoice({audio_url:this.sampleUrl,lang:this.lang},{token:e});if(this.isStale(t))return;if(n?.voice_id){this.onCloned(n.voice_id);return}if(n?.task_id)await this.pollVoice(n.task_id,e,t);else throw Error(`no task`)}catch{this.isStale(t)||q.error(this.$t(`digitalhuman.message.voiceCloneFailed`))}finally{this.isStale(t)||(this.cloning=!1)}},async pollVoice(e,t,n){for(let r=0;r<we;r++){if(this.isStale(n)||(await this.sleep(Ce),this.isStale(n)))return;let{data:r}=await H.pollTask(e,{token:t});if(this.isStale(n))return;if(r?.voice_id){this.onCloned(r.voice_id);return}if(r?.state===`failed`)throw Error(`clone failed`)}throw Error(`timeout`)},onCloned(e){this.setVoiceId(e),q.success(this.$t(`digitalhuman.message.voiceCloneSuccess`))}}}),Ee={class:`voice-clone`},De={class:`text-xs text-[var(--el-text-color-secondary)] mb-2`},Oe={class:`flex flex-row items-center gap-2 mb-2`},ke={class:`text-xs mb-0`};function Ae(t,l,u,h,g,_){let v=c(`file-input`),y=c(`el-option`),b=c(`el-select`),x=c(`magic-icon`),S=c(`el-button`),C=c(`confirm-icon`),w=c(`el-alert`);return m(),o(`div`,Ee,[e(`p`,De,r(t.$t(`digitalhuman.description.voiceClone`)),1),e(`div`,Oe,[i(v,{accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadSample`),icon:`microphone`,onChange:t.onSampleChange},null,8,[`accept`,`button-text`,`onChange`]),i(b,{modelValue:t.lang,"onUpdate:modelValue":l[0]||=e=>t.lang=e,size:`small`,class:`!w-[90px]`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_LANGS,e=>(m(),d(y,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),i(S,{size:`small`,type:`primary`,round:``,loading:t.cloning,disabled:!t.sampleUrl||t.cloning,onClick:t.onClone},{default:f(()=>[i(x,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.cloning?t.$t(`digitalhuman.button.cloning`):t.$t(`digitalhuman.button.clone`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),t.voiceId?(m(),d(w,{key:0,closable:!1,type:`success`,class:`mt-2`},{default:f(()=>[e(`p`,ke,[i(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.$t(`digitalhuman.name.voiceReady`))+`: `+r(t.voiceId),1)])]),_:1})):a(``,!0)])}var je=g({name:`ConfigPanel`,components:{UserIcon:I,ElButton:G,ElInput:W,ElRadioGroup:C,ElRadioButton:S,Consumption:se,InfoIcon:ce,FileInput:Q,VoiceClone:U(Te,[[`render`,Ae]])},emits:[`generate`],data(){return{faceMode:`video`,voiceMode:`audio`,DIGITALHUMAN_ALLOWED_ENGINES:re,DIGITALHUMAN_ALLOWED_RESOLUTIONS:V,DIGITALHUMAN_VIDEO_ACCEPT:ne,DIGITALHUMAN_IMAGE_ACCEPT:te,DIGITALHUMAN_AUDIO_ACCEPT:z}},computed:{config(){return this.$store.state.digitalhuman?.config},service(){return this.$store.state.digitalhuman?.service},consumption(){return K(this.config,this.service?.cost)},canGenerate(){let e=this.faceMode===`video`?!!this.config?.video_url:!!this.config?.image_url,t=this.voiceMode===`audio`?!!this.config?.audio_url:!!this.config?.text?.trim()&&!!this.config?.voice_id;return e&&t},text:{get(){return this.config?.text},set(e){this.update({text:e})}},engine:{get(){return this.config?.engine},set(e){this.update({engine:e})}},resolution:{get(){return this.config?.resolution},set(e){this.update({resolution:e})}}},mounted(){this.config?.image_url&&!this.config?.video_url&&(this.faceMode=`photo`),(this.config?.text||this.config?.voice_id)&&(this.voiceMode=`text`),this.update({engine:this.config?.engine??`latentsync`,resolution:this.config?.resolution??`720p`})},methods:{update(e){this.$store.commit(`digitalhuman/setConfig`,{...this.config,...e})},onFaceModeChange(e){this.update(e===`video`?{image_url:void 0}:{video_url:void 0})},onVoiceModeChange(e){this.update(e===`audio`?{text:void 0,voice_id:void 0}:{audio_url:void 0})},onFaceVideoChange(e){this.update({video_url:e})},onFacePhotoChange(e){this.update({image_url:e})},onAudioChange(e){this.update({audio_url:e})},onGenerate(){let e=this.config||{},t={engine:e.engine,resolution:e.resolution};this.faceMode===`video`?t.video_url=e.video_url:t.image_url=e.image_url,this.voiceMode===`audio`?t.audio_url=e.audio_url:(t.text=e.text,t.voice_id=e.voice_id),this.$emit(`generate`,t)}}}),Me={class:`flex flex-col h-full`},Ne={class:`flex-1 overflow-y-auto p-5`},Pe={class:`field-block mb-5`},Fe={class:`field-head`},Ie={class:`field-title font-bold`},Le={class:`field-block mb-5`},Re={class:`field-head`},ze={class:`field-title font-bold`},Be={class:`field-block mb-5`},Ve={class:`field-head`},He={class:`field-title font-bold`},Ue={class:`field-block`},We={class:`field-head`},Ge={class:`field-title font-bold`},Ke={class:`flex flex-col items-center justify-center px-5 pb-5`};function qe(t,a,l,u,h,g){let _=c(`info-icon`),v=c(`el-radio-button`),y=c(`el-radio-group`),b=c(`file-input`),x=c(`el-input`),S=c(`voice-clone`),C=c(`consumption`),w=c(`user-icon`),T=c(`el-button`);return m(),o(`div`,Me,[e(`div`,Ne,[e(`div`,Pe,[e(`div`,Fe,[e(`h2`,Ie,r(t.$t(`digitalhuman.name.face`)),1),i(_,{content:t.$t(`digitalhuman.description.face`),class:`ml-1`},null,8,[`content`])]),i(y,{modelValue:t.faceMode,"onUpdate:modelValue":a[0]||=e=>t.faceMode=e,class:`w-full mb-2`,onChange:t.onFaceModeChange},{default:f(()=>[i(v,{value:`video`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.faceVideo`)),1)]),_:1}),i(v,{value:`photo`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.facePhoto`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.faceMode===`video`?(m(),d(b,{key:0,accept:t.DIGITALHUMAN_VIDEO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadVideo`),icon:`video`,onChange:t.onFaceVideoChange},null,8,[`accept`,`button-text`,`onChange`])):(m(),d(b,{key:1,accept:t.DIGITALHUMAN_IMAGE_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadPhoto`),icon:`image`,onChange:t.onFacePhotoChange},null,8,[`accept`,`button-text`,`onChange`]))]),e(`div`,Le,[e(`div`,Re,[e(`h2`,ze,r(t.$t(`digitalhuman.name.voice`)),1)]),i(y,{modelValue:t.voiceMode,"onUpdate:modelValue":a[1]||=e=>t.voiceMode=e,class:`w-full mb-2`,onChange:t.onVoiceModeChange},{default:f(()=>[i(v,{value:`audio`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.voiceAudio`)),1)]),_:1}),i(v,{value:`text`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.voiceText`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.voiceMode===`audio`?(m(),d(b,{key:0,accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadAudio`),icon:`music`,onChange:t.onAudioChange},null,8,[`accept`,`button-text`,`onChange`])):(m(),o(s,{key:1},[i(x,{modelValue:t.text,"onUpdate:modelValue":a[2]||=e=>t.text=e,type:`textarea`,rows:4,placeholder:t.$t(`digitalhuman.placeholder.text`),class:`mb-2`},null,8,[`modelValue`,`placeholder`]),i(S)],64))]),e(`div`,Be,[e(`div`,Ve,[e(`h2`,He,r(t.$t(`digitalhuman.name.engine`)),1)]),i(y,{modelValue:t.engine,"onUpdate:modelValue":a[3]||=e=>t.engine=e,class:`w-full`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_ENGINES,e=>(m(),d(v,{key:e,value:e},{default:f(()=>[n(r(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),e(`div`,Ue,[e(`div`,We,[e(`h2`,Ge,r(t.$t(`digitalhuman.name.resolution`)),1)]),i(y,{modelValue:t.resolution,"onUpdate:modelValue":a[4]||=e=>t.resolution=e,class:`w-full`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_RESOLUTIONS,e=>(m(),d(v,{key:e,value:e},{default:f(()=>[n(r(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])])]),e(`div`,Ke,[i(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(T,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:f(()=>[i(w,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.$t(`digitalhuman.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var Je=U(je,[[`render`,qe],[`__scopeId`,`data-v-5ae1f07d`]]),Ye=g({name:`TaskPreview`,components:{DeleteIcon:P,ElTooltip:b,ControlsIcon:N,ImageIcon:k,InfoIcon:A,TimeIcon:O,UserIcon:I,VideoIcon:L,WarningIcon:ee,CopyToClipboard:oe,ElAlert:x,ElProgress:T,VideoPlayer:fe,ElButton:G,ApiCodeButton:pe},props:{modelValue:{type:Object,required:!0}},computed:{status(){return this.modelValue?.status||this.modelValue?.response?.state||`pending`},isSuccess(){return[`succeed`,`succeeded`].includes(this.status)||!!this.modelValue?.response?.video_url},isFailure(){return[`failed`,`dead`].includes(this.status)||this.modelValue?.response?.success===!1},isTerminal(){return this.isSuccess||this.isFailure},videoUrl(){return this.modelValue?.response?.video_url},progressPct(){let e=this.modelValue?.response?.progress;return typeof e==`number`?e:0},voiceLabel(){return this.modelValue?.request?.audio_url?this.$t(`digitalhuman.name.audioDriven`):this.$t(`digitalhuman.name.textDriven`)},faceLabel(){return this.modelValue?.request?.image_url?this.$t(`digitalhuman.name.facePhoto`):this.$t(`digitalhuman.name.faceVideo`)},engineLabel(){return this.modelValue?.request?.engine||this.modelValue?.response?.engine||`latentsync`},statusLabel(){let e=`digitalhuman.status.${this.status}`,t=this.$t(e);return t===e?this.$t(`digitalhuman.status.processing`):t},failureReason(){let e=this.modelValue?.response?.error;if(e)return typeof e==`string`?e:e?.message}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await ae.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`digitalhuman/deleteTask`,{id:e}),q.success(this.$t(`common.message.deleteTaskSuccess`))}catch{q.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),window.open(t,`_blank`)}}}),Xe={class:`preview`},Ze={class:`left`},Qe={class:`main`},$e={class:`bot`},et={class:`datetime`},tt=[`aria-label`],nt={class:`info`},rt={key:0,class:`prompt mt-2`},it={key:0},at={key:1,class:`prompt mt-2`},ot={key:0},st={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},ct={class:`ml-2`},lt={key:0,class:`content`},ut={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},dt={key:1,class:`content`},ft={class:`operations mt-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},mt={key:2,class:`content`},ht={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},gt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function _t(s,l,u,p,h,g){let _=c(`capability-presentation`),v=c(`delete-icon`),y=c(`el-tooltip`),b=c(`image-icon`),x=c(`video-icon`),S=c(`controls-icon`),C=c(`el-progress`),w=c(`video-player`),T=c(`el-button`),E=c(`api-code-button`),D=c(`user-icon`),O=c(`copy-to-clipboard`),k=c(`time-icon`),A=c(`el-alert`),j=c(`warning-icon`),M=c(`info-icon`);return m(),o(`div`,Xe,[e(`div`,Ze,[i(_,{capability:`digitalhuman`,part:`avatar`,class:`avatar`})]),e(`div`,Qe,[e(`div`,$e,[i(_,{capability:`digitalhuman`,part:`name`}),e(`span`,et,r(s.$dayjs.format(``+new Date(parseFloat((s.modelValue?.created_at||``).toString())*1e3))),1),i(y,{effect:`dark`,content:s.$t(`common.button.delete`),placement:`top`},{default:f(()=>[s.modelValue?.id?(m(),o(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":s.$t(`common.button.delete`),onClick:l[0]||=t((...e)=>s.onDelete&&s.onDelete(...e),[`stop`])},[i(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,tt)):a(``,!0)]),_:1},8,[`content`])]),e(`div`,nt,[s.modelValue?.request?.text?(m(),o(`p`,rt,[n(r(s.modelValue?.request?.text)+` `,1),s.isTerminal?a(``,!0):(m(),o(`span`,it,` - (`+r(s.statusLabel)+`) `,1))])):(m(),o(`p`,at,[n(r(s.voiceLabel)+` `,1),s.isTerminal?a(``,!0):(m(),o(`span`,ot,` - (`+r(s.statusLabel)+`) `,1))])),e(`p`,st,[s.modelValue?.request?.image_url?(m(),d(b,{key:0,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(m(),d(x,{key:1,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})),n(` `+r(s.faceLabel)+` `,1),e(`span`,ct,[i(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(r(s.engineLabel),1)])])]),s.isTerminal?a(``,!0):(m(),o(`div`,lt,[e(`p`,ut,r(s.statusLabel),1),i(C,{percentage:s.progressPct,"stroke-width":6},null,8,[`percentage`])])),s.isSuccess?(m(),o(`div`,dt,[s.videoUrl?(m(),d(w,{key:0,src:s.videoUrl},null,8,[`src`])):a(``,!0),e(`div`,ft,[s.videoUrl?(m(),d(T,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:l[1]||=e=>s.onDownload(e,s.videoUrl)},{default:f(()=>[n(r(s.$t(`digitalhuman.button.download`)),1)]),_:1})):a(``,!0),i(E,{path:`/digital-human/videos`,body:s.modelValue?.request},null,8,[`body`])]),i(A,{closable:!1,class:`mt-2 success`},{default:f(()=>[e(`p`,$,[i(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(O,{content:s.modelValue?.id},null,8,[`content`])]),s.modelValue?.elapsed?(m(),o(`p`,pt,[i(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.elapsed`))+`: `+r(s.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):a(``,!0),s.isFailure?(m(),o(`div`,mt,[i(A,{closable:!1,class:`failure`},{template:f(()=>[i(j,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.failure`)),1)]),default:f(()=>[e(`p`,ht,[i(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(O,{content:s.modelValue?.id},null,8,[`content`])]),s.failureReason?(m(),o(`p`,gt,[i(M,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.failureReason`))+`: `+r(s.failureReason),1)])):a(``,!0)]),_:1})])):a(``,!0)])])}var vt=g({name:`RecentPanel`,components:{TaskPreview:U(Ye,[[`render`,_t],[`__scopeId`,`data-v-03383155`]]),NoTasks:ue,BotPlaceholder:me,ScrollList:le},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.digitalhuman?.tasks,items:this.$store.state.digitalhuman?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),yt={key:0},bt={key:2,class:`w-full h-full flex items-center justify-center`};function xt(e,t,n,r,l,u){let h=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return m(),o(s,null,[e.tasks?.items===void 0?(m(),o(`div`,yt,[i(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(m(),d(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(m(!0),o(s,null,p(e.tasks?.items,(e,t)=>(m(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(m(),o(`div`,bt,[i(v)])):a(``,!0)],64)}var St=g({name:`DigitalHumanIndex`,components:{ConfigPanel:Je,Layout:be,RecentPanel:U(vt,[[`render`,xt]])},inject:[`initialized`],data(){return{job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.digitalhuman?.status?.getApplications===Z.Request},tasksLoading(){return this.$store.state.digitalhuman?.status?.getTasks===Z.Request||this.fetchingTasks},credential(){return this.$store.state.digitalhuman.credential},config(){return this.$store.state.digitalhuman.config},tasks(){return this.$store.state.digitalhuman.tasks}},watch:{initialized:{async handler(e){window.clearInterval(this.job),e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await de({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`digitalhuman/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`digitalhuman/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(e){if(!ie())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}q.info(this.$t(`digitalhuman.message.startingTask`)),Y(`digitalhuman`,H.generate(e,{token:t})).then(()=>{q.success(this.$t(`digitalhuman.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?q.error(this.$t(`digitalhuman.message.usedUp`)):q.error(this.$t(`digitalhuman.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ct(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return m(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var wt=U(St,[[`render`,Ct]]);export{wt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,rt as p,tt as m,x as h,z as g}from"./vendor-chart-Dw-P17PN.js";import{r as _,t as v}from"./select-BrIV30zB.js";import{t as y}from"./upload-SgJ0SsaE.js";import{t as b}from"./tooltip-Bh_J2TCQ.js";import{t as x}from"./alert-K5JGGVlq.js";import{n as S,r as C}from"./radio-DgDgyT2l.js";import{t as w}from"./drawer-CAFbzETb.js";import{t as T}from"./progress-bSUZvkfj.js";import{n as E}from"./taskDrawerMixin-7SBjYHl8.js";import{t as D}from"./check-DeZrkKtd.js";import{t as O}from"./clock-BgIAgrXk.js";import{t as k}from"./image-DOCMqtZ6.js";import{t as A}from"./info-cAAEAAmO.js";import{t as j}from"./mic-BX862YBz.js";import{t as M}from"./music-2-CpL839Zc.js";import{t as N}from"./sliders-horizontal-BjJWnDLW.js";import{t as P}from"./trash-2-C8AjzNq0.js";import{t as ee}from"./triangle-alert-a7zSyPVi.js";import{t as F}from"./upload-Bk_CFlEX.js";import{t as I}from"./user-B6ZTb89o.js";import{t as L}from"./video-CUAzbXpi.js";import{t as R}from"./wand-sparkles-CHzbkPuj.js";import{Cr as te,Er as ne,_r as re,br as z,vr as B,yr as V}from"./constants-B7y9pxL6.js";import{Bn as H,E as U,Gi as W,Ii as G,Kt as K,Si as q,Ut as J,br as Y,li as X,oi as Z,tn as ie,xi as ae}from"./index-DIz8jBLv.js";import{t as oe}from"./CopyToClipboard-DXXsGqfP.js";import{t as se}from"./Consumption-DTqfhGvj.js";import{a as ce,n as le,r as ue,t as de}from"./pagination-BvuMWaAI.js";import{t as fe}from"./VideoPlayer-CpcrXw4y.js";import{t as pe}from"./ApiCodeButton-DGclRu1O.js";import{t as me}from"./BotPlaceholder-CFxjLuuq.js";var he=g({name:`LayoutDigitalHuman`,components:{UserIcon:I,ElDrawer:w,ElButton:G},mixins:[E]}),ge={class:`main flex flex-row flex-1`},_e={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ve={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ye(t,n,r,a,s,d){let p=c(`user-icon`),g=c(`el-button`),_=c(`el-drawer`);return m(),o(`div`,ge,[e(`div`,_e,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,ve,[u(t.$slots,`result`,{},void 0,!0)]),l(i(g,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[h,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var be=U(he,[[`render`,ye],[`__scopeId`,`data-v-e912fd04`]]),xe=g({name:`DigitalHumanFileInput`,components:{ElUpload:y,ElButton:G,ImageIcon:k,MicrophoneIcon:j,MusicIcon:M,UploadIcon:F,VideoIcon:L},mixins:[J],props:{accept:{type:String,default:``},buttonText:{type:String,default:``},icon:{type:String,default:`upload`}},emits:[`change`],data(){return{fileList:[],uploadUrl:X()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}}},methods:{onExceed(e){let t=this.$refs.uploader;t?.clearFiles();let n=e[0];n&&(t?.handleStart?.(n),t?.submit?.())},onError(){q.error(this.$t(`digitalhuman.message.uploadError`))},onChange(){let e=this.fileList?.[0]?.response?.file_url;this.$emit(`change`,e)}}});function Se(e,t,a,s,l,u){let p=c(`video-icon`),h=c(`image-icon`),g=c(`microphone-icon`),_=c(`music-icon`),v=c(`upload-icon`),y=c(`el-button`),b=c(`el-upload`);return m(),o(`div`,null,[i(b,{ref:`uploader`,"file-list":e.fileList,"onUpdate:fileList":t[0]||=t=>e.fileList=t,accept:e.accept,name:`file`,class:`w-full`,limit:1,action:e.uploadUrl,headers:e.headers,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onChange,"on-remove":e.onChange},{default:f(()=>[i(y,{size:`small`,round:``},{default:f(()=>[e.icon===`video`?(m(),d(p,{key:0,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`image`?(m(),d(h,{key:1,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`microphone`?(m(),d(g,{key:2,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`music`?(m(),d(_,{key:3,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(m(),d(v,{key:4,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})),n(` `+r(e.buttonText),1)]),_:1})]),_:1},8,[`file-list`,`accept`,`action`,`headers`,`on-exceed`,`on-error`,`on-success`,`on-remove`])])}var Q=U(xe,[[`render`,Se]]),Ce=3e3,we=60,Te=g({name:`VoiceClone`,components:{ConfirmIcon:D,MagicIcon:R,ElButton:G,ElSelect:_,ElOption:v,ElAlert:x,FileInput:Q},data(){return{sampleUrl:void 0,lang:`zh`,cloning:!1,destroyed:!1,runId:0,DIGITALHUMAN_ALLOWED_LANGS:B,DIGITALHUMAN_AUDIO_ACCEPT:z}},computed:{credentialToken(){return this.$store.state.digitalhuman?.credential?.token},voiceId(){return this.$store.state.digitalhuman?.config?.voice_id}},watch:{lang(){this.invalidate()}},beforeUnmount(){this.destroyed=!0,this.runId++},methods:{onSampleChange(e){this.sampleUrl=e,this.invalidate()},invalidate(){this.runId++,this.cloning=!1,this.voiceId&&this.setVoiceId(void 0)},isStale(e){return this.destroyed||e!==this.runId},setVoiceId(e){this.$store.commit(`digitalhuman/setConfig`,{...this.$store.state.digitalhuman?.config,voice_id:e})},sleep(e){return new Promise(t=>setTimeout(t,e))},async onClone(){let e=this.credentialToken;if(!this.sampleUrl||!e)return;let t=++this.runId;this.cloning=!0,this.setVoiceId(void 0);try{let{data:n}=await H.cloneVoice({audio_url:this.sampleUrl,lang:this.lang},{token:e});if(this.isStale(t))return;if(n?.voice_id){this.onCloned(n.voice_id);return}if(n?.task_id)await this.pollVoice(n.task_id,e,t);else throw Error(`no task`)}catch{this.isStale(t)||q.error(this.$t(`digitalhuman.message.voiceCloneFailed`))}finally{this.isStale(t)||(this.cloning=!1)}},async pollVoice(e,t,n){for(let r=0;r<we;r++){if(this.isStale(n)||(await this.sleep(Ce),this.isStale(n)))return;let{data:r}=await H.pollTask(e,{token:t});if(this.isStale(n))return;if(r?.voice_id){this.onCloned(r.voice_id);return}if(r?.state===`failed`)throw Error(`clone failed`)}throw Error(`timeout`)},onCloned(e){this.setVoiceId(e),q.success(this.$t(`digitalhuman.message.voiceCloneSuccess`))}}}),Ee={class:`voice-clone`},De={class:`text-xs text-[var(--el-text-color-secondary)] mb-2`},Oe={class:`flex flex-row items-center gap-2 mb-2`},ke={class:`text-xs mb-0`};function Ae(t,l,u,h,g,_){let v=c(`file-input`),y=c(`el-option`),b=c(`el-select`),x=c(`magic-icon`),S=c(`el-button`),C=c(`confirm-icon`),w=c(`el-alert`);return m(),o(`div`,Ee,[e(`p`,De,r(t.$t(`digitalhuman.description.voiceClone`)),1),e(`div`,Oe,[i(v,{accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadSample`),icon:`microphone`,onChange:t.onSampleChange},null,8,[`accept`,`button-text`,`onChange`]),i(b,{modelValue:t.lang,"onUpdate:modelValue":l[0]||=e=>t.lang=e,size:`small`,class:`!w-[90px]`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_LANGS,e=>(m(),d(y,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),i(S,{size:`small`,type:`primary`,round:``,loading:t.cloning,disabled:!t.sampleUrl||t.cloning,onClick:t.onClone},{default:f(()=>[i(x,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.cloning?t.$t(`digitalhuman.button.cloning`):t.$t(`digitalhuman.button.clone`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),t.voiceId?(m(),d(w,{key:0,closable:!1,type:`success`,class:`mt-2`},{default:f(()=>[e(`p`,ke,[i(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.$t(`digitalhuman.name.voiceReady`))+`: `+r(t.voiceId),1)])]),_:1})):a(``,!0)])}var je=g({name:`ConfigPanel`,components:{UserIcon:I,ElButton:G,ElInput:W,ElRadioGroup:C,ElRadioButton:S,Consumption:se,InfoIcon:ce,FileInput:Q,VoiceClone:U(Te,[[`render`,Ae]])},emits:[`generate`],data(){return{faceMode:`video`,voiceMode:`audio`,DIGITALHUMAN_ALLOWED_ENGINES:re,DIGITALHUMAN_ALLOWED_RESOLUTIONS:V,DIGITALHUMAN_VIDEO_ACCEPT:ne,DIGITALHUMAN_IMAGE_ACCEPT:te,DIGITALHUMAN_AUDIO_ACCEPT:z}},computed:{config(){return this.$store.state.digitalhuman?.config},service(){return this.$store.state.digitalhuman?.service},consumption(){return K(this.config,this.service?.cost)},canGenerate(){let e=this.faceMode===`video`?!!this.config?.video_url:!!this.config?.image_url,t=this.voiceMode===`audio`?!!this.config?.audio_url:!!this.config?.text?.trim()&&!!this.config?.voice_id;return e&&t},text:{get(){return this.config?.text},set(e){this.update({text:e})}},engine:{get(){return this.config?.engine},set(e){this.update({engine:e})}},resolution:{get(){return this.config?.resolution},set(e){this.update({resolution:e})}}},mounted(){this.config?.image_url&&!this.config?.video_url&&(this.faceMode=`photo`),(this.config?.text||this.config?.voice_id)&&(this.voiceMode=`text`),this.update({engine:this.config?.engine??`latentsync`,resolution:this.config?.resolution??`720p`})},methods:{update(e){this.$store.commit(`digitalhuman/setConfig`,{...this.config,...e})},onFaceModeChange(e){this.update(e===`video`?{image_url:void 0}:{video_url:void 0})},onVoiceModeChange(e){this.update(e===`audio`?{text:void 0,voice_id:void 0}:{audio_url:void 0})},onFaceVideoChange(e){this.update({video_url:e})},onFacePhotoChange(e){this.update({image_url:e})},onAudioChange(e){this.update({audio_url:e})},onGenerate(){let e=this.config||{},t={engine:e.engine,resolution:e.resolution};this.faceMode===`video`?t.video_url=e.video_url:t.image_url=e.image_url,this.voiceMode===`audio`?t.audio_url=e.audio_url:(t.text=e.text,t.voice_id=e.voice_id),this.$emit(`generate`,t)}}}),Me={class:`flex flex-col h-full`},Ne={class:`flex-1 overflow-y-auto p-5`},Pe={class:`field-block mb-5`},Fe={class:`field-head`},Ie={class:`field-title font-bold`},Le={class:`field-block mb-5`},Re={class:`field-head`},ze={class:`field-title font-bold`},Be={class:`field-block mb-5`},Ve={class:`field-head`},He={class:`field-title font-bold`},Ue={class:`field-block`},We={class:`field-head`},Ge={class:`field-title font-bold`},Ke={class:`flex flex-col items-center justify-center px-5 pb-5`};function qe(t,a,l,u,h,g){let _=c(`info-icon`),v=c(`el-radio-button`),y=c(`el-radio-group`),b=c(`file-input`),x=c(`el-input`),S=c(`voice-clone`),C=c(`consumption`),w=c(`user-icon`),T=c(`el-button`);return m(),o(`div`,Me,[e(`div`,Ne,[e(`div`,Pe,[e(`div`,Fe,[e(`h2`,Ie,r(t.$t(`digitalhuman.name.face`)),1),i(_,{content:t.$t(`digitalhuman.description.face`),class:`ml-1`},null,8,[`content`])]),i(y,{modelValue:t.faceMode,"onUpdate:modelValue":a[0]||=e=>t.faceMode=e,class:`w-full mb-2`,onChange:t.onFaceModeChange},{default:f(()=>[i(v,{value:`video`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.faceVideo`)),1)]),_:1}),i(v,{value:`photo`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.facePhoto`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.faceMode===`video`?(m(),d(b,{key:0,accept:t.DIGITALHUMAN_VIDEO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadVideo`),icon:`video`,onChange:t.onFaceVideoChange},null,8,[`accept`,`button-text`,`onChange`])):(m(),d(b,{key:1,accept:t.DIGITALHUMAN_IMAGE_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadPhoto`),icon:`image`,onChange:t.onFacePhotoChange},null,8,[`accept`,`button-text`,`onChange`]))]),e(`div`,Le,[e(`div`,Re,[e(`h2`,ze,r(t.$t(`digitalhuman.name.voice`)),1)]),i(y,{modelValue:t.voiceMode,"onUpdate:modelValue":a[1]||=e=>t.voiceMode=e,class:`w-full mb-2`,onChange:t.onVoiceModeChange},{default:f(()=>[i(v,{value:`audio`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.voiceAudio`)),1)]),_:1}),i(v,{value:`text`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.voiceText`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.voiceMode===`audio`?(m(),d(b,{key:0,accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadAudio`),icon:`music`,onChange:t.onAudioChange},null,8,[`accept`,`button-text`,`onChange`])):(m(),o(s,{key:1},[i(x,{modelValue:t.text,"onUpdate:modelValue":a[2]||=e=>t.text=e,type:`textarea`,rows:4,placeholder:t.$t(`digitalhuman.placeholder.text`),class:`mb-2`},null,8,[`modelValue`,`placeholder`]),i(S)],64))]),e(`div`,Be,[e(`div`,Ve,[e(`h2`,He,r(t.$t(`digitalhuman.name.engine`)),1)]),i(y,{modelValue:t.engine,"onUpdate:modelValue":a[3]||=e=>t.engine=e,class:`w-full`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_ENGINES,e=>(m(),d(v,{key:e,value:e},{default:f(()=>[n(r(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),e(`div`,Ue,[e(`div`,We,[e(`h2`,Ge,r(t.$t(`digitalhuman.name.resolution`)),1)]),i(y,{modelValue:t.resolution,"onUpdate:modelValue":a[4]||=e=>t.resolution=e,class:`w-full`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_RESOLUTIONS,e=>(m(),d(v,{key:e,value:e},{default:f(()=>[n(r(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])])]),e(`div`,Ke,[i(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(T,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:f(()=>[i(w,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.$t(`digitalhuman.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var Je=U(je,[[`render`,qe],[`__scopeId`,`data-v-5ae1f07d`]]),Ye=g({name:`TaskPreview`,components:{DeleteIcon:P,ElTooltip:b,ControlsIcon:N,ImageIcon:k,InfoIcon:A,TimeIcon:O,UserIcon:I,VideoIcon:L,WarningIcon:ee,CopyToClipboard:oe,ElAlert:x,ElProgress:T,VideoPlayer:fe,ElButton:G,ApiCodeButton:pe},props:{modelValue:{type:Object,required:!0}},computed:{status(){return this.modelValue?.status||this.modelValue?.response?.state||`pending`},isSuccess(){return[`succeed`,`succeeded`].includes(this.status)||!!this.modelValue?.response?.video_url},isFailure(){return[`failed`,`dead`].includes(this.status)||this.modelValue?.response?.success===!1},isTerminal(){return this.isSuccess||this.isFailure},videoUrl(){return this.modelValue?.response?.video_url},progressPct(){let e=this.modelValue?.response?.progress;return typeof e==`number`?e:0},voiceLabel(){return this.modelValue?.request?.audio_url?this.$t(`digitalhuman.name.audioDriven`):this.$t(`digitalhuman.name.textDriven`)},faceLabel(){return this.modelValue?.request?.image_url?this.$t(`digitalhuman.name.facePhoto`):this.$t(`digitalhuman.name.faceVideo`)},engineLabel(){return this.modelValue?.request?.engine||this.modelValue?.response?.engine||`latentsync`},statusLabel(){let e=`digitalhuman.status.${this.status}`,t=this.$t(e);return t===e?this.$t(`digitalhuman.status.processing`):t},failureReason(){let e=this.modelValue?.response?.error;if(e)return typeof e==`string`?e:e?.message}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await ae.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`digitalhuman/deleteTask`,{id:e}),q.success(this.$t(`common.message.deleteTaskSuccess`))}catch{q.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),window.open(t,`_blank`)}}}),Xe={class:`preview`},Ze={class:`left`},Qe={class:`main`},$e={class:`bot`},et={class:`datetime`},tt=[`aria-label`],nt={class:`info`},rt={key:0,class:`prompt mt-2`},it={key:0},at={key:1,class:`prompt mt-2`},ot={key:0},st={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},ct={class:`ml-2`},lt={key:0,class:`content`},ut={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},dt={key:1,class:`content`},ft={class:`operations mt-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},mt={key:2,class:`content`},ht={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},gt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function _t(s,l,u,p,h,g){let _=c(`capability-presentation`),v=c(`delete-icon`),y=c(`el-tooltip`),b=c(`image-icon`),x=c(`video-icon`),S=c(`controls-icon`),C=c(`el-progress`),w=c(`video-player`),T=c(`el-button`),E=c(`api-code-button`),D=c(`user-icon`),O=c(`copy-to-clipboard`),k=c(`time-icon`),A=c(`el-alert`),j=c(`warning-icon`),M=c(`info-icon`);return m(),o(`div`,Xe,[e(`div`,Ze,[i(_,{capability:`digitalhuman`,part:`avatar`,class:`avatar`})]),e(`div`,Qe,[e(`div`,$e,[i(_,{capability:`digitalhuman`,part:`name`}),e(`span`,et,r(s.$dayjs.format(``+new Date(parseFloat((s.modelValue?.created_at||``).toString())*1e3))),1),i(y,{effect:`dark`,content:s.$t(`common.button.delete`),placement:`top`},{default:f(()=>[s.modelValue?.id?(m(),o(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":s.$t(`common.button.delete`),onClick:l[0]||=t((...e)=>s.onDelete&&s.onDelete(...e),[`stop`])},[i(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,tt)):a(``,!0)]),_:1},8,[`content`])]),e(`div`,nt,[s.modelValue?.request?.text?(m(),o(`p`,rt,[n(r(s.modelValue?.request?.text)+` `,1),s.isTerminal?a(``,!0):(m(),o(`span`,it,` - (`+r(s.statusLabel)+`) `,1))])):(m(),o(`p`,at,[n(r(s.voiceLabel)+` `,1),s.isTerminal?a(``,!0):(m(),o(`span`,ot,` - (`+r(s.statusLabel)+`) `,1))])),e(`p`,st,[s.modelValue?.request?.image_url?(m(),d(b,{key:0,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(m(),d(x,{key:1,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})),n(` `+r(s.faceLabel)+` `,1),e(`span`,ct,[i(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(r(s.engineLabel),1)])])]),s.isTerminal?a(``,!0):(m(),o(`div`,lt,[e(`p`,ut,r(s.statusLabel),1),i(C,{percentage:s.progressPct,"stroke-width":6},null,8,[`percentage`])])),s.isSuccess?(m(),o(`div`,dt,[s.videoUrl?(m(),d(w,{key:0,src:s.videoUrl},null,8,[`src`])):a(``,!0),e(`div`,ft,[s.videoUrl?(m(),d(T,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:l[1]||=e=>s.onDownload(e,s.videoUrl)},{default:f(()=>[n(r(s.$t(`digitalhuman.button.download`)),1)]),_:1})):a(``,!0),i(E,{path:`/digital-human/videos`,body:s.modelValue?.request},null,8,[`body`])]),i(A,{closable:!1,class:`mt-2 success`},{default:f(()=>[e(`p`,$,[i(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(O,{content:s.modelValue?.id},null,8,[`content`])]),s.modelValue?.elapsed?(m(),o(`p`,pt,[i(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.elapsed`))+`: `+r(s.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):a(``,!0),s.isFailure?(m(),o(`div`,mt,[i(A,{closable:!1,class:`failure`},{template:f(()=>[i(j,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.failure`)),1)]),default:f(()=>[e(`p`,ht,[i(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(O,{content:s.modelValue?.id},null,8,[`content`])]),s.failureReason?(m(),o(`p`,gt,[i(M,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.failureReason`))+`: `+r(s.failureReason),1)])):a(``,!0)]),_:1})])):a(``,!0)])])}var vt=g({name:`RecentPanel`,components:{TaskPreview:U(Ye,[[`render`,_t],[`__scopeId`,`data-v-03383155`]]),NoTasks:ue,BotPlaceholder:me,ScrollList:le},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.digitalhuman?.tasks,items:this.$store.state.digitalhuman?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),yt={key:0},bt={key:2,class:`w-full h-full flex items-center justify-center`};function xt(e,t,n,r,l,u){let h=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return m(),o(s,null,[e.tasks?.items===void 0?(m(),o(`div`,yt,[i(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(m(),d(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(m(!0),o(s,null,p(e.tasks?.items,(e,t)=>(m(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(m(),o(`div`,bt,[i(v)])):a(``,!0)],64)}var St=g({name:`DigitalHumanIndex`,components:{ConfigPanel:Je,Layout:be,RecentPanel:U(vt,[[`render`,xt]])},inject:[`initialized`],data(){return{job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.digitalhuman?.status?.getApplications===Z.Request},tasksLoading(){return this.$store.state.digitalhuman?.status?.getTasks===Z.Request||this.fetchingTasks},credential(){return this.$store.state.digitalhuman.credential},config(){return this.$store.state.digitalhuman.config},tasks(){return this.$store.state.digitalhuman.tasks}},watch:{initialized:{async handler(e){window.clearInterval(this.job),e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await de({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`digitalhuman/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`digitalhuman/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(e){if(!ie())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}q.info(this.$t(`digitalhuman.message.startingTask`)),Y(`digitalhuman`,H.generate(e,{token:t})).then(()=>{q.success(this.$t(`digitalhuman.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?q.error(this.$t(`digitalhuman.message.usedUp`)):q.error(this.$t(`digitalhuman.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ct(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return m(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var wt=U(St,[[`render`,Ct]]);export{wt as default};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,qt as m,rt as h,tt as g,x as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{r as y,t as b}from"./select-BrIV30zB.js";import{n as x,t as S}from"./tabs-B9K7IogD.js";import{t as C}from"./upload-SgJ0SsaE.js";import{t as w}from"./tooltip-Bh_J2TCQ.js";import{t as T}from"./alert-K5JGGVlq.js";import{t as E}from"./drawer-CAFbzETb.js";import{t as D}from"./switch-yP6j6pso.js";import{n as O}from"./taskDrawerMixin-7SBjYHl8.js";import{t as k}from"./box-DrnUMCzU.js";import{t as A}from"./clock-BgIAgrXk.js";import{n as j,r as M,t as N}from"./PromptTextarea-C-97wCqR.js";import{t as P}from"./info-cAAEAAmO.js";import{t as F}from"./languages-Cx-pvzlN.js";import{t as I}from"./trash-2-C8AjzNq0.js";import{t as L}from"./triangle-alert-a7zSyPVi.js";import{t as ee}from"./upload-Bk_CFlEX.js";import{t as R}from"./wand-sparkles-CHzbkPuj.js";import{t as te}from"./zap-BJpgChMV.js";import{ai as z,ii as ne,ri as re}from"./constants-B7y9pxL6.js";import{Bt as ie,E as B,Ht as ae,Ii as V,Kt as oe,Si as H,Ut as U,Vt as W,Wn as G,Wt as K,br as q,li as se,oi as J,tn as ce,xi as le}from"./index-DIz8jBLv.js";import{t as ue}from"./CopyToClipboard-DXXsGqfP.js";import{t as Y}from"./ImagePreview-BgbF2I47.js";import{t as de}from"./Consumption-DTqfhGvj.js";import{a as X,n as fe,r as pe,t as me}from"./pagination-BvuMWaAI.js";import{t as he}from"./VideoPlayer-CpcrXw4y.js";import{t as ge}from"./ApiCodeButton-DGclRu1O.js";import{t as _e}from"./BotPlaceholder-CFxjLuuq.js";var ve=v({name:`LayoutVeo`,components:{MagicIcon:R,ElDrawer:E,ElButton:V},mixins:[O]}),ye={class:`main flex flex-row flex-1`},be={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},xe={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function Se(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),h=l(`el-drawer`);return g(),s(`div`,ye,[e(`div`,be,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,xe,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[_,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var Ce=B(ve,[[`render`,Se],[`__scopeId`,`data-v-293c9493`]]),Z=`veo31-fast-ingredients`,we=[{value:`veo31-fast`,label:`Veo 3.1 Fast`},{value:`veo3-fast`,label:`Veo 3 Fast`},{value:`veo31`,label:`Veo 3.1`},{value:`veo3`,label:`Veo 3`}],Q=(e,t)=>{let n=!!(e?.action&&e.action!==t),r={...e,action:t};return t===`text2video`?(r.model=r.model===`veo31-fast-ingredients`?z:r.model||`veo31-fast`,delete r.image_urls,r):t===`ingredients2video`?(r.model=Z,n?delete r.image_urls:r.image_urls=r.image_urls?.slice(0,3),r):(r.model=r.model===`veo31-fast-ingredients`?z:r.model||`veo31-fast`,n?delete r.image_urls:r.image_urls=r.image_urls?.slice(0,2),r)},Te=e=>{let t={...Q(e,e?.action||`text2video`),async:!0};return t.image_urls?.length||delete t.image_urls,t},Ee=v({name:`ModelSelector`,components:{ElSelect:y,ElOption:b},computed:{isModelLocked(){return this.$store.state.veo?.config?.action===`ingredients2video`},options(){return this.isModelLocked?[{value:Z,label:`Veo 3.1 Fast`}]:we},value:{get(){return this.$store.state.veo?.config?.model},set(e){this.$store.commit(`veo/setConfig`,{...this.$store.state.veo.config,model:e})}}},mounted(){this.value||=z}}),De={class:`field`},Oe={class:`title font-bold`};function ke(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,De,[e(`h2`,Oe,i(t.$t(`veo.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`veo.placeholder.select`),disabled:t.isModelLocked},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`disabled`])])}var Ae=B(Ee,[[`render`,ke],[`__scopeId`,`data-v-90ed8cff`]]),je=v({name:`ActionSelector`,components:{ElTabs:x,ElTabPane:S},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`veo.button.action1`)},{value:`image2video`,label:this.$t(`veo.button.action2`)},{value:`ingredients2video`,label:this.$t(`veo.button.actionIngredients`)}]},value(){return this.$store.state.veo?.config?.action||`text2video`}},mounted(){this.$store.state.veo?.config?.action||this.onUpdate(re)},methods:{onUpdate(e){this.$store.commit(`veo/setConfig`,Q(this.$store.state.veo?.config,e))}}}),Me={class:`tab-label`},Ne={class:`text`};function Pe(t,n,r,a,o,u){let d=l(`el-tab-pane`),m=l(`el-tabs`);return g(),f(m,{"model-value":t.value,class:`action-tabs scenario-tabs scenario-tabs--divided`,"onUpdate:modelValue":t.onUpdate},{default:p(()=>[(g(!0),s(c,null,h(t.options,t=>(g(),f(d,{key:t.value,name:t.value},{label:p(()=>[e(`span`,Me,[e(`span`,Ne,i(t.label),1)])]),_:2},1032,[`name`]))),128))]),_:1},8,[`model-value`,`onUpdate:modelValue`])}var Fe=B(je,[[`render`,Pe],[`__scopeId`,`data-v-c72fb85c`]]),Ie=v({name:`TranslationSelector`,components:{ElSwitch:D,InfoIcon:X},computed:{value:{get(){return this.$store.state.veo?.config?.translation},set(e){console.debug(`set translation`,e),this.$store.commit(`veo/setConfig`,{...this.$store.state.veo?.config,translation:e})}}},mounted(){this.value===void 0&&(this.value=!1)}}),Le={class:`relative`},Re={class:`flex justify-between`},ze={class:`flex justify-start items-center`},Be={class:`text-sm font-bold`},Ve={class:`flex justify-end items-center`};function He(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-switch`);return g(),s(`div`,Le,[e(`div`,Re,[e(`div`,ze,[e(`span`,Be,i(t.$t(`veo.name.translation`)),1),a(d,{content:t.$t(`veo.description.translation`)},null,8,[`content`])]),e(`div`,Ve,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var Ue=B(Ie,[[`render`,He]]),We=v({name:`AspectRatioSelector`,data(){return{options:[{value:`16:9`,label:`16:9`,width:25,height:13},{value:`9:16`,label:`9:16`,width:13,height:25}]}},computed:{active(){return this.options.findIndex(e=>e.value===this.value)||0},value:{get(){return this.$store.state.veo?.config?.aspect_ratio},set(e){console.debug(`set aspect_ratio`,e),this.$store.commit(`veo/setConfig`,{...this.$store.state?.veo?.config,aspect_ratio:e})}}},mounted(){this.value||=ne}}),Ge={class:`text-sm font-bold mb-2 block`},Ke={class:`items`},qe=[`onClick`],Je={class:`name`};function Ye(t,r,a,o,l,u){return g(),s(`div`,null,[e(`span`,Ge,i(t.$t(`veo.name.ratio`)),1),e(`div`,Ke,[(g(!0),s(c,null,h(t.options,(r,a)=>(g(),s(`div`,{key:a,class:n({active:t.active===a,item:!0}),onClick:e=>t.value=r.value},[e(`div`,{class:n([`preview`,r.label])},[e(`div`,{class:`rect`,style:m({width:r.width+`px`,height:r.height+`px`})},null,4)],2),e(`p`,Je,i(r.label),1)],10,qe))),128))])])}var Xe=B(We,[[`render`,Ye],[`__scopeId`,`data-v-28c472c4`]]),Ze=v({name:`StartEndImage`,components:{UploadIcon:ee,ElUpload:C,ElButton:V,InfoIcon:X,ImagePreview:Y},mixins:[K,U,W],props:{limit:{type:Number,default:2},ingredients:{type:Boolean,default:!1}},emits:[`change`],data(){return{fileList:[],uploadUrl:se()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},title(){return this.ingredients?this.$t(`veo.button.actionIngredients`):this.$t(`veo.name.startEndImage`)},description(){return this.ingredients?this.$t(`veo.description.imageUrl`):this.$t(`veo.description.uploadStartEndImage`)},urls(){return this.fileList.map(e=>e.response?.file_url||e.url).filter(e=>!!e)},value:{get(){return this.$store.state?.veo?.config?.image_urls},set(){}}},watch:{limit(){this.fileList.length>this.limit&&(this.fileList=this.fileList.slice(0,this.limit),this.onSetStartEndImageUrl())}},mounted(){this.fileList=(this.value||[]).map((e,t)=>({name:`reference-${t+1}`,percentage:100,response:{file_url:e},status:`success`,uid:Date.now()+t,url:e}))},methods:{onExceed(){H.warning(this.$t(`veo.message.uploadReferencesLimit`,{limit:this.limit}))},onError(){H.error(this.$t(`veo.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`veo/setConfig`,{...this.$store.state?.veo?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()},onRemove(e){let t=this.fileList.indexOf(e);t>=0&&this.fileList.splice(t,1),this.onSetStartEndImageUrl()}}}),Qe={class:`relative`},$e={class:`flex justify-between`},et={class:`flex justify-start items-center`},tt={class:`text-sm font-bold`};function nt(t,n,c,u,d,m){let h=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return g(),s(`div`,Qe,[e(`div`,$e,[e(`div`,et,[e(`span`,tt,i(t.title),1),a(h,{content:t.description},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:t.limit,class:`upload-wrapper`,multiple:!0,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(g(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.onRemove(e)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`veo.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`limit`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var rt=B(Ze,[[`render`,nt],[`__scopeId`,`data-v-7312fe97`]]),it=v({name:`PromptInput`,components:{PromptTextarea:N},computed:{prompt:{get(){return this.$store.state.veo?.config?.prompt},set(e){this.$store.commit(`veo/setConfig`,{...this.$store.state.veo?.config,prompt:e})}}},mounted(){this.prompt||=``}});function at(e,t,n,r,i,a){let o=l(`prompt-textarea`);return g(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`veo.name.prompt`),info:e.$t(`veo.description.prompt`),placeholder:e.$t(`veo.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var ot=v({name:`ConfigPanel`,components:{MagicIcon:R,ElButton:V,Consumption:de,PromptInput:B(it,[[`render`,at]]),ModelSelector:Ae,StartEndImage:rt,ActionSelector:Fe,TranslationSelector:Ue,AspectRatioSelector:Xe},emits:[`generate`],computed:{config(){return this.$store.state.veo?.config},showsImages(){return this.config?.action===`image2video`||this.config?.action===`ingredients2video`},imageLimit(){return this.config?.action===`ingredients2video`?3:2},consumption(){return oe(this.config,this.service?.cost)},service(){return this.$store.state.veo?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),st={class:`flex flex-col h-full`},ct={class:`flex-1 overflow-y-auto p-5`},lt={class:`flex flex-col items-center justify-center px-5 pb-5`};function ut(t,n,c,u,d,m){let h=l(`action-selector`),_=l(`model-selector`),v=l(`start-end-image`),y=l(`prompt-input`),b=l(`aspect-ratio-selector`),x=l(`translation-selector`),S=l(`consumption`),C=l(`magic-icon`),w=l(`el-button`);return g(),s(`div`,st,[e(`div`,ct,[a(h,{class:`mb-4`}),a(_,{class:`mb-4`}),t.showsImages?(g(),f(v,{key:t.config?.action,class:`mb-4`,limit:t.imageLimit,ingredients:t.config?.action===`ingredients2video`},null,8,[`limit`,`ingredients`])):o(``,!0),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`})]),e(`div`,lt,[a(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`veo.button.generate`)),1)]),_:1},8,[`onClick`])])])}var dt=B(ot,[[`render`,ut]]),ft=v({name:`TaskPreview`,components:{DeleteIcon:I,ApplicationIcon:k,ChannelIcon:M,ExpandIcon:j,InfoIcon:P,LanguageIcon:F,LightningIcon:te,MagicIcon:R,TimeIcon:A,WarningIcon:L,CopyToClipboard:ue,ElAlert:T,VideoPlayer:he,ImagePreview:Y,ElTooltip:w,ElButton:V,ApiCodeButton:ge},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{referenceImages(){let e=this.modelValue?.request?.image_urls;return Array.isArray(e)?e.filter(e=>typeof e==`string`&&!!e):[]},actionLabel(){let e=this.modelValue?.request,t=e?.model===`veo31-fast-ingredients`||this.referenceImages.length>2?`ingredients2video`:this.referenceImages.length>0?`image2video`:`text2video`,n=e?.action||t;return this.$t({text2video:`veo.button.action1`,image2video:`veo.button.action2`,ingredients2video:`veo.button.actionIngredients`}[n]||`veo.name.action`)},traceId(){return this.modelValue?.response?.trace_id||this.modelValue?.trace_id},taskInfoClass(){return this.modelValue?.response?.success===!0?`success`:this.modelValue?.response?.success===!1?`failure`:`info`}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await le.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`veo/deleteTask`,{id:e}),H.success(this.$t(`common.message.deleteTaskSuccess`))}catch{H.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),pt={class:`preview`},mt={class:`left`},ht={class:`main`},gt={class:`bot`},_t={class:`datetime`},vt=[`aria-label`],yt={class:`info`},bt={key:0,class:`flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto`},xt={key:1,class:`prompt mt-2`},St={key:0},Ct={key:1},wt={key:0,class:n({content:!0,failed:!0})},Tt={key:0,class:`mb-4`},Et={key:1,class:n({operations:!0,"mt-2":!0})},Dt={key:1,class:n({content:!0})},Ot={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},kt={class:n({content:!0})},At={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},jt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Mt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Nt={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pt={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ft={key:4,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function It(u,d,m,_,v,y){let b=l(`capability-presentation`),x=l(`delete-icon`),S=l(`el-tooltip`),C=l(`image-preview`),w=l(`video-player`),T=l(`el-button`),E=l(`api-code-button`),D=l(`warning-icon`),O=l(`info-icon`),k=l(`copy-to-clipboard`),A=l(`el-alert`),j=l(`application-icon`),M=l(`lightning-icon`),N=l(`expand-icon`),P=l(`language-icon`),F=l(`magic-icon`),I=l(`time-icon`),L=l(`channel-icon`);return g(),s(`div`,pt,[e(`div`,mt,[a(b,{capability:`veo`,part:`avatar`,class:`avatar`})]),e(`div`,ht,[e(`div`,gt,[a(b,{capability:`veo`,part:`name`}),e(`span`,_t,i(u.$dayjs.format(``+new Date(parseFloat((u.modelValue?.created_at||``).toString())*1e3))),1),a(S,{effect:`dark`,content:u.$t(`common.button.delete`),placement:`top`},{default:p(()=>[u.modelValue?.id?(g(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":u.$t(`common.button.delete`),onClick:d[0]||=t((...e)=>u.onDelete&&u.onDelete(...e),[`stop`])},[a(x,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,vt)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,yt,[u.referenceImages.length>0?(g(),s(`div`,bt,[(g(!0),s(c,null,h(u.referenceImages,(e,t)=>(g(),f(C,{key:`${t}-${e}`,url:e,name:`reference-${t+1}`,closable:!1},null,8,[`url`,`name`]))),128))])):o(``,!0),u.modelValue?.request?.prompt?(g(),s(`p`,xt,[r(i(u.modelValue?.request?.prompt)+` `,1),u.modelValue?.response?o(``,!0):(g(),s(`span`,St,` - (`+i(u.$t(`veo.status.pending`))+`) `,1)),Array.isArray(u.modelValue?.response?.data)&&u.modelValue?.response?.data[0]?.state===`running`?(g(),s(`span`,Ct,` - (`+i(u.$t(`veo.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),u.modelValue?.response?.success===!0&&u.modelValue?.response?.data?(g(),s(`div`,wt,[u.modelValue?.response?.data[0]?.video_url?(g(),s(`div`,Tt,[a(w,{src:u.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):o(``,!0),u.modelValue?.response.success?(g(),s(`div`,Et,[a(S,{class:`box-item`,effect:`dark`,content:u.$t(`veo.message.downloadVideo`),placement:`top-start`},{default:p(()=>[u.modelValue?.response?.data[0]?.video_url?(g(),f(T,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:d[1]||=e=>u.onDownload(e,u.modelValue?.response?.data[0]?.video_url)},{default:p(()=>[r(i(u.$t(`veo.button.download`)),1)]),_:1})):o(``,!0)]),_:1},8,[`content`]),a(E,{path:`/veo/videos`,body:u.modelValue?.request},null,8,[`body`])])):o(``,!0)])):o(``,!0),u.modelValue?.response?.success===!1?(g(),s(`div`,Dt,[a(A,{closable:!1,class:`failure`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.failure`)),1)]),default:p(()=>[e(`p`,Ot,[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.failureReason`))+`: `+i(u.modelValue?.response?.error?.message)+` `,1),a(k,{content:u.modelValue?.response?.error?.message},null,8,[`content`])])]),_:1})])):o(``,!0),e(`div`,kt,[a(A,{closable:!1,class:n([`mt-2`,`task-metadata`,u.taskInfoClass])},{default:p(()=>[u.modelValue?.request?.model?(g(),s(`p`,At,[a(j,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.model`))+`: `+i(u.modelValue?.request?.model),1)])):o(``,!0),e(`p`,jt,[a(M,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.action`))+`: `+i(u.actionLabel),1)]),u.modelValue?.request?.aspect_ratio?(g(),s(`p`,Mt,[a(N,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.ratio`))+`: `+i(u.modelValue?.request?.aspect_ratio),1)])):o(``,!0),u.modelValue?.request?.translation===void 0?o(``,!0):(g(),s(`p`,Nt,[a(P,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.translation`))+`: `+i(u.$t(u.modelValue?.request?.translation?`seedance.button.on`:`seedance.button.off`)),1)])),e(`p`,$,[a(F,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.taskId`))+`: `+i(u.modelValue?.id)+` `,1),a(k,{content:u.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),u.modelValue?.elapsed?(g(),s(`p`,Pt,[a(I,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.elapsed`))+`: `+i(u.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),u.traceId?(g(),s(`p`,Ft,[a(L,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(u.$t(`veo.name.traceId`))+`: `+i(u.traceId)+` `,1),a(k,{content:u.traceId,class:`btn-copy inline-block`},null,8,[`content`])])):o(``,!0)]),_:1},8,[`class`])])])])}var Lt=v({name:`RecentPanel`,components:{TaskPreview:B(ft,[[`render`,It],[`__scopeId`,`data-v-d1a27ce4`]]),NoTasks:pe,BotPlaceholder:_e,ScrollList:fe},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.veo?.tasks,items:this.$store.state.veo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Rt={key:0},zt={key:2,class:`w-full h-full flex items-center justify-center`};function Bt(e,t,n,r,i,u){let d=l(`bot-placeholder`),m=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return g(),s(c,null,[e.tasks?.items===void 0?(g(),s(`div`,Rt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(g(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(g(!0),s(c,null,h(e.tasks?.items,(e,t)=>(g(),f(m,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(g(),s(`div`,zt,[a(v)])):o(``,!0)],64)}var Vt=v({name:`VeoIndex`,components:{ConfigPanel:dt,Layout:Ce,RecentPanel:B(Lt,[[`render`,Bt]])},mixins:[ae],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.veo?.status?.getApplications===J.Request},tasksLoading(){return this.$store.state.veo?.status?.getTasks===J.Request||this.fetchingTasks},credential(){return this.$store.state.veo.credential},config(){return this.$store.state.veo.config},tasks(){return this.$store.state.veo.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 me({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(`veo/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`veo/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`veo/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!ie(this.uploadTracker,e=>this.$t(e),e=>H.warning(e)))return;let e=Te(this.config);if(!ce())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}if((e.action===`image2video`||e.action===`ingredients2video`)&&!(e.image_urls&&e.image_urls.length>0)){H.warning(this.$t(`veo.message.imageRequired`));return}H.info(this.$t(`veo.message.startingTask`)),q(`veo`,G.generate(e,{token:t})).then(()=>{H.success(this.$t(`veo.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?H.error(this.$t(`veo.message.usedUp`)):H.error(this.$t(`veo.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ht(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return g(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Ut=B(Vt,[[`render`,Ht]]);export{Ut as default};