@acedatacloud/nexior 3.368.1 → 3.368.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/assets/{ApiCodeButton-C_BQZfJW.js → ApiCodeButton-D_zwre2d.js} +1 -1
  2. package/dist/assets/{ApiCodeDialog-vmVHoLam.js → ApiCodeDialog-CYJp7nvi.js} +1 -1
  3. package/dist/assets/{Artifacts-ChpCJOKB.js → Artifacts-DkJEchOn.js} +1 -1
  4. package/dist/assets/{AskUserQuestionCard-mSiFkgdQ.js → AskUserQuestionCard-CO7KE_4X.js} +1 -1
  5. package/dist/assets/{AudioPreview-CJIm_lvI.js → AudioPreview-CTYrGDRl.js} +1 -1
  6. package/dist/assets/{Auth-qB-HeMSE.js → Auth-CsaxPuJ7.js} +1 -1
  7. package/dist/assets/{Bare-DD4rQjhI.js → Bare-C0UeTlcA.js} +1 -1
  8. package/dist/assets/{BotPlaceholder-C-06_hGv.js → BotPlaceholder-D0kYwWKn.js} +1 -1
  9. package/dist/assets/{BottomFooter-xKdFqMxE.js → BottomFooter-BWBuixjm.js} +1 -1
  10. package/dist/assets/{BrowseConnectors-DlUoYbpH.js → BrowseConnectors-Ci1ldCRW.js} +1 -1
  11. package/dist/assets/{BrowserPairingDialog-Cv6ik7Tt.js → BrowserPairingDialog-CsfIsHcj.js} +1 -1
  12. package/dist/assets/{Callback-DVDhRllz.js → Callback-D3jTmmEz.js} +1 -1
  13. package/dist/assets/{CodeSnippet-COYwlrLG.js → CodeSnippet-BLMbFL3B.js} +1 -1
  14. package/dist/assets/{Console-B9z5vugH.js → Console-C-W7XkW6.js} +1 -1
  15. package/dist/assets/{Conversation-CyvKACP5.js → Conversation-JcmLzm6h.js} +1 -1
  16. package/dist/assets/{Conversation-D1Vxu8UZ.js → Conversation-Wv3YfA6b.js} +1 -1
  17. package/dist/assets/{CopyToClipboard-MUNdxLCY.js → CopyToClipboard-DpWxVezq.js} +1 -1
  18. package/dist/assets/{Detail-DPtgXyni.js → Detail-cWvOxLaX.js} +1 -1
  19. package/dist/assets/{Extra-DuZHP-o1.js → Extra-DqSV591q.js} +1 -1
  20. package/dist/assets/{FilePreview-CRqxouRS.js → FilePreview-v8xWC2mO.js} +1 -1
  21. package/dist/assets/{Hailuo-CSlL2e-I.js → Hailuo-CiNM9cGG.js} +1 -1
  22. package/dist/assets/{History-DJK8ZB6F.js → History-Do8L81Cy.js} +1 -1
  23. package/dist/assets/{ImagePreview-BxkzgXM2.js → ImagePreview-gURgz19m.js} +1 -1
  24. package/dist/assets/{ImageWrapper-ClI1QYmC.js → ImageWrapper-8UKLfqQD.js} +1 -1
  25. package/dist/assets/{Index-Ejc2DqRn.js → Index-5hz58g3f.js} +1 -1
  26. package/dist/assets/{Index-DiKYYHLe.js → Index-65yhHoN4.js} +1 -1
  27. package/dist/assets/{Index-CIiF0NKO.js → Index-AQYLF7mb.js} +1 -1
  28. package/dist/assets/{Index-DNj5DrhQ.js → Index-BB1dXlGC.js} +1 -1
  29. package/dist/assets/{Index-CAh5vWzo.js → Index-BINIYqt7.js} +1 -1
  30. package/dist/assets/{Index-BrfMuRtE.js → Index-BJPWO_ie.js} +1 -1
  31. package/dist/assets/{Index-Ds4bhHrQ.js → Index-BVZNcvoH.js} +1 -1
  32. package/dist/assets/{Index-VzWOhLF12.js → Index-BWjiO-sq2.js} +1 -1
  33. package/dist/assets/{Index-CmdPF6GZ.js → Index-BWly9ZS1.js} +1 -1
  34. package/dist/assets/{Index-DJUDLg60.js → Index-BXA6qK2a.js} +1 -1
  35. package/dist/assets/{Index-BEt_UQ4n.js → Index-B_7hzpYu.js} +1 -1
  36. package/dist/assets/{Index-CpSrezgR.js → Index-BddJgycw.js} +1 -1
  37. package/dist/assets/{Index-BS_5YiAc.js → Index-BitimgA_.js} +1 -1
  38. package/dist/assets/{Index-pY5LRQdk.js → Index-BmCdXVhG.js} +1 -1
  39. package/dist/assets/{Index-DFM729pE.js → Index-Bo2c3MQF.js} +1 -1
  40. package/dist/assets/{Index-B8Abwnk5.js → Index-CP9QP757.js} +1 -1
  41. package/dist/assets/{Index-CROCrzIR.js → Index-CR_yW4Cf.js} +1 -1
  42. package/dist/assets/{Index-DMLv2e1H.js → Index-CZkaMaKf.js} +1 -1
  43. package/dist/assets/{Index-CJCh1DLD.js → Index-CbXQ8GkH.js} +1 -1
  44. package/dist/assets/{Index-B6IfRkYz.js → Index-ChXTwkZI.js} +1 -1
  45. package/dist/assets/{Index-BZvlDh20.js → Index-CleP9KAf.js} +1 -1
  46. package/dist/assets/{Index-vDRc7lOF.js → Index-Colvzq0A.js} +1 -1
  47. package/dist/assets/{Index-BmMND5mq.js → Index-Cr1CEUWl.js} +1 -1
  48. package/dist/assets/{Index-BTEpLzH4.js → Index-CvmSalfv.js} +1 -1
  49. package/dist/assets/{Index-BvhLXXnj.js → Index-D1-2Uu8X.js} +1 -1
  50. package/dist/assets/{Index-SAMUVYwW.js → Index-D4nrkh2j.js} +1 -1
  51. package/dist/assets/{Index-DBrNxdZp.js → Index-D528Kw9y.js} +1 -1
  52. package/dist/assets/{Index-BmgLqjDQ.js → Index-DBsrFFf1.js} +1 -1
  53. package/dist/assets/{Index-B5sBILdS.js → Index-DIyCjLqW.js} +1 -1
  54. package/dist/assets/{Index-C1gDIyud.js → Index-Do5Q_Ru2.js} +1 -1
  55. package/dist/assets/{Index-DlX7uyR-.js → Index-DtYBQEb5.js} +1 -1
  56. package/dist/assets/{Index-BfLPYNxh.js → Index-DxQQb5_T.js} +1 -1
  57. package/dist/assets/{Index-CbSV2jf2.js → Index-G2d0J6hs.js} +1 -1
  58. package/dist/assets/{Index-DuhkeT2I.js → Index-JtyOjCFg.js} +1 -1
  59. package/dist/assets/{Index-D8YF5wSz.js → Index-VTGMbkjg.js} +1 -1
  60. package/dist/assets/{Index-z8IPmr5b.js → Index-VjY22uZl.js} +1 -1
  61. package/dist/assets/{Index-CnTsBUcP.js → Index-g8EdYJyv.js} +1 -1
  62. package/dist/assets/{Invitees-BLg-4sTm.js → Invitees-B_J_LJZC.js} +1 -1
  63. package/dist/assets/{List-D-PDohP7.js → List-C8g8m4nO.js} +1 -1
  64. package/dist/assets/{List-Bx4w04g9.js → List-fQuklSO9.js} +1 -1
  65. package/dist/assets/{List-BZuzRKOI.js → List-wKidYjbx.js} +1 -1
  66. package/dist/assets/{LocalTools--QA-r1rI.js → LocalTools-BUc5cP8n.js} +1 -1
  67. package/dist/assets/{LocalTools-B0awdkTZ.js → LocalTools-B_r5tAm-.js} +1 -1
  68. package/dist/assets/{Logo-DOiGwK11.js → Logo-CYYrqds0.js} +1 -1
  69. package/dist/assets/{Main-DMv5N10z.js → Main-D-4siAND.js} +1 -1
  70. package/dist/assets/{Message-CAadN58l.js → Message-BwTX2hH5.js} +1 -1
  71. package/dist/assets/{Model-CyfMipET.js → Model-ClQvbPKH.js} +1 -1
  72. package/dist/assets/{Navigator-Byv_yTMx.js → Navigator-DOmdVN1d.js} +3 -3
  73. package/dist/assets/{NotFound-BibwPKYv.js → NotFound-C2ogSsSV.js} +1 -1
  74. package/dist/assets/{PageHeader-BFxLXrsR.js → PageHeader-auTdpFls.js} +1 -1
  75. package/dist/assets/{Pay-DfOb1ggy.js → Pay-BATCTJ78.js} +1 -1
  76. package/dist/assets/{Player-Ko9ry_Yy.js → Player-CaeJYMBK.js} +1 -1
  77. package/dist/assets/{Poivelle-5woC8EjA.js → Poivelle-DDz5gtPy.js} +1 -1
  78. package/dist/assets/{RealtimeCall-fOEJnqae.js → RealtimeCall-B6iJHSH4.js} +1 -1
  79. package/dist/assets/{ReportButton-Cf9hMzLL.js → ReportButton-Dg5iEeMg.js} +1 -1
  80. package/dist/assets/{ReportDialog-Bfr8X28D.js → ReportDialog-z6lo4S25.js} +1 -1
  81. package/dist/assets/{ScenarioPaymentMode-Ul5m6vCS.js → ScenarioPaymentMode-Qr9pPAHy.js} +1 -1
  82. package/dist/assets/{ScheduledTasks-Cxo4ZHFG.css → ScheduledTasks-CyOisCDA.css} +1 -1
  83. package/dist/assets/{ScheduledTasks-BoE_nqHM.js → ScheduledTasks-Tt3wYrSz.js} +1 -1
  84. package/dist/assets/{ServicePricingSummary-CN74WnAC.js → ServicePricingSummary-DlacHpj1.js} +1 -1
  85. package/dist/assets/{ShowcaseDetailDialog-BNK2FobS.js → ShowcaseDetailDialog-CDwMk-rh.js} +1 -1
  86. package/dist/assets/{ShowcaseGrid-CNkMjOgC.js → ShowcaseGrid-J0VyE5xG.js} +1 -1
  87. package/dist/assets/{ShowcaseResultTabs-k0aVS8jN.js → ShowcaseResultTabs-BAbfiZTL.js} +1 -1
  88. package/dist/assets/{SolanaWalletPickerDialog-Bsg12Sgw.js → SolanaWalletPickerDialog-DwjtpXUv.js} +1 -1
  89. package/dist/assets/{Status-DfLmd2dt.js → Status-Bm2yNkWu.js} +1 -1
  90. package/dist/assets/{Subscribe-Cck0EjDv.js → Subscribe-DrrUWBIJ.js} +1 -1
  91. package/dist/assets/{TabSwitcher-DlxkMlBA.js → TabSwitcher-DBUNgyoR.js} +1 -1
  92. package/dist/assets/{Tts-C3AmeN6f.js → Tts-uHZU9e_t.js} +1 -1
  93. package/dist/assets/{VideoPlayer-DMwakGOn.js → VideoPlayer-DgwfbUZX.js} +1 -1
  94. package/dist/assets/{VideoPreview-BrfMXofe.js → VideoPreview-B2s_4dS6.js} +1 -1
  95. package/dist/assets/arrow-down-k0qUBMGd.js +1 -0
  96. package/dist/assets/{arrow-down-wide-narrow-DURWOx0l.js → arrow-down-wide-narrow-jvFgqwcj.js} +1 -1
  97. package/dist/assets/arrow-left-Bbgi1LSh.js +1 -0
  98. package/dist/assets/arrow-right-Cl7xoXPe.js +1 -0
  99. package/dist/assets/arrow-up-Besr0MOC.js +1 -0
  100. package/dist/assets/{authorizeFlow-BEU4hlO-.js → authorizeFlow-YexuSq1s.js} +1 -1
  101. package/dist/assets/{avatar-r11OMW-k.js → avatar-BQBeJ6d-.js} +1 -1
  102. package/dist/assets/{basic-Be3-_j53.js → basic-BWG5VB2y.js} +1 -1
  103. package/dist/assets/{book-open-DvzCVU8s.js → book-open-BypLH0PS.js} +1 -1
  104. package/dist/assets/{box-BWbGQOmp.js → box-BX2g7At3.js} +1 -1
  105. package/dist/assets/{boxes-By4b1sNC.js → boxes-C0uXbjyz.js} +1 -1
  106. package/dist/assets/{brain-H1q7bQXO.js → brain-JIzPQDJw.js} +1 -1
  107. package/dist/assets/{chart-no-axes-combined-DTnmtpNi.js → chart-no-axes-combined-z3_F0h4Q.js} +1 -1
  108. package/dist/assets/{chat-DtOVeObr.js → chat-5zXuJhRJ.js} +1 -1
  109. package/dist/assets/{chat-B7l4dn12.js → chat-B2zk1WAX.js} +1 -1
  110. package/dist/assets/{chat-B7lMe26x.js → chat-BExScufd.js} +1 -1
  111. package/dist/assets/{chat-BG8DMOPX.js → chat-CVss2Cs-.js} +1 -1
  112. package/dist/assets/{chat-BeZQFNhL.js → chat-Ci38o-le.js} +1 -1
  113. package/dist/assets/{chat-D8XCDkB4.js → chat-Cn9u-rnV.js} +1 -1
  114. package/dist/assets/{chat-eCEL8zto.js → chat-DJsYRHJf.js} +1 -1
  115. package/dist/assets/{chat-B9ecQVcH.js → chat-DM34UNU0.js} +1 -1
  116. package/dist/assets/{chat-CJYxs53Z.js → chat-DcUn6yD_.js} +1 -1
  117. package/dist/assets/{chat-ydzc-UBR.js → chat-Dy3iX56V.js} +1 -1
  118. package/dist/assets/{chat-CuHjn3UY.js → chat-IGNEIVFo.js} +1 -1
  119. package/dist/assets/{chat-DfvHHFGT.js → chat-L7TF_Xzr.js} +1 -1
  120. package/dist/assets/{chat-BPGX3zpH.js → chat-YthdfkjU.js} +1 -1
  121. package/dist/assets/check-C2egzwF4.js +1 -0
  122. package/dist/assets/chevron-down-DO96vHwz.js +1 -0
  123. package/dist/assets/chevron-right-Cz9hXm1j.js +1 -0
  124. package/dist/assets/{circle-alert-t5ZndnWu.js → circle-alert-CYzsDvGw.js} +1 -1
  125. package/dist/assets/circle-check-B-PPK_M4.js +1 -0
  126. package/dist/assets/{circle-question-mark-dANQS7D_.js → circle-question-mark-DJS4FxMr.js} +1 -1
  127. package/dist/assets/{clipboard-list-C5FM8iHX.js → clipboard-list-DACJOd6U.js} +1 -1
  128. package/dist/assets/clock-CW2sY82G.js +1 -0
  129. package/dist/assets/code-Ib6D6O1O.js +1 -0
  130. package/dist/assets/{codingBridge-BTMMVAYy.js → codingBridge-ClgDh9mL.js} +1 -1
  131. package/dist/assets/{codingBridgeNotify-DWVmZvN1.js → codingBridgeNotify-DnNPsEeh.js} +1 -1
  132. package/dist/assets/{coins-CZ2cIyEB.js → coins-CJxRGhfX.js} +1 -1
  133. package/dist/assets/{collapse-mhzAC7FG.js → collapse-5lf8j5Bc.js} +1 -1
  134. package/dist/assets/{constants-BSFiYSou.js → constants-Dvsv8PB_.js} +1 -1
  135. package/dist/assets/{copy-jk-hxAmN.js → copy-mjAjn9Ms.js} +1 -1
  136. package/dist/assets/{createTaskActions-CVqBZBys.js → createTaskActions-BwxfvKdC.js} +1 -1
  137. package/dist/assets/{date-picker-B4ztjiR7.js → date-picker-CZwPAQHg.js} +1 -1
  138. package/dist/assets/{digitalhuman-vtiP5vKl.js → digitalhuman-DSqiS3A8.js} +1 -1
  139. package/dist/assets/{dollar-sign-CQJ3dLLk.js → dollar-sign-CGu3NUj3.js} +1 -1
  140. package/dist/assets/{download-DXViXQKu.js → download-Kr3QWyOz.js} +1 -1
  141. package/dist/assets/{drawer-DSMPU53I.js → drawer-BjY3KZuA.js} +1 -1
  142. package/dist/assets/{dropdown-DYeT5Rlu.js → dropdown-B-yA93FE.js} +1 -1
  143. package/dist/assets/{dropdown-DxAqiwTq.js → dropdown-r9IaExgV.js} +1 -1
  144. package/dist/assets/{ellipsis-DB8BDgOa.js → ellipsis-j1LAC-Yk.js} +1 -1
  145. package/dist/assets/{esm-loepRbYm.js → esm-DnOYD8F9.js} +2 -2
  146. package/dist/assets/{external-link-DxadXoXD.js → external-link-DgYDFOoo.js} +1 -1
  147. package/dist/assets/{eye-DgooaMMx.js → eye-Pk8tFdVE.js} +1 -1
  148. package/dist/assets/{file-CxwSUX5E.js → file-BOcUIAAo.js} +1 -1
  149. package/dist/assets/{file-output-BS1o9dhb.js → file-output-CoM9Zzks.js} +1 -1
  150. package/dist/assets/{file-text-B_A17J0M.js → file-text-B8FCyw_u.js} +1 -1
  151. package/dist/assets/{fish-gtaFi9IA.js → fish-j0w9SCU9.js} +1 -1
  152. package/dist/assets/{flux-Bayi3cQ8.js → flux-D7Y8069j.js} +1 -1
  153. package/dist/assets/{folder-D15qEDjQ.js → folder-CtVZW0hN.js} +1 -1
  154. package/dist/assets/gauge-CU7iY-Rs.js +1 -0
  155. package/dist/assets/{generationInput-Daa5Los3.js → generationInput-BriLeXaE.js} +1 -1
  156. package/dist/assets/{globe-DgSAoZet.js → globe-CKsL4E4V.js} +1 -1
  157. package/dist/assets/{grokvideo-Bs6GoD8B.js → grokvideo-BVcyVkfR.js} +1 -1
  158. package/dist/assets/{hailuo-CuIka7WZ.js → hailuo-BewNWh3M.js} +1 -1
  159. package/dist/assets/{headphones-0ejuxyR6.js → headphones-CE8FBcL3.js} +1 -1
  160. package/dist/assets/{history-DjItPTnj.js → history-BKrLzb03.js} +1 -1
  161. package/dist/assets/{house-SqieR7DR.js → house-Dwl4YN40.js} +1 -1
  162. package/dist/assets/{i18n-c0vPTu0c.js → i18n-CVK6EEgR.js} +1 -1
  163. package/dist/assets/{image-tC21pCRC.js → image-BRwuxxVC.js} +1 -1
  164. package/dist/assets/{imageRequests-IuGaXWIY.js → imageRequests-rpIWcYy6.js} +1 -1
  165. package/dist/assets/{index-DvTGM53_.js → index-C1wCbgM5.js} +4 -4
  166. package/dist/assets/{index.es-49VJr74K.js → index.es-CyV3cMze.js} +1 -1
  167. package/dist/assets/{info-C4cUVd29.js → info-BGgC-Vxv.js} +1 -1
  168. package/dist/assets/{input-number-vH4-o6sA.js → input-number-DwWslk54.js} +1 -1
  169. package/dist/assets/{key-round-Cnp9EHfQ.js → key-round-Cl9XeyX6.js} +1 -1
  170. package/dist/assets/{kling-61PWqKRh.js → kling-C4JYR6vF.js} +1 -1
  171. package/dist/assets/{languages-Bqc1a8vL.js → languages-yjKO1lwY.js} +1 -1
  172. package/dist/assets/{laptop-DeTU4sRt.js → laptop-DnrC8IK_.js} +1 -1
  173. package/dist/assets/{lightbulb-D7mjO9Jh.js → lightbulb-CxiC788t.js} +1 -1
  174. package/dist/assets/{link-ZZ6djOZr.js → link-mCzq3h43.js} +1 -1
  175. package/dist/assets/loader-circle-BmvmwmJX.js +1 -0
  176. package/dist/assets/{lock-CqqDi_32.js → lock-p4bytfJM.js} +1 -1
  177. package/dist/assets/{luma-CzZBy3_b.js → luma-CgZZG3LX.js} +1 -1
  178. package/dist/assets/{maestro-DFrKIxI8.js → maestro-CXAvEJMG.js} +1 -1
  179. package/dist/assets/{maestroLanguages-Cq7fmsCM.js → maestroLanguages-C_SGiOVl.js} +1 -1
  180. package/dist/assets/{mail-BagUGf-P.js → mail-CVGHm4Dt.js} +1 -1
  181. package/dist/assets/{message-circle-DSl3m_Pv.js → message-circle-BxzXAh6n.js} +1 -1
  182. package/dist/assets/{mic-DeSGS776.js → mic-BycjUf9t.js} +1 -1
  183. package/dist/assets/{midjourney-CkF7tszD.js → midjourney-dmGucHEa.js} +1 -1
  184. package/dist/assets/{minimax-6MVwFMJd.js → minimax-DJK5HVCN.js} +1 -1
  185. package/dist/assets/{mobileLocalExec-C3b_uNTV.js → mobileLocalExec-BtTYbYVv.js} +1 -1
  186. package/dist/assets/{models-BpGydDYc.js → models-DwqNv9Tl.js} +1 -1
  187. package/dist/assets/{monitor-jUch1QDq.js → monitor-DlQOgKL6.js} +1 -1
  188. package/dist/assets/{mouse-pointer-2-D2YoLwzP.js → mouse-pointer-2-DfU3tb-y.js} +1 -1
  189. package/dist/assets/music-2-BAsZ9By6.js +1 -0
  190. package/dist/assets/{nanobanana-C1DfUHY4.js → nanobanana-CCAYYjhL.js} +1 -1
  191. package/dist/assets/{omni-CGRAzsmE.js → omni-BeDC_4kp.js} +1 -1
  192. package/dist/assets/{openaiimage-dyuFuZRI.js → openaiimage-pGx3B38d.js} +1 -1
  193. package/dist/assets/{pagination-CFDRyd8v.js → pagination-BBmdiMET.js} +1 -1
  194. package/dist/assets/{pagination-NYLKdTqd.js → pagination-CsLQfKOF.js} +1 -1
  195. package/dist/assets/{pagination-_QW7cebo.js → pagination-YGgFlre-.js} +1 -1
  196. package/dist/assets/{palette-CioGo7Mr.js → palette-Ftb8R_W8.js} +1 -1
  197. package/dist/assets/{paperclip-B4CQhkYN.js → paperclip-B_A89j1W.js} +1 -1
  198. package/dist/assets/{pause-NmVdw3Z2.js → pause-D5E9w-Iu.js} +1 -1
  199. package/dist/assets/{pencil-BzDgaTSv.js → pencil-D8DwHBuu.js} +1 -1
  200. package/dist/assets/{pika-CXz3DUce.js → pika-B5Nkuix_.js} +1 -1
  201. package/dist/assets/{pixverse-DivFfFWx.js → pixverse-CfzRfADP.js} +1 -1
  202. package/dist/assets/play-CcPOsUEW.js +1 -0
  203. package/dist/assets/{plug-kDzBXhRD.js → plug-XJsoJAu6.js} +1 -1
  204. package/dist/assets/plus-DNN6bXch.js +1 -0
  205. package/dist/assets/{poivelle-Dj_5vZBU.js → poivelle-C8b78TlW.js} +1 -1
  206. package/dist/assets/{popover-JJPFM_3s.js → popover-BU2QEY0z.js} +1 -1
  207. package/dist/assets/{producer-BylR9t4O.js → producer-s48-_ovl.js} +1 -1
  208. package/dist/assets/{qrart-CBokQhDa.js → qrart-DF-ghwfb.js} +1 -1
  209. package/dist/assets/{qwenimage-CGuCWP5W.js → qwenimage-dL_QAmHJ.js} +1 -1
  210. package/dist/assets/{realtime-CX71aJl-.js → realtime-jK_UKmBV.js} +1 -1
  211. package/dist/assets/{refresh-cw-CaOY3caU.js → refresh-cw-BAKfhJTV.js} +1 -1
  212. package/dist/assets/rotate-ccw-By16T_SL.js +1 -0
  213. package/dist/assets/rotate-cw-DKuHuwoe.js +1 -0
  214. package/dist/assets/{row-BsnBegN2.js → row-BO9y_hip.js} +1 -1
  215. package/dist/assets/search-WhhWmGMJ.js +1 -0
  216. package/dist/assets/{seedance-jjlJapdy.js → seedance-sezBc658.js} +1 -1
  217. package/dist/assets/{seedream-DH0F0IQK.js → seedream-B2zeIKjf.js} +1 -1
  218. package/dist/assets/{select-CLubZdq7.js → select-D9KGK8y4.js} +1 -1
  219. package/dist/assets/{serp-ClvyAerX.js → serp-IfDUj0Hw.js} +1 -1
  220. package/dist/assets/{shield-DJLOquF2.js → shield-CRScFFFc.js} +1 -1
  221. package/dist/assets/{showcase-Cs_oOGpe.js → showcase-BZb6acJ9.js} +1 -1
  222. package/dist/assets/{showcaseRecreateMixin-kWXcDwMJ.js → showcaseRecreateMixin-RMdhdceZ.js} +1 -1
  223. package/dist/assets/{shuffle-CLNwpXyW.js → shuffle-CeMvPqlM.js} +1 -1
  224. package/dist/assets/{siteBanner-45h7cTjL.js → siteBanner-CucdTDjc.js} +1 -1
  225. package/dist/assets/{slider-ClOCINsJ.js → slider-DvbYbr51.js} +1 -1
  226. package/dist/assets/{solana-wallets-DdxPiYQ_.js → solana-wallets-Dem4rf9Q.js} +2 -2
  227. package/dist/assets/{sora-7wl5x99Y.js → sora-CYowZEyb.js} +1 -1
  228. package/dist/assets/{sparkles-BbFcM570.js → sparkles-bPTUXyQv.js} +1 -1
  229. package/dist/assets/square-B2Le-KnM.js +1 -0
  230. package/dist/assets/{store-BvM1giRK.js → store-BJlWzucU.js} +1 -1
  231. package/dist/assets/{suno-B7CBUUB4.js → suno-3OBIcM57.js} +1 -1
  232. package/dist/assets/{switch-l4T7Q7-e.js → switch-D50Uo6En.js} +1 -1
  233. package/dist/assets/{table-Qda4VvZD.js → table-BNSqNcpI.js} +1 -1
  234. package/dist/assets/{tabs-6hi2Rm4j.js → tabs-6y-afrzh.js} +1 -1
  235. package/dist/assets/{tag-C7g4Lmmp.js → tag-DhD-qt13.js} +1 -1
  236. package/dist/assets/terminal-Bxtp0ao3.js +1 -0
  237. package/dist/assets/{time-picker-DrCj4h_h.js → time-picker-z8WPgvWy.js} +1 -1
  238. package/dist/assets/{tooltip-CbdHMzJA.js → tooltip-cWv_ok9x.js} +1 -1
  239. package/dist/assets/{trash-2-DHDZkxkx.js → trash-2--Y4CZ78D.js} +1 -1
  240. package/dist/assets/{triangle-alert-BJ4LPyYk.js → triangle-alert-DqUccgxs.js} +1 -1
  241. package/dist/assets/{upload-CIplFhpf.js → upload-Bg2_7WAz.js} +1 -1
  242. package/dist/assets/{upload-R9TAaxbr.js → upload-CL3abvuk.js} +1 -1
  243. package/dist/assets/user-DmnyyJnr.js +1 -0
  244. package/dist/assets/{veo-J8yLP0It.js → veo-DgwQ5y4T.js} +1 -1
  245. package/dist/assets/{video-XpLjh-Fi.js → video-DNcawGU0.js} +1 -1
  246. package/dist/assets/{volume-2-BiZ_tZsA.js → volume-2-CfrTXKew.js} +1 -1
  247. package/dist/assets/{wallet-BuRhXmc8.js → wallet-Ch5mrXLp.js} +1 -1
  248. package/dist/assets/{wan-XhhE5jB8.js → wan-BU9zEmef.js} +1 -1
  249. package/dist/assets/{wand-sparkles-B6SKd5hA.js → wand-sparkles-NtJ7A5GO.js} +1 -1
  250. package/dist/assets/{web-Cstf0TzK.js → web-C68VVbKO.js} +1 -1
  251. package/dist/assets/{webextrator-DbYzPJkG.js → webextrator-B-KF6hLn.js} +1 -1
  252. package/dist/assets/{zap-2FZ2itxO.js → zap-DBlKkDGz.js} +1 -1
  253. package/dist/index.html +4 -4
  254. package/package.json +1 -1
  255. package/dist/assets/arrow-down-DqZv6Uuw.js +0 -1
  256. package/dist/assets/arrow-left-BfpsFRjB.js +0 -1
  257. package/dist/assets/arrow-right-5W-k8MV1.js +0 -1
  258. package/dist/assets/arrow-up-BpOjmXEc.js +0 -1
  259. package/dist/assets/check-D68gcWiu.js +0 -1
  260. package/dist/assets/chevron-down-OXhxjLss.js +0 -1
  261. package/dist/assets/chevron-right-BwB0OgQN.js +0 -1
  262. package/dist/assets/circle-check-D2iK-YZa.js +0 -1
  263. package/dist/assets/clock-DGhHlqhN.js +0 -1
  264. package/dist/assets/code-DYjYlT8B.js +0 -1
  265. package/dist/assets/gauge-CvYMw7F5.js +0 -1
  266. package/dist/assets/loader-circle-DMcwXcOu.js +0 -1
  267. package/dist/assets/music-2-Z8LCQfXe.js +0 -1
  268. package/dist/assets/play-B2XuFOPp.js +0 -1
  269. package/dist/assets/plus-Bg0EWI0e.js +0 -1
  270. package/dist/assets/rotate-ccw-D9dOMJ5i.js +0 -1
  271. package/dist/assets/rotate-cw-CPenk74r.js +0 -1
  272. package/dist/assets/search-COQvr-qE.js +0 -1
  273. package/dist/assets/square-B05hEZud.js +0 -1
  274. package/dist/assets/terminal-BP4wR5NV.js +0 -1
  275. package/dist/assets/user-BvflVZDf.js +0 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,qt as m,rt as h,tt as g,x as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{r as y,t as b}from"./select-CLubZdq7.js";import{t as x}from"./upload-CIplFhpf.js";import{t as S}from"./tooltip-CbdHMzJA.js";import{t as C}from"./alert-BprQRUmf.js";import{h as w,v as T}from"./models-BpGydDYc.js";import{t as E}from"./drawer-DSMPU53I.js";import{t as D}from"./clock-DGhHlqhN.js";import{a as O,i as k,n as A,r as ee,s as j,t as M}from"./pagination-NYLKdTqd.js";import{t as N}from"./info-C4cUVd29.js";import{t as P}from"./trash-2-DHDZkxkx.js";import{t as F}from"./triangle-alert-BJ4LPyYk.js";import{t as I}from"./upload-R9TAaxbr.js";import{t as L}from"./wand-sparkles-B6SKd5hA.js";import{ai as te,ci as ne,di as re,ii as R,oi as z,ri as B,si as V,ui as H}from"./constants-BSFiYSou.js";import{$ as U,A as W,Ar as G,Fi as K,Li as q,O as J,Pa as Y,Qa as X,Ra as Z,Sn as ie,Xi as ae,Y as oe,et as se,jr as Q,li as ce,na as le,nt as ue,rt as de,si as fe,tt as pe}from"./index-DvTGM53_.js";import{t as me}from"./CopyToClipboard-MUNdxLCY.js";import{t as he}from"./ReportButton-Cf9hMzLL.js";import{t as ge}from"./ImagePreview-BxkzgXM2.js";import{n as _e}from"./taskDrawerMixin-DyAUhFEq.js";import{t as ve}from"./ServicePricingSummary-CN74WnAC.js";import{t as ye}from"./VideoPlayer-DMwakGOn.js";import{t as be}from"./ScenarioPaymentMode-Ul5m6vCS.js";import{t as xe}from"./ApiCodeButton-C_BQZfJW.js";import{t as Se}from"./BotPlaceholder-C-06_hGv.js";import{n as Ce,t as we}from"./generationInput-Daa5Los3.js";var Te=v({name:`LayoutSora`,components:{MagicIcon:L,ElDrawer:E,ElButton:X},mixins:[_e]}),Ee={class:`main flex flex-row flex-1`},De={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Oe={class:`result h-full p-4 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ke(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),h=l(`el-drawer`);return g(),s(`div`,Ee,[e(`div`,De,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,Oe,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[_,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var Ae=W(Te,[[`render`,ke],[`__scopeId`,`data-v-9432bca3`]]),je=v({name:`ModelSelector`,components:{ElSelect:y,ElOption:b},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:re,label:`sora-2`},{value:H,label:`sora-2-pro`}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){let t=this.$store.state.sora?.config||{},n=B[e]||[10],r=t.duration,i=r&&n.includes(r)?r:n.includes(10)?10:n[0],a={...t,model:e,duration:i,size:t.size||`small`};this.$store.commit(`sora/setConfig`,a)}}},mounted(){this.value||=z}}),Me={class:`field`},Ne={class:`title font-bold`};function Pe(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Me,[e(`h2`,Ne,i(t.$t(`sora.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Fe=W(je,[[`render`,Pe],[`__scopeId`,`data-v-0cb7913d`]]),Ie=v({name:`ActionSelector`,components:{ElSelect:y,ElOption:b},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`sora.button.action1`)},{value:`image2video`,label:this.$t(`sora.button.action2`)}]},value:{get(){return this.$store.state.sora?.config?.action},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,action:e})}}},mounted(){this.value||=te}}),Le={class:`field`},Re={class:`title font-bold`},ze={class:`float-left`};function Be(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Le,[e(`h2`,Re,i(t.$t(`sora.name.action`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`),clearable:``},{default:p(()=>[(g(!0),s(c,null,h(t.options,t=>(g(),f(m,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,ze,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ve=W(Ie,[[`render`,Be],[`__scopeId`,`data-v-7b82fa7f`]]),He=v({name:`DurationSelector`,components:{ElSelect:y,ElOption:b},computed:{model(){return this.$store.state.sora?.config?.model||`sora-2`},allowedDurations(){return B[this.model]||[10]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,duration:e})}}},watch:{allowedDurations(){let e=this.allowedDurations;if(!e.includes(this.value)){let t=e.includes(10)?10:e[0];this.value=t}}},mounted(){this.value||=10}}),Ue={class:`field`},We={class:`control`},Ge={class:`title font-bold`};function Ke(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Ue,[e(`div`,We,[e(`h2`,Ge,i(t.$t(`sora.name.duration`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.optionsForModel,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var qe=W(He,[[`render`,Ke],[`__scopeId`,`data-v-c2934598`]]),Je=v({name:`OrientationSelector`,data(){return{options:[{value:`portrait`,labelKey:`sora.option.portrait`,width:13,height:25},{value:`landscape`,labelKey:`sora.option.landscape`,width:25,height:13}]}},computed:{active(){let e=this.options.findIndex(e=>e.value===this.value);return e>=0?e:0},value:{get(){return this.$store.state.sora?.config?.orientation},set(e){console.debug(`set orientation`,e),this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,orientation:e})}}},mounted(){this.value||=V}}),Ye={class:`text-sm font-bold mb-2 block`},Xe={class:`items`},Ze=[`onClick`],Qe={class:`name`};function $e(t,r,a,o,l,u){return g(),s(`div`,null,[e(`span`,Ye,i(t.$t(`sora.name.orientation`)),1),e(`div`,Xe,[(g(!0),s(c,null,h(t.options,(r,a)=>(g(),s(`div`,{key:a,class:n({active:t.active===a,item:!0}),onClick:e=>t.value=r.value},[e(`div`,{class:n([`preview`,r.value])},[e(`div`,{class:`rect`,style:m({width:r.width+`px`,height:r.height+`px`})},null,4)],2),e(`p`,Qe,i(t.$t(r.labelKey)),1)],10,Ze))),128))])])}var et=W(Je,[[`render`,$e],[`__scopeId`,`data-v-a20be6d9`]]),tt=v({name:`StartEndImage`,components:{UploadIcon:I,ElUpload:x,ElButton:X,InfoIcon:O,ImagePreview:ge},mixins:[de,ue,se,oe],emits:[`change`],data(){return{fileList:[],uploadUrl:Y()+`/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?.sora?.config?.image_urls},set(){}}},mounted(){this.value||=void 0,this.onSetStartEndImageUrl()},methods:{onExceed(){T.warning(this.$t(`sora.message.uploadReferencesExceed`))},onError(){T.error(this.$t(`sora.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),nt={class:`relative`},rt={class:`flex justify-between`},it={class:`flex justify-start items-center`},at={class:`text-sm font-bold`};function ot(t,n,c,u,d,m){let h=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return g(),s(`div`,nt,[e(`div`,rt,[e(`div`,it,[e(`span`,at,i(t.$t(`sora.name.startEndImage`)),1),a(h,{content:t.$t(`sora.description.uploadStartEndImage`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:2,class:`upload-wrapper`,multiple:!1,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(g(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var st=W(tt,[[`render`,ot],[`__scopeId`,`data-v-01b87539`]]),ct=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),lt=v({name:`SizeSelector`,components:{ElSelect:y,ElOption:b},data(){return{options:R.map(e=>({value:e,label:ct(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,size:e})}}},mounted(){this.value||=ne}}),ut={class:`field`},dt={class:`control`},ft={class:`title font-bold`};function pt(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,ut,[e(`div`,dt,[e(`h2`,ft,i(t.$t(`sora.name.size`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var mt=W(lt,[[`render`,pt],[`__scopeId`,`data-v-8c485f0f`]]),ht=v({name:`PromptInput`,components:{PromptTextarea:k},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||=``}});function gt(e,t,n,r,i,a){let o=l(`prompt-textarea`);return g(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`sora.name.prompt`),info:e.$t(`sora.description.prompt`),placeholder:e.$t(`sora.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var _t=v({name:`ConfigPanel`,components:{MagicIcon:L,ElButton:X,ServicePricingSummary:ve,PromptInput:W(ht,[[`render`,gt]]),ModelSelector:Fe,StartEndImage:st,SizeSelector:mt,ActionSelector:Ve,OrientationSelector:et,DurationSelector:qe,ScenarioPaymentMode:be},emits:[`generate`],data(){return{quoteTimer:0,quoteRunId:0}},computed:{canGenerate(){return we(`sora`,G(this.config))},config(){return this.$store.state.sora?.config},consumption(){return ie(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service},walletMode(){return K()&&q(`sora`).mode===`wallet`}},watch:{walletMode:{handler(e){e&&this.scheduleQuote()},immediate:!0},config:{handler(){this.walletMode&&this.scheduleQuote()},deep:!0}},beforeUnmount(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1},methods:{scheduleQuote(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1;let e=q(`sora`);e.quoteUsdc=void 0,e.quoteLoading=!1,this.canGenerate&&(this.quoteTimer=window.setTimeout(this.refreshQuote,350))},async refreshQuote(){if(!this.canGenerate)return;let e=q(`sora`),t=++this.quoteRunId;e.quoteLoading=!0,e.quoteUsdc=void 0;try{let n=await Q.quote(G(this.config));t===this.quoteRunId&&e.mode===`wallet`&&this.canGenerate&&(e.quoteUsdc=n.amountUsdc)}catch(e){console.warn(`x402 quote failed`,e)}finally{t===this.quoteRunId&&(e.quoteLoading=!1)}},onGenerate(){this.$emit(`generate`)}}}),vt={class:`flex flex-col h-full`},yt={class:`flex-1 overflow-y-auto p-5`},bt={class:`flex flex-col items-center justify-center px-5 pb-5`};function xt(t,n,c,d,m,h){let v=l(`model-selector`),y=l(`action-selector`),b=l(`duration-selector`),x=l(`size-selector`),S=l(`orientation-selector`),C=l(`prompt-input`),w=l(`start-end-image`),T=l(`scenario-payment-mode`),E=l(`service-pricing-summary`),D=l(`magic-icon`),O=l(`el-button`);return g(),s(`div`,vt,[e(`div`,yt,[a(v,{class:`mb-4`}),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`}),a(S,{class:`mb-4`}),a(C,{class:`mb-4`}),u(a(w,{class:`mb-4`},null,512),[[_,t.config?.action===`image2video`]])]),e(`div`,bt,[a(T,{scenario:`sora`}),t.walletMode?o(``,!0):(g(),f(E,{key:0,value:t.consumption,service:t.service},null,8,[`value`,`service`])),a(O,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:p(()=>[a(D,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var St=W(_t,[[`render`,xt]]),Ct=v({name:`TaskPreview`,components:{DeleteIcon:P,ChannelIcon:j,InfoIcon:N,MagicIcon:L,TimeIcon:D,WarningIcon:F,CopyToClipboard:me,ElAlert:C,VideoPlayer:ye,ElTooltip:S,ElButton:X,ApiCodeButton:xe,ReportButton:he},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.sora?.application},config(){return this.$store.state.sora?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await Z.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`sora/deleteTask`,{id:e}),T.success(this.$t(`common.message.deleteTaskSuccess`))}catch{T.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),wt={class:`preview`},Tt={class:`left`},Et={class:`main`},Dt={class:`bot`},Ot={class:`datetime`},kt=[`aria-label`],At={class:`info`},jt={key:0,class:`prompt mt-2`},Mt={key:0},Nt={key:1},Pt={key:0,class:n({content:!0,failed:!0})},Ft={key:0,class:`mb-4`},It={key:1,class:n({operations:!0,"mt-2":!0})},Lt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Rt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},zt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Bt={key:1,class:n({content:!0})},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ht={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ut={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Wt={key:2,class:n({content:!0})},Gt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Kt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function qt(n,c,u,d,m,h){let _=l(`capability-presentation`),v=l(`delete-icon`),y=l(`el-tooltip`),b=l(`video-player`),x=l(`el-button`),S=l(`api-code-button`),C=l(`report-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return g(),s(`div`,wt,[e(`div`,Tt,[a(_,{capability:`sora`,part:`avatar`,class:`avatar`})]),e(`div`,Et,[e(`div`,Dt,[a(_,{capability:`sora`,part:`name`}),e(`span`,Ot,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(y,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(g(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,kt)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,At,[n.modelValue?.request?.prompt?(g(),s(`p`,jt,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(g(),s(`span`,Mt,` - (`+i(n.$t(`sora.status.pending`))+`) `,1)),n.modelValue?.response&&n.modelValue?.response?.success===void 0?(g(),s(`span`,Nt,` - (`+i(n.$t(`sora.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0&&n.modelValue?.response?.data?(g(),s(`div`,Pt,[n.modelValue?.response?.data[0]?.video_url?(g(),s(`div`,Ft,[a(b,{src:n.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response.success?(g(),s(`div`,It,[a(y,{class:`box-item`,effect:`dark`,content:n.$t(`sora.message.downloadVideo`),placement:`top-start`},{default:p(()=>[n.modelValue?.response?.data[0]?.video_url?(g(),f(x,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=e=>n.onDownload(e,n.modelValue?.response?.data[0]?.video_url)},{default:p(()=>[r(i(n.$t(`sora.button.download`)),1)]),_:1})):o(``,!0)]),_:1},8,[`content`]),a(S,{path:`/sora/videos`,body:n.modelValue?.request},null,8,[`body`]),a(C,{service:`sora`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])])):o(``,!0),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,Lt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,Rt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,zt,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(g(),s(`div`,Bt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failure`)),1)]),default:p(()=>[e(`p`,$,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,Vt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,Ht,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,Ut,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===void 0?(g(),s(`div`,Wt,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`sora.status.processing`:`sora.status.pending`)),1)]),default:p(()=>[e(`p`,Gt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.response?.trace_id?(g(),s(`p`,Kt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0)])])}var Jt=v({name:`RecentPanel`,components:{TaskPreview:W(Ct,[[`render`,qt],[`__scopeId`,`data-v-808e51ba`]]),NoTasks:ee,BotPlaceholder:Se,ScrollList:A},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.sora?.tasks,items:this.$store.state.sora?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Yt={key:0},Xt={key:2,class:`w-full h-full flex items-center justify-center`};function Zt(e,t,n,r,i,u){let d=l(`bot-placeholder`),m=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return g(),s(c,null,[e.tasks?.items===void 0?(g(),s(`div`,Yt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(g(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(g(!0),s(c,null,h(e.tasks?.items,(e,t)=>(g(),f(m,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(g(),s(`div`,Xt,[a(v)])):o(``,!0)],64)}var Qt=v({name:`SoraIndex`,components:{ConfigPanel:St,Layout:Ae,RecentPanel:W(Jt,[[`render`,Zt]])},mixins:[pe],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1,walletTaskIds:[]}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===w.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===w.Request||this.fetchingTasks},credential(){return this.$store.state.sora.credential},config(){return this.$store.state.sora.config},tasks(){return this.$store.state.sora.tasks},walletMode(){return K()&&q(`sora`).mode===`wallet`}},watch:{walletMode:{async handler(e,t){if(!(t===void 0||e===t)){if(this.$store.commit(`sora/setTasks`,void 0),e&&!this.job&&(this.job=window.setInterval(this.onGetTasks,5e3)),!e&&!this.credential?.token){window.clearInterval(this.job),this.job=0,await this.onScrollDown();return}await this.onGetTasks(),await this.onScrollDown()}}},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 M({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(`sora/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`sora/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`sora/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r,...this.walletMode&&!this.credential?.token?{mode:`x402`,ids:this.walletTaskIds}:{}})}finally{this.fetchingTasks=!1}},async onGenerate(){let e=G(this.config),t=Ce(`sora`,e);if(t){T.error(this.$t(`common.message.${t}`));return}if(!U(this.uploadTracker,e=>this.$t(e),e=>T.warning(e)))return;let n;if(this.walletMode){let t=this.getWalletContext();if(!t){T.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}n=Q.generate(e,{mode:`x402`,x402:{wallet:t,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credential?.token}})}else{if(!le())return;let t=this.credential?.token;if(!t)return;n=Q.generate(e,{token:t})}T.info(this.$t(`sora.message.startingTask`)),ae(`sora`,n).then(e=>{let t=e?.data?.task_id;this.walletMode&&!this.credential?.token&&t&&!this.walletTaskIds.includes(t)&&this.walletTaskIds.unshift(t),T.success(this.$t(`sora.message.startTaskSuccess`))}).catch(e=>{e instanceof fe||J(e,`sora`)||(this.walletMode?T.error(this.$t(`common.x402Scenario.paymentFailed`)):T.error(this.$t(`sora.message.startTaskFailed`)))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getWalletContext(){return ce(this.$wallet)},async confirmWalletPayment(e){return Z.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function $t(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return g(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var en=W(Qt,[[`render`,$t]]);export{en as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,qt as m,rt as h,tt as g,x as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{r as y,t as b}from"./select-D9KGK8y4.js";import{t as x}from"./upload-Bg2_7WAz.js";import{t as S}from"./tooltip-cWv_ok9x.js";import{t as C}from"./alert-BprQRUmf.js";import{h as w,v as T}from"./models-DwqNv9Tl.js";import{t as E}from"./drawer-BjY3KZuA.js";import{t as D}from"./clock-CW2sY82G.js";import{a as O,i as k,n as A,r as ee,s as j,t as M}from"./pagination-CsLQfKOF.js";import{t as N}from"./info-BGgC-Vxv.js";import{t as P}from"./trash-2--Y4CZ78D.js";import{t as F}from"./triangle-alert-DqUccgxs.js";import{t as I}from"./upload-CL3abvuk.js";import{t as L}from"./wand-sparkles-NtJ7A5GO.js";import{ai as te,ci as ne,di as re,ii as R,oi as z,ri as B,si as V,ui as H}from"./constants-Dvsv8PB_.js";import{$ as U,A as W,Ar as G,Fi as K,Li as q,O as J,Pa as Y,Qa as X,Ra as Z,Sn as ie,Xi as ae,Y as oe,et as se,jr as Q,li as ce,na as le,nt as ue,rt as de,si as fe,tt as pe}from"./index-C1wCbgM5.js";import{t as me}from"./CopyToClipboard-DpWxVezq.js";import{t as he}from"./ReportButton-Dg5iEeMg.js";import{t as ge}from"./ImagePreview-gURgz19m.js";import{n as _e}from"./taskDrawerMixin-DyAUhFEq.js";import{t as ve}from"./ServicePricingSummary-DlacHpj1.js";import{t as ye}from"./VideoPlayer-DgwfbUZX.js";import{t as be}from"./ScenarioPaymentMode-Qr9pPAHy.js";import{t as xe}from"./ApiCodeButton-D_zwre2d.js";import{t as Se}from"./BotPlaceholder-D0kYwWKn.js";import{n as Ce,t as we}from"./generationInput-BriLeXaE.js";var Te=v({name:`LayoutSora`,components:{MagicIcon:L,ElDrawer:E,ElButton:X},mixins:[_e]}),Ee={class:`main flex flex-row flex-1`},De={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Oe={class:`result h-full p-4 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ke(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),h=l(`el-drawer`);return g(),s(`div`,Ee,[e(`div`,De,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,Oe,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[_,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var Ae=W(Te,[[`render`,ke],[`__scopeId`,`data-v-9432bca3`]]),je=v({name:`ModelSelector`,components:{ElSelect:y,ElOption:b},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:re,label:`sora-2`},{value:H,label:`sora-2-pro`}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){let t=this.$store.state.sora?.config||{},n=B[e]||[10],r=t.duration,i=r&&n.includes(r)?r:n.includes(10)?10:n[0],a={...t,model:e,duration:i,size:t.size||`small`};this.$store.commit(`sora/setConfig`,a)}}},mounted(){this.value||=z}}),Me={class:`field`},Ne={class:`title font-bold`};function Pe(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Me,[e(`h2`,Ne,i(t.$t(`sora.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Fe=W(je,[[`render`,Pe],[`__scopeId`,`data-v-0cb7913d`]]),Ie=v({name:`ActionSelector`,components:{ElSelect:y,ElOption:b},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`sora.button.action1`)},{value:`image2video`,label:this.$t(`sora.button.action2`)}]},value:{get(){return this.$store.state.sora?.config?.action},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,action:e})}}},mounted(){this.value||=te}}),Le={class:`field`},Re={class:`title font-bold`},ze={class:`float-left`};function Be(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Le,[e(`h2`,Re,i(t.$t(`sora.name.action`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`),clearable:``},{default:p(()=>[(g(!0),s(c,null,h(t.options,t=>(g(),f(m,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,ze,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ve=W(Ie,[[`render`,Be],[`__scopeId`,`data-v-7b82fa7f`]]),He=v({name:`DurationSelector`,components:{ElSelect:y,ElOption:b},computed:{model(){return this.$store.state.sora?.config?.model||`sora-2`},allowedDurations(){return B[this.model]||[10]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,duration:e})}}},watch:{allowedDurations(){let e=this.allowedDurations;if(!e.includes(this.value)){let t=e.includes(10)?10:e[0];this.value=t}}},mounted(){this.value||=10}}),Ue={class:`field`},We={class:`control`},Ge={class:`title font-bold`};function Ke(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Ue,[e(`div`,We,[e(`h2`,Ge,i(t.$t(`sora.name.duration`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.optionsForModel,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var qe=W(He,[[`render`,Ke],[`__scopeId`,`data-v-c2934598`]]),Je=v({name:`OrientationSelector`,data(){return{options:[{value:`portrait`,labelKey:`sora.option.portrait`,width:13,height:25},{value:`landscape`,labelKey:`sora.option.landscape`,width:25,height:13}]}},computed:{active(){let e=this.options.findIndex(e=>e.value===this.value);return e>=0?e:0},value:{get(){return this.$store.state.sora?.config?.orientation},set(e){console.debug(`set orientation`,e),this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,orientation:e})}}},mounted(){this.value||=V}}),Ye={class:`text-sm font-bold mb-2 block`},Xe={class:`items`},Ze=[`onClick`],Qe={class:`name`};function $e(t,r,a,o,l,u){return g(),s(`div`,null,[e(`span`,Ye,i(t.$t(`sora.name.orientation`)),1),e(`div`,Xe,[(g(!0),s(c,null,h(t.options,(r,a)=>(g(),s(`div`,{key:a,class:n({active:t.active===a,item:!0}),onClick:e=>t.value=r.value},[e(`div`,{class:n([`preview`,r.value])},[e(`div`,{class:`rect`,style:m({width:r.width+`px`,height:r.height+`px`})},null,4)],2),e(`p`,Qe,i(t.$t(r.labelKey)),1)],10,Ze))),128))])])}var et=W(Je,[[`render`,$e],[`__scopeId`,`data-v-a20be6d9`]]),tt=v({name:`StartEndImage`,components:{UploadIcon:I,ElUpload:x,ElButton:X,InfoIcon:O,ImagePreview:ge},mixins:[de,ue,se,oe],emits:[`change`],data(){return{fileList:[],uploadUrl:Y()+`/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?.sora?.config?.image_urls},set(){}}},mounted(){this.value||=void 0,this.onSetStartEndImageUrl()},methods:{onExceed(){T.warning(this.$t(`sora.message.uploadReferencesExceed`))},onError(){T.error(this.$t(`sora.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),nt={class:`relative`},rt={class:`flex justify-between`},it={class:`flex justify-start items-center`},at={class:`text-sm font-bold`};function ot(t,n,c,u,d,m){let h=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return g(),s(`div`,nt,[e(`div`,rt,[e(`div`,it,[e(`span`,at,i(t.$t(`sora.name.startEndImage`)),1),a(h,{content:t.$t(`sora.description.uploadStartEndImage`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:2,class:`upload-wrapper`,multiple:!1,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(g(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var st=W(tt,[[`render`,ot],[`__scopeId`,`data-v-01b87539`]]),ct=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),lt=v({name:`SizeSelector`,components:{ElSelect:y,ElOption:b},data(){return{options:R.map(e=>({value:e,label:ct(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,size:e})}}},mounted(){this.value||=ne}}),ut={class:`field`},dt={class:`control`},ft={class:`title font-bold`};function pt(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,ut,[e(`div`,dt,[e(`h2`,ft,i(t.$t(`sora.name.size`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var mt=W(lt,[[`render`,pt],[`__scopeId`,`data-v-8c485f0f`]]),ht=v({name:`PromptInput`,components:{PromptTextarea:k},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||=``}});function gt(e,t,n,r,i,a){let o=l(`prompt-textarea`);return g(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`sora.name.prompt`),info:e.$t(`sora.description.prompt`),placeholder:e.$t(`sora.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var _t=v({name:`ConfigPanel`,components:{MagicIcon:L,ElButton:X,ServicePricingSummary:ve,PromptInput:W(ht,[[`render`,gt]]),ModelSelector:Fe,StartEndImage:st,SizeSelector:mt,ActionSelector:Ve,OrientationSelector:et,DurationSelector:qe,ScenarioPaymentMode:be},emits:[`generate`],data(){return{quoteTimer:0,quoteRunId:0}},computed:{canGenerate(){return we(`sora`,G(this.config))},config(){return this.$store.state.sora?.config},consumption(){return ie(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service},walletMode(){return K()&&q(`sora`).mode===`wallet`}},watch:{walletMode:{handler(e){e&&this.scheduleQuote()},immediate:!0},config:{handler(){this.walletMode&&this.scheduleQuote()},deep:!0}},beforeUnmount(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1},methods:{scheduleQuote(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1;let e=q(`sora`);e.quoteUsdc=void 0,e.quoteLoading=!1,this.canGenerate&&(this.quoteTimer=window.setTimeout(this.refreshQuote,350))},async refreshQuote(){if(!this.canGenerate)return;let e=q(`sora`),t=++this.quoteRunId;e.quoteLoading=!0,e.quoteUsdc=void 0;try{let n=await Q.quote(G(this.config));t===this.quoteRunId&&e.mode===`wallet`&&this.canGenerate&&(e.quoteUsdc=n.amountUsdc)}catch(e){console.warn(`x402 quote failed`,e)}finally{t===this.quoteRunId&&(e.quoteLoading=!1)}},onGenerate(){this.$emit(`generate`)}}}),vt={class:`flex flex-col h-full`},yt={class:`flex-1 overflow-y-auto p-5`},bt={class:`flex flex-col items-center justify-center px-5 pb-5`};function xt(t,n,c,d,m,h){let v=l(`model-selector`),y=l(`action-selector`),b=l(`duration-selector`),x=l(`size-selector`),S=l(`orientation-selector`),C=l(`prompt-input`),w=l(`start-end-image`),T=l(`scenario-payment-mode`),E=l(`service-pricing-summary`),D=l(`magic-icon`),O=l(`el-button`);return g(),s(`div`,vt,[e(`div`,yt,[a(v,{class:`mb-4`}),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`}),a(S,{class:`mb-4`}),a(C,{class:`mb-4`}),u(a(w,{class:`mb-4`},null,512),[[_,t.config?.action===`image2video`]])]),e(`div`,bt,[a(T,{scenario:`sora`}),t.walletMode?o(``,!0):(g(),f(E,{key:0,value:t.consumption,service:t.service},null,8,[`value`,`service`])),a(O,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:p(()=>[a(D,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var St=W(_t,[[`render`,xt]]),Ct=v({name:`TaskPreview`,components:{DeleteIcon:P,ChannelIcon:j,InfoIcon:N,MagicIcon:L,TimeIcon:D,WarningIcon:F,CopyToClipboard:me,ElAlert:C,VideoPlayer:ye,ElTooltip:S,ElButton:X,ApiCodeButton:xe,ReportButton:he},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.sora?.application},config(){return this.$store.state.sora?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await Z.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`sora/deleteTask`,{id:e}),T.success(this.$t(`common.message.deleteTaskSuccess`))}catch{T.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),wt={class:`preview`},Tt={class:`left`},Et={class:`main`},Dt={class:`bot`},Ot={class:`datetime`},kt=[`aria-label`],At={class:`info`},jt={key:0,class:`prompt mt-2`},Mt={key:0},Nt={key:1},Pt={key:0,class:n({content:!0,failed:!0})},Ft={key:0,class:`mb-4`},It={key:1,class:n({operations:!0,"mt-2":!0})},Lt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Rt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},zt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Bt={key:1,class:n({content:!0})},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ht={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ut={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Wt={key:2,class:n({content:!0})},Gt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Kt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function qt(n,c,u,d,m,h){let _=l(`capability-presentation`),v=l(`delete-icon`),y=l(`el-tooltip`),b=l(`video-player`),x=l(`el-button`),S=l(`api-code-button`),C=l(`report-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return g(),s(`div`,wt,[e(`div`,Tt,[a(_,{capability:`sora`,part:`avatar`,class:`avatar`})]),e(`div`,Et,[e(`div`,Dt,[a(_,{capability:`sora`,part:`name`}),e(`span`,Ot,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(y,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(g(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,kt)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,At,[n.modelValue?.request?.prompt?(g(),s(`p`,jt,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(g(),s(`span`,Mt,` - (`+i(n.$t(`sora.status.pending`))+`) `,1)),n.modelValue?.response&&n.modelValue?.response?.success===void 0?(g(),s(`span`,Nt,` - (`+i(n.$t(`sora.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0&&n.modelValue?.response?.data?(g(),s(`div`,Pt,[n.modelValue?.response?.data[0]?.video_url?(g(),s(`div`,Ft,[a(b,{src:n.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response.success?(g(),s(`div`,It,[a(y,{class:`box-item`,effect:`dark`,content:n.$t(`sora.message.downloadVideo`),placement:`top-start`},{default:p(()=>[n.modelValue?.response?.data[0]?.video_url?(g(),f(x,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=e=>n.onDownload(e,n.modelValue?.response?.data[0]?.video_url)},{default:p(()=>[r(i(n.$t(`sora.button.download`)),1)]),_:1})):o(``,!0)]),_:1},8,[`content`]),a(S,{path:`/sora/videos`,body:n.modelValue?.request},null,8,[`body`]),a(C,{service:`sora`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])])):o(``,!0),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,Lt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,Rt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,zt,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(g(),s(`div`,Bt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failure`)),1)]),default:p(()=>[e(`p`,$,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,Vt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,Ht,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,Ut,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===void 0?(g(),s(`div`,Wt,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`sora.status.processing`:`sora.status.pending`)),1)]),default:p(()=>[e(`p`,Gt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.response?.trace_id?(g(),s(`p`,Kt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0)])])}var Jt=v({name:`RecentPanel`,components:{TaskPreview:W(Ct,[[`render`,qt],[`__scopeId`,`data-v-808e51ba`]]),NoTasks:ee,BotPlaceholder:Se,ScrollList:A},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.sora?.tasks,items:this.$store.state.sora?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Yt={key:0},Xt={key:2,class:`w-full h-full flex items-center justify-center`};function Zt(e,t,n,r,i,u){let d=l(`bot-placeholder`),m=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return g(),s(c,null,[e.tasks?.items===void 0?(g(),s(`div`,Yt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(g(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(g(!0),s(c,null,h(e.tasks?.items,(e,t)=>(g(),f(m,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(g(),s(`div`,Xt,[a(v)])):o(``,!0)],64)}var Qt=v({name:`SoraIndex`,components:{ConfigPanel:St,Layout:Ae,RecentPanel:W(Jt,[[`render`,Zt]])},mixins:[pe],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1,walletTaskIds:[]}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===w.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===w.Request||this.fetchingTasks},credential(){return this.$store.state.sora.credential},config(){return this.$store.state.sora.config},tasks(){return this.$store.state.sora.tasks},walletMode(){return K()&&q(`sora`).mode===`wallet`}},watch:{walletMode:{async handler(e,t){if(!(t===void 0||e===t)){if(this.$store.commit(`sora/setTasks`,void 0),e&&!this.job&&(this.job=window.setInterval(this.onGetTasks,5e3)),!e&&!this.credential?.token){window.clearInterval(this.job),this.job=0,await this.onScrollDown();return}await this.onGetTasks(),await this.onScrollDown()}}},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 M({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(`sora/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`sora/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`sora/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r,...this.walletMode&&!this.credential?.token?{mode:`x402`,ids:this.walletTaskIds}:{}})}finally{this.fetchingTasks=!1}},async onGenerate(){let e=G(this.config),t=Ce(`sora`,e);if(t){T.error(this.$t(`common.message.${t}`));return}if(!U(this.uploadTracker,e=>this.$t(e),e=>T.warning(e)))return;let n;if(this.walletMode){let t=this.getWalletContext();if(!t){T.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}n=Q.generate(e,{mode:`x402`,x402:{wallet:t,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credential?.token}})}else{if(!le())return;let t=this.credential?.token;if(!t)return;n=Q.generate(e,{token:t})}T.info(this.$t(`sora.message.startingTask`)),ae(`sora`,n).then(e=>{let t=e?.data?.task_id;this.walletMode&&!this.credential?.token&&t&&!this.walletTaskIds.includes(t)&&this.walletTaskIds.unshift(t),T.success(this.$t(`sora.message.startTaskSuccess`))}).catch(e=>{e instanceof fe||J(e,`sora`)||(this.walletMode?T.error(this.$t(`common.x402Scenario.paymentFailed`)):T.error(this.$t(`sora.message.startTaskFailed`)))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getWalletContext(){return ce(this.$wallet)},async confirmWalletPayment(e){return Z.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function $t(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return g(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var en=W(Qt,[[`render`,$t]]);export{en as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-CLubZdq7.js";import{t as b}from"./upload-CIplFhpf.js";import{t as x}from"./tooltip-CbdHMzJA.js";import{t as S}from"./alert-BprQRUmf.js";import{h as C,v as w}from"./models-BpGydDYc.js";import{t as T}from"./checkbox-DXMDpaxv.js";import{t as E}from"./drawer-DSMPU53I.js";import{t as D}from"./input-number-vH4-o6sA.js";import{t as O}from"./clock-DGhHlqhN.js";import{a as k,i as ee,n as A,r as j,s as M,t as N}from"./pagination-NYLKdTqd.js";import{t as P}from"./info-C4cUVd29.js";import{t as F}from"./trash-2-DHDZkxkx.js";import{t as I}from"./triangle-alert-BJ4LPyYk.js";import{t as L}from"./wand-sparkles-B6SKd5hA.js";import{bt as te}from"./constants-BSFiYSou.js";import{$ as R,A as z,Fi as B,Gn as V,Li as H,O as U,Pa as W,Qa as G,Ra as K,Sn as q,Wn as J,Xi as Y,Y as X,et as Z,li as Q,na as ne,nt as re,oo as ie,rt as ae,si as oe,tt as se}from"./index-DvTGM53_.js";import{t as ce}from"./CopyToClipboard-MUNdxLCY.js";import{t as le}from"./ReportButton-Cf9hMzLL.js";import{t as ue}from"./ImagePreview-BxkzgXM2.js";import{n as de}from"./taskDrawerMixin-DyAUhFEq.js";import{t as fe}from"./ServicePricingSummary-CN74WnAC.js";import{t as pe}from"./VideoPlayer-DMwakGOn.js";import{t as me}from"./ScenarioPaymentMode-Ul5m6vCS.js";import{t as he}from"./ApiCodeButton-C_BQZfJW.js";import{t as ge}from"./BotPlaceholder-C-06_hGv.js";import{t as _e}from"./taskPollingMixin-CcLxtz8z.js";import{n as ve,t as ye}from"./generationInput-Daa5Los3.js";var be=_({name:`LayoutWan`,components:{MagicIcon:L,ElDrawer:E,ElButton:G},mixins:[de]}),xe={class:`main flex flex-row flex-1`},Se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Ce={class:`result h-full p-4 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function we(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,xe,[e(`div`,Se,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,Ce,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var Te=z(be,[[`render`,we],[`__scopeId`,`data-v-20dc9571`]]),Ee=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},data(){return{}},computed:{options(){return[{value:`wan2.6-t2v`,label:this.$t(`wan.button.modelT2v`)},{value:`wan2.6-i2v`,label:this.$t(`wan.button.modelI2v`)},{value:`wan2.6-i2v-flash`,label:this.$t(`wan.button.modelI2vFlash`)},{value:`wan2.6-r2v`,label:this.$t(`wan.button.modelR2v`)},{value:`wan3.0-video`,label:this.$t(`wan.button.modelWan3`)}]},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||=te}}),De={class:`field`},Oe={class:`title font-bold`},ke={class:`float-left`};function Ae(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,De,[e(`h2`,Oe,i(t.$t(`wan.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`wan.placeholder.select`),clearable:``},{default:p(()=>[(h(!0),s(c,null,m(t.options,t=>(h(),f(g,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,ke,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var je=z(Ee,[[`render`,Ae],[`__scopeId`,`data-v-f4ee3412`]]),Me=`720p`,Ne=_({name:`ResolutionSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:`480p`,label:this.$t(`wan.name.resolution480p`)},{value:`720p`,label:this.$t(`wan.name.resolution720p`)},{value:`1080p`,label:this.$t(`wan.name.resolution1080p`)}]},value:{get(){return this.$store.state.wan?.config?.resolution},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,resolution:e})}}},mounted(){this.value||=Me}}),Pe={class:`field`},Fe={class:`title font-bold`},Ie={class:`float-left`};function Le(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Pe,[e(`h2`,Fe,i(t.$t(`wan.name.resolution`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`wan.placeholder.select`),clearable:``},{default:p(()=>[(h(!0),s(c,null,m(t.options,t=>(h(),f(g,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,Ie,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Re=z(Ne,[[`render`,Le],[`__scopeId`,`data-v-3e39f44e`]]),ze=5,Be=_({name:`DurationSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:5,label:this.$t(`wan.name.duration5s`)},{value:10,label:this.$t(`wan.name.duration10s`)},{value:15,label:this.$t(`wan.name.duration15s`)}]},value:{get(){return this.$store.state.wan?.config?.duration},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,duration:e})}}},mounted(){this.value||=ze}}),Ve={class:`field`},He={class:`title font-bold`},Ue={class:`float-left`};function We(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ve,[e(`h2`,He,i(t.$t(`wan.name.duration`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`wan.placeholder.select`),clearable:``},{default:p(()=>[(h(!0),s(c,null,m(t.options,t=>(h(),f(g,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,Ue,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ge=z(Be,[[`render`,We],[`__scopeId`,`data-v-5f35a2cf`]]),Ke=_({name:`ImageUrlInput`,components:{ElUpload:b,ElButton:G,InfoIcon:k,ImagePreview:ue},mixins:[ae,re,Z,X],data(){return{fileList:[],uploadUrl:W()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.wan?.config?.image_url},set(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})}}},mounted(){this.value||=void 0,this.onSetImageUrl()},methods:{onExceed(){w.warning(this.$t(`wan.message.uploadImageExceed`))},onError(){w.error(this.$t(`wan.message.uploadImageError`))},async onRemove(){w.error(this.$t(`wan.message.uploadImageError`))},onSetImageUrl(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})},async onSuccess(){this.onSetImageUrl()}}}),qe={class:`relative`},Je={class:`flex justify-between`},Ye={class:`flex justify-start items-center`},Xe={class:`text-sm font-bold`};function Ze(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`image-preview`),v=l(`el-button`),y=l(`el-upload`);return h(),s(`div`,qe,[e(`div`,Je,[e(`div`,Ye,[e(`span`,Xe,i(t.$t(`wan.name.imageUrl`)),1),a(g,{content:t.$t(`wan.description.imageUrl`),class:`info`},null,8,[`content`])])]),a(y,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,"show-file-list":!0,limit:1,multiple:!1,"list-type":`picture`,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,"on-remove":t.onRemove,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(h(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(v,{size:`small`,type:`primary`,class:`btn btn-upload`,round:``},{default:p(()=>[r(i(t.$t(`wan.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`on-remove`,`on-success`,`headers`])])}var Qe=z(Ke,[[`render`,Ze],[`__scopeId`,`data-v-56929914`]]),$e=_({name:`PromptInput`,components:{PromptTextarea:ee},computed:{prompt:{get(){return this.$store.state.wan?.config?.prompt},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,prompt:e})}}},mounted(){this.prompt||=``}});function et(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`wan.name.prompt`),info:e.$t(`wan.description.prompt`),placeholder:e.$t(`wan.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var tt=z($e,[[`render`,et]]),nt=_({name:`WanMediaInput`,components:{ElInput:ie},computed:{value:{get(){return this.$store.state.wan?.config?.media_text||``},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,media_text:e})}}}}),rt={class:`field`},it={class:`flex items-center mb-2`},at={class:`text-sm font-bold`},ot={class:`text-xs mt-1 text-[var(--el-text-color-secondary)]`};function st(t,n,r,o,c,u){let d=l(`el-input`);return h(),s(`div`,rt,[e(`div`,it,[e(`span`,at,i(t.$t(`wan.name.media`)),1)]),a(d,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,type:`textarea`,rows:5,placeholder:t.$t(`wan.placeholder.media`)},null,8,[`modelValue`,`placeholder`]),e(`p`,ot,i(t.$t(`wan.description.media`)),1)])}var ct=z(nt,[[`render`,st]]),lt=_({name:`Wan3Options`,components:{ElSelect:v,ElOption:y,ElInputNumber:D,ElCheckbox:T},data:()=>({ratios:[`adaptive`,`16:9`,`4:3`,`1:1`,`3:4`,`9:16`]}),computed:{ratio:{get(){return this.$store.state.wan?.config?.ratio||`adaptive`},set(e){this.set({ratio:e})}},duration:{get(){return this.$store.state.wan?.config?.duration??5},set(e){this.set({duration:e})}},audio:{get(){return this.$store.state.wan?.config?.audio!==!1},set(e){this.set({audio:e})}}},methods:{set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,...e})}}}),ut={class:`space-y-4`},dt={class:`field`},ft={class:`label`},pt={class:`field`},mt={class:`label`};function ht(t,n,o,u,d,g){let _=l(`el-option`),v=l(`el-select`),y=l(`el-input-number`),b=l(`el-checkbox`);return h(),s(`div`,ut,[e(`div`,dt,[e(`span`,ft,i(t.$t(`wan.name.ratio`)),1),a(v,{modelValue:t.ratio,"onUpdate:modelValue":n[0]||=e=>t.ratio=e},{default:p(()=>[(h(!0),s(c,null,m(t.ratios,e=>(h(),f(_,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),e(`div`,pt,[e(`span`,mt,i(t.$t(`wan.name.duration`)),1),a(y,{modelValue:t.duration,"onUpdate:modelValue":n[1]||=e=>t.duration=e,min:-1,max:30},null,8,[`modelValue`])]),a(b,{modelValue:t.audio,"onUpdate:modelValue":n[2]||=e=>t.audio=e},{default:p(()=>[r(i(t.$t(`wan.name.audio`)),1)]),_:1},8,[`modelValue`])])}var gt=_({name:`PresetPanel`,components:{MagicIcon:L,ElButton:G,PromptInput:tt,ImageUrlInput:Qe,ModelSelector:je,ResolutionSelector:Re,DurationSelector:Ge,MediaInput:ct,Wan3Options:z(lt,[[`render`,ht],[`__scopeId`,`data-v-49568593`]]),ServicePricingSummary:fe,ScenarioPaymentMode:me},emits:[`generate`],data(){return{quoteTimer:0,quoteRunId:0}},computed:{canGenerate(){return ye(`wan`,J(this.config))},config(){return this.$store.state.wan?.config},consumption(){return q(this.config,this.service?.cost)},service(){return this.$store.state.wan?.service},supportsResolution(){let e=this.config?.model;return e===`wan2.6-t2v`||e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`||e===`wan3.0-video`},supportsDuration(){return this.config?.model===`wan2.6-t2v`},isWan3(){return this.config?.model===`wan3.0-video`},supportsImageUrl(){let e=this.config?.model;return e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`},walletMode(){return B()&&H(`wan`).mode===`wallet`}},watch:{walletMode:{handler(e){e&&this.scheduleQuote()},immediate:!0},config:{handler(){this.walletMode&&this.scheduleQuote()},deep:!0}},beforeUnmount(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1},methods:{scheduleQuote(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1;let e=H(`wan`);e.quoteUsdc=void 0,e.quoteLoading=!1,this.canGenerate&&(this.quoteTimer=window.setTimeout(this.refreshQuote,350))},async refreshQuote(){if(!this.canGenerate)return;let e=H(`wan`),t=++this.quoteRunId;e.quoteLoading=!0,e.quoteUsdc=void 0;try{let n=await V.quote(J(this.config));t===this.quoteRunId&&e.mode===`wallet`&&this.canGenerate&&(e.quoteUsdc=n.amountUsdc)}catch(e){console.warn(`x402 quote failed`,e)}finally{t===this.quoteRunId&&(e.quoteLoading=!1)}},onGenerate(){this.$emit(`generate`)}}}),_t={class:`flex flex-col h-full`},vt={class:`flex-1 overflow-y-auto p-5`},yt={class:`flex flex-col items-center justify-center px-5 pb-5`};function bt(t,n,c,u,d,m){let g=l(`prompt-input`),_=l(`model-selector`),v=l(`resolution-selector`),y=l(`duration-selector`),b=l(`image-url-input`),x=l(`media-input`),S=l(`wan3-options`),C=l(`scenario-payment-mode`),w=l(`service-pricing-summary`),T=l(`magic-icon`),E=l(`el-button`);return h(),s(`div`,_t,[e(`div`,vt,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.supportsResolution?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),t.supportsDuration?(h(),f(y,{key:1,class:`mb-4`})):o(``,!0),t.supportsImageUrl?(h(),f(b,{key:2,class:`mb-4`})):o(``,!0),t.isWan3?(h(),f(x,{key:3,class:`mb-4`})):o(``,!0),t.isWan3?(h(),f(S,{key:4,class:`mb-4`})):o(``,!0)]),e(`div`,yt,[a(C,{scenario:`wan`}),t.walletMode?o(``,!0):(h(),f(w,{key:0,value:t.consumption,service:t.service},null,8,[`value`,`service`])),a(E,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:p(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`wan.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var xt=z(gt,[[`render`,bt]]),St=_({name:`TaskPreview`,components:{DeleteIcon:F,ChannelIcon:M,InfoIcon:P,MagicIcon:L,TimeIcon:O,WarningIcon:I,CopyToClipboard:ce,ElAlert:S,VideoPlayer:pe,ElTooltip:x,ElButton:G,ApiCodeButton:he,ReportButton:le},props:{modelValue:{type:Object,required:!0}},computed:{isFailure(){let e=this.modelValue?.response;return e?.success===!1||!!e?.error||e?.state===`failed`||e?.state===`cancelled`},isWaiting(){let e=this.modelValue?.response;return e?this.isFailure?!1:[`queued`,`pending`,`processing`,`running`].includes(e.state||``)?!0:e.success!==!0&&!e.state:!0},application(){return this.$store.state.wan?.application},config(){return this.$store.state.wan?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await K.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`wan/deleteTask`,{id:e}),w.success(this.$t(`common.message.deleteTaskSuccess`))}catch{w.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e){console.debug(`on download wan video`,e),window.open(e,`_blank`)}}}),Ct={class:`preview`},wt={class:`left`},Tt={class:`main`},Et={class:`bot`},Dt={class:`datetime`},Ot=[`aria-label`],kt={class:`info`},At={key:0,class:`prompt mt-2`},jt={key:0},Mt={key:1},Nt={key:0,class:n({content:!0,failed:!0})},Pt={key:0,class:`mb-4`},Ft={key:1,class:n({operations:!0,"mt-2":!0})},It={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Lt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Rt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},zt={key:1,class:n({content:!0})},Bt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Vt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ht={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ut={key:2,class:n({content:!0})},Wt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Gt(n,c,u,d,f,m){let g=l(`capability-presentation`),_=l(`delete-icon`),v=l(`el-tooltip`),y=l(`video-player`),b=l(`el-button`),x=l(`api-code-button`),S=l(`report-button`),C=l(`channel-icon`),w=l(`copy-to-clipboard`),T=l(`magic-icon`),E=l(`time-icon`),D=l(`el-alert`),O=l(`warning-icon`),k=l(`info-icon`);return h(),s(`div`,Ct,[e(`div`,wt,[a(g,{capability:`wan`,part:`avatar`,class:`avatar`})]),e(`div`,Tt,[e(`div`,Et,[a(g,{capability:`wan`,part:`name`}),e(`span`,Dt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(v,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,Ot)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,kt,[n.modelValue?.request?.prompt?(h(),s(`p`,At,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,jt,` - (`+i(n.$t(`wan.status.pending`))+`) `,1)),n.modelValue?.response&&n.isWaiting?(h(),s(`span`,Mt,` - (`+i(n.$t(`wan.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0&&!n.isFailure&&!n.isWaiting?(h(),s(`div`,Nt,[n.modelValue?.response?.video_url?(h(),s(`div`,Pt,[a(y,{src:n.modelValue?.response?.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response?.video_url?(h(),s(`div`,Ft,[a(v,{class:`box-item`,effect:`dark`,content:n.$t(`wan.message.downloadVideo`),placement:`top-start`},{default:p(()=>[a(b,{type:`info`,size:`small`,class:`mb-2`,onClick:c[1]||=t(e=>n.onDownload(n.modelValue?.response?.video_url),[`stop`])},{default:p(()=>[r(i(n.$t(`wan.button.download`)),1)]),_:1})]),_:1},8,[`content`]),a(x,{path:`/wan/videos`,body:n.modelValue?.request},null,8,[`body`]),a(S,{service:`wan`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])])):o(``,!0),a(D,{closable:!1,class:`mt-2 success`},{default:p(()=>[n.modelValue?.request?.model?(h(),s(`p`,It,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.model`))+`: `+i(n.modelValue?.request?.model)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])])):o(``,!0),e(`p`,Lt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,Rt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.isFailure?(h(),s(`div`,zt,[a(D,{closable:!1,class:`failure`},{template:p(()=>[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.failure`)),1)]),default:p(()=>[e(`p`,Bt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,$,[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(w,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,Vt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,Ht,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(w,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):o(``,!0),n.isWaiting?(h(),s(`div`,Ut,[a(D,{closable:!1,class:`info`},{template:p(()=>[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`wan.status.processing`:`wan.status.pending`)),1)]),default:p(()=>[e(`p`,Wt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])])]),_:1})])):o(``,!0)])])}var Kt=_({name:`RecentPanel`,components:{TaskPreview:z(St,[[`render`,Gt],[`__scopeId`,`data-v-f180e91e`]]),BotPlaceholder:ge,NoTasks:j,ScrollList:A},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?.()}}}),qt={key:0},Jt={key:2,class:`w-full h-full flex items-center justify-center`};function Yt(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,qt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Jt,[a(v)])):o(``,!0)],64)}var Xt=_({name:`WanIndex`,components:{ConfigPanel:xt,Layout:Te,RecentPanel:z(Kt,[[`render`,Yt]])},mixins:[se,_e(`wan`)],inject:[`initialized`],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1,walletTaskIds:[]}},computed:{applicationsLoading(){return this.$store.state.wan?.status?.getApplications===C.Request},tasksLoading(){return this.$store.state.wan?.status?.getTasks===C.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},walletMode(){return B()&&H(`wan`).mode===`wallet`}},watch:{walletMode:{async handler(e,t){if(!(t===void 0||e===t)){if(this.$store.commit(`wan/setTasks`,void 0),e&&!this.job&&(this.job=window.setInterval(this.onPollTasks,5e3)),!e&&!this.credential?.token){window.clearInterval(this.job),this.job=0,await this.onScrollDown();return}await this.onGetTasks(),await this.onScrollDown()}}},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.onPollTasks,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(`wan/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`wan/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`wan/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r,...this.walletMode&&!this.credential?.token?{mode:`x402`,ids:this.walletTaskIds}:{}})}finally{this.fetchingTasks=!1}},async onGenerate(){let e=J(this.config),t=ve(`wan`,e);if(t){w.error(this.$t(`common.message.${t}`));return}if(!R(this.uploadTracker,e=>this.$t(e),e=>w.warning(e)))return;let n;if(this.walletMode){let t=this.getWalletContext();if(!t){w.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}n=V.generate(e,{mode:`x402`,x402:{wallet:t,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credential?.token}})}else{if(!ne())return;let t=this.credential?.token;if(!t)return;n=V.generate(e,{token:t})}w.info(this.$t(`wan.message.startingTask`)),Y(`wan`,n).then(e=>{let t=e?.data?.task_id;this.walletMode&&!this.credential?.token&&t&&!this.walletTaskIds.includes(t)&&this.walletTaskIds.unshift(t),w.success(this.$t(`wan.message.startTaskSuccess`))}).catch(e=>{e instanceof oe||U(e,`wan`)||(this.walletMode?w.error(this.$t(`common.x402Scenario.paymentFailed`)):w.error(this.$t(`wan.message.startTaskFailed`)))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getWalletContext(){return Q(this.$wallet)},async confirmWalletPayment(e){return K.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Zt(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Qt=z(Xt,[[`render`,Zt]]);export{Qt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-D9KGK8y4.js";import{t as b}from"./upload-Bg2_7WAz.js";import{t as x}from"./tooltip-cWv_ok9x.js";import{t as S}from"./alert-BprQRUmf.js";import{h as C,v as w}from"./models-DwqNv9Tl.js";import{t as T}from"./checkbox-DXMDpaxv.js";import{t as E}from"./drawer-BjY3KZuA.js";import{t as D}from"./input-number-DwWslk54.js";import{t as O}from"./clock-CW2sY82G.js";import{a as k,i as ee,n as A,r as j,s as M,t as N}from"./pagination-CsLQfKOF.js";import{t as P}from"./info-BGgC-Vxv.js";import{t as F}from"./trash-2--Y4CZ78D.js";import{t as I}from"./triangle-alert-DqUccgxs.js";import{t as L}from"./wand-sparkles-NtJ7A5GO.js";import{bt as te}from"./constants-Dvsv8PB_.js";import{$ as R,A as z,Fi as B,Gn as V,Li as H,O as U,Pa as W,Qa as G,Ra as K,Sn as q,Wn as J,Xi as Y,Y as X,et as Z,li as Q,na as ne,nt as re,oo as ie,rt as ae,si as oe,tt as se}from"./index-C1wCbgM5.js";import{t as ce}from"./CopyToClipboard-DpWxVezq.js";import{t as le}from"./ReportButton-Dg5iEeMg.js";import{t as ue}from"./ImagePreview-gURgz19m.js";import{n as de}from"./taskDrawerMixin-DyAUhFEq.js";import{t as fe}from"./ServicePricingSummary-DlacHpj1.js";import{t as pe}from"./VideoPlayer-DgwfbUZX.js";import{t as me}from"./ScenarioPaymentMode-Qr9pPAHy.js";import{t as he}from"./ApiCodeButton-D_zwre2d.js";import{t as ge}from"./BotPlaceholder-D0kYwWKn.js";import{t as _e}from"./taskPollingMixin-CcLxtz8z.js";import{n as ve,t as ye}from"./generationInput-BriLeXaE.js";var be=_({name:`LayoutWan`,components:{MagicIcon:L,ElDrawer:E,ElButton:G},mixins:[de]}),xe={class:`main flex flex-row flex-1`},Se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Ce={class:`result h-full p-4 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function we(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,xe,[e(`div`,Se,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,Ce,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var Te=z(be,[[`render`,we],[`__scopeId`,`data-v-20dc9571`]]),Ee=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},data(){return{}},computed:{options(){return[{value:`wan2.6-t2v`,label:this.$t(`wan.button.modelT2v`)},{value:`wan2.6-i2v`,label:this.$t(`wan.button.modelI2v`)},{value:`wan2.6-i2v-flash`,label:this.$t(`wan.button.modelI2vFlash`)},{value:`wan2.6-r2v`,label:this.$t(`wan.button.modelR2v`)},{value:`wan3.0-video`,label:this.$t(`wan.button.modelWan3`)}]},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||=te}}),De={class:`field`},Oe={class:`title font-bold`},ke={class:`float-left`};function Ae(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,De,[e(`h2`,Oe,i(t.$t(`wan.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`wan.placeholder.select`),clearable:``},{default:p(()=>[(h(!0),s(c,null,m(t.options,t=>(h(),f(g,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,ke,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var je=z(Ee,[[`render`,Ae],[`__scopeId`,`data-v-f4ee3412`]]),Me=`720p`,Ne=_({name:`ResolutionSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:`480p`,label:this.$t(`wan.name.resolution480p`)},{value:`720p`,label:this.$t(`wan.name.resolution720p`)},{value:`1080p`,label:this.$t(`wan.name.resolution1080p`)}]},value:{get(){return this.$store.state.wan?.config?.resolution},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,resolution:e})}}},mounted(){this.value||=Me}}),Pe={class:`field`},Fe={class:`title font-bold`},Ie={class:`float-left`};function Le(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Pe,[e(`h2`,Fe,i(t.$t(`wan.name.resolution`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`wan.placeholder.select`),clearable:``},{default:p(()=>[(h(!0),s(c,null,m(t.options,t=>(h(),f(g,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,Ie,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Re=z(Ne,[[`render`,Le],[`__scopeId`,`data-v-3e39f44e`]]),ze=5,Be=_({name:`DurationSelector`,components:{ElSelect:v,ElOption:y},computed:{options(){return[{value:5,label:this.$t(`wan.name.duration5s`)},{value:10,label:this.$t(`wan.name.duration10s`)},{value:15,label:this.$t(`wan.name.duration15s`)}]},value:{get(){return this.$store.state.wan?.config?.duration},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,duration:e})}}},mounted(){this.value||=ze}}),Ve={class:`field`},He={class:`title font-bold`},Ue={class:`float-left`};function We(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Ve,[e(`h2`,He,i(t.$t(`wan.name.duration`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`wan.placeholder.select`),clearable:``},{default:p(()=>[(h(!0),s(c,null,m(t.options,t=>(h(),f(g,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,Ue,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ge=z(Be,[[`render`,We],[`__scopeId`,`data-v-5f35a2cf`]]),Ke=_({name:`ImageUrlInput`,components:{ElUpload:b,ElButton:G,InfoIcon:k,ImagePreview:ue},mixins:[ae,re,Z,X],data(){return{fileList:[],uploadUrl:W()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.wan?.config?.image_url},set(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})}}},mounted(){this.value||=void 0,this.onSetImageUrl()},methods:{onExceed(){w.warning(this.$t(`wan.message.uploadImageExceed`))},onError(){w.error(this.$t(`wan.message.uploadImageError`))},async onRemove(){w.error(this.$t(`wan.message.uploadImageError`))},onSetImageUrl(){let e=this.urls?.[0];this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,image_url:e})},async onSuccess(){this.onSetImageUrl()}}}),qe={class:`relative`},Je={class:`flex justify-between`},Ye={class:`flex justify-start items-center`},Xe={class:`text-sm font-bold`};function Ze(t,n,c,u,d,m){let g=l(`info-icon`),_=l(`image-preview`),v=l(`el-button`),y=l(`el-upload`);return h(),s(`div`,qe,[e(`div`,Je,[e(`div`,Ye,[e(`span`,Xe,i(t.$t(`wan.name.imageUrl`)),1),a(g,{content:t.$t(`wan.description.imageUrl`),class:`info`},null,8,[`content`])])]),a(y,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,"show-file-list":!0,limit:1,multiple:!1,"list-type":`picture`,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,"on-remove":t.onRemove,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(h(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(v,{size:`small`,type:`primary`,class:`btn btn-upload`,round:``},{default:p(()=>[r(i(t.$t(`wan.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`on-remove`,`on-success`,`headers`])])}var Qe=z(Ke,[[`render`,Ze],[`__scopeId`,`data-v-56929914`]]),$e=_({name:`PromptInput`,components:{PromptTextarea:ee},computed:{prompt:{get(){return this.$store.state.wan?.config?.prompt},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,prompt:e})}}},mounted(){this.prompt||=``}});function et(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`wan.name.prompt`),info:e.$t(`wan.description.prompt`),placeholder:e.$t(`wan.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var tt=z($e,[[`render`,et]]),nt=_({name:`WanMediaInput`,components:{ElInput:ie},computed:{value:{get(){return this.$store.state.wan?.config?.media_text||``},set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,media_text:e})}}}}),rt={class:`field`},it={class:`flex items-center mb-2`},at={class:`text-sm font-bold`},ot={class:`text-xs mt-1 text-[var(--el-text-color-secondary)]`};function st(t,n,r,o,c,u){let d=l(`el-input`);return h(),s(`div`,rt,[e(`div`,it,[e(`span`,at,i(t.$t(`wan.name.media`)),1)]),a(d,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,type:`textarea`,rows:5,placeholder:t.$t(`wan.placeholder.media`)},null,8,[`modelValue`,`placeholder`]),e(`p`,ot,i(t.$t(`wan.description.media`)),1)])}var ct=z(nt,[[`render`,st]]),lt=_({name:`Wan3Options`,components:{ElSelect:v,ElOption:y,ElInputNumber:D,ElCheckbox:T},data:()=>({ratios:[`adaptive`,`16:9`,`4:3`,`1:1`,`3:4`,`9:16`]}),computed:{ratio:{get(){return this.$store.state.wan?.config?.ratio||`adaptive`},set(e){this.set({ratio:e})}},duration:{get(){return this.$store.state.wan?.config?.duration??5},set(e){this.set({duration:e})}},audio:{get(){return this.$store.state.wan?.config?.audio!==!1},set(e){this.set({audio:e})}}},methods:{set(e){this.$store.commit(`wan/setConfig`,{...this.$store.state.wan?.config,...e})}}}),ut={class:`space-y-4`},dt={class:`field`},ft={class:`label`},pt={class:`field`},mt={class:`label`};function ht(t,n,o,u,d,g){let _=l(`el-option`),v=l(`el-select`),y=l(`el-input-number`),b=l(`el-checkbox`);return h(),s(`div`,ut,[e(`div`,dt,[e(`span`,ft,i(t.$t(`wan.name.ratio`)),1),a(v,{modelValue:t.ratio,"onUpdate:modelValue":n[0]||=e=>t.ratio=e},{default:p(()=>[(h(!0),s(c,null,m(t.ratios,e=>(h(),f(_,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),e(`div`,pt,[e(`span`,mt,i(t.$t(`wan.name.duration`)),1),a(y,{modelValue:t.duration,"onUpdate:modelValue":n[1]||=e=>t.duration=e,min:-1,max:30},null,8,[`modelValue`])]),a(b,{modelValue:t.audio,"onUpdate:modelValue":n[2]||=e=>t.audio=e},{default:p(()=>[r(i(t.$t(`wan.name.audio`)),1)]),_:1},8,[`modelValue`])])}var gt=_({name:`PresetPanel`,components:{MagicIcon:L,ElButton:G,PromptInput:tt,ImageUrlInput:Qe,ModelSelector:je,ResolutionSelector:Re,DurationSelector:Ge,MediaInput:ct,Wan3Options:z(lt,[[`render`,ht],[`__scopeId`,`data-v-49568593`]]),ServicePricingSummary:fe,ScenarioPaymentMode:me},emits:[`generate`],data(){return{quoteTimer:0,quoteRunId:0}},computed:{canGenerate(){return ye(`wan`,J(this.config))},config(){return this.$store.state.wan?.config},consumption(){return q(this.config,this.service?.cost)},service(){return this.$store.state.wan?.service},supportsResolution(){let e=this.config?.model;return e===`wan2.6-t2v`||e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`||e===`wan3.0-video`},supportsDuration(){return this.config?.model===`wan2.6-t2v`},isWan3(){return this.config?.model===`wan3.0-video`},supportsImageUrl(){let e=this.config?.model;return e===`wan2.6-i2v`||e===`wan2.6-i2v-flash`},walletMode(){return B()&&H(`wan`).mode===`wallet`}},watch:{walletMode:{handler(e){e&&this.scheduleQuote()},immediate:!0},config:{handler(){this.walletMode&&this.scheduleQuote()},deep:!0}},beforeUnmount(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1},methods:{scheduleQuote(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1;let e=H(`wan`);e.quoteUsdc=void 0,e.quoteLoading=!1,this.canGenerate&&(this.quoteTimer=window.setTimeout(this.refreshQuote,350))},async refreshQuote(){if(!this.canGenerate)return;let e=H(`wan`),t=++this.quoteRunId;e.quoteLoading=!0,e.quoteUsdc=void 0;try{let n=await V.quote(J(this.config));t===this.quoteRunId&&e.mode===`wallet`&&this.canGenerate&&(e.quoteUsdc=n.amountUsdc)}catch(e){console.warn(`x402 quote failed`,e)}finally{t===this.quoteRunId&&(e.quoteLoading=!1)}},onGenerate(){this.$emit(`generate`)}}}),_t={class:`flex flex-col h-full`},vt={class:`flex-1 overflow-y-auto p-5`},yt={class:`flex flex-col items-center justify-center px-5 pb-5`};function bt(t,n,c,u,d,m){let g=l(`prompt-input`),_=l(`model-selector`),v=l(`resolution-selector`),y=l(`duration-selector`),b=l(`image-url-input`),x=l(`media-input`),S=l(`wan3-options`),C=l(`scenario-payment-mode`),w=l(`service-pricing-summary`),T=l(`magic-icon`),E=l(`el-button`);return h(),s(`div`,_t,[e(`div`,vt,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.supportsResolution?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),t.supportsDuration?(h(),f(y,{key:1,class:`mb-4`})):o(``,!0),t.supportsImageUrl?(h(),f(b,{key:2,class:`mb-4`})):o(``,!0),t.isWan3?(h(),f(x,{key:3,class:`mb-4`})):o(``,!0),t.isWan3?(h(),f(S,{key:4,class:`mb-4`})):o(``,!0)]),e(`div`,yt,[a(C,{scenario:`wan`}),t.walletMode?o(``,!0):(h(),f(w,{key:0,value:t.consumption,service:t.service},null,8,[`value`,`service`])),a(E,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:p(()=>[a(T,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`wan.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var xt=z(gt,[[`render`,bt]]),St=_({name:`TaskPreview`,components:{DeleteIcon:F,ChannelIcon:M,InfoIcon:P,MagicIcon:L,TimeIcon:O,WarningIcon:I,CopyToClipboard:ce,ElAlert:S,VideoPlayer:pe,ElTooltip:x,ElButton:G,ApiCodeButton:he,ReportButton:le},props:{modelValue:{type:Object,required:!0}},computed:{isFailure(){let e=this.modelValue?.response;return e?.success===!1||!!e?.error||e?.state===`failed`||e?.state===`cancelled`},isWaiting(){let e=this.modelValue?.response;return e?this.isFailure?!1:[`queued`,`pending`,`processing`,`running`].includes(e.state||``)?!0:e.success!==!0&&!e.state:!0},application(){return this.$store.state.wan?.application},config(){return this.$store.state.wan?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await K.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`wan/deleteTask`,{id:e}),w.success(this.$t(`common.message.deleteTaskSuccess`))}catch{w.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e){console.debug(`on download wan video`,e),window.open(e,`_blank`)}}}),Ct={class:`preview`},wt={class:`left`},Tt={class:`main`},Et={class:`bot`},Dt={class:`datetime`},Ot=[`aria-label`],kt={class:`info`},At={key:0,class:`prompt mt-2`},jt={key:0},Mt={key:1},Nt={key:0,class:n({content:!0,failed:!0})},Pt={key:0,class:`mb-4`},Ft={key:1,class:n({operations:!0,"mt-2":!0})},It={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Lt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Rt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},zt={key:1,class:n({content:!0})},Bt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Vt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ht={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ut={key:2,class:n({content:!0})},Wt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Gt(n,c,u,d,f,m){let g=l(`capability-presentation`),_=l(`delete-icon`),v=l(`el-tooltip`),y=l(`video-player`),b=l(`el-button`),x=l(`api-code-button`),S=l(`report-button`),C=l(`channel-icon`),w=l(`copy-to-clipboard`),T=l(`magic-icon`),E=l(`time-icon`),D=l(`el-alert`),O=l(`warning-icon`),k=l(`info-icon`);return h(),s(`div`,Ct,[e(`div`,wt,[a(g,{capability:`wan`,part:`avatar`,class:`avatar`})]),e(`div`,Tt,[e(`div`,Et,[a(g,{capability:`wan`,part:`name`}),e(`span`,Dt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(v,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(_,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,Ot)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,kt,[n.modelValue?.request?.prompt?(h(),s(`p`,At,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,jt,` - (`+i(n.$t(`wan.status.pending`))+`) `,1)),n.modelValue?.response&&n.isWaiting?(h(),s(`span`,Mt,` - (`+i(n.$t(`wan.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0&&!n.isFailure&&!n.isWaiting?(h(),s(`div`,Nt,[n.modelValue?.response?.video_url?(h(),s(`div`,Pt,[a(y,{src:n.modelValue?.response?.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response?.video_url?(h(),s(`div`,Ft,[a(v,{class:`box-item`,effect:`dark`,content:n.$t(`wan.message.downloadVideo`),placement:`top-start`},{default:p(()=>[a(b,{type:`info`,size:`small`,class:`mb-2`,onClick:c[1]||=t(e=>n.onDownload(n.modelValue?.response?.video_url),[`stop`])},{default:p(()=>[r(i(n.$t(`wan.button.download`)),1)]),_:1})]),_:1},8,[`content`]),a(x,{path:`/wan/videos`,body:n.modelValue?.request},null,8,[`body`]),a(S,{service:`wan`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])])):o(``,!0),a(D,{closable:!1,class:`mt-2 success`},{default:p(()=>[n.modelValue?.request?.model?(h(),s(`p`,It,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.model`))+`: `+i(n.modelValue?.request?.model)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])])):o(``,!0),e(`p`,Lt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,Rt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.isFailure?(h(),s(`div`,zt,[a(D,{closable:!1,class:`failure`},{template:p(()=>[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.failure`)),1)]),default:p(()=>[e(`p`,Bt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,$,[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(w,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,Vt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,Ht,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(w,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):o(``,!0),n.isWaiting?(h(),s(`div`,Ut,[a(D,{closable:!1,class:`info`},{template:p(()=>[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`wan.status.processing`:`wan.status.pending`)),1)]),default:p(()=>[e(`p`,Wt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`wan.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(w,{content:n.modelValue?.id},null,8,[`content`])])]),_:1})])):o(``,!0)])])}var Kt=_({name:`RecentPanel`,components:{TaskPreview:z(St,[[`render`,Gt],[`__scopeId`,`data-v-f180e91e`]]),BotPlaceholder:ge,NoTasks:j,ScrollList:A},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?.()}}}),qt={key:0},Jt={key:2,class:`w-full h-full flex items-center justify-center`};function Yt(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,qt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Jt,[a(v)])):o(``,!0)],64)}var Xt=_({name:`WanIndex`,components:{ConfigPanel:xt,Layout:Te,RecentPanel:z(Kt,[[`render`,Yt]])},mixins:[se,_e(`wan`)],inject:[`initialized`],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1,walletTaskIds:[]}},computed:{applicationsLoading(){return this.$store.state.wan?.status?.getApplications===C.Request},tasksLoading(){return this.$store.state.wan?.status?.getTasks===C.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},walletMode(){return B()&&H(`wan`).mode===`wallet`}},watch:{walletMode:{async handler(e,t){if(!(t===void 0||e===t)){if(this.$store.commit(`wan/setTasks`,void 0),e&&!this.job&&(this.job=window.setInterval(this.onPollTasks,5e3)),!e&&!this.credential?.token){window.clearInterval(this.job),this.job=0,await this.onScrollDown();return}await this.onGetTasks(),await this.onScrollDown()}}},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.onPollTasks,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(`wan/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`wan/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`wan/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r,...this.walletMode&&!this.credential?.token?{mode:`x402`,ids:this.walletTaskIds}:{}})}finally{this.fetchingTasks=!1}},async onGenerate(){let e=J(this.config),t=ve(`wan`,e);if(t){w.error(this.$t(`common.message.${t}`));return}if(!R(this.uploadTracker,e=>this.$t(e),e=>w.warning(e)))return;let n;if(this.walletMode){let t=this.getWalletContext();if(!t){w.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}n=V.generate(e,{mode:`x402`,x402:{wallet:t,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credential?.token}})}else{if(!ne())return;let t=this.credential?.token;if(!t)return;n=V.generate(e,{token:t})}w.info(this.$t(`wan.message.startingTask`)),Y(`wan`,n).then(e=>{let t=e?.data?.task_id;this.walletMode&&!this.credential?.token&&t&&!this.walletTaskIds.includes(t)&&this.walletTaskIds.unshift(t),w.success(this.$t(`wan.message.startTaskSuccess`))}).catch(e=>{e instanceof oe||U(e,`wan`)||(this.walletMode?w.error(this.$t(`common.x402Scenario.paymentFailed`)):w.error(this.$t(`wan.message.startTaskFailed`)))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getWalletContext(){return Q(this.$wallet)},async confirmWalletPayment(e){return K.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Zt(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Qt=z(Xt,[[`render`,Zt]]);export{Qt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,P as c,T as l,at as u,ht as d,it as f,j as p,mt as m,rt as h,tt as g,x as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{r as y,t as b}from"./select-CLubZdq7.js";import{t as x}from"./upload-CIplFhpf.js";import{t as S}from"./tooltip-CbdHMzJA.js";import{t as C}from"./alert-BprQRUmf.js";import{h as w,v as T}from"./models-BpGydDYc.js";import{n as E,r as D}from"./radio-BNhFzeBO.js";import{n as O,t as k}from"./collapse-mhzAC7FG.js";import{t as A}from"./drawer-DSMPU53I.js";import{t as j}from"./input-number-vH4-o6sA.js";import{t as M}from"./progress-BuyYfFZn.js";import{t as N}from"./clock-DGhHlqhN.js";import{a as ee,i as P,n as te,o as ne,r as re,s as ie,t as ae}from"./pagination-NYLKdTqd.js";import{t as oe}from"./info-C4cUVd29.js";import{t as se}from"./music-2-Z8LCQfXe.js";import{t as ce}from"./plus-Bg0EWI0e.js";import{t as F}from"./trash-2-DHDZkxkx.js";import{t as I}from"./triangle-alert-BJ4LPyYk.js";import{t as le}from"./upload-R9TAaxbr.js";import{t as ue}from"./user-BvflVZDf.js";import{t as de}from"./video-XpLjh-Fi.js";import{t as L}from"./wand-sparkles-B6SKd5hA.js";import{Lr as fe,Mr as R,Nr as pe,Pr as me,Rr as he,jr as ge}from"./constants-BSFiYSou.js";import{$ as _e,A as z,Cr as ve,Fi as B,Ia as ye,Li as V,O as be,Pa as xe,Qa as H,Ra as U,Sn as Se,Sr as W,Ua as Ce,Xi as we,Y as Te,et as Ee,li as G,na as De,nt as Oe,oo as ke,rt as Ae,si as K,tt as je,wr as q}from"./index-DvTGM53_.js";import{t as Me}from"./CopyToClipboard-MUNdxLCY.js";import{t as Ne}from"./ReportButton-Cf9hMzLL.js";import{t as J}from"./ImagePreview-BxkzgXM2.js";import{n as Pe}from"./taskDrawerMixin-DyAUhFEq.js";import{n as Fe,t as Ie}from"./ServicePricingSummary-CN74WnAC.js";import{t as Y}from"./AudioPreview-CJIm_lvI.js";import{t as Le}from"./VideoPlayer-DMwakGOn.js";import{t as X}from"./VideoPreview-BrfMXofe.js";import{t as Re}from"./ScenarioPaymentMode-Ul5m6vCS.js";import{t as ze}from"./ApiCodeButton-C_BQZfJW.js";import{t as Be}from"./BotPlaceholder-C-06_hGv.js";import{t as Ve}from"./taskPollingMixin-CcLxtz8z.js";var He=v({name:`LayoutDigitalHuman`,components:{UserIcon:ue,ElDrawer:A,ElButton:H},mixins:[Pe]}),Ue={class:`main flex flex-row flex-1`},We={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Ge={class:`result h-full p-4 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function Ke(t,n,r,i,o,c){let l=u(`user-icon`),p=u(`el-button`),h=u(`el-drawer`);return g(),s(`div`,Ue,[e(`div`,We,[f(t.$slots,`config`,{},void 0,!0)]),e(`div`,Ge,[f(t.$slots,`result`,{},void 0,!0)]),d(a(p,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:m(()=>[a(l,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[_,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:m(()=>[f(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var qe=z(He,[[`render`,Ke],[`__scopeId`,`data-v-909c6359`]]),Je=v({name:`DigitalHumanMediaInput`,components:{AudioPreview:Y,CloseIcon:ye,ElButton:H,ElProgress:M,ElUpload:x,ImagePreview:J,MusicIcon:se,UploadIcon:le,VideoIcon:de,VideoPreview:X},mixins:[Ae,Oe,Ee,Te],props:{kind:{type:String,required:!0},accept:{type:String,default:``},buttonText:{type:String,default:``},hint:{type:String,default:``}},emits:[`change`],data(){return{fileList:[],uploadUrl:xe()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},hasFile(){return this.fileList.length>0}},methods:{uploadedUrl(e){return e?.response?.file_url},isPending(e){return e.status===`ready`||e.status===`uploading`},onExceed(e){let t=this.$refs.uploader;t?.clearFiles();let n=e[0];n&&(t?.handleStart?.(n),t?.submit?.())},onError(){T.error(this.$t(`digitalhuman.message.uploadError`))},onRemoveFile(e){let t=this.fileList.indexOf(e);t>=0&&this.fileList.splice(t,1),this.onChange()},onChange(){let e=this.fileList?.[0];this.$emit(`change`,e?this.uploadedUrl(e):void 0)}}}),Ye={class:`thumb`},Xe={key:2,class:`placeholder`},Ze=[`title`],Qe=[`aria-label`,`title`,`onClick`],$e={key:0,class:`hint`};function et(c,d,f,h,_,v){let y=u(`image-preview`),b=u(`video-preview`),x=u(`audio-preview`),S=u(`el-progress`),C=u(`video-icon`),w=u(`music-icon`),T=u(`close-icon`),E=u(`upload-icon`),D=u(`el-button`),O=u(`el-upload`);return g(),p(O,{ref:`uploader`,"file-list":c.fileList,"onUpdate:fileList":d[0]||=e=>c.fileList=e,accept:c.accept,name:`file`,class:`media-input`,limit:1,multiple:!1,"before-upload":c.beforeUploadSizeGuard,action:c.uploadUrl,headers:c.headers,"on-exceed":c.onExceed,"on-error":c.onError,"on-success":c.onChange,"on-remove":c.onChange},{file:m(({file:r})=>[e(`div`,{class:n([`slot`,{pending:c.isPending(r)}])},[c.kind===`image`&&r.url?(g(),p(y,{key:0,url:r.url,name:r.name,percentage:r.percentage,onRemove:e=>c.onRemoveFile(r)},null,8,[`url`,`name`,`percentage`,`onRemove`])):(g(),s(l,{key:1},[e(`div`,Ye,[c.kind===`video`&&c.uploadedUrl(r)?(g(),p(b,{key:0,url:c.uploadedUrl(r)},null,8,[`url`])):c.kind===`audio`&&c.uploadedUrl(r)?(g(),p(x,{key:1,url:c.uploadedUrl(r)},null,8,[`url`])):(g(),s(`div`,Xe,[c.isPending(r)?(g(),p(S,{key:0,type:`circle`,"stroke-width":4,percentage:Math.round(r.percentage||0),width:34},null,8,[`percentage`])):c.kind===`video`?(g(),p(C,{key:1,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(g(),p(w,{key:2,size:`1em`,"aria-hidden":`true`,focusable:`false`}))]))]),e(`span`,{class:`filename`,title:r.name},i(r.name),9,Ze),e(`button`,{type:`button`,class:`remove`,"aria-label":c.$t(`common.button.close`),title:c.$t(`common.button.close`),onClick:t(e=>c.onRemoveFile(r),[`stop`])},[a(T,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,Qe)],64))],2)]),default:m(()=>[a(D,{round:``,type:`primary`,size:`small`,class:`btn`},{default:m(()=>[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(c.hasFile?c.$t(`digitalhuman.button.replace`):c.buttonText),1)]),_:1}),c.hint?(g(),s(`p`,$e,i(c.hint),1)):o(``,!0)]),_:1},8,[`file-list`,`accept`,`before-upload`,`action`,`headers`,`on-exceed`,`on-error`,`on-success`,`on-remove`])}var Z=z(Je,[[`render`,et],[`__scopeId`,`data-v-db0590a9`]]),tt=20,Q=e=>{let t=e;return!!t&&typeof t.voice_id==`string`&&!!t.voice_id&&typeof t.name==`string`},$=()=>{try{let e=JSON.parse(localStorage.getItem(`digitalhuman.voices`)||`[]`);return Array.isArray(e)?e.filter(Q).map(e=>({voice_id:e.voice_id,name:e.name,lang:typeof e.lang==`string`?e.lang:`zh`,created_at:typeof e.created_at==`number`?e.created_at:0})):[]}catch{return[]}},nt=e=>{try{localStorage.setItem(he,JSON.stringify(e))}catch{}return e},rt=e=>Q(e)?nt([e,...$().filter(t=>t.voice_id!==e.voice_id)].slice(0,tt)):$(),it=e=>nt($().filter(t=>t.voice_id!==e)),at=e=>`${e} ${$().length+1}`,ot=3e3,st=60,ct=v({name:`DigitalHumanVoiceCloneDialog`,components:{Consumption:Fe,ElAlert:C,ElButton:H,ElDialog:Ce,ElInput:ke,ElRadioButton:E,ElRadioGroup:D,MediaInput:Z},props:{visible:{type:Boolean,default:!1}},emits:[`update:visible`,`cloned`],data(){return{sampleUrl:void 0,name:``,lang:`zh`,cloning:!1,destroyed:!1,runId:0,DIGITALHUMAN_AUDIO_ACCEPT:R,DIGITALHUMAN_VOICE_CLONE_CONSUMPTION:2,voiceQuoteUsdc:void 0,voiceQuoteLoading:!1,quoteRunId:0}},computed:{service(){return this.$store.state.digitalhuman?.service},credentialToken(){return this.$store.state.digitalhuman?.credential?.token},walletMode(){return B()&&V(`digitalhuman`).mode===`wallet`},langOptions(){return ge.map(e=>({value:e,label:this.$t(`digitalhuman.name.lang_${e}`)}))}},watch:{walletMode(e){this.voiceQuoteUsdc=void 0,e&&this.visible&&this.sampleUrl&&this.refreshVoiceQuote()},visible(e){e?(this.sampleUrl=void 0,this.name=at(this.$t(`digitalhuman.name.myVoice`)),this.lang=`zh`):(this.runId++,this.quoteRunId++,this.cloning=!1,this.voiceQuoteLoading=!1)}},beforeUnmount(){this.destroyed=!0,this.runId++,this.quoteRunId++},methods:{onVisible(e){this.cloning&&!e||this.$emit(`update:visible`,e)},onSampleChange(e){this.sampleUrl=e,this.voiceQuoteUsdc=void 0,e&&this.walletMode&&this.refreshVoiceQuote()},isStale(e){return this.destroyed||e!==this.runId},sleep(e){return new Promise(t=>setTimeout(t,e))},async refreshVoiceQuote(){if(!this.sampleUrl)return;let e=++this.quoteRunId;this.voiceQuoteLoading=!0;try{let t=await q.quoteVoice(this.voiceRequest());e===this.quoteRunId&&this.walletMode&&(this.voiceQuoteUsdc=t.amountUsdc)}catch(e){console.warn(`x402 voice quote failed`,e)}finally{e===this.quoteRunId&&(this.voiceQuoteLoading=!1)}},voiceRequest(){return ve({audio_url:this.sampleUrl||``,lang:this.lang,name:this.name||void 0})},paymentOptions(){if(!this.walletMode)return this.credentialToken?{token:this.credentialToken}:void 0;let e=this.getWalletContext();if(!e){T.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}return{mode:`x402`,x402:{wallet:e,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credentialToken}}},async onClone(){if(!this.sampleUrl)return;let e=this.paymentOptions();if(!e)return;let t=++this.runId;this.cloning=!0;try{let{data:n}=await q.cloneVoice(this.voiceRequest(),e);if(this.isStale(t))return;if(n?.voice_id){this.onCloned(n.voice_id);return}if(n?.task_id)await this.pollVoice(n.task_id,t);else throw Error(`no task`)}catch(e){if(e instanceof K)return;this.isStale(t)||T.error(this.$t(`digitalhuman.message.voiceCloneFailed`))}finally{this.isStale(t)||(this.cloning=!1)}},async pollVoice(e,t){for(let n=0;n<st;n++){if(this.isStale(t)||(await this.sleep(ot),this.isStale(t)))return;let n=this.credentialToken,{data:r}=await q.pollTask(e,n?{token:n}:{mode:`x402`});if(this.isStale(t))return;if(r?.voice_id){this.onCloned(r.voice_id);return}if(r?.state===`failed`)throw Error(`clone failed`)}throw Error(`timeout`)},getWalletContext(){return G(this.$wallet)},async confirmWalletPayment(e){return U.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},onCloned(e){rt({voice_id:e,name:this.name||this.$t(`digitalhuman.name.myVoice`),lang:this.lang,created_at:Date.now()/1e3}),T.success(this.$t(`digitalhuman.message.voiceCloneSuccess`)),this.cloning=!1,this.$emit(`cloned`,e),this.$emit(`update:visible`,!1)}}}),lt={class:`text-xs text-[var(--el-text-color-secondary)] mb-3`},ut={class:`field mb-3`},dt={class:`label`},ft={class:`field`},pt={class:`label`},mt={class:`text-xs mb-0`},ht={key:1,class:`mt-4 text-xs text-[var(--el-text-color-secondary)]`},gt={class:`footer`},_t={key:0,class:`cost text-xs text-[var(--el-text-color-secondary)]`};function vt(t,n,o,c,d,f){let _=u(`media-input`),v=u(`el-input`),y=u(`el-radio-button`),b=u(`el-radio-group`),x=u(`el-alert`),S=u(`consumption`),C=u(`el-button`),w=u(`el-dialog`);return g(),p(w,{"model-value":t.visible,title:t.$t(`digitalhuman.name.cloneVoice`),width:`440`,"align-center":``,"append-to-body":``,"close-on-click-modal":!t.cloning,"close-on-press-escape":!t.cloning,"onUpdate:modelValue":t.onVisible},{footer:m(()=>[e(`div`,gt,[t.walletMode?(g(),s(`span`,_t,i(t.voiceQuoteLoading?`…`:t.voiceQuoteUsdc?`${t.voiceQuoteUsdc} USDC`:t.$t(`common.x402Scenario.quoteBeforeSigning`)),1)):(g(),p(S,{key:1,value:t.DIGITALHUMAN_VOICE_CLONE_CONSUMPTION,service:t.service,class:`cost`},null,8,[`value`,`service`])),e(`div`,null,[a(C,{disabled:t.cloning,onClick:n[2]||=e=>t.onVisible(!1)},{default:m(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1},8,[`disabled`]),a(C,{type:`primary`,loading:t.cloning,disabled:!t.sampleUrl||t.cloning,onClick:t.onClone},{default:m(()=>[r(i(t.$t(`digitalhuman.button.startClone`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])])])]),default:m(()=>[e(`p`,lt,i(t.$t(`digitalhuman.message.voiceCloneHint`)),1),a(_,{kind:`audio`,accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadSample`),hint:t.$t(`digitalhuman.message.audioHint`),class:`mb-4`,onChange:t.onSampleChange},null,8,[`accept`,`button-text`,`hint`,`onChange`]),e(`div`,ut,[e(`span`,dt,i(t.$t(`digitalhuman.name.voiceName`)),1),a(v,{modelValue:t.name,"onUpdate:modelValue":n[0]||=e=>t.name=e,class:`control`,placeholder:t.$t(`digitalhuman.placeholder.voiceName`)},null,8,[`modelValue`,`placeholder`])]),e(`div`,ft,[e(`span`,pt,i(t.$t(`digitalhuman.name.voiceLang`)),1),a(b,{modelValue:t.lang,"onUpdate:modelValue":n[1]||=e=>t.lang=e,class:`control`},{default:m(()=>[(g(!0),s(l,null,h(t.langOptions,e=>(g(),p(y,{key:e.value,value:e.value},{default:m(()=>[r(i(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),t.cloning?(g(),p(x,{key:0,closable:!1,type:`info`,class:`mt-4`},{default:m(()=>[e(`p`,mt,i(t.$t(`digitalhuman.message.voiceCloneRunning`)),1)]),_:1})):(g(),s(`p`,ht,i(t.$t(`digitalhuman.message.voiceStoredLocally`)),1))]),_:1},8,[`model-value`,`title`,`close-on-click-modal`,`close-on-press-escape`,`onUpdate:modelValue`])}var yt=v({name:`DigitalHumanTimbreSelector`,components:{AddIcon:ce,DeleteIcon:F,ElButton:H,ElOption:b,ElSelect:y,VoiceCloneDialog:z(ct,[[`render`,vt],[`__scopeId`,`data-v-037c810e`]])},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{voices:$(),dialogVisible:!1}},mounted(){this.modelValue&&!this.voices.some(e=>e.voice_id===this.modelValue)&&this.$emit(`update:modelValue`,void 0)},methods:{labelFor(e){let t=this.$t(`digitalhuman.name.lang_${e.lang}`);return t.startsWith(`digitalhuman.`)?e.name:`${e.name} · ${t}`},onCloned(e){this.voices=$(),this.$emit(`update:modelValue`,e)},onRemove(e){this.voices=it(e),this.modelValue===e&&this.$emit(`update:modelValue`,void 0)}}}),bt={class:`row`},xt={class:`label`},St={class:`option`},Ct={class:`option-name`},wt=[`aria-label`,`title`,`onClick`],Tt={class:`empty`};function Et(n,o,d,f,_,v){let y=u(`delete-icon`),b=u(`el-option`),x=u(`el-select`),S=u(`add-icon`),C=u(`el-button`),w=u(`voice-clone-dialog`);return g(),s(`div`,null,[e(`div`,bt,[e(`span`,xt,i(n.$t(`digitalhuman.name.timbre`)),1),a(x,{"model-value":n.modelValue,class:`control`,placeholder:n.$t(`digitalhuman.placeholder.pickTimbre`),"onUpdate:modelValue":o[0]||=e=>n.$emit(`update:modelValue`,e)},c({default:m(()=>[(g(!0),s(l,null,h(n.voices,r=>(g(),p(b,{key:r.voice_id,label:n.labelFor(r),value:r.voice_id},{default:m(()=>[e(`span`,St,[e(`span`,Ct,i(n.labelFor(r)),1),e(`button`,{type:`button`,class:`option-remove`,"aria-label":n.$t(`common.button.delete`),title:n.$t(`common.button.delete`),onClick:t(e=>n.onRemove(r.voice_id),[`stop`])},[a(y,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,wt)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},[n.voices.length===0?{name:`empty`,fn:m(()=>[e(`p`,Tt,i(n.$t(`digitalhuman.message.noVoiceYet`)),1)]),key:`0`}:void 0]),1032,[`model-value`,`placeholder`])]),a(C,{size:`small`,text:``,type:`primary`,class:`clone`,onClick:o[1]||=e=>n.dialogVisible=!0},{default:m(()=>[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.button.cloneNewVoice`)),1)]),_:1}),a(w,{visible:n.dialogVisible,"onUpdate:visible":o[2]||=e=>n.dialogVisible=e,onCloned:n.onCloned},null,8,[`visible`,`onCloned`])])}var Dt=v({name:`ConfigPanel`,components:{ServicePricingSummary:Ie,ElButton:H,ElCollapse:k,ElCollapseItem:O,ElInputNumber:j,ElRadioButton:E,ElRadioGroup:D,InfoIcon:ee,MagicIcon:L,MediaInput:Z,PromptTextarea:P,TimbreSelector:z(yt,[[`render`,Et],[`__scopeId`,`data-v-e191cc56`]]),WarningIcon:I,ScenarioPaymentMode:Re},emits:[`generate`],data(){return{faceMode:`video`,voiceMode:`text`,advancedOpen:[],DIGITALHUMAN_VIDEO_ACCEPT:fe,DIGITALHUMAN_IMAGE_ACCEPT:me,DIGITALHUMAN_AUDIO_ACCEPT:R,quoteTimer:0,quoteRunId:0}},computed:{config(){return this.$store.state.digitalhuman?.config},service(){return this.$store.state.digitalhuman?.service},consumption(){return Se(this.config,this.service?.cost)},missing(){let e=[];return(this.faceMode===`video`?this.config?.video_url:this.config?.image_url)||e.push({key:`face`,message:this.$t(`digitalhuman.message.missingFace`)}),this.voiceMode===`text`?(this.config?.text?.trim()||e.push({key:`text`,message:this.$t(`digitalhuman.message.missingText`)}),this.config?.voice_id||e.push({key:`timbre`,message:this.$t(`digitalhuman.message.missingTimbre`)})):this.config?.audio_url||e.push({key:`audio`,message:this.$t(`digitalhuman.message.missingAudio`)}),e},text:{get(){return this.config?.text},set(e){this.update({text:e})}},voiceId:{get(){return this.config?.voice_id},set(e){this.update({voice_id:e})}},speed:{get(){return this.config?.speed??1},set(e){this.update({speed:e})}},walletMode(){return B()&&V(`digitalhuman`).mode===`wallet`}},watch:{walletMode:{handler(e){e&&this.scheduleQuote()},immediate:!0},config:{handler(){this.walletMode&&this.scheduleQuote()},deep:!0},faceMode(){this.walletMode&&this.scheduleQuote()},voiceMode(){this.walletMode&&this.scheduleQuote()}},mounted(){this.config?.image_url&&!this.config?.video_url&&(this.faceMode=`photo`),this.config?.audio_url&&(this.voiceMode=`audio`)},beforeUnmount(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1},methods:{scheduleQuote(){window.clearTimeout(this.quoteTimer),this.quoteTimer=window.setTimeout(this.refreshQuote,350)},async refreshQuote(){let e=V(`digitalhuman`),t=++this.quoteRunId;e.quoteLoading=!0,e.quoteUsdc=void 0;try{let n=W(this.config,this.faceMode,this.voiceMode),r=await q.quote(n);t===this.quoteRunId&&e.mode===`wallet`&&(e.quoteUsdc=r.amountUsdc)}catch(e){console.warn(`x402 quote failed`,e)}finally{t===this.quoteRunId&&(e.quoteLoading=!1)}},isMissing(e){return this.missing.some(t=>t.key===e)},update(e){this.$store.commit(`digitalhuman/setConfig`,{...this.config,...e})},onFaceModeChange(e){this.update(e===`video`?{image_url:void 0}:{video_url:void 0})},onVoiceModeChange(e){this.update(e===`audio`?{text:void 0,voice_id:void 0}:{audio_url:void 0})},onFaceVideoChange(e){this.update({video_url:e})},onFacePhotoChange(e){this.update({image_url:e})},onAudioChange(e){this.update({audio_url:e})},onGenerate(){let e=this.missing[0];if(e){T.warning(e.message);let t=e.key===`face`?`face`:`voice`;this.$refs[t]?.scrollIntoView?.({behavior:`smooth`,block:`center`});return}this.$emit(`generate`,W(this.config,this.faceMode,this.voiceMode))}}}),Ot={class:`flex flex-col h-full`},kt={class:`flex-1 overflow-y-auto p-5`},At={ref:`face`,class:`field-block mb-6`},jt={class:`field-head`},Mt={class:`field-title font-bold`},Nt={key:0,class:`required-badge`},Pt={ref:`voice`,class:`field-block mb-6`},Ft={class:`field-head`},It={class:`field-title font-bold`},Lt={key:0,class:`required-badge`},Rt={class:`field-row`},zt={class:`field-head`},Bt={class:`field-title font-bold`},Vt={class:`flex flex-col items-center justify-center px-5 pb-5`},Ht={key:0,class:`hint-missing`},Ut={class:`hint-eta`};function Wt(t,n,c,d,f,h){let _=u(`info-icon`),v=u(`el-radio-button`),y=u(`el-radio-group`),b=u(`media-input`),x=u(`prompt-textarea`),S=u(`timbre-selector`),C=u(`el-input-number`),w=u(`el-collapse-item`),T=u(`el-collapse`),E=u(`warning-icon`),D=u(`scenario-payment-mode`),O=u(`service-pricing-summary`),k=u(`magic-icon`),A=u(`el-button`);return g(),s(`div`,Ot,[e(`div`,kt,[e(`section`,At,[e(`div`,jt,[e(`h2`,Mt,i(t.$t(`digitalhuman.name.step1`)),1),t.isMissing(`face`)?(g(),s(`span`,Nt,i(t.$t(`digitalhuman.name.required`)),1)):o(``,!0),a(_,{content:t.$t(`digitalhuman.description.step1`),class:`ml-1`},null,8,[`content`])]),a(y,{modelValue:t.faceMode,"onUpdate:modelValue":n[0]||=e=>t.faceMode=e,class:`mode-switch mb-3`,onChange:t.onFaceModeChange},{default:m(()=>[a(v,{value:`video`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.faceModeVideo`)),1)]),_:1}),a(v,{value:`photo`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.faceModePhoto`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.faceMode===`video`?(g(),p(b,{key:0,kind:`video`,accept:t.DIGITALHUMAN_VIDEO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadFaceVideo`),hint:t.$t(`digitalhuman.message.faceVideoHint`),onChange:t.onFaceVideoChange},null,8,[`accept`,`button-text`,`hint`,`onChange`])):(g(),p(b,{key:1,kind:`image`,accept:t.DIGITALHUMAN_IMAGE_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadFacePhoto`),hint:t.$t(`digitalhuman.message.facePhotoHint`),onChange:t.onFacePhotoChange},null,8,[`accept`,`button-text`,`hint`,`onChange`]))],512),e(`section`,Pt,[e(`div`,Ft,[e(`h2`,It,i(t.$t(`digitalhuman.name.step2`)),1),t.isMissing(`text`)||t.isMissing(`timbre`)||t.isMissing(`audio`)?(g(),s(`span`,Lt,i(t.$t(`digitalhuman.name.required`)),1)):o(``,!0),a(_,{content:t.$t(`digitalhuman.description.step2`),class:`ml-1`},null,8,[`content`])]),a(y,{modelValue:t.voiceMode,"onUpdate:modelValue":n[1]||=e=>t.voiceMode=e,class:`mode-switch mb-3`,onChange:t.onVoiceModeChange},{default:m(()=>[a(v,{value:`text`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.voiceModeText`)),1)]),_:1}),a(v,{value:`audio`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.voiceModeAudio`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.voiceMode===`text`?(g(),s(l,{key:0},[a(x,{modelValue:t.text,"onUpdate:modelValue":n[2]||=e=>t.text=e,class:`mb-3`,title:t.$t(`digitalhuman.name.speech`),placeholder:t.$t(`digitalhuman.placeholder.speech`),"min-rows":5,"max-rows":14},null,8,[`modelValue`,`title`,`placeholder`]),a(S,{modelValue:t.voiceId,"onUpdate:modelValue":n[3]||=e=>t.voiceId=e},null,8,[`modelValue`])],64)):(g(),p(b,{key:1,kind:`audio`,accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadSpeechAudio`),hint:t.$t(`digitalhuman.message.audioHint`),onChange:t.onAudioChange},null,8,[`accept`,`button-text`,`hint`,`onChange`]))],512),a(T,{modelValue:t.advancedOpen,"onUpdate:modelValue":n[5]||=e=>t.advancedOpen=e,class:`advanced`},{default:m(()=>[a(w,{name:`advanced`,title:t.$t(`digitalhuman.name.advanced`)},{default:m(()=>[e(`div`,Rt,[e(`div`,zt,[e(`h2`,Bt,i(t.$t(`digitalhuman.name.speed`)),1),a(_,{content:t.$t(`digitalhuman.description.speed`),class:`ml-1`},null,8,[`content`])]),a(C,{modelValue:t.speed,"onUpdate:modelValue":n[4]||=e=>t.speed=e,class:`field-control`,min:.5,max:2,step:.1,precision:1,"controls-position":`right`},null,8,[`modelValue`])])]),_:1},8,[`title`])]),_:1},8,[`modelValue`])]),e(`div`,Vt,[t.missing.length>0?(g(),s(`p`,Ht,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.missing[0].message),1)])):o(``,!0),a(D,{scenario:`digitalhuman`}),t.walletMode?o(``,!0):(g(),p(O,{key:1,value:t.consumption,service:t.service},null,8,[`value`,`service`])),a(A,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:m(()=>[a(k,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`digitalhuman.button.generateVideo`)),1)]),_:1},8,[`onClick`]),e(`p`,Ut,i(t.$t(`digitalhuman.message.eta`)),1)])])}var Gt=z(Dt,[[`render`,Wt],[`__scopeId`,`data-v-0b652d94`]]),Kt=[`.jpg`,`.jpeg`,`.png`,`.webp`,`.bmp`,`.gif`],qt=v({name:`TaskPreview`,components:{ApiCodeButton:ze,AudioPreview:Y,ChannelIcon:ie,CopyToClipboard:Me,DeleteIcon:F,ElAlert:C,ElButton:H,ElProgress:M,ElTooltip:S,FullscreenIcon:ne,ImagePreview:J,InfoIcon:oe,MagicIcon:L,ReportButton:Ne,TimeIcon:N,VideoPlayer:Le,VideoPreview:X,WarningIcon:I},props:{modelValue:{type:Object,required:!0}},computed:{status(){return this.modelValue?.status||this.modelValue?.response?.state||`pending`},isSuccess(){return[`succeed`,`succeeded`].includes(this.status)||!!this.modelValue?.response?.video_url},isFailure(){return[`failed`,`dead`].includes(this.status)||this.modelValue?.response?.success===!1},isTerminal(){return this.isSuccess||this.isFailure},videoUrl(){return this.modelValue?.response?.video_url},progressPct(){let e=this.modelValue?.response?.progress;return typeof e==`number`?e:0},voiceLabel(){return this.modelValue?.request?.audio_url?this.$t(`digitalhuman.name.audioDriven`):this.$t(`digitalhuman.name.textDriven`)},faceUrl(){return this.modelValue?.request?.video_url||this.modelValue?.request?.image_url},isPhotoFace(){if(this.modelValue?.request?.image_url)return!0;let e=(this.faceUrl||``).split(`?`)[0].toLowerCase();return Kt.some(t=>e.endsWith(t))},audioUrl(){return this.modelValue?.request?.audio_url},outputSize(){let{width:e,height:t}=this.modelValue?.response||{};return e&&t?`${e}×${t}`:void 0},etaText(){let e=parseFloat((this.modelValue?.created_at||``).toString());if(!e)return;let t=pe-(Date.now()/1e3-e);return t<=60?this.$t(`digitalhuman.message.etaAlmostDone`):this.$t(`digitalhuman.message.etaRemaining`,{minutes:Math.ceil(t/60)})},statusLabel(){let e=`digitalhuman.status.${this.status}`,t=this.$t(e);return t===e?this.$t(`digitalhuman.status.processing`):t},failureReason(){let e=this.modelValue?.response?.error;if(e)return typeof e==`string`?e:e?.message}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await U.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`digitalhuman/deleteTask`,{id:e}),T.success(this.$t(`common.message.deleteTaskSuccess`))}catch{T.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),window.open(t,`_blank`)}}}),Jt={class:`preview`},Yt={class:`left`},Xt={class:`main`},Zt={class:`bot`},Qt={class:`datetime`},$t=[`aria-label`],en={class:`info`},tn={key:0,class:`flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto`},nn={class:`prompt mt-2`},rn={key:0},an={key:0,class:`content`},on={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},sn={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},cn={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},ln={key:1,class:`content`},un={class:`operations mt-2`},dn={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},fn={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pn={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mn={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},hn={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gn={key:2,class:`content`},_n={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vn={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yn={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bn={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function xn(n,c,l,d,f,h){let _=u(`capability-presentation`),v=u(`delete-icon`),y=u(`el-tooltip`),b=u(`image-preview`),x=u(`video-preview`),S=u(`audio-preview`),C=u(`time-icon`),w=u(`el-progress`),T=u(`magic-icon`),E=u(`copy-to-clipboard`),D=u(`el-alert`),O=u(`video-player`),k=u(`el-button`),A=u(`api-code-button`),j=u(`report-button`),M=u(`fullscreen-icon`),N=u(`channel-icon`),ee=u(`warning-icon`),P=u(`info-icon`);return g(),s(`div`,Jt,[e(`div`,Yt,[a(_,{capability:`digitalhuman`,part:`avatar`,class:`avatar`})]),e(`div`,Xt,[e(`div`,Zt,[a(_,{capability:`digitalhuman`,part:`name`}),e(`span`,Qt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(y,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:m(()=>[n.modelValue?.id?(g(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,$t)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,en,[n.faceUrl||n.audioUrl?(g(),s(`div`,tn,[n.faceUrl&&n.isPhotoFace?(g(),p(b,{key:0,url:n.faceUrl,name:`face`,closable:!1},null,8,[`url`])):n.faceUrl?(g(),p(x,{key:1,url:n.faceUrl,name:`face`},null,8,[`url`])):o(``,!0),n.audioUrl?(g(),p(S,{key:2,url:n.audioUrl,name:`audio`},null,8,[`url`])):o(``,!0)])):o(``,!0),e(`p`,nn,[r(i(n.modelValue?.request?.text||n.voiceLabel)+` `,1),n.isTerminal?o(``,!0):(g(),s(`span`,rn,` - (`+i(n.statusLabel)+`) `,1))])]),n.isTerminal?o(``,!0):(g(),s(`div`,an,[a(D,{closable:!1,class:`info-state`},{default:m(()=>[e(`p`,on,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.statusLabel),1)]),a(w,{percentage:n.progressPct,"stroke-width":6,class:`mb-2`},null,8,[`percentage`]),n.etaText?(g(),s(`p`,sn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.etaLabel`))+`: `+i(n.etaText),1)])):o(``,!0),e(`p`,cn,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])])]),_:1})])),n.isSuccess?(g(),s(`div`,ln,[n.videoUrl?(g(),p(O,{key:0,src:n.videoUrl},null,8,[`src`])):o(``,!0),e(`div`,un,[n.videoUrl?(g(),p(k,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=e=>n.onDownload(e,n.videoUrl)},{default:m(()=>[r(i(n.$t(`digitalhuman.button.download`)),1)]),_:1})):o(``,!0),a(A,{path:`/digital-human/videos`,body:n.modelValue?.request},null,8,[`body`]),a(j,{service:`digitalhuman`,"target-id":n.modelValue?.id,snapshot:{text:n.modelValue?.request?.text}},null,8,[`target-id`,`snapshot`])]),a(D,{closable:!1,class:`mt-2 success`},{default:m(()=>[n.modelValue?.response?.duration?(g(),s(`p`,dn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.duration`))+`: `+i(n.modelValue?.response?.duration?.toFixed(1))+`s `,1)])):o(``,!0),n.outputSize?(g(),s(`p`,fn,[a(M,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.outputSize`))+`: `+i(n.outputSize),1)])):o(``,!0),e(`p`,pn,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,mn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,hn,[a(N,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0),n.isFailure?(g(),s(`div`,gn,[a(D,{closable:!1,class:`failure`},{template:m(()=>[a(ee,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.failure`)),1)]),default:m(()=>[e(`p`,_n,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.failureReason?(g(),s(`p`,vn,[a(P,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.failureReason`))+`: `+i(n.failureReason)+` `,1),a(E,{content:n.failureReason},null,8,[`content`])])):o(``,!0),n.modelValue?.elapsed?(g(),s(`p`,yn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,bn,[a(N,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0)])])}var Sn=v({name:`RecentPanel`,components:{TaskPreview:z(qt,[[`render`,xn],[`__scopeId`,`data-v-342f1d6d`]]),NoTasks:re,BotPlaceholder:Be,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.digitalhuman?.tasks,items:this.$store.state.digitalhuman?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Cn={key:0},wn={key:2,class:`w-full h-full flex items-center justify-center`};function Tn(e,t,n,r,i,c){let d=u(`bot-placeholder`),f=u(`task-preview`),_=u(`scroll-list`),v=u(`no-tasks`);return g(),s(l,null,[e.tasks?.items===void 0?(g(),s(`div`,Cn,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(g(),p(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:m(()=>[(g(!0),s(l,null,h(e.tasks?.items,(e,t)=>(g(),p(f,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(g(),s(`div`,wn,[a(v)])):o(``,!0)],64)}var En=v({name:`DigitalHumanIndex`,components:{ConfigPanel:Gt,Layout:qe,RecentPanel:z(Sn,[[`render`,Tn]])},mixins:[je,Ve(`digitalhuman`,!1)],inject:[`initialized`],data(){return{job:0,loadingMore:!1,fetchingTasks:!1,walletTaskIds:[]}},computed:{applicationsLoading(){return this.$store.state.digitalhuman?.status?.getApplications===w.Request},tasksLoading(){return this.$store.state.digitalhuman?.status?.getTasks===w.Request||this.fetchingTasks},credential(){return this.$store.state.digitalhuman.credential},config(){return this.$store.state.digitalhuman.config},tasks(){return this.$store.state.digitalhuman.tasks},walletMode(){return B()&&V(`digitalhuman`).mode===`wallet`}},watch:{walletMode:{async handler(e,t){if(!(t===void 0||e===t)){if(this.$store.commit(`digitalhuman/setTasks`,void 0),e&&!this.job&&(this.job=window.setInterval(this.onPollTasks,5e3)),!e&&!this.credential?.token){window.clearInterval(this.job),this.job=0,await this.onScrollDown();return}await this.onGetTasks(),await this.onScrollDown()}}},initialized:{async handler(e){window.clearInterval(this.job),e&&(await this.onGetTasks(),await this.onScrollDown(),this.job||=window.setInterval(this.onPollTasks,5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await ae({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`digitalhuman/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`digitalhuman/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r,...this.walletMode&&!this.credential?.token?{mode:`x402`,ids:this.walletTaskIds}:{}})}finally{this.fetchingTasks=!1}},async onGenerate(e){if(!_e(this.uploadTracker,e=>this.$t(e),e=>T.warning(e)))return;let t;if(this.walletMode){let n=this.getWalletContext();if(!n){T.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}t=q.generate(e,{mode:`x402`,x402:{wallet:n,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credential?.token}})}else{if(!De())return;let n=this.credential?.token;if(!n)return;t=q.generate(e,{token:n})}T.info(this.$t(`digitalhuman.message.startingTask`)),we(`digitalhuman`,t).then(e=>{let t=e?.data?.task_id;this.walletMode&&!this.credential?.token&&t&&!this.walletTaskIds.includes(t)&&this.walletTaskIds.unshift(t),T.success(this.$t(`digitalhuman.message.startTaskSuccess`))}).catch(e=>{e instanceof K||be(e,`digitalhuman`)||(this.walletMode?T.error(this.$t(`common.x402Scenario.paymentFailed`)):T.error(this.$t(`digitalhuman.message.startTaskFailed`)))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getWalletContext(){return G(this.$wallet)},async confirmWalletPayment(e){return U.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Dn(e,t,n,r,i,o){let s=u(`config-panel`),c=u(`recent-panel`),l=u(`layout`);return g(),p(l,null,{config:m(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:m(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var On=z(En,[[`render`,Dn]]);export{On as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,P as c,T as l,at as u,ht as d,it as f,j as p,mt as m,rt as h,tt as g,x as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{r as y,t as b}from"./select-D9KGK8y4.js";import{t as x}from"./upload-Bg2_7WAz.js";import{t as S}from"./tooltip-cWv_ok9x.js";import{t as C}from"./alert-BprQRUmf.js";import{h as w,v as T}from"./models-DwqNv9Tl.js";import{n as E,r as D}from"./radio-BNhFzeBO.js";import{n as O,t as k}from"./collapse-5lf8j5Bc.js";import{t as A}from"./drawer-BjY3KZuA.js";import{t as j}from"./input-number-DwWslk54.js";import{t as M}from"./progress-BuyYfFZn.js";import{t as N}from"./clock-CW2sY82G.js";import{a as ee,i as P,n as te,o as ne,r as re,s as ie,t as ae}from"./pagination-CsLQfKOF.js";import{t as oe}from"./info-BGgC-Vxv.js";import{t as se}from"./music-2-BAsZ9By6.js";import{t as ce}from"./plus-DNN6bXch.js";import{t as F}from"./trash-2--Y4CZ78D.js";import{t as I}from"./triangle-alert-DqUccgxs.js";import{t as le}from"./upload-CL3abvuk.js";import{t as ue}from"./user-DmnyyJnr.js";import{t as de}from"./video-DNcawGU0.js";import{t as L}from"./wand-sparkles-NtJ7A5GO.js";import{Lr as fe,Mr as R,Nr as pe,Pr as me,Rr as he,jr as ge}from"./constants-Dvsv8PB_.js";import{$ as _e,A as z,Cr as ve,Fi as B,Ia as ye,Li as V,O as be,Pa as xe,Qa as H,Ra as U,Sn as Se,Sr as W,Ua as Ce,Xi as we,Y as Te,et as Ee,li as G,na as De,nt as Oe,oo as ke,rt as Ae,si as K,tt as je,wr as q}from"./index-C1wCbgM5.js";import{t as Me}from"./CopyToClipboard-DpWxVezq.js";import{t as Ne}from"./ReportButton-Dg5iEeMg.js";import{t as J}from"./ImagePreview-gURgz19m.js";import{n as Pe}from"./taskDrawerMixin-DyAUhFEq.js";import{n as Fe,t as Ie}from"./ServicePricingSummary-DlacHpj1.js";import{t as Y}from"./AudioPreview-CTYrGDRl.js";import{t as Le}from"./VideoPlayer-DgwfbUZX.js";import{t as X}from"./VideoPreview-B2s_4dS6.js";import{t as Re}from"./ScenarioPaymentMode-Qr9pPAHy.js";import{t as ze}from"./ApiCodeButton-D_zwre2d.js";import{t as Be}from"./BotPlaceholder-D0kYwWKn.js";import{t as Ve}from"./taskPollingMixin-CcLxtz8z.js";var He=v({name:`LayoutDigitalHuman`,components:{UserIcon:ue,ElDrawer:A,ElButton:H},mixins:[Pe]}),Ue={class:`main flex flex-row flex-1`},We={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Ge={class:`result h-full p-4 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function Ke(t,n,r,i,o,c){let l=u(`user-icon`),p=u(`el-button`),h=u(`el-drawer`);return g(),s(`div`,Ue,[e(`div`,We,[f(t.$slots,`config`,{},void 0,!0)]),e(`div`,Ge,[f(t.$slots,`result`,{},void 0,!0)]),d(a(p,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:m(()=>[a(l,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[_,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:m(()=>[f(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var qe=z(He,[[`render`,Ke],[`__scopeId`,`data-v-909c6359`]]),Je=v({name:`DigitalHumanMediaInput`,components:{AudioPreview:Y,CloseIcon:ye,ElButton:H,ElProgress:M,ElUpload:x,ImagePreview:J,MusicIcon:se,UploadIcon:le,VideoIcon:de,VideoPreview:X},mixins:[Ae,Oe,Ee,Te],props:{kind:{type:String,required:!0},accept:{type:String,default:``},buttonText:{type:String,default:``},hint:{type:String,default:``}},emits:[`change`],data(){return{fileList:[],uploadUrl:xe()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},hasFile(){return this.fileList.length>0}},methods:{uploadedUrl(e){return e?.response?.file_url},isPending(e){return e.status===`ready`||e.status===`uploading`},onExceed(e){let t=this.$refs.uploader;t?.clearFiles();let n=e[0];n&&(t?.handleStart?.(n),t?.submit?.())},onError(){T.error(this.$t(`digitalhuman.message.uploadError`))},onRemoveFile(e){let t=this.fileList.indexOf(e);t>=0&&this.fileList.splice(t,1),this.onChange()},onChange(){let e=this.fileList?.[0];this.$emit(`change`,e?this.uploadedUrl(e):void 0)}}}),Ye={class:`thumb`},Xe={key:2,class:`placeholder`},Ze=[`title`],Qe=[`aria-label`,`title`,`onClick`],$e={key:0,class:`hint`};function et(c,d,f,h,_,v){let y=u(`image-preview`),b=u(`video-preview`),x=u(`audio-preview`),S=u(`el-progress`),C=u(`video-icon`),w=u(`music-icon`),T=u(`close-icon`),E=u(`upload-icon`),D=u(`el-button`),O=u(`el-upload`);return g(),p(O,{ref:`uploader`,"file-list":c.fileList,"onUpdate:fileList":d[0]||=e=>c.fileList=e,accept:c.accept,name:`file`,class:`media-input`,limit:1,multiple:!1,"before-upload":c.beforeUploadSizeGuard,action:c.uploadUrl,headers:c.headers,"on-exceed":c.onExceed,"on-error":c.onError,"on-success":c.onChange,"on-remove":c.onChange},{file:m(({file:r})=>[e(`div`,{class:n([`slot`,{pending:c.isPending(r)}])},[c.kind===`image`&&r.url?(g(),p(y,{key:0,url:r.url,name:r.name,percentage:r.percentage,onRemove:e=>c.onRemoveFile(r)},null,8,[`url`,`name`,`percentage`,`onRemove`])):(g(),s(l,{key:1},[e(`div`,Ye,[c.kind===`video`&&c.uploadedUrl(r)?(g(),p(b,{key:0,url:c.uploadedUrl(r)},null,8,[`url`])):c.kind===`audio`&&c.uploadedUrl(r)?(g(),p(x,{key:1,url:c.uploadedUrl(r)},null,8,[`url`])):(g(),s(`div`,Xe,[c.isPending(r)?(g(),p(S,{key:0,type:`circle`,"stroke-width":4,percentage:Math.round(r.percentage||0),width:34},null,8,[`percentage`])):c.kind===`video`?(g(),p(C,{key:1,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(g(),p(w,{key:2,size:`1em`,"aria-hidden":`true`,focusable:`false`}))]))]),e(`span`,{class:`filename`,title:r.name},i(r.name),9,Ze),e(`button`,{type:`button`,class:`remove`,"aria-label":c.$t(`common.button.close`),title:c.$t(`common.button.close`),onClick:t(e=>c.onRemoveFile(r),[`stop`])},[a(T,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,Qe)],64))],2)]),default:m(()=>[a(D,{round:``,type:`primary`,size:`small`,class:`btn`},{default:m(()=>[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(c.hasFile?c.$t(`digitalhuman.button.replace`):c.buttonText),1)]),_:1}),c.hint?(g(),s(`p`,$e,i(c.hint),1)):o(``,!0)]),_:1},8,[`file-list`,`accept`,`before-upload`,`action`,`headers`,`on-exceed`,`on-error`,`on-success`,`on-remove`])}var Z=z(Je,[[`render`,et],[`__scopeId`,`data-v-db0590a9`]]),tt=20,Q=e=>{let t=e;return!!t&&typeof t.voice_id==`string`&&!!t.voice_id&&typeof t.name==`string`},$=()=>{try{let e=JSON.parse(localStorage.getItem(`digitalhuman.voices`)||`[]`);return Array.isArray(e)?e.filter(Q).map(e=>({voice_id:e.voice_id,name:e.name,lang:typeof e.lang==`string`?e.lang:`zh`,created_at:typeof e.created_at==`number`?e.created_at:0})):[]}catch{return[]}},nt=e=>{try{localStorage.setItem(he,JSON.stringify(e))}catch{}return e},rt=e=>Q(e)?nt([e,...$().filter(t=>t.voice_id!==e.voice_id)].slice(0,tt)):$(),it=e=>nt($().filter(t=>t.voice_id!==e)),at=e=>`${e} ${$().length+1}`,ot=3e3,st=60,ct=v({name:`DigitalHumanVoiceCloneDialog`,components:{Consumption:Fe,ElAlert:C,ElButton:H,ElDialog:Ce,ElInput:ke,ElRadioButton:E,ElRadioGroup:D,MediaInput:Z},props:{visible:{type:Boolean,default:!1}},emits:[`update:visible`,`cloned`],data(){return{sampleUrl:void 0,name:``,lang:`zh`,cloning:!1,destroyed:!1,runId:0,DIGITALHUMAN_AUDIO_ACCEPT:R,DIGITALHUMAN_VOICE_CLONE_CONSUMPTION:2,voiceQuoteUsdc:void 0,voiceQuoteLoading:!1,quoteRunId:0}},computed:{service(){return this.$store.state.digitalhuman?.service},credentialToken(){return this.$store.state.digitalhuman?.credential?.token},walletMode(){return B()&&V(`digitalhuman`).mode===`wallet`},langOptions(){return ge.map(e=>({value:e,label:this.$t(`digitalhuman.name.lang_${e}`)}))}},watch:{walletMode(e){this.voiceQuoteUsdc=void 0,e&&this.visible&&this.sampleUrl&&this.refreshVoiceQuote()},visible(e){e?(this.sampleUrl=void 0,this.name=at(this.$t(`digitalhuman.name.myVoice`)),this.lang=`zh`):(this.runId++,this.quoteRunId++,this.cloning=!1,this.voiceQuoteLoading=!1)}},beforeUnmount(){this.destroyed=!0,this.runId++,this.quoteRunId++},methods:{onVisible(e){this.cloning&&!e||this.$emit(`update:visible`,e)},onSampleChange(e){this.sampleUrl=e,this.voiceQuoteUsdc=void 0,e&&this.walletMode&&this.refreshVoiceQuote()},isStale(e){return this.destroyed||e!==this.runId},sleep(e){return new Promise(t=>setTimeout(t,e))},async refreshVoiceQuote(){if(!this.sampleUrl)return;let e=++this.quoteRunId;this.voiceQuoteLoading=!0;try{let t=await q.quoteVoice(this.voiceRequest());e===this.quoteRunId&&this.walletMode&&(this.voiceQuoteUsdc=t.amountUsdc)}catch(e){console.warn(`x402 voice quote failed`,e)}finally{e===this.quoteRunId&&(this.voiceQuoteLoading=!1)}},voiceRequest(){return ve({audio_url:this.sampleUrl||``,lang:this.lang,name:this.name||void 0})},paymentOptions(){if(!this.walletMode)return this.credentialToken?{token:this.credentialToken}:void 0;let e=this.getWalletContext();if(!e){T.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}return{mode:`x402`,x402:{wallet:e,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credentialToken}}},async onClone(){if(!this.sampleUrl)return;let e=this.paymentOptions();if(!e)return;let t=++this.runId;this.cloning=!0;try{let{data:n}=await q.cloneVoice(this.voiceRequest(),e);if(this.isStale(t))return;if(n?.voice_id){this.onCloned(n.voice_id);return}if(n?.task_id)await this.pollVoice(n.task_id,t);else throw Error(`no task`)}catch(e){if(e instanceof K)return;this.isStale(t)||T.error(this.$t(`digitalhuman.message.voiceCloneFailed`))}finally{this.isStale(t)||(this.cloning=!1)}},async pollVoice(e,t){for(let n=0;n<st;n++){if(this.isStale(t)||(await this.sleep(ot),this.isStale(t)))return;let n=this.credentialToken,{data:r}=await q.pollTask(e,n?{token:n}:{mode:`x402`});if(this.isStale(t))return;if(r?.voice_id){this.onCloned(r.voice_id);return}if(r?.state===`failed`)throw Error(`clone failed`)}throw Error(`timeout`)},getWalletContext(){return G(this.$wallet)},async confirmWalletPayment(e){return U.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},onCloned(e){rt({voice_id:e,name:this.name||this.$t(`digitalhuman.name.myVoice`),lang:this.lang,created_at:Date.now()/1e3}),T.success(this.$t(`digitalhuman.message.voiceCloneSuccess`)),this.cloning=!1,this.$emit(`cloned`,e),this.$emit(`update:visible`,!1)}}}),lt={class:`text-xs text-[var(--el-text-color-secondary)] mb-3`},ut={class:`field mb-3`},dt={class:`label`},ft={class:`field`},pt={class:`label`},mt={class:`text-xs mb-0`},ht={key:1,class:`mt-4 text-xs text-[var(--el-text-color-secondary)]`},gt={class:`footer`},_t={key:0,class:`cost text-xs text-[var(--el-text-color-secondary)]`};function vt(t,n,o,c,d,f){let _=u(`media-input`),v=u(`el-input`),y=u(`el-radio-button`),b=u(`el-radio-group`),x=u(`el-alert`),S=u(`consumption`),C=u(`el-button`),w=u(`el-dialog`);return g(),p(w,{"model-value":t.visible,title:t.$t(`digitalhuman.name.cloneVoice`),width:`440`,"align-center":``,"append-to-body":``,"close-on-click-modal":!t.cloning,"close-on-press-escape":!t.cloning,"onUpdate:modelValue":t.onVisible},{footer:m(()=>[e(`div`,gt,[t.walletMode?(g(),s(`span`,_t,i(t.voiceQuoteLoading?`…`:t.voiceQuoteUsdc?`${t.voiceQuoteUsdc} USDC`:t.$t(`common.x402Scenario.quoteBeforeSigning`)),1)):(g(),p(S,{key:1,value:t.DIGITALHUMAN_VOICE_CLONE_CONSUMPTION,service:t.service,class:`cost`},null,8,[`value`,`service`])),e(`div`,null,[a(C,{disabled:t.cloning,onClick:n[2]||=e=>t.onVisible(!1)},{default:m(()=>[r(i(t.$t(`common.button.cancel`)),1)]),_:1},8,[`disabled`]),a(C,{type:`primary`,loading:t.cloning,disabled:!t.sampleUrl||t.cloning,onClick:t.onClone},{default:m(()=>[r(i(t.$t(`digitalhuman.button.startClone`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])])])]),default:m(()=>[e(`p`,lt,i(t.$t(`digitalhuman.message.voiceCloneHint`)),1),a(_,{kind:`audio`,accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadSample`),hint:t.$t(`digitalhuman.message.audioHint`),class:`mb-4`,onChange:t.onSampleChange},null,8,[`accept`,`button-text`,`hint`,`onChange`]),e(`div`,ut,[e(`span`,dt,i(t.$t(`digitalhuman.name.voiceName`)),1),a(v,{modelValue:t.name,"onUpdate:modelValue":n[0]||=e=>t.name=e,class:`control`,placeholder:t.$t(`digitalhuman.placeholder.voiceName`)},null,8,[`modelValue`,`placeholder`])]),e(`div`,ft,[e(`span`,pt,i(t.$t(`digitalhuman.name.voiceLang`)),1),a(b,{modelValue:t.lang,"onUpdate:modelValue":n[1]||=e=>t.lang=e,class:`control`},{default:m(()=>[(g(!0),s(l,null,h(t.langOptions,e=>(g(),p(y,{key:e.value,value:e.value},{default:m(()=>[r(i(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),t.cloning?(g(),p(x,{key:0,closable:!1,type:`info`,class:`mt-4`},{default:m(()=>[e(`p`,mt,i(t.$t(`digitalhuman.message.voiceCloneRunning`)),1)]),_:1})):(g(),s(`p`,ht,i(t.$t(`digitalhuman.message.voiceStoredLocally`)),1))]),_:1},8,[`model-value`,`title`,`close-on-click-modal`,`close-on-press-escape`,`onUpdate:modelValue`])}var yt=v({name:`DigitalHumanTimbreSelector`,components:{AddIcon:ce,DeleteIcon:F,ElButton:H,ElOption:b,ElSelect:y,VoiceCloneDialog:z(ct,[[`render`,vt],[`__scopeId`,`data-v-037c810e`]])},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{voices:$(),dialogVisible:!1}},mounted(){this.modelValue&&!this.voices.some(e=>e.voice_id===this.modelValue)&&this.$emit(`update:modelValue`,void 0)},methods:{labelFor(e){let t=this.$t(`digitalhuman.name.lang_${e.lang}`);return t.startsWith(`digitalhuman.`)?e.name:`${e.name} · ${t}`},onCloned(e){this.voices=$(),this.$emit(`update:modelValue`,e)},onRemove(e){this.voices=it(e),this.modelValue===e&&this.$emit(`update:modelValue`,void 0)}}}),bt={class:`row`},xt={class:`label`},St={class:`option`},Ct={class:`option-name`},wt=[`aria-label`,`title`,`onClick`],Tt={class:`empty`};function Et(n,o,d,f,_,v){let y=u(`delete-icon`),b=u(`el-option`),x=u(`el-select`),S=u(`add-icon`),C=u(`el-button`),w=u(`voice-clone-dialog`);return g(),s(`div`,null,[e(`div`,bt,[e(`span`,xt,i(n.$t(`digitalhuman.name.timbre`)),1),a(x,{"model-value":n.modelValue,class:`control`,placeholder:n.$t(`digitalhuman.placeholder.pickTimbre`),"onUpdate:modelValue":o[0]||=e=>n.$emit(`update:modelValue`,e)},c({default:m(()=>[(g(!0),s(l,null,h(n.voices,r=>(g(),p(b,{key:r.voice_id,label:n.labelFor(r),value:r.voice_id},{default:m(()=>[e(`span`,St,[e(`span`,Ct,i(n.labelFor(r)),1),e(`button`,{type:`button`,class:`option-remove`,"aria-label":n.$t(`common.button.delete`),title:n.$t(`common.button.delete`),onClick:t(e=>n.onRemove(r.voice_id),[`stop`])},[a(y,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,wt)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},[n.voices.length===0?{name:`empty`,fn:m(()=>[e(`p`,Tt,i(n.$t(`digitalhuman.message.noVoiceYet`)),1)]),key:`0`}:void 0]),1032,[`model-value`,`placeholder`])]),a(C,{size:`small`,text:``,type:`primary`,class:`clone`,onClick:o[1]||=e=>n.dialogVisible=!0},{default:m(()=>[a(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.button.cloneNewVoice`)),1)]),_:1}),a(w,{visible:n.dialogVisible,"onUpdate:visible":o[2]||=e=>n.dialogVisible=e,onCloned:n.onCloned},null,8,[`visible`,`onCloned`])])}var Dt=v({name:`ConfigPanel`,components:{ServicePricingSummary:Ie,ElButton:H,ElCollapse:k,ElCollapseItem:O,ElInputNumber:j,ElRadioButton:E,ElRadioGroup:D,InfoIcon:ee,MagicIcon:L,MediaInput:Z,PromptTextarea:P,TimbreSelector:z(yt,[[`render`,Et],[`__scopeId`,`data-v-e191cc56`]]),WarningIcon:I,ScenarioPaymentMode:Re},emits:[`generate`],data(){return{faceMode:`video`,voiceMode:`text`,advancedOpen:[],DIGITALHUMAN_VIDEO_ACCEPT:fe,DIGITALHUMAN_IMAGE_ACCEPT:me,DIGITALHUMAN_AUDIO_ACCEPT:R,quoteTimer:0,quoteRunId:0}},computed:{config(){return this.$store.state.digitalhuman?.config},service(){return this.$store.state.digitalhuman?.service},consumption(){return Se(this.config,this.service?.cost)},missing(){let e=[];return(this.faceMode===`video`?this.config?.video_url:this.config?.image_url)||e.push({key:`face`,message:this.$t(`digitalhuman.message.missingFace`)}),this.voiceMode===`text`?(this.config?.text?.trim()||e.push({key:`text`,message:this.$t(`digitalhuman.message.missingText`)}),this.config?.voice_id||e.push({key:`timbre`,message:this.$t(`digitalhuman.message.missingTimbre`)})):this.config?.audio_url||e.push({key:`audio`,message:this.$t(`digitalhuman.message.missingAudio`)}),e},text:{get(){return this.config?.text},set(e){this.update({text:e})}},voiceId:{get(){return this.config?.voice_id},set(e){this.update({voice_id:e})}},speed:{get(){return this.config?.speed??1},set(e){this.update({speed:e})}},walletMode(){return B()&&V(`digitalhuman`).mode===`wallet`}},watch:{walletMode:{handler(e){e&&this.scheduleQuote()},immediate:!0},config:{handler(){this.walletMode&&this.scheduleQuote()},deep:!0},faceMode(){this.walletMode&&this.scheduleQuote()},voiceMode(){this.walletMode&&this.scheduleQuote()}},mounted(){this.config?.image_url&&!this.config?.video_url&&(this.faceMode=`photo`),this.config?.audio_url&&(this.voiceMode=`audio`)},beforeUnmount(){window.clearTimeout(this.quoteTimer),this.quoteRunId+=1},methods:{scheduleQuote(){window.clearTimeout(this.quoteTimer),this.quoteTimer=window.setTimeout(this.refreshQuote,350)},async refreshQuote(){let e=V(`digitalhuman`),t=++this.quoteRunId;e.quoteLoading=!0,e.quoteUsdc=void 0;try{let n=W(this.config,this.faceMode,this.voiceMode),r=await q.quote(n);t===this.quoteRunId&&e.mode===`wallet`&&(e.quoteUsdc=r.amountUsdc)}catch(e){console.warn(`x402 quote failed`,e)}finally{t===this.quoteRunId&&(e.quoteLoading=!1)}},isMissing(e){return this.missing.some(t=>t.key===e)},update(e){this.$store.commit(`digitalhuman/setConfig`,{...this.config,...e})},onFaceModeChange(e){this.update(e===`video`?{image_url:void 0}:{video_url:void 0})},onVoiceModeChange(e){this.update(e===`audio`?{text:void 0,voice_id:void 0}:{audio_url:void 0})},onFaceVideoChange(e){this.update({video_url:e})},onFacePhotoChange(e){this.update({image_url:e})},onAudioChange(e){this.update({audio_url:e})},onGenerate(){let e=this.missing[0];if(e){T.warning(e.message);let t=e.key===`face`?`face`:`voice`;this.$refs[t]?.scrollIntoView?.({behavior:`smooth`,block:`center`});return}this.$emit(`generate`,W(this.config,this.faceMode,this.voiceMode))}}}),Ot={class:`flex flex-col h-full`},kt={class:`flex-1 overflow-y-auto p-5`},At={ref:`face`,class:`field-block mb-6`},jt={class:`field-head`},Mt={class:`field-title font-bold`},Nt={key:0,class:`required-badge`},Pt={ref:`voice`,class:`field-block mb-6`},Ft={class:`field-head`},It={class:`field-title font-bold`},Lt={key:0,class:`required-badge`},Rt={class:`field-row`},zt={class:`field-head`},Bt={class:`field-title font-bold`},Vt={class:`flex flex-col items-center justify-center px-5 pb-5`},Ht={key:0,class:`hint-missing`},Ut={class:`hint-eta`};function Wt(t,n,c,d,f,h){let _=u(`info-icon`),v=u(`el-radio-button`),y=u(`el-radio-group`),b=u(`media-input`),x=u(`prompt-textarea`),S=u(`timbre-selector`),C=u(`el-input-number`),w=u(`el-collapse-item`),T=u(`el-collapse`),E=u(`warning-icon`),D=u(`scenario-payment-mode`),O=u(`service-pricing-summary`),k=u(`magic-icon`),A=u(`el-button`);return g(),s(`div`,Ot,[e(`div`,kt,[e(`section`,At,[e(`div`,jt,[e(`h2`,Mt,i(t.$t(`digitalhuman.name.step1`)),1),t.isMissing(`face`)?(g(),s(`span`,Nt,i(t.$t(`digitalhuman.name.required`)),1)):o(``,!0),a(_,{content:t.$t(`digitalhuman.description.step1`),class:`ml-1`},null,8,[`content`])]),a(y,{modelValue:t.faceMode,"onUpdate:modelValue":n[0]||=e=>t.faceMode=e,class:`mode-switch mb-3`,onChange:t.onFaceModeChange},{default:m(()=>[a(v,{value:`video`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.faceModeVideo`)),1)]),_:1}),a(v,{value:`photo`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.faceModePhoto`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.faceMode===`video`?(g(),p(b,{key:0,kind:`video`,accept:t.DIGITALHUMAN_VIDEO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadFaceVideo`),hint:t.$t(`digitalhuman.message.faceVideoHint`),onChange:t.onFaceVideoChange},null,8,[`accept`,`button-text`,`hint`,`onChange`])):(g(),p(b,{key:1,kind:`image`,accept:t.DIGITALHUMAN_IMAGE_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadFacePhoto`),hint:t.$t(`digitalhuman.message.facePhotoHint`),onChange:t.onFacePhotoChange},null,8,[`accept`,`button-text`,`hint`,`onChange`]))],512),e(`section`,Pt,[e(`div`,Ft,[e(`h2`,It,i(t.$t(`digitalhuman.name.step2`)),1),t.isMissing(`text`)||t.isMissing(`timbre`)||t.isMissing(`audio`)?(g(),s(`span`,Lt,i(t.$t(`digitalhuman.name.required`)),1)):o(``,!0),a(_,{content:t.$t(`digitalhuman.description.step2`),class:`ml-1`},null,8,[`content`])]),a(y,{modelValue:t.voiceMode,"onUpdate:modelValue":n[1]||=e=>t.voiceMode=e,class:`mode-switch mb-3`,onChange:t.onVoiceModeChange},{default:m(()=>[a(v,{value:`text`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.voiceModeText`)),1)]),_:1}),a(v,{value:`audio`},{default:m(()=>[r(i(t.$t(`digitalhuman.name.voiceModeAudio`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.voiceMode===`text`?(g(),s(l,{key:0},[a(x,{modelValue:t.text,"onUpdate:modelValue":n[2]||=e=>t.text=e,class:`mb-3`,title:t.$t(`digitalhuman.name.speech`),placeholder:t.$t(`digitalhuman.placeholder.speech`),"min-rows":5,"max-rows":14},null,8,[`modelValue`,`title`,`placeholder`]),a(S,{modelValue:t.voiceId,"onUpdate:modelValue":n[3]||=e=>t.voiceId=e},null,8,[`modelValue`])],64)):(g(),p(b,{key:1,kind:`audio`,accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadSpeechAudio`),hint:t.$t(`digitalhuman.message.audioHint`),onChange:t.onAudioChange},null,8,[`accept`,`button-text`,`hint`,`onChange`]))],512),a(T,{modelValue:t.advancedOpen,"onUpdate:modelValue":n[5]||=e=>t.advancedOpen=e,class:`advanced`},{default:m(()=>[a(w,{name:`advanced`,title:t.$t(`digitalhuman.name.advanced`)},{default:m(()=>[e(`div`,Rt,[e(`div`,zt,[e(`h2`,Bt,i(t.$t(`digitalhuman.name.speed`)),1),a(_,{content:t.$t(`digitalhuman.description.speed`),class:`ml-1`},null,8,[`content`])]),a(C,{modelValue:t.speed,"onUpdate:modelValue":n[4]||=e=>t.speed=e,class:`field-control`,min:.5,max:2,step:.1,precision:1,"controls-position":`right`},null,8,[`modelValue`])])]),_:1},8,[`title`])]),_:1},8,[`modelValue`])]),e(`div`,Vt,[t.missing.length>0?(g(),s(`p`,Ht,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.missing[0].message),1)])):o(``,!0),a(D,{scenario:`digitalhuman`}),t.walletMode?o(``,!0):(g(),p(O,{key:1,value:t.consumption,service:t.service},null,8,[`value`,`service`])),a(A,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:m(()=>[a(k,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`digitalhuman.button.generateVideo`)),1)]),_:1},8,[`onClick`]),e(`p`,Ut,i(t.$t(`digitalhuman.message.eta`)),1)])])}var Gt=z(Dt,[[`render`,Wt],[`__scopeId`,`data-v-0b652d94`]]),Kt=[`.jpg`,`.jpeg`,`.png`,`.webp`,`.bmp`,`.gif`],qt=v({name:`TaskPreview`,components:{ApiCodeButton:ze,AudioPreview:Y,ChannelIcon:ie,CopyToClipboard:Me,DeleteIcon:F,ElAlert:C,ElButton:H,ElProgress:M,ElTooltip:S,FullscreenIcon:ne,ImagePreview:J,InfoIcon:oe,MagicIcon:L,ReportButton:Ne,TimeIcon:N,VideoPlayer:Le,VideoPreview:X,WarningIcon:I},props:{modelValue:{type:Object,required:!0}},computed:{status(){return this.modelValue?.status||this.modelValue?.response?.state||`pending`},isSuccess(){return[`succeed`,`succeeded`].includes(this.status)||!!this.modelValue?.response?.video_url},isFailure(){return[`failed`,`dead`].includes(this.status)||this.modelValue?.response?.success===!1},isTerminal(){return this.isSuccess||this.isFailure},videoUrl(){return this.modelValue?.response?.video_url},progressPct(){let e=this.modelValue?.response?.progress;return typeof e==`number`?e:0},voiceLabel(){return this.modelValue?.request?.audio_url?this.$t(`digitalhuman.name.audioDriven`):this.$t(`digitalhuman.name.textDriven`)},faceUrl(){return this.modelValue?.request?.video_url||this.modelValue?.request?.image_url},isPhotoFace(){if(this.modelValue?.request?.image_url)return!0;let e=(this.faceUrl||``).split(`?`)[0].toLowerCase();return Kt.some(t=>e.endsWith(t))},audioUrl(){return this.modelValue?.request?.audio_url},outputSize(){let{width:e,height:t}=this.modelValue?.response||{};return e&&t?`${e}×${t}`:void 0},etaText(){let e=parseFloat((this.modelValue?.created_at||``).toString());if(!e)return;let t=pe-(Date.now()/1e3-e);return t<=60?this.$t(`digitalhuman.message.etaAlmostDone`):this.$t(`digitalhuman.message.etaRemaining`,{minutes:Math.ceil(t/60)})},statusLabel(){let e=`digitalhuman.status.${this.status}`,t=this.$t(e);return t===e?this.$t(`digitalhuman.status.processing`):t},failureReason(){let e=this.modelValue?.response?.error;if(e)return typeof e==`string`?e:e?.message}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await U.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`digitalhuman/deleteTask`,{id:e}),T.success(this.$t(`common.message.deleteTaskSuccess`))}catch{T.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),window.open(t,`_blank`)}}}),Jt={class:`preview`},Yt={class:`left`},Xt={class:`main`},Zt={class:`bot`},Qt={class:`datetime`},$t=[`aria-label`],en={class:`info`},tn={key:0,class:`flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto`},nn={class:`prompt mt-2`},rn={key:0},an={key:0,class:`content`},on={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},sn={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},cn={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},ln={key:1,class:`content`},un={class:`operations mt-2`},dn={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},fn={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pn={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mn={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},hn={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gn={key:2,class:`content`},_n={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vn={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yn={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bn={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function xn(n,c,l,d,f,h){let _=u(`capability-presentation`),v=u(`delete-icon`),y=u(`el-tooltip`),b=u(`image-preview`),x=u(`video-preview`),S=u(`audio-preview`),C=u(`time-icon`),w=u(`el-progress`),T=u(`magic-icon`),E=u(`copy-to-clipboard`),D=u(`el-alert`),O=u(`video-player`),k=u(`el-button`),A=u(`api-code-button`),j=u(`report-button`),M=u(`fullscreen-icon`),N=u(`channel-icon`),ee=u(`warning-icon`),P=u(`info-icon`);return g(),s(`div`,Jt,[e(`div`,Yt,[a(_,{capability:`digitalhuman`,part:`avatar`,class:`avatar`})]),e(`div`,Xt,[e(`div`,Zt,[a(_,{capability:`digitalhuman`,part:`name`}),e(`span`,Qt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(y,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:m(()=>[n.modelValue?.id?(g(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,$t)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,en,[n.faceUrl||n.audioUrl?(g(),s(`div`,tn,[n.faceUrl&&n.isPhotoFace?(g(),p(b,{key:0,url:n.faceUrl,name:`face`,closable:!1},null,8,[`url`])):n.faceUrl?(g(),p(x,{key:1,url:n.faceUrl,name:`face`},null,8,[`url`])):o(``,!0),n.audioUrl?(g(),p(S,{key:2,url:n.audioUrl,name:`audio`},null,8,[`url`])):o(``,!0)])):o(``,!0),e(`p`,nn,[r(i(n.modelValue?.request?.text||n.voiceLabel)+` `,1),n.isTerminal?o(``,!0):(g(),s(`span`,rn,` - (`+i(n.statusLabel)+`) `,1))])]),n.isTerminal?o(``,!0):(g(),s(`div`,an,[a(D,{closable:!1,class:`info-state`},{default:m(()=>[e(`p`,on,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.statusLabel),1)]),a(w,{percentage:n.progressPct,"stroke-width":6,class:`mb-2`},null,8,[`percentage`]),n.etaText?(g(),s(`p`,sn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.etaLabel`))+`: `+i(n.etaText),1)])):o(``,!0),e(`p`,cn,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])])]),_:1})])),n.isSuccess?(g(),s(`div`,ln,[n.videoUrl?(g(),p(O,{key:0,src:n.videoUrl},null,8,[`src`])):o(``,!0),e(`div`,un,[n.videoUrl?(g(),p(k,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=e=>n.onDownload(e,n.videoUrl)},{default:m(()=>[r(i(n.$t(`digitalhuman.button.download`)),1)]),_:1})):o(``,!0),a(A,{path:`/digital-human/videos`,body:n.modelValue?.request},null,8,[`body`]),a(j,{service:`digitalhuman`,"target-id":n.modelValue?.id,snapshot:{text:n.modelValue?.request?.text}},null,8,[`target-id`,`snapshot`])]),a(D,{closable:!1,class:`mt-2 success`},{default:m(()=>[n.modelValue?.response?.duration?(g(),s(`p`,dn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.duration`))+`: `+i(n.modelValue?.response?.duration?.toFixed(1))+`s `,1)])):o(``,!0),n.outputSize?(g(),s(`p`,fn,[a(M,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.outputSize`))+`: `+i(n.outputSize),1)])):o(``,!0),e(`p`,pn,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,mn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,hn,[a(N,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0),n.isFailure?(g(),s(`div`,gn,[a(D,{closable:!1,class:`failure`},{template:m(()=>[a(ee,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.failure`)),1)]),default:m(()=>[e(`p`,_n,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.failureReason?(g(),s(`p`,vn,[a(P,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.failureReason`))+`: `+i(n.failureReason)+` `,1),a(E,{content:n.failureReason},null,8,[`content`])])):o(``,!0),n.modelValue?.elapsed?(g(),s(`p`,yn,[a(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,bn,[a(N,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`digitalhuman.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0)])])}var Sn=v({name:`RecentPanel`,components:{TaskPreview:z(qt,[[`render`,xn],[`__scopeId`,`data-v-342f1d6d`]]),NoTasks:re,BotPlaceholder:Be,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.digitalhuman?.tasks,items:this.$store.state.digitalhuman?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Cn={key:0},wn={key:2,class:`w-full h-full flex items-center justify-center`};function Tn(e,t,n,r,i,c){let d=u(`bot-placeholder`),f=u(`task-preview`),_=u(`scroll-list`),v=u(`no-tasks`);return g(),s(l,null,[e.tasks?.items===void 0?(g(),s(`div`,Cn,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(g(),p(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:m(()=>[(g(!0),s(l,null,h(e.tasks?.items,(e,t)=>(g(),p(f,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(g(),s(`div`,wn,[a(v)])):o(``,!0)],64)}var En=v({name:`DigitalHumanIndex`,components:{ConfigPanel:Gt,Layout:qe,RecentPanel:z(Sn,[[`render`,Tn]])},mixins:[je,Ve(`digitalhuman`,!1)],inject:[`initialized`],data(){return{job:0,loadingMore:!1,fetchingTasks:!1,walletTaskIds:[]}},computed:{applicationsLoading(){return this.$store.state.digitalhuman?.status?.getApplications===w.Request},tasksLoading(){return this.$store.state.digitalhuman?.status?.getTasks===w.Request||this.fetchingTasks},credential(){return this.$store.state.digitalhuman.credential},config(){return this.$store.state.digitalhuman.config},tasks(){return this.$store.state.digitalhuman.tasks},walletMode(){return B()&&V(`digitalhuman`).mode===`wallet`}},watch:{walletMode:{async handler(e,t){if(!(t===void 0||e===t)){if(this.$store.commit(`digitalhuman/setTasks`,void 0),e&&!this.job&&(this.job=window.setInterval(this.onPollTasks,5e3)),!e&&!this.credential?.token){window.clearInterval(this.job),this.job=0,await this.onScrollDown();return}await this.onGetTasks(),await this.onScrollDown()}}},initialized:{async handler(e){window.clearInterval(this.job),e&&(await this.onGetTasks(),await this.onScrollDown(),this.job||=window.setInterval(this.onPollTasks,5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await ae({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`digitalhuman/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`digitalhuman/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r,...this.walletMode&&!this.credential?.token?{mode:`x402`,ids:this.walletTaskIds}:{}})}finally{this.fetchingTasks=!1}},async onGenerate(e){if(!_e(this.uploadTracker,e=>this.$t(e),e=>T.warning(e)))return;let t;if(this.walletMode){let n=this.getWalletContext();if(!n){T.warning(this.$t(`common.x402Scenario.connectWalletFirst`));return}t=q.generate(e,{mode:`x402`,x402:{wallet:n,confirm:e=>this.confirmWalletPayment(e),identityToken:this.credential?.token}})}else{if(!De())return;let n=this.credential?.token;if(!n)return;t=q.generate(e,{token:n})}T.info(this.$t(`digitalhuman.message.startingTask`)),we(`digitalhuman`,t).then(e=>{let t=e?.data?.task_id;this.walletMode&&!this.credential?.token&&t&&!this.walletTaskIds.includes(t)&&this.walletTaskIds.unshift(t),T.success(this.$t(`digitalhuman.message.startTaskSuccess`))}).catch(e=>{e instanceof K||be(e,`digitalhuman`)||(this.walletMode?T.error(this.$t(`common.x402Scenario.paymentFailed`)):T.error(this.$t(`digitalhuman.message.startTaskFailed`)))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getWalletContext(){return G(this.$wallet)},async confirmWalletPayment(e){return U.confirm(this.$t(`common.x402Scenario.confirmPayment`,{amount:e.amountUsdc}),this.$t(`order.message.x402ConfirmTitle`),{confirmButtonText:this.$t(`order.message.x402WalletPayCta`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`}).then(()=>!0).catch(()=>!1)},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Dn(e,t,n,r,i,o){let s=u(`config-panel`),c=u(`recent-panel`),l=u(`layout`);return g(),p(l,null,{config:m(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:m(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var On=z(En,[[`render`,Dn]]);export{On as default};
@@ -1 +1 @@
1
- import{A as e,G as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,Q as c,S as l,T as u,Y as d,at as f,ft as p,j as m,k as h,mt as g,p as _,qt as v,rt as y,st as b,tt as x,wt as S,z as C}from"./vendor-chart-Dw-P17PN.js";import{t as w}from"./vendor-vue-router-CQCi0Exn.js";import{O as T,p as E}from"./i18n-c0vPTu0c.js";import{A as D,Rn as O,fr as k,i as A,n as j,r as M}from"./index-DvTGM53_.js";import{a as N,i as P,n as F,t as I}from"./siteBanner-45h7cTjL.js";import{r as L}from"./showcase-Cs_oOGpe.js";import{t as R}from"./ShowcaseDetailDialog-BNK2FobS.js";import{t as z}from"./ShowcaseGrid-CNkMjOgC.js";var B={class:`section-heading`},V={id:`home-categories-title`},H={class:`category-grid`},U=[`aria-expanded`,`aria-controls`,`onClick`],W=[`src`,`alt`,`onError`],ee={class:`category-copy`},te=[`id`,`aria-label`],G=[`src`,`onError`],K=D(C({__name:`CategoryTiles`,props:{items:{}},emits:[`category-image-error`,`icon-error`],setup(t,{expose:n}){let c=t,d=S(),p=new Map,b=h(()=>c.items.find(e=>e.id===d.value));function C(e,t){t instanceof HTMLButtonElement?p.set(e,t):p.delete(e)}function w(e){d.value=d.value===e?void 0:e}function T(){if(!d.value)return;let e=p.get(d.value);d.value=void 0,e?.focus()}return n({openId:d,activeCategory:b,toggle:w,closePanel:T}),(n,c)=>{let p=f(`router-link`);return x(),s(`section`,{class:`dashboard-section`,"aria-labelledby":`home-categories-title`,onKeydown:l(T,[`esc`])},[e(`div`,B,[e(`div`,null,[e(`span`,null,i(n.$t(`intro.home.quick.eyebrow`)),1),e(`h2`,V,i(n.$t(`intro.home.quick.title`)),1)]),e(`p`,null,i(n.$t(`intro.home.quick.subtitle`)),1)]),e(`div`,H,[(x(!0),s(u,null,y(t.items,t=>(x(),s(`button`,{key:t.id,ref_for:!0,ref:e=>C(t.id,e),type:`button`,class:`category-card`,"aria-expanded":d.value===t.id,"aria-controls":`home-category-panel-${t.id}`,onClick:e=>w(t.id)},[t.imageUrl?(x(),s(`img`,{key:0,src:t.imageUrl,alt:t.title,loading:`lazy`,decoding:`async`,style:v({objectPosition:t.focalPoint||`center`}),onError:e=>n.$emit(`category-image-error`,t.id)},null,44,W)):o(``,!0),c[0]||=e(`span`,{class:`shade`},null,-1),e(`span`,ee,[e(`strong`,null,i(t.title),1),e(`span`,null,i(t.description),1),e(`b`,null,i(n.$t(d.value===t.id?`intro.home.quick.close`:`intro.home.quick.explore`))+` ↓`,1)])],8,U))),128))]),a(_,{name:`panel`},{default:g(()=>[b.value?(x(),s(`div`,{key:0,id:`home-category-panel-${b.value.id}`,class:`capability-panel`,role:`region`,"aria-label":n.$t(`intro.home.quick.panelLabel`,{category:b.value.title})},[(x(!0),s(u,null,y(b.value.items,t=>(x(),m(p,{key:t.capability,to:{name:t.routeName},class:`capability-card`},{default:g(()=>[e(`img`,{src:t.icon,alt:``,onError:e=>n.$emit(`icon-error`,t)},null,40,G),e(`span`,null,[e(`strong`,null,i(t.name),1),e(`small`,null,i(t.description),1)]),e(`b`,null,[r(i(n.$t(`intro.home.createNow`))+` `,1),c[1]||=e(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:2},1032,[`to`]))),128))],8,te)):o(``,!0)]),_:1})],32)}}}),[[`__scopeId`,`data-v-baf08855`]]),q=[`aria-label`],J={class:`slides`},Y=[`src`,`alt`,`loading`,`fetchpriority`,`onError`],X={key:1,class:`image-fallback`},Z=[`src`],ne={class:`copy`},re={key:0,class:`eyebrow`},ie={key:1},ae={class:`description`},oe={key:2,class:`action`},se=[`aria-label`],ce=[`aria-label`],le={class:`dots`},ue=[`aria-label`,`aria-current`,`onClick`],de=5600,fe=45,pe=D(C({__name:`HomeCarousel`,props:{slides:{}},emits:[`image-error`],setup(a,{expose:l}){let f=a,_=S(0),C=S(!1),T=S(!1),E=S(!1),D=S(!1),O=S(),k,A,j=h(()=>C.value||T.value||E.value||D.value||f.slides.length<2);function M(e){return e.target?`href`in e.target&&/^https?:\/\//i.test(e.target.href)?`a`:w:`div`}function N(e){return e.target?`routeName`in e.target?{to:{name:e.target.routeName}}:/^https?:\/\//i.test(e.target.href)?{href:e.target.href,target:`_blank`,rel:`noopener noreferrer`}:{to:e.target.href}:{}}function P(e){let t=f.slides.length;return t?(e+t)%t:0}function F(e){_.value=P(e)}function I(){F(_.value+1)}function L(){F(_.value-1)}function R(){k!==void 0&&window.clearInterval(k),k=void 0}function z(){R(),j.value||(k=window.setInterval(I,de))}function B(){E.value=document.hidden}function V(e){D.value=e.matches}function H(e){let t=e.currentTarget,n=e.relatedTarget;T.value=!!(n&&t.contains(n))}function U(e){O.value=e.changedTouches[0]?.clientX}function W(e){if(O.value===void 0)return;let t=e.changedTouches[0]?.clientX;if(t===void 0)return;let n=t-O.value;Math.abs(n)>=fe&&(n>0?L():I()),O.value=void 0}return p(j,z),p(()=>f.slides.length,e=>{_.value>=e&&(_.value=0),z()}),c(()=>{E.value=document.hidden,document.addEventListener(`visibilitychange`,B),A=window.matchMedia(`(prefers-reduced-motion: reduce)`),D.value=A.matches,A.addEventListener(`change`,V),z()}),d(()=>{R(),document.removeEventListener(`visibilitychange`,B),A?.removeEventListener(`change`,V)}),l({activeIndex:_,next:I,previous:L,goTo:F,hovered:C,focused:T}),(c,l)=>(x(),s(`section`,{class:`home-carousel`,"aria-label":c.$t(`intro.home.carousel.label`),onMouseenter:l[0]||=e=>C.value=!0,onMouseleave:l[1]||=e=>C.value=!1,onFocusin:l[2]||=e=>T.value=!0,onFocusout:H,onTouchstartPassive:U,onTouchendPassive:W},[e(`div`,J,[(x(!0),s(u,null,y(a.slides,(n,a)=>(x(),m(b(M(n)),t({key:n.id},{ref_for:!0},N(n),{class:[`slide`,{active:a===_.value,static:!n.target}],"aria-hidden":a!==_.value,tabindex:a===_.value&&n.target?0:-1}),{default:g(()=>[n.imageUrl?(x(),s(`img`,{key:0,src:n.imageUrl,alt:n.title,loading:a===0?`eager`:`lazy`,decoding:`async`,fetchpriority:a===0?`high`:`auto`,style:v({objectPosition:n.focalPoint||`center`}),onError:e=>c.$emit(`image-error`,n)},null,44,Y)):(x(),s(`span`,X,[n.icon?(x(),s(`img`,{key:0,src:n.icon,alt:``},null,8,Z)):o(``,!0)])),l[4]||=e(`span`,{class:`shade`},null,-1),e(`span`,ne,[n.eyebrow?(x(),s(`span`,re,i(n.eyebrow),1)):o(``,!0),n.title?(x(),s(`strong`,ie,i(n.title),1)):o(``,!0),e(`span`,ae,i(n.description),1),n.target?(x(),s(`span`,oe,[r(i(c.$t(`intro.home.createNow`))+` `,1),l[3]||=e(`span`,{"aria-hidden":`true`},`→`,-1)])):o(``,!0)])]),_:2},1040,[`class`,`aria-hidden`,`tabindex`]))),128))]),a.slides.length>1?(x(),s(u,{key:0},[e(`button`,{class:`arrow previous`,type:`button`,"aria-label":c.$t(`intro.home.carousel.previous`),onClick:L},[...l[5]||=[e(`span`,{"aria-hidden":`true`},`‹`,-1)]],8,se),e(`button`,{class:`arrow next`,type:`button`,"aria-label":c.$t(`intro.home.carousel.next`),onClick:I},[...l[6]||=[e(`span`,{"aria-hidden":`true`},`›`,-1)]],8,ce),e(`div`,le,[(x(!0),s(u,null,y(a.slides,(e,t)=>(x(),s(`button`,{key:e.id,type:`button`,class:n({active:t===_.value}),"aria-label":c.$t(`intro.home.carousel.goto`,{number:t+1,title:e.title}),"aria-current":t===_.value?`true`:void 0,onClick:e=>F(t)},null,10,ue))),128))])],64)):o(``,!0)],40,q))}}),[[`__scopeId`,`data-v-d69edc68`]]),Q=12,$=C({name:`StudioHome`,components:{CategoryTiles:K,ShowcaseGrid:z,ShowcaseDetailDialog:R,HomeCarousel:pe},data(){return{failedIcons:{},failedBannerImages:{},failedCategoryImages:{},rawBanners:[],bannerLoadGeneration:0,rawShowcases:[],showcaseLoaded:!1,showcaseLoadGeneration:0,visibleShowcaseCount:Q,showcaseLoadObserver:void 0,showcaseAutoLoadArmed:!0,selectedShowcase:void 0}},computed:{site(){return this.$store.state.site},siteLoaded(){return!!this.site?.id},enabledKeys(){if(!this.siteLoaded)return new Set;let e=this.site?.features??{};return new Set(A.filter(t=>e[t]?.enabled&&T(t)))},banners(){let e=I(this.site),t=P.filter(t=>this.enabledKeys.has(t.capability)&&!e.has(t.id)).map(e=>({...this.resolve(e),id:e.id,imageUrl:this.failedBannerImages[e.id]?``:e.imageUrl,eyebrow:this.$t(e.eyebrowKey),title:this.$t(e.titleKey),target:{routeName:e.routeName}})),n=String(this.$i18n.locale||`en`),r=this.rawBanners.map(e=>{let t=F(e.title,n);return{id:e.id||`custom-${e.sort_order||0}`,name:t,eyebrow:``,title:t,description:F(e.subtitle,n),icon:this.site?.logo||this.site?.favicon||``,defaultIcon:this.site?.logo||this.site?.favicon||``,imageUrl:this.failedBannerImages[e.id||``]?``:e.image_url||``,target:e.link_url?{href:e.link_url}:null}});return[...t,...r]},categories(){let e=[];for(let t of N){let n=t.candidates.filter(e=>this.enabledKeys.has(e.capability)).map(e=>this.resolve(e));n.length&&e.push({id:t.id,title:this.$t(t.titleKey),description:this.$t(t.descriptionKey),imageUrl:this.failedCategoryImages[t.id]?``:t.imageUrl,focalPoint:t.focalPoint,items:n})}return e},resolvedShowcases(){let e=this.site;return e?this.rawShowcases.map(t=>L(t,e)).filter(e=>!!e).map(e=>({...e,icon:this.failedIcons[e.capability]?e.defaultIcon:e.icon})):[]},visibleShowcases(){return this.resolvedShowcases.slice(0,this.visibleShowcaseCount)},hasMoreShowcases(){return this.visibleShowcaseCount<this.resolvedShowcases.length}},watch:{siteLoaded:{immediate:!0,handler(e){e&&!this.showcaseLoaded&&this.loadShowcases(),e&&this.loadBanners()}},"$i18n.locale"(){this.siteLoaded&&(this.loadShowcases(),this.loadBanners())},hasMoreShowcases(){this.$nextTick(()=>this.observeShowcaseLoadMore())}},mounted(){this.setupShowcaseLoadObserver()},beforeUnmount(){this.showcaseLoadObserver?.disconnect()},methods:{resolve(e){let t=M[e.capability],n=j(this.site,e.capability,e.defaultName,t);return{capability:e.capability,routeName:e.routeName,name:n.displayName,description:e.descriptionKey?this.$t(e.descriptionKey):``,icon:this.failedIcons[e.capability]?t:n.iconUrl,defaultIcon:t,imageUrl:e.imageUrl,focalPoint:e.focalPoint}},async loadBanners(){let e=++this.bannerLoadGeneration;this.rawBanners=[];try{let t=E(this.site),n=await k.getPublic(t);e===this.bannerLoadGeneration&&(this.rawBanners=Array.isArray(n.data)?n.data:[])}catch{e===this.bannerLoadGeneration&&(this.rawBanners=[])}},async loadShowcases(){let e=++this.showcaseLoadGeneration,t=String(this.$i18n.locale||`en`);this.showcaseLoaded=!0,this.visibleShowcaseCount=Q,this.showcaseAutoLoadArmed=!0,this.rawShowcases=[],this.selectedShowcase=void 0;try{let n=await O.list(void 0,t);e===this.showcaseLoadGeneration&&String(this.$i18n.locale||`en`)===t&&(this.rawShowcases=Array.isArray(n.data)?n.data:[])}catch{e===this.showcaseLoadGeneration&&(this.rawShowcases=[])}},loadMoreShowcases(){this.visibleShowcaseCount=Math.min(this.visibleShowcaseCount+Q,this.resolvedShowcases.length)},onShowcaseLoadMoreClick(){this.showcaseAutoLoadArmed=!1,this.loadMoreShowcases()},setupShowcaseLoadObserver(){`IntersectionObserver`in window&&(this.showcaseLoadObserver=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting){this.showcaseAutoLoadArmed=!0;continue}this.showcaseAutoLoadArmed&&(this.showcaseAutoLoadArmed=!1,this.loadMoreShowcases())}},{root:this.$el,rootMargin:`400px 0px`}),this.observeShowcaseLoadMore())},observeShowcaseLoadMore(){this.showcaseLoadObserver?.disconnect();let e=this.$refs.showcaseLoadMore;e instanceof HTMLElement&&this.showcaseLoadObserver?.observe(e)},onIconError(e){e.icon!==e.defaultIcon&&(this.failedIcons[e.capability]=!0)},onShowcaseIconError(e){e.icon!==e.defaultIcon&&(this.failedIcons[e.capability]=!0)},onImageError(e){this.failedBannerImages[e.id]=!0},onCategoryImageError(e){this.failedCategoryImages[e]=!0}}}),me={key:0,class:`studio-home`},he={class:`dashboard`},ge=[`aria-label`];function _e(t,n,r,c,l,u){let d=f(`home-carousel`),p=f(`category-tiles`),h=f(`showcase-grid`),g=f(`showcase-detail-dialog`);return t.siteLoaded?(x(),s(`main`,me,[e(`div`,he,[t.banners.length?(x(),m(d,{key:0,slides:t.banners,onImageError:t.onImageError},null,8,[`slides`,`onImageError`])):o(``,!0),t.categories.length?(x(),m(p,{key:1,items:t.categories,onCategoryImageError:t.onCategoryImageError,onIconError:t.onIconError},null,8,[`items`,`onCategoryImageError`,`onIconError`])):o(``,!0),t.visibleShowcases.length?(x(),m(h,{key:2,items:t.visibleShowcases,eyebrow:t.$t(`intro.home.showcase.eyebrow`),title:t.$t(`intro.home.showcase.title`),subtitle:t.$t(`intro.home.showcase.subtitle`),"aria-label":t.$t(`intro.home.showcase.title`),"detail-preview":``,onSelect:n[0]||=e=>t.selectedShowcase=e,onIconError:t.onShowcaseIconError},null,8,[`items`,`eyebrow`,`title`,`subtitle`,`aria-label`,`onIconError`])):o(``,!0),t.hasMoreShowcases?(x(),s(`button`,{key:3,ref:`showcaseLoadMore`,type:`button`,class:`showcase-load-more`,onClick:n[1]||=(...e)=>t.onShowcaseLoadMoreClick&&t.onShowcaseLoadMoreClick(...e)},i(t.$t(`intro.home.showcase.loadMore`)),513)):o(``,!0)]),a(g,{item:t.selectedShowcase,onClose:n[2]||=e=>t.selectedShowcase=void 0},null,8,[`item`])])):(x(),s(`div`,{key:1,class:`home-loading`,role:`status`,"aria-label":t.$t(`common.status.loading`)},[...n[3]||=[e(`span`,null,null,-1)]],8,ge))}var ve=D($,[[`render`,_e],[`__scopeId`,`data-v-4b13dce4`]]);export{ve as default};
1
+ import{A as e,G as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,Q as c,S as l,T as u,Y as d,at as f,ft as p,j as m,k as h,mt as g,p as _,qt as v,rt as y,st as b,tt as x,wt as S,z as C}from"./vendor-chart-Dw-P17PN.js";import{t as w}from"./vendor-vue-router-CQCi0Exn.js";import{O as T,p as E}from"./i18n-CVK6EEgR.js";import{A as D,Rn as O,fr as k,i as A,n as j,r as M}from"./index-C1wCbgM5.js";import{a as N,i as P,n as F,t as I}from"./siteBanner-CucdTDjc.js";import{r as L}from"./showcase-BZb6acJ9.js";import{t as R}from"./ShowcaseDetailDialog-CDwMk-rh.js";import{t as z}from"./ShowcaseGrid-J0VyE5xG.js";var B={class:`section-heading`},V={id:`home-categories-title`},H={class:`category-grid`},U=[`aria-expanded`,`aria-controls`,`onClick`],W=[`src`,`alt`,`onError`],ee={class:`category-copy`},te=[`id`,`aria-label`],G=[`src`,`onError`],K=D(C({__name:`CategoryTiles`,props:{items:{}},emits:[`category-image-error`,`icon-error`],setup(t,{expose:n}){let c=t,d=S(),p=new Map,b=h(()=>c.items.find(e=>e.id===d.value));function C(e,t){t instanceof HTMLButtonElement?p.set(e,t):p.delete(e)}function w(e){d.value=d.value===e?void 0:e}function T(){if(!d.value)return;let e=p.get(d.value);d.value=void 0,e?.focus()}return n({openId:d,activeCategory:b,toggle:w,closePanel:T}),(n,c)=>{let p=f(`router-link`);return x(),s(`section`,{class:`dashboard-section`,"aria-labelledby":`home-categories-title`,onKeydown:l(T,[`esc`])},[e(`div`,B,[e(`div`,null,[e(`span`,null,i(n.$t(`intro.home.quick.eyebrow`)),1),e(`h2`,V,i(n.$t(`intro.home.quick.title`)),1)]),e(`p`,null,i(n.$t(`intro.home.quick.subtitle`)),1)]),e(`div`,H,[(x(!0),s(u,null,y(t.items,t=>(x(),s(`button`,{key:t.id,ref_for:!0,ref:e=>C(t.id,e),type:`button`,class:`category-card`,"aria-expanded":d.value===t.id,"aria-controls":`home-category-panel-${t.id}`,onClick:e=>w(t.id)},[t.imageUrl?(x(),s(`img`,{key:0,src:t.imageUrl,alt:t.title,loading:`lazy`,decoding:`async`,style:v({objectPosition:t.focalPoint||`center`}),onError:e=>n.$emit(`category-image-error`,t.id)},null,44,W)):o(``,!0),c[0]||=e(`span`,{class:`shade`},null,-1),e(`span`,ee,[e(`strong`,null,i(t.title),1),e(`span`,null,i(t.description),1),e(`b`,null,i(n.$t(d.value===t.id?`intro.home.quick.close`:`intro.home.quick.explore`))+` ↓`,1)])],8,U))),128))]),a(_,{name:`panel`},{default:g(()=>[b.value?(x(),s(`div`,{key:0,id:`home-category-panel-${b.value.id}`,class:`capability-panel`,role:`region`,"aria-label":n.$t(`intro.home.quick.panelLabel`,{category:b.value.title})},[(x(!0),s(u,null,y(b.value.items,t=>(x(),m(p,{key:t.capability,to:{name:t.routeName},class:`capability-card`},{default:g(()=>[e(`img`,{src:t.icon,alt:``,onError:e=>n.$emit(`icon-error`,t)},null,40,G),e(`span`,null,[e(`strong`,null,i(t.name),1),e(`small`,null,i(t.description),1)]),e(`b`,null,[r(i(n.$t(`intro.home.createNow`))+` `,1),c[1]||=e(`span`,{"aria-hidden":`true`},`→`,-1)])]),_:2},1032,[`to`]))),128))],8,te)):o(``,!0)]),_:1})],32)}}}),[[`__scopeId`,`data-v-baf08855`]]),q=[`aria-label`],J={class:`slides`},Y=[`src`,`alt`,`loading`,`fetchpriority`,`onError`],X={key:1,class:`image-fallback`},Z=[`src`],ne={class:`copy`},re={key:0,class:`eyebrow`},ie={key:1},ae={class:`description`},oe={key:2,class:`action`},se=[`aria-label`],ce=[`aria-label`],le={class:`dots`},ue=[`aria-label`,`aria-current`,`onClick`],de=5600,fe=45,pe=D(C({__name:`HomeCarousel`,props:{slides:{}},emits:[`image-error`],setup(a,{expose:l}){let f=a,_=S(0),C=S(!1),T=S(!1),E=S(!1),D=S(!1),O=S(),k,A,j=h(()=>C.value||T.value||E.value||D.value||f.slides.length<2);function M(e){return e.target?`href`in e.target&&/^https?:\/\//i.test(e.target.href)?`a`:w:`div`}function N(e){return e.target?`routeName`in e.target?{to:{name:e.target.routeName}}:/^https?:\/\//i.test(e.target.href)?{href:e.target.href,target:`_blank`,rel:`noopener noreferrer`}:{to:e.target.href}:{}}function P(e){let t=f.slides.length;return t?(e+t)%t:0}function F(e){_.value=P(e)}function I(){F(_.value+1)}function L(){F(_.value-1)}function R(){k!==void 0&&window.clearInterval(k),k=void 0}function z(){R(),j.value||(k=window.setInterval(I,de))}function B(){E.value=document.hidden}function V(e){D.value=e.matches}function H(e){let t=e.currentTarget,n=e.relatedTarget;T.value=!!(n&&t.contains(n))}function U(e){O.value=e.changedTouches[0]?.clientX}function W(e){if(O.value===void 0)return;let t=e.changedTouches[0]?.clientX;if(t===void 0)return;let n=t-O.value;Math.abs(n)>=fe&&(n>0?L():I()),O.value=void 0}return p(j,z),p(()=>f.slides.length,e=>{_.value>=e&&(_.value=0),z()}),c(()=>{E.value=document.hidden,document.addEventListener(`visibilitychange`,B),A=window.matchMedia(`(prefers-reduced-motion: reduce)`),D.value=A.matches,A.addEventListener(`change`,V),z()}),d(()=>{R(),document.removeEventListener(`visibilitychange`,B),A?.removeEventListener(`change`,V)}),l({activeIndex:_,next:I,previous:L,goTo:F,hovered:C,focused:T}),(c,l)=>(x(),s(`section`,{class:`home-carousel`,"aria-label":c.$t(`intro.home.carousel.label`),onMouseenter:l[0]||=e=>C.value=!0,onMouseleave:l[1]||=e=>C.value=!1,onFocusin:l[2]||=e=>T.value=!0,onFocusout:H,onTouchstartPassive:U,onTouchendPassive:W},[e(`div`,J,[(x(!0),s(u,null,y(a.slides,(n,a)=>(x(),m(b(M(n)),t({key:n.id},{ref_for:!0},N(n),{class:[`slide`,{active:a===_.value,static:!n.target}],"aria-hidden":a!==_.value,tabindex:a===_.value&&n.target?0:-1}),{default:g(()=>[n.imageUrl?(x(),s(`img`,{key:0,src:n.imageUrl,alt:n.title,loading:a===0?`eager`:`lazy`,decoding:`async`,fetchpriority:a===0?`high`:`auto`,style:v({objectPosition:n.focalPoint||`center`}),onError:e=>c.$emit(`image-error`,n)},null,44,Y)):(x(),s(`span`,X,[n.icon?(x(),s(`img`,{key:0,src:n.icon,alt:``},null,8,Z)):o(``,!0)])),l[4]||=e(`span`,{class:`shade`},null,-1),e(`span`,ne,[n.eyebrow?(x(),s(`span`,re,i(n.eyebrow),1)):o(``,!0),n.title?(x(),s(`strong`,ie,i(n.title),1)):o(``,!0),e(`span`,ae,i(n.description),1),n.target?(x(),s(`span`,oe,[r(i(c.$t(`intro.home.createNow`))+` `,1),l[3]||=e(`span`,{"aria-hidden":`true`},`→`,-1)])):o(``,!0)])]),_:2},1040,[`class`,`aria-hidden`,`tabindex`]))),128))]),a.slides.length>1?(x(),s(u,{key:0},[e(`button`,{class:`arrow previous`,type:`button`,"aria-label":c.$t(`intro.home.carousel.previous`),onClick:L},[...l[5]||=[e(`span`,{"aria-hidden":`true`},`‹`,-1)]],8,se),e(`button`,{class:`arrow next`,type:`button`,"aria-label":c.$t(`intro.home.carousel.next`),onClick:I},[...l[6]||=[e(`span`,{"aria-hidden":`true`},`›`,-1)]],8,ce),e(`div`,le,[(x(!0),s(u,null,y(a.slides,(e,t)=>(x(),s(`button`,{key:e.id,type:`button`,class:n({active:t===_.value}),"aria-label":c.$t(`intro.home.carousel.goto`,{number:t+1,title:e.title}),"aria-current":t===_.value?`true`:void 0,onClick:e=>F(t)},null,10,ue))),128))])],64)):o(``,!0)],40,q))}}),[[`__scopeId`,`data-v-d69edc68`]]),Q=12,$=C({name:`StudioHome`,components:{CategoryTiles:K,ShowcaseGrid:z,ShowcaseDetailDialog:R,HomeCarousel:pe},data(){return{failedIcons:{},failedBannerImages:{},failedCategoryImages:{},rawBanners:[],bannerLoadGeneration:0,rawShowcases:[],showcaseLoaded:!1,showcaseLoadGeneration:0,visibleShowcaseCount:Q,showcaseLoadObserver:void 0,showcaseAutoLoadArmed:!0,selectedShowcase:void 0}},computed:{site(){return this.$store.state.site},siteLoaded(){return!!this.site?.id},enabledKeys(){if(!this.siteLoaded)return new Set;let e=this.site?.features??{};return new Set(A.filter(t=>e[t]?.enabled&&T(t)))},banners(){let e=I(this.site),t=P.filter(t=>this.enabledKeys.has(t.capability)&&!e.has(t.id)).map(e=>({...this.resolve(e),id:e.id,imageUrl:this.failedBannerImages[e.id]?``:e.imageUrl,eyebrow:this.$t(e.eyebrowKey),title:this.$t(e.titleKey),target:{routeName:e.routeName}})),n=String(this.$i18n.locale||`en`),r=this.rawBanners.map(e=>{let t=F(e.title,n);return{id:e.id||`custom-${e.sort_order||0}`,name:t,eyebrow:``,title:t,description:F(e.subtitle,n),icon:this.site?.logo||this.site?.favicon||``,defaultIcon:this.site?.logo||this.site?.favicon||``,imageUrl:this.failedBannerImages[e.id||``]?``:e.image_url||``,target:e.link_url?{href:e.link_url}:null}});return[...t,...r]},categories(){let e=[];for(let t of N){let n=t.candidates.filter(e=>this.enabledKeys.has(e.capability)).map(e=>this.resolve(e));n.length&&e.push({id:t.id,title:this.$t(t.titleKey),description:this.$t(t.descriptionKey),imageUrl:this.failedCategoryImages[t.id]?``:t.imageUrl,focalPoint:t.focalPoint,items:n})}return e},resolvedShowcases(){let e=this.site;return e?this.rawShowcases.map(t=>L(t,e)).filter(e=>!!e).map(e=>({...e,icon:this.failedIcons[e.capability]?e.defaultIcon:e.icon})):[]},visibleShowcases(){return this.resolvedShowcases.slice(0,this.visibleShowcaseCount)},hasMoreShowcases(){return this.visibleShowcaseCount<this.resolvedShowcases.length}},watch:{siteLoaded:{immediate:!0,handler(e){e&&!this.showcaseLoaded&&this.loadShowcases(),e&&this.loadBanners()}},"$i18n.locale"(){this.siteLoaded&&(this.loadShowcases(),this.loadBanners())},hasMoreShowcases(){this.$nextTick(()=>this.observeShowcaseLoadMore())}},mounted(){this.setupShowcaseLoadObserver()},beforeUnmount(){this.showcaseLoadObserver?.disconnect()},methods:{resolve(e){let t=M[e.capability],n=j(this.site,e.capability,e.defaultName,t);return{capability:e.capability,routeName:e.routeName,name:n.displayName,description:e.descriptionKey?this.$t(e.descriptionKey):``,icon:this.failedIcons[e.capability]?t:n.iconUrl,defaultIcon:t,imageUrl:e.imageUrl,focalPoint:e.focalPoint}},async loadBanners(){let e=++this.bannerLoadGeneration;this.rawBanners=[];try{let t=E(this.site),n=await k.getPublic(t);e===this.bannerLoadGeneration&&(this.rawBanners=Array.isArray(n.data)?n.data:[])}catch{e===this.bannerLoadGeneration&&(this.rawBanners=[])}},async loadShowcases(){let e=++this.showcaseLoadGeneration,t=String(this.$i18n.locale||`en`);this.showcaseLoaded=!0,this.visibleShowcaseCount=Q,this.showcaseAutoLoadArmed=!0,this.rawShowcases=[],this.selectedShowcase=void 0;try{let n=await O.list(void 0,t);e===this.showcaseLoadGeneration&&String(this.$i18n.locale||`en`)===t&&(this.rawShowcases=Array.isArray(n.data)?n.data:[])}catch{e===this.showcaseLoadGeneration&&(this.rawShowcases=[])}},loadMoreShowcases(){this.visibleShowcaseCount=Math.min(this.visibleShowcaseCount+Q,this.resolvedShowcases.length)},onShowcaseLoadMoreClick(){this.showcaseAutoLoadArmed=!1,this.loadMoreShowcases()},setupShowcaseLoadObserver(){`IntersectionObserver`in window&&(this.showcaseLoadObserver=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting){this.showcaseAutoLoadArmed=!0;continue}this.showcaseAutoLoadArmed&&(this.showcaseAutoLoadArmed=!1,this.loadMoreShowcases())}},{root:this.$el,rootMargin:`400px 0px`}),this.observeShowcaseLoadMore())},observeShowcaseLoadMore(){this.showcaseLoadObserver?.disconnect();let e=this.$refs.showcaseLoadMore;e instanceof HTMLElement&&this.showcaseLoadObserver?.observe(e)},onIconError(e){e.icon!==e.defaultIcon&&(this.failedIcons[e.capability]=!0)},onShowcaseIconError(e){e.icon!==e.defaultIcon&&(this.failedIcons[e.capability]=!0)},onImageError(e){this.failedBannerImages[e.id]=!0},onCategoryImageError(e){this.failedCategoryImages[e]=!0}}}),me={key:0,class:`studio-home`},he={class:`dashboard`},ge=[`aria-label`];function _e(t,n,r,c,l,u){let d=f(`home-carousel`),p=f(`category-tiles`),h=f(`showcase-grid`),g=f(`showcase-detail-dialog`);return t.siteLoaded?(x(),s(`main`,me,[e(`div`,he,[t.banners.length?(x(),m(d,{key:0,slides:t.banners,onImageError:t.onImageError},null,8,[`slides`,`onImageError`])):o(``,!0),t.categories.length?(x(),m(p,{key:1,items:t.categories,onCategoryImageError:t.onCategoryImageError,onIconError:t.onIconError},null,8,[`items`,`onCategoryImageError`,`onIconError`])):o(``,!0),t.visibleShowcases.length?(x(),m(h,{key:2,items:t.visibleShowcases,eyebrow:t.$t(`intro.home.showcase.eyebrow`),title:t.$t(`intro.home.showcase.title`),subtitle:t.$t(`intro.home.showcase.subtitle`),"aria-label":t.$t(`intro.home.showcase.title`),"detail-preview":``,onSelect:n[0]||=e=>t.selectedShowcase=e,onIconError:t.onShowcaseIconError},null,8,[`items`,`eyebrow`,`title`,`subtitle`,`aria-label`,`onIconError`])):o(``,!0),t.hasMoreShowcases?(x(),s(`button`,{key:3,ref:`showcaseLoadMore`,type:`button`,class:`showcase-load-more`,onClick:n[1]||=(...e)=>t.onShowcaseLoadMoreClick&&t.onShowcaseLoadMoreClick(...e)},i(t.$t(`intro.home.showcase.loadMore`)),513)):o(``,!0)]),a(g,{item:t.selectedShowcase,onClose:n[2]||=e=>t.selectedShowcase=void 0},null,8,[`item`])])):(x(),s(`div`,{key:1,class:`home-loading`,role:`status`,"aria-label":t.$t(`common.status.loading`)},[...n[3]||=[e(`span`,null,null,-1)]],8,ge))}var ve=D($,[[`render`,_e],[`__scopeId`,`data-v-4b13dce4`]]);export{ve as default};