@acedatacloud/nexior 3.226.0 → 3.227.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/assets/{ApiCodeButton-CkgmddPY.js → ApiCodeButton-CkYl1m8R.js} +1 -1
  2. package/dist/assets/{Auth-h6N9ZBLa.js → Auth-Bkv0eW0O.js} +1 -1
  3. package/dist/assets/{BotPlaceholder-s0833dXM.js → BotPlaceholder-yR_kBFno.js} +1 -1
  4. package/dist/assets/{Callback-CBljhjFT.js → Callback-Bk5nyZcm.js} +1 -1
  5. package/dist/assets/{Console-C3Gx64sK.js → Console-Dutu0YcF.js} +1 -1
  6. package/dist/assets/{Consumption-DJb3Zq85.js → Consumption-BHLp19TR.js} +1 -1
  7. package/dist/assets/{Conversation-VkhRa_B5.js → Conversation-D8MCeYKI.js} +1 -1
  8. package/dist/assets/{CopyToClipboard-DszAErjC.js → CopyToClipboard-DYhphNXQ.js} +1 -1
  9. package/dist/assets/{Detail-DbXyKJAH.js → Detail-JNFESlB-.js} +2 -2
  10. package/dist/assets/{Extra-D4S1pWsZ.js → Extra-BN7QgnU9.js} +1 -1
  11. package/dist/assets/{FilePreview-a5f4UpE6.js → FilePreview-Cccng5bk.js} +1 -1
  12. package/dist/assets/{Hailuo-7_9fVHuN.js → Hailuo-CjUpl1yc.js} +1 -1
  13. package/dist/assets/{History-eaRwqJ8v.js → History-B7Sxqf8C.js} +1 -1
  14. package/dist/assets/{ImagePreview-BKqMFwxZ.js → ImagePreview-EvK72jMd.js} +1 -1
  15. package/dist/assets/{ImageWrapper-Dm7-bIgX.js → ImageWrapper-C6NFWtUs.js} +1 -1
  16. package/dist/assets/{Index-Lhvb0cWT.js → Index-1OLlCJgY.js} +1 -1
  17. package/dist/assets/{Index-GtfMoPB3.js → Index-2v2P-xnM.js} +1 -1
  18. package/dist/assets/{Index-CV0ESyQJ.js → Index-B1hFJK_t.js} +1 -1
  19. package/dist/assets/{Index-Sx6KWAO1.js → Index-B8LUE7P0.js} +1 -1
  20. package/dist/assets/{Index-CiesuReN.js → Index-BDHmeDSF.js} +1 -1
  21. package/dist/assets/{Index-BjzdB6YT.js → Index-BMe46H6w.js} +1 -1
  22. package/dist/assets/{Index-C7crVbxy.js → Index-BNoE6qlR.js} +1 -1
  23. package/dist/assets/{Index-B5XRCe1Z.js → Index-B_M875sK.js} +1 -1
  24. package/dist/assets/{Index-BN47fdme.js → Index-BnDqfgJC.js} +1 -1
  25. package/dist/assets/{Index-C3P5HTF4.js → Index-C2b2AZMo.js} +1 -1
  26. package/dist/assets/{Index-Bmxbl7BK.js → Index-CGwsCGAJ.js} +1 -1
  27. package/dist/assets/{Index-BBK-7Gmo.js → Index-CKXuIUCn.js} +1 -1
  28. package/dist/assets/{Index-DHrvjqNq.js → Index-CQYwhsnt.js} +1 -1
  29. package/dist/assets/{Index-zRRlcw_e.js → Index-CgYJdX4S.js} +1 -1
  30. package/dist/assets/{Index-CZePZ_IQ.js → Index-D9zeMzCg.js} +1 -1
  31. package/dist/assets/{Index-C91R35lY.js → Index-DAFMrYOh.js} +1 -1
  32. package/dist/assets/{Index-BdqobCHx.js → Index-DVQdwKgX.js} +1 -1
  33. package/dist/assets/{Index-xxk4WFkB.js → Index-D_fuE-Vv.js} +1 -1
  34. package/dist/assets/{Index-kAbxiEc3.js → Index-D_y79uxA.js} +1 -1
  35. package/dist/assets/{Index-CsPREH2f.js → Index-Db9F9SKV.js} +1 -1
  36. package/dist/assets/{Index-C7QvtYVG.js → Index-DfaFH5vb.js} +1 -1
  37. package/dist/assets/{Index-C3w9Wt7D.js → Index-ir0gSLfa.js} +1 -1
  38. package/dist/assets/{Index-VQEB0VqM.js → Index-ltN7ThEu.js} +1 -1
  39. package/dist/assets/{Index-BlEHXaM6.js → Index-mylng2p-.js} +1 -1
  40. package/dist/assets/{Index-BMdIXpA_.js → Index-zVvbrZ1U.js} +1 -1
  41. package/dist/assets/{Invitees-RYbo2VU4.js → Invitees-BfN072Nr.js} +1 -1
  42. package/dist/assets/{List-CB7EaiaU.js → List-C4IeAIBN.js} +1 -1
  43. package/dist/assets/{List-CaodU12c.js → List-DpBawTfr.js} +1 -1
  44. package/dist/assets/{List-CsTbqM1W.js → List-Hv7KL-tQ.js} +1 -1
  45. package/dist/assets/{Main-SUKzn9hJ.js → Main-ICqHIXhb.js} +1 -1
  46. package/dist/assets/{Model-kxF-TnJ5.js → Model-DtY9Idrt.js} +1 -1
  47. package/dist/assets/{Navigator-CQol9KTQ.js → Navigator-Bm5iIRLG.js} +1 -1
  48. package/dist/assets/Navigator-DQ9Vs28R.css +1 -0
  49. package/dist/assets/{NoTasks-CF8uilN4.js → NoTasks-8MEigfee.js} +1 -1
  50. package/dist/assets/{NotFound-DThEOiTU.js → NotFound-DVls16cy.js} +1 -1
  51. package/dist/assets/{Pagination-9j7qKAkP.js → Pagination-emXa8hti.js} +1 -1
  52. package/dist/assets/{Player.vue_vue_type_script_setup_true_lang-Dr6DTJzX.js → Player.vue_vue_type_script_setup_true_lang-D6H40eWR.js} +1 -1
  53. package/dist/assets/{Status-C5w4Q0oa.js → Status-BXBFWSlB.js} +1 -1
  54. package/dist/assets/{Subscribe-Cd3WyZRx.js → Subscribe-CBj4qXvn.js} +1 -1
  55. package/dist/assets/{TabSwitcher-CMJn8pSW.js → TabSwitcher-DJhlpLCz.js} +1 -1
  56. package/dist/assets/{Tts-C5YaVQGT.js → Tts-DWibmJah.js} +1 -1
  57. package/dist/assets/{VideoPlayer-B8hJJa4d.js → VideoPlayer-CndFbOvW.js} +1 -1
  58. package/dist/assets/{_Uint8Array-dMcWmqZF.js → _Uint8Array-BzP45VD9.js} +1 -1
  59. package/dist/assets/{_baseClone-DZKAu36s.js → _baseClone-DNu4QAe9.js} +1 -1
  60. package/dist/assets/{_baseIteratee-DulLK_c3.js → _baseIteratee-SNuyx3Mb.js} +1 -1
  61. package/dist/assets/{_initCloneObject-BsCXP6pc.js → _initCloneObject-C0YmUjML.js} +1 -1
  62. package/dist/assets/{add-OK5omDua.js → add-7LCqcsbS.js} +1 -1
  63. package/dist/assets/{all-wallets-CjApRqmW.js → all-wallets-G36_EkcA.js} +1 -1
  64. package/dist/assets/{app-store-C6UG4O4e.js → app-store-CKCanXCF.js} +1 -1
  65. package/dist/assets/{apple-CG_jtKa2.js → apple-BVLw29Kb.js} +1 -1
  66. package/dist/assets/{arrow-bottom-B72K2hir.js → arrow-bottom-DOySie-2.js} +1 -1
  67. package/dist/assets/{arrow-bottom-circle-CWG-67_c.js → arrow-bottom-circle-Dk7fOTaE.js} +1 -1
  68. package/dist/assets/{arrow-left-Dcoju2q0.js → arrow-left-DMMzwmB-.js} +1 -1
  69. package/dist/assets/{arrow-right-Bqsdjmh5.js → arrow-right-CnH2OyTV.js} +1 -1
  70. package/dist/assets/{arrow-top-CQCwB1lL.js → arrow-top-D1G87VUH.js} +1 -1
  71. package/dist/assets/{avatar-CHqoyrR3.js → avatar-DY8Yqfr4.js} +1 -1
  72. package/dist/assets/{bank-CF2CeVja.js → bank-CFYADZ-l.js} +1 -1
  73. package/dist/assets/{basic-BWq3gIe_.js → basic-vZ-Z_DeI.js} +1 -1
  74. package/dist/assets/{browser-CeaXvNbh.js → browser-BO3d__dK.js} +1 -1
  75. package/dist/assets/{byokCredential-BTtsKkzK.js → byokCredential-Cv_PkBLY.js} +1 -1
  76. package/dist/assets/{card-DRrDQ1qB.js → card-BGDoDCmN.js} +1 -1
  77. package/dist/assets/{castArray-mD4k-COw.js → castArray-DtkWeMZp.js} +1 -1
  78. package/dist/assets/{chat-D8tvhnLb.js → chat-Bnq31iMM.js} +1 -1
  79. package/dist/assets/{checkmark-B6Coes2-.js → checkmark-BTiGJB_c.js} +1 -1
  80. package/dist/assets/{checkmark-bold-BBu5bhvD.js → checkmark-bold-raUqwozi.js} +1 -1
  81. package/dist/assets/{chevron-bottom-BPFNICeS.js → chevron-bottom-DF4zZ1Mp.js} +1 -1
  82. package/dist/assets/{chevron-left-BTT7SFx_.js → chevron-left-BbJPVu2o.js} +1 -1
  83. package/dist/assets/{chevron-right-CvI5EckA.js → chevron-right-BYzrOmn4.js} +1 -1
  84. package/dist/assets/{chevron-top-Bo-El6aA.js → chevron-top-gn0BD0wm.js} +1 -1
  85. package/dist/assets/{chrome-store-Blv8sYWJ.js → chrome-store-EaqcehDo.js} +1 -1
  86. package/dist/assets/{clock-VULWe8YY.js → clock-BpSL0EYf.js} +1 -1
  87. package/dist/assets/{close-BqPbfYQc.js → close-BUo5bvku.js} +1 -1
  88. package/dist/assets/{coinPlaceholder-DUvhzWm6.js → coinPlaceholder-BEofWDFV.js} +1 -1
  89. package/dist/assets/{compass-D6-ogJsk.js → compass-3CVdi2WA.js} +1 -1
  90. package/dist/assets/{copy-BW_CcWuQ.js → copy-DQbIeTHc.js} +1 -1
  91. package/dist/assets/{createTaskActions-seQCbTL5.js → createTaskActions-CRQlZc-e.js} +1 -1
  92. package/dist/assets/{cursor-7DwZX_h1.js → cursor-DYxNvfi2.js} +1 -1
  93. package/dist/assets/{cursor-transparent-CFtJpuus.js → cursor-transparent-s-kTHsWZ.js} +1 -1
  94. package/dist/assets/{debounce-fzRpYvTx.js → debounce-je8R6qMJ.js} +1 -1
  95. package/dist/assets/{desktop-BvqKJf7a.js → desktop-Bqetpf7y.js} +1 -1
  96. package/dist/assets/{disconnect-Dh2Q9ng4.js → disconnect-DnOS5CU5.js} +1 -1
  97. package/dist/assets/{discord-BPu8g7y2.js → discord-CHBwtOK2.js} +1 -1
  98. package/dist/assets/{distribution-fRp0VqRq.js → distribution-Dq0NLnfn.js} +1 -1
  99. package/dist/assets/{dropdown-D5iOHOWU.js → dropdown-CPrqYIX4.js} +1 -1
  100. package/dist/assets/{etherscan-DzgI5dld.js → etherscan-EpPx0BTk.js} +1 -1
  101. package/dist/assets/{exclamation-triangle-D-hBr5tG.js → exclamation-triangle-CwBo_Au3.js} +1 -1
  102. package/dist/assets/{extension-BhavRvMH.js → extension-BwxkxE-s.js} +1 -1
  103. package/dist/assets/{external-link-DssR47MQ.js → external-link-6pQnSJ7J.js} +1 -1
  104. package/dist/assets/{facebook-CrLMT2p8.js → facebook-Ct-M3NhB.js} +1 -1
  105. package/dist/assets/{farcaster-MMwu0mgx.js → farcaster-CwmKsGh5.js} +1 -1
  106. package/dist/assets/{filters-BnFMxhRF.js → filters-CEZ6FQ9y.js} +1 -1
  107. package/dist/assets/{github-DRkAaKu8.js → github-Cz8UeVXd.js} +1 -1
  108. package/dist/assets/{google-ibbI_oFU.js → google-CtV2EESl.js} +1 -1
  109. package/dist/assets/{help-circle-CNZ1Z9lT.js → help-circle-BBVzMXpD.js} +1 -1
  110. package/dist/assets/{highlight-DcfXaBeC.js → highlight-Vc3jp7ut.js} +1 -1
  111. package/dist/assets/{id-6UboB5fw.js → id-CmZB-3YY.js} +1 -1
  112. package/dist/assets/{image-MEKK89Qk.js → image-DsUQTZV4.js} +1 -1
  113. package/dist/assets/{index-B12SAORZ.js → index-3EWFx-Vj.js} +1 -1
  114. package/dist/assets/{index-BPUUia6V.js → index-5zXswERx.js} +1 -1
  115. package/dist/assets/{index-fe6CHwgM.js → index-B1wz-hVP.js} +1 -1
  116. package/dist/assets/{index-BO1HJuEm.js → index-B5Zvx0FP.js} +2 -2
  117. package/dist/assets/{index-CBGglJJ1.js → index-B9C3QmXP.js} +1 -1
  118. package/dist/assets/{index-CxCN6BXU.js → index-BB8IU4AC.js} +1 -1
  119. package/dist/assets/{index-CFGOjnwV.js → index-BC0sfYOV.js} +1 -1
  120. package/dist/assets/{index-CKC1QXPY.js → index-BEQGtLAt.js} +1 -1
  121. package/dist/assets/{index-BVkFwr_L.js → index-BIYITIcQ.js} +1 -1
  122. package/dist/assets/{index-CGFTjr4j.js → index-BMODuPUA.js} +1 -1
  123. package/dist/assets/{index-ClLWFUWe.js → index-BMrzZEO4.js} +1 -1
  124. package/dist/assets/{index-BjOiLYfa.js → index-BNbeH26B.js} +1 -1
  125. package/dist/assets/{index-BzL62eR-.js → index-BNhDr0dA.js} +1 -1
  126. package/dist/assets/{index-BVxZYnz6.js → index-BUuCh7Xt.js} +1 -1
  127. package/dist/assets/{index-CX3Kkhe8.js → index-BYllLVr5.js} +3 -3
  128. package/dist/assets/{index-CFGrrV17.js → index-BaG_sRuE.js} +1 -1
  129. package/dist/assets/{index-Db9d2-xc.js → index-BePmogR4.js} +1 -1
  130. package/dist/assets/{index-BWmAvPe7.js → index-BsShQ3H_.js} +1 -1
  131. package/dist/assets/{index-BqV7Dywc.js → index-C4aXUBAg.js} +1 -1
  132. package/dist/assets/{index-TJBAFmkH.js → index-C7McF3Oe.js} +1 -1
  133. package/dist/assets/{index-BSglm0Mh.js → index-C7mr_FlY.js} +1 -1
  134. package/dist/assets/{index-B0tmHD6W.js → index-CBxkbXoj.js} +1 -1
  135. package/dist/assets/{index-BdD8t8Dh.js → index-CCPrigDQ.js} +1 -1
  136. package/dist/assets/{index-BmldmpJ7.js → index-CEKCGr2W.js} +1 -1
  137. package/dist/assets/{index-BUr6thfj.js → index-COgQJANw.js} +1 -1
  138. package/dist/assets/{index-vvF0hkxw.js → index-CP6RgWF7.js} +1 -1
  139. package/dist/assets/{index-DTbR5rAQ.js → index-CPCQrSA8.js} +1 -1
  140. package/dist/assets/{index-_S-XXu4O.js → index-CPOFhPMc.js} +1 -1
  141. package/dist/assets/{index-BfwtSiqw.js → index-CaBmSn29.js} +1 -1
  142. package/dist/assets/{index-tO5MdGXt.js → index-CaGN2hWU.js} +1 -1
  143. package/dist/assets/{index-C944EN_X.js → index-Cb1pouha.js} +1 -1
  144. package/dist/assets/{index-CmJMSATA.js → index-Cd3rYVU2.js} +1 -1
  145. package/dist/assets/{index-wJ-tzrqi.js → index-CdhuTWNw.js} +1 -1
  146. package/dist/assets/{index--96oDgPk.js → index-CmNLAc2g.js} +1 -1
  147. package/dist/assets/{index-D9BkjAHP.js → index-CmoUI70B.js} +1 -1
  148. package/dist/assets/{index-B8AvA8w1.js → index-CpQQa5g-.js} +1 -1
  149. package/dist/assets/{index-DyfY2E-a.js → index-D4Cw4cZb.js} +1 -1
  150. package/dist/assets/{index-Bumd8iDl.js → index-D9l-HbDE.js} +1 -1
  151. package/dist/assets/{index-jB6V2dn5.js → index-DAqgZs_n.js} +1 -1
  152. package/dist/assets/{index-CrIxCDkE.js → index-DAuJS-Gl.js} +1 -1
  153. package/dist/assets/{index-B5MFdHEY.js → index-DCq7rnCm.js} +1 -1
  154. package/dist/assets/{index-CTe-d_6k.js → index-DIv7I-iE.js} +1 -1
  155. package/dist/assets/{index-Dj3DVAp3.js → index-DQMReEJY.js} +1 -1
  156. package/dist/assets/{index-CV3Lmk-s.js → index-DRyHg8zJ.js} +1 -1
  157. package/dist/assets/{index-Brl0omIh.js → index-DXAzTy_q.js} +1 -1
  158. package/dist/assets/{index-CAPDePb0.js → index-DnjDfk8P.js} +1 -1
  159. package/dist/assets/{index-Cw2jO3EU.js → index-DqN39zT1.js} +5 -5
  160. package/dist/assets/{index-C-pA8pQB.js → index-DrjPIAUK.js} +1 -1
  161. package/dist/assets/{index-BCk0BbjD.js → index-DsYuSVnF.js} +1 -1
  162. package/dist/assets/{index-CExb-pgq.js → index-DuHoXoI1.js} +1 -1
  163. package/dist/assets/{index-DG0OeiDu.js → index-DwaK76qa.js} +1 -1
  164. package/dist/assets/{index-Ck2lWPQ8.js → index-GG9QrNv-.js} +1 -1
  165. package/dist/assets/{index-Blt2Omu9.js → index-I01PKHE0.js} +1 -1
  166. package/dist/assets/{index-CzmKNTJj.js → index-MDstgJ-D.js} +1 -1
  167. package/dist/assets/{index-CDRJgwze.js → index-T-uPPTQC.js} +1 -1
  168. package/dist/assets/{index-CaN8MHgO.js → index-ZBbEwsOq.js} +1 -1
  169. package/dist/assets/{index-CkzdWDJ8.js → index-agKHxhiT.js} +1 -1
  170. package/dist/assets/{index-DQOSv-tV.js → index-byRx5hf4.js} +1 -1
  171. package/dist/assets/{index-BZTL3ViV.js → index-cz53lH1U.js} +1 -1
  172. package/dist/assets/{index-D8d_EiGA.js → index-hO1QjxiB.js} +1 -1
  173. package/dist/assets/{index-B_eA3JZ6.js → index-htRHiPfV.js} +1 -1
  174. package/dist/assets/{index-Cp-N3Z9d.js → index-mHdYnQ9c.js} +3 -3
  175. package/dist/assets/{index-BmpASoJL.js → index-x1QLguWA.js} +1 -1
  176. package/dist/assets/{index.browser.esm-B_LBdNY3.js → index.browser.esm-DXPcenqM.js} +1 -1
  177. package/dist/assets/{index.es-C8TbH2BC.js → index.es-DkaS06k9.js} +1 -1
  178. package/dist/assets/{info-B1ux_wtz.js → info-CAUiz2nA.js} +1 -1
  179. package/dist/assets/{info-circle-CgDobzgc.js → info-circle-BDnJ4-n0.js} +1 -1
  180. package/dist/assets/{isEqual-C_dkvvUP.js → isEqual-CTU2BQwF.js} +1 -1
  181. package/dist/assets/{isPlainObject-aPqrRKoh.js → isPlainObject-CT9W9CoU.js} +1 -1
  182. package/dist/assets/{lightbulb-CVjEyGlE.js → lightbulb-BjespwcV.js} +1 -1
  183. package/dist/assets/{mail-DVy_KzuR.js → mail-7ez_cBCf.js} +1 -1
  184. package/dist/assets/{midjourney-Dtb1E59V.js → midjourney-DI_L7ZDA.js} +1 -1
  185. package/dist/assets/{mobile-FjF3Gva8.js → mobile-v1MO4BmR.js} +1 -1
  186. package/dist/assets/{more-wf3KVvjR.js → more-DqNvUfwV.js} +1 -1
  187. package/dist/assets/{network-placeholder-C2sz0QQ2.js → network-placeholder-CKv-KIT1.js} +1 -1
  188. package/dist/assets/{nftPlaceholder-Dkp0hc8o.js → nftPlaceholder-C5VFJoUY.js} +1 -1
  189. package/dist/assets/{off-BWK3JRS0.js → off-aS-KN2-U.js} +1 -1
  190. package/dist/assets/{order-C31aVuXe.js → order-D746WVMu.js} +1 -1
  191. package/dist/assets/{pagination-BCfNKuC9.js → pagination-DMcg_VSJ.js} +1 -1
  192. package/dist/assets/{play-store-DKZ4ZOrX.js → play-store-DVxjmxkl.js} +1 -1
  193. package/dist/assets/{plus-DBGuMj_H.js → plus-DvDujsz5.js} +1 -1
  194. package/dist/assets/{price-DyHd8y4L.js → price-CGbNB5nq.js} +1 -1
  195. package/dist/assets/{producer-0q8zUaf1.js → producer-B-1ty2Co.js} +1 -1
  196. package/dist/assets/{qr-code-C2pCAFPz.js → qr-code-6OEQkJ82.js} +1 -1
  197. package/dist/assets/{recycle-horizontal-C9PvqW6l.js → recycle-horizontal-vq2U7foE.js} +1 -1
  198. package/dist/assets/{refresh-Br0-WzNx.js → refresh-8FgGrezG.js} +1 -1
  199. package/dist/assets/{reown-logo-DRj9OW9L.js → reown-logo-BZSi7Mt5.js} +1 -1
  200. package/dist/assets/{search-DLfv3qqA.js → search-CgZuvIg2.js} +1 -1
  201. package/dist/assets/{secp256k1-kqqZ93NX.js → secp256k1-DeLdxC_a.js} +1 -1
  202. package/dist/assets/{secp256k1-BBUihW2V.js → secp256k1-QHaNdGAb.js} +1 -1
  203. package/dist/assets/{seedream-DHwGPmgg.js → seedream-Da8rFZbK.js} +1 -1
  204. package/dist/assets/{send-B6YM2TSM.js → send-BLMDyJYH.js} +1 -1
  205. package/dist/assets/{service-9zs_eBMA.js → service-BKHTVQDz.js} +1 -1
  206. package/dist/assets/{solana-wallets-BaFEWG8a.js → solana-wallets-ftXUKUR6.js} +2 -2
  207. package/dist/assets/{solana-wallets-vue-OtEurO24.js → solana-wallets-vue-BjCcNz7B.js} +1 -1
  208. package/dist/assets/{suno-VziWUZTH.js → suno-_zBN272v.js} +1 -1
  209. package/dist/assets/{swapHorizontal-DNcXNhot.js → swapHorizontal-CXk_LcWK.js} +1 -1
  210. package/dist/assets/{swapHorizontalBold-DR-cWctN.js → swapHorizontalBold-CIjaQWUW.js} +1 -1
  211. package/dist/assets/{swapHorizontalMedium-BNAr8hX2.js → swapHorizontalMedium-CHr7kZWU.js} +1 -1
  212. package/dist/assets/{swapHorizontalRoundedBold-TbVsceyO.js → swapHorizontalRoundedBold-ebsjc-Vl.js} +1 -1
  213. package/dist/assets/{swapVertical-yaS8u3rQ.js → swapVertical-DtgfRHL1.js} +1 -1
  214. package/dist/assets/{telegram-Be8gzftz.js → telegram-Bq67Z5kN.js} +1 -1
  215. package/dist/assets/{three-dots-BKDwVwYA.js → three-dots-B1gkS2C6.js} +1 -1
  216. package/dist/assets/{twitch-DvKIwM9A.js → twitch-3xrpPCB5.js} +1 -1
  217. package/dist/assets/{twitterIcon-CINC1tDw.js → twitterIcon-BeAi7GHS.js} +1 -1
  218. package/dist/assets/{typescript-Jtl3VF26.js → typescript-Bxp48IAw.js} +1 -1
  219. package/dist/assets/{use-form-item-DLYZ0lkO.js → use-form-item-DE6wXJCu.js} +1 -1
  220. package/dist/assets/validator-ugFyeEgc.js +1 -0
  221. package/dist/assets/{verify-nfw-ePqu.js → verify-DuKaC8bO.js} +1 -1
  222. package/dist/assets/{verify-filled-BdtgzMA7.js → verify-filled-DxfM46KO.js} +1 -1
  223. package/dist/assets/{w3m-modal-Df6DCh_B.js → w3m-modal-DuUmL31d.js} +1 -1
  224. package/dist/assets/{wallet-DDr071PN.js → wallet-CLoU2WLh.js} +1 -1
  225. package/dist/assets/{wallet-placeholder-BQslLVSg.js → wallet-placeholder-BGeeZp15.js} +1 -1
  226. package/dist/assets/{walletconnect-os1bgmov.js → walletconnect-xe1MWi5T.js} +1 -1
  227. package/dist/assets/{warning-circle-Ct3mqoi0.js → warning-circle-DP1b0vPS.js} +1 -1
  228. package/dist/assets/{web-y3KukLeU.js → web-4piV9sh9.js} +1 -1
  229. package/dist/assets/{web-Zfo0kRRf.js → web-DwWD-qIO.js} +1 -1
  230. package/dist/assets/{x-CKSlPvr_.js → x-LUNDbySz.js} +1 -1
  231. package/dist/index.html +1 -1
  232. package/package.json +1 -1
  233. package/dist/assets/Navigator-FCc6lIXW.css +0 -1
  234. package/dist/assets/validator-Dc1F-Mud.js +0 -1
@@ -1 +1 @@
1
- import{F as C}from"./index.es-C8TbH2BC.js";import{E as P}from"./index-BVkFwr_L.js";import{E as L}from"./index-BSglm0Mh.js";import{d as v,H as i,E as r,z as A,C as s,y as c,D as n,q as o,F as a,I as _,O as I,N as T,x as S,Q as E,c as U,J as $}from"./vendor-vue-NSDaktjZ.js";import{H as b,bp as D,cs as z,bg as B,o as M,S as V,ct as O}from"./index-CX3Kkhe8.js";import{p as j}from"./pasteUploadMixin-BurWbGNQ.js";import{I as q,S as F,l as N}from"./pagination-BCfNKuC9.js";import{I as H}from"./ImagePreview-BKqMFwxZ.js";import{E as J}from"./index-D8d_EiGA.js";import{E as w}from"./index-CBGglJJ1.js";import{a as Q,E as W}from"./index-CkzdWDJ8.js";import{E as G}from"./index-DQOSv-tV.js";import{E as K,a as X}from"./index-ClLWFUWe.js";import{b as Y,a as Z}from"./errorCode-Cqj9Td_Z.js";import{A as x}from"./Status-C5w4Q0oa.js";import{C as ee}from"./CopyToClipboard-DszAErjC.js";import{A as se}from"./ApiCodeButton-CkgmddPY.js";import{E as te}from"./index-CTe-d_6k.js";import{E as oe,a as ae}from"./index-TJBAFmkH.js";import"./use-form-item-DLYZ0lkO.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-CKC1QXPY.js";import"./index-B12SAORZ.js";import"./typescript-Jtl3VF26.js";import"./highlight-DcfXaBeC.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-B0tmHD6W.js";import"./_baseClone-DZKAu36s.js";import"./_Uint8Array-dMcWmqZF.js";import"./_initCloneObject-BsCXP6pc.js";import"./isEqual-C_dkvvUP.js";import"./debounce-fzRpYvTx.js";import"./index-tO5MdGXt.js";import"./strings-beZM2Y-f.js";import"./isPlainObject-aPqrRKoh.js";const ne=v({name:"LayoutHeadshots",components:{ElDrawer:L,ElButton:P,FontAwesomeIcon:C},data(){return{drawer:!1}}}),ie={class:"main flex flex-row flex-1"},le={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},re={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function ce(e,t,u,f,k,y){const d=n("font-awesome-icon"),g=n("el-button"),p=n("el-drawer");return o(),i("div",ie,[r("div",le,[A(e.$slots,"config",{},void 0,!0)]),r("div",re,[A(e.$slots,"result",{},void 0,!0)]),s(g,{circle:"",class:"menu",onClick:t[0]||(t[0]=l=>e.drawer=!0)},{default:c(()=>[s(d,{icon:"fa-solid fa-gear"})]),_:1}),s(p,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=l=>e.drawer=l),"with-header":!1,size:"340px",class:"drawer"},{default:c(()=>[A(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const de=b(ne,[["render",ce],["__scopeId","data-v-ada6b2d1"]]),pe=v({name:"ImageUrlsInput",components:{ElUpload:J,ElButton:P,InfoIcon:q,ImagePreview:H,FontAwesomeIcon:C},mixins:[j],data(){return{fileList:[],uploadUrl:D()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.headshots?.config?.image_urls},set(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})}}},mounted(){this.value||(this.value=void 0),this.onSetImageUrls()},methods:{onExceed(){w.warning(this.$t("headshots.message.uploadImageExceed"))},onError(){w.error(this.$t("headshots.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})},async onSuccess(){this.onSetImageUrls()}}}),me={class:"field"},ue={class:"title font-bold"},he={class:"upload-wrapper"};function fe(e,t,u,f,k,y){const d=n("image-preview"),g=n("font-awesome-icon"),p=n("el-button"),l=n("el-upload"),m=n("info-icon");return o(),i("div",me,[r("h2",ue,a(e.$t("headshots.name.endImageUrls")),1),r("div",he,[s(l,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=h=>e.fileList=h),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value upload-wrapper",limit:2,multiple:!0,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:h})=>[s(d,{url:h.url||h.response?.file_url,name:h.name,percentage:h.percentage,onRemove:R=>e.fileList.splice(e.fileList.indexOf(h),1)},null,8,["url","name","percentage","onRemove"])]),default:c(()=>[s(p,{size:"small",type:"primary",round:""},{default:c(()=>[s(g,{icon:"fa-solid fa-upload",class:"mr-1"}),_(" "+a(e.$t("headshots.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])]),s(m,{content:e.$t("headshots.description.endImageUrls"),class:"info"},null,8,["content"])])}const ge=b(pe,[["render",fe],["__scopeId","data-v-ca56051e"]]),_e="fast",$e=v({name:"ModeSelector",components:{ElRadioButton:W,ElRadioGroup:Q},data(){return{options:[{label:this.$t("headshots.button.fast"),value:"fast"},{label:this.$t("headshots.button.relax"),value:"relax"}]}},computed:{value:{get(){return this.$store.state.headshots.config?.mode},set(e){console.debug("set mode",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots.config,mode:e})}}},mounted(){this.value||(this.value=_e)}}),ve={class:"field"},be={class:"title font-bold"};function ke(e,t,u,f,k,y){const d=n("el-radio-button"),g=n("el-radio-group");return o(),i("div",ve,[r("h2",be,a(e.$t("headshots.name.mode")),1),s(g,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"mode"},{default:c(()=>[(o(!0),i(I,null,T(e.options,p=>(o(),S(d,{key:p.value,label:p.value},{default:c(()=>[_(a(p.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])}const ye=b($e,[["render",ke],["__scopeId","data-v-e7702494"]]),we=v({name:"StylizeSelector",components:{ElTabs:X,ElTabPane:K,ElImage:G},data(){return{tab:"styles",value:"",elements:{styles:{displayName:this.$t("headshots.styleCategory.styles"),items:[{image:"https://static.aipedias.com/aicamera/common/20241008/20241008202314260779439.png",label:this.$t("headshots.styleTag.malePportrait"),value:"male_portrait"},{image:"https://static.aipedias.com/aicamera/common/20241008/202410082022241e9755548.png",label:this.$t("headshots.styleTag.malePportrait2"),value:"male_portrait2"},{image:"https://static.aipedias.com/aicamera/common/20241101/20241101170130d78f66521.png",label:this.$t("headshots.styleTag.kindergarten"),value:"kindergarten"},{image:"https://static.aipedias.com/aicamera/common/20240923/20240923123233accf60398.webp",label:this.$t("headshots.styleTag.logoTshirt"),value:"logo_tshirt"},{image:"https://static.aipedias.com/aicamera/common/20241025/202410252012329472d0656.jpg",label:this.$t("headshots.styleTag.wedding"),value:"wedding"},{image:"https://static.aipedias.com/aicamera/common/20240915/20240915145045254931400.webp",label:this.$t("headshots.styleTag.businessPphoto"),value:"business_photo"},{image:"https://static.aipedias.com/aicamera/common/20240810/20240810194526040341795.jpg",label:this.$t("headshots.styleTag.bobSuit"),value:"bob_suit"},{image:"https://static.aipedias.com/aicamera/common/20240717/20240717152654e0b348173.webp",label:this.$t("headshots.styleTag.femalePortrait"),value:"female_portrait"}]}}}},watch:{value(e){console.debug("set template",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:e})}},mounted(){this.value||(this.value=""),console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})},methods:{onToggle(e){this.value===e?this.value="":this.value=e,console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})}}}),Ie={class:"field"},Te=["onClick"],Ee={class:"name"};function Se(e,t,u,f,k,y){const d=n("el-image"),g=n("el-tab-pane"),p=n("el-tabs");return o(),i("div",Ie,[s(p,{modelValue:e.tab,"onUpdate:modelValue":t[0]||(t[0]=l=>e.tab=l)},{default:c(()=>[(o(!0),i(I,null,T(e.elements,(l,m)=>(o(),S(g,{key:m,label:l.displayName,name:m,class:"pane"},{default:c(()=>[(o(!0),i(I,null,T(l.items,(h,R)=>(o(),i("div",{key:R,class:E({item:!0,active:e.value===h.value}),onClick:Is=>e.onToggle(h.value)},[s(d,{src:h.image,fit:"fill",class:"preview"},null,8,["src"]),r("span",Ee,a(h.label),1)],10,Te))),128))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])}const Ve=b(we,[["render",Se],["__scopeId","data-v-be4bd25d"]]),Ce=v({name:"PresetPanel",components:{ModeSelector:ye,ImageUrlsInput:ge,ElButton:P,FontAwesomeIcon:C,ElementsSelector:Ve},emits:["generate"],computed:{config(){return this.$store.state.headshots?.config}},methods:{onGenerate(){this.$emit("generate")}}}),Ae={class:"panel"},Pe={class:"config"},Re={class:"actions"};function Ge(e,t,u,f,k,y){const d=n("elements-selector"),g=n("mode-selector"),p=n("image-urls-input"),l=n("font-awesome-icon"),m=n("el-button");return o(),i("div",Ae,[r("div",Pe,[s(d,{class:"mb-4"}),s(g,{class:"mb-4"}),s(p,{class:"mb-4"}),r("div",Re,[s(m,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[s(l,{icon:"fa-solid fa-magic",class:"mr-2"}),_(" "+a(e.$t("headshots.button.generate")),1)]),_:1},8,["onClick"])])])])}const Le=b(Ce,[["render",Ge],["__scopeId","data-v-848739f6"]]),Ue=v({name:"ImageGallery",props:{modelValue:{type:Object,required:!0}},setup(e){return{images:U(()=>e.modelValue?.response?.data?.slice(0,2)||[]),viewImage:f=>{window.open(f,"_blank")}}}}),De={class:"image-gallery"},ze=["src"],Be=["onClick"];function Me(e,t,u,f,k,y){return o(),i("div",De,[(o(!0),i(I,null,T(e.images,(d,g)=>(o(),i("div",{key:g,class:"image-container"},[r("img",{src:d.image_url,alt:"Image"},null,8,ze),d.image_url?(o(),i("button",{key:0,class:"view-button",onClick:p=>e.viewImage(d.image_url)},a(e.$t("headshots.button.viewImage")),9,Be)):$("",!0)]))),128))])}const Oe=b(Ue,[["render",Me],["__scopeId","data-v-42f0a7be"]]),je=v({name:"TaskPreview",components:{ElImage:G,CopyToClipboard:ee,FontAwesomeIcon:C,ElAlert:te,ImageGallery:Oe,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.headshots?.application},config(){return this.$store.state.headshots?.config}},methods:{onDownload(e,t){e.stopPropagation(),console.log("on download"),window.open(t,"_blank")},onReload(e){const t=e.target,u=new URL(t.src),f=u.searchParams.get("retry");if(!f)u.searchParams.set("retry","1");else if(parseInt(f)<2)u.searchParams.set("retry",(parseInt(f)+1).toString());else return;t.src=u.toString()},onOpenVideo(e){window.open(e,"_blank")}}}),qe={class:"preview"},Fe={class:"left"},Ne={class:"main"},He={class:"bot"},Je={class:"datetime"},Qe={class:"info"},We={key:0,class:"prompt mt-2"},Ke={key:0},Xe={key:1},Ye={key:0,class:E({content:!0,failed:!0})},Ze={class:"image-wrapper"},xe={class:E({operations:!0,"mt-2":!0,"mb-2":!0})},es={class:"description"},ss={key:0,class:"description"},ts={key:1,class:E({content:!0})},os={class:"description"},as={class:"description"},ns={key:0,class:"description"},is={class:"description"},ls={key:2,class:E({content:!0})},rs={class:"description"},cs={key:3,class:E({content:!0})},ds={class:"description"};function ps(e,t,u,f,k,y){const d=n("el-image"),g=n("image-gallery"),p=n("api-code-button"),l=n("font-awesome-icon"),m=n("copy-to-clipboard"),h=n("el-alert");return o(),i("div",qe,[r("div",Fe,[s(d,{src:"https://cdn.acedata.cloud/isxyfw.png",class:"avatar"})]),r("div",Ne,[r("div",He,[_(a(e.$t("headshots.name.headshotsBot"))+" ",1),r("span",Je,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Qe,[e.modelValue?.request?.template?(o(),i("p",We,[_(a(e.modelValue?.request?.template)+" ",1),e.modelValue?.response?$("",!0):(o(),i("span",Ke," - ("+a(e.$t("headshots.status.pending"))+") ",1)),e.modelValue?.response?.status==="unknown"?(o(),i("span",Xe," - ("+a(e.$t("headshots.status.processing"))+") ",1)):$("",!0)])):$("",!0)]),e.modelValue?.response?.success===!0?(o(),i("div",Ye,[r("div",Ze,[s(g,{"model-value":e.modelValue},null,8,["model-value"])]),r("div",xe,[s(p,{path:"/headshots/images",body:e.modelValue?.request},null,8,["body"])]),s(h,{closable:!1,class:"mt-2 success"},{default:c(()=>[r("p",es,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(o(),i("p",ss,[s(l,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("headshots.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0)]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(o(),i("div",ts,[s(h,{closable:!1,class:"failure"},{template:c(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failure")),1)]),default:c(()=>[r("p",os,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),r("p",as,[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),s(m,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(o(),i("p",ns,[s(l,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("headshots.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0),r("p",is,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+a(e.$t("headshots.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?$("",!0):(o(),i("div",ls,[s(h,{closable:!1,class:"info"},{template:c(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failure")),1)]),default:c(()=>[r("p",rs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])),e.modelValue?.response?.status==="unknown"?(o(),i("div",cs,[s(h,{closable:!1,class:"info"},{template:c(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failure")),1)]),default:c(()=>[r("p",ds,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0)])])}const ms=b(je,[["render",ps],["__scopeId","data-v-2a8bf9e8"]]),us=v({name:"RecentPanel",components:{TaskPreview:ms,ElSkeleton:ae,ElSkeletonItem:oe,ScrollList:F},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.headshots?.tasks,items:this.$store.state.headshots?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),hs={key:0,class:"tasks"},fs={class:"left"},gs={class:"main"},_s={key:1,class:"tasks"},$s={key:2,class:"description"};function vs(e,t,u,f,k,y){const d=n("el-skeleton-item"),g=n("el-skeleton"),p=n("task-preview"),l=n("scroll-list");return o(),S(l,{ref:"scrollList",class:"panel recent",loading:e.loading,onReachTop:t[0]||(t[0]=m=>e.$emit("reach-top"))},{default:c(()=>[e.tasks?.items===void 0?(o(),i("div",hs,[(o(),i(I,null,T(3,m=>r("div",{key:m,class:"task placeholder"},[r("div",fs,[s(g,{animated:""},{template:c(()=>[s(d,{variant:"image",class:"avatar"})]),_:1})]),r("div",gs,[s(g,{animated:""},{template:c(()=>[s(d,{variant:"p",class:"title"}),s(d,{variant:"image",class:"icon"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(o(),i("div",_s,[(o(!0),i(I,null,T(e.tasks?.items,(m,h)=>(o(),S(p,{key:h,"model-value":m,class:"preview"},null,8,["model-value"]))),128))])):$("",!0),e.tasks?.items?.length===0?(o(),i("p",$s,a(e.$t("headshots.message.noTasks")),1)):$("",!0)]),_:1},8,["loading"])}const bs=b(us,[["render",vs],["__scopeId","data-v-ffd55c16"]]),ks=O("headshots"),ys=v({name:"HeadshotsIndex",components:{ConfigPanel:Le,Layout:de,ApplicationStatus:x,RecentPanel:bs},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.headshots?.status?.getApplications===V.Request},tasksLoading(){return this.$store.state.headshots?.status?.getTasks===V.Request||this.fetchingTasks},service(){return this.$store.state.headshots.service},credential(){return this.$store.state.headshots.credential},config(){return this.$store.state.headshots.config},initializing(){return this.$store.state.headshots.status.getApplications===V.Request},needApply(){return this.$store.state.headshots.status.getApplications===V.Success&&!this.application},application(){return this.$store.state.headshots.application},applications(){return this.$store.state.headshots.applications},tasks(){return this.$store.state.headshots.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await N({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("headshots/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("headshots/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},onApply(){M.create({application:this.application}).then(({data:e})=>{this.application=e,w.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Z&&w.error(this.$t("application.message.alreadyApplied"))})},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:u,createdAtMax:f}=e||{};console.debug("limit",t,"createdAtMin",u,"createdAtMax",f),this.fetchingTasks=!0;try{await this.$store.dispatch("headshots/getTasks",{limit:t,createdAtMin:u,createdAtMax:f})}finally{this.fetchingTasks=!1}},async onGeneratePicture(){const e={...this.config,callback_url:ks},t=this.credential?.token;if(!t){console.error("no token specified");return}w.info(this.$t("headshots.message.startingTask")),z("headshots",B.generate(e,{token:t})).then(()=>{w.success(this.$t("headshots.message.startTaskSuccess")),this.$store.commit("headshots/setConfig",{config:void 0})}).catch(u=>{u?.response?.data?.error?.code===Y?w.error(this.$t("headshots.message.usedUp")):w.error(this.$t("headshots.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function ws(e,t,u,f,k,y){const d=n("config-panel"),g=n("application-status"),p=n("recent-panel"),l=n("layout");return o(),S(l,null,{config:c(()=>[s(d,{onGenerate:e.onGeneratePicture},null,8,["onGenerate"])]),result:c(()=>[s(g,{initializing:e.initializing,application:e.application,applications:e.applications,service:e.service,"need-apply":e.needApply,class:"mb-4",onRefresh:e.onGetApplication,onSelect:t[0]||(t[0]=m=>e.$store.dispatch("headshots/setApplication",m))},null,8,["initializing","application","applications","service","need-apply","onRefresh"]),s(p,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const dt=b(ys,[["render",ws],["__scopeId","data-v-0af228d8"]]);export{dt as default};
1
+ import{F as C}from"./index.es-DkaS06k9.js";import{E as P}from"./index-BIYITIcQ.js";import{E as L}from"./index-C7mr_FlY.js";import{d as v,H as i,E as r,z as A,C as s,y as c,D as n,q as o,F as a,I as _,O as I,N as T,x as S,Q as E,c as U,J as $}from"./vendor-vue-NSDaktjZ.js";import{H as b,bp as D,cs as z,bg as B,o as M,S as V,ct as O}from"./index-BYllLVr5.js";import{p as j}from"./pasteUploadMixin-BurWbGNQ.js";import{I as q,S as F,l as N}from"./pagination-DMcg_VSJ.js";import{I as H}from"./ImagePreview-EvK72jMd.js";import{E as J}from"./index-hO1QjxiB.js";import{E as w}from"./index-B9C3QmXP.js";import{a as Q,E as W}from"./index-agKHxhiT.js";import{E as G}from"./index-byRx5hf4.js";import{E as K,a as X}from"./index-BMrzZEO4.js";import{b as Y,a as Z}from"./errorCode-Cqj9Td_Z.js";import{A as x}from"./Status-BXBFWSlB.js";import{C as ee}from"./CopyToClipboard-DYhphNXQ.js";import{A as se}from"./ApiCodeButton-CkYl1m8R.js";import{E as te}from"./index-DIv7I-iE.js";import{E as oe,a as ae}from"./index-C7McF3Oe.js";import"./use-form-item-DE6wXJCu.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-BEQGtLAt.js";import"./index-3EWFx-Vj.js";import"./typescript-Bxp48IAw.js";import"./highlight-Vc3jp7ut.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-CBxkbXoj.js";import"./_baseClone-DNu4QAe9.js";import"./_Uint8Array-BzP45VD9.js";import"./_initCloneObject-C0YmUjML.js";import"./isEqual-CTU2BQwF.js";import"./debounce-je8R6qMJ.js";import"./index-CaGN2hWU.js";import"./strings-beZM2Y-f.js";import"./isPlainObject-CT9W9CoU.js";const ne=v({name:"LayoutHeadshots",components:{ElDrawer:L,ElButton:P,FontAwesomeIcon:C},data(){return{drawer:!1}}}),ie={class:"main flex flex-row flex-1"},le={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},re={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function ce(e,t,u,f,k,y){const d=n("font-awesome-icon"),g=n("el-button"),p=n("el-drawer");return o(),i("div",ie,[r("div",le,[A(e.$slots,"config",{},void 0,!0)]),r("div",re,[A(e.$slots,"result",{},void 0,!0)]),s(g,{circle:"",class:"menu",onClick:t[0]||(t[0]=l=>e.drawer=!0)},{default:c(()=>[s(d,{icon:"fa-solid fa-gear"})]),_:1}),s(p,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=l=>e.drawer=l),"with-header":!1,size:"340px",class:"drawer"},{default:c(()=>[A(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const de=b(ne,[["render",ce],["__scopeId","data-v-ada6b2d1"]]),pe=v({name:"ImageUrlsInput",components:{ElUpload:J,ElButton:P,InfoIcon:q,ImagePreview:H,FontAwesomeIcon:C},mixins:[j],data(){return{fileList:[],uploadUrl:D()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.headshots?.config?.image_urls},set(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})}}},mounted(){this.value||(this.value=void 0),this.onSetImageUrls()},methods:{onExceed(){w.warning(this.$t("headshots.message.uploadImageExceed"))},onError(){w.error(this.$t("headshots.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})},async onSuccess(){this.onSetImageUrls()}}}),me={class:"field"},ue={class:"title font-bold"},he={class:"upload-wrapper"};function fe(e,t,u,f,k,y){const d=n("image-preview"),g=n("font-awesome-icon"),p=n("el-button"),l=n("el-upload"),m=n("info-icon");return o(),i("div",me,[r("h2",ue,a(e.$t("headshots.name.endImageUrls")),1),r("div",he,[s(l,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=h=>e.fileList=h),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value upload-wrapper",limit:2,multiple:!0,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:h})=>[s(d,{url:h.url||h.response?.file_url,name:h.name,percentage:h.percentage,onRemove:R=>e.fileList.splice(e.fileList.indexOf(h),1)},null,8,["url","name","percentage","onRemove"])]),default:c(()=>[s(p,{size:"small",type:"primary",round:""},{default:c(()=>[s(g,{icon:"fa-solid fa-upload",class:"mr-1"}),_(" "+a(e.$t("headshots.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])]),s(m,{content:e.$t("headshots.description.endImageUrls"),class:"info"},null,8,["content"])])}const ge=b(pe,[["render",fe],["__scopeId","data-v-ca56051e"]]),_e="fast",$e=v({name:"ModeSelector",components:{ElRadioButton:W,ElRadioGroup:Q},data(){return{options:[{label:this.$t("headshots.button.fast"),value:"fast"},{label:this.$t("headshots.button.relax"),value:"relax"}]}},computed:{value:{get(){return this.$store.state.headshots.config?.mode},set(e){console.debug("set mode",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots.config,mode:e})}}},mounted(){this.value||(this.value=_e)}}),ve={class:"field"},be={class:"title font-bold"};function ke(e,t,u,f,k,y){const d=n("el-radio-button"),g=n("el-radio-group");return o(),i("div",ve,[r("h2",be,a(e.$t("headshots.name.mode")),1),s(g,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"mode"},{default:c(()=>[(o(!0),i(I,null,T(e.options,p=>(o(),S(d,{key:p.value,label:p.value},{default:c(()=>[_(a(p.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])}const ye=b($e,[["render",ke],["__scopeId","data-v-e7702494"]]),we=v({name:"StylizeSelector",components:{ElTabs:X,ElTabPane:K,ElImage:G},data(){return{tab:"styles",value:"",elements:{styles:{displayName:this.$t("headshots.styleCategory.styles"),items:[{image:"https://static.aipedias.com/aicamera/common/20241008/20241008202314260779439.png",label:this.$t("headshots.styleTag.malePportrait"),value:"male_portrait"},{image:"https://static.aipedias.com/aicamera/common/20241008/202410082022241e9755548.png",label:this.$t("headshots.styleTag.malePportrait2"),value:"male_portrait2"},{image:"https://static.aipedias.com/aicamera/common/20241101/20241101170130d78f66521.png",label:this.$t("headshots.styleTag.kindergarten"),value:"kindergarten"},{image:"https://static.aipedias.com/aicamera/common/20240923/20240923123233accf60398.webp",label:this.$t("headshots.styleTag.logoTshirt"),value:"logo_tshirt"},{image:"https://static.aipedias.com/aicamera/common/20241025/202410252012329472d0656.jpg",label:this.$t("headshots.styleTag.wedding"),value:"wedding"},{image:"https://static.aipedias.com/aicamera/common/20240915/20240915145045254931400.webp",label:this.$t("headshots.styleTag.businessPphoto"),value:"business_photo"},{image:"https://static.aipedias.com/aicamera/common/20240810/20240810194526040341795.jpg",label:this.$t("headshots.styleTag.bobSuit"),value:"bob_suit"},{image:"https://static.aipedias.com/aicamera/common/20240717/20240717152654e0b348173.webp",label:this.$t("headshots.styleTag.femalePortrait"),value:"female_portrait"}]}}}},watch:{value(e){console.debug("set template",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:e})}},mounted(){this.value||(this.value=""),console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})},methods:{onToggle(e){this.value===e?this.value="":this.value=e,console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})}}}),Ie={class:"field"},Te=["onClick"],Ee={class:"name"};function Se(e,t,u,f,k,y){const d=n("el-image"),g=n("el-tab-pane"),p=n("el-tabs");return o(),i("div",Ie,[s(p,{modelValue:e.tab,"onUpdate:modelValue":t[0]||(t[0]=l=>e.tab=l)},{default:c(()=>[(o(!0),i(I,null,T(e.elements,(l,m)=>(o(),S(g,{key:m,label:l.displayName,name:m,class:"pane"},{default:c(()=>[(o(!0),i(I,null,T(l.items,(h,R)=>(o(),i("div",{key:R,class:E({item:!0,active:e.value===h.value}),onClick:Is=>e.onToggle(h.value)},[s(d,{src:h.image,fit:"fill",class:"preview"},null,8,["src"]),r("span",Ee,a(h.label),1)],10,Te))),128))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])}const Ve=b(we,[["render",Se],["__scopeId","data-v-be4bd25d"]]),Ce=v({name:"PresetPanel",components:{ModeSelector:ye,ImageUrlsInput:ge,ElButton:P,FontAwesomeIcon:C,ElementsSelector:Ve},emits:["generate"],computed:{config(){return this.$store.state.headshots?.config}},methods:{onGenerate(){this.$emit("generate")}}}),Ae={class:"panel"},Pe={class:"config"},Re={class:"actions"};function Ge(e,t,u,f,k,y){const d=n("elements-selector"),g=n("mode-selector"),p=n("image-urls-input"),l=n("font-awesome-icon"),m=n("el-button");return o(),i("div",Ae,[r("div",Pe,[s(d,{class:"mb-4"}),s(g,{class:"mb-4"}),s(p,{class:"mb-4"}),r("div",Re,[s(m,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[s(l,{icon:"fa-solid fa-magic",class:"mr-2"}),_(" "+a(e.$t("headshots.button.generate")),1)]),_:1},8,["onClick"])])])])}const Le=b(Ce,[["render",Ge],["__scopeId","data-v-848739f6"]]),Ue=v({name:"ImageGallery",props:{modelValue:{type:Object,required:!0}},setup(e){return{images:U(()=>e.modelValue?.response?.data?.slice(0,2)||[]),viewImage:f=>{window.open(f,"_blank")}}}}),De={class:"image-gallery"},ze=["src"],Be=["onClick"];function Me(e,t,u,f,k,y){return o(),i("div",De,[(o(!0),i(I,null,T(e.images,(d,g)=>(o(),i("div",{key:g,class:"image-container"},[r("img",{src:d.image_url,alt:"Image"},null,8,ze),d.image_url?(o(),i("button",{key:0,class:"view-button",onClick:p=>e.viewImage(d.image_url)},a(e.$t("headshots.button.viewImage")),9,Be)):$("",!0)]))),128))])}const Oe=b(Ue,[["render",Me],["__scopeId","data-v-42f0a7be"]]),je=v({name:"TaskPreview",components:{ElImage:G,CopyToClipboard:ee,FontAwesomeIcon:C,ElAlert:te,ImageGallery:Oe,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.headshots?.application},config(){return this.$store.state.headshots?.config}},methods:{onDownload(e,t){e.stopPropagation(),console.log("on download"),window.open(t,"_blank")},onReload(e){const t=e.target,u=new URL(t.src),f=u.searchParams.get("retry");if(!f)u.searchParams.set("retry","1");else if(parseInt(f)<2)u.searchParams.set("retry",(parseInt(f)+1).toString());else return;t.src=u.toString()},onOpenVideo(e){window.open(e,"_blank")}}}),qe={class:"preview"},Fe={class:"left"},Ne={class:"main"},He={class:"bot"},Je={class:"datetime"},Qe={class:"info"},We={key:0,class:"prompt mt-2"},Ke={key:0},Xe={key:1},Ye={key:0,class:E({content:!0,failed:!0})},Ze={class:"image-wrapper"},xe={class:E({operations:!0,"mt-2":!0,"mb-2":!0})},es={class:"description"},ss={key:0,class:"description"},ts={key:1,class:E({content:!0})},os={class:"description"},as={class:"description"},ns={key:0,class:"description"},is={class:"description"},ls={key:2,class:E({content:!0})},rs={class:"description"},cs={key:3,class:E({content:!0})},ds={class:"description"};function ps(e,t,u,f,k,y){const d=n("el-image"),g=n("image-gallery"),p=n("api-code-button"),l=n("font-awesome-icon"),m=n("copy-to-clipboard"),h=n("el-alert");return o(),i("div",qe,[r("div",Fe,[s(d,{src:"https://cdn.acedata.cloud/isxyfw.png",class:"avatar"})]),r("div",Ne,[r("div",He,[_(a(e.$t("headshots.name.headshotsBot"))+" ",1),r("span",Je,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Qe,[e.modelValue?.request?.template?(o(),i("p",We,[_(a(e.modelValue?.request?.template)+" ",1),e.modelValue?.response?$("",!0):(o(),i("span",Ke," - ("+a(e.$t("headshots.status.pending"))+") ",1)),e.modelValue?.response?.status==="unknown"?(o(),i("span",Xe," - ("+a(e.$t("headshots.status.processing"))+") ",1)):$("",!0)])):$("",!0)]),e.modelValue?.response?.success===!0?(o(),i("div",Ye,[r("div",Ze,[s(g,{"model-value":e.modelValue},null,8,["model-value"])]),r("div",xe,[s(p,{path:"/headshots/images",body:e.modelValue?.request},null,8,["body"])]),s(h,{closable:!1,class:"mt-2 success"},{default:c(()=>[r("p",es,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(o(),i("p",ss,[s(l,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("headshots.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0)]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(o(),i("div",ts,[s(h,{closable:!1,class:"failure"},{template:c(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failure")),1)]),default:c(()=>[r("p",os,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),r("p",as,[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),s(m,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(o(),i("p",ns,[s(l,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("headshots.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0),r("p",is,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+a(e.$t("headshots.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?$("",!0):(o(),i("div",ls,[s(h,{closable:!1,class:"info"},{template:c(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failure")),1)]),default:c(()=>[r("p",rs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])),e.modelValue?.response?.status==="unknown"?(o(),i("div",cs,[s(h,{closable:!1,class:"info"},{template:c(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("headshots.name.failure")),1)]),default:c(()=>[r("p",ds,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("headshots.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0)])])}const ms=b(je,[["render",ps],["__scopeId","data-v-2a8bf9e8"]]),us=v({name:"RecentPanel",components:{TaskPreview:ms,ElSkeleton:ae,ElSkeletonItem:oe,ScrollList:F},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.headshots?.tasks,items:this.$store.state.headshots?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),hs={key:0,class:"tasks"},fs={class:"left"},gs={class:"main"},_s={key:1,class:"tasks"},$s={key:2,class:"description"};function vs(e,t,u,f,k,y){const d=n("el-skeleton-item"),g=n("el-skeleton"),p=n("task-preview"),l=n("scroll-list");return o(),S(l,{ref:"scrollList",class:"panel recent",loading:e.loading,onReachTop:t[0]||(t[0]=m=>e.$emit("reach-top"))},{default:c(()=>[e.tasks?.items===void 0?(o(),i("div",hs,[(o(),i(I,null,T(3,m=>r("div",{key:m,class:"task placeholder"},[r("div",fs,[s(g,{animated:""},{template:c(()=>[s(d,{variant:"image",class:"avatar"})]),_:1})]),r("div",gs,[s(g,{animated:""},{template:c(()=>[s(d,{variant:"p",class:"title"}),s(d,{variant:"image",class:"icon"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(o(),i("div",_s,[(o(!0),i(I,null,T(e.tasks?.items,(m,h)=>(o(),S(p,{key:h,"model-value":m,class:"preview"},null,8,["model-value"]))),128))])):$("",!0),e.tasks?.items?.length===0?(o(),i("p",$s,a(e.$t("headshots.message.noTasks")),1)):$("",!0)]),_:1},8,["loading"])}const bs=b(us,[["render",vs],["__scopeId","data-v-ffd55c16"]]),ks=O("headshots"),ys=v({name:"HeadshotsIndex",components:{ConfigPanel:Le,Layout:de,ApplicationStatus:x,RecentPanel:bs},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.headshots?.status?.getApplications===V.Request},tasksLoading(){return this.$store.state.headshots?.status?.getTasks===V.Request||this.fetchingTasks},service(){return this.$store.state.headshots.service},credential(){return this.$store.state.headshots.credential},config(){return this.$store.state.headshots.config},initializing(){return this.$store.state.headshots.status.getApplications===V.Request},needApply(){return this.$store.state.headshots.status.getApplications===V.Success&&!this.application},application(){return this.$store.state.headshots.application},applications(){return this.$store.state.headshots.applications},tasks(){return this.$store.state.headshots.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await N({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("headshots/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("headshots/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},onApply(){M.create({application:this.application}).then(({data:e})=>{this.application=e,w.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Z&&w.error(this.$t("application.message.alreadyApplied"))})},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:u,createdAtMax:f}=e||{};console.debug("limit",t,"createdAtMin",u,"createdAtMax",f),this.fetchingTasks=!0;try{await this.$store.dispatch("headshots/getTasks",{limit:t,createdAtMin:u,createdAtMax:f})}finally{this.fetchingTasks=!1}},async onGeneratePicture(){const e={...this.config,callback_url:ks},t=this.credential?.token;if(!t){console.error("no token specified");return}w.info(this.$t("headshots.message.startingTask")),z("headshots",B.generate(e,{token:t})).then(()=>{w.success(this.$t("headshots.message.startTaskSuccess")),this.$store.commit("headshots/setConfig",{config:void 0})}).catch(u=>{u?.response?.data?.error?.code===Y?w.error(this.$t("headshots.message.usedUp")):w.error(this.$t("headshots.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function ws(e,t,u,f,k,y){const d=n("config-panel"),g=n("application-status"),p=n("recent-panel"),l=n("layout");return o(),S(l,null,{config:c(()=>[s(d,{onGenerate:e.onGeneratePicture},null,8,["onGenerate"])]),result:c(()=>[s(g,{initializing:e.initializing,application:e.application,applications:e.applications,service:e.service,"need-apply":e.needApply,class:"mb-4",onRefresh:e.onGetApplication,onSelect:t[0]||(t[0]=m=>e.$store.dispatch("headshots/setApplication",m))},null,8,["initializing","application","applications","service","need-apply","onRefresh"]),s(p,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const dt=b(ys,[["render",ws],["__scopeId","data-v-0af228d8"]]);export{dt as default};
@@ -1 +1 @@
1
- import{F as T}from"./index.es-C8TbH2BC.js";import{E as C}from"./index-BVkFwr_L.js";import{E as j}from"./index-BSglm0Mh.js";import{d as v,H as c,E as l,z as U,C as t,y as f,D as s,q as n,F as a,O as E,N as S,x as w,I as _,J as $,Q as I}from"./vendor-vue-NSDaktjZ.js";import{H as b,bp as F,cs as D,aQ as B,S as A,ct as M}from"./index-CX3Kkhe8.js";import{a as O,b as q,c as N}from"./flux-BDAe6Szo.js";import{E as P,a as G}from"./index-CxCN6BXU.js";import{I as R,S as z,l as H}from"./pagination-BCfNKuC9.js";import{E as X}from"./index-BmldmpJ7.js";import{E as Q}from"./index-wJ-tzrqi.js";import{p as W}from"./pasteUploadMixin-BurWbGNQ.js";import{I as J}from"./ImagePreview-BKqMFwxZ.js";import{E as K}from"./index-D8d_EiGA.js";import{E as V}from"./index-CBGglJJ1.js";import{P as Y,N as Z}from"./NoTasks-CF8uilN4.js";import{C as ee}from"./Consumption-DJb3Zq85.js";import{a as te}from"./price-DyHd8y4L.js";import{b as oe}from"./errorCode-Cqj9Td_Z.js";import{C as se}from"./CopyToClipboard-DszAErjC.js";import{I as ne}from"./ImageWrapper-Dm7-bIgX.js";import{A as ae}from"./ApiCodeButton-CkgmddPY.js";import{E as le}from"./index-CTe-d_6k.js";import{E as re}from"./index-DQOSv-tV.js";import{B as ie}from"./BotPlaceholder-s0833dXM.js";import"./use-form-item-DLYZ0lkO.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-CKC1QXPY.js";import"./index-B12SAORZ.js";import"./typescript-Jtl3VF26.js";import"./index-BPUUia6V.js";import"./strings-beZM2Y-f.js";import"./isEqual-C_dkvvUP.js";import"./_Uint8Array-dMcWmqZF.js";import"./castArray-mD4k-COw.js";import"./index-BfwtSiqw.js";import"./index-tO5MdGXt.js";import"./debounce-fzRpYvTx.js";import"./_baseIteratee-DulLK_c3.js";import"./index-Bumd8iDl.js";import"./highlight-DcfXaBeC.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-Cu41y2Fl.js";import"./index-B0tmHD6W.js";import"./_baseClone-DZKAu36s.js";import"./_initCloneObject-BsCXP6pc.js";import"./index-TJBAFmkH.js";const ce=v({name:"LayoutFlux",components:{ElDrawer:j,ElButton:C,FontAwesomeIcon:T},data(){return{drawer:!1}}}),ue={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},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(e,o,m,p,x,k){const u=s("font-awesome-icon"),d=s("el-button"),r=s("el-drawer");return n(),c("div",ue,[l("div",de,[U(e.$slots,"config",{},void 0,!0)]),l("div",pe,[U(e.$slots,"result",{},void 0,!0)]),t(d,{circle:"",class:"menu",onClick:o[0]||(o[0]=i=>e.drawer=!0)},{default:f(()=>[t(u,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":o[1]||(o[1]=i=>e.drawer=i),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:f(()=>[U(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const fe=b(ce,[["render",me],["__scopeId","data-v-d022364a"]]),_e=v({name:"ModelSelector",components:{ElSelect:G,ElOption:P},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-pro-1.1",label:"flux-pro-1.1"},{value:"flux-pro-1.1-ultra",label:"flux-pro-1.1-ultra"},{value:"flux-kontext-pro",label:"flux-kontext-pro"},{value:"flux-kontext-max",label:"flux-kontext-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||(this.value=O)}}),he={class:"field"},ge={class:"title font-bold"};function $e(e,o,m,p,x,k){const u=s("el-option"),d=s("el-select");return n(),c("div",he,[l("h2",ge,a(e.$t("flux.name.model")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=r=>e.value=r),class:"value",placeholder:e.$t("flux.placeholder.select")},{default:f(()=>[(n(!0),c(E,null,S(e.options,r=>(n(),w(u,{key:r.value,label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ve=b(_e,[["render",$e],["__scopeId","data-v-8df4b8a7"]]),be=v({name:"CountSelector",components:{ElSlider:Q,InfoIcon:R,ElInputNumber:X},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||(this.value=q)}}),xe={class:"flex justify-between"},ke={class:"flex justify-start items-center"},we={class:"text-sm font-bold"},ye={class:"flex justify-end items-center"},Ve={class:"w-full"};function Ee(e,o,m,p,x,k){const u=s("info-icon"),d=s("el-input-number"),r=s("el-slider");return n(),c("div",null,[l("div",xe,[l("div",ke,[l("span",we,a(e.$t("flux.name.numbers")),1),t(u,{content:e.$t("flux.description.numbers")},null,8,["content"])]),l("div",ye,[t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),"controls-position":"right"},null,8,["modelValue"])])]),l("div",Ve,[t(r,{modelValue:e.value,"onUpdate:modelValue":o[1]||(o[1]=i=>e.value=i),min:1,max:4,step:1},null,8,["modelValue"])])])}const Te=b(be,[["render",Ee]]),Se=v({name:"ActionSelector",components:{ElSelect:G,ElOption:P},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||(this.value=N)}}),Ie={class:"field"},Le={class:"title font-bold"};function Ue(e,o,m,p,x,k){const u=s("el-option"),d=s("el-select");return n(),c("div",Ie,[l("h2",Le,a(e.$t("flux.name.task")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=r=>e.value=r),class:"value",placeholder:e.$t("flux.placeholder.select")},{default:f(()=>[(n(!0),c(E,null,S(e.options,r=>(n(),w(u,{key:r.value,label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=b(Se,[["render",Ue],["__scopeId","data-v-81fd05e5"]]),Ae=v({name:"ImageUrlInput",components:{ElUpload:K,ElButton:C,InfoIcon:R,FontAwesomeIcon:T,ImagePreview:J},mixins:[W],emits:["change"],data(){return{fileList:[],uploadUrl:F()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},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"))}}}),Pe={class:"relative"},Ge={class:"flex justify-between"},Re={class:"flex justify-start items-center"},je={class:"text-sm font-bold"};function Fe(e,o,m,p,x,k){const u=s("info-icon"),d=s("image-preview"),r=s("font-awesome-icon"),i=s("el-button"),h=s("el-upload");return n(),c("div",Pe,[l("div",Ge,[l("div",Re,[l("span",je,a(e.$t("flux.name.imageUrl")),1),t(u,{content:e.$t("flux.description.imageUrl")},null,8,["content"])])]),t(h,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":o[0]||(o[0]=g=>e.fileList=g),name:"file",limit:5,class:"upload-wrapper",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",multiple:!0,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,headers:e.headers},{file:f(({file:g})=>[t(d,{url:g.url||g.response?.file_url,name:g.name,percentage:g.percentage,onRemove:y=>e.fileList.splice(e.fileList.indexOf(g),1)},null,8,["url","name","percentage","onRemove"])]),default:f(()=>[t(i,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:f(()=>[t(r,{icon:"fa-solid fa-upload",class:"icon mr-1"}),_(" "+a(e.$t("flux.button.uploadImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","headers"])])}const De=b(Ae,[["render",Fe],["__scopeId","data-v-1b692c6e"]]),Be="",Me=v({name:"PromptInput",components:{PromptTextarea:Y},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||(this.prompt=Be)}});function Oe(e,o,m,p,x,k){const u=s("prompt-textarea");return n(),w(u,{modelValue:e.prompt,"onUpdate:modelValue":o[0]||(o[0]=d=>e.prompt=d),title:e.$t("flux.name.prompt"),info:e.$t("flux.description.prompt"),placeholder:e.$t("flux.placeholder.prompt")},null,8,["modelValue","title","info","placeholder"])}const qe=b(Me,[["render",Oe]]),Ne=v({name:"PresetPanel",components:{ElButton:C,FontAwesomeIcon:T,PromptInput:qe,ModelSelector:ve,CountSelector:Te,Consumption:ee,ActionSelector:Ce,ImageUrlInput:De},emits:["generate"],computed:{config(){return this.$store.state.flux?.config},consumption(){return te(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit("generate")}}}),ze={class:"flex flex-col h-full"},He={class:"flex-1 overflow-y-auto p-5"},Xe={class:"flex flex-col items-center justify-center px-5 pb-5"};function Qe(e,o,m,p,x,k){const u=s("action-selector"),d=s("prompt-input"),r=s("image-url-input"),i=s("model-selector"),h=s("count-selector"),g=s("consumption"),y=s("font-awesome-icon"),L=s("el-button");return n(),c("div",ze,[l("div",He,[t(u,{class:"mb-4"}),t(d,{class:"mb-4"}),e.config?.action==="edits"?(n(),w(r,{key:0,class:"mb-4"})):$("",!0),t(i,{class:"mb-4"}),t(h,{class:"mb-4"})]),l("div",Xe,[t(g,{value:e.consumption,service:e.service},null,8,["value","service"]),t(L,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:f(()=>[t(y,{icon:"fa-solid fa-magic",class:"mr-2"}),_(" "+a(e.$t("flux.button.generate")),1)]),_:1},8,["onClick"])])])}const We=b(Ne,[["render",Qe]]),Je=v({name:"TaskPreview",components:{ElImage:re,CopyToClipboard:se,FontAwesomeIcon:T,ElAlert:le,ImageWrapper:ne,ApiCodeButton:ae},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=[];const o=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(m=>{let p=m;o&&(p.action=o),e.push(p)}),e}},methods:{onDownload(e,o){e.stopPropagation(),console.log("on download"),window.open(o,"_blank")},onOpenImage(e){window.open(e,"_blank")}}}),Ke={class:"preview"},Ye={class:"left"},Ze={class:"main"},et={class:"bot"},tt={class:"datetime"},ot={class:"info"},st={key:0,class:"prompt mt-2"},nt={key:0},at={key:0,class:I({content:!0,failed:!0})},lt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},rt={class:I({operations:!0,"mt-2":!0,"mb-2":!0})},it={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ut={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},dt={key:1,class:I({content:!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"},ft={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},ht={key:2,class:I({content:!0})},gt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function $t(e,o,m,p,x,k){const u=s("el-image"),d=s("image-wrapper"),r=s("api-code-button"),i=s("font-awesome-icon"),h=s("copy-to-clipboard"),g=s("el-alert");return n(),c("div",Ke,[l("div",Ye,[t(u,{src:"https://cdn.acedata.cloud/ogm2oa.png",class:"avatar"})]),l("div",Ze,[l("div",et,[_(a(e.$t("flux.name.fluxBot"))+" ",1),l("span",tt,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),l("div",ot,[e.modelValue?.request?.prompt?(n(),c("p",st,[_(a(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?$("",!0):(n(),c("span",nt," - ("+a(e.$t("flux.status.pending"))+") ",1))])):$("",!0)]),e.modelValue?.response?.success===!0?(n(),c("div",at,[l("div",lt,[(n(!0),c(E,null,S(e.images,(y,L)=>(n(),w(d,{key:L,src:y?.image_url,"raw-src":y?.image_url,"model-value":y},null,8,["src","raw-src","model-value"]))),128))]),l("div",rt,[t(r,{path:"/flux/images",body:e.modelValue?.request},null,8,["body"])]),t(g,{closable:!1,class:"mt-2 success"},{default:f(()=>[l("p",it,[t(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+a(e.$t("flux.name.model"))+": "+a(e.modelValue?.request?.model),1)]),l("p",ct,[t(i,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("flux.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(h,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.elapsed?(n(),c("p",ut,[t(i,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("flux.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0)]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(n(),c("div",dt,[t(g,{closable:!1,class:"failure"},{template:f(()=>[t(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("flux.name.failure")),1)]),default:f(()=>[l("p",pt,[t(i,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("flux.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(h,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),l("p",mt,[t(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),_(" "+a(e.$t("flux.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),t(h,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(n(),c("p",ft,[t(i,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("flux.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0),l("p",_t,[t(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+a(e.$t("flux.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(h,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?$("",!0):(n(),c("div",ht,[t(g,{closable:!1,class:"info"},{template:f(()=>[t(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("flux.name.failure")),1)]),default:f(()=>[l("p",gt,[t(i,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("flux.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(h,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const vt=b(Je,[["render",$t],["__scopeId","data-v-1d352cfe"]]),bt=v({name:"RecentPanel",components:{TaskPreview:vt,BotPlaceholder:ie,NoTasks:Z,ScrollList:z},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?.()}}}),xt={key:0},kt={key:2,class:"w-full h-full flex items-center justify-center"};function wt(e,o,m,p,x,k){const u=s("bot-placeholder"),d=s("task-preview"),r=s("scroll-list"),i=s("no-tasks");return n(),c(E,null,[e.tasks?.items===void 0?(n(),c("div",xt,[t(u)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),w(r,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:o[0]||(o[0]=h=>e.$emit("reach-top"))},{default:f(()=>[(n(!0),c(E,null,S(e.tasks?.items,h=>(n(),w(d,{key:h.id,"model-value":h},null,8,["model-value"]))),128))]),_:1},8,["loading"])):$("",!0),e.tasks?.items?.length===0?(n(),c("div",kt,[t(i)])):$("",!0)],64)}const yt=b(bt,[["render",wt]]),Vt=M("flux"),Et=v({name:"FluxIndex",components:{ConfigPanel:We,Layout:fe,RecentPanel:yt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===A.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===A.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,o){e?.items?.length>o?.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 H({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();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:o=5,createdAtMin:m,createdAtMax:p}=e||{};console.debug("limit",o,"createdAtMin",m,"createdAtMax",p),this.fetchingTasks=!0;try{await this.$store.dispatch("flux/getTasks",{limit:o,createdAtMin:m,createdAtMax:p})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Vt},o=this.credential?.token;if(!o){console.error("no token specified");return}V.info(this.$t("flux.message.startingTask")),D("flux",B.generate(e,{token:o})).then(()=>{V.success(this.$t("flux.message.startTaskSuccess"))}).catch(m=>{const p=m?.response?.data;p?.error?.code===oe?V.error(this.$t("flux.message.usedUp")):V.error(this.$t("flux.message.startTaskFailed")+p?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Tt(e,o,m,p,x,k){const u=s("config-panel"),d=s("recent-panel"),r=s("layout");return n(),w(r,null,{config:f(()=>[t(u,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:f(()=>[t(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Vo=b(Et,[["render",Tt]]);export{Vo as default};
1
+ import{F as T}from"./index.es-DkaS06k9.js";import{E as C}from"./index-BIYITIcQ.js";import{E as j}from"./index-C7mr_FlY.js";import{d as v,H as c,E as l,z as U,C as t,y as f,D as s,q as n,F as a,O as E,N as S,x as w,I as _,J as $,Q as I}from"./vendor-vue-NSDaktjZ.js";import{H as b,bp as F,cs as D,aQ as B,S as A,ct as M}from"./index-BYllLVr5.js";import{a as O,b as q,c as N}from"./flux-BDAe6Szo.js";import{E as P,a as G}from"./index-BB8IU4AC.js";import{I as R,S as z,l as H}from"./pagination-DMcg_VSJ.js";import{E as X}from"./index-CEKCGr2W.js";import{E as Q}from"./index-CdhuTWNw.js";import{p as W}from"./pasteUploadMixin-BurWbGNQ.js";import{I as J}from"./ImagePreview-EvK72jMd.js";import{E as K}from"./index-hO1QjxiB.js";import{E as V}from"./index-B9C3QmXP.js";import{P as Y,N as Z}from"./NoTasks-8MEigfee.js";import{C as ee}from"./Consumption-BHLp19TR.js";import{a as te}from"./price-CGbNB5nq.js";import{b as oe}from"./errorCode-Cqj9Td_Z.js";import{C as se}from"./CopyToClipboard-DYhphNXQ.js";import{I as ne}from"./ImageWrapper-C6NFWtUs.js";import{A as ae}from"./ApiCodeButton-CkYl1m8R.js";import{E as le}from"./index-DIv7I-iE.js";import{E as re}from"./index-byRx5hf4.js";import{B as ie}from"./BotPlaceholder-yR_kBFno.js";import"./use-form-item-DE6wXJCu.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-BEQGtLAt.js";import"./index-3EWFx-Vj.js";import"./typescript-Bxp48IAw.js";import"./index-5zXswERx.js";import"./strings-beZM2Y-f.js";import"./isEqual-CTU2BQwF.js";import"./_Uint8Array-BzP45VD9.js";import"./castArray-DtkWeMZp.js";import"./index-CaBmSn29.js";import"./index-CaGN2hWU.js";import"./debounce-je8R6qMJ.js";import"./_baseIteratee-SNuyx3Mb.js";import"./index-D9l-HbDE.js";import"./highlight-Vc3jp7ut.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-Cu41y2Fl.js";import"./index-CBxkbXoj.js";import"./_baseClone-DNu4QAe9.js";import"./_initCloneObject-C0YmUjML.js";import"./index-C7McF3Oe.js";const ce=v({name:"LayoutFlux",components:{ElDrawer:j,ElButton:C,FontAwesomeIcon:T},data(){return{drawer:!1}}}),ue={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},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(e,o,m,p,x,k){const u=s("font-awesome-icon"),d=s("el-button"),r=s("el-drawer");return n(),c("div",ue,[l("div",de,[U(e.$slots,"config",{},void 0,!0)]),l("div",pe,[U(e.$slots,"result",{},void 0,!0)]),t(d,{circle:"",class:"menu",onClick:o[0]||(o[0]=i=>e.drawer=!0)},{default:f(()=>[t(u,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":o[1]||(o[1]=i=>e.drawer=i),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:f(()=>[U(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const fe=b(ce,[["render",me],["__scopeId","data-v-d022364a"]]),_e=v({name:"ModelSelector",components:{ElSelect:G,ElOption:P},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-pro-1.1",label:"flux-pro-1.1"},{value:"flux-pro-1.1-ultra",label:"flux-pro-1.1-ultra"},{value:"flux-kontext-pro",label:"flux-kontext-pro"},{value:"flux-kontext-max",label:"flux-kontext-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||(this.value=O)}}),he={class:"field"},ge={class:"title font-bold"};function $e(e,o,m,p,x,k){const u=s("el-option"),d=s("el-select");return n(),c("div",he,[l("h2",ge,a(e.$t("flux.name.model")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=r=>e.value=r),class:"value",placeholder:e.$t("flux.placeholder.select")},{default:f(()=>[(n(!0),c(E,null,S(e.options,r=>(n(),w(u,{key:r.value,label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ve=b(_e,[["render",$e],["__scopeId","data-v-8df4b8a7"]]),be=v({name:"CountSelector",components:{ElSlider:Q,InfoIcon:R,ElInputNumber:X},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||(this.value=q)}}),xe={class:"flex justify-between"},ke={class:"flex justify-start items-center"},we={class:"text-sm font-bold"},ye={class:"flex justify-end items-center"},Ve={class:"w-full"};function Ee(e,o,m,p,x,k){const u=s("info-icon"),d=s("el-input-number"),r=s("el-slider");return n(),c("div",null,[l("div",xe,[l("div",ke,[l("span",we,a(e.$t("flux.name.numbers")),1),t(u,{content:e.$t("flux.description.numbers")},null,8,["content"])]),l("div",ye,[t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),"controls-position":"right"},null,8,["modelValue"])])]),l("div",Ve,[t(r,{modelValue:e.value,"onUpdate:modelValue":o[1]||(o[1]=i=>e.value=i),min:1,max:4,step:1},null,8,["modelValue"])])])}const Te=b(be,[["render",Ee]]),Se=v({name:"ActionSelector",components:{ElSelect:G,ElOption:P},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||(this.value=N)}}),Ie={class:"field"},Le={class:"title font-bold"};function Ue(e,o,m,p,x,k){const u=s("el-option"),d=s("el-select");return n(),c("div",Ie,[l("h2",Le,a(e.$t("flux.name.task")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=r=>e.value=r),class:"value",placeholder:e.$t("flux.placeholder.select")},{default:f(()=>[(n(!0),c(E,null,S(e.options,r=>(n(),w(u,{key:r.value,label:r.label,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=b(Se,[["render",Ue],["__scopeId","data-v-81fd05e5"]]),Ae=v({name:"ImageUrlInput",components:{ElUpload:K,ElButton:C,InfoIcon:R,FontAwesomeIcon:T,ImagePreview:J},mixins:[W],emits:["change"],data(){return{fileList:[],uploadUrl:F()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},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"))}}}),Pe={class:"relative"},Ge={class:"flex justify-between"},Re={class:"flex justify-start items-center"},je={class:"text-sm font-bold"};function Fe(e,o,m,p,x,k){const u=s("info-icon"),d=s("image-preview"),r=s("font-awesome-icon"),i=s("el-button"),h=s("el-upload");return n(),c("div",Pe,[l("div",Ge,[l("div",Re,[l("span",je,a(e.$t("flux.name.imageUrl")),1),t(u,{content:e.$t("flux.description.imageUrl")},null,8,["content"])])]),t(h,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":o[0]||(o[0]=g=>e.fileList=g),name:"file",limit:5,class:"upload-wrapper",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",multiple:!0,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,headers:e.headers},{file:f(({file:g})=>[t(d,{url:g.url||g.response?.file_url,name:g.name,percentage:g.percentage,onRemove:y=>e.fileList.splice(e.fileList.indexOf(g),1)},null,8,["url","name","percentage","onRemove"])]),default:f(()=>[t(i,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:f(()=>[t(r,{icon:"fa-solid fa-upload",class:"icon mr-1"}),_(" "+a(e.$t("flux.button.uploadImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","headers"])])}const De=b(Ae,[["render",Fe],["__scopeId","data-v-1b692c6e"]]),Be="",Me=v({name:"PromptInput",components:{PromptTextarea:Y},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||(this.prompt=Be)}});function Oe(e,o,m,p,x,k){const u=s("prompt-textarea");return n(),w(u,{modelValue:e.prompt,"onUpdate:modelValue":o[0]||(o[0]=d=>e.prompt=d),title:e.$t("flux.name.prompt"),info:e.$t("flux.description.prompt"),placeholder:e.$t("flux.placeholder.prompt")},null,8,["modelValue","title","info","placeholder"])}const qe=b(Me,[["render",Oe]]),Ne=v({name:"PresetPanel",components:{ElButton:C,FontAwesomeIcon:T,PromptInput:qe,ModelSelector:ve,CountSelector:Te,Consumption:ee,ActionSelector:Ce,ImageUrlInput:De},emits:["generate"],computed:{config(){return this.$store.state.flux?.config},consumption(){return te(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit("generate")}}}),ze={class:"flex flex-col h-full"},He={class:"flex-1 overflow-y-auto p-5"},Xe={class:"flex flex-col items-center justify-center px-5 pb-5"};function Qe(e,o,m,p,x,k){const u=s("action-selector"),d=s("prompt-input"),r=s("image-url-input"),i=s("model-selector"),h=s("count-selector"),g=s("consumption"),y=s("font-awesome-icon"),L=s("el-button");return n(),c("div",ze,[l("div",He,[t(u,{class:"mb-4"}),t(d,{class:"mb-4"}),e.config?.action==="edits"?(n(),w(r,{key:0,class:"mb-4"})):$("",!0),t(i,{class:"mb-4"}),t(h,{class:"mb-4"})]),l("div",Xe,[t(g,{value:e.consumption,service:e.service},null,8,["value","service"]),t(L,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:f(()=>[t(y,{icon:"fa-solid fa-magic",class:"mr-2"}),_(" "+a(e.$t("flux.button.generate")),1)]),_:1},8,["onClick"])])])}const We=b(Ne,[["render",Qe]]),Je=v({name:"TaskPreview",components:{ElImage:re,CopyToClipboard:se,FontAwesomeIcon:T,ElAlert:le,ImageWrapper:ne,ApiCodeButton:ae},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=[];const o=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(m=>{let p=m;o&&(p.action=o),e.push(p)}),e}},methods:{onDownload(e,o){e.stopPropagation(),console.log("on download"),window.open(o,"_blank")},onOpenImage(e){window.open(e,"_blank")}}}),Ke={class:"preview"},Ye={class:"left"},Ze={class:"main"},et={class:"bot"},tt={class:"datetime"},ot={class:"info"},st={key:0,class:"prompt mt-2"},nt={key:0},at={key:0,class:I({content:!0,failed:!0})},lt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},rt={class:I({operations:!0,"mt-2":!0,"mb-2":!0})},it={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ut={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},dt={key:1,class:I({content:!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"},ft={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},ht={key:2,class:I({content:!0})},gt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function $t(e,o,m,p,x,k){const u=s("el-image"),d=s("image-wrapper"),r=s("api-code-button"),i=s("font-awesome-icon"),h=s("copy-to-clipboard"),g=s("el-alert");return n(),c("div",Ke,[l("div",Ye,[t(u,{src:"https://cdn.acedata.cloud/ogm2oa.png",class:"avatar"})]),l("div",Ze,[l("div",et,[_(a(e.$t("flux.name.fluxBot"))+" ",1),l("span",tt,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),l("div",ot,[e.modelValue?.request?.prompt?(n(),c("p",st,[_(a(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?$("",!0):(n(),c("span",nt," - ("+a(e.$t("flux.status.pending"))+") ",1))])):$("",!0)]),e.modelValue?.response?.success===!0?(n(),c("div",at,[l("div",lt,[(n(!0),c(E,null,S(e.images,(y,L)=>(n(),w(d,{key:L,src:y?.image_url,"raw-src":y?.image_url,"model-value":y},null,8,["src","raw-src","model-value"]))),128))]),l("div",rt,[t(r,{path:"/flux/images",body:e.modelValue?.request},null,8,["body"])]),t(g,{closable:!1,class:"mt-2 success"},{default:f(()=>[l("p",it,[t(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+a(e.$t("flux.name.model"))+": "+a(e.modelValue?.request?.model),1)]),l("p",ct,[t(i,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("flux.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(h,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.elapsed?(n(),c("p",ut,[t(i,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("flux.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0)]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(n(),c("div",dt,[t(g,{closable:!1,class:"failure"},{template:f(()=>[t(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("flux.name.failure")),1)]),default:f(()=>[l("p",pt,[t(i,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("flux.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(h,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),l("p",mt,[t(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),_(" "+a(e.$t("flux.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),t(h,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(n(),c("p",ft,[t(i,{icon:"fa-solid fa-clock",class:"mr-1"}),_(" "+a(e.$t("flux.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):$("",!0),l("p",_t,[t(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+a(e.$t("flux.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(h,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?$("",!0):(n(),c("div",ht,[t(g,{closable:!1,class:"info"},{template:f(()=>[t(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+a(e.$t("flux.name.failure")),1)]),default:f(()=>[l("p",gt,[t(i,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+a(e.$t("flux.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(h,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const vt=b(Je,[["render",$t],["__scopeId","data-v-1d352cfe"]]),bt=v({name:"RecentPanel",components:{TaskPreview:vt,BotPlaceholder:ie,NoTasks:Z,ScrollList:z},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?.()}}}),xt={key:0},kt={key:2,class:"w-full h-full flex items-center justify-center"};function wt(e,o,m,p,x,k){const u=s("bot-placeholder"),d=s("task-preview"),r=s("scroll-list"),i=s("no-tasks");return n(),c(E,null,[e.tasks?.items===void 0?(n(),c("div",xt,[t(u)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),w(r,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:o[0]||(o[0]=h=>e.$emit("reach-top"))},{default:f(()=>[(n(!0),c(E,null,S(e.tasks?.items,h=>(n(),w(d,{key:h.id,"model-value":h},null,8,["model-value"]))),128))]),_:1},8,["loading"])):$("",!0),e.tasks?.items?.length===0?(n(),c("div",kt,[t(i)])):$("",!0)],64)}const yt=b(bt,[["render",wt]]),Vt=M("flux"),Et=v({name:"FluxIndex",components:{ConfigPanel:We,Layout:fe,RecentPanel:yt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===A.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===A.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,o){e?.items?.length>o?.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 H({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();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:o=5,createdAtMin:m,createdAtMax:p}=e||{};console.debug("limit",o,"createdAtMin",m,"createdAtMax",p),this.fetchingTasks=!0;try{await this.$store.dispatch("flux/getTasks",{limit:o,createdAtMin:m,createdAtMax:p})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Vt},o=this.credential?.token;if(!o){console.error("no token specified");return}V.info(this.$t("flux.message.startingTask")),D("flux",B.generate(e,{token:o})).then(()=>{V.success(this.$t("flux.message.startTaskSuccess"))}).catch(m=>{const p=m?.response?.data;p?.error?.code===oe?V.error(this.$t("flux.message.usedUp")):V.error(this.$t("flux.message.startTaskFailed")+p?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Tt(e,o,m,p,x,k){const u=s("config-panel"),d=s("recent-panel"),r=s("layout");return n(),w(r,null,{config:f(()=>[t(u,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:f(()=>[t(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Vo=b(Et,[["render",Tt]]);export{Vo as default};
@@ -1 +1 @@
1
- import{F as R}from"./index.es-C8TbH2BC.js";import{E as S}from"./index-BVkFwr_L.js";import{E as D}from"./index-BSglm0Mh.js";import{d as v,H as r,E as i,z as C,C as t,y as c,D as o,q as s,F as a,O as I,N as U,x as $,I as f,J as p,M,Q as L}from"./vendor-vue-NSDaktjZ.js";import{H as b,bp as O,cs as B,b5 as j,S as P,ct as F}from"./index-CX3Kkhe8.js";import{a as N,b as q}from"./wan-DKq-jYOo.js";import{E as A,a as G}from"./index-CxCN6BXU.js";import{p as z}from"./pasteUploadMixin-BurWbGNQ.js";import{I as W,S as H,l as J}from"./pagination-BCfNKuC9.js";import{I as K}from"./ImagePreview-BKqMFwxZ.js";import{E as Q}from"./index-D8d_EiGA.js";import{E as T}from"./index-CBGglJJ1.js";import{P as X,N as Y}from"./NoTasks-CF8uilN4.js";import{C as Z}from"./Consumption-DJb3Zq85.js";import{a as x}from"./price-DyHd8y4L.js";import{b as ee}from"./errorCode-Cqj9Td_Z.js";import{C as te}from"./CopyToClipboard-DszAErjC.js";import{V as oe}from"./VideoPlayer-B8hJJa4d.js";import{A as se}from"./ApiCodeButton-CkgmddPY.js";import{E as ne}from"./index-CKC1QXPY.js";import{E as ae}from"./index-CTe-d_6k.js";import{E as le}from"./index-DQOSv-tV.js";import{B as re}from"./BotPlaceholder-s0833dXM.js";import"./use-form-item-DLYZ0lkO.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-BPUUia6V.js";import"./typescript-Jtl3VF26.js";import"./index-B12SAORZ.js";import"./strings-beZM2Y-f.js";import"./isEqual-C_dkvvUP.js";import"./_Uint8Array-dMcWmqZF.js";import"./castArray-mD4k-COw.js";import"./index-BfwtSiqw.js";import"./index-tO5MdGXt.js";import"./debounce-fzRpYvTx.js";import"./_baseIteratee-DulLK_c3.js";import"./index-Bumd8iDl.js";import"./highlight-DcfXaBeC.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-B0tmHD6W.js";import"./_baseClone-DZKAu36s.js";import"./_initCloneObject-BsCXP6pc.js";import"./vue-plyr-BO2nlN4c.js";import"./index-TJBAFmkH.js";const ie=v({name:"LayoutWan",components:{ElDrawer:D,ElButton:S,FontAwesomeIcon:R},data(){return{drawer:!1}}}),ce={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ue={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function pe(e,n,h,_,k,y){const d=o("font-awesome-icon"),u=o("el-button"),l=o("el-drawer");return s(),r("div",ce,[i("div",de,[C(e.$slots,"config",{},void 0,!0)]),i("div",ue,[C(e.$slots,"result",{},void 0,!0)]),t(u,{circle:"",class:"menu",onClick:n[0]||(n[0]=w=>e.drawer=!0)},{default:c(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(l,{modelValue:e.drawer,"onUpdate:modelValue":n[1]||(n[1]=w=>e.drawer=w),direction:"ltr","with-header":!1,size:"340px"},{default:c(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const me=b(ie,[["render",pe],["__scopeId","data-v-3b0702a7"]]),fe=v({name:"ModelSelector",components:{ElSelect:G,ElOption:A},data(){return{}},computed:{options(){return[{value:"wan2.6-t2v",label:this.$t("wan.button.modelT2v")},{value:"wan2.6-i2v",label:this.$t("wan.button.modelI2v")},{value:"wan2.6-i2v-flash",label:this.$t("wan.button.modelI2vFlash")},{value:"wan2.6-r2v",label:this.$t("wan.button.modelR2v")}]},value:{get(){return this.$store.state.wan?.config?.model},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,model:e})}}},mounted(){this.value||(this.value=N)}}),he={class:"field"},_e={class:"title font-bold"},ge={class:"float-left"};function $e(e,n,h,_,k,y){const d=o("el-option"),u=o("el-select");return s(),r("div",he,[i("h2",_e,a(e.$t("wan.name.model")),1),t(u,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=l=>e.value=l),class:"value",placeholder:e.$t("wan.placeholder.select"),clearable:""},{default:c(()=>[(s(!0),r(I,null,U(e.options,l=>(s(),$(d,{key:l.value,label:l.label,value:l.value},{default:c(()=>[i("span",ge,a(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const we=b(fe,[["render",$e],["__scopeId","data-v-eb090beb"]]),ve="720p",be=v({name:"ResolutionSelector",components:{ElSelect:G,ElOption:A},computed:{options(){return[{value:"480p",label:this.$t("wan.name.resolution480p")},{value:"720p",label:this.$t("wan.name.resolution720p")},{value:"1080p",label:this.$t("wan.name.resolution1080p")}]},value:{get(){return this.$store.state.wan?.config?.resolution},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,resolution:e})}}},mounted(){this.value||(this.value=ve)}}),ke={class:"field"},ye={class:"title font-bold"},Ve={class:"float-left"};function Te(e,n,h,_,k,y){const d=o("el-option"),u=o("el-select");return s(),r("div",ke,[i("h2",ye,a(e.$t("wan.name.resolution")),1),t(u,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=l=>e.value=l),class:"value",placeholder:e.$t("wan.placeholder.select"),clearable:""},{default:c(()=>[(s(!0),r(I,null,U(e.options,l=>(s(),$(d,{key:l.value,label:l.label,value:l.value},{default:c(()=>[i("span",Ve,a(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ee=b(be,[["render",Te],["__scopeId","data-v-3e39f44e"]]),Ie=5,Se=v({name:"DurationSelector",components:{ElSelect:G,ElOption:A},computed:{options(){return[{value:5,label:this.$t("wan.name.duration5s")},{value:10,label:this.$t("wan.name.duration10s")},{value:15,label:this.$t("wan.name.duration15s")}]},value:{get(){return this.$store.state.wan?.config?.duration},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,duration:e})}}},mounted(){this.value||(this.value=Ie)}}),Ue={class:"field"},Le={class:"title font-bold"},Ce={class:"float-left"};function Re(e,n,h,_,k,y){const d=o("el-option"),u=o("el-select");return s(),r("div",Ue,[i("h2",Le,a(e.$t("wan.name.duration")),1),t(u,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=l=>e.value=l),class:"value",placeholder:e.$t("wan.placeholder.select"),clearable:""},{default:c(()=>[(s(!0),r(I,null,U(e.options,l=>(s(),$(d,{key:l.value,label:l.label,value:l.value},{default:c(()=>[i("span",Ce,a(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ae=b(Se,[["render",Re],["__scopeId","data-v-5f35a2cf"]]),Ge=v({name:"ImageUrlInput",components:{ElUpload:Q,ElButton:S,InfoIcon:W,ImagePreview:K},mixins:[z],data(){return{fileList:[],uploadUrl:O()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.wan?.config?.image_url},set(){const e=this.urls?.[0];this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,image_url:e})}}},mounted(){this.value||(this.value=void 0),this.onSetImageUrl()},methods:{onExceed(){T.warning(this.$t("wan.message.uploadImageExceed"))},onError(){T.error(this.$t("wan.message.uploadImageError"))},async onRemove(){T.error(this.$t("wan.message.uploadImageError"))},onSetImageUrl(){const e=this.urls?.[0];this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,image_url:e})},async onSuccess(){this.onSetImageUrl()}}}),Pe={class:"relative"},De={class:"flex justify-between"},Me={class:"flex justify-start items-center"},Oe={class:"text-sm font-bold"};function Be(e,n,h,_,k,y){const d=o("info-icon"),u=o("image-preview"),l=o("el-button"),w=o("el-upload");return s(),r("div",Pe,[i("div",De,[i("div",Me,[i("span",Oe,a(e.$t("wan.name.imageUrl")),1),t(d,{content:e.$t("wan.description.imageUrl"),class:"info"},null,8,["content"])])]),t(w,{"file-list":e.fileList,"onUpdate:fileList":n[0]||(n[0]=m=>e.fileList=m),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file","show-file-list":!0,limit:1,multiple:!1,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-remove":e.onRemove,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:m})=>[m.url&&m.percentage!==void 0?(s(),$(u,{key:0,url:m.url,name:m.name,percentage:m.percentage,onRemove:g=>e.fileList.splice(e.fileList.indexOf(m),1)},null,8,["url","name","percentage","onRemove"])):p("",!0)]),default:c(()=>[t(l,{size:"small",type:"primary",class:"btn btn-upload",round:""},{default:c(()=>[f(a(e.$t("wan.button.uploadImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-remove","on-success","headers"])])}const je=b(Ge,[["render",Be],["__scopeId","data-v-c9ebe1b1"]]),Fe="",Ne=v({name:"PromptInput",components:{PromptTextarea:X},computed:{prompt:{get(){return this.$store.state.wan?.config?.prompt},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=Fe)}});function qe(e,n,h,_,k,y){const d=o("prompt-textarea");return s(),$(d,{modelValue:e.prompt,"onUpdate:modelValue":n[0]||(n[0]=u=>e.prompt=u),title:e.$t("wan.name.prompt"),info:e.$t("wan.description.prompt"),placeholder:e.$t("wan.placeholder.prompt")},null,8,["modelValue","title","info","placeholder"])}const ze=b(Ne,[["render",qe]]),We=v({name:"PresetPanel",components:{ElButton:S,FontAwesomeIcon:R,PromptInput:ze,ImageUrlInput:je,ModelSelector:we,ResolutionSelector:Ee,DurationSelector:Ae,Consumption:Z},emits:["generate"],computed:{config(){return this.$store.state.wan?.config},consumption(){return x(this.config,this.service?.cost)},service(){return this.$store.state.wan?.service},supportsResolution(){const e=this.config?.model;return e==="wan2.6-t2v"||e==="wan2.6-i2v"||e==="wan2.6-i2v-flash"},supportsDuration(){return this.config?.model==="wan2.6-t2v"},supportsImageUrl(){const e=this.config?.model;return e==="wan2.6-i2v"||e==="wan2.6-i2v-flash"}},methods:{onGenerate(){this.$emit("generate")}}}),He={class:"flex flex-col h-full"},Je={class:"flex-1 overflow-y-auto p-5"},Ke={class:"flex flex-col items-center justify-center px-5 pb-5"};function Qe(e,n,h,_,k,y){const d=o("prompt-input"),u=o("model-selector"),l=o("resolution-selector"),w=o("duration-selector"),m=o("image-url-input"),g=o("consumption"),V=o("font-awesome-icon"),E=o("el-button");return s(),r("div",He,[i("div",Je,[t(d,{class:"mb-4"}),t(u,{class:"mb-4"}),e.supportsResolution?(s(),$(l,{key:0,class:"mb-4"})):p("",!0),e.supportsDuration?(s(),$(w,{key:1,class:"mb-4"})):p("",!0),e.supportsImageUrl?(s(),$(m,{key:2,class:"mb-2"})):p("",!0)]),i("div",Ke,[t(g,{value:e.consumption,service:e.service},null,8,["value","service"]),t(E,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[t(V,{icon:"fa-solid fa-magic",class:"mr-2"}),f(" "+a(e.$t("wan.button.generate")),1)]),_:1},8,["onClick"])])])}const Xe=b(We,[["render",Qe]]),Ye=v({name:"TaskPreview",components:{ElImage:le,CopyToClipboard:te,FontAwesomeIcon:R,ElAlert:ae,VideoPlayer:oe,ElTooltip:ne,ElButton:S,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},setup(){return{WAN_LOGO:q}},computed:{application(){return this.$store.state.wan?.application},config(){return this.$store.state.wan?.config}},methods:{onDownload(e){console.debug("on download wan video",e),window.open(e,"_blank")}}}),Ze={class:"preview"},xe={class:"left"},et={class:"main"},tt={class:"bot"},ot={class:"datetime"},st={class:"info"},nt={key:0,class:"prompt mt-2"},at={key:0},lt={key:1},rt={key:0,class:L({content:!0,failed:!0})},it={key:0,class:"mb-4"},ct={key:1,class:L({operations:!0,"mt-2":!0})},dt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},pt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},mt={key:1,class:L({content:!0})},ft={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ht={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},$t={key:2,class:L({content:!0})},wt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function vt(e,n,h,_,k,y){const d=o("el-image"),u=o("video-player"),l=o("el-button"),w=o("el-tooltip"),m=o("api-code-button"),g=o("font-awesome-icon"),V=o("copy-to-clipboard"),E=o("el-alert");return s(),r("div",Ze,[i("div",xe,[t(d,{src:e.WAN_LOGO,class:"avatar"},null,8,["src"])]),i("div",et,[i("div",tt,[f(a(e.$t("wan.name.wanBot"))+" ",1),i("span",ot,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),i("div",st,[e.modelValue?.request?.prompt?(s(),r("p",nt,[f(a(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?p("",!0):(s(),r("span",at," - ("+a(e.$t("wan.status.pending"))+") ",1)),e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"||e.modelValue?.response?.state==="running"?(s(),r("span",lt," - ("+a(e.$t("wan.status.processing"))+") ",1)):p("",!0)])):p("",!0)]),e.modelValue?.response?.success===!0?(s(),r("div",rt,[e.modelValue?.response?.video_url?(s(),r("div",it,[t(u,{src:e.modelValue?.response?.video_url},null,8,["src"])])):p("",!0),e.modelValue?.response?.video_url?(s(),r("div",ct,[t(w,{class:"box-item",effect:"dark",content:e.$t("wan.message.downloadVideo"),placement:"top-start"},{default:c(()=>[t(l,{type:"info",size:"small",class:"mb-2",onClick:n[0]||(n[0]=M(Lt=>e.onDownload(e.modelValue?.response?.video_url),["stop"]))},{default:c(()=>[f(a(e.$t("wan.button.download")),1)]),_:1})]),_:1},8,["content"]),t(m,{path:"/wan/videos",body:e.modelValue?.request},null,8,["body"])])):p("",!0),t(E,{closable:!1,class:"mt-2 success"},{default:c(()=>[e.modelValue?.request?.model?(s(),r("p",dt,[t(g,{icon:"fa-solid fa-hashtag",class:"mr-1"}),f(" "+a(e.$t("wan.name.model"))+": "+a(e.modelValue?.request?.model)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])])):p("",!0),i("p",ut,[t(g,{icon:"fa-solid fa-magic",class:"mr-1"}),f(" "+a(e.$t("wan.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])]),e.modelValue?.elapsed?(s(),r("p",pt,[t(g,{icon:"fa-solid fa-clock",class:"mr-1"}),f(" "+a(e.$t("wan.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0)]),_:1})])):p("",!0),e.modelValue?.response?.success===!1?(s(),r("div",mt,[t(E,{closable:!1,class:"failure"},{template:c(()=>[t(g,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),f(" "+a(e.$t("wan.name.failure")),1)]),default:c(()=>[i("p",ft,[t(g,{icon:"fa-solid fa-magic",class:"mr-1"}),f(" "+a(e.$t("wan.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])]),i("p",ht,[t(g,{icon:"fa-solid fa-circle-info",class:"mr-1"}),f(" "+a(e.$t("wan.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),t(V,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),e.modelValue?.elapsed?(s(),r("p",_t,[t(g,{icon:"fa-solid fa-clock",class:"mr-1"}),f(" "+a(e.$t("wan.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0),i("p",gt,[t(g,{icon:"fa-solid fa-hashtag",class:"mr-1"}),f(" "+a(e.$t("wan.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(V,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):p("",!0),e.modelValue?.response?.success===void 0?(s(),r("div",$t,[t(E,{closable:!1,class:"info"},{template:c(()=>[t(g,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),f(" "+a(e.$t("wan.name.failure")),1)]),default:c(()=>[i("p",wt,[t(g,{icon:"fa-solid fa-magic",class:"mr-1"}),f(" "+a(e.$t("wan.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):p("",!0)])])}const bt=b(Ye,[["render",vt],["__scopeId","data-v-ae98ca4a"]]),kt=v({name:"RecentPanel",components:{TaskPreview:bt,BotPlaceholder:re,NoTasks:Y,ScrollList:H},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.wan?.tasks,items:this.$store.state.wan?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),yt={key:0},Vt={key:2,class:"w-full h-full flex items-center justify-center"};function Tt(e,n,h,_,k,y){const d=o("bot-placeholder"),u=o("task-preview"),l=o("scroll-list"),w=o("no-tasks");return s(),r(I,null,[e.tasks?.items===void 0?(s(),r("div",yt,[t(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(s(),$(l,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:n[0]||(n[0]=m=>e.$emit("reach-top"))},{default:c(()=>[(s(!0),r(I,null,U(e.tasks?.items,m=>(s(),$(u,{key:m.id,"model-value":m},null,8,["model-value"]))),128))]),_:1},8,["loading"])):p("",!0),e.tasks?.items?.length===0?(s(),r("div",Vt,[t(w)])):p("",!0)],64)}const Et=b(kt,[["render",Tt]]),It=F("wan"),St=v({name:"WanIndex",components:{ConfigPanel:Xe,Layout:me,RecentPanel:Et},inject:["initialized"],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.wan?.status?.getApplications===P.Request},tasksLoading(){return this.$store.state.wan?.status?.getTasks===P.Request||this.fetchingTasks},credential(){return this.$store.state.wan.credential},config(){return this.$store.state.wan.config},application(){return this.$store.state.wan.application},tasks(){return this.$store.state.wan.tasks}},watch:{tasks:{handler(e,n){e?.items?.length>n?.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 J({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("wan/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("wan/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:n=5,createdAtMin:h,createdAtMax:_}=e||{};console.debug("limit",n,"createdAtMin",h,"createdAtMax",_),this.fetchingTasks=!0;try{await this.$store.dispatch("wan/getTasks",{limit:n,createdAtMin:h,createdAtMax:_})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:It},n=this.credential?.token;if(!n){console.error("no token specified");return}T.info(this.$t("wan.message.startingTask")),B("wan",j.generate(e,{token:n})).then(()=>{T.success(this.$t("wan.message.startTaskSuccess"))}).catch(h=>{h?.response?.data?.error?.code===ee?T.error(this.$t("wan.message.usedUp")):T.error(this.$t("wan.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ut(e,n,h,_,k,y){const d=o("config-panel"),u=o("recent-panel"),l=o("layout");return s(),$(l,null,{config:c(()=>[t(d,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:c(()=>[t(u,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Eo=b(St,[["render",Ut]]);export{Eo as default};
1
+ import{F as R}from"./index.es-DkaS06k9.js";import{E as S}from"./index-BIYITIcQ.js";import{E as D}from"./index-C7mr_FlY.js";import{d as v,H as r,E as i,z as C,C as t,y as c,D as o,q as s,F as a,O as I,N as U,x as $,I as f,J as p,M,Q as L}from"./vendor-vue-NSDaktjZ.js";import{H as b,bp as O,cs as B,b5 as j,S as P,ct as F}from"./index-BYllLVr5.js";import{a as N,b as q}from"./wan-DKq-jYOo.js";import{E as A,a as G}from"./index-BB8IU4AC.js";import{p as z}from"./pasteUploadMixin-BurWbGNQ.js";import{I as W,S as H,l as J}from"./pagination-DMcg_VSJ.js";import{I as K}from"./ImagePreview-EvK72jMd.js";import{E as Q}from"./index-hO1QjxiB.js";import{E as T}from"./index-B9C3QmXP.js";import{P as X,N as Y}from"./NoTasks-8MEigfee.js";import{C as Z}from"./Consumption-BHLp19TR.js";import{a as x}from"./price-CGbNB5nq.js";import{b as ee}from"./errorCode-Cqj9Td_Z.js";import{C as te}from"./CopyToClipboard-DYhphNXQ.js";import{V as oe}from"./VideoPlayer-CndFbOvW.js";import{A as se}from"./ApiCodeButton-CkYl1m8R.js";import{E as ne}from"./index-BEQGtLAt.js";import{E as ae}from"./index-DIv7I-iE.js";import{E as le}from"./index-byRx5hf4.js";import{B as re}from"./BotPlaceholder-yR_kBFno.js";import"./use-form-item-DE6wXJCu.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-5zXswERx.js";import"./typescript-Bxp48IAw.js";import"./index-3EWFx-Vj.js";import"./strings-beZM2Y-f.js";import"./isEqual-CTU2BQwF.js";import"./_Uint8Array-BzP45VD9.js";import"./castArray-DtkWeMZp.js";import"./index-CaBmSn29.js";import"./index-CaGN2hWU.js";import"./debounce-je8R6qMJ.js";import"./_baseIteratee-SNuyx3Mb.js";import"./index-D9l-HbDE.js";import"./highlight-Vc3jp7ut.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-CBxkbXoj.js";import"./_baseClone-DNu4QAe9.js";import"./_initCloneObject-C0YmUjML.js";import"./vue-plyr-BO2nlN4c.js";import"./index-C7McF3Oe.js";const ie=v({name:"LayoutWan",components:{ElDrawer:D,ElButton:S,FontAwesomeIcon:R},data(){return{drawer:!1}}}),ce={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ue={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function pe(e,n,h,_,k,y){const d=o("font-awesome-icon"),u=o("el-button"),l=o("el-drawer");return s(),r("div",ce,[i("div",de,[C(e.$slots,"config",{},void 0,!0)]),i("div",ue,[C(e.$slots,"result",{},void 0,!0)]),t(u,{circle:"",class:"menu",onClick:n[0]||(n[0]=w=>e.drawer=!0)},{default:c(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(l,{modelValue:e.drawer,"onUpdate:modelValue":n[1]||(n[1]=w=>e.drawer=w),direction:"ltr","with-header":!1,size:"340px"},{default:c(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const me=b(ie,[["render",pe],["__scopeId","data-v-3b0702a7"]]),fe=v({name:"ModelSelector",components:{ElSelect:G,ElOption:A},data(){return{}},computed:{options(){return[{value:"wan2.6-t2v",label:this.$t("wan.button.modelT2v")},{value:"wan2.6-i2v",label:this.$t("wan.button.modelI2v")},{value:"wan2.6-i2v-flash",label:this.$t("wan.button.modelI2vFlash")},{value:"wan2.6-r2v",label:this.$t("wan.button.modelR2v")}]},value:{get(){return this.$store.state.wan?.config?.model},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,model:e})}}},mounted(){this.value||(this.value=N)}}),he={class:"field"},_e={class:"title font-bold"},ge={class:"float-left"};function $e(e,n,h,_,k,y){const d=o("el-option"),u=o("el-select");return s(),r("div",he,[i("h2",_e,a(e.$t("wan.name.model")),1),t(u,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=l=>e.value=l),class:"value",placeholder:e.$t("wan.placeholder.select"),clearable:""},{default:c(()=>[(s(!0),r(I,null,U(e.options,l=>(s(),$(d,{key:l.value,label:l.label,value:l.value},{default:c(()=>[i("span",ge,a(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const we=b(fe,[["render",$e],["__scopeId","data-v-eb090beb"]]),ve="720p",be=v({name:"ResolutionSelector",components:{ElSelect:G,ElOption:A},computed:{options(){return[{value:"480p",label:this.$t("wan.name.resolution480p")},{value:"720p",label:this.$t("wan.name.resolution720p")},{value:"1080p",label:this.$t("wan.name.resolution1080p")}]},value:{get(){return this.$store.state.wan?.config?.resolution},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,resolution:e})}}},mounted(){this.value||(this.value=ve)}}),ke={class:"field"},ye={class:"title font-bold"},Ve={class:"float-left"};function Te(e,n,h,_,k,y){const d=o("el-option"),u=o("el-select");return s(),r("div",ke,[i("h2",ye,a(e.$t("wan.name.resolution")),1),t(u,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=l=>e.value=l),class:"value",placeholder:e.$t("wan.placeholder.select"),clearable:""},{default:c(()=>[(s(!0),r(I,null,U(e.options,l=>(s(),$(d,{key:l.value,label:l.label,value:l.value},{default:c(()=>[i("span",Ve,a(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ee=b(be,[["render",Te],["__scopeId","data-v-3e39f44e"]]),Ie=5,Se=v({name:"DurationSelector",components:{ElSelect:G,ElOption:A},computed:{options(){return[{value:5,label:this.$t("wan.name.duration5s")},{value:10,label:this.$t("wan.name.duration10s")},{value:15,label:this.$t("wan.name.duration15s")}]},value:{get(){return this.$store.state.wan?.config?.duration},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,duration:e})}}},mounted(){this.value||(this.value=Ie)}}),Ue={class:"field"},Le={class:"title font-bold"},Ce={class:"float-left"};function Re(e,n,h,_,k,y){const d=o("el-option"),u=o("el-select");return s(),r("div",Ue,[i("h2",Le,a(e.$t("wan.name.duration")),1),t(u,{modelValue:e.value,"onUpdate:modelValue":n[0]||(n[0]=l=>e.value=l),class:"value",placeholder:e.$t("wan.placeholder.select"),clearable:""},{default:c(()=>[(s(!0),r(I,null,U(e.options,l=>(s(),$(d,{key:l.value,label:l.label,value:l.value},{default:c(()=>[i("span",Ce,a(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ae=b(Se,[["render",Re],["__scopeId","data-v-5f35a2cf"]]),Ge=v({name:"ImageUrlInput",components:{ElUpload:Q,ElButton:S,InfoIcon:W,ImagePreview:K},mixins:[z],data(){return{fileList:[],uploadUrl:O()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.wan?.config?.image_url},set(){const e=this.urls?.[0];this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,image_url:e})}}},mounted(){this.value||(this.value=void 0),this.onSetImageUrl()},methods:{onExceed(){T.warning(this.$t("wan.message.uploadImageExceed"))},onError(){T.error(this.$t("wan.message.uploadImageError"))},async onRemove(){T.error(this.$t("wan.message.uploadImageError"))},onSetImageUrl(){const e=this.urls?.[0];this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,image_url:e})},async onSuccess(){this.onSetImageUrl()}}}),Pe={class:"relative"},De={class:"flex justify-between"},Me={class:"flex justify-start items-center"},Oe={class:"text-sm font-bold"};function Be(e,n,h,_,k,y){const d=o("info-icon"),u=o("image-preview"),l=o("el-button"),w=o("el-upload");return s(),r("div",Pe,[i("div",De,[i("div",Me,[i("span",Oe,a(e.$t("wan.name.imageUrl")),1),t(d,{content:e.$t("wan.description.imageUrl"),class:"info"},null,8,["content"])])]),t(w,{"file-list":e.fileList,"onUpdate:fileList":n[0]||(n[0]=m=>e.fileList=m),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file","show-file-list":!0,limit:1,multiple:!1,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-remove":e.onRemove,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:m})=>[m.url&&m.percentage!==void 0?(s(),$(u,{key:0,url:m.url,name:m.name,percentage:m.percentage,onRemove:g=>e.fileList.splice(e.fileList.indexOf(m),1)},null,8,["url","name","percentage","onRemove"])):p("",!0)]),default:c(()=>[t(l,{size:"small",type:"primary",class:"btn btn-upload",round:""},{default:c(()=>[f(a(e.$t("wan.button.uploadImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-remove","on-success","headers"])])}const je=b(Ge,[["render",Be],["__scopeId","data-v-c9ebe1b1"]]),Fe="",Ne=v({name:"PromptInput",components:{PromptTextarea:X},computed:{prompt:{get(){return this.$store.state.wan?.config?.prompt},set(e){this.$store.commit("wan/setConfig",{...this.$store.state.wan?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=Fe)}});function qe(e,n,h,_,k,y){const d=o("prompt-textarea");return s(),$(d,{modelValue:e.prompt,"onUpdate:modelValue":n[0]||(n[0]=u=>e.prompt=u),title:e.$t("wan.name.prompt"),info:e.$t("wan.description.prompt"),placeholder:e.$t("wan.placeholder.prompt")},null,8,["modelValue","title","info","placeholder"])}const ze=b(Ne,[["render",qe]]),We=v({name:"PresetPanel",components:{ElButton:S,FontAwesomeIcon:R,PromptInput:ze,ImageUrlInput:je,ModelSelector:we,ResolutionSelector:Ee,DurationSelector:Ae,Consumption:Z},emits:["generate"],computed:{config(){return this.$store.state.wan?.config},consumption(){return x(this.config,this.service?.cost)},service(){return this.$store.state.wan?.service},supportsResolution(){const e=this.config?.model;return e==="wan2.6-t2v"||e==="wan2.6-i2v"||e==="wan2.6-i2v-flash"},supportsDuration(){return this.config?.model==="wan2.6-t2v"},supportsImageUrl(){const e=this.config?.model;return e==="wan2.6-i2v"||e==="wan2.6-i2v-flash"}},methods:{onGenerate(){this.$emit("generate")}}}),He={class:"flex flex-col h-full"},Je={class:"flex-1 overflow-y-auto p-5"},Ke={class:"flex flex-col items-center justify-center px-5 pb-5"};function Qe(e,n,h,_,k,y){const d=o("prompt-input"),u=o("model-selector"),l=o("resolution-selector"),w=o("duration-selector"),m=o("image-url-input"),g=o("consumption"),V=o("font-awesome-icon"),E=o("el-button");return s(),r("div",He,[i("div",Je,[t(d,{class:"mb-4"}),t(u,{class:"mb-4"}),e.supportsResolution?(s(),$(l,{key:0,class:"mb-4"})):p("",!0),e.supportsDuration?(s(),$(w,{key:1,class:"mb-4"})):p("",!0),e.supportsImageUrl?(s(),$(m,{key:2,class:"mb-2"})):p("",!0)]),i("div",Ke,[t(g,{value:e.consumption,service:e.service},null,8,["value","service"]),t(E,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[t(V,{icon:"fa-solid fa-magic",class:"mr-2"}),f(" "+a(e.$t("wan.button.generate")),1)]),_:1},8,["onClick"])])])}const Xe=b(We,[["render",Qe]]),Ye=v({name:"TaskPreview",components:{ElImage:le,CopyToClipboard:te,FontAwesomeIcon:R,ElAlert:ae,VideoPlayer:oe,ElTooltip:ne,ElButton:S,ApiCodeButton:se},props:{modelValue:{type:Object,required:!0}},setup(){return{WAN_LOGO:q}},computed:{application(){return this.$store.state.wan?.application},config(){return this.$store.state.wan?.config}},methods:{onDownload(e){console.debug("on download wan video",e),window.open(e,"_blank")}}}),Ze={class:"preview"},xe={class:"left"},et={class:"main"},tt={class:"bot"},ot={class:"datetime"},st={class:"info"},nt={key:0,class:"prompt mt-2"},at={key:0},lt={key:1},rt={key:0,class:L({content:!0,failed:!0})},it={key:0,class:"mb-4"},ct={key:1,class:L({operations:!0,"mt-2":!0})},dt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},pt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},mt={key:1,class:L({content:!0})},ft={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ht={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},$t={key:2,class:L({content:!0})},wt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function vt(e,n,h,_,k,y){const d=o("el-image"),u=o("video-player"),l=o("el-button"),w=o("el-tooltip"),m=o("api-code-button"),g=o("font-awesome-icon"),V=o("copy-to-clipboard"),E=o("el-alert");return s(),r("div",Ze,[i("div",xe,[t(d,{src:e.WAN_LOGO,class:"avatar"},null,8,["src"])]),i("div",et,[i("div",tt,[f(a(e.$t("wan.name.wanBot"))+" ",1),i("span",ot,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),i("div",st,[e.modelValue?.request?.prompt?(s(),r("p",nt,[f(a(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?p("",!0):(s(),r("span",at," - ("+a(e.$t("wan.status.pending"))+") ",1)),e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"||e.modelValue?.response?.state==="running"?(s(),r("span",lt," - ("+a(e.$t("wan.status.processing"))+") ",1)):p("",!0)])):p("",!0)]),e.modelValue?.response?.success===!0?(s(),r("div",rt,[e.modelValue?.response?.video_url?(s(),r("div",it,[t(u,{src:e.modelValue?.response?.video_url},null,8,["src"])])):p("",!0),e.modelValue?.response?.video_url?(s(),r("div",ct,[t(w,{class:"box-item",effect:"dark",content:e.$t("wan.message.downloadVideo"),placement:"top-start"},{default:c(()=>[t(l,{type:"info",size:"small",class:"mb-2",onClick:n[0]||(n[0]=M(Lt=>e.onDownload(e.modelValue?.response?.video_url),["stop"]))},{default:c(()=>[f(a(e.$t("wan.button.download")),1)]),_:1})]),_:1},8,["content"]),t(m,{path:"/wan/videos",body:e.modelValue?.request},null,8,["body"])])):p("",!0),t(E,{closable:!1,class:"mt-2 success"},{default:c(()=>[e.modelValue?.request?.model?(s(),r("p",dt,[t(g,{icon:"fa-solid fa-hashtag",class:"mr-1"}),f(" "+a(e.$t("wan.name.model"))+": "+a(e.modelValue?.request?.model)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])])):p("",!0),i("p",ut,[t(g,{icon:"fa-solid fa-magic",class:"mr-1"}),f(" "+a(e.$t("wan.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])]),e.modelValue?.elapsed?(s(),r("p",pt,[t(g,{icon:"fa-solid fa-clock",class:"mr-1"}),f(" "+a(e.$t("wan.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0)]),_:1})])):p("",!0),e.modelValue?.response?.success===!1?(s(),r("div",mt,[t(E,{closable:!1,class:"failure"},{template:c(()=>[t(g,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),f(" "+a(e.$t("wan.name.failure")),1)]),default:c(()=>[i("p",ft,[t(g,{icon:"fa-solid fa-magic",class:"mr-1"}),f(" "+a(e.$t("wan.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])]),i("p",ht,[t(g,{icon:"fa-solid fa-circle-info",class:"mr-1"}),f(" "+a(e.$t("wan.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),t(V,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),e.modelValue?.elapsed?(s(),r("p",_t,[t(g,{icon:"fa-solid fa-clock",class:"mr-1"}),f(" "+a(e.$t("wan.name.elapsed"))+": "+a(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0),i("p",gt,[t(g,{icon:"fa-solid fa-hashtag",class:"mr-1"}),f(" "+a(e.$t("wan.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(V,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):p("",!0),e.modelValue?.response?.success===void 0?(s(),r("div",$t,[t(E,{closable:!1,class:"info"},{template:c(()=>[t(g,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),f(" "+a(e.$t("wan.name.failure")),1)]),default:c(()=>[i("p",wt,[t(g,{icon:"fa-solid fa-magic",class:"mr-1"}),f(" "+a(e.$t("wan.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(V,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):p("",!0)])])}const bt=b(Ye,[["render",vt],["__scopeId","data-v-ae98ca4a"]]),kt=v({name:"RecentPanel",components:{TaskPreview:bt,BotPlaceholder:re,NoTasks:Y,ScrollList:H},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.wan?.tasks,items:this.$store.state.wan?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),yt={key:0},Vt={key:2,class:"w-full h-full flex items-center justify-center"};function Tt(e,n,h,_,k,y){const d=o("bot-placeholder"),u=o("task-preview"),l=o("scroll-list"),w=o("no-tasks");return s(),r(I,null,[e.tasks?.items===void 0?(s(),r("div",yt,[t(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(s(),$(l,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:n[0]||(n[0]=m=>e.$emit("reach-top"))},{default:c(()=>[(s(!0),r(I,null,U(e.tasks?.items,m=>(s(),$(u,{key:m.id,"model-value":m},null,8,["model-value"]))),128))]),_:1},8,["loading"])):p("",!0),e.tasks?.items?.length===0?(s(),r("div",Vt,[t(w)])):p("",!0)],64)}const Et=b(kt,[["render",Tt]]),It=F("wan"),St=v({name:"WanIndex",components:{ConfigPanel:Xe,Layout:me,RecentPanel:Et},inject:["initialized"],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.wan?.status?.getApplications===P.Request},tasksLoading(){return this.$store.state.wan?.status?.getTasks===P.Request||this.fetchingTasks},credential(){return this.$store.state.wan.credential},config(){return this.$store.state.wan.config},application(){return this.$store.state.wan.application},tasks(){return this.$store.state.wan.tasks}},watch:{tasks:{handler(e,n){e?.items?.length>n?.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 J({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("wan/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("wan/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:n=5,createdAtMin:h,createdAtMax:_}=e||{};console.debug("limit",n,"createdAtMin",h,"createdAtMax",_),this.fetchingTasks=!0;try{await this.$store.dispatch("wan/getTasks",{limit:n,createdAtMin:h,createdAtMax:_})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:It},n=this.credential?.token;if(!n){console.error("no token specified");return}T.info(this.$t("wan.message.startingTask")),B("wan",j.generate(e,{token:n})).then(()=>{T.success(this.$t("wan.message.startTaskSuccess"))}).catch(h=>{h?.response?.data?.error?.code===ee?T.error(this.$t("wan.message.usedUp")):T.error(this.$t("wan.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ut(e,n,h,_,k,y){const d=o("config-panel"),u=o("recent-panel"),l=o("layout");return s(),$(l,null,{config:c(()=>[t(d,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:c(()=>[t(u,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Eo=b(St,[["render",Ut]]);export{Eo as default};
@@ -1 +1 @@
1
- import{F as T}from"./index.es-C8TbH2BC.js";import{E as q}from"./index-BVkFwr_L.js";import{E as K}from"./index-BSglm0Mh.js";import{d as y,H as l,E as u,z as O,C as a,y as b,D as s,q as n,x as k,F as o,I as c,O as N,N as E,J as p,M as H,Q as U}from"./vendor-vue-NSDaktjZ.js";import{H as w,bp as J,cR as Q,cS as z,cT as P,cU as X,cV as S,cW as j,cX as D,cY as F,cs as Y,aW as Z,S as W,ct as ee}from"./index-CX3Kkhe8.js";import{P as te,N as ae}from"./NoTasks-CF8uilN4.js";import{p as oe}from"./pasteUploadMixin-BurWbGNQ.js";import{I as B,S as ne,l as se}from"./pagination-BCfNKuC9.js";import{I as x}from"./ImagePreview-BKqMFwxZ.js";import{E as le}from"./index-D8d_EiGA.js";import{E as R}from"./index-CBGglJJ1.js";import{E as G,a as M}from"./index-CxCN6BXU.js";import{C as re}from"./Consumption-DJb3Zq85.js";import{a as ie}from"./price-DyHd8y4L.js";import{b as ce}from"./errorCode-Cqj9Td_Z.js";import{C as ue}from"./CopyToClipboard-DszAErjC.js";import{I as me}from"./ImageWrapper-Dm7-bIgX.js";import{A as de}from"./ApiCodeButton-CkgmddPY.js";import{E as pe}from"./index-CKC1QXPY.js";import{E as fe}from"./index-CTe-d_6k.js";import{E as he}from"./index-DQOSv-tV.js";import{B as _e}from"./BotPlaceholder-s0833dXM.js";import"./use-form-item-DLYZ0lkO.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-BfwtSiqw.js";import"./typescript-Jtl3VF26.js";import"./index-B12SAORZ.js";import"./index-tO5MdGXt.js";import"./highlight-DcfXaBeC.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-B0tmHD6W.js";import"./_baseClone-DZKAu36s.js";import"./_Uint8Array-dMcWmqZF.js";import"./_initCloneObject-BsCXP6pc.js";import"./isEqual-C_dkvvUP.js";import"./index-BPUUia6V.js";import"./strings-beZM2Y-f.js";import"./castArray-mD4k-COw.js";import"./debounce-fzRpYvTx.js";import"./_baseIteratee-DulLK_c3.js";import"./index-Bumd8iDl.js";import"./index-TJBAFmkH.js";const be=y({name:"LayoutNanobanana",components:{ElDrawer:K,ElButton:q,FontAwesomeIcon:T},data(){return{drawer:!1}}}),ge={class:"main flex flex-row flex-1"},$e={class:"config w-[320px] flex-none h-full overflow-y-auto 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 ke(e,t,$,r,g,f){const h=s("font-awesome-icon"),_=s("el-button"),d=s("el-drawer");return n(),l("div",ge,[u("div",$e,[O(e.$slots,"config",{},void 0,!0)]),u("div",ve,[O(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=m=>e.drawer=!0)},{default:b(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(d,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=m=>e.drawer=m),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:b(()=>[O(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ye=w(be,[["render",ke],["__scopeId","data-v-8ca1c212"]]),we="",Ve=y({name:"PromptInput",components:{PromptTextarea:te},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=we)}});function Ae(e,t,$,r,g,f){const h=s("prompt-textarea");return n(),k(h,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=_=>e.prompt=_),title:e.$t("nanobanana.name.prompt"),info:e.$t("nanobanana.description.prompt"),placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","title","info","placeholder"])}const Ne=w(Ve,[["render",Ae]]),Ee=y({name:"ImageUrlsInput",components:{ElUpload:le,ElButton:q,InfoIcon:B,ImagePreview:x,FontAwesomeIcon:T},mixins:[oe],data(){return{fileList:[],uploadUrl:J()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(g=>!g?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const g=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);g?t.push(g):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){R.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){R.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Re={class:"field flex items-center justify-between"},Le={class:"title font-bold text-[14px] mb-[10px]"},Ie={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Se={class:"controls flex items-center"},Te={class:"file-list flex flex-wrap gap-[10px]"};function qe(e,t,$,r,g,f){const h=s("font-awesome-icon"),_=s("el-button"),d=s("el-upload"),m=s("info-icon"),V=s("image-preview");return n(),l(N,null,[u("div",Re,[u("h2",Le,o(e.$t("nanobanana.name.imageUrls")),1),u("div",Ie,[u("div",Se,[a(d,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=v=>e.fileList=v),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:b(()=>[a(_,{size:"small",type:"primary",round:""},{default:b(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),c(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(m,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),u("div",Te,[(n(!0),l(N,null,E(e.fileList,(v,i)=>(n(),k(V,{key:v.uid||v?.response?.file_url||v.url||i,url:v.url||v?.response?.file_url,name:v.name,percentage:v.percentage,onRemove:A=>e.onRemovePreview(i,v)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Ue=w(Ee,[["render",qe]]),Ce=y({name:"AspectRatioSelector",components:{ElSelect:M,ElOption:G},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Oe={class:"field"},Pe={class:"title font-bold"};function Be(e,t,$,r,g,f){const h=s("el-option"),_=s("el-select");return n(),l("div",Oe,[u("h2",Pe,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=d=>e.value=d),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:b(()=>[(n(!0),l(N,null,E(e.options,d=>(n(),k(h,{key:d,label:d,value:d},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ge=w(Ce,[["render",Be],["__scopeId","data-v-67f08a08"]]),Me=y({name:"NanobananaModelSelector",components:{ElSelect:M,ElOption:G,InfoIcon:B},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:X,label:this.$t("nanobanana.model.nanoBanana2")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=Q)}}),je={class:"field"},De={class:"label"},Fe={class:"box"},We={class:"title font-bold"};function ze(e,t,$,r,g,f){const h=s("info-icon"),_=s("el-option"),d=s("el-select");return n(),l("div",je,[u("div",De,[u("div",Fe,[u("h2",We,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:b(()=>[(n(!0),l(N,null,E(e.options,m=>(n(),k(_,{key:m.value,label:m.label,value:m.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const xe=w(Me,[["render",ze],["__scopeId","data-v-94304d73"]]),Ke=y({name:"NanobananaResolutionSelector",components:{ElSelect:M,ElOption:G,InfoIcon:B},data(){return{cachedResolution:S,options:[{value:j,label:j},{value:D,label:D},{value:F,label:F}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model!==z}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||S):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=S),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),He={class:"field"},Je={class:"label"},Qe={class:"box"},Xe={class:"title font-bold"};function Ye(e,t,$,r,g,f){const h=s("info-icon"),_=s("el-option"),d=s("el-select");return n(),l("div",He,[u("div",Je,[u("div",Qe,[u("h2",Xe,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:b(()=>[(n(!0),l(N,null,E(e.options,m=>(n(),k(_,{key:m.value,label:m.label,value:m.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Ze=w(Ke,[["render",Ye],["__scopeId","data-v-fd5ab393"]]),et=y({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:T,PromptInput:Ne,Consumption:re,ImageUrlsInput:Ue,AspectRatioSelector:Ge,ModelSelector:xe,ResolutionSelector:Ze},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return ie({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),tt={class:"flex flex-col h-full"},at={class:"flex-1 overflow-y-auto p-5"},ot={class:"flex flex-col items-center justify-center px-5 pb-5"};function nt(e,t,$,r,g,f){const h=s("model-selector"),_=s("resolution-selector"),d=s("prompt-input"),m=s("aspect-ratio-selector"),V=s("image-urls-input"),v=s("consumption"),i=s("font-awesome-icon"),A=s("el-button");return n(),l("div",tt,[u("div",at,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(d,{class:"mb-4"}),a(m,{class:"mb-4"}),a(V,{class:"mb-4"})]),u("div",ot,[a(v,{value:e.consumption,service:e.service},null,8,["value","service"]),a(A,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:b(()=>[a(i,{icon:"fa-solid fa-magic",class:"mr-2"}),c(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const st=w(et,[["render",nt]]),lt=y({name:"TaskPreview",components:{ElImage:he,CopyToClipboard:ue,FontAwesomeIcon:T,ElAlert:fe,ImageWrapper:me,ElButton:q,ElTooltip:pe,ImagePreview:x,ApiCodeButton:de},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),rt={class:"preview"},it={class:"left"},ct={class:"main"},ut={class:"bot"},mt={class:"datetime"},dt={class:"info"},pt={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ft={key:1,class:"prompt mt-2"},ht={key:0},_t={key:0,class:U({content:!0,failed:!0})},bt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},gt={class:U({operations:!0,"mt-2":!0,"mb-2":!0})},$t={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},kt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},yt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},wt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={key:5,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Nt={key:1,class:U({content:!0})},Et={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Lt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},St={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={key:5,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Ct={key:2,class:U({content:!0})},Ot={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Pt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Bt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Gt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Mt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function jt(e,t,$,r,g,f){const h=s("el-image"),_=s("image-preview"),d=s("image-wrapper"),m=s("el-button"),V=s("el-tooltip"),v=s("api-code-button"),i=s("font-awesome-icon"),A=s("copy-to-clipboard"),C=s("el-alert");return n(),l("div",rt,[u("div",it,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),u("div",ct,[u("div",ut,[c(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),u("span",mt,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),u("div",dt,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",pt,[(n(!0),l(N,null,E(e.modelValue?.request?.image_urls,(L,I)=>(n(),k(_,{key:I,url:L,name:`image-${I+1}`,closable:!1},null,8,["url","name"]))),128))])):p("",!0),e.modelValue?.request?.prompt?(n(),l("p",ft,[c(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?p("",!0):(n(),l("span",ht," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):p("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",_t,[u("div",bt,[(n(!0),l(N,null,E(e.images,(L,I)=>(n(),k(d,{key:I,src:L?.image_url,"raw-src":L?.image_url},null,8,["src","raw-src"]))),128))]),u("div",gt,[a(V,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:b(()=>[a(m,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=H(L=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:b(()=>[c(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"]),a(v,{path:"/nano-banana/images",body:e.modelValue?.request},null,8,["body"])]),a(C,{closable:!1,class:"mt-2 success"},{default:b(()=>[e.modelValue?.request?.model?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):p("",!0),e.modelValue?.request?.resolution?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):p("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",kt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):p("",!0),e.modelValue?.request?.action?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):p("",!0),u("p",wt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(A,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.elapsed?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-clock",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.elapsed"))+": "+o(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0),e.modelValue?.response?.trace_id?(n(),l("p",At,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(A,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):p("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",Nt,[a(C,{closable:!1,class:"failure"},{template:b(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.failure")),1)]),default:b(()=>[e.modelValue?.request?.model?(n(),l("p",Et,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):p("",!0),e.modelValue?.request?.resolution?(n(),l("p",Rt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):p("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):p("",!0),e.modelValue?.request?.action?(n(),l("p",It,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):p("",!0),u("p",St,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(A,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),u("p",Tt,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(A,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-clock",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.elapsed"))+": "+o(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0),e.modelValue?.response?.trace_id?(n(),l("p",Ut,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(A,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):p("",!0)]),_:1})])):(n(),l("div",Ct,[a(C,{closable:!1,class:"info"},{template:b(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.failure")),1)]),default:b(()=>[e.modelValue?.request?.model?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):p("",!0),e.modelValue?.request?.resolution?(n(),l("p",Pt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):p("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Bt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):p("",!0),e.modelValue?.request?.action?(n(),l("p",Gt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):p("",!0),u("p",Mt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(A,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const Dt=w(lt,[["render",jt],["__scopeId","data-v-0ab492e0"]]),Ft=y({name:"RecentPanel",components:{TaskPreview:Dt,BotPlaceholder:_e,NoTasks:ae,ScrollList:ne},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Wt={key:0},zt={key:2,class:"w-full h-full flex items-center justify-center"};function xt(e,t,$,r,g,f){const h=s("bot-placeholder"),_=s("task-preview"),d=s("scroll-list"),m=s("no-tasks");return n(),l(N,null,[e.tasks?.items===void 0?(n(),l("div",Wt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),k(d,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=V=>e.$emit("reach-top"))},{default:b(()=>[(n(!0),l(N,null,E(e.tasks?.items,V=>(n(),k(_,{key:V.id,"model-value":V},null,8,["model-value"]))),128))]),_:1},8,["loading"])):p("",!0),e.tasks?.items?.length===0?(n(),l("div",zt,[a(m)])):p("",!0)],64)}const Kt=w(Ft,[["render",xt]]),Ht=ee("nanobanana"),Jt=y({name:"NanobananaIndex",components:{ConfigPanel:st,Layout:ye,RecentPanel:Kt},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===W.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===W.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await se({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loading,setLoading:e=>this.loading=e,isBlocked:()=>this.tasksLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:$,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",$,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:$,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=S);const $={...e,action:t?"edit":"generate",callback_url:Ht},r=this.credential?.token;if(!r){console.error("no token specified");return}R.info(this.$t("nanobanana.message.startingTask")),Y("nanobanana",Z.generate($,{token:r})).then(()=>{R.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(g=>{const f=g?.response?.data;f?.error?.code===ce?R.error(this.$t("nanobanana.message.usedUp")):R.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Qt(e,t,$,r,g,f){const h=s("config-panel"),_=s("recent-panel"),d=s("layout");return n(),k(d,null,{config:b(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:b(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Fa=w(Jt,[["render",Qt]]);export{Fa as default};
1
+ import{F as T}from"./index.es-DkaS06k9.js";import{E as q}from"./index-BIYITIcQ.js";import{E as K}from"./index-C7mr_FlY.js";import{d as y,H as l,E as u,z as O,C as a,y as b,D as s,q as n,x as k,F as o,I as c,O as N,N as E,J as p,M as H,Q as U}from"./vendor-vue-NSDaktjZ.js";import{H as w,bp as J,cR as Q,cS as z,cT as P,cU as X,cV as S,cW as j,cX as D,cY as F,cs as Y,aW as Z,S as W,ct as ee}from"./index-BYllLVr5.js";import{P as te,N as ae}from"./NoTasks-8MEigfee.js";import{p as oe}from"./pasteUploadMixin-BurWbGNQ.js";import{I as B,S as ne,l as se}from"./pagination-DMcg_VSJ.js";import{I as x}from"./ImagePreview-EvK72jMd.js";import{E as le}from"./index-hO1QjxiB.js";import{E as R}from"./index-B9C3QmXP.js";import{E as G,a as M}from"./index-BB8IU4AC.js";import{C as re}from"./Consumption-BHLp19TR.js";import{a as ie}from"./price-CGbNB5nq.js";import{b as ce}from"./errorCode-Cqj9Td_Z.js";import{C as ue}from"./CopyToClipboard-DYhphNXQ.js";import{I as me}from"./ImageWrapper-C6NFWtUs.js";import{A as de}from"./ApiCodeButton-CkYl1m8R.js";import{E as pe}from"./index-BEQGtLAt.js";import{E as fe}from"./index-DIv7I-iE.js";import{E as he}from"./index-byRx5hf4.js";import{B as _e}from"./BotPlaceholder-yR_kBFno.js";import"./use-form-item-DE6wXJCu.js";import"./index-BuyEbX8F.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";import"./index-CaBmSn29.js";import"./typescript-Bxp48IAw.js";import"./index-3EWFx-Vj.js";import"./index-CaGN2hWU.js";import"./highlight-Vc3jp7ut.js";import"./index-BLjywj98.js";import"./vendor-highlight-lEWW1Jxd.js";import"./index-CBxkbXoj.js";import"./_baseClone-DNu4QAe9.js";import"./_Uint8Array-BzP45VD9.js";import"./_initCloneObject-C0YmUjML.js";import"./isEqual-CTU2BQwF.js";import"./index-5zXswERx.js";import"./strings-beZM2Y-f.js";import"./castArray-DtkWeMZp.js";import"./debounce-je8R6qMJ.js";import"./_baseIteratee-SNuyx3Mb.js";import"./index-D9l-HbDE.js";import"./index-C7McF3Oe.js";const be=y({name:"LayoutNanobanana",components:{ElDrawer:K,ElButton:q,FontAwesomeIcon:T},data(){return{drawer:!1}}}),ge={class:"main flex flex-row flex-1"},$e={class:"config w-[320px] flex-none h-full overflow-y-auto 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 ke(e,t,$,r,g,f){const h=s("font-awesome-icon"),_=s("el-button"),d=s("el-drawer");return n(),l("div",ge,[u("div",$e,[O(e.$slots,"config",{},void 0,!0)]),u("div",ve,[O(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=m=>e.drawer=!0)},{default:b(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(d,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=m=>e.drawer=m),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:b(()=>[O(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ye=w(be,[["render",ke],["__scopeId","data-v-8ca1c212"]]),we="",Ve=y({name:"PromptInput",components:{PromptTextarea:te},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=we)}});function Ae(e,t,$,r,g,f){const h=s("prompt-textarea");return n(),k(h,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=_=>e.prompt=_),title:e.$t("nanobanana.name.prompt"),info:e.$t("nanobanana.description.prompt"),placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","title","info","placeholder"])}const Ne=w(Ve,[["render",Ae]]),Ee=y({name:"ImageUrlsInput",components:{ElUpload:le,ElButton:q,InfoIcon:B,ImagePreview:x,FontAwesomeIcon:T},mixins:[oe],data(){return{fileList:[],uploadUrl:J()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(g=>!g?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const g=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);g?t.push(g):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){R.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){R.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Re={class:"field flex items-center justify-between"},Le={class:"title font-bold text-[14px] mb-[10px]"},Ie={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Se={class:"controls flex items-center"},Te={class:"file-list flex flex-wrap gap-[10px]"};function qe(e,t,$,r,g,f){const h=s("font-awesome-icon"),_=s("el-button"),d=s("el-upload"),m=s("info-icon"),V=s("image-preview");return n(),l(N,null,[u("div",Re,[u("h2",Le,o(e.$t("nanobanana.name.imageUrls")),1),u("div",Ie,[u("div",Se,[a(d,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=v=>e.fileList=v),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:b(()=>[a(_,{size:"small",type:"primary",round:""},{default:b(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),c(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(m,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),u("div",Te,[(n(!0),l(N,null,E(e.fileList,(v,i)=>(n(),k(V,{key:v.uid||v?.response?.file_url||v.url||i,url:v.url||v?.response?.file_url,name:v.name,percentage:v.percentage,onRemove:A=>e.onRemovePreview(i,v)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Ue=w(Ee,[["render",qe]]),Ce=y({name:"AspectRatioSelector",components:{ElSelect:M,ElOption:G},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Oe={class:"field"},Pe={class:"title font-bold"};function Be(e,t,$,r,g,f){const h=s("el-option"),_=s("el-select");return n(),l("div",Oe,[u("h2",Pe,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=d=>e.value=d),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:b(()=>[(n(!0),l(N,null,E(e.options,d=>(n(),k(h,{key:d,label:d,value:d},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ge=w(Ce,[["render",Be],["__scopeId","data-v-67f08a08"]]),Me=y({name:"NanobananaModelSelector",components:{ElSelect:M,ElOption:G,InfoIcon:B},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:X,label:this.$t("nanobanana.model.nanoBanana2")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=Q)}}),je={class:"field"},De={class:"label"},Fe={class:"box"},We={class:"title font-bold"};function ze(e,t,$,r,g,f){const h=s("info-icon"),_=s("el-option"),d=s("el-select");return n(),l("div",je,[u("div",De,[u("div",Fe,[u("h2",We,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:b(()=>[(n(!0),l(N,null,E(e.options,m=>(n(),k(_,{key:m.value,label:m.label,value:m.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const xe=w(Me,[["render",ze],["__scopeId","data-v-94304d73"]]),Ke=y({name:"NanobananaResolutionSelector",components:{ElSelect:M,ElOption:G,InfoIcon:B},data(){return{cachedResolution:S,options:[{value:j,label:j},{value:D,label:D},{value:F,label:F}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model!==z}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||S):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=S),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),He={class:"field"},Je={class:"label"},Qe={class:"box"},Xe={class:"title font-bold"};function Ye(e,t,$,r,g,f){const h=s("info-icon"),_=s("el-option"),d=s("el-select");return n(),l("div",He,[u("div",Je,[u("div",Qe,[u("h2",Xe,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:b(()=>[(n(!0),l(N,null,E(e.options,m=>(n(),k(_,{key:m.value,label:m.label,value:m.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Ze=w(Ke,[["render",Ye],["__scopeId","data-v-fd5ab393"]]),et=y({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:T,PromptInput:Ne,Consumption:re,ImageUrlsInput:Ue,AspectRatioSelector:Ge,ModelSelector:xe,ResolutionSelector:Ze},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return ie({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),tt={class:"flex flex-col h-full"},at={class:"flex-1 overflow-y-auto p-5"},ot={class:"flex flex-col items-center justify-center px-5 pb-5"};function nt(e,t,$,r,g,f){const h=s("model-selector"),_=s("resolution-selector"),d=s("prompt-input"),m=s("aspect-ratio-selector"),V=s("image-urls-input"),v=s("consumption"),i=s("font-awesome-icon"),A=s("el-button");return n(),l("div",tt,[u("div",at,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(d,{class:"mb-4"}),a(m,{class:"mb-4"}),a(V,{class:"mb-4"})]),u("div",ot,[a(v,{value:e.consumption,service:e.service},null,8,["value","service"]),a(A,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:b(()=>[a(i,{icon:"fa-solid fa-magic",class:"mr-2"}),c(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const st=w(et,[["render",nt]]),lt=y({name:"TaskPreview",components:{ElImage:he,CopyToClipboard:ue,FontAwesomeIcon:T,ElAlert:fe,ImageWrapper:me,ElButton:q,ElTooltip:pe,ImagePreview:x,ApiCodeButton:de},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),rt={class:"preview"},it={class:"left"},ct={class:"main"},ut={class:"bot"},mt={class:"datetime"},dt={class:"info"},pt={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ft={key:1,class:"prompt mt-2"},ht={key:0},_t={key:0,class:U({content:!0,failed:!0})},bt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},gt={class:U({operations:!0,"mt-2":!0,"mb-2":!0})},$t={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},kt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},yt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},wt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={key:5,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Nt={key:1,class:U({content:!0})},Et={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Lt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},St={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={key:5,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Ct={key:2,class:U({content:!0})},Ot={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Pt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Bt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Gt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Mt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function jt(e,t,$,r,g,f){const h=s("el-image"),_=s("image-preview"),d=s("image-wrapper"),m=s("el-button"),V=s("el-tooltip"),v=s("api-code-button"),i=s("font-awesome-icon"),A=s("copy-to-clipboard"),C=s("el-alert");return n(),l("div",rt,[u("div",it,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),u("div",ct,[u("div",ut,[c(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),u("span",mt,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),u("div",dt,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",pt,[(n(!0),l(N,null,E(e.modelValue?.request?.image_urls,(L,I)=>(n(),k(_,{key:I,url:L,name:`image-${I+1}`,closable:!1},null,8,["url","name"]))),128))])):p("",!0),e.modelValue?.request?.prompt?(n(),l("p",ft,[c(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?p("",!0):(n(),l("span",ht," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):p("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",_t,[u("div",bt,[(n(!0),l(N,null,E(e.images,(L,I)=>(n(),k(d,{key:I,src:L?.image_url,"raw-src":L?.image_url},null,8,["src","raw-src"]))),128))]),u("div",gt,[a(V,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:b(()=>[a(m,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=H(L=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:b(()=>[c(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"]),a(v,{path:"/nano-banana/images",body:e.modelValue?.request},null,8,["body"])]),a(C,{closable:!1,class:"mt-2 success"},{default:b(()=>[e.modelValue?.request?.model?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):p("",!0),e.modelValue?.request?.resolution?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):p("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",kt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):p("",!0),e.modelValue?.request?.action?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):p("",!0),u("p",wt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(A,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.elapsed?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-clock",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.elapsed"))+": "+o(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0),e.modelValue?.response?.trace_id?(n(),l("p",At,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(A,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):p("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",Nt,[a(C,{closable:!1,class:"failure"},{template:b(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.failure")),1)]),default:b(()=>[e.modelValue?.request?.model?(n(),l("p",Et,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):p("",!0),e.modelValue?.request?.resolution?(n(),l("p",Rt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):p("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):p("",!0),e.modelValue?.request?.action?(n(),l("p",It,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):p("",!0),u("p",St,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(A,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),u("p",Tt,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(A,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.elapsed?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-clock",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.elapsed"))+": "+o(e.modelValue?.elapsed?.toFixed(2))+"s ",1)])):p("",!0),e.modelValue?.response?.trace_id?(n(),l("p",Ut,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(A,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):p("",!0)]),_:1})])):(n(),l("div",Ct,[a(C,{closable:!1,class:"info"},{template:b(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.failure")),1)]),default:b(()=>[e.modelValue?.request?.model?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):p("",!0),e.modelValue?.request?.resolution?(n(),l("p",Pt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):p("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Bt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):p("",!0),e.modelValue?.request?.action?(n(),l("p",Gt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):p("",!0),u("p",Mt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),c(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(A,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const Dt=w(lt,[["render",jt],["__scopeId","data-v-0ab492e0"]]),Ft=y({name:"RecentPanel",components:{TaskPreview:Dt,BotPlaceholder:_e,NoTasks:ae,ScrollList:ne},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Wt={key:0},zt={key:2,class:"w-full h-full flex items-center justify-center"};function xt(e,t,$,r,g,f){const h=s("bot-placeholder"),_=s("task-preview"),d=s("scroll-list"),m=s("no-tasks");return n(),l(N,null,[e.tasks?.items===void 0?(n(),l("div",Wt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),k(d,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=V=>e.$emit("reach-top"))},{default:b(()=>[(n(!0),l(N,null,E(e.tasks?.items,V=>(n(),k(_,{key:V.id,"model-value":V},null,8,["model-value"]))),128))]),_:1},8,["loading"])):p("",!0),e.tasks?.items?.length===0?(n(),l("div",zt,[a(m)])):p("",!0)],64)}const Kt=w(Ft,[["render",xt]]),Ht=ee("nanobanana"),Jt=y({name:"NanobananaIndex",components:{ConfigPanel:st,Layout:ye,RecentPanel:Kt},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===W.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===W.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await se({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loading,setLoading:e=>this.loading=e,isBlocked:()=>this.tasksLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:$,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",$,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:$,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=S);const $={...e,action:t?"edit":"generate",callback_url:Ht},r=this.credential?.token;if(!r){console.error("no token specified");return}R.info(this.$t("nanobanana.message.startingTask")),Y("nanobanana",Z.generate($,{token:r})).then(()=>{R.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(g=>{const f=g?.response?.data;f?.error?.code===ce?R.error(this.$t("nanobanana.message.usedUp")):R.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Qt(e,t,$,r,g,f){const h=s("config-panel"),_=s("recent-panel"),d=s("layout");return n(),k(d,null,{config:b(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:b(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Fa=w(Jt,[["render",Qt]]);export{Fa as default};
@@ -1 +1 @@
1
- import{d as e,H as n,q as o}from"./vendor-vue-NSDaktjZ.js";import{H as s}from"./index-CX3Kkhe8.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";const r=e({name:"SettingsIndex",mounted(){const t=this.$route.query.tab||"";window.dispatchEvent(new CustomEvent("open-user-settings",{detail:{tab:t}}))}}),a={class:"settings-page"};function i(t,c,p,d,m,_){return o(),n("div",a)}const g=s(r,[["render",i]]);export{g as default};
1
+ import{d as e,H as n,q as o}from"./vendor-vue-NSDaktjZ.js";import{H as s}from"./index-BYllLVr5.js";import"./vendor-axios-B8_nURbH.js";import"./vendor-dayjs-v0j1UNZp.js";import"./vendor-vue-router-Df5ITouH.js";const r=e({name:"SettingsIndex",mounted(){const t=this.$route.query.tab||"";window.dispatchEvent(new CustomEvent("open-user-settings",{detail:{tab:t}}))}}),a={class:"settings-page"};function i(t,c,p,d,m,_){return o(),n("div",a)}const g=s(r,[["render",i]]);export{g as default};