@acedatacloud/nexior 3.329.15 → 3.329.16

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 (210) hide show
  1. package/dist/assets/{ApiCodeButton-C2AtLmtg.js → ApiCodeButton-B4AbprcE.js} +1 -1
  2. package/dist/assets/{Artifacts-bEmfem6e.js → Artifacts-PhyjpCtJ.js} +1 -1
  3. package/dist/assets/{AskUserQuestionCard-DEDW36BD.js → AskUserQuestionCard-gej1HInv.js} +2 -2
  4. package/dist/assets/{AudioPreview-DCxghez5.js → AudioPreview-BSZwbHFC.js} +1 -1
  5. package/dist/assets/{Auth-AH_M4lZA.js → Auth-wrbtTe49.js} +1 -1
  6. package/dist/assets/{Bare-B_dhUb_6.js → Bare-CJW0KY7n.js} +1 -1
  7. package/dist/assets/{BotPlaceholder-BKd_E3lk.js → BotPlaceholder-ClF3L6UZ.js} +1 -1
  8. package/dist/assets/{BottomFooter-BFpCtNEG.js → BottomFooter-DMeMSGST.js} +1 -1
  9. package/dist/assets/{Callback-DeJuYqv7.js → Callback-ZCx6v2Qm.js} +1 -1
  10. package/dist/assets/{CodeSnippet-BnLhnEYA.js → CodeSnippet-BLx5PNoE.js} +1 -1
  11. package/dist/assets/{Console-BRDFrAcy.js → Console--3BSnjhd.js} +1 -1
  12. package/dist/assets/{Consumption-CA3ED6JY.js → Consumption-DoSnOpCh.js} +1 -1
  13. package/dist/assets/{Conversation-Bs0WaZFD.js → Conversation-CyHqOxgu.js} +1 -1
  14. package/dist/assets/Conversation-otwyTC3G.js +1 -0
  15. package/dist/assets/{CopyToClipboard-CUlDAZQC.js → CopyToClipboard-BovNTELl.js} +1 -1
  16. package/dist/assets/{Detail-CZMKauta.js → Detail-Bw3B_wFT.js} +2 -2
  17. package/dist/assets/Extra-m-UX_HKW.js +1 -0
  18. package/dist/assets/{FilePreview-LvCSEXU2.js → FilePreview-Ce20lKHh.js} +1 -1
  19. package/dist/assets/{Hailuo-CasN_idw.js → Hailuo-DJdgVTZk.js} +1 -1
  20. package/dist/assets/{History-IAq_K_ds.js → History-D9ucrqH3.js} +1 -1
  21. package/dist/assets/ImagePreview-BKDkeMuD.js +1 -0
  22. package/dist/assets/ImageWrapper-CJPUt9fO.js +1 -0
  23. package/dist/assets/{Index-k-blC7yR.css → Index--3K8RS8S.css} +1 -1
  24. package/dist/assets/{Index-C9qX8M02.js → Index-BGlgGMXY.js} +1 -1
  25. package/dist/assets/Index-BJ2uTn7f.js +1 -0
  26. package/dist/assets/{Index-CyY2WVto.css → Index-BMXzenZp.css} +1 -1
  27. package/dist/assets/{Index-Dp9WjWzn.js → Index-BSPdlju8.js} +1 -1
  28. package/dist/assets/{Index-BADVtSqQ.css → Index-BUXkFzyQ.css} +1 -1
  29. package/dist/assets/{Index-Be5la0_9.css → Index-BbBLrXAa.css} +1 -1
  30. package/dist/assets/{Index-Dr1GWEqN.css → Index-BbvQZS50.css} +1 -1
  31. package/dist/assets/{Index-DzPuB6Cj.js → Index-BzMJicqQ.js} +1 -1
  32. package/dist/assets/Index-BzfDCKvB.js +1 -0
  33. package/dist/assets/Index-C8_SKL-4.js +1 -0
  34. package/dist/assets/Index-CARRGZlZ.js +1 -0
  35. package/dist/assets/Index-CBON_aOb.js +1 -0
  36. package/dist/assets/Index-CKOUb2hk.js +1 -0
  37. package/dist/assets/Index-CNjhG1xg.js +1 -0
  38. package/dist/assets/Index-CPaFzSUd.js +1 -0
  39. package/dist/assets/{Index-E-znw7gf.css → Index-CR0w7X3v.css} +1 -1
  40. package/dist/assets/Index-C_pwE0Yp.js +1 -0
  41. package/dist/assets/{Index-CfDpUO3a.css → Index-Cb8V3UVl.css} +1 -1
  42. package/dist/assets/Index-ClXholKq.js +1 -0
  43. package/dist/assets/{Index-Bn3kx1M5.css → Index-Co9JBcbb.css} +1 -1
  44. package/dist/assets/{Index-krDOJ-ma.css → Index-Csf7kXZK.css} +1 -1
  45. package/dist/assets/Index-Cu5n9kJn.js +1 -0
  46. package/dist/assets/{Index-UKArA0UR.css → Index-D3UyqMVL.css} +1 -1
  47. package/dist/assets/Index-DAr6f-_O.js +1 -0
  48. package/dist/assets/{Index-fGhTf-xt.css → Index-DE83lXAg.css} +1 -1
  49. package/dist/assets/Index-DSiWRGHv.js +1 -0
  50. package/dist/assets/{Index-CwldxJqL.css → Index-DSu_7z05.css} +1 -1
  51. package/dist/assets/{Index--aivHZUr.css → Index-DZaSDeRC.css} +1 -1
  52. package/dist/assets/Index-DcBVIIXz.js +1 -0
  53. package/dist/assets/Index-DeYagwk6.js +1 -0
  54. package/dist/assets/Index-DsB34PP1.js +1 -0
  55. package/dist/assets/Index-DtFRbU0N.js +1 -0
  56. package/dist/assets/{Index-CP3thN21.css → Index-DtX8tgv2.css} +1 -1
  57. package/dist/assets/{Index-CVAZTeC5.js → Index-DtmVV4ES.js} +1 -1
  58. package/dist/assets/Index-F-k_Gtdn.js +1 -0
  59. package/dist/assets/Index-FmpcU_Ri.js +1 -0
  60. package/dist/assets/Index-GEIDO90j.js +1 -0
  61. package/dist/assets/Index-Jqt2yQvt.js +1 -0
  62. package/dist/assets/{Index-BfTA2HeC.css → Index-Vl8NdkN7.css} +1 -1
  63. package/dist/assets/{Index-Dj8XXSuj.css → Index-Yj85WaPQ.css} +1 -1
  64. package/dist/assets/{Index-n6jG_3SR.css → Index-oZDYIyem.css} +1 -1
  65. package/dist/assets/{Index-ChFn15MZ.js → Index-p-m_XsAg.js} +1 -1
  66. package/dist/assets/Index-rzXksBpy.js +2 -0
  67. package/dist/assets/Index-s53Hc8JB.js +1 -0
  68. package/dist/assets/{Index-BMWHcHQ7.css → Index-vD8Y4tNk.css} +1 -1
  69. package/dist/assets/Index-wVuMpc_H.js +1 -0
  70. package/dist/assets/{Index-C3CTyQMx.css → Index-y_vO4c-d.css} +1 -1
  71. package/dist/assets/{Invitees-DJivTc_D.js → Invitees-BlbDmUXN.js} +1 -1
  72. package/dist/assets/{List-BTRDRHTd.js → List-CUwZEDHu.js} +1 -1
  73. package/dist/assets/{List-CHMm4rNk.js → List-CY1N3ILM.js} +1 -1
  74. package/dist/assets/{List-Bda-NnuJ.js → List-DkCLGYMJ.js} +1 -1
  75. package/dist/assets/{LocalTools-DMVDU4bA.js → LocalTools-CMxoLA7U.js} +3 -3
  76. package/dist/assets/{LocalTools-DK-BN4iD.js → LocalTools-z8jtbr5O.js} +1 -1
  77. package/dist/assets/{Main-DdAJ3O-L.js → Main-D1328AkQ.js} +1 -1
  78. package/dist/assets/Message-BtxG96K4.js +3 -0
  79. package/dist/assets/Model-D54rLtLP.js +1 -0
  80. package/dist/assets/Navigator-DuFxlRAw.js +8 -0
  81. package/dist/assets/{NotFound-qNr2IjzW.js → NotFound-CmF6ZwZt.js} +1 -1
  82. package/dist/assets/Pay-CKNhqbmz.js +1 -0
  83. package/dist/assets/{Player-BtXsOf-F.js → Player-DI8pLNuE.js} +1 -1
  84. package/dist/assets/{PromptTextarea-CL7BKdvx.js → PromptTextarea-BpckscxC.js} +1 -1
  85. package/dist/assets/RealtimeCall-CGy7ZxhI.js +1 -0
  86. package/dist/assets/{ScheduledTasks-KYhIyLpN.js → ScheduledTasks-DUrJ69M5.js} +2 -2
  87. package/dist/assets/{Status-B0jxWQTT.js → Status-CHAGfb_i.js} +1 -1
  88. package/dist/assets/{Subscribe-Gmo_SM4Y.js → Subscribe-cI8uUXfb.js} +1 -1
  89. package/dist/assets/{TabSwitcher-DeXe1Go8.js → TabSwitcher-XjtjYDRZ.js} +1 -1
  90. package/dist/assets/Tts-Cl3Ic91o.js +1 -0
  91. package/dist/assets/{Tts-BaFSQQkf.css → Tts-DDzFkd7l.css} +1 -1
  92. package/dist/assets/{VideoPlayer-C3Urz2v9.js → VideoPlayer-DG7NZuWz.js} +1 -1
  93. package/dist/assets/{alert-B7jJ4uYN.js → alert--fOgAzyp.js} +1 -1
  94. package/dist/assets/avatar-BXGv6zGv.js +1 -0
  95. package/dist/assets/{basic-KmFCrDHd.js → basic--Jaf95DS.js} +1 -1
  96. package/dist/assets/{chat-C2WROCRl.js → chat-DbQzoeiN.js} +1 -1
  97. package/dist/assets/{codingBridge-C2-XOLHi.js → codingBridge-BD51ayKI.js} +2 -2
  98. package/dist/assets/{codingBridgeNotify-CgxYze-S.js → codingBridgeNotify-B_LfJogk.js} +2 -2
  99. package/dist/assets/{collapse-DbtIi9R9.js → collapse-B2P7gr8-.js} +1 -1
  100. package/dist/assets/{createTaskActions-DGGRU2-s.js → createTaskActions-BaE6E9Kr.js} +1 -1
  101. package/dist/assets/{date-picker-BY8LUdJF.js → date-picker-CUsRrFGr.js} +1 -1
  102. package/dist/assets/{digitalhuman-DFwmfprC.js → digitalhuman-DCfYw1cL.js} +1 -1
  103. package/dist/assets/{drawer-sXTMh4p0.js → drawer-CZMqTsUy.js} +1 -1
  104. package/dist/assets/{dropdown-CGz36hOK.js → dropdown-BBawqoPC.js} +1 -1
  105. package/dist/assets/{dropdown-DuzfG0fg.js → dropdown-QxLSlPQh.js} +1 -1
  106. package/dist/assets/{esm-BTCPGy0s.js → esm-B-IdJIQl.js} +1 -1
  107. package/dist/assets/esm-BAoWV04N.js +1 -0
  108. package/dist/assets/{esm-B20Et_KE.js → esm-BZuX_Fyl.js} +1 -1
  109. package/dist/assets/{esm-L2JU3HTP.js → esm-ByN3pv2U.js} +2 -2
  110. package/dist/assets/{esm-z-KhOuPR.js → esm-CFgtBr1r.js} +2 -2
  111. package/dist/assets/{esm-DpsZAjyE.js → esm-DrQEXzOh.js} +1 -1
  112. package/dist/assets/{esm-B9mTMhr_.js → esm-sR7mbXpp.js} +3 -3
  113. package/dist/assets/fish-wuJzVy-R.js +1 -0
  114. package/dist/assets/{flux-Cd3AcH2n.js → flux-BajN9vCH.js} +1 -1
  115. package/dist/assets/{grokvideo-BQH9rndg.js → grokvideo-CEadYeuZ.js} +1 -1
  116. package/dist/assets/{pixverse-yK7GC5nA.js → hailuo-BZE9nS_n.js} +1 -1
  117. package/dist/assets/index-DHGr0qfr.js +570 -0
  118. package/dist/assets/{index.browser.esm-D27PKZFw.js → index.browser.esm-K9JZkjg8.js} +1 -1
  119. package/dist/assets/{index.es-D6IJMicG.js → index.es-J-PBjzcR.js} +1 -1
  120. package/dist/assets/{input-number-qBTG6s1O.js → input-number-DcS9Bx33.js} +1 -1
  121. package/dist/assets/{kling-CiMIjyMw.js → kling-B2rPSLOo.js} +1 -1
  122. package/dist/assets/{luma-DQWpfvmN.js → luma-BCu9MMAZ.js} +1 -1
  123. package/dist/assets/{maestro-BrU-qFjn.js → maestro-qo4uPl6x.js} +1 -1
  124. package/dist/assets/{midjourney-BuvTnPUd.js → midjourney-DsoKv-1p.js} +1 -1
  125. package/dist/assets/{mobileLocalExec-DD11UDko.js → mobileLocalExec-D3sozPgv.js} +2 -2
  126. package/dist/assets/{nanobanana-DxU9-zqC.js → nanobanana-DRYIuuVI.js} +1 -1
  127. package/dist/assets/{seedance-Dpffnp2x.js → omni-UYuMATIw.js} +1 -1
  128. package/dist/assets/{openaiimage-BkISyjNh.js → openaiimage-LY_8QKWs.js} +1 -1
  129. package/dist/assets/{pagination-nKm-Pwm8.js → pagination-ChSSHmgO.js} +2 -2
  130. package/dist/assets/{pagination-CrPRHL7s.js → pagination-DCFtt8SX.js} +1 -1
  131. package/dist/assets/{pika-DZfQDkdH.js → pika-yIxZbMZX.js} +1 -1
  132. package/dist/assets/pixverse-oTCUOx_0.js +1 -0
  133. package/dist/assets/{popover-53xie2NB.js → popover-DBSUmqsP.js} +1 -1
  134. package/dist/assets/{producer-DiWEZin2.js → producer-DBxzblcL.js} +1 -1
  135. package/dist/assets/{qrart-Dwo6kW35.js → qrart-B1nZNo_9.js} +1 -1
  136. package/dist/assets/realtime-CpuHRnMw.js +1 -0
  137. package/dist/assets/{row-KOzmQE1C.js → row-CoYwxMjN.js} +1 -1
  138. package/dist/assets/{omni-DzPuNQ9x.js → seedance-D1W8OuKj.js} +1 -1
  139. package/dist/assets/{seedream-BDAFdtES.js → seedream-BWFXgRu_.js} +1 -1
  140. package/dist/assets/select-Dl8tgFjL.js +1 -0
  141. package/dist/assets/{serp-Cc9klnsN.js → serp-BXd__tcu.js} +1 -1
  142. package/dist/assets/slider-CKn9N3dl.js +1 -0
  143. package/dist/assets/{solana-wallets-CjIXukwp.js → solana-wallets-CWi7yIKW.js} +2 -2
  144. package/dist/assets/{solana-wallets-vue-Duq1k6JX.js → solana-wallets-vue-DrFKw32L.js} +1 -1
  145. package/dist/assets/{sora-uf6ksRSB.js → sora-B-T8syCN.js} +1 -1
  146. package/dist/assets/{suno-DhQTtz72.js → suno-CaPg5wI3.js} +1 -1
  147. package/dist/assets/{switch-D_ODtpMv.js → switch-DcEkrwHo.js} +1 -1
  148. package/dist/assets/table-1P1mzhi4.js +1 -0
  149. package/dist/assets/{tabs-B-hOlaTK.js → tabs-DtAZ3so9.js} +1 -1
  150. package/dist/assets/time-picker-VghfSWRJ.js +1 -0
  151. package/dist/assets/{tooltip-DIQ1TjUR.js → tooltip-BY0D7YKq.js} +1 -1
  152. package/dist/assets/{upload-DZWNbjf2.js → upload-gI1Lxhu7.js} +1 -1
  153. package/dist/assets/{veo-BdyEeSH8.js → veo-CfVto-d5.js} +1 -1
  154. package/dist/assets/{wan-fSSo5Re6.js → wan-bBEoiM8z.js} +1 -1
  155. package/dist/assets/{web-CtNwT8c4.js → web-BJ4_Hr_r.js} +1 -1
  156. package/dist/assets/{web-dBeJ-g69.js → web-ByPN4P1G.js} +1 -1
  157. package/dist/assets/{web-DltsZ16D.js → web-CjKTM_kC.js} +1 -1
  158. package/dist/assets/{web-CKziqU6a.js → web-D51lKmXr.js} +1 -1
  159. package/dist/assets/{web-5E_9uRCR.js → web-Dkf3rM2x.js} +1 -1
  160. package/dist/assets/webextrator-B0U-wvh0.js +1 -0
  161. package/dist/index.html +1 -1
  162. package/package.json +1 -1
  163. package/dist/assets/Conversation-BrFu3vWq.js +0 -1
  164. package/dist/assets/Extra-9_713Rr_.js +0 -1
  165. package/dist/assets/ImagePreview--hccmdBd.js +0 -1
  166. package/dist/assets/ImageWrapper-H8ZOISCF.js +0 -1
  167. package/dist/assets/Index-B--DpoJC.js +0 -1
  168. package/dist/assets/Index-B8knFepd.js +0 -1
  169. package/dist/assets/Index-BB3bUFX6.js +0 -1
  170. package/dist/assets/Index-BMRnOqXS.js +0 -1
  171. package/dist/assets/Index-BY3IhtZY.js +0 -1
  172. package/dist/assets/Index-BxyE09jj.js +0 -1
  173. package/dist/assets/Index-C1UqYJdm.js +0 -1
  174. package/dist/assets/Index-C32IeJa5.js +0 -1
  175. package/dist/assets/Index-C5m_lCpb.js +0 -2
  176. package/dist/assets/Index-CGw1u7lP.js +0 -1
  177. package/dist/assets/Index-C_svDySe.js +0 -1
  178. package/dist/assets/Index-CdH1ZXue.js +0 -1
  179. package/dist/assets/Index-CuT0b7Wp.js +0 -1
  180. package/dist/assets/Index-CxXeSEhY.js +0 -1
  181. package/dist/assets/Index-D-IE6CJV.js +0 -1
  182. package/dist/assets/Index-DRN_p_mW.js +0 -1
  183. package/dist/assets/Index-DUzRQjlQ.js +0 -1
  184. package/dist/assets/Index-GriIdIBy.js +0 -1
  185. package/dist/assets/Index-IOpBzkzV.js +0 -1
  186. package/dist/assets/Index-LqP3NJjT.js +0 -1
  187. package/dist/assets/Index-XvkfFKeN.js +0 -1
  188. package/dist/assets/Index-gFDVTg-a.js +0 -1
  189. package/dist/assets/Index-n2ypUyiW.js +0 -1
  190. package/dist/assets/Index-ng8NCzlC.js +0 -1
  191. package/dist/assets/Message-Caz13wD4.js +0 -3
  192. package/dist/assets/Model-F3xxy73J.js +0 -1
  193. package/dist/assets/Navigator-0G6cB3LX.js +0 -8
  194. package/dist/assets/Pay-CiRoI4vQ.js +0 -1
  195. package/dist/assets/RealtimeCall-DolT37JR.js +0 -1
  196. package/dist/assets/Tts-CCXz8ywK.js +0 -1
  197. package/dist/assets/avatar-DcZhgIo4.js +0 -1
  198. package/dist/assets/capabilities-CBfZ1dYC.js +0 -1
  199. package/dist/assets/debounce-BpbMwTHv.js +0 -1
  200. package/dist/assets/esm-D0T1nP5l.js +0 -1
  201. package/dist/assets/fish-BaqTo6tF.js +0 -1
  202. package/dist/assets/hailuo-myt4YrJR.js +0 -1
  203. package/dist/assets/image-DF8cabVr.js +0 -1
  204. package/dist/assets/index-DNz_lMrM.js +0 -570
  205. package/dist/assets/realtime-BaNdV1xm.js +0 -1
  206. package/dist/assets/select-ruot-XV3.js +0 -1
  207. package/dist/assets/slider-BQgcQSfm.js +0 -1
  208. package/dist/assets/table-DrsKyeYQ.js +0 -1
  209. package/dist/assets/time-picker-x2E9OCcv.js +0 -1
  210. package/dist/assets/webextrator-gfENjuvB.js +0 -1
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,qt 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-Dl8tgFjL.js";import{t as b}from"./upload-gI1Lxhu7.js";import{t as x}from"./tooltip-BY0D7YKq.js";import{t as S}from"./alert--fOgAzyp.js";import{t as C}from"./drawer-CZMqTsUy.js";import{t as w}from"./input-number-DcS9Bx33.js";import{t as T}from"./slider-CKn9N3dl.js";import{cr as E,dr as ee,lr as te,ur as D}from"./constants-DWe-ziJf.js";import{Ii as O,Ir as k,J as A,Si as j,Ti as M,Xi as N,cn as P,fn as F,ir as I,ln as L,sn as R,un as z,xn as B}from"./index-DHGr0qfr.js";import{t as V}from"./index.es-J-PBjzcR.js";import{t as H}from"./CopyToClipboard-BovNTELl.js";import{t as U}from"./ImagePreview-BKDkeMuD.js";import{n as W}from"./taskDrawerMixin-DyAUhFEq.js";import{t as G}from"./Consumption-DoSnOpCh.js";import{a as K,n as q,r as J,t as Y}from"./pagination-ChSSHmgO.js";import{t as X}from"./VideoPlayer-DG7NZuWz.js";import{t as Z}from"./ApiCodeButton-B4AbprcE.js";import{t as Q}from"./BotPlaceholder-ClF3L6UZ.js";import{t as ne}from"./PromptTextarea-BpckscxC.js";var re=_({name:`LayoutPixverse`,components:{ElDrawer:C,ElButton:N,FontAwesomeIcon:V},mixins:[W]}),ie={class:`main flex flex-row flex-1`},ae={class:`config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},oe={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function se(t,n,r,a,s,d){let p=c(`font-awesome-icon`),m=c(`el-button`),_=c(`el-drawer`);return h(),o(`div`,ie,[e(`div`,ae,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,oe,[u(t.$slots,`result`,{},void 0,!0)]),l(i(m,{circle:``,class:`menu`,onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{icon:`fa-solid fa-magic`})]),_:1},512),[[g,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`350px`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ce=A(re,[[`render`,se],[`__scopeId`,`data-v-e688a015`]]),le=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`v3.5`,label:`v3.5`},{value:`v4`,label:`v4`},{value:`v4.5`,label:`v4.5`}]}},computed:{value:{get(){return this.$store.state.pixverse?.config?.model},set(e){this.$store.commit(`pixverse/setConfig`,{...this.$store.state.pixverse.config,model:e})}}},mounted(){this.value||=te}}),ue={class:`field`},de={class:`title font-bold`};function fe(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,ue,[e(`h2`,de,r(t.$t(`pixverse.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`pixverse.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var pe=A(le,[[`render`,fe],[`__scopeId`,`data-v-e8f337ca`]]),me=_({name:`QualitySelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`360p`,label:`360p`},{value:`540p`,label:`540p`},{value:`720p`,label:`720p`},{value:`1080p`,label:`1080p`}]}},computed:{value:{get(){return this.$store.state.pixverse?.config?.quality},set(e){this.$store.commit(`pixverse/setConfig`,{...this.$store.state.pixverse.config,quality:e})}}},mounted(){this.value||=ee}}),he={class:`field`},ge={class:`title font-bold`};function _e(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,he,[e(`h2`,ge,r(t.$t(`pixverse.name.quality`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`pixverse.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var ve=A(me,[[`render`,_e],[`__scopeId`,`data-v-64aeaae9`]]),ye=_({name:`MotionSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`normal`,label:this.$t(`pixverse.name.motion1`)},{value:`fast`,label:this.$t(`pixverse.name.motion2`)}]}},computed:{value:{get(){return this.$store.state.pixverse?.config?.motion},set(e){this.$store.commit(`pixverse/setConfig`,{...this.$store.state.pixverse.config,motion:e})}}},mounted(){this.value||=D}}),be={class:`field`},xe={class:`title font-bold`};function Se(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,be,[e(`h2`,xe,r(t.$t(`pixverse.name.motion`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`pixverse.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ce=A(ye,[[`render`,Se],[`__scopeId`,`data-v-94237408`]]),we=_({name:`StyleSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`cyberpunk`,label:this.$t(`pixverse.name.style1`)},{value:`anime`,label:this.$t(`pixverse.name.style2`)},{value:`comic`,label:this.$t(`pixverse.name.style3`)},{value:`clay`,label:this.$t(`pixverse.name.style4`)},{value:`3d_animation`,label:this.$t(`pixverse.name.style5`)},{value:`realistic`,label:this.$t(`pixverse.name.style6`)}]}},computed:{value:{get(){return this.$store.state.pixverse?.config?.style},set(e){this.$store.commit(`pixverse/setConfig`,{...this.$store.state.pixverse.config,style:e})}}},mounted(){this.value||=``}}),Te={class:`field`},Ee={class:`title font-bold`};function De(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,Te,[e(`h2`,Ee,r(t.$t(`pixverse.name.style`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`pixverse.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Oe=A(we,[[`render`,De],[`__scopeId`,`data-v-64e17b3c`]]),ke=_({name:`SeedSelector`,components:{ElSlider:T,InfoIcon:K,ElInputNumber:w},computed:{value:{get(){return this.$store.state?.pixverse?.config?.seed},set(e){console.debug(`set seed`,e),this.$store.commit(`pixverse/setConfig`,{...this.$store.state?.pixverse?.config,seed:e})}}},mounted(){this.value||=void 0}}),Ae={class:`flex justify-between`},je={class:`flex justify-start items-center`},Me={class:`text-sm font-bold`},Ne={class:`flex justify-end items-center`},Pe={class:`w-full`};function Fe(t,n,a,s,l,u){let d=c(`info-icon`),f=c(`el-input-number`),p=c(`el-slider`);return h(),o(`div`,null,[e(`div`,Ae,[e(`div`,je,[e(`span`,Me,r(t.$t(`pixverse.name.seed`)),1),i(d,{content:t.$t(`pixverse.description.seed`)},null,8,[`content`])]),e(`div`,Ne,[i(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),e(`div`,Pe,[i(p,{modelValue:t.value,"onUpdate:modelValue":n[1]||=e=>t.value=e,min:0,max:1e3,step:1},null,8,[`modelValue`])])])}var Ie=A(ke,[[`render`,Fe]]),Le=_({name:`DurationSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:5,label:`5s`},{value:8,label:`8s`}]}},computed:{value:{get(){return this.$store.state.pixverse?.config?.duration},set(e){this.$store.commit(`pixverse/setConfig`,{...this.$store.state.pixverse.config,duration:e})}}},mounted(){this.value||=5}}),Re={class:`field`},ze={class:`title font-bold`};function Be(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,Re,[e(`h2`,ze,r(t.$t(`pixverse.name.duration`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`pixverse.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ve=A(Le,[[`render`,Be],[`__scopeId`,`data-v-065c77ef`]]),He=_({name:`RatioSelector`,data(){return{options:[{value:`1:1`,label:`1:1`,width:20,height:20},{value:`4:3`,label:`4:3`,width:20,height:15},{value:`3:4`,label:`3:4`,width:15,height:20},{value:`16:9`,label:`16:9`,width:25,height:13},{value:`9:16`,label:`9:16`,width:13,height:25}]}},computed:{active(){return this.options.findIndex(e=>e.value===this.value)||0},value:{get(){return this.$store.state.pixverse.config?.aspect_ratio},set(e){console.debug(`set aspect_ratio`,e),this.$store.commit(`pixverse/setConfig`,{...this.$store.state.pixverse.config,aspect_ratio:e})}}},mounted(){this.value||=E}}),Ue={class:`text-sm font-bold mb-2 block`},We={class:`items`},Ge=[`onClick`],Ke={class:`name`};function qe(n,i,a,c,l,u){return h(),o(`div`,null,[e(`span`,Ue,r(n.$t(`pixverse.name.aspectRatio`)),1),e(`div`,We,[(h(!0),o(s,null,m(n.options,(i,a)=>(h(),o(`div`,{key:a,class:t({active:n.active===a,item:!0}),onClick:e=>n.value=i.value},[e(`div`,{class:t([`preview`,i.label])},[e(`div`,{class:`rect`,style:p({width:i.width+`px`,height:i.height+`px`})},null,4)],2),e(`p`,Ke,r(i.label),1)],10,Ge))),128))])])}var Je=A(He,[[`render`,qe],[`__scopeId`,`data-v-53038264`]]),Ye=_({name:`StartImage`,components:{ElUpload:b,ElButton:N,InfoIcon:K,FontAwesomeIcon:V,ImagePreview:U},mixins:[z,P],emits:[`change`],data(){return{fileList:[],uploadUrl:M()+`/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?.pixverse?.config?.image_url},set(){}}},mounted(){this.value||=void 0,this.onSetStartImageUrl()},methods:{onExceed(){O.warning(this.$t(`pixverse.message.uploadReferencesExceed`))},onError(){O.error(this.$t(`pixverse.message.uploadReferencesError`))},onSetStartImageUrl(){let e=this.urls?.[0];this.$store.commit(`pixverse/setConfig`,{...this.$store.state?.pixverse?.config,image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Xe={class:`relative`},Ze={class:`flex justify-between`},Qe={class:`flex justify-start items-center`},$e={class:`text-sm font-bold`};function et(t,s,l,u,p,m){let g=c(`info-icon`),_=c(`image-preview`),v=c(`font-awesome-icon`),y=c(`el-button`),b=c(`el-upload`);return h(),o(`div`,Xe,[e(`div`,Ze,[e(`div`,Qe,[e(`span`,$e,r(t.$t(`pixverse.name.startImage`)),1),i(g,{content:t.$t(`pixverse.description.uploadStartImage`)},null,8,[`content`])])]),i(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":s[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:5,class:`upload-wrapper`,multiple:!1,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:f(({file:e})=>[e.url&&e.percentage!==void 0?(h(),d(_,{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`])):a(``,!0)]),default:f(()=>[i(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:f(()=>[i(v,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),n(` `+r(t.$t(`pixverse.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var tt=A(Ye,[[`render`,et],[`__scopeId`,`data-v-0d570ad7`]]),nt=_({name:`PromptInput`,components:{PromptTextarea:ne},computed:{prompt:{get(){return this.$store.state.pixverse?.config?.prompt},set(e){this.$store.commit(`pixverse/setConfig`,{...this.$store.state.pixverse?.config,prompt:e})}}},mounted(){this.prompt||=``}});function rt(e,t,n,r,i,a){let o=c(`prompt-textarea`);return h(),d(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`pixverse.name.prompt`),info:e.$t(`pixverse.description.prompt`),placeholder:e.$t(`pixverse.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var it=_({name:`ConfigPanel`,components:{ElButton:N,FontAwesomeIcon:V,PromptInput:A(nt,[[`render`,rt]]),ModelSelector:pe,QualitySelector:ve,MotionSelector:Ce,StyleSelector:Oe,DurationSelector:Ve,StartImage:tt,SeedSelector:Ie,RatioSelector:Je,Consumption:G},emits:[`generate`],computed:{config(){return this.$store.state.pixverse?.config},consumption(){return F(this.config,this.service?.cost)},service(){return this.$store.state.pixverse?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),at={class:`flex flex-col h-full`},ot={class:`flex-1 overflow-y-auto p-5`},st={class:`flex flex-col items-center justify-center px-5 pb-5`};function ct(t,a,s,l,u,d){let p=c(`prompt-input`),m=c(`model-selector`),g=c(`style-selector`),_=c(`ratio-selector`),v=c(`motion-selector`),y=c(`quality-selector`),b=c(`start-image`),x=c(`seed-selector`),S=c(`duration-selector`),C=c(`consumption`),w=c(`font-awesome-icon`),T=c(`el-button`);return h(),o(`div`,at,[e(`div`,ot,[i(p,{class:`mb-4`}),i(m,{class:`mb-4`}),i(g,{class:`mb-4`}),i(_,{class:`mb-4`}),i(v,{class:`mb-4`}),i(y,{class:`mb-4`}),i(b,{class:`mb-2`}),i(x,{class:`mb-4`}),i(S,{class:`mb-4`})]),e(`div`,st,[i(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(T,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:f(()=>[i(w,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`pixverse.button.generate`)),1)]),_:1},8,[`onClick`])])])}var lt=A(it,[[`render`,ct]]),ut=_({name:`TaskPreview`,components:{CopyToClipboard:H,FontAwesomeIcon:V,ElAlert:S,VideoPlayer:X,ElTooltip:x,ElButton:N,ApiCodeButton:Z},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.pixverse?.application},config(){return this.$store.state.pixverse?.config}},methods:{onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),dt={class:`preview`},ft={class:`left`},pt={class:`main`},mt={class:`bot`},ht={class:`datetime`},gt={class:`info`},_t={key:0,class:`prompt mt-2`},vt={key:0},yt={key:1},bt={key:0,class:t({content:!0,failed:!0})},xt={key:0,class:`mb-4`},St={key:1,class:t({operations:!0,"mt-2":!0})},Ct={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},wt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Tt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Et={key:1,class:t({content:!0})},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Dt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ot={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},kt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function At(t,s,l,u,p,m){let g=c(`capability-presentation`),_=c(`video-player`),v=c(`el-button`),y=c(`el-tooltip`),b=c(`api-code-button`),x=c(`font-awesome-icon`),S=c(`copy-to-clipboard`),C=c(`el-alert`);return h(),o(`div`,dt,[e(`div`,ft,[i(g,{capability:`pixverse`,part:`avatar`,class:`avatar`})]),e(`div`,pt,[e(`div`,mt,[i(g,{capability:`pixverse`,part:`name`}),e(`span`,ht,r(t.$dayjs.format(``+new Date(parseFloat((t.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,gt,[t.modelValue?.request?.prompt?(h(),o(`p`,_t,[n(r(t.modelValue?.request?.prompt)+` `,1),t.modelValue?.response?a(``,!0):(h(),o(`span`,vt,` - (`+r(t.$t(`pixverse.status.pending`))+`) `,1)),t.modelValue?.response?.data&&(t.modelValue?.response?.data[0]?.state===`processing`||t.modelValue?.response?.data[0]?.state===`pending`)?(h(),o(`span`,yt,` - (`+r(t.$t(`pixverse.status.processing`))+`) `,1)):a(``,!0)])):a(``,!0)]),t.modelValue?.response?.success===!0&&t.modelValue?.response?.data?(h(),o(`div`,bt,[t.modelValue?.response?.data[0]?.video_url?(h(),o(`div`,xt,[i(_,{src:t.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):a(``,!0),t.modelValue?.response.success?(h(),o(`div`,St,[i(y,{class:`box-item`,effect:`dark`,content:t.$t(`pixverse.message.downloadVideo`),placement:`top-start`},{default:f(()=>[t.modelValue?.response?.data[0]?.video_url?(h(),d(v,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:s[0]||=e=>t.onDownload(e,t.modelValue?.response?.data[0]?.video_url)},{default:f(()=>[n(r(t.$t(`pixverse.button.download`)),1)]),_:1})):a(``,!0)]),_:1},8,[`content`]),i(b,{path:`/pixverse/videos`,body:t.modelValue?.request},null,8,[`body`])])):a(``,!0),i(C,{closable:!1,class:`mt-2 success`},{default:f(()=>[e(`p`,Ct,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.model`))+`: `+r(t.modelValue?.request?.model),1)]),e(`p`,wt,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),t.modelValue?.elapsed?(h(),o(`p`,Tt,[i(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.elapsed`))+`: `+r(t.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):a(``,!0),t.modelValue?.response?.success===!1?(h(),o(`div`,Et,[i(C,{closable:!1,class:`info`},{template:f(()=>[i(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.failure`)),1)]),default:f(()=>[e(`p`,$,[i(x,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.failureReason`))+`: `+r(t.modelValue?.response?.error?.message)+` `,1),i(S,{content:t.modelValue?.response?.error?.message},null,8,[`content`])]),e(`p`,Dt,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),t.modelValue?.elapsed?(h(),o(`p`,Ot,[i(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.elapsed`))+`: `+r(t.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0),t.modelValue?.response?.trace_id?(h(),o(`p`,kt,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`pixverse.name.traceId`))+`: `+r(t.modelValue?.response?.trace_id)+` `,1),i(S,{content:t.modelValue?.response?.trace_id},null,8,[`content`])])):a(``,!0)]),_:1})])):a(``,!0)])])}var jt=_({name:`RecentPanel`,components:{TaskPreview:A(ut,[[`render`,At],[`__scopeId`,`data-v-fb14aad9`]]),NoTasks:J,BotPlaceholder:Q,ScrollList:q},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.pixverse?.tasks,items:this.$store.state.pixverse?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Mt={key:0},Nt={key:2,class:`w-full h-full flex items-center justify-center`};function Pt(e,t,n,r,l,u){let p=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return h(),o(s,null,[e.tasks?.items===void 0?(h(),o(`div`,Mt,[i(p)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),d(_,{key:1,ref:`scrollList`,class:`h-full w-full overflow-y-auto tasks`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(h(!0),o(s,null,m(e.tasks?.items,(e,t)=>(h(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(h(),o(`div`,Nt,[i(v)])):a(``,!0)],64)}var Ft=_({name:`PixverseIndex`,components:{ConfigPanel:lt,Layout:ce,RecentPanel:A(jt,[[`render`,Pt]])},mixins:[L],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.pixverse?.status?.getApplications===j.Request},tasksLoading(){return this.$store.state.pixverse?.status?.getTasks===j.Request||this.fetchingTasks},credential(){return this.$store.state.pixverse.credential},config(){return this.$store.state.pixverse.config},tasks(){return this.$store.state.pixverse.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await Y({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(`pixverse/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`pixverse/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(`pixverse/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!R(this.uploadTracker,e=>this.$t(e),e=>O.warning(e)))return;let e={...this.config,async:!0};if(!B())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}O.info(this.$t(`pixverse.message.startingTask`)),k(`pixverse`,I.generate(e,{token:t})).then(()=>{O.success(this.$t(`pixverse.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?O.error(this.$t(`pixverse.message.usedUp`)):O.error(this.$t(`pixverse.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function It(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return h(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Lt=A(Ft,[[`render`,It]]);export{Lt as default};
@@ -1 +1 @@
1
- .main .menu[data-v-689d2913]{display:none}@media (width<=767px){.main[data-v-689d2913]{position:relative}.main .config[data-v-689d2913]{display:none}.main .results[data-v-689d2913]{width:100%;display:block}.main .menu[data-v-689d2913]{right:8px;top:calc(45px + var(--app-safe-area-top));z-index:1000;display:block;position:absolute}}.title[data-v-b1114c34]{margin-bottom:10px;font-size:14px}.items[data-v-b1114c34]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.items .item[data-v-b1114c34]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:var(--el-border-radius-base);flex-direction:column;align-items:center;width:48px;height:65px;transition:background-color .2s,border-color .2s;display:flex}.items .item .preview[data-v-b1114c34]{flex-direction:row;justify-content:center;align-items:center;width:30px;height:30px;margin-top:5px;margin-bottom:3px;display:flex}.items .item .preview .rect[data-v-b1114c34]{border:1px solid var(--el-border-color-lighter);border-radius:2px;width:20px;height:20px}.items .item .name[data-v-b1114c34]{color:var(--el-text-color-primary);font-size:12px;display:block}.items .item[data-v-b1114c34]:hover{background-color:var(--el-fill-color)}.items .item.active[data-v-b1114c34]{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.items .item.active .rect[data-v-b1114c34]{border-color:var(--el-color-primary)}.field[data-v-2d55fce2]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-2d55fce2]{width:30%;margin:0;font-size:14px}.field .value[data-v-2d55fce2]{flex:1}.field .info[data-v-2d55fce2]{width:20px}.field[data-v-8e00777d]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-8e00777d]{width:30%;margin:0;font-size:14px}.field .value[data-v-8e00777d]{width:80px}.field[data-v-871c894e]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .info-icon[data-v-871c894e]{color:var(--el-text-color-secondary);cursor:pointer;margin-left:4px;font-size:12px}.title[data-v-0445850f]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-0445850f]{position:absolute;top:5px;right:0}.title[data-v-375309d2]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-375309d2]{position:absolute;top:5px;right:0}.title[data-v-6b4c9a65]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-6b4c9a65]{position:absolute;top:5px;right:0}.field[data-v-ed158765]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-ed158765]{width:30%;margin:0;font-size:14px}.field .value[data-v-ed158765]{flex:1}.title[data-v-ebc6758e]{margin-bottom:10px;font-size:14px}.items[data-v-ebc6758e]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.items .item[data-v-ebc6758e]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:var(--el-border-radius-base);flex-direction:column;align-items:center;width:130px;height:60px;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.items .item .image[data-v-ebc6758e]{width:100%;height:100%}.items .item .name[data-v-ebc6758e]{color:#fff;text-align:center;font-size:18px;display:block;position:absolute;top:12px}.items .item.active[data-v-ebc6758e],.items .item.active .rect[data-v-ebc6758e]{border-color:var(--el-color-primary)}.field[data-v-10b2574d]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-10b2574d]{width:30%;margin:0;font-size:14px}.field .value[data-v-10b2574d]{flex:1}.quality .el-radio-button .el-radio-button__inner{padding:8px 11px}.field[data-v-12537f29]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-12537f29]{width:30%;margin:0;font-size:14px}.field .value[data-v-12537f29]{width:80px}.field[data-v-b4bf1f1e]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-b4bf1f1e]{width:30%;margin:0;font-size:14px}.field .value[data-v-b4bf1f1e]{flex:1}.field[data-v-00d50831]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-00d50831]{width:30%;margin:0;font-size:14px}.field .value[data-v-00d50831]{flex:1}.title[data-v-48a019ff]{margin-bottom:10px;font-size:14px}.pane[data-v-48a019ff]{flex-flow:wrap;justify-content:left;align-items:flex-start;gap:10px;height:230px;display:flex;overflow-y:auto}.pane .item[data-v-48a019ff]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:10px;width:100px;height:100px;transition:border-color .2s;position:relative;overflow:hidden}.pane .item .icon[data-v-48a019ff]{visibility:hidden;z-index:100;color:var(--el-color-white);background-color:var(--el-color-primary);border-radius:50%;padding:5px;font-size:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pane .item.hidden[data-v-48a019ff]{display:none}.pane .item.active[data-v-48a019ff]{border-color:var(--el-color-primary)}.pane .item.active .icon[data-v-48a019ff]{visibility:visible}.pane .item .preview[data-v-48a019ff]{width:100px;height:100px}.pane .item .name[data-v-48a019ff]{text-overflow:ellipsis;color:#fff;text-align:center;background-color:#000c;width:100px;padding:0 5px;font-size:10px;position:absolute;bottom:0;left:0;right:0}.field[data-v-defbf635]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-defbf635]{width:30%;margin:0;font-size:14px}.field .value[data-v-defbf635]{flex:1}.mode .el-radio-button--small .el-radio-button__inner{padding:8px 11px}.title[data-v-d991c11f]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-d991c11f]{position:absolute;top:5px;right:0}.upload-wrapper{height:auto;display:flex}.upload-wrapper .el-upload-list{width:100%;margin:0}.item[data-v-7a51ab7d]{flex-direction:row;display:flex}.item .left[data-v-7a51ab7d]{width:70px}.item .left .avatar[data-v-7a51ab7d]{width:50px;height:50px;box-shadow:var(--app-shadow-xs);border-radius:50%;margin:10px}.item .preview[data-v-7a51ab7d]{flex-direction:column;flex:1;width:calc(100% - 70px);min-width:0;padding:10px 10px 0;display:flex}.item .preview .bot[data-v-7a51ab7d]{color:var(--el-color-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:0;margin-bottom:10px;font-size:16px;font-weight:700;overflow:hidden}.item .preview .bot .datetime[data-v-7a51ab7d]{color:var(--el-text-color-secondary);margin-left:10px;font-size:12px;font-weight:400}.item .preview .description[data-v-7a51ab7d]{color:var(--el-text-color-regular);text-align:left;margin-bottom:10px;font-size:12px}.item .preview .info[data-v-7a51ab7d]{width:100%;overflow:hidden}.item .preview .info .prompt[data-v-7a51ab7d]{color:var(--el-text-color-regular);white-space:normal;word-break:break-word;overflow-wrap:anywhere;margin-bottom:10px;font-size:14px;font-weight:700}.item .preview .info .mode .icon[data-v-7a51ab7d]{margin-right:2px;display:inline-block}.item .preview .info .mode .icon.turbo[data-v-7a51ab7d]{color:#f90}.item .preview .info .mode .icon.fast[data-v-7a51ab7d]{color:#2dc49c}.item .preview .info .mode .icon.relax[data-v-7a51ab7d]{color:#ce65e6}.item .preview .content[data-v-7a51ab7d]{width:100%;margin-bottom:10px;position:relative}.item .preview .content.full[data-v-7a51ab7d]{align-items:center;height:220px;display:flex}.item .preview .content.full .image[data-v-7a51ab7d]{min-height:200px}.item .preview .content .progress[data-v-7a51ab7d]{color:#fff;text-shadow:0 0 5px #000;font-size:20px;font-weight:700;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.item .preview .el-alert[data-v-7a51ab7d]{border-left-style:solid;border-left-width:2px}.item .preview .el-alert.failure[data-v-7a51ab7d]{border-color:var(--el-color-danger)}.item .preview .el-alert.success[data-v-7a51ab7d]{border-color:var(--el-color-success)}.item .preview .el-alert.info[data-v-7a51ab7d]{border-color:var(--el-color-info)}.item .preview .operations[data-v-7a51ab7d]{text-align:center;width:100%;color:var(--el-text-color-regular);flex-flow:wrap;justify-content:left;align-items:baseline;gap:10px;margin-bottom:15px;font-size:14px;display:flex;overflow:hidden scroll}.item .preview .operations.full[data-v-7a51ab7d]{height:70px}.item .preview .operations .btn-action[data-v-7a51ab7d]{margin-left:0}
1
+ .main .menu[data-v-689d2913]{display:none}@media (width<=767px){.main[data-v-689d2913]{position:relative}.main .config[data-v-689d2913]{display:none}.main .results[data-v-689d2913]{width:100%;display:block}.main .menu[data-v-689d2913]{right:8px;top:calc(45px + var(--app-safe-area-top));z-index:1000;display:block;position:absolute}}.title[data-v-b1114c34]{margin-bottom:10px;font-size:14px}.items[data-v-b1114c34]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.items .item[data-v-b1114c34]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:var(--el-border-radius-base);flex-direction:column;align-items:center;width:48px;height:65px;transition:background-color .2s,border-color .2s;display:flex}.items .item .preview[data-v-b1114c34]{flex-direction:row;justify-content:center;align-items:center;width:30px;height:30px;margin-top:5px;margin-bottom:3px;display:flex}.items .item .preview .rect[data-v-b1114c34]{border:1px solid var(--el-border-color-lighter);border-radius:2px;width:20px;height:20px}.items .item .name[data-v-b1114c34]{color:var(--el-text-color-primary);font-size:12px;display:block}.items .item[data-v-b1114c34]:hover{background-color:var(--el-fill-color)}.items .item.active[data-v-b1114c34]{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.items .item.active .rect[data-v-b1114c34]{border-color:var(--el-color-primary)}.field[data-v-2d55fce2]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-2d55fce2]{width:30%;margin:0;font-size:14px}.field .value[data-v-2d55fce2]{flex:1}.field .info[data-v-2d55fce2]{width:20px}.field[data-v-8e00777d]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-8e00777d]{width:30%;margin:0;font-size:14px}.field .value[data-v-8e00777d]{width:80px}.field[data-v-871c894e]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .info-icon[data-v-871c894e]{color:var(--el-text-color-secondary);cursor:pointer;margin-left:4px;font-size:12px}.title[data-v-0445850f]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-0445850f]{position:absolute;top:5px;right:0}.title[data-v-375309d2]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-375309d2]{position:absolute;top:5px;right:0}.title[data-v-6b4c9a65]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-6b4c9a65]{position:absolute;top:5px;right:0}.field[data-v-ed158765]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-ed158765]{width:30%;margin:0;font-size:14px}.field .value[data-v-ed158765]{flex:1}.title[data-v-ebc6758e]{margin-bottom:10px;font-size:14px}.items[data-v-ebc6758e]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.items .item[data-v-ebc6758e]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:var(--el-border-radius-base);flex-direction:column;align-items:center;width:130px;height:60px;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.items .item .image[data-v-ebc6758e]{width:100%;height:100%}.items .item .name[data-v-ebc6758e]{color:#fff;text-align:center;font-size:18px;display:block;position:absolute;top:12px}.items .item.active[data-v-ebc6758e],.items .item.active .rect[data-v-ebc6758e]{border-color:var(--el-color-primary)}.field[data-v-10b2574d]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-10b2574d]{width:30%;margin:0;font-size:14px}.field .value[data-v-10b2574d]{flex:1}.quality .el-radio-button .el-radio-button__inner{padding:8px 11px}.field[data-v-12537f29]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-12537f29]{width:30%;margin:0;font-size:14px}.field .value[data-v-12537f29]{width:80px}.field[data-v-b4bf1f1e]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-b4bf1f1e]{width:30%;margin:0;font-size:14px}.field .value[data-v-b4bf1f1e]{flex:1}.field[data-v-00d50831]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-00d50831]{width:30%;margin:0;font-size:14px}.field .value[data-v-00d50831]{flex:1}.title[data-v-48a019ff]{margin-bottom:10px;font-size:14px}.pane[data-v-48a019ff]{flex-flow:wrap;justify-content:left;align-items:flex-start;gap:10px;height:230px;display:flex;overflow-y:auto}.pane .item[data-v-48a019ff]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:10px;width:100px;height:100px;transition:border-color .2s;position:relative;overflow:hidden}.pane .item .icon[data-v-48a019ff]{visibility:hidden;z-index:100;color:var(--el-color-white);background-color:var(--el-color-primary);border-radius:50%;padding:5px;font-size:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pane .item.hidden[data-v-48a019ff]{display:none}.pane .item.active[data-v-48a019ff]{border-color:var(--el-color-primary)}.pane .item.active .icon[data-v-48a019ff]{visibility:visible}.pane .item .preview[data-v-48a019ff]{width:100px;height:100px}.pane .item .name[data-v-48a019ff]{text-overflow:ellipsis;color:#fff;text-align:center;background-color:#000c;width:100px;padding:0 5px;font-size:10px;position:absolute;bottom:0;left:0;right:0}.field[data-v-defbf635]{flex-direction:row;align-items:center;display:flex}.field .title[data-v-defbf635]{width:30%;margin:0;font-size:14px}.field .value[data-v-defbf635]{flex:1}.mode .el-radio-button--small .el-radio-button__inner{padding:8px 11px}.title[data-v-d991c11f]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-d991c11f]{position:absolute;top:5px;right:0}.upload-wrapper{height:auto;display:flex}.upload-wrapper .el-upload-list{width:100%;margin:0}.item[data-v-de4cb45b]{flex-direction:row;display:flex}.item .left[data-v-de4cb45b]{width:70px}.item .left .avatar[data-v-de4cb45b]{width:50px;height:50px;box-shadow:var(--app-shadow-xs);border-radius:50%;margin:10px}.item .preview[data-v-de4cb45b]{flex-direction:column;flex:1;width:calc(100% - 70px);min-width:0;padding:10px 10px 0;display:flex}.item .preview .bot[data-v-de4cb45b]{color:var(--el-color-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:0;margin-bottom:10px;font-size:16px;font-weight:700;overflow:hidden}.item .preview .bot .datetime[data-v-de4cb45b]{color:var(--el-text-color-secondary);margin-left:10px;font-size:12px;font-weight:400}.item .preview .description[data-v-de4cb45b]{color:var(--el-text-color-regular);text-align:left;margin-bottom:10px;font-size:12px}.item .preview .info[data-v-de4cb45b]{width:100%;overflow:hidden}.item .preview .info .prompt[data-v-de4cb45b]{color:var(--el-text-color-regular);white-space:normal;word-break:break-word;overflow-wrap:anywhere;margin-bottom:10px;font-size:14px;font-weight:700}.item .preview .info .mode .icon[data-v-de4cb45b]{margin-right:2px;display:inline-block}.item .preview .info .mode .icon.turbo[data-v-de4cb45b]{color:#f90}.item .preview .info .mode .icon.fast[data-v-de4cb45b]{color:#2dc49c}.item .preview .info .mode .icon.relax[data-v-de4cb45b]{color:#ce65e6}.item .preview .content[data-v-de4cb45b]{width:100%;margin-bottom:10px;position:relative}.item .preview .content.full[data-v-de4cb45b]{align-items:center;height:220px;display:flex}.item .preview .content.full .image[data-v-de4cb45b]{min-height:200px}.item .preview .content .progress[data-v-de4cb45b]{color:#fff;text-shadow:0 0 5px #000;font-size:20px;font-weight:700;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.item .preview .el-alert[data-v-de4cb45b]{border-left-style:solid;border-left-width:2px}.item .preview .el-alert.failure[data-v-de4cb45b]{border-color:var(--el-color-danger)}.item .preview .el-alert.success[data-v-de4cb45b]{border-color:var(--el-color-success)}.item .preview .el-alert.info[data-v-de4cb45b]{border-color:var(--el-color-info)}.item .preview .operations[data-v-de4cb45b]{text-align:center;width:100%;color:var(--el-text-color-regular);flex-flow:wrap;justify-content:left;align-items:baseline;gap:10px;margin-bottom:15px;font-size:14px;display:flex;overflow:hidden scroll}.item .preview .operations.full[data-v-de4cb45b]{height:70px}.item .preview .operations .btn-action[data-v-de4cb45b]{margin-left:0}
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,j as u,mt as d,rt as f,tt as p,z as m}from"./vendor-chart-Dw-P17PN.js";import{r as h,t as g}from"./select-Dl8tgFjL.js";import{t as _}from"./upload-gI1Lxhu7.js";import{t as v}from"./tooltip-BY0D7YKq.js";import{t as y}from"./alert--fOgAzyp.js";import{er as b}from"./constants-DWe-ziJf.js";import{Ii as x,Ir as S,J as C,Si as w,Ti as T,Xi as E,cn as ee,fn as te,ln as D,nr as O,sn as k,un as A,xn as j}from"./index-DHGr0qfr.js";import{t as M}from"./index.es-J-PBjzcR.js";import{t as N}from"./CopyToClipboard-BovNTELl.js";import{t as P}from"./ImagePreview-BKDkeMuD.js";import{t as F}from"./Consumption-DoSnOpCh.js";import{a as I,n as L,r as R,t as z}from"./pagination-ChSSHmgO.js";import{t as B}from"./VideoPlayer-DG7NZuWz.js";import{t as V}from"./ApiCodeButton-B4AbprcE.js";import{t as H}from"./BotPlaceholder-ClF3L6UZ.js";import{t as U}from"./Hailuo-DJdgVTZk.js";import{t as W}from"./PromptTextarea-BpckscxC.js";var G=m({name:`ModelSelector`,components:{ElSelect:h,ElOption:g},data(){return{}},computed:{options(){return[{value:`minimax-t2v`,label:this.$t(`hailuo.button.model1`)},{value:`minimax-i2v`,label:this.$t(`hailuo.button.model2`)},{value:`minimax-i2v-director`,label:this.$t(`hailuo.button.model3`)}]},value:{get(){return this.$store.state.hailuo?.config?.model},set(e){this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,model:e})}}},mounted(){this.value||=b}}),K={class:`field`},q={class:`title font-bold`},J={class:`float-left`};function Y(t,n,r,o,m,h){let g=l(`el-option`),_=l(`el-select`);return p(),s(`div`,K,[e(`h2`,q,i(t.$t(`hailuo.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`hailuo.placeholder.select`),clearable:``},{default:d(()=>[(p(!0),s(c,null,f(t.options,t=>(p(),u(g,{key:t.value,label:t.label,value:t.value},{default:d(()=>[e(`span`,J,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var X=C(G,[[`render`,Y],[`__scopeId`,`data-v-a768fbd9`]]),Z=m({name:`StartImageUrlInput`,components:{ElUpload:_,ElButton:E,InfoIcon:I,ImagePreview:P},mixins:[A,ee],data(){return{fileList:[],uploadUrl:T()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.hailuo?.config?.first_image_url},set(){let e=this.urls?.[0];this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,first_image_url:e})}}},mounted(){this.value||=void 0,this.onSetStartImageUrl()},methods:{onExceed(){x.warning(this.$t(`hailuo.message.uploadStartImageExceed`))},onError(){x.error(this.$t(`hailuo.message.uploadStartImageError`))},async onRemove(){x.error(this.$t(`hailuo.message.uploadStartImageError`))},onSetStartImageUrl(){let e=this.urls?.[0];this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,first_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Q={class:`relative`},ne={class:`flex justify-between`},re={class:`flex justify-start items-center`},ie={class:`text-sm font-bold`};function ae(t,n,c,f,m,h){let g=l(`info-icon`),_=l(`image-preview`),v=l(`el-button`),y=l(`el-upload`);return p(),s(`div`,Q,[e(`div`,ne,[e(`div`,re,[e(`span`,ie,i(t.$t(`hailuo.name.startImageUrl`)),1),a(g,{content:t.$t(`hailuo.description.startImageUrl`),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`,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,"on-remove":t.onRemove,"on-success":t.onSuccess,headers:t.headers},{file:d(({file:e})=>[e.url&&e.percentage!==void 0?(p(),u(_,{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:d(()=>[a(v,{size:`small`,type:`primary`,class:`btn btn-upload`,round:``},{default:d(()=>[r(i(t.$t(`hailuo.button.uploadStartImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-remove`,`on-success`,`headers`])])}var oe=C(Z,[[`render`,ae],[`__scopeId`,`data-v-fbf49b06`]]),se=m({name:`PromptInput`,components:{PromptTextarea:W},computed:{prompt:{get(){return this.$store.state.hailuo?.config?.prompt},set(e){this.$store.commit(`hailuo/setConfig`,{...this.$store.state.hailuo?.config,prompt:e})}}},mounted(){this.prompt||=``}});function ce(e,t,n,r,i,a){let o=l(`prompt-textarea`);return p(),u(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`hailuo.name.prompt`),info:e.$t(`hailuo.description.prompt`),placeholder:e.$t(`hailuo.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var le=m({name:`PresetPanel`,components:{ElButton:E,FontAwesomeIcon:M,PromptInput:C(se,[[`render`,ce]]),StartImageUrlInput:oe,ModelSelector:X,Consumption:F},emits:[`generate`],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return te(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),ue={class:`flex flex-col h-full`},de={class:`flex-1 overflow-y-auto p-5`},fe={class:`flex flex-col items-center justify-center px-5 pb-5`};function pe(t,n,c,f,m,h){let g=l(`prompt-input`),_=l(`model-selector`),v=l(`start-image-url-input`),y=l(`consumption`),b=l(`font-awesome-icon`),x=l(`el-button`);return p(),s(`div`,ue,[e(`div`,de,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.config?.model===`minimax-i2v`?(p(),u(v,{key:0,class:`mb-2`})):o(``,!0)]),e(`div`,fe,[a(y,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),t.config?.video_url!==void 0||t.config?.custom?(p(),u(x,{key:0,type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:d(()=>[a(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),r(` `+i(t.$t(`hailuo.button.extend`)),1)]),_:1},8,[`onClick`])):(p(),u(x,{key:1,type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:d(()=>[a(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),r(` `+i(t.$t(`hailuo.button.generate`)),1)]),_:1},8,[`onClick`]))])])}var me=C(le,[[`render`,pe]]),he=m({name:`TaskPreview`,components:{CopyToClipboard:N,FontAwesomeIcon:M,ElAlert:y,VideoPlayer:B,ElTooltip:v,ElButton:E,ApiCodeButton:V},props:{modelValue:{type:Object,required:!0}},computed:{application(){return this.$store.state.hailuo?.application},config(){return this.$store.state.hailuo?.config},video(){return this.modelValue?.response?.data?.[0]}},methods:{onDownload(e){console.debug(`on download hailuo video`,e),window.open(e,`_blank`)}}}),ge={class:`preview`},_e={class:`left`},ve={class:`main`},ye={class:`bot`},be={class:`datetime`},xe={class:`info`},Se={key:0,class:`prompt mt-2`},Ce={key:0},we={key:1},Te={key:0,class:n({content:!0,failed:!0})},Ee={key:0,class:`mb-4`},De={key:1,class:n({operations:!0,"mt-2":!0})},Oe={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ke={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ae={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},je={key:1,class:n({content:!0})},Me={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ne={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pe={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Fe={key:2,class:n({content:!0})},Ie={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Le(n,c,f,m,h,g){let _=l(`capability-presentation`),v=l(`video-player`),y=l(`el-button`),b=l(`el-tooltip`),x=l(`api-code-button`),S=l(`font-awesome-icon`),C=l(`copy-to-clipboard`),w=l(`el-alert`);return p(),s(`div`,ge,[e(`div`,_e,[a(_,{capability:`hailuo`,part:`avatar`,class:`avatar`})]),e(`div`,ve,[e(`div`,ye,[a(_,{capability:`hailuo`,part:`name`}),e(`span`,be,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,xe,[n.modelValue?.request?.prompt?(p(),s(`p`,Se,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(p(),s(`span`,Ce,` - (`+i(n.$t(`hailuo.status.pending`))+`) `,1)),n.video?.state===`processing`||n.video?.state===`pending`||n.video?.state===`running`?(p(),s(`span`,we,` - (`+i(n.$t(`hailuo.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0?(p(),s(`div`,Te,[n.video?.video_url?(p(),s(`div`,Ee,[a(v,{src:n.video?.video_url},null,8,[`src`])])):o(``,!0),n.video?(p(),s(`div`,De,[a(b,{class:`box-item`,effect:`dark`,content:n.$t(`hailuo.message.downloadVideo`),placement:`top-start`},{default:d(()=>[n.video?.video_url?(p(),u(y,{key:0,type:`info`,size:`small`,class:`mb-2`,onClick:c[0]||=t(e=>n.onDownload(n.video?.video_url),[`stop`])},{default:d(()=>[r(i(n.$t(`hailuo.button.download`)),1)]),_:1})):o(``,!0)]),_:1},8,[`content`]),a(x,{path:`/hailuo/videos`,body:n.modelValue?.request},null,8,[`body`])])):o(``,!0),a(w,{closable:!1,class:`mt-2 success`},{default:d(()=>[n.modelValue?.request?.model?(p(),s(`p`,Oe,[a(S,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.model`))+`: `+i(n.modelValue?.request?.model)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])])):o(``,!0),e(`p`,ke,[a(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(p(),s(`p`,Ae,[a(S,{icon:`fa-solid fa-clock`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(p(),s(`div`,je,[a(w,{closable:!1,class:`failure`},{template:d(()=>[a(S,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.failure`)),1)]),default:d(()=>[e(`p`,Me,[a(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,Ne,[a(S,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(C,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(p(),s(`p`,Pe,[a(S,{icon:`fa-solid fa-clock`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,$,[a(S,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(C,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])]),_:1})])):o(``,!0),n.modelValue?.response?.success===void 0?(p(),s(`div`,Fe,[a(w,{closable:!1,class:`info`},{template:d(()=>[a(S,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.failure`)),1)]),default:d(()=>[e(`p`,Ie,[a(S,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`hailuo.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(C,{content:n.modelValue?.id},null,8,[`content`])])]),_:1})])):o(``,!0)])])}var Re=m({name:`RecentPanel`,components:{TaskPreview:C(he,[[`render`,Le],[`__scopeId`,`data-v-19a1739f`]]),BotPlaceholder:H,NoTasks:R,ScrollList:L},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.hailuo?.tasks,items:this.$store.state.hailuo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),ze={key:0},Be={key:2,class:`w-full h-full flex items-center justify-center`};function Ve(e,t,n,r,i,m){let h=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return p(),s(c,null,[e.tasks?.items===void 0?(p(),s(`div`,ze,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(p(),u(_,{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:d(()=>[(p(!0),s(c,null,f(e.tasks?.items,e=>(p(),u(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(p(),s(`div`,Be,[a(v)])):o(``,!0)],64)}var He=m({name:`HailuoIndex`,components:{ConfigPanel:me,Layout:U,RecentPanel:C(Re,[[`render`,Ve]])},mixins:[D],inject:[`initialized`],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.hailuo?.status?.getApplications===w.Request},tasksLoading(){return this.$store.state.hailuo?.status?.getTasks===w.Request||this.fetchingTasks},credential(){return this.$store.state.hailuo.credential},config(){return this.$store.state.hailuo.config},application(){return this.$store.state.hailuo.application},tasks(){return this.$store.state.hailuo.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await z({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`hailuo/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`hailuo/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`hailuo/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!k(this.uploadTracker,e=>this.$t(e),e=>x.warning(e)))return;let e={...this.config,async:!0};if(!j())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}x.info(this.$t(`hailuo.message.startingTask`)),S(`hailuo`,O.generate(e,{token:t})).then(()=>{x.success(this.$t(`hailuo.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?x.error(this.$t(`hailuo.message.usedUp`)):x.error(this.$t(`hailuo.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ue(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),f=l(`layout`);return p(),u(f,null,{config:d(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:d(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var We=C(He,[[`render`,Ue]]);export{We as default};
@@ -1 +1 @@
1
- .menu[data-v-12b82bc3]{display:none}@media (width<=767px){.config[data-v-12b82bc3]{display:none}.result[data-v-12b82bc3]{width:100%}.menu[data-v-12b82bc3]{right:8px;top:calc(45px + var(--app-safe-area-top));z-index:1000;display:block;position:absolute}}.field[data-v-90ed8cff]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-90ed8cff]{width:30%;margin:0;font-size:14px}.field .value[data-v-90ed8cff]{flex:1}.action-tabs[data-v-349937fd] .el-tabs__header{height:64px;margin:0}.action-tabs[data-v-349937fd] .el-tabs__nav-wrap:after{height:1px}.action-tabs[data-v-349937fd] .el-tabs__nav-scroll{height:64px;overflow:visible}.action-tabs[data-v-349937fd] .el-tabs__nav{width:100%;height:64px;transform:none!important}.action-tabs[data-v-349937fd] .el-tabs__nav-wrap{height:64px}.action-tabs[data-v-349937fd] .el-tabs__nav-prev,.action-tabs[data-v-349937fd] .el-tabs__nav-next,.action-tabs[data-v-349937fd] .el-tabs__active-bar{display:none}.action-tabs[data-v-349937fd] .el-tabs__item{letter-spacing:0;text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:break-word;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;min-width:0;height:64px;padding:0 6px;font-size:12px;line-height:16px}.action-tabs[data-v-349937fd] .el-tabs__item.is-active{border-bottom-color:var(--el-color-primary)}.title[data-v-28c472c4]{margin-bottom:10px;font-size:14px}.items[data-v-28c472c4]{flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;display:flex}.items .item[data-v-28c472c4]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:var(--el-border-radius-base);flex-direction:column;align-items:center;width:48px;height:65px;transition:background-color .2s,border-color .2s;display:flex}.items .item .preview[data-v-28c472c4]{flex-direction:row;justify-content:center;align-items:center;width:30px;height:30px;margin-top:5px;margin-bottom:3px;display:flex}.items .item .preview .rect[data-v-28c472c4]{border:1px solid var(--el-border-color-lighter);border-radius:2px;width:20px;height:20px}.items .item .name[data-v-28c472c4]{color:var(--el-text-color-primary);font-size:12px;display:block}.items .item[data-v-28c472c4]:hover{background-color:var(--el-fill-color)}.items .item.active[data-v-28c472c4]{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.items .item.active .rect[data-v-28c472c4]{border-color:var(--el-color-primary)}.title[data-v-4f7ed755]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-4f7ed755]{margin-top:8px}.upload-wrapper{flex-direction:column;align-items:flex-start;height:auto;display:flex}.upload-wrapper .el-upload-list{order:2;width:100%;margin:8px 0 0}.preview[data-v-83725cd2]{text-align:left;flex-direction:row;width:100%;height:fit-content;margin-bottom:15px;display:flex}.preview .left[data-v-83725cd2]{width:70px}.preview .left .avatar[data-v-83725cd2]{border-radius:50%;width:50px;height:50px;margin:10px}.preview .main[data-v-83725cd2]{flex:1;width:calc(100% - 70px);min-width:0;padding:10px 10px 0}.preview .main .bot[data-v-83725cd2]{color:var(--el-color-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:0;margin-bottom:0;font-size:16px;font-weight:700;overflow:hidden}.preview .main .bot .datetime[data-v-83725cd2]{color:var(--el-text-color-secondary);margin-left:10px;font-size:12px;font-weight:400}.preview .main .info[data-v-83725cd2]{overflow:hidden}.preview .main .info .prompt[data-v-83725cd2]{color:var(--el-text-color-regular);white-space:normal;word-break:break-word;overflow-wrap:anywhere;margin-bottom:10px;font-size:16px;font-weight:700}.preview .main .content[data-v-83725cd2]{word-break:break-word;overflow-wrap:anywhere}.preview .main .content .el-alert[data-v-83725cd2]{border-left-style:solid;border-left-width:2px}.preview .main .content .el-alert.task-metadata[data-v-83725cd2] p{color:var(--el-text-color-regular)}.preview .main .content .el-alert.failure[data-v-83725cd2]{border-color:var(--el-color-danger)}.preview .main .content .el-alert.success[data-v-83725cd2]{border-color:var(--el-color-success)}.preview .main .content .el-alert.info[data-v-83725cd2]{border-color:var(--el-color-info)}.preview .main .content .el-alert[data-v-83725cd2] p:last-child{margin-bottom:0}.preview .main .operations[data-v-83725cd2]{text-align:center;width:100%;color:var(--el-text-color-regular);flex-flow:wrap;justify-content:left;align-items:baseline;font-size:14px;display:flex;overflow:hidden scroll}.preview .main .operations.full[data-v-83725cd2]{height:70px}.preview .main .operations .btn-action[data-v-83725cd2]{margin-bottom:10px}
1
+ .menu[data-v-12b82bc3]{display:none}@media (width<=767px){.config[data-v-12b82bc3]{display:none}.result[data-v-12b82bc3]{width:100%}.menu[data-v-12b82bc3]{right:8px;top:calc(45px + var(--app-safe-area-top));z-index:1000;display:block;position:absolute}}.field[data-v-90ed8cff]{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.field .title[data-v-90ed8cff]{width:30%;margin:0;font-size:14px}.field .value[data-v-90ed8cff]{flex:1}.action-tabs[data-v-349937fd] .el-tabs__header{height:64px;margin:0}.action-tabs[data-v-349937fd] .el-tabs__nav-wrap:after{height:1px}.action-tabs[data-v-349937fd] .el-tabs__nav-scroll{height:64px;overflow:visible}.action-tabs[data-v-349937fd] .el-tabs__nav{width:100%;height:64px;transform:none!important}.action-tabs[data-v-349937fd] .el-tabs__nav-wrap{height:64px}.action-tabs[data-v-349937fd] .el-tabs__nav-prev,.action-tabs[data-v-349937fd] .el-tabs__nav-next,.action-tabs[data-v-349937fd] .el-tabs__active-bar{display:none}.action-tabs[data-v-349937fd] .el-tabs__item{letter-spacing:0;text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:break-word;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;min-width:0;height:64px;padding:0 6px;font-size:12px;line-height:16px}.action-tabs[data-v-349937fd] .el-tabs__item.is-active{border-bottom-color:var(--el-color-primary)}.title[data-v-28c472c4]{margin-bottom:10px;font-size:14px}.items[data-v-28c472c4]{flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;display:flex}.items .item[data-v-28c472c4]{border:1px solid var(--el-border-color);background-color:var(--el-fill-color-lighter);cursor:pointer;border-radius:var(--el-border-radius-base);flex-direction:column;align-items:center;width:48px;height:65px;transition:background-color .2s,border-color .2s;display:flex}.items .item .preview[data-v-28c472c4]{flex-direction:row;justify-content:center;align-items:center;width:30px;height:30px;margin-top:5px;margin-bottom:3px;display:flex}.items .item .preview .rect[data-v-28c472c4]{border:1px solid var(--el-border-color-lighter);border-radius:2px;width:20px;height:20px}.items .item .name[data-v-28c472c4]{color:var(--el-text-color-primary);font-size:12px;display:block}.items .item[data-v-28c472c4]:hover{background-color:var(--el-fill-color)}.items .item.active[data-v-28c472c4]{border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.items .item.active .rect[data-v-28c472c4]{border-color:var(--el-color-primary)}.title[data-v-4f7ed755]{width:30%;margin-bottom:0;font-size:14px}.btn.btn-upload[data-v-4f7ed755]{margin-top:8px}.upload-wrapper{flex-direction:column;align-items:flex-start;height:auto;display:flex}.upload-wrapper .el-upload-list{order:2;width:100%;margin:8px 0 0}.preview[data-v-32e97821]{text-align:left;flex-direction:row;width:100%;height:fit-content;margin-bottom:15px;display:flex}.preview .left[data-v-32e97821]{width:70px}.preview .left .avatar[data-v-32e97821]{border-radius:50%;width:50px;height:50px;margin:10px}.preview .main[data-v-32e97821]{flex:1;width:calc(100% - 70px);min-width:0;padding:10px 10px 0}.preview .main .bot[data-v-32e97821]{color:var(--el-color-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:0;margin-bottom:0;font-size:16px;font-weight:700;overflow:hidden}.preview .main .bot .datetime[data-v-32e97821]{color:var(--el-text-color-secondary);margin-left:10px;font-size:12px;font-weight:400}.preview .main .info[data-v-32e97821]{overflow:hidden}.preview .main .info .prompt[data-v-32e97821]{color:var(--el-text-color-regular);white-space:normal;word-break:break-word;overflow-wrap:anywhere;margin-bottom:10px;font-size:16px;font-weight:700}.preview .main .content[data-v-32e97821]{word-break:break-word;overflow-wrap:anywhere}.preview .main .content .el-alert[data-v-32e97821]{border-left-style:solid;border-left-width:2px}.preview .main .content .el-alert.task-metadata[data-v-32e97821] p{color:var(--el-text-color-regular)}.preview .main .content .el-alert.failure[data-v-32e97821]{border-color:var(--el-color-danger)}.preview .main .content .el-alert.success[data-v-32e97821]{border-color:var(--el-color-success)}.preview .main .content .el-alert.info[data-v-32e97821]{border-color:var(--el-color-info)}.preview .main .content .el-alert[data-v-32e97821] p:last-child{margin-bottom:0}.preview .main .operations[data-v-32e97821]{text-align:center;width:100%;color:var(--el-text-color-regular);flex-flow:wrap;justify-content:left;align-items:baseline;font-size:14px;display:flex;overflow:hidden scroll}.preview .main .operations.full[data-v-32e97821]{height:70px}.preview .main .operations .btn-action[data-v-32e97821]{margin-bottom:10px}
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,Jt as t,L as n,at as r,ht as i,j as a,mt as o,ot as s,tt as c,z as l}from"./vendor-chart-Dw-P17PN.js";import{n as u,t as d}from"./table-DrsKyeYQ.js";import{t as f}from"./card-D-4S-l7a.js";import{n as p,t as m}from"./row-KOzmQE1C.js";import{t as h}from"./pagination-CrPRHL7s.js";import{G as g,Tr as _}from"./index-DNz_lMrM.js";import{t as v}from"./CopyToClipboard-CUlDAZQC.js";var y=l({name:`ConsoleDistributionInvitees`,components:{Pagination:h,CopyToClipboard:v,ElRow:m,ElCol:p,ElTable:d,ElTableColumn:u,ElCard:f},data(){return{invitees:[],loading:!1,total:void 0,limit:10}},computed:{redirect(){return this.$route.query.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData()},methods:{onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{page:e}})},onFetchData(){this.loading=!0,Promise.all([this.onFetchInvitees()]).finally(()=>{this.loading=!1})},async onFetchInvitees(){let{data:e}=await _.getInvitees({limit:this.limit,offset:(this.page-1)*this.limit,ordering:`-created_at`});this.invitees=e.items,this.total=e.count}}}),b={class:`title`},x={class:`key`},S={class:`copy`},C={class:`description`},w={class:`description`},T={class:`description`},E={class:`created-at`},D={class:`pagination m-v-lg`};function O(l,u,d,f,p,m){let h=r(`el-col`),g=r(`el-row`),_=r(`copy-to-clipboard`),v=r(`el-table-column`),y=r(`el-table`),O=r(`el-card`),k=r(`pagination`),A=s(`loading`);return c(),a(g,{class:`panel`},{default:o(()=>[n(h,{span:24},{default:o(()=>[n(g,null,{default:o(()=>[n(h,{span:24},{default:o(()=>[e(`h2`,b,t(l.$t(`common.title.invitee`)),1)]),_:1})]),_:1}),n(g,null,{default:o(()=>[n(h,{span:24},{default:o(()=>[n(O,{shadow:`hover`},{default:o(()=>[i((c(),a(y,{data:l.invitees,stripe:``},{default:o(()=>[n(v,{prop:`id`,label:l.$t(`user.field.id`),"class-name":`text-center`,width:`350px`},{default:o(r=>[e(`span`,x,t(r.row.id),1),e(`span`,S,[n(_,{content:r.row.id},null,8,[`content`])])]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.username`),width:`300px`},{default:o(n=>[e(`span`,C,t(n.row?.username),1)]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.email`),width:`300px`},{default:o(n=>[e(`span`,w,t(n.row?.email),1)]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.nickname`),width:`200px`},{default:o(n=>[e(`span`,T,t(n.row.nickname),1)]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.dateJoined`)},{default:o(n=>[e(`span`,E,t(l.$dayjs.format(n.row.date_joined)),1)]),_:1},8,[`label`])]),_:1},8,[`data`])),[[A,l.loading]])]),_:1})]),_:1})]),_:1}),n(g,null,{default:o(()=>[n(h,{span:10,offset:14},{default:o(()=>[e(`div`,D,[n(k,{"current-page":l.page,"page-size":l.limit,total:l.total,onChange:l.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var k=g(y,[[`render`,O],[`__scopeId`,`data-v-b2200c49`]]);export{k as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,Jt as t,L as n,at as r,ht as i,j as a,mt as o,ot as s,tt as c,z as l}from"./vendor-chart-Dw-P17PN.js";import{n as u,t as d}from"./table-1P1mzhi4.js";import{t as f}from"./card-D-4S-l7a.js";import{n as p,t as m}from"./row-CoYwxMjN.js";import{t as h}from"./pagination-DCFtt8SX.js";import{J as g,Or as _}from"./index-DHGr0qfr.js";import{t as v}from"./CopyToClipboard-BovNTELl.js";var y=l({name:`ConsoleDistributionInvitees`,components:{Pagination:h,CopyToClipboard:v,ElRow:m,ElCol:p,ElTable:d,ElTableColumn:u,ElCard:f},data(){return{invitees:[],loading:!1,total:void 0,limit:10}},computed:{redirect(){return this.$route.query.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData()},methods:{onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{page:e}})},onFetchData(){this.loading=!0,Promise.all([this.onFetchInvitees()]).finally(()=>{this.loading=!1})},async onFetchInvitees(){let{data:e}=await _.getInvitees({limit:this.limit,offset:(this.page-1)*this.limit,ordering:`-created_at`});this.invitees=e.items,this.total=e.count}}}),b={class:`title`},x={class:`key`},S={class:`copy`},C={class:`description`},w={class:`description`},T={class:`description`},E={class:`created-at`},D={class:`pagination m-v-lg`};function O(l,u,d,f,p,m){let h=r(`el-col`),g=r(`el-row`),_=r(`copy-to-clipboard`),v=r(`el-table-column`),y=r(`el-table`),O=r(`el-card`),k=r(`pagination`),A=s(`loading`);return c(),a(g,{class:`panel`},{default:o(()=>[n(h,{span:24},{default:o(()=>[n(g,null,{default:o(()=>[n(h,{span:24},{default:o(()=>[e(`h2`,b,t(l.$t(`common.title.invitee`)),1)]),_:1})]),_:1}),n(g,null,{default:o(()=>[n(h,{span:24},{default:o(()=>[n(O,{shadow:`hover`},{default:o(()=>[i((c(),a(y,{data:l.invitees,stripe:``},{default:o(()=>[n(v,{prop:`id`,label:l.$t(`user.field.id`),"class-name":`text-center`,width:`350px`},{default:o(r=>[e(`span`,x,t(r.row.id),1),e(`span`,S,[n(_,{content:r.row.id},null,8,[`content`])])]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.username`),width:`300px`},{default:o(n=>[e(`span`,C,t(n.row?.username),1)]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.email`),width:`300px`},{default:o(n=>[e(`span`,w,t(n.row?.email),1)]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.nickname`),width:`200px`},{default:o(n=>[e(`span`,T,t(n.row.nickname),1)]),_:1},8,[`label`]),n(v,{label:l.$t(`user.field.dateJoined`)},{default:o(n=>[e(`span`,E,t(l.$dayjs.format(n.row.date_joined)),1)]),_:1},8,[`label`])]),_:1},8,[`data`])),[[A,l.loading]])]),_:1})]),_:1})]),_:1}),n(g,null,{default:o(()=>[n(h,{span:10,offset:14},{default:o(()=>[e(`div`,D,[n(k,{"current-page":l.page,"page-size":l.limit,total:l.total,onChange:l.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var k=g(y,[[`render`,O],[`__scopeId`,`data-v-b2200c49`]]);export{k as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,ht as c,j as l,mt as u,ot as ee,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{n as m,t as h}from"./table-DrsKyeYQ.js";import{t as g}from"./card-D-4S-l7a.js";import{n as _,t as v}from"./row-KOzmQE1C.js";import{t as y}from"./empty-xCRn_5sX.js";import{t as b}from"./pagination-CrPRHL7s.js";import{t as x}from"./skeleton-CoheJz5x.js";import{t as S}from"./switch-D_ODtpMv.js";import{Ei as C,Er as w,G as T,Hi as E,Ni as D,Wi as O,_i as k,at as A,dt as j,gi as M,jn as N,li as P,ui as F}from"./index-DNz_lMrM.js";import{t as I}from"./index.es-D6IJMicG.js";import{t as L}from"./CopyToClipboard-CUlDAZQC.js";var R=p({name:`ConsoleApplicationList`,components:{Pagination:b,CopyToClipboard:L,ElTable:h,ElRow:v,ElButton:O,ElCol:_,ElTag:E,ElSkeleton:x,ElSwitch:S,ElEmpty:y,ElTableColumn:m,ElCard:g,FontAwesomeIcon:I},data(){return{credentialType:P,serviceType:F,individualApplications:[],globalApplications:[],individualApplicationsTotal:void 0,globalApplicationsTotal:void 0,loading:!1,buying:!1,limit:10,form:{amount:1},active:{service:void 0,application:void 0}}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},showGlobalPayment(){return!N(this.$store.getters.site)}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onInitializeGlobalApplication(),this.onFetchData()},methods:{rowCanPay(e){return N(this.$store.getters.site)?!1:C()?(e?.packages||[]).some(e=>e?.metadata?.apple_product_id):!0},updateAllowConsumeGlobal(e,t){!e||!e.id||w.updateAllConsumeGlobal(e.id,{...e,allow_consume_global:!!t}).then(()=>{D.success(this.$t(`application.message.updateSuccessfully`).toString())}).catch(()=>{D.error(this.$t(`application.message.updateFailed`).toString())})},onGoUsage(e){this.$router.push({name:j,query:{application_id:e.id,type:e?.service?.type}})},onBuyMore(e){e?.id&&this.$router.push({name:A,params:{id:e.id}})},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchApplications(e=M.INDIVIDUAL){return new Promise((t,n)=>{w.getAll({limit:this.limit,...e===M.INDIVIDUAL?{offset:(this.page-1)*this.limit}:{},user_id:this.$store.getters.user.id,ordering:`-created_at`,type:k.USAGE,scope:e}).then(({data:n})=>{e===M.INDIVIDUAL?(this.individualApplications=n.items,this.individualApplicationsTotal=n.count):(this.globalApplications=n.items,this.globalApplicationsTotal=n.count),t(n)}).catch(e=>{D.error(this.$t(`application.message.fetchFailed`).toString()),n(e)})})},onFetchData(){this.loading=!0,Promise.all([this.onFetchApplications(M.INDIVIDUAL),this.onFetchApplications(M.GLOBAL)]).then(()=>{this.loading=!1}).catch(()=>{this.loading=!1})},onInitializeGlobalApplication(){w.create({type:k.USAGE,scope:M.GLOBAL,user_id:this.$store.getters.user.id}).finally(()=>{this.onFetchApplications(M.GLOBAL)})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`}}}),z={class:`title`},B={key:1,class:`summary-card`},V={class:`icon-wrapper`},H={class:`label`},U={class:`value`},W={class:`description`},G={key:1,class:`flex flex-row justify-between items-center gap-3`},K={class:`summary-card min-w-0 flex-1`},q={class:`flex justify-start items-center gap-2 mb-2 w-full`},te={class:`icon-wrapper !mb-0`},J={class:`text-[var(--el-text-color-regular)] text-[14px] truncate`},Y={class:`label`},X={class:`value`},Z={class:`description`},Q={class:`flex flex-col items-end gap-2 shrink-0`},ne={class:`copy`},re={key:0,class:`expired-at`},ie={class:`flex flex-wrap items-center justify-end gap-1`},ae={class:`application-cards block sm:hidden`},oe={class:`flex items-center gap-2 flex-wrap`},se={class:`application-card__name`},ce={class:`application-card__id`},le={class:`truncate`},ue={class:`application-card__row`},de={class:`label`},fe={class:`value`},pe={key:0,class:`application-card__row`},$={class:`label`},me={class:`value`},he={key:1,class:`application-card__row`},ge={class:`label`},_e={class:`flex items-center justify-end gap-2 mt-3`},ve={class:`pagination`};function ye(p,m,h,g,_,v){let y=s(`el-col`),b=s(`el-row`),x=s(`el-skeleton`),S=s(`font-awesome-icon`),C=s(`el-card`),w=s(`copy-to-clipboard`),T=s(`el-button`),E=s(`el-table-column`),D=s(`el-tag`),O=s(`el-switch`),k=s(`el-table`),A=s(`el-empty`),j=s(`pagination`),M=ee(`loading`);return f(),l(b,{class:`application-list`},{default:u(()=>[r(y,{span:24},{default:u(()=>[r(b,null,{default:u(()=>[r(y,{span:24},{default:u(()=>[e(`h2`,z,n(p.$t(`common.title.allApplications`)),1)]),_:1})]),_:1}),r(b,{gutter:15,class:`mb-3`},{default:u(()=>[r(y,{md:12,xs:24},{default:u(()=>[r(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:u(()=>[p.loading?(f(),l(x,{key:0})):(f(),a(`div`,B,[e(`div`,V,[r(S,{icon:`fa-solid fa-cubes-stacked`})]),e(`p`,H,n(p.$t(`application.title.count`)),1),e(`p`,U,n(p.individualApplicationsTotal),1),e(`p`,W,n(p.$t(`application.message.countDescription`)),1)]))]),_:1})]),_:1}),p.showGlobalPayment&&p.globalApplications?.length>0?(f(),l(y,{key:0,md:12,xs:24},{default:u(()=>[r(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:u(()=>[p.loading?(f(),l(x,{key:0})):(f(),a(`div`,G,[e(`div`,K,[e(`div`,q,[e(`div`,te,[r(S,{icon:`fa-solid fa-wallet`})]),e(`span`,J,[t(n(p.$t(`application.field.id`))+`: `+n(p.globalApplications?.[0]?.id)+` `,1),p.globalApplications?.[0]?.id?(f(),l(w,{key:0,content:p.globalApplications?.[0]?.id,class:`inline-block`},null,8,[`content`])):i(``,!0)])]),e(`p`,Y,n(p.$t(`application.title.globalBalance`)),1),e(`p`,X,n(p.globalApplications?.[0]?.remaining_amount?.toFixed(6)||`0.000000`)+` `+n(p.$t(`service.unit.credits`)),1),e(`p`,Z,n(p.$t(`application.message.globalBalanceDescription`)),1)]),e(`div`,Q,[r(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:m[0]||=e=>p.onGoUsage(p.globalApplications?.[0])},{default:u(()=>[r(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.usage`)),1)]),_:1}),p.showGlobalPayment?(f(),l(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:m[1]||=e=>p.onBuyMore(p.globalApplications?.[0])},{default:u(()=>[r(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.buyMore`)),1)]),_:1})):i(``,!0)])]))]),_:1})]),_:1})):i(``,!0)]),_:1}),r(b,null,{default:u(()=>[r(y,{span:24},{default:u(()=>[r(C,{shadow:`hover`,class:`applications-table-card hidden sm:block`},{default:u(()=>[c((f(),l(k,{data:p.individualApplications,stripe:``,class:`applications-table !min-h-[calc(100vh-420px)]`,"table-layout":`fixed`,"empty-text":p.$t(`common.message.noData`)},{default:u(()=>[r(E,{prop:`id`,label:p.$t(`application.field.id`),width:`200px`,"class-name":`text-center`},{default:u(t=>[e(`span`,null,n(t.row.id),1),e(`span`,ne,[r(w,{content:t?.row?.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),r(E,{label:p.$t(`application.field.type`),width:`90px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:u(e=>[e.row?.type===`Period`?(f(),l(D,{key:0,type:`success`,effect:`dark`,round:``},{default:u(()=>[t(n(p.$t(`application.type.period`)),1)]),_:1})):e.row?.type===`Usage`?(f(),l(D,{key:1,effect:`dark`,round:``},{default:u(()=>[t(n(p.$t(`application.type.usage`)),1)]),_:1})):i(``,!0)]),_:1},8,[`label`]),r(E,{label:p.$t(`application.field.name`),width:`180px`},{default:u(r=>[e(`span`,null,n(r.row?.service?.title),1),r.row?.role===`grantee`?(f(),l(D,{key:0,type:`info`,size:`small`,round:``,class:`ml-2`},{default:u(()=>[t(n(p.$t(`application.badge.shared`)),1)]),_:1})):i(``,!0)]),_:1},8,[`label`]),r(E,{prop:`remaining_amount`,label:p.$t(`application.field.remainingAmount`),width:`150px`,"class-name":`text-center`},{default:u(t=>[e(`span`,null,n(p.getRemainingAmount(t.row)),1)]),_:1},8,[`label`]),r(E,{prop:`used_amount`,label:p.$t(`application.field.usedAmount`),width:`150px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:u(t=>[e(`span`,null,n(p.getUsedAmount(t.row)),1)]),_:1},8,[`label`]),r(E,{prop:`allow_consume_global`,label:p.$t(`application.field.allowConsumeGlobal`),width:`120px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:u(e=>[e.row.service?.type===p.serviceType.API?(f(),l(O,{key:0,modelValue:e.row.allow_consume_global,"onUpdate:modelValue":t=>e.row.allow_consume_global=t,"active-value":!0,"inactive-value":!1,onChange:t=>p.updateAllowConsumeGlobal(e.row,t)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])):i(``,!0)]),_:1},8,[`label`]),r(E,{label:p.$t(`application.field.expiredAt`),width:`180px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:u(e=>[e.row.expired_at?(f(),a(`span`,re,n(p.$dayjs.format(e.row.expired_at)),1)):i(``,!0)]),_:1},8,[`label`]),r(E,{fixed:`right`,width:`200px`},{default:u(a=>[e(`div`,ie,[r(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:e=>p.onGoUsage(a?.row)},{default:u(()=>[r(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),p.rowCanPay(a?.row)?(f(),l(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:e=>p.onBuyMore(a?.row)},{default:u(()=>[r(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):i(``,!0)])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[M,p.loading]])]),_:1}),e(`div`,ae,[p.loading?(f(),l(x,{key:0,rows:4,animated:``})):(f(),a(o,{key:1},[p.individualApplications?.length?(f(!0),a(o,{key:1},d(p.individualApplications,o=>(f(),l(C,{key:o.id,shadow:`hover`,class:`application-card mb-2`,"body-style":{padding:`14px 16px`}},{default:u(()=>[e(`div`,oe,[e(`span`,se,n(o?.service?.title),1),o?.type===`Period`?(f(),l(D,{key:0,type:`success`,effect:`dark`,size:`small`,round:``},{default:u(()=>[t(n(p.$t(`application.type.period`)),1)]),_:1})):o?.type===`Usage`?(f(),l(D,{key:1,effect:`dark`,size:`small`,round:``},{default:u(()=>[t(n(p.$t(`application.type.usage`)),1)]),_:1})):i(``,!0),o?.role===`grantee`?(f(),l(D,{key:2,type:`info`,size:`small`,round:``},{default:u(()=>[t(n(p.$t(`application.badge.shared`)),1)]),_:1})):i(``,!0)]),e(`div`,ce,[e(`span`,le,n(p.$t(`application.field.id`))+`: `+n(o.id),1),r(w,{content:o.id,class:`inline-block shrink-0`},null,8,[`content`])]),e(`div`,ue,[e(`span`,de,n(p.$t(`application.field.remainingAmount`)),1),e(`span`,fe,n(p.getRemainingAmount(o)),1)]),o?.expired_at?(f(),a(`div`,pe,[e(`span`,$,n(p.$t(`application.field.expiredAt`)),1),e(`span`,me,n(p.$dayjs.format(o.expired_at)),1)])):i(``,!0),o.service?.type===p.serviceType.API?(f(),a(`div`,he,[e(`span`,ge,n(p.$t(`application.field.allowConsumeGlobal`)),1),r(O,{modelValue:o.allow_consume_global,"onUpdate:modelValue":e=>o.allow_consume_global=e,"active-value":!0,"inactive-value":!1,onChange:e=>p.updateAllowConsumeGlobal(o,e)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])])):i(``,!0),e(`div`,_e,[r(T,{class:`!m-0 !px-3`,size:`small`,round:``,onClick:e=>p.onGoUsage(o)},{default:u(()=>[r(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),p.rowCanPay(o)?(f(),l(T,{key:0,class:`!m-0 !px-3`,type:`primary`,round:``,size:`small`,onClick:e=>p.onBuyMore(o)},{default:u(()=>[r(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):i(``,!0)])]),_:2},1024))),128)):(f(),l(A,{key:0,description:p.$t(`common.message.noData`)},null,8,[`description`]))],64))])]),_:1})]),_:1}),r(b,null,{default:u(()=>[r(y,{span:24},{default:u(()=>[e(`div`,ve,[r(j,{"current-page":p.page,"page-size":p.limit,total:p.individualApplicationsTotal,onChange:p.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var be=T(R,[[`render`,ye],[`__scopeId`,`data-v-29e1e6d7`]]);export{be as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,T as o,at as s,ht as c,j as l,mt as u,ot as ee,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{n as m,t as h}from"./table-1P1mzhi4.js";import{t as g}from"./card-D-4S-l7a.js";import{n as _,t as v}from"./row-CoYwxMjN.js";import{t as y}from"./empty-xCRn_5sX.js";import{t as b}from"./pagination-DCFtt8SX.js";import{t as x}from"./skeleton-CoheJz5x.js";import{t as S}from"./switch-DcEkrwHo.js";import{Ii as C,J as w,Ji as T,Pn as E,Xi as D,bi as O,ct as k,fi as A,ki as j,kr as M,mt as N,pi as P,yi as F}from"./index-DHGr0qfr.js";import{t as I}from"./index.es-J-PBjzcR.js";import{t as L}from"./CopyToClipboard-BovNTELl.js";var R=p({name:`ConsoleApplicationList`,components:{Pagination:b,CopyToClipboard:L,ElTable:h,ElRow:v,ElButton:D,ElCol:_,ElTag:T,ElSkeleton:x,ElSwitch:S,ElEmpty:y,ElTableColumn:m,ElCard:g,FontAwesomeIcon:I},data(){return{credentialType:A,serviceType:P,individualApplications:[],globalApplications:[],individualApplicationsTotal:void 0,globalApplicationsTotal:void 0,loading:!1,buying:!1,limit:10,form:{amount:1},active:{service:void 0,application:void 0}}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},showGlobalPayment(){return!E(this.$store.getters.site)}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onInitializeGlobalApplication(),this.onFetchData()},methods:{rowCanPay(e){return E(this.$store.getters.site)?!1:j()?(e?.packages||[]).some(e=>e?.metadata?.apple_product_id):!0},updateAllowConsumeGlobal(e,t){!e||!e.id||M.updateAllConsumeGlobal(e.id,{...e,allow_consume_global:!!t}).then(()=>{C.success(this.$t(`application.message.updateSuccessfully`).toString())}).catch(()=>{C.error(this.$t(`application.message.updateFailed`).toString())})},onGoUsage(e){this.$router.push({name:N,query:{application_id:e.id,type:e?.service?.type}})},onBuyMore(e){e?.id&&this.$router.push({name:k,params:{id:e.id}})},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchApplications(e=F.INDIVIDUAL){return new Promise((t,n)=>{M.getAll({limit:this.limit,...e===F.INDIVIDUAL?{offset:(this.page-1)*this.limit}:{},user_id:this.$store.getters.user.id,ordering:`-created_at`,type:O.USAGE,scope:e}).then(({data:n})=>{e===F.INDIVIDUAL?(this.individualApplications=n.items,this.individualApplicationsTotal=n.count):(this.globalApplications=n.items,this.globalApplicationsTotal=n.count),t(n)}).catch(e=>{C.error(this.$t(`application.message.fetchFailed`).toString()),n(e)})})},onFetchData(){this.loading=!0,Promise.all([this.onFetchApplications(F.INDIVIDUAL),this.onFetchApplications(F.GLOBAL)]).then(()=>{this.loading=!1}).catch(()=>{this.loading=!1})},onInitializeGlobalApplication(){M.create({type:O.USAGE,scope:F.GLOBAL,user_id:this.$store.getters.user.id}).finally(()=>{this.onFetchApplications(F.GLOBAL)})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`}}}),z={class:`title`},B={key:1,class:`summary-card`},V={class:`icon-wrapper`},H={class:`label`},U={class:`value`},W={class:`description`},G={key:1,class:`flex flex-row justify-between items-center gap-3`},K={class:`summary-card min-w-0 flex-1`},q={class:`flex justify-start items-center gap-2 mb-2 w-full`},te={class:`icon-wrapper !mb-0`},J={class:`text-[var(--el-text-color-regular)] text-[14px] truncate`},Y={class:`label`},X={class:`value`},Z={class:`description`},Q={class:`flex flex-col items-end gap-2 shrink-0`},ne={class:`copy`},re={key:0,class:`expired-at`},ie={class:`flex flex-wrap items-center justify-end gap-1`},ae={class:`application-cards block sm:hidden`},oe={class:`flex items-center gap-2 flex-wrap`},se={class:`application-card__name`},ce={class:`application-card__id`},le={class:`truncate`},ue={class:`application-card__row`},de={class:`label`},fe={class:`value`},pe={key:0,class:`application-card__row`},$={class:`label`},me={class:`value`},he={key:1,class:`application-card__row`},ge={class:`label`},_e={class:`flex items-center justify-end gap-2 mt-3`},ve={class:`pagination`};function ye(p,m,h,g,_,v){let y=s(`el-col`),b=s(`el-row`),x=s(`el-skeleton`),S=s(`font-awesome-icon`),C=s(`el-card`),w=s(`copy-to-clipboard`),T=s(`el-button`),E=s(`el-table-column`),D=s(`el-tag`),O=s(`el-switch`),k=s(`el-table`),A=s(`el-empty`),j=s(`pagination`),M=ee(`loading`);return f(),l(b,{class:`application-list`},{default:u(()=>[r(y,{span:24},{default:u(()=>[r(b,null,{default:u(()=>[r(y,{span:24},{default:u(()=>[e(`h2`,z,n(p.$t(`common.title.allApplications`)),1)]),_:1})]),_:1}),r(b,{gutter:15,class:`mb-3`},{default:u(()=>[r(y,{md:12,xs:24},{default:u(()=>[r(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:u(()=>[p.loading?(f(),l(x,{key:0})):(f(),a(`div`,B,[e(`div`,V,[r(S,{icon:`fa-solid fa-cubes-stacked`})]),e(`p`,H,n(p.$t(`application.title.count`)),1),e(`p`,U,n(p.individualApplicationsTotal),1),e(`p`,W,n(p.$t(`application.message.countDescription`)),1)]))]),_:1})]),_:1}),p.showGlobalPayment&&p.globalApplications?.length>0?(f(),l(y,{key:0,md:12,xs:24},{default:u(()=>[r(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:u(()=>[p.loading?(f(),l(x,{key:0})):(f(),a(`div`,G,[e(`div`,K,[e(`div`,q,[e(`div`,te,[r(S,{icon:`fa-solid fa-wallet`})]),e(`span`,J,[t(n(p.$t(`application.field.id`))+`: `+n(p.globalApplications?.[0]?.id)+` `,1),p.globalApplications?.[0]?.id?(f(),l(w,{key:0,content:p.globalApplications?.[0]?.id,class:`inline-block`},null,8,[`content`])):i(``,!0)])]),e(`p`,Y,n(p.$t(`application.title.globalBalance`)),1),e(`p`,X,n(p.globalApplications?.[0]?.remaining_amount?.toFixed(6)||`0.000000`)+` `+n(p.$t(`service.unit.credits`)),1),e(`p`,Z,n(p.$t(`application.message.globalBalanceDescription`)),1)]),e(`div`,Q,[r(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:m[0]||=e=>p.onGoUsage(p.globalApplications?.[0])},{default:u(()=>[r(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.usage`)),1)]),_:1}),p.showGlobalPayment?(f(),l(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:m[1]||=e=>p.onBuyMore(p.globalApplications?.[0])},{default:u(()=>[r(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.buyMore`)),1)]),_:1})):i(``,!0)])]))]),_:1})]),_:1})):i(``,!0)]),_:1}),r(b,null,{default:u(()=>[r(y,{span:24},{default:u(()=>[r(C,{shadow:`hover`,class:`applications-table-card hidden sm:block`},{default:u(()=>[c((f(),l(k,{data:p.individualApplications,stripe:``,class:`applications-table !min-h-[calc(100vh-420px)]`,"table-layout":`fixed`,"empty-text":p.$t(`common.message.noData`)},{default:u(()=>[r(E,{prop:`id`,label:p.$t(`application.field.id`),width:`200px`,"class-name":`text-center`},{default:u(t=>[e(`span`,null,n(t.row.id),1),e(`span`,ne,[r(w,{content:t?.row?.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),r(E,{label:p.$t(`application.field.type`),width:`90px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:u(e=>[e.row?.type===`Period`?(f(),l(D,{key:0,type:`success`,effect:`dark`,round:``},{default:u(()=>[t(n(p.$t(`application.type.period`)),1)]),_:1})):e.row?.type===`Usage`?(f(),l(D,{key:1,effect:`dark`,round:``},{default:u(()=>[t(n(p.$t(`application.type.usage`)),1)]),_:1})):i(``,!0)]),_:1},8,[`label`]),r(E,{label:p.$t(`application.field.name`),width:`180px`},{default:u(r=>[e(`span`,null,n(r.row?.service?.title),1),r.row?.role===`grantee`?(f(),l(D,{key:0,type:`info`,size:`small`,round:``,class:`ml-2`},{default:u(()=>[t(n(p.$t(`application.badge.shared`)),1)]),_:1})):i(``,!0)]),_:1},8,[`label`]),r(E,{prop:`remaining_amount`,label:p.$t(`application.field.remainingAmount`),width:`150px`,"class-name":`text-center`},{default:u(t=>[e(`span`,null,n(p.getRemainingAmount(t.row)),1)]),_:1},8,[`label`]),r(E,{prop:`used_amount`,label:p.$t(`application.field.usedAmount`),width:`150px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:u(t=>[e(`span`,null,n(p.getUsedAmount(t.row)),1)]),_:1},8,[`label`]),r(E,{prop:`allow_consume_global`,label:p.$t(`application.field.allowConsumeGlobal`),width:`120px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:u(e=>[e.row.service?.type===p.serviceType.API?(f(),l(O,{key:0,modelValue:e.row.allow_consume_global,"onUpdate:modelValue":t=>e.row.allow_consume_global=t,"active-value":!0,"inactive-value":!1,onChange:t=>p.updateAllowConsumeGlobal(e.row,t)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])):i(``,!0)]),_:1},8,[`label`]),r(E,{label:p.$t(`application.field.expiredAt`),width:`180px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:u(e=>[e.row.expired_at?(f(),a(`span`,re,n(p.$dayjs.format(e.row.expired_at)),1)):i(``,!0)]),_:1},8,[`label`]),r(E,{fixed:`right`,width:`200px`},{default:u(a=>[e(`div`,ie,[r(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:e=>p.onGoUsage(a?.row)},{default:u(()=>[r(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),p.rowCanPay(a?.row)?(f(),l(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:e=>p.onBuyMore(a?.row)},{default:u(()=>[r(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):i(``,!0)])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[M,p.loading]])]),_:1}),e(`div`,ae,[p.loading?(f(),l(x,{key:0,rows:4,animated:``})):(f(),a(o,{key:1},[p.individualApplications?.length?(f(!0),a(o,{key:1},d(p.individualApplications,o=>(f(),l(C,{key:o.id,shadow:`hover`,class:`application-card mb-2`,"body-style":{padding:`14px 16px`}},{default:u(()=>[e(`div`,oe,[e(`span`,se,n(o?.service?.title),1),o?.type===`Period`?(f(),l(D,{key:0,type:`success`,effect:`dark`,size:`small`,round:``},{default:u(()=>[t(n(p.$t(`application.type.period`)),1)]),_:1})):o?.type===`Usage`?(f(),l(D,{key:1,effect:`dark`,size:`small`,round:``},{default:u(()=>[t(n(p.$t(`application.type.usage`)),1)]),_:1})):i(``,!0),o?.role===`grantee`?(f(),l(D,{key:2,type:`info`,size:`small`,round:``},{default:u(()=>[t(n(p.$t(`application.badge.shared`)),1)]),_:1})):i(``,!0)]),e(`div`,ce,[e(`span`,le,n(p.$t(`application.field.id`))+`: `+n(o.id),1),r(w,{content:o.id,class:`inline-block shrink-0`},null,8,[`content`])]),e(`div`,ue,[e(`span`,de,n(p.$t(`application.field.remainingAmount`)),1),e(`span`,fe,n(p.getRemainingAmount(o)),1)]),o?.expired_at?(f(),a(`div`,pe,[e(`span`,$,n(p.$t(`application.field.expiredAt`)),1),e(`span`,me,n(p.$dayjs.format(o.expired_at)),1)])):i(``,!0),o.service?.type===p.serviceType.API?(f(),a(`div`,he,[e(`span`,ge,n(p.$t(`application.field.allowConsumeGlobal`)),1),r(O,{modelValue:o.allow_consume_global,"onUpdate:modelValue":e=>o.allow_consume_global=e,"active-value":!0,"inactive-value":!1,onChange:e=>p.updateAllowConsumeGlobal(o,e)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])])):i(``,!0),e(`div`,_e,[r(T,{class:`!m-0 !px-3`,size:`small`,round:``,onClick:e=>p.onGoUsage(o)},{default:u(()=>[r(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),p.rowCanPay(o)?(f(),l(T,{key:0,class:`!m-0 !px-3`,type:`primary`,round:``,size:`small`,onClick:e=>p.onBuyMore(o)},{default:u(()=>[r(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),t(` `+n(p.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):i(``,!0)])]),_:2},1024))),128)):(f(),l(A,{key:0,description:p.$t(`common.message.noData`)},null,8,[`description`]))],64))])]),_:1})]),_:1}),r(b,null,{default:u(()=>[r(y,{span:24},{default:u(()=>[e(`div`,ve,[r(j,{"current-page":p.page,"page-size":p.limit,total:p.individualApplicationsTotal,onChange:p.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var be=w(R,[[`render`,ye],[`__scopeId`,`data-v-29e1e6d7`]]);export{be as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,N as i,T as a,at as o,ht as s,j as c,mt as l,ot as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{r as m,t as h}from"./select-ruot-XV3.js";import{n as g,t as _}from"./table-DrsKyeYQ.js";import{t as v}from"./card-D-4S-l7a.js";import{t as y}from"./date-picker-BY8LUdJF.js";import{n as b,t as x}from"./row-KOzmQE1C.js";import{t as S}from"./pagination-CrPRHL7s.js";import{t as C}from"./skeleton-CoheJz5x.js";import{G as w,Hi as T,Wi as E,di as D,gr as O,un as k}from"./index-DNz_lMrM.js";import{t as A}from"./index.es-D6IJMicG.js";import{t as j}from"./CopyToClipboard-CUlDAZQC.js";var M={total_count:0,total_spent:0,state_counts:{}},N=p({name:`ConsoleOrderList`,components:{Pagination:S,CopyToClipboard:j,ElRow:x,ElCol:b,ElTable:_,ElTableColumn:g,ElButton:E,ElTag:T,ElCard:v,ElSelect:m,ElOption:h,ElDatePicker:y,ElSkeleton:C,FontAwesomeIcon:A},data(){return{OrderState:D,orders:[],loading:!1,total:void 0,limit:10,filterState:this.$route.query.state?.toString()||``,filterPayWay:this.$route.query.pay_way?.toString()||``,createdAtRange:(()=>{let e=this.$route.query.created_at_from?.toString(),t=this.$route.query.created_at_to?.toString();if(e&&t)return[new Date(e),new Date(t)]})(),summary:{...M},summaryLoading:!1,exporting:!1,shortcuts:[{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}]}},computed:{page(){return parseInt(this.$route.query.page?.toString()||`1`)},stateOptions(){return[{value:D.PENDING,label:this.$t(`order.state.pending`)},{value:D.FINISHED,label:this.$t(`order.state.finished`)},{value:D.PAID,label:this.$t(`order.state.paid`)},{value:D.EXPIRED,label:this.$t(`order.state.expired`)},{value:D.FAILED,label:this.$t(`order.state.failed`)},{value:D.REFUNDED,label:this.$t(`order.state.refunded`)}]},payWayOptions(){return[{value:`WechatPay`,label:this.$t(`order.title.wechatPay`)},{value:`Stripe`,label:this.$t(`order.title.stripe`)},{value:`AliPay`,label:this.$t(`order.title.aliPay`)},{value:`X402`,label:this.$t(`order.title.x402`)},{value:`PayPal`,label:this.$t(`order.title.paypal`)}]},filterQuery(){let e={user_id:this.$store.getters.user?.id};return this.filterState&&(e.state=this.filterState),this.filterPayWay&&(e.pay_way=this.filterPayWay),this.createdAtRange?.[0]&&(e.created_at_from=this.createdAtRange[0]),this.createdAtRange?.[1]&&(e.created_at_to=this.createdAtRange[1]),e}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData(),this.onFetchSummary()},methods:{getPriceString:k,stateTagType(e){return e===D.FINISHED||e===D.PAID?`success`:e===D.EXPIRED||e===D.FAILED?`danger`:e===D.REFUNDED?`warning`:`info`},stateLabel(e){return{[D.PENDING]:this.$t(`order.state.pending`),[D.PAID]:this.$t(`order.state.paid`),[D.FINISHED]:this.$t(`order.state.finished`),[D.EXPIRED]:this.$t(`order.state.expired`),[D.FAILED]:this.$t(`order.state.failed`),[D.REFUNDED]:this.$t(`order.state.refunded`)}[e]||e},isPendingAction(e){return e!==D.PAID&&e!==D.FINISHED&&e!==D.EXPIRED&&e!==D.FAILED&&e!==D.REFUNDED},goToDetail(e){this.$router.push({name:`console-order-detail`,params:{id:e}})},async onFilterChange(){await this.$router.push({name:this.$route.name?.toString(),query:{page:1,...this.filterState?{state:this.filterState}:{},...this.filterPayWay?{pay_way:this.filterPayWay}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0].toISOString()}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1].toISOString()}:{}}}),this.onFetchData(),this.onFetchSummary()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchData(){this.loading=!0,O.getAll({ordering:`-created_at`,limit:this.limit,offset:(this.page-1)*this.limit,...this.filterQuery}).then(({data:e})=>{this.orders=e.items,this.total=e.count}).catch(()=>{}).finally(()=>{this.loading=!1})},onFetchSummary(){this.summaryLoading=!0,O.getSummary(this.filterQuery).then(({data:e})=>{this.summary=e}).catch(()=>{this.summary={...M}}).finally(()=>{this.summaryLoading=!1})},onExport(){this.exporting=!0,O.exportCsv(this.filterQuery).then(({data:e})=>{let t=window.URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`orders.csv`,n.click(),window.URL.revokeObjectURL(t)}).catch(()=>{}).finally(()=>{this.exporting=!1})}}}),P={class:`title`},F={key:1,class:`card-content`},I={class:`icon-wrapper`},L={class:`description`},R={class:`value`},z={key:1,class:`card-content`},B={class:`icon-wrapper`},V={class:`description`},H={class:`value`},U={key:1,class:`card-content`},W={class:`icon-wrapper`},ee={class:`description`},G={class:`value`},K={key:1,class:`card-content`},q={class:`icon-wrapper`},J={class:`description`},Y={class:`value`},X={class:`filter-row mb-3`},Z={class:`key`},Q={class:`cursor-pointer`},$={class:`price`},te={class:`description`},ne={class:`text-gray-500`},re={class:`created-at`},ie={class:`flex items-center justify-center flex-wrap`},ae={class:`float-right`};function oe(p,m,h,g,_,v){let y=o(`el-col`),b=o(`el-row`),x=o(`el-skeleton`),S=o(`font-awesome-icon`),C=o(`el-card`),w=o(`el-option`),T=o(`el-select`),E=o(`el-date-picker`),D=o(`el-button`),O=o(`copy-to-clipboard`),k=o(`el-table-column`),A=o(`el-tag`),j=o(`el-table`),M=o(`pagination`),N=u(`loading`);return f(),c(b,{class:`panel`},{default:l(()=>[r(y,{span:24},{default:l(()=>[r(b,null,{default:l(()=>[r(y,{span:24},{default:l(()=>[e(`h2`,P,n(p.$t(`common.title.allOrders`)),1)]),_:1})]),_:1}),r(b,{gutter:16},{default:l(()=>[r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,F,[e(`div`,I,[r(S,{icon:`fa-solid fa-receipt`,class:`icon`})]),e(`p`,L,n(p.$t(`order.title.totalOrders`)),1),e(`p`,R,n(p.summary.total_count),1)]))]),_:1})]),_:1}),r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,z,[e(`div`,B,[r(S,{icon:`fa-solid fa-dollar-sign`,class:`icon`})]),e(`p`,V,n(p.$t(`order.title.totalSpent`)),1),e(`p`,H,n(p.getPriceString({value:p.summary.total_spent})),1)]))]),_:1})]),_:1}),r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,U,[e(`div`,W,[r(S,{icon:`fa-solid fa-check-circle`,class:`icon`})]),e(`p`,ee,n(p.$t(`order.title.finishedOrders`)),1),e(`p`,G,n(p.summary.state_counts?.Finished||0),1)]))]),_:1})]),_:1}),r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,K,[e(`div`,q,[r(S,{icon:`fa-solid fa-clock`,class:`icon`})]),e(`p`,J,n(p.$t(`order.title.pendingOrders`)),1),e(`p`,Y,n(p.summary.state_counts?.Pending||0),1)]))]),_:1})]),_:1})]),_:1}),e(`div`,X,[r(T,{modelValue:p.filterState,"onUpdate:modelValue":m[0]||=e=>p.filterState=e,clearable:``,placeholder:p.$t(`order.field.allStates`),class:`filter-select`,onChange:p.onFilterChange},{default:l(()=>[(f(!0),i(a,null,d(p.stateOptions,e=>(f(),c(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),r(T,{modelValue:p.filterPayWay,"onUpdate:modelValue":m[1]||=e=>p.filterPayWay=e,clearable:``,placeholder:p.$t(`order.field.allPayWays`),class:`filter-select`,onChange:p.onFilterChange},{default:l(()=>[(f(!0),i(a,null,d(p.payWayOptions,e=>(f(),c(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),r(E,{modelValue:p.createdAtRange,"onUpdate:modelValue":m[2]||=e=>p.createdAtRange=e,type:`datetimerange`,shortcuts:p.shortcuts,"range-separator":p.$t(`usage.placeholder.to`),"start-placeholder":p.$t(`usage.placeholder.startDate`),"end-placeholder":p.$t(`usage.placeholder.endDate`),onChange:p.onFilterChange},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`]),r(D,{type:`primary`,plain:``,loading:p.exporting,onClick:p.onExport},{default:l(()=>[r(S,{icon:`fa-solid fa-file-export`,class:`mr-1`}),t(` `+n(p.$t(`order.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),r(b,null,{default:l(()=>[r(y,{span:24},{default:l(()=>[r(C,{shadow:`hover`},{default:l(()=>[s((f(),c(j,{data:p.orders,stripe:``,"empty-text":p.$t(`common.message.noData`),class:`min-h-[calc(100vh-450px)] mb-[20px]`},{default:l(()=>[r(k,{prop:`id`,label:p.$t(`order.field.id`),"class-name":`text-center`,width:`200px`},{default:l(t=>[e(`span`,Z,n(t.row.id),1),e(`span`,Q,[r(O,{content:t.row.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.price`),width:`110px`,align:`center`},{default:l(t=>[e(`span`,$,n(p.getPriceString({value:t.row?.price})),1)]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.description`),"min-width":`220px`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:l(t=>[e(`span`,te,n(t.row.description),1)]),_:1},8,[`label`]),r(k,{prop:`state`,label:p.$t(`order.field.state`),width:`130px`,align:`center`},{default:l(e=>[r(A,{type:p.stateTagType(e.row.state),class:`mx-1`,effect:`dark`,round:``,size:`small`},{default:l(()=>[t(n(p.stateLabel(e.row.state)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.payWay`),width:`120px`,align:`center`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:l(t=>[e(`span`,ne,n(t.row.pay_way||`-`),1)]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.createdAt`),width:`200px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:l(t=>[e(`span`,re,n(p.$dayjs.format(t.row.created_at)),1)]),_:1},8,[`label`]),r(k,{"min-width":`130px`,fixed:`right`},{default:l(r=>[e(`div`,ie,[p.isPendingAction(r.row.state)?(f(),c(D,{key:0,type:`primary`,size:`small`,onClick:e=>p.goToDetail(r.row.id)},{default:l(()=>[t(n(p.$t(`order.button.continuePay`)),1)]),_:1},8,[`onClick`])):(f(),c(D,{key:1,size:`small`,onClick:e=>p.goToDetail(r.row.id)},{default:l(()=>[t(n(p.$t(`order.button.checkDetail`)),1)]),_:1},8,[`onClick`]))])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[N,p.loading]])]),_:1})]),_:1})]),_:1}),r(b,null,{default:l(()=>[r(y,{span:10,offset:14},{default:l(()=>[e(`div`,ae,[r(M,{"current-page":p.page,"page-size":p.limit,total:p.total,onChange:p.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var se=w(N,[[`render`,oe],[`__scopeId`,`data-v-452d97b9`]]);export{se as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,N as i,T as a,at as o,ht as s,j as c,mt as l,ot as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{r as m,t as h}from"./select-Dl8tgFjL.js";import{n as g,t as _}from"./table-1P1mzhi4.js";import{t as v}from"./card-D-4S-l7a.js";import{t as y}from"./date-picker-CUsRrFGr.js";import{n as b,t as x}from"./row-CoYwxMjN.js";import{t as S}from"./pagination-DCFtt8SX.js";import{t as C}from"./skeleton-CoheJz5x.js";import{J as w,Ji as T,Xi as E,mi as D,pn as O,yr as k}from"./index-DHGr0qfr.js";import{t as A}from"./index.es-J-PBjzcR.js";import{t as j}from"./CopyToClipboard-BovNTELl.js";var M={total_count:0,total_spent:0,state_counts:{}},N=p({name:`ConsoleOrderList`,components:{Pagination:S,CopyToClipboard:j,ElRow:x,ElCol:b,ElTable:_,ElTableColumn:g,ElButton:E,ElTag:T,ElCard:v,ElSelect:m,ElOption:h,ElDatePicker:y,ElSkeleton:C,FontAwesomeIcon:A},data(){return{OrderState:D,orders:[],loading:!1,total:void 0,limit:10,filterState:this.$route.query.state?.toString()||``,filterPayWay:this.$route.query.pay_way?.toString()||``,createdAtRange:(()=>{let e=this.$route.query.created_at_from?.toString(),t=this.$route.query.created_at_to?.toString();if(e&&t)return[new Date(e),new Date(t)]})(),summary:{...M},summaryLoading:!1,exporting:!1,shortcuts:[{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}]}},computed:{page(){return parseInt(this.$route.query.page?.toString()||`1`)},stateOptions(){return[{value:D.PENDING,label:this.$t(`order.state.pending`)},{value:D.FINISHED,label:this.$t(`order.state.finished`)},{value:D.PAID,label:this.$t(`order.state.paid`)},{value:D.EXPIRED,label:this.$t(`order.state.expired`)},{value:D.FAILED,label:this.$t(`order.state.failed`)},{value:D.REFUNDED,label:this.$t(`order.state.refunded`)}]},payWayOptions(){return[{value:`WechatPay`,label:this.$t(`order.title.wechatPay`)},{value:`Stripe`,label:this.$t(`order.title.stripe`)},{value:`AliPay`,label:this.$t(`order.title.aliPay`)},{value:`X402`,label:this.$t(`order.title.x402`)},{value:`PayPal`,label:this.$t(`order.title.paypal`)}]},filterQuery(){let e={user_id:this.$store.getters.user?.id};return this.filterState&&(e.state=this.filterState),this.filterPayWay&&(e.pay_way=this.filterPayWay),this.createdAtRange?.[0]&&(e.created_at_from=this.createdAtRange[0]),this.createdAtRange?.[1]&&(e.created_at_to=this.createdAtRange[1]),e}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData(),this.onFetchSummary()},methods:{getPriceString:O,stateTagType(e){return e===D.FINISHED||e===D.PAID?`success`:e===D.EXPIRED||e===D.FAILED?`danger`:e===D.REFUNDED?`warning`:`info`},stateLabel(e){return{[D.PENDING]:this.$t(`order.state.pending`),[D.PAID]:this.$t(`order.state.paid`),[D.FINISHED]:this.$t(`order.state.finished`),[D.EXPIRED]:this.$t(`order.state.expired`),[D.FAILED]:this.$t(`order.state.failed`),[D.REFUNDED]:this.$t(`order.state.refunded`)}[e]||e},isPendingAction(e){return e!==D.PAID&&e!==D.FINISHED&&e!==D.EXPIRED&&e!==D.FAILED&&e!==D.REFUNDED},goToDetail(e){this.$router.push({name:`console-order-detail`,params:{id:e}})},async onFilterChange(){await this.$router.push({name:this.$route.name?.toString(),query:{page:1,...this.filterState?{state:this.filterState}:{},...this.filterPayWay?{pay_way:this.filterPayWay}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0].toISOString()}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1].toISOString()}:{}}}),this.onFetchData(),this.onFetchSummary()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchData(){this.loading=!0,k.getAll({ordering:`-created_at`,limit:this.limit,offset:(this.page-1)*this.limit,...this.filterQuery}).then(({data:e})=>{this.orders=e.items,this.total=e.count}).catch(()=>{}).finally(()=>{this.loading=!1})},onFetchSummary(){this.summaryLoading=!0,k.getSummary(this.filterQuery).then(({data:e})=>{this.summary=e}).catch(()=>{this.summary={...M}}).finally(()=>{this.summaryLoading=!1})},onExport(){this.exporting=!0,k.exportCsv(this.filterQuery).then(({data:e})=>{let t=window.URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`orders.csv`,n.click(),window.URL.revokeObjectURL(t)}).catch(()=>{}).finally(()=>{this.exporting=!1})}}}),P={class:`title`},F={key:1,class:`card-content`},I={class:`icon-wrapper`},L={class:`description`},R={class:`value`},z={key:1,class:`card-content`},B={class:`icon-wrapper`},V={class:`description`},H={class:`value`},U={key:1,class:`card-content`},W={class:`icon-wrapper`},ee={class:`description`},G={class:`value`},K={key:1,class:`card-content`},q={class:`icon-wrapper`},J={class:`description`},Y={class:`value`},X={class:`filter-row mb-3`},Z={class:`key`},Q={class:`cursor-pointer`},$={class:`price`},te={class:`description`},ne={class:`text-gray-500`},re={class:`created-at`},ie={class:`flex items-center justify-center flex-wrap`},ae={class:`float-right`};function oe(p,m,h,g,_,v){let y=o(`el-col`),b=o(`el-row`),x=o(`el-skeleton`),S=o(`font-awesome-icon`),C=o(`el-card`),w=o(`el-option`),T=o(`el-select`),E=o(`el-date-picker`),D=o(`el-button`),O=o(`copy-to-clipboard`),k=o(`el-table-column`),A=o(`el-tag`),j=o(`el-table`),M=o(`pagination`),N=u(`loading`);return f(),c(b,{class:`panel`},{default:l(()=>[r(y,{span:24},{default:l(()=>[r(b,null,{default:l(()=>[r(y,{span:24},{default:l(()=>[e(`h2`,P,n(p.$t(`common.title.allOrders`)),1)]),_:1})]),_:1}),r(b,{gutter:16},{default:l(()=>[r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,F,[e(`div`,I,[r(S,{icon:`fa-solid fa-receipt`,class:`icon`})]),e(`p`,L,n(p.$t(`order.title.totalOrders`)),1),e(`p`,R,n(p.summary.total_count),1)]))]),_:1})]),_:1}),r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,z,[e(`div`,B,[r(S,{icon:`fa-solid fa-dollar-sign`,class:`icon`})]),e(`p`,V,n(p.$t(`order.title.totalSpent`)),1),e(`p`,H,n(p.getPriceString({value:p.summary.total_spent})),1)]))]),_:1})]),_:1}),r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,U,[e(`div`,W,[r(S,{icon:`fa-solid fa-check-circle`,class:`icon`})]),e(`p`,ee,n(p.$t(`order.title.finishedOrders`)),1),e(`p`,G,n(p.summary.state_counts?.Finished||0),1)]))]),_:1})]),_:1}),r(y,{md:6,sm:12,xs:24},{default:l(()=>[r(C,{shadow:`hover`,class:`item-mini mb-3`},{default:l(()=>[p.summaryLoading?(f(),c(x,{key:0})):(f(),i(`div`,K,[e(`div`,q,[r(S,{icon:`fa-solid fa-clock`,class:`icon`})]),e(`p`,J,n(p.$t(`order.title.pendingOrders`)),1),e(`p`,Y,n(p.summary.state_counts?.Pending||0),1)]))]),_:1})]),_:1})]),_:1}),e(`div`,X,[r(T,{modelValue:p.filterState,"onUpdate:modelValue":m[0]||=e=>p.filterState=e,clearable:``,placeholder:p.$t(`order.field.allStates`),class:`filter-select`,onChange:p.onFilterChange},{default:l(()=>[(f(!0),i(a,null,d(p.stateOptions,e=>(f(),c(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),r(T,{modelValue:p.filterPayWay,"onUpdate:modelValue":m[1]||=e=>p.filterPayWay=e,clearable:``,placeholder:p.$t(`order.field.allPayWays`),class:`filter-select`,onChange:p.onFilterChange},{default:l(()=>[(f(!0),i(a,null,d(p.payWayOptions,e=>(f(),c(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),r(E,{modelValue:p.createdAtRange,"onUpdate:modelValue":m[2]||=e=>p.createdAtRange=e,type:`datetimerange`,shortcuts:p.shortcuts,"range-separator":p.$t(`usage.placeholder.to`),"start-placeholder":p.$t(`usage.placeholder.startDate`),"end-placeholder":p.$t(`usage.placeholder.endDate`),onChange:p.onFilterChange},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`]),r(D,{type:`primary`,plain:``,loading:p.exporting,onClick:p.onExport},{default:l(()=>[r(S,{icon:`fa-solid fa-file-export`,class:`mr-1`}),t(` `+n(p.$t(`order.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),r(b,null,{default:l(()=>[r(y,{span:24},{default:l(()=>[r(C,{shadow:`hover`},{default:l(()=>[s((f(),c(j,{data:p.orders,stripe:``,"empty-text":p.$t(`common.message.noData`),class:`min-h-[calc(100vh-450px)] mb-[20px]`},{default:l(()=>[r(k,{prop:`id`,label:p.$t(`order.field.id`),"class-name":`text-center`,width:`200px`},{default:l(t=>[e(`span`,Z,n(t.row.id),1),e(`span`,Q,[r(O,{content:t.row.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.price`),width:`110px`,align:`center`},{default:l(t=>[e(`span`,$,n(p.getPriceString({value:t.row?.price})),1)]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.description`),"min-width":`220px`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:l(t=>[e(`span`,te,n(t.row.description),1)]),_:1},8,[`label`]),r(k,{prop:`state`,label:p.$t(`order.field.state`),width:`130px`,align:`center`},{default:l(e=>[r(A,{type:p.stateTagType(e.row.state),class:`mx-1`,effect:`dark`,round:``,size:`small`},{default:l(()=>[t(n(p.stateLabel(e.row.state)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.payWay`),width:`120px`,align:`center`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:l(t=>[e(`span`,ne,n(t.row.pay_way||`-`),1)]),_:1},8,[`label`]),r(k,{label:p.$t(`order.field.createdAt`),width:`200px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:l(t=>[e(`span`,re,n(p.$dayjs.format(t.row.created_at)),1)]),_:1},8,[`label`]),r(k,{"min-width":`130px`,fixed:`right`},{default:l(r=>[e(`div`,ie,[p.isPendingAction(r.row.state)?(f(),c(D,{key:0,type:`primary`,size:`small`,onClick:e=>p.goToDetail(r.row.id)},{default:l(()=>[t(n(p.$t(`order.button.continuePay`)),1)]),_:1},8,[`onClick`])):(f(),c(D,{key:1,size:`small`,onClick:e=>p.goToDetail(r.row.id)},{default:l(()=>[t(n(p.$t(`order.button.checkDetail`)),1)]),_:1},8,[`onClick`]))])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[N,p.loading]])]),_:1})]),_:1})]),_:1}),r(b,null,{default:l(()=>[r(y,{span:10,offset:14},{default:l(()=>[e(`div`,ae,[r(M,{"current-page":p.page,"page-size":p.limit,total:p.total,onChange:p.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var se=w(N,[[`render`,oe],[`__scopeId`,`data-v-452d97b9`]]);export{se as default};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{A as t,I as n,Jt as r,L as i,M as a,N as o,T as s,a as c,at as l,c as u,d,ht as f,i as p,j as m,l as h,mt as g,n as _,o as v,ot as ee,qt as y,r as b,rt as x,s as S,t as C,tt as w,u as T,x as te,z as E}from"./vendor-chart-Dw-P17PN.js";import{r as D,t as O}from"./select-ruot-XV3.js";import{n as k,t as A}from"./table-DrsKyeYQ.js";import{n as j,t as M}from"./tabs-B-hOlaTK.js";import{t as N}from"./card-D-4S-l7a.js";import{n as P,r as F}from"./radio-Bj0tEwH8.js";import{t as I}from"./date-picker-BY8LUdJF.js";import{n as L,t as R}from"./row-KOzmQE1C.js";import{t as z}from"./empty-xCRn_5sX.js";import{t as B}from"./pagination-CrPRHL7s.js";import{n as V,t as H}from"./skeleton-CoheJz5x.js";import{t as U}from"./switch-D_ODtpMv.js";import{Er as W,G as ne,Hi as re,Ii as ie,Ni as G,Si as ae,Wi as K,_i as q,_r as J,jr as oe,li as se,ui as Y,vr as X,yr as ce}from"./index-DNz_lMrM.js";import{t as le}from"./index.es-D6IJMicG.js";import{t as ue}from"./CopyToClipboard-CUlDAZQC.js";var de=e(oe());v.register(c,u,p,b,S,T,d,h);var Z=[`#5B8FF9`,`#5AD8A6`,`#5D7092`,`#F6BD16`,`#6F5EF9`,`#6DC8EC`,`#945FB9`,`#FF9845`,`#1E9493`,`#FF99C3`],Q=`#C0C4CC`,fe=.01,pe=20;function me(e){return e<=Z.length?Z.slice(0,e):Array.from({length:e},(t,n)=>`hsl(${Math.round(n*360/e)}, 62%, ${n%2==0?55:45}%)`)}var he=15e3,ge=E({name:`ConsoleUsageList`,components:{Pagination:B,ElTag:re,ElDatePicker:I,ElTable:A,ElSelect:D,ElOption:O,CopyToClipboard:ue,ElRow:R,ElCol:L,ElTableColumn:k,ElCard:N,ElRadioButton:P,ElRadioGroup:F,ElSkeleton:H,ElSkeletonItem:V,ElDialog:ie,ElTabs:j,ElTabPane:M,ElButton:K,ElEmpty:z,ElSwitch:U,FontAwesomeIcon:le,BarChart:C,DoughnutChart:_},data(){return{applicationIds:this.$route.query.application_id?.toString()?this.$route.query.application_id?.toString().split(`,`):[],apiIds:this.$route.query.api_id?.toString()?this.$route.query.api_id?.toString().split(`,`):[],applications:[],apis:[],apisLoading:!1,credentialType:se,serviceType:Y,apiUsages:[],proxyUsages:[],createdAtRange:(()=>{let e=this.$route.query.created_at_to?.toString(),t=this.$route.query.created_at_from?.toString();if(t&&e)return[new Date(t),new Date(e)];let n=new Date,r=new Date;return r.setDate(1),r.setHours(0,0,0,0),[r,n]})(),shortcuts:[{text:this.$t(`usage.shortcuts.thisMonth`),value:()=>{let e=new Date,t=new Date;return t.setDate(1),t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last1Day`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-1),[t,e]}},{text:this.$t(`usage.shortcuts.last3Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-3),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}],type:this.$route.query.type?.toString()||Y.API,loading:!1,total:void 0,limit:15,totalUsed:0,barChartLabels:[],barChartSeries:[],chartView:`trend`,apiBreakdown:[],pieLabels:[],pieData:[],pieColors:[],aggLoading:!1,detailDialogVisible:!1,detailRow:null,detailActiveTab:`request`,detailLoading:!1,exporting:!1,statusCodeFilter:this.$route.query.status_code?.toString()||``,traceId:this.$route.query.trace_id?.toString()||``,statusCodeOptions:[],statusCodeOptionsLoading:!1,autoRefresh:!0,autoRefreshTimer:null,fetchSeq:0}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},totalUsedString(){return`${(this.totalUsed||0).toFixed(2)}`},barChartData(){return{labels:this.barChartLabels,datasets:this.barChartSeries.map(e=>({label:e.label,data:e.data,backgroundColor:e.color,maxBarThickness:36,borderRadius:2,borderSkipped:!1}))}},barChartOptions(){let e=e=>new Intl.NumberFormat().format(Math.round(((e||0)+2**-52)*100)/100);return{responsive:!0,maintainAspectRatio:!1,interaction:{mode:`index`,intersect:!1},plugins:{legend:{position:`bottom`,labels:{usePointStyle:!0,pointStyle:`circle`,boxWidth:8,boxHeight:8,padding:14},onClick:(e,t,n)=>{let r=n?.chart;if(!r||t?.datasetIndex===void 0)return;let i=t.datasetIndex,a=r.data?.datasets||[];a.some((e,t)=>t!==i&&r.isDatasetVisible(t))?a.forEach((e,t)=>r.setDatasetVisibility(t,t===i)):a.forEach((e,t)=>r.setDatasetVisibility(t,!0)),r.update()}},title:{display:!1},tooltip:{itemSort:(e,t)=>(t.parsed?.y||0)-(e.parsed?.y||0),callbacks:{label:t=>` ${t.dataset.label}: ${e(t.parsed.y)}`,footer:t=>`${this.$t(`usage.title.totalUsed`)}: ${e(t.reduce((e,t)=>e+(t.parsed?.y||0),0))}`}}},scales:{x:{stacked:!0,grid:{display:!1},ticks:{maxRotation:0,autoSkip:!0,autoSkipPadding:16}},y:{stacked:!0,beginAtZero:!0,border:{display:!1},grid:{color:`rgba(128, 128, 128, 0.15)`},ticks:{callback:t=>e(Number(t))}}}}},doughnutChartData(){return{labels:this.pieLabels,datasets:[{data:this.pieData,backgroundColor:this.pieColors,borderWidth:0,hoverOffset:6}]}},doughnutChartOptions(){let e=e=>this.fmtAmount(e),t=this.pieData.reduce((e,t)=>e+(t||0),0);return{responsive:!0,maintainAspectRatio:!1,cutout:`58%`,plugins:{legend:{position:`right`,labels:{usePointStyle:!0,pointStyle:`circle`,boxWidth:8,boxHeight:8,padding:12}},title:{display:!1},tooltip:{callbacks:{label:n=>{let r=n.parsed||0,i=t>0?(r/t*100).toFixed(1):`0`;return` ${n.label}: ${e(r)} (${i}%)`}}}}}}},watch:{page:{handler(){this.onFetchUsages()}},type:{handler(){this.applicationIds=[],this.apiIds=[],this.onApplicationsChange(this.applicationIds),this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()}},autoRefresh:{handler(e){e?this.startAutoRefresh():this.stopAutoRefresh()}}},mounted(){this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions(),this.autoRefresh&&this.startAutoRefresh()},beforeUnmount(){this.stopAutoRefresh()},methods:{async onFetchUsages(e=!1){this.type===Y.API?this.onFetchApiUsages(e):this.type===Y.Proxy&&this.onFetchProxyUsages(e)},startAutoRefresh(){this.stopAutoRefresh(),this.autoRefreshTimer=window.setInterval(()=>{document.hidden||this.onFetchUsages(!0)},he)},stopAutoRefresh(){this.autoRefreshTimer!==null&&(clearInterval(this.autoRefreshTimer),this.autoRefreshTimer=null)},async onApiChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onApisChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e&&e.length?e.join(`,`):``}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onTimeRangeChanged(){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,created_at_from:this.createdAtRange?this.$dayjs.format(this.createdAtRange[0].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``,created_at_to:this.createdAtRange?this.$dayjs.format(this.createdAtRange[1].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``}}),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},async onApplicationChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e}}),this.onFetchUsages(),this.onFetchAggregate()},async onApplicationsChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e&&e.length?e.join(`,`):``}}),this.onFetchUsages(),this.onFetchAggregate()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`},getDeductedAmount(e){if(e?.deducted_amount===void 0||e?.deducted_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.deducted_amount?.toFixed(6)} ${t}`},getOriginalAmount(e){if(e?.original_amount===void 0||e?.original_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.original_amount?.toFixed(6)} ${t}`},onStatusCodeChange(e){let t={...this.$route.query},n=(e||``).trim();n?t.status_code=n:delete t.status_code,delete t.status_code_filter,this.$router.push({name:this.$route.name?.toString(),query:t}),this.onFetchUsages(),this.onFetchAggregate()},async onFetchStatusCodeOptions(){this.statusCodeOptionsLoading=!0;try{let{data:e}=await X.getStatusCodes({user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}});this.statusCodeOptions=(e?.items||[]).slice().sort((e,t)=>e-t)}catch{this.statusCodeOptions=[]}finally{this.statusCodeOptionsLoading=!1}},formatElapsed(e){return e==null||Number.isNaN(e)?`-`:e<1?`${Math.round(e*1e3)} ms`:`${e.toFixed(2)} s`},getSimpleMetadata(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))n===`request`||n===`response`||typeof r==`object`&&r||(t[n]=r);return t},getCredentialLabel(e){return e.credential?.name?.trim()||e.credential?.id||e.credential_id||`-`},onShowDetail(e){this.detailRow={...e,metadata:void 0},this.detailActiveTab=`request`,this.detailDialogVisible=!0,this.detailLoading=!0,e.id&&X.get(e.id).then(e=>{this.detailRow=e.data}).finally(()=>{this.detailLoading=!1})},formatJson(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}},onFetchApplications(){W.getAll({limit:100,offset:0,user_id:this.$store.getters.user.id,ordering:`-created_at`,type:q.USAGE}).then(({data:e})=>{this.applications=e.items.filter(e=>e?.service?.type===this.type)}).catch(()=>{})},onFetchApis(){this.apisLoading=!0,J.getAll({limit:1e3,offset:0,ordering:`-created_at`}).then(({data:e})=>{this.apis=e.items}).catch(()=>{}).finally(()=>{this.apisLoading=!1})},onFetchApiUsages(e=!1){e||(this.loading=!0);let t=++this.fetchSeq;X.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{},...this.traceId?{trace_id:this.traceId}:{}}).then(({data:e})=>{t===this.fetchSeq&&(this.apiUsages=e.items,this.total=e.count)}).catch(()=>{}).finally(()=>{e||(this.loading=!1)})},onFetchProxyUsages(e=!1){e||(this.loading=!0);let t=++this.fetchSeq;ce.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{}}).then(({data:e})=>{t===this.fetchSeq&&(this.proxyUsages=e.items,this.total=e.count)}).catch(()=>{}).finally(()=>{e||(this.loading=!1)})},async onExport(){let e=this.$store.state.token?.access;if(!e){G.error(this.$t(`usage.message.exportFailed`));return}let t={user_id:this.$store.getters.user.id,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}},n=`${ae()}/api/v1/usage/apis/export/?${de.default.stringify(t,{arrayFormat:`repeat`})}`,r=null,i=window.showSaveFilePicker;if(typeof i==`function`)try{r=await i({suggestedName:`usages.csv`,types:[{description:`CSV`,accept:{"text/csv":[`.csv`]}}]})}catch(e){if(e?.name===`AbortError`)return;r=null}this.exporting=!0;try{let t=await fetch(n,{headers:{authorization:`Bearer ${e}`}});if(!t.ok||!t.body)throw Error(`export failed: ${t.status}`);if(r)await t.body.pipeTo(await r.createWritable());else{let e=await t.blob(),n=window.URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=`usages.csv`,r.click(),window.URL.revokeObjectURL(n)}}catch{G.error(this.$t(`usage.message.exportFailed`))}finally{this.exporting=!1}},fmtAmount(e){return new Intl.NumberFormat().format(Math.round(((e||0)+2**-52)*100)/100)},async onFetchAggregate(){if(this.type!==this.serviceType.API)return;this.aggLoading=!0;let e={user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},timezone:Intl.DateTimeFormat().resolvedOptions().timeZone};try{let{data:t}=await X.getAggregate(e);this.totalUsed=t.total||0;let n=Array.from(new Set((t.items||[]).map(e=>e.date))).sort(),r={},i={};(t.items||[]).forEach(e=>{let t=e.amount||0;(r[e.date]||(r[e.date]={}))[e.api_id]=(r[e.date]?.[e.api_id]||0)+t,i[e.api_id]=(i[e.api_id]||0)+t});let a=Object.keys(i).sort((e,t)=>i[t]-i[e]),o=a.reduce((e,t)=>e+i[t],0),s=a.length;if(o>0){let e=o*(1-fe),t=0;for(let n=0;n<a.length;n++)if(t+=i[a[n]],t>=e){s=n+1;break}s=Math.min(s,pe)}a.length-s===1&&(s=a.length);let c=a.slice(0,s),l=new Set(c),u=me(c.length),d=a.slice(s),f=`${this.$t(`usage.value.others`)} (${d.length})`,p=c.map((e,i)=>({key:e,label:t.apis?.[e]?.title||e,data:n.map(t=>r[t]?.[e]||0),color:u[i]}));if(d.length){let e=n.map(e=>Object.entries(r[e]||{}).reduce((e,[t,n])=>l.has(t)?e:e+n,0));e.some(e=>e>0)&&p.push({key:`__others__`,label:f,data:e,color:Q})}this.apiBreakdown=a.map((e,n)=>({key:e,label:t.apis?.[e]?.title||e,amount:i[e],color:n<c.length?u[n]:Q,share:o>0?i[e]/o:0}));let m=[],h=[],g=[];c.forEach((e,n)=>{m.push(t.apis?.[e]?.title||e),h.push(i[e]),g.push(u[n])});let _=d.reduce((e,t)=>e+i[t],0);_>0&&(m.push(f),h.push(_),g.push(Q)),this.pieLabels=m,this.pieData=h,this.pieColors=g,this.barChartLabels=n,this.barChartSeries=p}finally{this.aggLoading=!1}}}}),_e={class:`text-[26px] font-bold mb-5 text-[var(--el-text-color-primary)]`},ve={class:`inline-block w-9`},ye={class:`inline-block`},be={key:1,class:`summary-card`},xe={class:`icon-wrapper`},Se={class:`text-left`},Ce={class:`description`},we={class:`value`},Te={class:`flex flex-wrap items-center justify-between gap-2`},Ee={class:`text-[15px] font-medium text-[var(--el-text-color-primary)]`},De={class:`chart-wrapper`},Oe={class:`share-cell`},ke={class:`share-bar`},Ae={class:`share-pct`},je={class:`flex items-center justify-end gap-2 mb-4`},Me={class:`text-sm text-[var(--el-text-color-regular)]`},Ne={key:0},Pe={key:0},Fe={key:1},Ie={class:`flex flex-wrap gap-2`},Le={class:`key`},Re={key:0,class:`cursor-pointer`},ze={class:`key`},Be={key:0,class:`cursor-pointer`},Ve={class:`created-at`},$={class:`key`},He={key:0,class:`cursor-pointer`},Ue={class:`created-at`},We={key:1,class:`detail-json`},Ge={key:2,class:`text-gray-400`},Ke={key:1,class:`detail-json`},qe={key:2,class:`text-gray-400`},Je={class:`float-right`};function Ye(e,c,u,d,p,h){let _=l(`el-col`),v=l(`el-row`),b=l(`el-radio-button`),S=l(`el-radio-group`),C=l(`el-option`),T=l(`el-select`),E=l(`el-skeleton-item`),D=l(`el-skeleton`),O=l(`el-date-picker`),k=l(`font-awesome-icon`),A=l(`el-button`),j=l(`el-card`),M=l(`bar-chart`),N=l(`el-empty`),P=l(`doughnut-chart`),F=l(`el-table-column`),I=l(`el-table`),L=l(`el-switch`),R=l(`el-tag`),z=l(`copy-to-clipboard`),B=l(`el-tab-pane`),V=l(`el-tabs`),H=l(`el-dialog`),U=l(`pagination`),W=ee(`loading`);return w(),m(v,null,{default:g(()=>[i(_,{span:24},{default:g(()=>[i(v,null,{default:g(()=>[i(_,{span:24},{default:g(()=>[t(`h2`,_e,r(e.$t(`common.title.allUsages`)),1)]),_:1})]),_:1}),i(v,null,{default:g(()=>[i(_,{md:4,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[t(`span`,null,r(e.$t(`application.field.type`)),1),i(S,{modelValue:e.type,"onUpdate:modelValue":c[0]||=t=>e.type=t},{default:g(()=>[i(b,{value:e.serviceType.API,label:e.$t(`application.field.api`)},null,8,[`value`,`label`]),i(b,{value:e.serviceType.Proxy,label:e.$t(`application.field.proxy`)},null,8,[`value`,`label`])]),_:1},8,[`modelValue`])]),_:1}),f(i(_,{md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[t(`span`,ve,r(e.$t(`usage.field.application`)),1),i(T,{modelValue:e.applicationIds,"onUpdate:modelValue":c[1]||=t=>e.applicationIds=t,placeholder:e.$t(`usage.field.application`),clearable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:e.onApplicationsChange},{default:g(()=>[(w(!0),o(s,null,x(e.applications,e=>(w(),m(C,{key:e.id,label:e.service?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`])]),_:1},512),[[te,!1]]),e.type===e.serviceType.API?(w(),m(_,{key:0,md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[t(`span`,ye,r(e.$t(`usage.field.api`)),1),e.apisLoading?(w(),m(D,{key:0,animated:``,class:`w-full`},{template:g(()=>[i(E,{variant:`rect`,style:{height:`32px`,"border-radius":`4px`}})]),_:1})):(w(),m(T,{key:1,modelValue:e.apiIds,"onUpdate:modelValue":c[2]||=t=>e.apiIds=t,placeholder:e.$t(`usage.field.api`),clearable:``,filterable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:e.onApisChange},{default:g(()=>[(w(!0),o(s,null,x(e.apis,e=>(w(),m(C,{key:e?.id,label:e?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]))]),_:1})):a(``,!0),e.type===e.serviceType.API?(w(),m(_,{key:1,md:8,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[i(O,{modelValue:e.createdAtRange,"onUpdate:modelValue":c[3]||=t=>e.createdAtRange=t,type:`datetimerange`,class:`w-full`,shortcuts:e.shortcuts,"range-separator":e.$t(`usage.placeholder.to`),"start-placeholder":e.$t(`usage.placeholder.startDate`),"end-placeholder":e.$t(`usage.placeholder.endDate`),onChange:e.onTimeRangeChanged},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`])]),_:1})):a(``,!0),e.type===e.serviceType.API?(w(),m(_,{key:2,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[i(T,{modelValue:e.statusCodeFilter,"onUpdate:modelValue":c[4]||=t=>e.statusCodeFilter=t,placeholder:e.$t(`usage.option.statusCodeAll`),class:`w-full`,clearable:``,filterable:``,"allow-create":``,"default-first-option":``,loading:e.statusCodeOptionsLoading,onChange:e.onStatusCodeChange},{default:g(()=>[(w(!0),o(s,null,x(e.statusCodeOptions,e=>(w(),m(C,{key:e,label:String(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`onChange`])]),_:1})):a(``,!0),e.type===e.serviceType.API?(w(),m(_,{key:3,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center justify-end`},{default:g(()=>[i(A,{type:`primary`,plain:``,loading:e.exporting,class:`w-full whitespace-nowrap`,onClick:e.onExport},{default:g(()=>[i(k,{icon:`fa-solid fa-file-export`,class:`mr-1`}),n(` `+r(e.$t(`usage.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),_:1})):a(``,!0)]),_:1}),i(v,null,{default:g(()=>[i(_,{span:24},{default:g(()=>[e.type===e.serviceType.API?(w(),m(v,{key:0,gutter:24,class:`mb-5`},{default:g(()=>[i(_,{md:6,xs:24},{default:g(()=>[i(j,{shadow:`hover`,class:`h-full`},{default:g(()=>[e.aggLoading?(w(),m(D,{key:0})):(w(),o(`div`,be,[t(`div`,xe,[i(k,{icon:`fa-solid fa-cubes`,class:`icon`})]),t(`div`,Se,[t(`p`,Ce,r(e.$t(`usage.title.totalUsed`)),1),t(`p`,we,r(e.totalUsedString),1)])]))]),_:1})]),_:1}),i(_,{md:18,xs:24},{default:g(()=>[i(j,{shadow:`hover`,class:`h-full`},{header:g(()=>[t(`div`,Te,[t(`span`,Ee,r(e.$t(`usage.title.usageAnalytics`)),1),i(S,{modelValue:e.chartView,"onUpdate:modelValue":c[5]||=t=>e.chartView=t,size:`small`},{default:g(()=>[i(b,{value:`trend`,label:e.$t(`usage.view.trend`)},null,8,[`label`]),i(b,{value:`distribution`,label:e.$t(`usage.view.distribution`)},null,8,[`label`]),i(b,{value:`breakdown`,label:e.$t(`usage.view.breakdown`)},null,8,[`label`])]),_:1},8,[`modelValue`])])]),default:g(()=>[t(`div`,De,[e.aggLoading?(w(),m(D,{key:0,class:`w-full`})):e.chartView===`trend`?(w(),o(s,{key:1},[e.barChartSeries.length?(w(),m(M,{key:0,data:e.barChartData,options:e.barChartOptions,class:`chart`},null,8,[`data`,`options`])):(w(),m(N,{key:1,description:e.$t(`common.message.noData`),"image-size":70,class:`w-full`},null,8,[`description`]))],64)):e.chartView===`distribution`?(w(),o(s,{key:2},[e.pieData.length?(w(),m(P,{key:0,data:e.doughnutChartData,options:e.doughnutChartOptions,class:`chart`},null,8,[`data`,`options`])):(w(),m(N,{key:1,description:e.$t(`common.message.noData`),"image-size":70,class:`w-full`},null,8,[`description`]))],64)):(w(),o(s,{key:3},[e.apiBreakdown.length?(w(),m(I,{key:0,data:e.apiBreakdown,size:`small`,height:`300`,class:`w-full`},{default:g(()=>[i(F,{label:e.$t(`usage.field.api`),"min-width":`160`},{default:g(e=>[t(`span`,{class:`color-dot`,style:y({backgroundColor:e.row.color})},null,4),t(`span`,null,r(e.row.label),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.consumed`),width:`120`,align:`right`},{default:g(n=>[t(`span`,null,r(e.fmtAmount(n.row.amount)),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.share`),width:`150`},{default:g(e=>[t(`div`,Oe,[t(`div`,ke,[t(`div`,{class:`share-bar-fill`,style:y({width:e.row.share*100+`%`,backgroundColor:e.row.color})},null,4)]),t(`span`,Ae,r((e.row.share*100).toFixed(1))+`%`,1)])]),_:1},8,[`label`])]),_:1},8,[`data`])):(w(),m(N,{key:1,description:e.$t(`common.message.noData`),"image-size":70,class:`w-full`},null,8,[`description`]))],64))])]),_:1})]),_:1})]),_:1})):a(``,!0),i(j,{shadow:`hover`},{default:g(()=>[t(`div`,je,[t(`span`,Me,r(e.$t(`usage.field.autoRefresh`)),1),i(L,{modelValue:e.autoRefresh,"onUpdate:modelValue":c[6]||=t=>e.autoRefresh=t},null,8,[`modelValue`])]),e.type===e.serviceType.API?f((w(),m(I,{key:0,data:e.apiUsages,stripe:``,"table-layout":`fixed`,"empty-text":e.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:g(()=>[i(F,{label:e.$t(`application.field.name`),width:`160px`},{default:g(e=>[t(`span`,null,r(e.row?.api?.title),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.statusCode`),width:`120px`},{default:g(t=>[t.row.status_code?(w(),o(`span`,Ne,r(t.row.status_code),1)):(w(),m(R,{key:1,type:`warning`,size:`small`},{default:g(()=>[n(r(e.$t(`usage.value.processing`)),1)]),_:1}))]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.elapsed`),width:`120px`},{default:g(n=>[t(`span`,null,r(e.formatElapsed(n.row.elapsed)),1)]),_:1},8,[`label`]),i(F,{prop:`deducted_amount`,label:e.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:g(n=>[e.getDeductedAmount(n.row)===e.getOriginalAmount(n.row)?(w(),o(`div`,Pe,[t(`span`,null,r(e.getDeductedAmount(n.row)),1)])):(w(),o(`div`,Fe,[c[9]||=t(`p`,null,null,-1),t(`p`,null,[t(`span`,null,r(e.getDeductedAmount(n.row)),1)]),t(`p`,null,[t(`del`,null,r(e.getOriginalAmount(n.row)),1)])]))]),_:1},8,[`label`]),i(F,{prop:`remaining_amount`,label:e.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getRemainingAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{prop:`metadata`,label:e.$t(`usage.field.metadata`),width:`260px`,"class-name":`text-center`},{default:g(i=>[t(`div`,Ie,[i.row.original_amount>i.row.deducted_amount&&i.row.original_amount>0?(w(),m(R,{key:0,type:`success`,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:g(()=>[n(r(((i.row.original_amount-i.row.deducted_amount)*100/i.row.original_amount).toFixed(0)+`% OFF`),1)]),_:2},1024)):a(``,!0),(w(!0),o(s,null,x(e.getSimpleMetadata(i.row.metadata),(e,t)=>(w(),m(R,{key:t,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:g(()=>[n(r(t)+`: `+r(e),1)]),_:2},1024))),128))])]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.button.viewDetail`),width:`120px`,"class-name":`text-center`},{default:g(t=>[t.row.id?(w(),m(A,{key:0,type:`primary`,plain:``,size:`small`,class:`!px-2 !py-1 !text-xs !h-auto !min-h-0`,onClick:n=>e.onShowDetail(t.row)},{default:g(()=>[n(r(e.$t(`usage.button.viewDetail`)),1)]),_:1},8,[`onClick`])):a(``,!0)]),_:1},8,[`label`]),i(F,{prop:`trace_id`,label:e.$t(`application.field.traceId`),width:`200px`,"class-name":`text-center`},{default:g(e=>[t(`span`,Le,r(e.row.trace_id),1),e.row.trace_id?(w(),o(`span`,Re,[i(z,{content:e.row.trace_id,class:`inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`label`]),i(F,{prop:`credential_id`,label:e.$t(`usage.field.credential`),width:`200px`,"class-name":`text-center`},{default:g(n=>[t(`span`,ze,r(e.getCredentialLabel(n.row)),1),n.row.credential?.id||n.row.credential_id?(w(),o(`span`,Be,[i(z,{content:n.row.credential?.id||n.row.credential_id,class:`inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.createdAt`),width:`200px`},{default:g(n=>[t(`span`,Ve,r(e.$dayjs.format(n.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[W,e.loading]]):a(``,!0),e.type===e.serviceType.Proxy?f((w(),m(I,{key:1,data:e.proxyUsages,stripe:``,"table-layout":`fixed`,"empty-text":e.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:g(()=>[i(F,{label:e.$t(`application.field.name`),width:`160px`},{default:g(e=>[t(`span`,null,r(e.row?.service?.title),1)]),_:1},8,[`label`]),i(F,{prop:`remaining_amount`,label:e.$t(`usage.field.remainingAmount`),width:`160px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getRemainingAmount(n.row)),1),t(`span`,null,r(e.getOriginalAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{prop:`deducted_amount`,label:e.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getDeductedAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getRemainingAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{prop:`metadata`,label:e.$t(`usage.field.metadata`),width:`200px`,"class-name":`text-center`},{default:g(e=>[(w(!0),o(s,null,x(e.row.metadata,(e,t)=>(w(),m(R,{key:t,class:`mb-2`},{default:g(()=>[n(r(t)+`: `+r(e),1)]),_:2},1024))),128))]),_:1},8,[`label`]),i(F,{prop:`credential_id`,label:e.$t(`usage.field.credential`),width:`200px`,"class-name":`text-center`},{default:g(n=>[t(`span`,$,r(e.getCredentialLabel(n.row)),1),n.row.credential?.id||n.row.credential_id?(w(),o(`span`,He,[i(z,{content:n.row.credential?.id||n.row.credential_id,class:`inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.createdAt`),width:`200px`},{default:g(n=>[t(`span`,Ue,r(e.$dayjs.format(n.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[W,e.loading]]):a(``,!0)]),_:1})]),_:1})]),_:1}),i(H,{modelValue:e.detailDialogVisible,"onUpdate:modelValue":c[8]||=t=>e.detailDialogVisible=t,title:e.$t(`usage.dialog.detailTitle`),width:`70%`,top:`5vh`,"destroy-on-close":``},{default:g(()=>[i(V,{modelValue:e.detailActiveTab,"onUpdate:modelValue":c[7]||=t=>e.detailActiveTab=t},{default:g(()=>[i(B,{label:e.$t(`usage.dialog.request`),name:`request`},{default:g(()=>[e.detailLoading?(w(),m(D,{key:0,rows:6,animated:``})):e.detailRow?.metadata?.request?(w(),o(`pre`,We,r(e.formatJson(e.detailRow.metadata.request)),1)):(w(),o(`p`,Ge,r(e.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`]),i(B,{label:e.$t(`usage.dialog.response`),name:`response`},{default:g(()=>[e.detailLoading?(w(),m(D,{key:0,rows:6,animated:``})):e.detailRow?.metadata?.response?(w(),o(`pre`,Ke,r(e.formatJson(e.detailRow.metadata.response)),1)):(w(),o(`p`,qe,r(e.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`]),i(v,null,{default:g(()=>[i(_,{span:10,offset:14},{default:g(()=>[t(`div`,Je,[i(U,{"current-page":e.page,"page-size":e.limit,total:e.total,onChange:e.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var Xe=ne(ge,[[`render`,Ye],[`__scopeId`,`data-v-7028d194`]]);export{Xe as default};
1
+ import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{A as t,I as n,Jt as r,L as i,M as a,N as o,T as s,a as c,at as l,c as u,d,ht as f,i as p,j as m,l as h,mt as g,n as _,o as v,ot as ee,qt as y,r as b,rt as x,s as S,t as C,tt as w,u as T,x as te,z as E}from"./vendor-chart-Dw-P17PN.js";import{r as D,t as O}from"./select-Dl8tgFjL.js";import{n as k,t as A}from"./table-1P1mzhi4.js";import{n as j,t as M}from"./tabs-DtAZ3so9.js";import{t as N}from"./card-D-4S-l7a.js";import{n as P,r as F}from"./radio-Bj0tEwH8.js";import{t as I}from"./date-picker-CUsRrFGr.js";import{n as L,t as R}from"./row-CoYwxMjN.js";import{t as z}from"./empty-xCRn_5sX.js";import{t as B}from"./pagination-DCFtt8SX.js";import{n as V,t as H}from"./skeleton-CoheJz5x.js";import{t as U}from"./switch-DcEkrwHo.js";import{Ii as W,J as ne,Ji as re,Pr as ie,Sr as ae,Ti as G,Vi as K,Xi as q,bi as J,br as oe,fi as se,kr as ce,pi as Y,xr as X}from"./index-DHGr0qfr.js";import{t as le}from"./index.es-J-PBjzcR.js";import{t as ue}from"./CopyToClipboard-BovNTELl.js";var de=e(ie());v.register(c,u,p,b,S,T,d,h);var Z=[`#5B8FF9`,`#5AD8A6`,`#5D7092`,`#F6BD16`,`#6F5EF9`,`#6DC8EC`,`#945FB9`,`#FF9845`,`#1E9493`,`#FF99C3`],Q=`#C0C4CC`,fe=.01,pe=20;function me(e){return e<=Z.length?Z.slice(0,e):Array.from({length:e},(t,n)=>`hsl(${Math.round(n*360/e)}, 62%, ${n%2==0?55:45}%)`)}var he=15e3,ge=E({name:`ConsoleUsageList`,components:{Pagination:B,ElTag:re,ElDatePicker:I,ElTable:A,ElSelect:D,ElOption:O,CopyToClipboard:ue,ElRow:R,ElCol:L,ElTableColumn:k,ElCard:N,ElRadioButton:P,ElRadioGroup:F,ElSkeleton:H,ElSkeletonItem:V,ElDialog:K,ElTabs:j,ElTabPane:M,ElButton:q,ElEmpty:z,ElSwitch:U,FontAwesomeIcon:le,BarChart:C,DoughnutChart:_},data(){return{applicationIds:this.$route.query.application_id?.toString()?this.$route.query.application_id?.toString().split(`,`):[],apiIds:this.$route.query.api_id?.toString()?this.$route.query.api_id?.toString().split(`,`):[],applications:[],apis:[],apisLoading:!1,credentialType:se,serviceType:Y,apiUsages:[],proxyUsages:[],createdAtRange:(()=>{let e=this.$route.query.created_at_to?.toString(),t=this.$route.query.created_at_from?.toString();if(t&&e)return[new Date(t),new Date(e)];let n=new Date,r=new Date;return r.setDate(1),r.setHours(0,0,0,0),[r,n]})(),shortcuts:[{text:this.$t(`usage.shortcuts.thisMonth`),value:()=>{let e=new Date,t=new Date;return t.setDate(1),t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last1Day`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-1),[t,e]}},{text:this.$t(`usage.shortcuts.last3Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-3),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}],type:this.$route.query.type?.toString()||Y.API,loading:!1,total:void 0,limit:15,totalUsed:0,barChartLabels:[],barChartSeries:[],chartView:`trend`,apiBreakdown:[],pieLabels:[],pieData:[],pieColors:[],aggLoading:!1,detailDialogVisible:!1,detailRow:null,detailActiveTab:`request`,detailLoading:!1,exporting:!1,statusCodeFilter:this.$route.query.status_code?.toString()||``,traceId:this.$route.query.trace_id?.toString()||``,statusCodeOptions:[],statusCodeOptionsLoading:!1,autoRefresh:!0,autoRefreshTimer:null,fetchSeq:0}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},totalUsedString(){return`${(this.totalUsed||0).toFixed(2)}`},barChartData(){return{labels:this.barChartLabels,datasets:this.barChartSeries.map(e=>({label:e.label,data:e.data,backgroundColor:e.color,maxBarThickness:36,borderRadius:2,borderSkipped:!1}))}},barChartOptions(){let e=e=>new Intl.NumberFormat().format(Math.round(((e||0)+2**-52)*100)/100);return{responsive:!0,maintainAspectRatio:!1,interaction:{mode:`index`,intersect:!1},plugins:{legend:{position:`bottom`,labels:{usePointStyle:!0,pointStyle:`circle`,boxWidth:8,boxHeight:8,padding:14},onClick:(e,t,n)=>{let r=n?.chart;if(!r||t?.datasetIndex===void 0)return;let i=t.datasetIndex,a=r.data?.datasets||[];a.some((e,t)=>t!==i&&r.isDatasetVisible(t))?a.forEach((e,t)=>r.setDatasetVisibility(t,t===i)):a.forEach((e,t)=>r.setDatasetVisibility(t,!0)),r.update()}},title:{display:!1},tooltip:{itemSort:(e,t)=>(t.parsed?.y||0)-(e.parsed?.y||0),callbacks:{label:t=>` ${t.dataset.label}: ${e(t.parsed.y)}`,footer:t=>`${this.$t(`usage.title.totalUsed`)}: ${e(t.reduce((e,t)=>e+(t.parsed?.y||0),0))}`}}},scales:{x:{stacked:!0,grid:{display:!1},ticks:{maxRotation:0,autoSkip:!0,autoSkipPadding:16}},y:{stacked:!0,beginAtZero:!0,border:{display:!1},grid:{color:`rgba(128, 128, 128, 0.15)`},ticks:{callback:t=>e(Number(t))}}}}},doughnutChartData(){return{labels:this.pieLabels,datasets:[{data:this.pieData,backgroundColor:this.pieColors,borderWidth:0,hoverOffset:6}]}},doughnutChartOptions(){let e=e=>this.fmtAmount(e),t=this.pieData.reduce((e,t)=>e+(t||0),0);return{responsive:!0,maintainAspectRatio:!1,cutout:`58%`,plugins:{legend:{position:`right`,labels:{usePointStyle:!0,pointStyle:`circle`,boxWidth:8,boxHeight:8,padding:12}},title:{display:!1},tooltip:{callbacks:{label:n=>{let r=n.parsed||0,i=t>0?(r/t*100).toFixed(1):`0`;return` ${n.label}: ${e(r)} (${i}%)`}}}}}}},watch:{page:{handler(){this.onFetchUsages()}},type:{handler(){this.applicationIds=[],this.apiIds=[],this.onApplicationsChange(this.applicationIds),this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()}},autoRefresh:{handler(e){e?this.startAutoRefresh():this.stopAutoRefresh()}}},mounted(){this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions(),this.autoRefresh&&this.startAutoRefresh()},beforeUnmount(){this.stopAutoRefresh()},methods:{async onFetchUsages(e=!1){this.type===Y.API?this.onFetchApiUsages(e):this.type===Y.Proxy&&this.onFetchProxyUsages(e)},startAutoRefresh(){this.stopAutoRefresh(),this.autoRefreshTimer=window.setInterval(()=>{document.hidden||this.onFetchUsages(!0)},he)},stopAutoRefresh(){this.autoRefreshTimer!==null&&(clearInterval(this.autoRefreshTimer),this.autoRefreshTimer=null)},async onApiChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onApisChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e&&e.length?e.join(`,`):``}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onTimeRangeChanged(){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,created_at_from:this.createdAtRange?this.$dayjs.format(this.createdAtRange[0].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``,created_at_to:this.createdAtRange?this.$dayjs.format(this.createdAtRange[1].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``}}),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},async onApplicationChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e}}),this.onFetchUsages(),this.onFetchAggregate()},async onApplicationsChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e&&e.length?e.join(`,`):``}}),this.onFetchUsages(),this.onFetchAggregate()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`},getDeductedAmount(e){if(e?.deducted_amount===void 0||e?.deducted_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.deducted_amount?.toFixed(6)} ${t}`},getOriginalAmount(e){if(e?.original_amount===void 0||e?.original_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.original_amount?.toFixed(6)} ${t}`},onStatusCodeChange(e){let t={...this.$route.query},n=(e||``).trim();n?t.status_code=n:delete t.status_code,delete t.status_code_filter,this.$router.push({name:this.$route.name?.toString(),query:t}),this.onFetchUsages(),this.onFetchAggregate()},async onFetchStatusCodeOptions(){this.statusCodeOptionsLoading=!0;try{let{data:e}=await X.getStatusCodes({user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}});this.statusCodeOptions=(e?.items||[]).slice().sort((e,t)=>e-t)}catch{this.statusCodeOptions=[]}finally{this.statusCodeOptionsLoading=!1}},formatElapsed(e){return e==null||Number.isNaN(e)?`-`:e<1?`${Math.round(e*1e3)} ms`:`${e.toFixed(2)} s`},getSimpleMetadata(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))n===`request`||n===`response`||typeof r==`object`&&r||(t[n]=r);return t},getCredentialLabel(e){return e.credential?.name?.trim()||e.credential?.id||e.credential_id||`-`},onShowDetail(e){this.detailRow={...e,metadata:void 0},this.detailActiveTab=`request`,this.detailDialogVisible=!0,this.detailLoading=!0,e.id&&X.get(e.id).then(e=>{this.detailRow=e.data}).finally(()=>{this.detailLoading=!1})},formatJson(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}},onFetchApplications(){ce.getAll({limit:100,offset:0,user_id:this.$store.getters.user.id,ordering:`-created_at`,type:J.USAGE}).then(({data:e})=>{this.applications=e.items.filter(e=>e?.service?.type===this.type)}).catch(()=>{})},onFetchApis(){this.apisLoading=!0,oe.getAll({limit:1e3,offset:0,ordering:`-created_at`}).then(({data:e})=>{this.apis=e.items}).catch(()=>{}).finally(()=>{this.apisLoading=!1})},onFetchApiUsages(e=!1){e||(this.loading=!0);let t=++this.fetchSeq;X.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{},...this.traceId?{trace_id:this.traceId}:{}}).then(({data:e})=>{t===this.fetchSeq&&(this.apiUsages=e.items,this.total=e.count)}).catch(()=>{}).finally(()=>{e||(this.loading=!1)})},onFetchProxyUsages(e=!1){e||(this.loading=!0);let t=++this.fetchSeq;ae.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{}}).then(({data:e})=>{t===this.fetchSeq&&(this.proxyUsages=e.items,this.total=e.count)}).catch(()=>{}).finally(()=>{e||(this.loading=!1)})},async onExport(){let e=this.$store.state.token?.access;if(!e){W.error(this.$t(`usage.message.exportFailed`));return}let t={user_id:this.$store.getters.user.id,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}},n=`${G()}/api/v1/usage/apis/export/?${de.default.stringify(t,{arrayFormat:`repeat`})}`,r=null,i=window.showSaveFilePicker;if(typeof i==`function`)try{r=await i({suggestedName:`usages.csv`,types:[{description:`CSV`,accept:{"text/csv":[`.csv`]}}]})}catch(e){if(e?.name===`AbortError`)return;r=null}this.exporting=!0;try{let t=await fetch(n,{headers:{authorization:`Bearer ${e}`}});if(!t.ok||!t.body)throw Error(`export failed: ${t.status}`);if(r)await t.body.pipeTo(await r.createWritable());else{let e=await t.blob(),n=window.URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=`usages.csv`,r.click(),window.URL.revokeObjectURL(n)}}catch{W.error(this.$t(`usage.message.exportFailed`))}finally{this.exporting=!1}},fmtAmount(e){return new Intl.NumberFormat().format(Math.round(((e||0)+2**-52)*100)/100)},async onFetchAggregate(){if(this.type!==this.serviceType.API)return;this.aggLoading=!0;let e={user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},timezone:Intl.DateTimeFormat().resolvedOptions().timeZone};try{let{data:t}=await X.getAggregate(e);this.totalUsed=t.total||0;let n=Array.from(new Set((t.items||[]).map(e=>e.date))).sort(),r={},i={};(t.items||[]).forEach(e=>{let t=e.amount||0;(r[e.date]||(r[e.date]={}))[e.api_id]=(r[e.date]?.[e.api_id]||0)+t,i[e.api_id]=(i[e.api_id]||0)+t});let a=Object.keys(i).sort((e,t)=>i[t]-i[e]),o=a.reduce((e,t)=>e+i[t],0),s=a.length;if(o>0){let e=o*(1-fe),t=0;for(let n=0;n<a.length;n++)if(t+=i[a[n]],t>=e){s=n+1;break}s=Math.min(s,pe)}a.length-s===1&&(s=a.length);let c=a.slice(0,s),l=new Set(c),u=me(c.length),d=a.slice(s),f=`${this.$t(`usage.value.others`)} (${d.length})`,p=c.map((e,i)=>({key:e,label:t.apis?.[e]?.title||e,data:n.map(t=>r[t]?.[e]||0),color:u[i]}));if(d.length){let e=n.map(e=>Object.entries(r[e]||{}).reduce((e,[t,n])=>l.has(t)?e:e+n,0));e.some(e=>e>0)&&p.push({key:`__others__`,label:f,data:e,color:Q})}this.apiBreakdown=a.map((e,n)=>({key:e,label:t.apis?.[e]?.title||e,amount:i[e],color:n<c.length?u[n]:Q,share:o>0?i[e]/o:0}));let m=[],h=[],g=[];c.forEach((e,n)=>{m.push(t.apis?.[e]?.title||e),h.push(i[e]),g.push(u[n])});let _=d.reduce((e,t)=>e+i[t],0);_>0&&(m.push(f),h.push(_),g.push(Q)),this.pieLabels=m,this.pieData=h,this.pieColors=g,this.barChartLabels=n,this.barChartSeries=p}finally{this.aggLoading=!1}}}}),_e={class:`text-[26px] font-bold mb-5 text-[var(--el-text-color-primary)]`},ve={class:`inline-block w-9`},ye={class:`inline-block`},be={key:1,class:`summary-card`},xe={class:`icon-wrapper`},Se={class:`text-left`},Ce={class:`description`},we={class:`value`},Te={class:`flex flex-wrap items-center justify-between gap-2`},Ee={class:`text-[15px] font-medium text-[var(--el-text-color-primary)]`},De={class:`chart-wrapper`},Oe={class:`share-cell`},ke={class:`share-bar`},Ae={class:`share-pct`},je={class:`flex items-center justify-end gap-2 mb-4`},Me={class:`text-sm text-[var(--el-text-color-regular)]`},Ne={key:0},Pe={key:0},Fe={key:1},Ie={class:`flex flex-wrap gap-2`},Le={class:`key`},Re={key:0,class:`cursor-pointer`},ze={class:`key`},Be={key:0,class:`cursor-pointer`},Ve={class:`created-at`},$={class:`key`},He={key:0,class:`cursor-pointer`},Ue={class:`created-at`},We={key:1,class:`detail-json`},Ge={key:2,class:`text-gray-400`},Ke={key:1,class:`detail-json`},qe={key:2,class:`text-gray-400`},Je={class:`float-right`};function Ye(e,c,u,d,p,h){let _=l(`el-col`),v=l(`el-row`),b=l(`el-radio-button`),S=l(`el-radio-group`),C=l(`el-option`),T=l(`el-select`),E=l(`el-skeleton-item`),D=l(`el-skeleton`),O=l(`el-date-picker`),k=l(`font-awesome-icon`),A=l(`el-button`),j=l(`el-card`),M=l(`bar-chart`),N=l(`el-empty`),P=l(`doughnut-chart`),F=l(`el-table-column`),I=l(`el-table`),L=l(`el-switch`),R=l(`el-tag`),z=l(`copy-to-clipboard`),B=l(`el-tab-pane`),V=l(`el-tabs`),H=l(`el-dialog`),U=l(`pagination`),W=ee(`loading`);return w(),m(v,null,{default:g(()=>[i(_,{span:24},{default:g(()=>[i(v,null,{default:g(()=>[i(_,{span:24},{default:g(()=>[t(`h2`,_e,r(e.$t(`common.title.allUsages`)),1)]),_:1})]),_:1}),i(v,null,{default:g(()=>[i(_,{md:4,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[t(`span`,null,r(e.$t(`application.field.type`)),1),i(S,{modelValue:e.type,"onUpdate:modelValue":c[0]||=t=>e.type=t},{default:g(()=>[i(b,{value:e.serviceType.API,label:e.$t(`application.field.api`)},null,8,[`value`,`label`]),i(b,{value:e.serviceType.Proxy,label:e.$t(`application.field.proxy`)},null,8,[`value`,`label`])]),_:1},8,[`modelValue`])]),_:1}),f(i(_,{md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[t(`span`,ve,r(e.$t(`usage.field.application`)),1),i(T,{modelValue:e.applicationIds,"onUpdate:modelValue":c[1]||=t=>e.applicationIds=t,placeholder:e.$t(`usage.field.application`),clearable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:e.onApplicationsChange},{default:g(()=>[(w(!0),o(s,null,x(e.applications,e=>(w(),m(C,{key:e.id,label:e.service?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`])]),_:1},512),[[te,!1]]),e.type===e.serviceType.API?(w(),m(_,{key:0,md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[t(`span`,ye,r(e.$t(`usage.field.api`)),1),e.apisLoading?(w(),m(D,{key:0,animated:``,class:`w-full`},{template:g(()=>[i(E,{variant:`rect`,style:{height:`32px`,"border-radius":`4px`}})]),_:1})):(w(),m(T,{key:1,modelValue:e.apiIds,"onUpdate:modelValue":c[2]||=t=>e.apiIds=t,placeholder:e.$t(`usage.field.api`),clearable:``,filterable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:e.onApisChange},{default:g(()=>[(w(!0),o(s,null,x(e.apis,e=>(w(),m(C,{key:e?.id,label:e?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]))]),_:1})):a(``,!0),e.type===e.serviceType.API?(w(),m(_,{key:1,md:8,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[i(O,{modelValue:e.createdAtRange,"onUpdate:modelValue":c[3]||=t=>e.createdAtRange=t,type:`datetimerange`,class:`w-full`,shortcuts:e.shortcuts,"range-separator":e.$t(`usage.placeholder.to`),"start-placeholder":e.$t(`usage.placeholder.startDate`),"end-placeholder":e.$t(`usage.placeholder.endDate`),onChange:e.onTimeRangeChanged},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`])]),_:1})):a(``,!0),e.type===e.serviceType.API?(w(),m(_,{key:2,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:g(()=>[i(T,{modelValue:e.statusCodeFilter,"onUpdate:modelValue":c[4]||=t=>e.statusCodeFilter=t,placeholder:e.$t(`usage.option.statusCodeAll`),class:`w-full`,clearable:``,filterable:``,"allow-create":``,"default-first-option":``,loading:e.statusCodeOptionsLoading,onChange:e.onStatusCodeChange},{default:g(()=>[(w(!0),o(s,null,x(e.statusCodeOptions,e=>(w(),m(C,{key:e,label:String(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`onChange`])]),_:1})):a(``,!0),e.type===e.serviceType.API?(w(),m(_,{key:3,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center justify-end`},{default:g(()=>[i(A,{type:`primary`,plain:``,loading:e.exporting,class:`w-full whitespace-nowrap`,onClick:e.onExport},{default:g(()=>[i(k,{icon:`fa-solid fa-file-export`,class:`mr-1`}),n(` `+r(e.$t(`usage.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),_:1})):a(``,!0)]),_:1}),i(v,null,{default:g(()=>[i(_,{span:24},{default:g(()=>[e.type===e.serviceType.API?(w(),m(v,{key:0,gutter:24,class:`mb-5`},{default:g(()=>[i(_,{md:6,xs:24},{default:g(()=>[i(j,{shadow:`hover`,class:`h-full`},{default:g(()=>[e.aggLoading?(w(),m(D,{key:0})):(w(),o(`div`,be,[t(`div`,xe,[i(k,{icon:`fa-solid fa-cubes`,class:`icon`})]),t(`div`,Se,[t(`p`,Ce,r(e.$t(`usage.title.totalUsed`)),1),t(`p`,we,r(e.totalUsedString),1)])]))]),_:1})]),_:1}),i(_,{md:18,xs:24},{default:g(()=>[i(j,{shadow:`hover`,class:`h-full`},{header:g(()=>[t(`div`,Te,[t(`span`,Ee,r(e.$t(`usage.title.usageAnalytics`)),1),i(S,{modelValue:e.chartView,"onUpdate:modelValue":c[5]||=t=>e.chartView=t,size:`small`},{default:g(()=>[i(b,{value:`trend`,label:e.$t(`usage.view.trend`)},null,8,[`label`]),i(b,{value:`distribution`,label:e.$t(`usage.view.distribution`)},null,8,[`label`]),i(b,{value:`breakdown`,label:e.$t(`usage.view.breakdown`)},null,8,[`label`])]),_:1},8,[`modelValue`])])]),default:g(()=>[t(`div`,De,[e.aggLoading?(w(),m(D,{key:0,class:`w-full`})):e.chartView===`trend`?(w(),o(s,{key:1},[e.barChartSeries.length?(w(),m(M,{key:0,data:e.barChartData,options:e.barChartOptions,class:`chart`},null,8,[`data`,`options`])):(w(),m(N,{key:1,description:e.$t(`common.message.noData`),"image-size":70,class:`w-full`},null,8,[`description`]))],64)):e.chartView===`distribution`?(w(),o(s,{key:2},[e.pieData.length?(w(),m(P,{key:0,data:e.doughnutChartData,options:e.doughnutChartOptions,class:`chart`},null,8,[`data`,`options`])):(w(),m(N,{key:1,description:e.$t(`common.message.noData`),"image-size":70,class:`w-full`},null,8,[`description`]))],64)):(w(),o(s,{key:3},[e.apiBreakdown.length?(w(),m(I,{key:0,data:e.apiBreakdown,size:`small`,height:`300`,class:`w-full`},{default:g(()=>[i(F,{label:e.$t(`usage.field.api`),"min-width":`160`},{default:g(e=>[t(`span`,{class:`color-dot`,style:y({backgroundColor:e.row.color})},null,4),t(`span`,null,r(e.row.label),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.consumed`),width:`120`,align:`right`},{default:g(n=>[t(`span`,null,r(e.fmtAmount(n.row.amount)),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.share`),width:`150`},{default:g(e=>[t(`div`,Oe,[t(`div`,ke,[t(`div`,{class:`share-bar-fill`,style:y({width:e.row.share*100+`%`,backgroundColor:e.row.color})},null,4)]),t(`span`,Ae,r((e.row.share*100).toFixed(1))+`%`,1)])]),_:1},8,[`label`])]),_:1},8,[`data`])):(w(),m(N,{key:1,description:e.$t(`common.message.noData`),"image-size":70,class:`w-full`},null,8,[`description`]))],64))])]),_:1})]),_:1})]),_:1})):a(``,!0),i(j,{shadow:`hover`},{default:g(()=>[t(`div`,je,[t(`span`,Me,r(e.$t(`usage.field.autoRefresh`)),1),i(L,{modelValue:e.autoRefresh,"onUpdate:modelValue":c[6]||=t=>e.autoRefresh=t},null,8,[`modelValue`])]),e.type===e.serviceType.API?f((w(),m(I,{key:0,data:e.apiUsages,stripe:``,"table-layout":`fixed`,"empty-text":e.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:g(()=>[i(F,{label:e.$t(`application.field.name`),width:`160px`},{default:g(e=>[t(`span`,null,r(e.row?.api?.title),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.statusCode`),width:`120px`},{default:g(t=>[t.row.status_code?(w(),o(`span`,Ne,r(t.row.status_code),1)):(w(),m(R,{key:1,type:`warning`,size:`small`},{default:g(()=>[n(r(e.$t(`usage.value.processing`)),1)]),_:1}))]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.elapsed`),width:`120px`},{default:g(n=>[t(`span`,null,r(e.formatElapsed(n.row.elapsed)),1)]),_:1},8,[`label`]),i(F,{prop:`deducted_amount`,label:e.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:g(n=>[e.getDeductedAmount(n.row)===e.getOriginalAmount(n.row)?(w(),o(`div`,Pe,[t(`span`,null,r(e.getDeductedAmount(n.row)),1)])):(w(),o(`div`,Fe,[c[9]||=t(`p`,null,null,-1),t(`p`,null,[t(`span`,null,r(e.getDeductedAmount(n.row)),1)]),t(`p`,null,[t(`del`,null,r(e.getOriginalAmount(n.row)),1)])]))]),_:1},8,[`label`]),i(F,{prop:`remaining_amount`,label:e.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getRemainingAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{prop:`metadata`,label:e.$t(`usage.field.metadata`),width:`260px`,"class-name":`text-center`},{default:g(i=>[t(`div`,Ie,[i.row.original_amount>i.row.deducted_amount&&i.row.original_amount>0?(w(),m(R,{key:0,type:`success`,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:g(()=>[n(r(((i.row.original_amount-i.row.deducted_amount)*100/i.row.original_amount).toFixed(0)+`% OFF`),1)]),_:2},1024)):a(``,!0),(w(!0),o(s,null,x(e.getSimpleMetadata(i.row.metadata),(e,t)=>(w(),m(R,{key:t,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:g(()=>[n(r(t)+`: `+r(e),1)]),_:2},1024))),128))])]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.button.viewDetail`),width:`120px`,"class-name":`text-center`},{default:g(t=>[t.row.id?(w(),m(A,{key:0,type:`primary`,plain:``,size:`small`,class:`!px-2 !py-1 !text-xs !h-auto !min-h-0`,onClick:n=>e.onShowDetail(t.row)},{default:g(()=>[n(r(e.$t(`usage.button.viewDetail`)),1)]),_:1},8,[`onClick`])):a(``,!0)]),_:1},8,[`label`]),i(F,{prop:`trace_id`,label:e.$t(`application.field.traceId`),width:`200px`,"class-name":`text-center`},{default:g(e=>[t(`span`,Le,r(e.row.trace_id),1),e.row.trace_id?(w(),o(`span`,Re,[i(z,{content:e.row.trace_id,class:`inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`label`]),i(F,{prop:`credential_id`,label:e.$t(`usage.field.credential`),width:`200px`,"class-name":`text-center`},{default:g(n=>[t(`span`,ze,r(e.getCredentialLabel(n.row)),1),n.row.credential?.id||n.row.credential_id?(w(),o(`span`,Be,[i(z,{content:n.row.credential?.id||n.row.credential_id,class:`inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.createdAt`),width:`200px`},{default:g(n=>[t(`span`,Ve,r(e.$dayjs.format(n.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[W,e.loading]]):a(``,!0),e.type===e.serviceType.Proxy?f((w(),m(I,{key:1,data:e.proxyUsages,stripe:``,"table-layout":`fixed`,"empty-text":e.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:g(()=>[i(F,{label:e.$t(`application.field.name`),width:`160px`},{default:g(e=>[t(`span`,null,r(e.row?.service?.title),1)]),_:1},8,[`label`]),i(F,{prop:`remaining_amount`,label:e.$t(`usage.field.remainingAmount`),width:`160px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getRemainingAmount(n.row)),1),t(`span`,null,r(e.getOriginalAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{prop:`deducted_amount`,label:e.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getDeductedAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:g(n=>[t(`span`,null,r(e.getRemainingAmount(n.row)),1)]),_:1},8,[`label`]),i(F,{prop:`metadata`,label:e.$t(`usage.field.metadata`),width:`200px`,"class-name":`text-center`},{default:g(e=>[(w(!0),o(s,null,x(e.row.metadata,(e,t)=>(w(),m(R,{key:t,class:`mb-2`},{default:g(()=>[n(r(t)+`: `+r(e),1)]),_:2},1024))),128))]),_:1},8,[`label`]),i(F,{prop:`credential_id`,label:e.$t(`usage.field.credential`),width:`200px`,"class-name":`text-center`},{default:g(n=>[t(`span`,$,r(e.getCredentialLabel(n.row)),1),n.row.credential?.id||n.row.credential_id?(w(),o(`span`,He,[i(z,{content:n.row.credential?.id||n.row.credential_id,class:`inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`label`]),i(F,{label:e.$t(`usage.field.createdAt`),width:`200px`},{default:g(n=>[t(`span`,Ue,r(e.$dayjs.format(n.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[W,e.loading]]):a(``,!0)]),_:1})]),_:1})]),_:1}),i(H,{modelValue:e.detailDialogVisible,"onUpdate:modelValue":c[8]||=t=>e.detailDialogVisible=t,title:e.$t(`usage.dialog.detailTitle`),width:`70%`,top:`5vh`,"destroy-on-close":``},{default:g(()=>[i(V,{modelValue:e.detailActiveTab,"onUpdate:modelValue":c[7]||=t=>e.detailActiveTab=t},{default:g(()=>[i(B,{label:e.$t(`usage.dialog.request`),name:`request`},{default:g(()=>[e.detailLoading?(w(),m(D,{key:0,rows:6,animated:``})):e.detailRow?.metadata?.request?(w(),o(`pre`,We,r(e.formatJson(e.detailRow.metadata.request)),1)):(w(),o(`p`,Ge,r(e.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`]),i(B,{label:e.$t(`usage.dialog.response`),name:`response`},{default:g(()=>[e.detailLoading?(w(),m(D,{key:0,rows:6,animated:``})):e.detailRow?.metadata?.response?(w(),o(`pre`,Ke,r(e.formatJson(e.detailRow.metadata.response)),1)):(w(),o(`p`,qe,r(e.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`]),i(v,null,{default:g(()=>[i(_,{span:10,offset:14},{default:g(()=>[t(`div`,Je,[i(U,{"current-page":e.page,"page-size":e.limit,total:e.total,onChange:e.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var Xe=ne(ge,[[`render`,Ye],[`__scopeId`,`data-v-7028d194`]]);export{Xe as default};
@@ -1,5 +1,5 @@
1
- import{r as e}from"./rolldown-runtime--c01j_DQ.js";import{A as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{H as ee}from"./use-deprecated-B-uvyrTL.js";import{t as te}from"./switch-D_ODtpMv.js";import{$i as ne,Dr as m,G as h,Hi as g,Wi as _,q as v,wi as y,xi as b}from"./index-DNz_lMrM.js";import{t as x}from"./index.es-D6IJMicG.js";var S=p({name:`LocalToolsSetting`,components:{ElButton:_,ElTag:g,ElSwitch:te,ElInput:ne,FontAwesomeIcon:x},data(){return{Plus:ee,roots:[],tools:[],mcpServers:[],mcpUid:0,mcpStatuses:[],mcpBusy:null,savingMcp:!1,mcpSavedTip:!1,mcpError:``,grants:null,perm:null,computerUse:!1,computerTools:[],computerGrants:{},cuBusy:null,builtinTools:[],toolGrants:{},builtinBusy:null,savingCU:!1,preauthorizing:!1,saving:!1,savedTip:!1,a11yEnabled:!1,xhsSkill:null,xhsLoading:!1,xhsInstalling:!1,xhsError:``,onFocus:null,cuOff:null,a11yPoll:null,refreshingA11y:!1}},computed:{desktop(){return!!v()},android(){return y()},canInstallXhs(){return this.a11yEnabled&&this.computerUse}},async mounted(){let e=v();if(!e)return;let t=await e.getConfig();this.roots=t.roots,this.computerUse=t.computerUse===!0,this.mcpServers=(t.mcp??[]).map(e=>({_uid:this.mcpUid++,id:e.id,command:e.command,argsText:(e.args??[]).join(`
1
+ import{r as e}from"./rolldown-runtime--c01j_DQ.js";import{A as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{H as ee}from"./use-deprecated-B-uvyrTL.js";import{t as te}from"./switch-DcEkrwHo.js";import{Ar as m,Di as ne,J as h,Ji as g,X as _,Xi as v,aa as y,wi as b}from"./index-DHGr0qfr.js";import{t as x}from"./index.es-J-PBjzcR.js";var S=p({name:`LocalToolsSetting`,components:{ElButton:v,ElTag:g,ElSwitch:te,ElInput:y,FontAwesomeIcon:x},data(){return{Plus:ee,roots:[],tools:[],mcpServers:[],mcpUid:0,mcpStatuses:[],mcpBusy:null,savingMcp:!1,mcpSavedTip:!1,mcpError:``,grants:null,perm:null,computerUse:!1,computerTools:[],computerGrants:{},cuBusy:null,builtinTools:[],toolGrants:{},builtinBusy:null,savingCU:!1,preauthorizing:!1,saving:!1,savedTip:!1,a11yEnabled:!1,xhsSkill:null,xhsLoading:!1,xhsInstalling:!1,xhsError:``,onFocus:null,cuOff:null,a11yPoll:null,refreshingA11y:!1}},computed:{desktop(){return!!_()},android(){return ne()},canInstallXhs(){return this.a11yEnabled&&this.computerUse}},async mounted(){let e=_();if(!e)return;let t=await e.getConfig();this.roots=t.roots,this.computerUse=t.computerUse===!0,this.mcpServers=(t.mcp??[]).map(e=>({_uid:this.mcpUid++,id:e.id,command:e.command,argsText:(e.args??[]).join(`
2
2
  `),envText:Object.entries(e.env??{}).map(([e,t])=>`${e}=${t}`).join(`
3
- `),enabled:e.enabled!==!1})),this.mcpStatuses=await e.mcp?.status()??[],this.tools=(await e.listTools()).map(e=>e.name),this.computerTools=await e.computerTools?.()??[],this.builtinTools=await e.builtinTools?.()??[];let n=await e.perm?.status();n?.mac&&(this.perm=n),await this.loadGrants(),this.android&&(await this.refreshA11y(),this.fetchXhsSkill(),this.onFocus=()=>{document.visibilityState===`visible`&&this.refreshA11y()},document.addEventListener(`visibilitychange`,this.onFocus),this.a11yPoll=window.setInterval(()=>{document.visibilityState===`visible`&&this.refreshA11y()},3e3)),this.cuOff=e.onComputerUseDisabled?.(()=>{this.computerUse=!1})??null},beforeUnmount(){this.cuOff?.(),this.onFocus&&document.removeEventListener(`visibilitychange`,this.onFocus),this.a11yPoll&&clearInterval(this.a11yPoll)},methods:{async refreshA11y(){if(!this.refreshingA11y){this.refreshingA11y=!0;try{let e=await v()?.perm?.status();this.a11yEnabled=e?.accessibility===!0}finally{this.refreshingA11y=!1}}},async openAndroidAccessibility(){await v()?.perm?.openPane(`accessibility`)},async fetchXhsSkill(){this.xhsLoading=!0,this.xhsError=``;try{let e=await m.get(`/skills/`,{baseURL:`${b()}/api/v1`,params:{q:`xhs-dm`,limit:10}}),t=Array.isArray(e.data?.items)?e.data.items:[];this.xhsSkill=t.find(e=>e.identifier?.endsWith(`/xhs-dm`))??null}catch(e){console.warn(`[LocalTools] fetch xhs skill failed`,e),this.xhsSkill=null,this.xhsError=this.$t(`common.settings.localToolsAndroidSkillsLoadFailed`)}finally{this.xhsLoading=!1}},async installXhs(){let e=this.xhsSkill;if(!(!e||e.installed)){this.xhsInstalling=!0,this.xhsError=``;try{await m.post(`/skills/${e.id}/install/`,{},{baseURL:`${b()}/api/v1`}),e.installed=!0}catch(t){t?.response?.status===409?e.installed=!0:this.xhsError=this.$t(`common.settings.localToolsAndroidSkillsInstallFailed`)}finally{this.xhsInstalling=!1}}},async loadGrants(){let e=v();if(!e?.grants){this.grants=null;return}let t=await e.grants.list(),n={},r={},i=new Set(this.builtinTools.map(e=>e.name)),a=[];for(let e of t){if(e.startsWith(`computer.`)&&!e.includes(`:`)){n[e]=!0;continue}if(!e.includes(`:`)&&i.has(e)){r[e]=!0;continue}let t=e.indexOf(`:{`),o=t>=0?t:e.indexOf(`:`);a.push({key:e,name:o>=0?e.slice(0,o):e,input:o>=0?e.slice(o+1):``})}this.computerGrants=n,this.toolGrants=r,this.grants=a},async addFolder(){let e=await v()?.pickFolder();e&&!this.roots.includes(e)&&this.roots.push(e)},removeRoot(e){this.roots.splice(e,1)},addMcp(){this.mcpServers.push({_uid:this.mcpUid++,id:``,command:``,argsText:``,envText:``,enabled:!0})},removeMcp(e){this.mcpServers.splice(e,1)},mcpStatusFor(e){let t=e.trim();return this.mcpStatuses.find(e=>e.id===t)},mcpBadgeType(e){let t=this.mcpStatusFor(e)?.status;return t===`connected`?`success`:t===`failed`?`danger`:`info`},mcpBadgeText(e){let t=this.mcpStatusFor(e);return this.mcpBusy===e.trim()?this.$t(`common.settings.localToolsMcpConnecting`):t?t.status===`connected`?this.$t(`common.settings.localToolsMcpConnected`,{n:t.toolCount}):t.status===`disabled`?this.$t(`common.settings.localToolsMcpDisabled`):this.$t(`common.settings.localToolsMcpFailed`):this.$t(`common.settings.localToolsMcpNotSaved`)},mcpErrorFor(e){let t=this.mcpStatusFor(e);return t?.status===`failed`&&t.error?t.error:``},buildMcpPayload(){this.mcpError=``;let e=[],t=new Set;for(let n of this.mcpServers){let r=n.id.trim(),i=n.command.trim();if(!r||!i)return this.mcpError=this.$t(`common.settings.localToolsMcpNameRequired`),null;if(!/^[A-Za-z0-9_-]+$/.test(r))return this.mcpError=this.$t(`common.settings.localToolsMcpNameInvalid`),null;if(t.has(r))return this.mcpError=this.$t(`common.settings.localToolsMcpDuplicateName`),null;t.add(r);let a=n.argsText.split(`
3
+ `),enabled:e.enabled!==!1})),this.mcpStatuses=await e.mcp?.status()??[],this.tools=(await e.listTools()).map(e=>e.name),this.computerTools=await e.computerTools?.()??[],this.builtinTools=await e.builtinTools?.()??[];let n=await e.perm?.status();n?.mac&&(this.perm=n),await this.loadGrants(),this.android&&(await this.refreshA11y(),this.fetchXhsSkill(),this.onFocus=()=>{document.visibilityState===`visible`&&this.refreshA11y()},document.addEventListener(`visibilitychange`,this.onFocus),this.a11yPoll=window.setInterval(()=>{document.visibilityState===`visible`&&this.refreshA11y()},3e3)),this.cuOff=e.onComputerUseDisabled?.(()=>{this.computerUse=!1})??null},beforeUnmount(){this.cuOff?.(),this.onFocus&&document.removeEventListener(`visibilitychange`,this.onFocus),this.a11yPoll&&clearInterval(this.a11yPoll)},methods:{async refreshA11y(){if(!this.refreshingA11y){this.refreshingA11y=!0;try{let e=await _()?.perm?.status();this.a11yEnabled=e?.accessibility===!0}finally{this.refreshingA11y=!1}}},async openAndroidAccessibility(){await _()?.perm?.openPane(`accessibility`)},async fetchXhsSkill(){this.xhsLoading=!0,this.xhsError=``;try{let e=await m.get(`/skills/`,{baseURL:`${b()}/api/v1`,params:{q:`xhs-dm`,limit:10}}),t=Array.isArray(e.data?.items)?e.data.items:[];this.xhsSkill=t.find(e=>e.identifier?.endsWith(`/xhs-dm`))??null}catch(e){console.warn(`[LocalTools] fetch xhs skill failed`,e),this.xhsSkill=null,this.xhsError=this.$t(`common.settings.localToolsAndroidSkillsLoadFailed`)}finally{this.xhsLoading=!1}},async installXhs(){let e=this.xhsSkill;if(!(!e||e.installed)){this.xhsInstalling=!0,this.xhsError=``;try{await m.post(`/skills/${e.id}/install/`,{},{baseURL:`${b()}/api/v1`}),e.installed=!0}catch(t){t?.response?.status===409?e.installed=!0:this.xhsError=this.$t(`common.settings.localToolsAndroidSkillsInstallFailed`)}finally{this.xhsInstalling=!1}}},async loadGrants(){let e=_();if(!e?.grants){this.grants=null;return}let t=await e.grants.list(),n={},r={},i=new Set(this.builtinTools.map(e=>e.name)),a=[];for(let e of t){if(e.startsWith(`computer.`)&&!e.includes(`:`)){n[e]=!0;continue}if(!e.includes(`:`)&&i.has(e)){r[e]=!0;continue}let t=e.indexOf(`:{`),o=t>=0?t:e.indexOf(`:`);a.push({key:e,name:o>=0?e.slice(0,o):e,input:o>=0?e.slice(o+1):``})}this.computerGrants=n,this.toolGrants=r,this.grants=a},async addFolder(){let e=await _()?.pickFolder();e&&!this.roots.includes(e)&&this.roots.push(e)},removeRoot(e){this.roots.splice(e,1)},addMcp(){this.mcpServers.push({_uid:this.mcpUid++,id:``,command:``,argsText:``,envText:``,enabled:!0})},removeMcp(e){this.mcpServers.splice(e,1)},mcpStatusFor(e){let t=e.trim();return this.mcpStatuses.find(e=>e.id===t)},mcpBadgeType(e){let t=this.mcpStatusFor(e)?.status;return t===`connected`?`success`:t===`failed`?`danger`:`info`},mcpBadgeText(e){let t=this.mcpStatusFor(e);return this.mcpBusy===e.trim()?this.$t(`common.settings.localToolsMcpConnecting`):t?t.status===`connected`?this.$t(`common.settings.localToolsMcpConnected`,{n:t.toolCount}):t.status===`disabled`?this.$t(`common.settings.localToolsMcpDisabled`):this.$t(`common.settings.localToolsMcpFailed`):this.$t(`common.settings.localToolsMcpNotSaved`)},mcpErrorFor(e){let t=this.mcpStatusFor(e);return t?.status===`failed`&&t.error?t.error:``},buildMcpPayload(){this.mcpError=``;let e=[],t=new Set;for(let n of this.mcpServers){let r=n.id.trim(),i=n.command.trim();if(!r||!i)return this.mcpError=this.$t(`common.settings.localToolsMcpNameRequired`),null;if(!/^[A-Za-z0-9_-]+$/.test(r))return this.mcpError=this.$t(`common.settings.localToolsMcpNameInvalid`),null;if(t.has(r))return this.mcpError=this.$t(`common.settings.localToolsMcpDuplicateName`),null;t.add(r);let a=n.argsText.split(`
4
4
  `).map(e=>e.trim()).filter(Boolean),o={};for(let e of n.envText.split(`
5
- `)){let t=e.trim();if(!t)continue;let n=t.indexOf(`=`);n<=0||(o[t.slice(0,n).trim()]=t.slice(n+1).trim())}let s={id:r,command:i,args:a,enabled:n.enabled!==!1};Object.keys(o).length&&(s.env=o),e.push(s)}return e},async saveMcp(){let e=this.buildMcpPayload();if(!e)return!1;this.savingMcp=!0;try{let t=await v()?.getConfig();return await v()?.saveConfig({roots:t?.roots??this.roots,mcp:e,computerUse:this.computerUse}),await this.refreshMcpStatus(),this.mcpSavedTip=!0,setTimeout(()=>this.mcpSavedTip=!1,2e3),!0}finally{this.savingMcp=!1}},async refreshMcpStatus(){let e=v();e&&(this.mcpStatuses=await e.mcp?.status()??[],this.tools=(await e.listTools())?.map(e=>e.name)??this.tools)},async onToggleMcpEnabled(e){await this.saveMcp()||(e.enabled=!e.enabled)},async reconnectMcp(e){let t=e.id.trim();if(!t||!e.command.trim())return;let n=this.buildMcpPayload();if(n){this.mcpBusy=t;try{let e=await v()?.getConfig();await v()?.saveConfig({roots:e?.roots??this.roots,mcp:n,computerUse:this.computerUse}),await v()?.mcp?.reconnect(t),await this.refreshMcpStatus()}finally{this.mcpBusy=null}}},async open(e){await v()?.perm?.openPane(e)},async save(){this.saving=!0;let e=await v()?.getConfig();await v()?.saveConfig({roots:this.roots,mcp:e?.mcp??[],computerUse:this.computerUse}),this.saving=!1,this.savedTip=!0,setTimeout(()=>this.savedTip=!1,2e3)},async onToggleComputerUse(e){this.savingCU=!0;let t=await v()?.getConfig();if(await v()?.saveConfig({roots:t?.roots??this.roots,mcp:t?.mcp??[],computerUse:e===!0}),this.savingCU=!1,e===!0&&this.android){let e=(await v()?.perm?.status())?.accessibility===!0;this.a11yEnabled=e,e||await this.openAndroidAccessibility()}},async preauthorizeAll(){let e=v();if(e?.preauthorizeComputerUse){this.preauthorizing=!0;try{let t=await e.preauthorizeComputerUse();this.computerUse=t.computerUse===!0,t.perm?.mac&&(this.perm=t.perm),await this.loadGrants()}finally{this.preauthorizing=!1}}},async onToggleComputerTool(e,t){let n=v();if(n){this.cuBusy=e;try{if(t===!0){let t=await n.preauthorizeComputerUse?.([e]);t&&(this.computerUse=t.computerUse===!0,t.perm?.mac&&(this.perm=t.perm))}else await n.grants?.revoke(e);await this.loadGrants()}finally{this.cuBusy=null}}},cuLabel(e){let t=`common.settings.localToolsCu${this.cuSuffix(e)}`,n=this.$t(t);return n===t?e.replace(/^computer\./,``):n},cuIcon(e){return{screenshot:`fa-solid fa-camera`,click:`fa-solid fa-arrow-pointer`,move:`fa-solid fa-up-down-left-right`,type:`fa-solid fa-keyboard`,key:`fa-solid fa-keyboard`,scroll:`fa-solid fa-arrows-up-down`}[e.replace(/^computer\./,``)]??`fa-solid fa-shield-halved`},cuSuffix(e){let t=e.replace(/^computer\./,``);return t.charAt(0).toUpperCase()+t.slice(1)},async onToggleBuiltinTool(e,t){let n=v();if(n?.grants){this.builtinBusy=e;try{t===!0?(await n.grants.grantToolWide?.(e))?.ok||(this.toolGrants={...this.toolGrants,[e]:!1}):await n.grants.revoke(e),await this.loadGrants()}finally{this.builtinBusy=null}}},builtinIcon(e){return e===`shell.run_command`?`fa-solid fa-terminal`:e===`fs.write_file`?`fa-solid fa-pen`:e===`fs.read_file`?`fa-solid fa-file`:e===`fs.list_dir`?`fa-solid fa-folder`:`fa-solid fa-shield-halved`},async revoke(e){await v()?.grants?.revoke(e),await this.loadGrants()},async revokeAll(){await v()?.grants?.clear(),await this.loadGrants()}}}),C=e({default:()=>$}),w={class:`settings-list local-tools-setting`},T={key:0,class:`hint muted`},E={key:0},D={class:`section-head`},O={class:`muted`},k={class:`perm-row`},A={class:`perm-name`},j={key:1},M={class:`section-head`},N={class:`muted`},P={class:`rows`},F={class:`path`},I={key:0,class:`row muted empty`},L={class:`actions`},R={key:0,class:`muted saved-tip`},z={key:0,class:`muted tools`},B={class:`section-head`},V={class:`muted`},H={key:0,class:`rows`},U={class:`mcp-fields`},W={class:`mcp-head`},G={class:`mcp-grid`},K={class:`mcp-flabel`},q={class:`mcp-flabel`},J={class:`mcp-flabel top`},Y={class:`mcp-flabel top`},X={key:0,class:`mcp-row-error`},Z={key:1,class:`muted`},re={class:`muted mcp-platform-hint`},ie={class:`actions`},ae={key:0,class:`muted saved-tip`},oe={key:1,class:`mcp-error`},se={key:2},ce={class:`section-head`},le={class:`muted`},ue={class:`rows`},de={class:`grant`},fe={class:`grant-name`},pe={class:`grant-input`},me={key:0,class:`row muted empty`},he={key:3},ge={class:`section-head`},_e={class:`muted`},ve={class:`rows`},ye={class:`cu-action`},be={class:`cu-action-name`},xe={class:`grant-name`},Se={class:`cu-action-desc`},Ce={class:`section-head`},we={class:`muted`},Te={key:0,class:`perm-row cu-ready-row`},Ee={class:`perm-name`},De={class:`section-head sub`},Oe={class:`muted`},ke={class:`rows`},Ae={class:`cu-action`},je={class:`cu-action-name`},Me={class:`cu-action-desc`},Ne={key:4},Pe={class:`section-head`},Fe={class:`muted`},Ie={class:`rows`},Le={key:0,class:`row`},Re={class:`cu-action`},ze={class:`cu-action-name`},Be={class:`cu-action-desc`},Ve={key:1,class:`row muted empty`},He={key:2,class:`row muted empty`},Q={key:0,class:`muted`},Ue={key:1,class:`muted saved-tip`},We={key:2,class:`mcp-error`},Ge={key:5},Ke={class:`section-head`},qe={class:`muted`},Je={class:`perm-row`},Ye={class:`perm-name`},Xe={class:`perm-row`},Ze={class:`perm-name`},Qe={class:`perm-row`},$e={class:`perm-name`};function et(e,p,ee,te,ne,m){let h=c(`el-tag`),g=c(`el-button`),_=c(`font-awesome-icon`),v=c(`el-switch`),y=c(`el-input`);return f(),o(`div`,w,[e.desktop?(f(),o(s,{key:1},[e.android?(f(),o(`section`,E,[t(`div`,D,[t(`h3`,null,r(e.$t(`common.settings.localToolsPermsTitle`)),1)]),t(`p`,O,r(e.$t(`common.settings.localToolsAndroidPermHint`)),1),t(`div`,k,[t(`span`,A,r(e.$t(`common.settings.localToolsPermAccessibility`)),1),i(h,{size:`small`,type:e.a11yEnabled?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.a11yEnabled?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:e.openAndroidAccessibility},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1},8,[`onClick`])])])):a(``,!0),e.android?a(``,!0):(f(),o(`section`,j,[t(`div`,M,[t(`h3`,null,r(e.$t(`common.settings.localToolsFoldersTitle`)),1),i(g,{size:`small`,type:`primary`,icon:e.Plus,onClick:e.addFolder},{default:u(()=>[n(r(e.$t(`common.settings.localToolsAddFolder`)),1)]),_:1},8,[`icon`,`onClick`])]),t(`p`,N,r(e.$t(`common.settings.localToolsFoldersHint`)),1),t(`ul`,P,[(f(!0),o(s,null,d(e.roots,(a,s)=>(f(),o(`li`,{key:a,class:`row`},[i(_,{icon:`fa-solid fa-folder`,class:`row-icon`}),t(`span`,F,r(a),1),i(g,{size:`small`,text:``,type:`danger`,onClick:t=>e.removeRoot(s)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRemove`)),1)]),_:1},8,[`onClick`])]))),128)),e.roots.length?a(``,!0):(f(),o(`li`,I,r(e.$t(`common.settings.localToolsNoFolders`)),1))]),t(`div`,L,[i(g,{size:`small`,type:`primary`,loading:e.saving,onClick:e.save},{default:u(()=>[n(r(e.$t(`common.settings.localToolsSave`)),1)]),_:1},8,[`loading`,`onClick`]),e.savedTip?(f(),o(`span`,R,r(e.$t(`common.settings.localToolsSaved`)),1)):a(``,!0)]),e.tools.length?(f(),o(`p`,z,r(e.$t(`common.settings.localToolsActiveTools`))+`: `+r(e.tools.join(`, `)),1)):a(``,!0)])),t(`section`,null,[t(`div`,B,[t(`h3`,null,r(e.$t(`common.settings.localToolsMcpTitle`)),1),i(g,{size:`small`,type:`primary`,icon:e.Plus,onClick:e.addMcp},{default:u(()=>[n(r(e.$t(`common.settings.localToolsMcpAdd`)),1)]),_:1},8,[`icon`,`onClick`])]),t(`p`,V,r(e.$t(`common.settings.localToolsMcpHint`)),1),e.mcpServers.length?(f(),o(`ul`,H,[(f(!0),o(s,null,d(e.mcpServers,(s,c)=>(f(),o(`li`,{key:s._uid,class:`row mcp-row`},[t(`div`,U,[t(`div`,W,[i(h,{size:`small`,effect:`plain`,type:e.mcpBadgeType(s.id)},{default:u(()=>[n(r(e.mcpBadgeText(s.id)),1)]),_:2},1032,[`type`]),p[4]||=t(`span`,{class:`mcp-spacer`},null,-1),i(v,{modelValue:s.enabled,"onUpdate:modelValue":e=>s.enabled=e,size:`small`,"active-text":e.$t(`common.settings.localToolsMcpEnabled`),"inline-prompt":``,onChange:t=>e.onToggleMcpEnabled(s)},null,8,[`modelValue`,`onUpdate:modelValue`,`active-text`,`onChange`]),i(g,{size:`small`,text:``,loading:e.mcpBusy===s.id,disabled:!s.id||!s.command,onClick:t=>e.reconnectMcp(s)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsMcpReconnect`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),i(g,{size:`small`,text:``,type:`danger`,onClick:t=>e.removeMcp(c)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRemove`)),1)]),_:1},8,[`onClick`])]),t(`div`,G,[t(`label`,K,r(e.$t(`common.settings.localToolsMcpName`)),1),i(y,{modelValue:s.id,"onUpdate:modelValue":e=>s.id=e,placeholder:e.$t(`common.settings.localToolsMcpNamePlaceholder`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),t(`label`,q,r(e.$t(`common.settings.localToolsMcpCommand`)),1),i(y,{modelValue:s.command,"onUpdate:modelValue":e=>s.command=e,placeholder:e.$t(`common.settings.localToolsMcpCommandPlaceholder`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),t(`label`,J,r(e.$t(`common.settings.localToolsMcpArgs`)),1),i(y,{modelValue:s.argsText,"onUpdate:modelValue":e=>s.argsText=e,type:`textarea`,rows:2,placeholder:e.$t(`common.settings.localToolsMcpArgsHint`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),t(`label`,Y,r(e.$t(`common.settings.localToolsMcpEnv`)),1),i(y,{modelValue:s.envText,"onUpdate:modelValue":e=>s.envText=e,type:`textarea`,rows:2,placeholder:e.$t(`common.settings.localToolsMcpEnvHint`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),e.mcpErrorFor(s.id)?(f(),o(`p`,X,r(e.mcpErrorFor(s.id)),1)):a(``,!0)])]))),128))])):(f(),o(`p`,Z,r(e.$t(`common.settings.localToolsMcpNoServers`)),1)),t(`p`,re,r(e.$t(`common.settings.localToolsMcpPlatformHint`)),1),t(`div`,ie,[i(g,{size:`small`,type:`primary`,loading:e.savingMcp,onClick:e.saveMcp},{default:u(()=>[n(r(e.$t(`common.settings.localToolsSave`)),1)]),_:1},8,[`loading`,`onClick`]),e.mcpSavedTip?(f(),o(`span`,ae,r(e.$t(`common.settings.localToolsSaved`)),1)):a(``,!0),e.mcpError?(f(),o(`span`,oe,r(e.mcpError),1)):a(``,!0)])]),e.grants!==null&&!e.android?(f(),o(`section`,se,[t(`div`,ce,[t(`h3`,null,r(e.$t(`common.settings.localToolsGrantsTitle`)),1),e.grants.length?(f(),l(g,{key:0,size:`small`,text:``,type:`danger`,onClick:e.revokeAll},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRevokeAll`)),1)]),_:1},8,[`onClick`])):a(``,!0)]),t(`p`,le,r(e.$t(`common.settings.localToolsGrantsHint`)),1),t(`ul`,ue,[(f(!0),o(s,null,d(e.grants,a=>(f(),o(`li`,{key:a.key,class:`row`},[i(_,{icon:`fa-solid fa-shield-halved`,class:`row-icon`}),t(`span`,de,[t(`code`,fe,r(a.name),1),t(`span`,pe,r(a.input),1)]),i(g,{size:`small`,type:`danger`,onClick:t=>e.revoke(a.key)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRevoke`)),1)]),_:1},8,[`onClick`])]))),128)),e.grants.length?a(``,!0):(f(),o(`li`,me,r(e.$t(`common.settings.localToolsNoGrants`)),1))])])):a(``,!0),e.builtinTools.length&&!e.android?(f(),o(`section`,he,[t(`div`,ge,[t(`h3`,null,r(e.$t(`common.settings.localToolsBuiltinTitle`)),1)]),t(`p`,_e,r(e.$t(`common.settings.localToolsBuiltinHint`)),1),t(`ul`,ve,[(f(!0),o(s,null,d(e.builtinTools,s=>(f(),o(`li`,{key:s.name,class:`row`},[i(_,{icon:e.builtinIcon(s.name),class:`row-icon`},null,8,[`icon`]),t(`span`,ye,[t(`span`,be,[t(`code`,xe,r(s.name),1),s.name===`shell.run_command`?(f(),l(h,{key:0,size:`small`,type:`danger`,effect:`plain`},{default:u(()=>[n(r(e.$t(`common.settings.localToolsBuiltinRisky`)),1)]),_:1})):a(``,!0)]),t(`span`,Se,r(s.description),1)]),i(v,{"model-value":e.toolGrants[s.name]===!0,loading:e.builtinBusy===s.name,disabled:!!e.builtinBusy,onChange:t=>e.onToggleBuiltinTool(s.name,t)},null,8,[`model-value`,`loading`,`disabled`,`onChange`])]))),128))])])):a(``,!0),t(`section`,null,[t(`div`,Ce,[t(`h3`,null,r(e.$t(`common.settings.localToolsComputerUseTitle`)),1),i(v,{modelValue:e.computerUse,"onUpdate:modelValue":p[0]||=t=>e.computerUse=t,loading:e.savingCU,onChange:e.onToggleComputerUse},null,8,[`modelValue`,`loading`,`onChange`])]),t(`p`,we,r(e.$t(`common.settings.localToolsComputerUseHint`)),1),e.android&&e.computerUse?(f(),o(`div`,Te,[t(`span`,Ee,r(e.$t(`common.settings.localToolsCuA11yLabel`)),1),i(h,{size:`small`,type:e.a11yEnabled?`success`:`danger`,effect:`plain`},{default:u(()=>[n(r(e.a11yEnabled?e.$t(`common.settings.localToolsCuReady`):e.$t(`common.settings.localToolsCuA11yMissing`)),1)]),_:1},8,[`type`]),e.a11yEnabled?a(``,!0):(f(),l(g,{key:0,size:`small`,type:`primary`,onClick:e.openAndroidAccessibility},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1},8,[`onClick`]))])):a(``,!0),e.computerTools.length?(f(),o(s,{key:1},[t(`div`,De,[t(`h4`,null,r(e.$t(`common.settings.localToolsCuActionsTitle`)),1),i(g,{size:`small`,text:``,type:`primary`,loading:e.preauthorizing,onClick:e.preauthorizeAll},{default:u(()=>[n(r(e.$t(`common.settings.localToolsPreauthorizeAll`)),1)]),_:1},8,[`loading`,`onClick`])]),t(`p`,Oe,r(e.$t(`common.settings.localToolsCuActionsHint`)),1),t(`ul`,ke,[(f(!0),o(s,null,d(e.computerTools,n=>(f(),o(`li`,{key:n.name,class:`row`},[i(_,{icon:e.cuIcon(n.name),class:`row-icon`},null,8,[`icon`]),t(`span`,Ae,[t(`span`,je,r(e.cuLabel(n.name)),1),t(`span`,Me,r(n.description),1)]),i(v,{"model-value":e.computerGrants[n.name]===!0,loading:e.cuBusy===n.name,disabled:!!e.cuBusy||e.preauthorizing,onChange:t=>e.onToggleComputerTool(n.name,t)},null,8,[`model-value`,`loading`,`disabled`,`onChange`])]))),128))])],64)):a(``,!0)]),e.android?(f(),o(`section`,Ne,[t(`div`,Pe,[t(`h3`,null,r(e.$t(`common.settings.localToolsAndroidSkillsTitle`)),1)]),t(`p`,Fe,r(e.$t(`common.settings.localToolsAndroidSkillsHint`)),1),t(`ul`,Ie,[e.xhsSkill?(f(),o(`li`,Le,[i(_,{icon:`fa-solid fa-wand-magic-sparkles`,class:`row-icon`}),t(`span`,Re,[t(`span`,ze,r(e.$t(`common.settings.localToolsAndroidSkillsXhsName`)),1),t(`span`,Be,r(e.$t(`common.settings.localToolsAndroidSkillsXhsDesc`)),1)]),e.xhsSkill.installed?(f(),l(h,{key:0,size:`small`,type:`success`,effect:`plain`},{default:u(()=>[n(r(e.$t(`common.settings.localToolsAndroidSkillsInstalled`)),1)]),_:1})):(f(),l(g,{key:1,size:`small`,type:`primary`,loading:e.xhsInstalling,disabled:!e.canInstallXhs,onClick:e.installXhs},{default:u(()=>[n(r(e.$t(`common.settings.localToolsAndroidSkillsInstall`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]))])):e.xhsLoading?(f(),o(`li`,Ve,r(e.$t(`common.settings.localToolsAndroidSkillsLoading`)),1)):e.xhsError?a(``,!0):(f(),o(`li`,He,r(e.$t(`common.settings.localToolsAndroidSkillsUnavailable`)),1))]),e.xhsSkill&&!e.xhsSkill.installed&&!e.canInstallXhs?(f(),o(`p`,Q,r(e.$t(`common.settings.localToolsAndroidSkillsNeedComputerUse`)),1)):a(``,!0),e.xhsSkill&&e.xhsSkill.installed?(f(),o(`p`,Ue,r(e.$t(`common.settings.localToolsAndroidSkillsNextTurn`)),1)):a(``,!0),e.xhsError?(f(),o(`p`,We,r(e.xhsError),1)):a(``,!0)])):a(``,!0),e.perm?(f(),o(`section`,Ge,[t(`div`,Ke,[t(`h3`,null,r(e.$t(`common.settings.localToolsPermsTitle`)),1)]),t(`p`,qe,r(e.$t(`common.settings.localToolsPermsHint`)),1),t(`div`,Je,[t(`span`,Ye,r(e.$t(`common.settings.localToolsPermFullDisk`)),1),i(h,{size:`small`,type:e.perm.fullDisk?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.perm.fullDisk?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:p[1]||=t=>e.open(`fullDisk`)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1})]),t(`div`,Xe,[t(`span`,Ze,r(e.$t(`common.settings.localToolsPermScreen`)),1),i(h,{size:`small`,type:e.perm.screen===`granted`?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.perm.screen===`granted`?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:p[2]||=t=>e.open(`screen`)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1})]),t(`div`,Qe,[t(`span`,$e,r(e.$t(`common.settings.localToolsPermAccessibility`)),1),i(h,{size:`small`,type:e.perm.accessibility?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.perm.accessibility?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:p[3]||=t=>e.open(`accessibility`)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1})])])):a(``,!0)],64)):(f(),o(`p`,T,r(e.$t(`common.settings.localToolsDesktopOnly`)),1))])}var $=h(S,[[`render`,et],[`__scopeId`,`data-v-52c7ac3c`]]);export{C as n,$ as t};
5
+ `)){let t=e.trim();if(!t)continue;let n=t.indexOf(`=`);n<=0||(o[t.slice(0,n).trim()]=t.slice(n+1).trim())}let s={id:r,command:i,args:a,enabled:n.enabled!==!1};Object.keys(o).length&&(s.env=o),e.push(s)}return e},async saveMcp(){let e=this.buildMcpPayload();if(!e)return!1;this.savingMcp=!0;try{let t=await _()?.getConfig();return await _()?.saveConfig({roots:t?.roots??this.roots,mcp:e,computerUse:this.computerUse}),await this.refreshMcpStatus(),this.mcpSavedTip=!0,setTimeout(()=>this.mcpSavedTip=!1,2e3),!0}finally{this.savingMcp=!1}},async refreshMcpStatus(){let e=_();e&&(this.mcpStatuses=await e.mcp?.status()??[],this.tools=(await e.listTools())?.map(e=>e.name)??this.tools)},async onToggleMcpEnabled(e){await this.saveMcp()||(e.enabled=!e.enabled)},async reconnectMcp(e){let t=e.id.trim();if(!t||!e.command.trim())return;let n=this.buildMcpPayload();if(n){this.mcpBusy=t;try{let e=await _()?.getConfig();await _()?.saveConfig({roots:e?.roots??this.roots,mcp:n,computerUse:this.computerUse}),await _()?.mcp?.reconnect(t),await this.refreshMcpStatus()}finally{this.mcpBusy=null}}},async open(e){await _()?.perm?.openPane(e)},async save(){this.saving=!0;let e=await _()?.getConfig();await _()?.saveConfig({roots:this.roots,mcp:e?.mcp??[],computerUse:this.computerUse}),this.saving=!1,this.savedTip=!0,setTimeout(()=>this.savedTip=!1,2e3)},async onToggleComputerUse(e){this.savingCU=!0;let t=await _()?.getConfig();if(await _()?.saveConfig({roots:t?.roots??this.roots,mcp:t?.mcp??[],computerUse:e===!0}),this.savingCU=!1,e===!0&&this.android){let e=(await _()?.perm?.status())?.accessibility===!0;this.a11yEnabled=e,e||await this.openAndroidAccessibility()}},async preauthorizeAll(){let e=_();if(e?.preauthorizeComputerUse){this.preauthorizing=!0;try{let t=await e.preauthorizeComputerUse();this.computerUse=t.computerUse===!0,t.perm?.mac&&(this.perm=t.perm),await this.loadGrants()}finally{this.preauthorizing=!1}}},async onToggleComputerTool(e,t){let n=_();if(n){this.cuBusy=e;try{if(t===!0){let t=await n.preauthorizeComputerUse?.([e]);t&&(this.computerUse=t.computerUse===!0,t.perm?.mac&&(this.perm=t.perm))}else await n.grants?.revoke(e);await this.loadGrants()}finally{this.cuBusy=null}}},cuLabel(e){let t=`common.settings.localToolsCu${this.cuSuffix(e)}`,n=this.$t(t);return n===t?e.replace(/^computer\./,``):n},cuIcon(e){return{screenshot:`fa-solid fa-camera`,click:`fa-solid fa-arrow-pointer`,move:`fa-solid fa-up-down-left-right`,type:`fa-solid fa-keyboard`,key:`fa-solid fa-keyboard`,scroll:`fa-solid fa-arrows-up-down`}[e.replace(/^computer\./,``)]??`fa-solid fa-shield-halved`},cuSuffix(e){let t=e.replace(/^computer\./,``);return t.charAt(0).toUpperCase()+t.slice(1)},async onToggleBuiltinTool(e,t){let n=_();if(n?.grants){this.builtinBusy=e;try{t===!0?(await n.grants.grantToolWide?.(e))?.ok||(this.toolGrants={...this.toolGrants,[e]:!1}):await n.grants.revoke(e),await this.loadGrants()}finally{this.builtinBusy=null}}},builtinIcon(e){return e===`shell.run_command`?`fa-solid fa-terminal`:e===`fs.write_file`?`fa-solid fa-pen`:e===`fs.read_file`?`fa-solid fa-file`:e===`fs.list_dir`?`fa-solid fa-folder`:`fa-solid fa-shield-halved`},async revoke(e){await _()?.grants?.revoke(e),await this.loadGrants()},async revokeAll(){await _()?.grants?.clear(),await this.loadGrants()}}}),C=e({default:()=>$}),w={class:`settings-list local-tools-setting`},T={key:0,class:`hint muted`},E={key:0},D={class:`section-head`},O={class:`muted`},k={class:`perm-row`},A={class:`perm-name`},j={key:1},M={class:`section-head`},N={class:`muted`},P={class:`rows`},F={class:`path`},I={key:0,class:`row muted empty`},L={class:`actions`},R={key:0,class:`muted saved-tip`},z={key:0,class:`muted tools`},B={class:`section-head`},V={class:`muted`},H={key:0,class:`rows`},U={class:`mcp-fields`},W={class:`mcp-head`},G={class:`mcp-grid`},K={class:`mcp-flabel`},q={class:`mcp-flabel`},J={class:`mcp-flabel top`},Y={class:`mcp-flabel top`},X={key:0,class:`mcp-row-error`},Z={key:1,class:`muted`},re={class:`muted mcp-platform-hint`},ie={class:`actions`},ae={key:0,class:`muted saved-tip`},oe={key:1,class:`mcp-error`},se={key:2},ce={class:`section-head`},le={class:`muted`},ue={class:`rows`},de={class:`grant`},fe={class:`grant-name`},pe={class:`grant-input`},me={key:0,class:`row muted empty`},he={key:3},ge={class:`section-head`},_e={class:`muted`},ve={class:`rows`},ye={class:`cu-action`},be={class:`cu-action-name`},xe={class:`grant-name`},Se={class:`cu-action-desc`},Ce={class:`section-head`},we={class:`muted`},Te={key:0,class:`perm-row cu-ready-row`},Ee={class:`perm-name`},De={class:`section-head sub`},Oe={class:`muted`},ke={class:`rows`},Ae={class:`cu-action`},je={class:`cu-action-name`},Me={class:`cu-action-desc`},Ne={key:4},Pe={class:`section-head`},Fe={class:`muted`},Ie={class:`rows`},Le={key:0,class:`row`},Re={class:`cu-action`},ze={class:`cu-action-name`},Be={class:`cu-action-desc`},Ve={key:1,class:`row muted empty`},He={key:2,class:`row muted empty`},Q={key:0,class:`muted`},Ue={key:1,class:`muted saved-tip`},We={key:2,class:`mcp-error`},Ge={key:5},Ke={class:`section-head`},qe={class:`muted`},Je={class:`perm-row`},Ye={class:`perm-name`},Xe={class:`perm-row`},Ze={class:`perm-name`},Qe={class:`perm-row`},$e={class:`perm-name`};function et(e,p,ee,te,m,ne){let h=c(`el-tag`),g=c(`el-button`),_=c(`font-awesome-icon`),v=c(`el-switch`),y=c(`el-input`);return f(),o(`div`,w,[e.desktop?(f(),o(s,{key:1},[e.android?(f(),o(`section`,E,[t(`div`,D,[t(`h3`,null,r(e.$t(`common.settings.localToolsPermsTitle`)),1)]),t(`p`,O,r(e.$t(`common.settings.localToolsAndroidPermHint`)),1),t(`div`,k,[t(`span`,A,r(e.$t(`common.settings.localToolsPermAccessibility`)),1),i(h,{size:`small`,type:e.a11yEnabled?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.a11yEnabled?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:e.openAndroidAccessibility},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1},8,[`onClick`])])])):a(``,!0),e.android?a(``,!0):(f(),o(`section`,j,[t(`div`,M,[t(`h3`,null,r(e.$t(`common.settings.localToolsFoldersTitle`)),1),i(g,{size:`small`,type:`primary`,icon:e.Plus,onClick:e.addFolder},{default:u(()=>[n(r(e.$t(`common.settings.localToolsAddFolder`)),1)]),_:1},8,[`icon`,`onClick`])]),t(`p`,N,r(e.$t(`common.settings.localToolsFoldersHint`)),1),t(`ul`,P,[(f(!0),o(s,null,d(e.roots,(a,s)=>(f(),o(`li`,{key:a,class:`row`},[i(_,{icon:`fa-solid fa-folder`,class:`row-icon`}),t(`span`,F,r(a),1),i(g,{size:`small`,text:``,type:`danger`,onClick:t=>e.removeRoot(s)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRemove`)),1)]),_:1},8,[`onClick`])]))),128)),e.roots.length?a(``,!0):(f(),o(`li`,I,r(e.$t(`common.settings.localToolsNoFolders`)),1))]),t(`div`,L,[i(g,{size:`small`,type:`primary`,loading:e.saving,onClick:e.save},{default:u(()=>[n(r(e.$t(`common.settings.localToolsSave`)),1)]),_:1},8,[`loading`,`onClick`]),e.savedTip?(f(),o(`span`,R,r(e.$t(`common.settings.localToolsSaved`)),1)):a(``,!0)]),e.tools.length?(f(),o(`p`,z,r(e.$t(`common.settings.localToolsActiveTools`))+`: `+r(e.tools.join(`, `)),1)):a(``,!0)])),t(`section`,null,[t(`div`,B,[t(`h3`,null,r(e.$t(`common.settings.localToolsMcpTitle`)),1),i(g,{size:`small`,type:`primary`,icon:e.Plus,onClick:e.addMcp},{default:u(()=>[n(r(e.$t(`common.settings.localToolsMcpAdd`)),1)]),_:1},8,[`icon`,`onClick`])]),t(`p`,V,r(e.$t(`common.settings.localToolsMcpHint`)),1),e.mcpServers.length?(f(),o(`ul`,H,[(f(!0),o(s,null,d(e.mcpServers,(s,c)=>(f(),o(`li`,{key:s._uid,class:`row mcp-row`},[t(`div`,U,[t(`div`,W,[i(h,{size:`small`,effect:`plain`,type:e.mcpBadgeType(s.id)},{default:u(()=>[n(r(e.mcpBadgeText(s.id)),1)]),_:2},1032,[`type`]),p[4]||=t(`span`,{class:`mcp-spacer`},null,-1),i(v,{modelValue:s.enabled,"onUpdate:modelValue":e=>s.enabled=e,size:`small`,"active-text":e.$t(`common.settings.localToolsMcpEnabled`),"inline-prompt":``,onChange:t=>e.onToggleMcpEnabled(s)},null,8,[`modelValue`,`onUpdate:modelValue`,`active-text`,`onChange`]),i(g,{size:`small`,text:``,loading:e.mcpBusy===s.id,disabled:!s.id||!s.command,onClick:t=>e.reconnectMcp(s)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsMcpReconnect`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),i(g,{size:`small`,text:``,type:`danger`,onClick:t=>e.removeMcp(c)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRemove`)),1)]),_:1},8,[`onClick`])]),t(`div`,G,[t(`label`,K,r(e.$t(`common.settings.localToolsMcpName`)),1),i(y,{modelValue:s.id,"onUpdate:modelValue":e=>s.id=e,placeholder:e.$t(`common.settings.localToolsMcpNamePlaceholder`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),t(`label`,q,r(e.$t(`common.settings.localToolsMcpCommand`)),1),i(y,{modelValue:s.command,"onUpdate:modelValue":e=>s.command=e,placeholder:e.$t(`common.settings.localToolsMcpCommandPlaceholder`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),t(`label`,J,r(e.$t(`common.settings.localToolsMcpArgs`)),1),i(y,{modelValue:s.argsText,"onUpdate:modelValue":e=>s.argsText=e,type:`textarea`,rows:2,placeholder:e.$t(`common.settings.localToolsMcpArgsHint`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),t(`label`,Y,r(e.$t(`common.settings.localToolsMcpEnv`)),1),i(y,{modelValue:s.envText,"onUpdate:modelValue":e=>s.envText=e,type:`textarea`,rows:2,placeholder:e.$t(`common.settings.localToolsMcpEnvHint`)},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])]),e.mcpErrorFor(s.id)?(f(),o(`p`,X,r(e.mcpErrorFor(s.id)),1)):a(``,!0)])]))),128))])):(f(),o(`p`,Z,r(e.$t(`common.settings.localToolsMcpNoServers`)),1)),t(`p`,re,r(e.$t(`common.settings.localToolsMcpPlatformHint`)),1),t(`div`,ie,[i(g,{size:`small`,type:`primary`,loading:e.savingMcp,onClick:e.saveMcp},{default:u(()=>[n(r(e.$t(`common.settings.localToolsSave`)),1)]),_:1},8,[`loading`,`onClick`]),e.mcpSavedTip?(f(),o(`span`,ae,r(e.$t(`common.settings.localToolsSaved`)),1)):a(``,!0),e.mcpError?(f(),o(`span`,oe,r(e.mcpError),1)):a(``,!0)])]),e.grants!==null&&!e.android?(f(),o(`section`,se,[t(`div`,ce,[t(`h3`,null,r(e.$t(`common.settings.localToolsGrantsTitle`)),1),e.grants.length?(f(),l(g,{key:0,size:`small`,text:``,type:`danger`,onClick:e.revokeAll},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRevokeAll`)),1)]),_:1},8,[`onClick`])):a(``,!0)]),t(`p`,le,r(e.$t(`common.settings.localToolsGrantsHint`)),1),t(`ul`,ue,[(f(!0),o(s,null,d(e.grants,a=>(f(),o(`li`,{key:a.key,class:`row`},[i(_,{icon:`fa-solid fa-shield-halved`,class:`row-icon`}),t(`span`,de,[t(`code`,fe,r(a.name),1),t(`span`,pe,r(a.input),1)]),i(g,{size:`small`,type:`danger`,onClick:t=>e.revoke(a.key)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsRevoke`)),1)]),_:1},8,[`onClick`])]))),128)),e.grants.length?a(``,!0):(f(),o(`li`,me,r(e.$t(`common.settings.localToolsNoGrants`)),1))])])):a(``,!0),e.builtinTools.length&&!e.android?(f(),o(`section`,he,[t(`div`,ge,[t(`h3`,null,r(e.$t(`common.settings.localToolsBuiltinTitle`)),1)]),t(`p`,_e,r(e.$t(`common.settings.localToolsBuiltinHint`)),1),t(`ul`,ve,[(f(!0),o(s,null,d(e.builtinTools,s=>(f(),o(`li`,{key:s.name,class:`row`},[i(_,{icon:e.builtinIcon(s.name),class:`row-icon`},null,8,[`icon`]),t(`span`,ye,[t(`span`,be,[t(`code`,xe,r(s.name),1),s.name===`shell.run_command`?(f(),l(h,{key:0,size:`small`,type:`danger`,effect:`plain`},{default:u(()=>[n(r(e.$t(`common.settings.localToolsBuiltinRisky`)),1)]),_:1})):a(``,!0)]),t(`span`,Se,r(s.description),1)]),i(v,{"model-value":e.toolGrants[s.name]===!0,loading:e.builtinBusy===s.name,disabled:!!e.builtinBusy,onChange:t=>e.onToggleBuiltinTool(s.name,t)},null,8,[`model-value`,`loading`,`disabled`,`onChange`])]))),128))])])):a(``,!0),t(`section`,null,[t(`div`,Ce,[t(`h3`,null,r(e.$t(`common.settings.localToolsComputerUseTitle`)),1),i(v,{modelValue:e.computerUse,"onUpdate:modelValue":p[0]||=t=>e.computerUse=t,loading:e.savingCU,onChange:e.onToggleComputerUse},null,8,[`modelValue`,`loading`,`onChange`])]),t(`p`,we,r(e.$t(`common.settings.localToolsComputerUseHint`)),1),e.android&&e.computerUse?(f(),o(`div`,Te,[t(`span`,Ee,r(e.$t(`common.settings.localToolsCuA11yLabel`)),1),i(h,{size:`small`,type:e.a11yEnabled?`success`:`danger`,effect:`plain`},{default:u(()=>[n(r(e.a11yEnabled?e.$t(`common.settings.localToolsCuReady`):e.$t(`common.settings.localToolsCuA11yMissing`)),1)]),_:1},8,[`type`]),e.a11yEnabled?a(``,!0):(f(),l(g,{key:0,size:`small`,type:`primary`,onClick:e.openAndroidAccessibility},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1},8,[`onClick`]))])):a(``,!0),e.computerTools.length?(f(),o(s,{key:1},[t(`div`,De,[t(`h4`,null,r(e.$t(`common.settings.localToolsCuActionsTitle`)),1),i(g,{size:`small`,text:``,type:`primary`,loading:e.preauthorizing,onClick:e.preauthorizeAll},{default:u(()=>[n(r(e.$t(`common.settings.localToolsPreauthorizeAll`)),1)]),_:1},8,[`loading`,`onClick`])]),t(`p`,Oe,r(e.$t(`common.settings.localToolsCuActionsHint`)),1),t(`ul`,ke,[(f(!0),o(s,null,d(e.computerTools,n=>(f(),o(`li`,{key:n.name,class:`row`},[i(_,{icon:e.cuIcon(n.name),class:`row-icon`},null,8,[`icon`]),t(`span`,Ae,[t(`span`,je,r(e.cuLabel(n.name)),1),t(`span`,Me,r(n.description),1)]),i(v,{"model-value":e.computerGrants[n.name]===!0,loading:e.cuBusy===n.name,disabled:!!e.cuBusy||e.preauthorizing,onChange:t=>e.onToggleComputerTool(n.name,t)},null,8,[`model-value`,`loading`,`disabled`,`onChange`])]))),128))])],64)):a(``,!0)]),e.android?(f(),o(`section`,Ne,[t(`div`,Pe,[t(`h3`,null,r(e.$t(`common.settings.localToolsAndroidSkillsTitle`)),1)]),t(`p`,Fe,r(e.$t(`common.settings.localToolsAndroidSkillsHint`)),1),t(`ul`,Ie,[e.xhsSkill?(f(),o(`li`,Le,[i(_,{icon:`fa-solid fa-wand-magic-sparkles`,class:`row-icon`}),t(`span`,Re,[t(`span`,ze,r(e.$t(`common.settings.localToolsAndroidSkillsXhsName`)),1),t(`span`,Be,r(e.$t(`common.settings.localToolsAndroidSkillsXhsDesc`)),1)]),e.xhsSkill.installed?(f(),l(h,{key:0,size:`small`,type:`success`,effect:`plain`},{default:u(()=>[n(r(e.$t(`common.settings.localToolsAndroidSkillsInstalled`)),1)]),_:1})):(f(),l(g,{key:1,size:`small`,type:`primary`,loading:e.xhsInstalling,disabled:!e.canInstallXhs,onClick:e.installXhs},{default:u(()=>[n(r(e.$t(`common.settings.localToolsAndroidSkillsInstall`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]))])):e.xhsLoading?(f(),o(`li`,Ve,r(e.$t(`common.settings.localToolsAndroidSkillsLoading`)),1)):e.xhsError?a(``,!0):(f(),o(`li`,He,r(e.$t(`common.settings.localToolsAndroidSkillsUnavailable`)),1))]),e.xhsSkill&&!e.xhsSkill.installed&&!e.canInstallXhs?(f(),o(`p`,Q,r(e.$t(`common.settings.localToolsAndroidSkillsNeedComputerUse`)),1)):a(``,!0),e.xhsSkill&&e.xhsSkill.installed?(f(),o(`p`,Ue,r(e.$t(`common.settings.localToolsAndroidSkillsNextTurn`)),1)):a(``,!0),e.xhsError?(f(),o(`p`,We,r(e.xhsError),1)):a(``,!0)])):a(``,!0),e.perm?(f(),o(`section`,Ge,[t(`div`,Ke,[t(`h3`,null,r(e.$t(`common.settings.localToolsPermsTitle`)),1)]),t(`p`,qe,r(e.$t(`common.settings.localToolsPermsHint`)),1),t(`div`,Je,[t(`span`,Ye,r(e.$t(`common.settings.localToolsPermFullDisk`)),1),i(h,{size:`small`,type:e.perm.fullDisk?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.perm.fullDisk?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:p[1]||=t=>e.open(`fullDisk`)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1})]),t(`div`,Xe,[t(`span`,Ze,r(e.$t(`common.settings.localToolsPermScreen`)),1),i(h,{size:`small`,type:e.perm.screen===`granted`?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.perm.screen===`granted`?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:p[2]||=t=>e.open(`screen`)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1})]),t(`div`,Qe,[t(`span`,$e,r(e.$t(`common.settings.localToolsPermAccessibility`)),1),i(h,{size:`small`,type:e.perm.accessibility?`success`:`info`,effect:`plain`},{default:u(()=>[n(r(e.perm.accessibility?e.$t(`common.settings.localToolsGranted`):e.$t(`common.settings.localToolsNotGranted`)),1)]),_:1},8,[`type`]),i(g,{size:`small`,type:`primary`,onClick:p[3]||=t=>e.open(`accessibility`)},{default:u(()=>[n(r(e.$t(`common.settings.localToolsOpen`)),1)]),_:1})])])):a(``,!0)],64)):(f(),o(`p`,T,r(e.$t(`common.settings.localToolsDesktopOnly`)),1))])}var $=h(S,[[`render`,et],[`__scopeId`,`data-v-52c7ac3c`]]);export{C as n,$ as t};
@@ -1 +1 @@
1
- import{A as e,Jt as t,L as n,N as r,at as i,tt as a,z as o}from"./vendor-chart-Dw-P17PN.js";import{G as s}from"./index-DNz_lMrM.js";import{t as c}from"./LocalTools-DMVDU4bA.js";var l=o({name:`SettingsLocalTools`,components:{LocalToolsSetting:c}}),u={class:`local-tools-page`};function d(o,s,c,l,d,f){let p=i(`local-tools-setting`);return a(),r(`div`,u,[e(`h2`,null,t(o.$t(`common.settings.localTools`)),1),n(p)])}var f=s(l,[[`render`,d],[`__scopeId`,`data-v-ac732814`]]);export{f as default};
1
+ import{A as e,Jt as t,L as n,N as r,at as i,tt as a,z as o}from"./vendor-chart-Dw-P17PN.js";import{J as s}from"./index-DHGr0qfr.js";import{t as c}from"./LocalTools-CMxoLA7U.js";var l=o({name:`SettingsLocalTools`,components:{LocalToolsSetting:c}}),u={class:`local-tools-page`};function d(o,s,c,l,d,f){let p=i(`local-tools-setting`);return a(),r(`div`,u,[e(`h2`,null,t(o.$t(`common.settings.localTools`)),1),n(p)])}var f=s(l,[[`render`,d],[`__scopeId`,`data-v-ac732814`]]);export{f as default};