chainlesschain 0.157.5 → 0.157.6

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 (130) hide show
  1. package/package.json +1 -1
  2. package/src/assets/web-panel/.build-hash +1 -1
  3. package/src/assets/web-panel/assets/AIOps-BT4aiWvN.js +1 -0
  4. package/src/assets/web-panel/assets/{ActionButton-DiRyhKar.js → ActionButton-DAsV0-Ys.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-C-wKOKnM.js → Analytics-DD0zl4Pt.js} +1 -1
  6. package/src/assets/web-panel/assets/AppLayout-C39vcA-h.js +1 -0
  7. package/src/assets/web-panel/assets/AppLayout-CQShwOhr.css +1 -0
  8. package/src/assets/web-panel/assets/{Backup-Bk1_Tsej.js → Backup-YA2dxmc0.js} +1 -1
  9. package/src/assets/web-panel/assets/{BaseInput-BZ74CVZs.js → BaseInput-DEsW823u.js} +1 -1
  10. package/src/assets/web-panel/assets/{Chat-DZ__6l_m.js → Chat-DWPvh1tj.js} +2 -2
  11. package/src/assets/web-panel/assets/{Checkbox-CZEC61kY.js → Checkbox-Clf5-xld.js} +1 -1
  12. package/src/assets/web-panel/assets/{Col-CNBJWyWl.js → Col-CH1hrzXT.js} +1 -1
  13. package/src/assets/web-panel/assets/{Community-DGQcJUCL.js → Community-roZ8U4aT.js} +1 -1
  14. package/src/assets/web-panel/assets/{Compact-C8l08DTy.js → Compact-BgdvLc3A.js} +1 -1
  15. package/src/assets/web-panel/assets/{Compliance-DYB_MbmT.js → Compliance-CufbqW0y.js} +1 -1
  16. package/src/assets/web-panel/assets/{Cowork-DV3JWBAJ.js → Cowork-C_IaxH0e.js} +4 -4
  17. package/src/assets/web-panel/assets/{Cron-DGQz9J9u.js → Cron-DhL_2kgD.js} +1 -1
  18. package/src/assets/web-panel/assets/{Crosschain-CIWQ4dI-.js → Crosschain-DJOk256v.js} +1 -1
  19. package/src/assets/web-panel/assets/{DID-CKd_c4PX.js → DID-C-NGafCc.js} +1 -1
  20. package/src/assets/web-panel/assets/{Dashboard-CtHAdcCn.js → Dashboard-BehZEEGb.js} +2 -2
  21. package/src/assets/web-panel/assets/{Dropdown-a19vPJmP.js → Dropdown-Di1XKsKH.js} +1 -1
  22. package/src/assets/web-panel/assets/{FormItemContext-B5ayZ9zK.js → FormItemContext-BiLL758Z.js} +1 -1
  23. package/src/assets/web-panel/assets/{Git-CMTjLD8-.js → Git-CK7BDDon.js} +1 -1
  24. package/src/assets/web-panel/assets/Inference-BKfMNDPb.js +1 -0
  25. package/src/assets/web-panel/assets/Inference-EFFc7eNZ.css +1 -0
  26. package/src/assets/web-panel/assets/{KnowledgeGraph-CO-ivdDK.js → KnowledgeGraph-CnMK_681.js} +1 -1
  27. package/src/assets/web-panel/assets/{Logs-sCDOUYuS.js → Logs-OZ_SDJhi.js} +1 -1
  28. package/src/assets/web-panel/assets/Marketplace-s1GETxG1.js +1 -0
  29. package/src/assets/web-panel/assets/{McpTools-CqnNMG6W.js → McpTools-I_suskam.js} +2 -2
  30. package/src/assets/web-panel/assets/{Memory-D_O87sbR.js → Memory-Xg-8FUwL.js} +2 -2
  31. package/src/assets/web-panel/assets/NLProgramming-CuTxb54H.js +1 -0
  32. package/src/assets/web-panel/assets/NLProgramming-jURs-f-a.css +1 -0
  33. package/src/assets/web-panel/assets/{Notes-Bh7KP6cl.js → Notes-D3HPrdzx.js} +1 -1
  34. package/src/assets/web-panel/assets/{Organization-CoonBV6s.js → Organization-BPk2hqkU.js} +4 -4
  35. package/src/assets/web-panel/assets/{Overflow-_g4V_Ju_.js → Overflow-DglXWvmc.js} +1 -1
  36. package/src/assets/web-panel/assets/{P2P-DypZ1ege.js → P2P-9506J4Fa.js} +2 -2
  37. package/src/assets/web-panel/assets/{Permissions-BgZSIvcr.js → Permissions-D1ZT_iLb.js} +3 -3
  38. package/src/assets/web-panel/assets/Pipeline-DyqCLFVr.css +1 -0
  39. package/src/assets/web-panel/assets/Pipeline-s2l8q5TK.js +1 -0
  40. package/src/assets/web-panel/assets/Privacy-B_cAicd1.css +1 -0
  41. package/src/assets/web-panel/assets/Privacy-Cj1MuXI1.js +1 -0
  42. package/src/assets/web-panel/assets/{ProjectSettings-juTiV4PS.js → ProjectSettings-Ck1WnkO5.js} +1 -1
  43. package/src/assets/web-panel/assets/{Projects-DmPNnqOJ.js → Projects-1kgHPHWk.js} +2 -2
  44. package/src/assets/web-panel/assets/{Providers-BJsAfkjy.js → Providers-DnE4yu5E.js} +2 -2
  45. package/src/assets/web-panel/assets/{Row-DrdDP98g.js → Row-B0eZSULe.js} +1 -1
  46. package/src/assets/web-panel/assets/{RssFeed-dYFn7J6x.js → RssFeed-CKCkUq-C.js} +1 -1
  47. package/src/assets/web-panel/assets/{Security-kxRpCiKJ.js → Security-DIVXGpQK.js} +4 -4
  48. package/src/assets/web-panel/assets/{Services-BP4AjEx_.js → Services-DhJEUDnu.js} +2 -2
  49. package/src/assets/web-panel/assets/{Skeleton-Cpa-ty0l.js → Skeleton-ecuW2YBG.js} +1 -1
  50. package/src/assets/web-panel/assets/Skills-DeBN8_s8.js +1 -0
  51. package/src/assets/web-panel/assets/{Tasks-DzX0K-kB.js → Tasks-R-1xMJ9F.js} +1 -1
  52. package/src/assets/web-panel/assets/Templates-DHHfXjDu.js +1 -0
  53. package/src/assets/web-panel/assets/Tenant-BJr-h-_0.css +1 -0
  54. package/src/assets/web-panel/assets/Tenant-CC0KuURy.js +1 -0
  55. package/src/assets/web-panel/assets/{Trigger-CoAAYYBt.js → Trigger-D9s00Sgd.js} +1 -1
  56. package/src/assets/web-panel/assets/{VideoEditing-CkgIUHZZ.js → VideoEditing-DcDab4pD.js} +1 -1
  57. package/src/assets/web-panel/assets/{Wallet-CgA-lpLW.js → Wallet-DQl4w6NV.js} +4 -4
  58. package/src/assets/web-panel/assets/{WebAuthn-CY41bHIQ.js → WebAuthn-Hr3U_uGz.js} +2 -2
  59. package/src/assets/web-panel/assets/{WorkflowEditor-CE7u19Od.js → WorkflowEditor-BC8eATB5.js} +1 -1
  60. package/src/assets/web-panel/assets/{colors-CIKN8L8n.js → colors-CCC3A9ZL.js} +1 -1
  61. package/src/assets/web-panel/assets/{compact-item-CrBQCz3V.js → compact-item-BmWW5F8V.js} +1 -1
  62. package/src/assets/web-panel/assets/{createContext-D1QXMs7U.js → createContext-B2b9CRr1.js} +1 -1
  63. package/src/assets/web-panel/assets/{hasIn-tTUZknBU.js → hasIn-BRo_JT_S.js} +1 -1
  64. package/src/assets/web-panel/assets/icons-DbKJDD5_.js +57 -0
  65. package/src/assets/web-panel/assets/{index-BIPWZw8B.js → index-1U9E0b34.js} +1 -1
  66. package/src/assets/web-panel/assets/{index-BX3rXaHn.js → index-2Yn7789f.js} +1 -1
  67. package/src/assets/web-panel/assets/{index-COySbArp.js → index-2kaOH6lv.js} +1 -1
  68. package/src/assets/web-panel/assets/{index-BwiOpWc5.js → index-6h7y54EK.js} +1 -1
  69. package/src/assets/web-panel/assets/{index-DvmvdIT_.js → index-B7kbey_Y.js} +1 -1
  70. package/src/assets/web-panel/assets/index-BLYcQWYW.js +36 -0
  71. package/src/assets/web-panel/assets/{index-cfS19Vfx.js → index-BafG-FrC.js} +1 -1
  72. package/src/assets/web-panel/assets/{index-X4HbBQbI.js → index-Bd2qQOOl.js} +1 -1
  73. package/src/assets/web-panel/assets/{index-ClrnG3mQ.js → index-BiCTVNS6.js} +1 -1
  74. package/src/assets/web-panel/assets/{index-zKNadN9-.js → index-BiNBF-Y_.js} +2 -2
  75. package/src/assets/web-panel/assets/{index-CYAkBhrQ.js → index-Bkjna3jQ.js} +1 -1
  76. package/src/assets/web-panel/assets/{index-DhUBtkRD.js → index-Bxy0lJmt.js} +1 -1
  77. package/src/assets/web-panel/assets/{index-8nKSWBcm.js → index-BynNl5nX.js} +2 -2
  78. package/src/assets/web-panel/assets/{index-p1nJ70IV.js → index-CAv1O9z-.js} +1 -1
  79. package/src/assets/web-panel/assets/index-CEwU1s8_.js +12 -0
  80. package/src/assets/web-panel/assets/{index-D06WGcI3.js → index-CG3GraND.js} +1 -1
  81. package/src/assets/web-panel/assets/{index-CclY9-28.js → index-CNBAfkwP.js} +1 -1
  82. package/src/assets/web-panel/assets/index-CNtb4sCH.js +55 -0
  83. package/src/assets/web-panel/assets/{index-DZkS3V1X.js → index-CSF19Udr.js} +1 -1
  84. package/src/assets/web-panel/assets/{index-_3pzrgIO.js → index-CV88wBE4.js} +1 -1
  85. package/src/assets/web-panel/assets/{index-BDjky3rX.js → index-CWIWWW-z.js} +1 -1
  86. package/src/assets/web-panel/assets/{index-Bi_6FYU5.js → index-Crg53xLr.js} +1 -1
  87. package/src/assets/web-panel/assets/{index-CP2liZYV.js → index-CtUuEt-Q.js} +3 -3
  88. package/src/assets/web-panel/assets/{index-BqDn_7rp.js → index-Cx1K1h3R.js} +3 -3
  89. package/src/assets/web-panel/assets/{index-vkHwRzrk.js → index-CzondF_H.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-CwdYxBVA.js → index-D6LoUbxl.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-DtayEBt0.js → index-DG8Argyk.js} +1 -1
  92. package/src/assets/web-panel/assets/index-DIHZW5eL.js +1 -0
  93. package/src/assets/web-panel/assets/{index-DVRzAjWk.js → index-DcLgLWwU.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-Dz_iVHtC.js → index-DktiurCg.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-DVLZZQ5c.js → index-GXgIXqCa.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-BKHWN2tE.js → index-NIIkheoM.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-CROBuVak.js → index-bcMcPEIb.js} +2 -2
  98. package/src/assets/web-panel/assets/index-pX3VTY9A.js +1 -0
  99. package/src/assets/web-panel/assets/{index-CqCf9te0.js → index-vldy_vgJ.js} +2 -2
  100. package/src/assets/web-panel/assets/{index-BzqrE9NR.js → index-xMCJBS-g.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-V6QCm9nt.js → index-ytX4yyzs.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-CNlblI8D.js → index-zd2QMXg3.js} +1 -1
  103. package/src/assets/web-panel/assets/{initDefaultProps-Dl1s0-DH.js → initDefaultProps-DbZ1HRc7.js} +1 -1
  104. package/src/assets/web-panel/assets/{motion-Bo_wsn2G.js → motion-KRtHWi9E.js} +1 -1
  105. package/src/assets/web-panel/assets/{move-DkSBFThb.js → move-B-zOsK6x.js} +1 -1
  106. package/src/assets/web-panel/assets/{omit-D_kxdSL6.js → omit-DNrV7ppz.js} +1 -1
  107. package/src/assets/web-panel/assets/{pickAttrs-B4jAAmTy.js → pickAttrs-B-AcyBpj.js} +1 -1
  108. package/src/assets/web-panel/assets/{placementArrow-BQfy7E_I.js → placementArrow-Bu6BH9hd.js} +1 -1
  109. package/src/assets/web-panel/assets/{responsiveObserve-DBrNeOOt.js → responsiveObserve-BMFIMTDs.js} +1 -1
  110. package/src/assets/web-panel/assets/{slide-DSKBMx3Q.js → slide-xFVMoPwP.js} +1 -1
  111. package/src/assets/web-panel/assets/{statusUtils-BdGzd5fx.js → statusUtils-HggAwxhx.js} +1 -1
  112. package/src/assets/web-panel/assets/{styleChecker-Ckbe4as7.js → styleChecker-CG5OjpVk.js} +1 -1
  113. package/src/assets/web-panel/assets/{transition-6LOZvE9a.js → transition-C4Iby8cT.js} +1 -1
  114. package/src/assets/web-panel/assets/{useConfigInject-BfCzqqat.js → useConfigInject-BlTQDaaH.js} +1 -1
  115. package/src/assets/web-panel/assets/{useFlexGapSupport-C8nzL1g7.js → useFlexGapSupport-B4LJA5eG.js} +1 -1
  116. package/src/assets/web-panel/assets/{vnode-kNIbBJfF.js → vnode-BToqLQaO.js} +1 -1
  117. package/src/assets/web-panel/assets/{zoom-DafJyqPh.js → zoom-Cdr5kiga.js} +1 -1
  118. package/src/assets/web-panel/index.html +2 -2
  119. package/src/assets/web-panel/assets/AIOps-CDadp-Le.js +0 -1
  120. package/src/assets/web-panel/assets/AppLayout-Byg_RLDB.js +0 -1
  121. package/src/assets/web-panel/assets/AppLayout-Gkhl4thM.css +0 -1
  122. package/src/assets/web-panel/assets/Marketplace-Ch5Xd0CC.js +0 -1
  123. package/src/assets/web-panel/assets/Skills-CE8wG-A0.js +0 -1
  124. package/src/assets/web-panel/assets/Templates-Bku01czW.js +0 -1
  125. package/src/assets/web-panel/assets/icons-Jk30QO6-.js +0 -57
  126. package/src/assets/web-panel/assets/index-B0z2XooE.js +0 -1
  127. package/src/assets/web-panel/assets/index-D7l8Uzgm.js +0 -55
  128. package/src/assets/web-panel/assets/index-MzZGrA5i.js +0 -36
  129. package/src/assets/web-panel/assets/index-d8uIZmCQ.js +0 -12
  130. package/src/assets/web-panel/assets/index-hU5rQLDQ.js +0 -1
@@ -1,2 +1,2 @@
1
- import{u as J}from"./ws-Bv7YH0VB.js";import{_ as P}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{v as K,x as Q,c as R,w as U,$ as X,a0 as Y,a as Z}from"./icons-Jk30QO6-.js";import{l as ee,F as d,D as m,c as e,x as t,r,q as n,v as s,J as b,u as c,I as u,G as g,m as V,j as te}from"./vendor-BVetwVfk.js";const oe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ae={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},re={style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},le={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},se={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},ne={key:0,style:{"text-align":"center",padding:"30px"}},ce={key:1,style:{"font-family":"monospace",color:"#ccc"}},ie={key:0,style:{color:"var(--text-secondary)","font-size":"13px",padding:"8px 0"}},de={key:1,style:{color:"var(--text-muted)","font-size":"13px",padding:"8px 0"}},ue={key:0,style:{"margin-top":"16px"}},ve={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"300px","overflow-y":"auto","white-space":"pre-wrap"}},pe={__name:"Services",setup(fe){const S=J(),B=window.__CC_CONFIG__||{},x=r(!1),C=r(!1),y=r(""),F=r(""),z=r(!1),D=r(""),k=r(""),L=r(""),M=r(!1),w=r(""),h=r(""),I=r([]),N=te(()=>S.status==="connected"),W=[{title:"服务",dataIndex:"name",key:"name"},{title:"端口",dataIndex:"port",key:"port"},{title:"状态",key:"status"}];async function $(){x.value=!0;try{const{output:o}=await S.execute("status",15e3);F.value=o,j(o)}catch(o){console.error("status failed:",o)}finally{x.value=!1}}function j(o){z.value=o.includes("Desktop app running")||o.includes("Running");const a=o.match(/Edition:\s+(\S+)/i);a&&(D.value=a[1]);const v=o.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if(v)k.value=v[1],L.value=v[2];else{const l=o.match(/LLM:\s+(\S+)/i);l&&(k.value=l[1])}M.value=o.includes("Setup completed");const p=o.match(/Setup completed \(([^)]+)\)/i);if(p)try{w.value=new Date(p[1]).toLocaleDateString("zh-CN")}catch{w.value=""}o.includes("docker-compose.yml not found")?h.value="未找到 docker-compose.yml":o.includes("Docker Services")&&(h.value="已检测到 Docker 配置");const i=o.split(`
2
- `).filter(l=>l.match(/[○●]\s+\w+:\s+\d+/));I.value=i.map(l=>{const f=l.match(/([○●])\s+(\w+):\s+(\d+)/);return f?{key:f[2],name:f[2],port:parseInt(f[3]),active:f[1]==="●"}:null}).filter(Boolean)}async function E(){C.value=!0,y.value="";try{const{output:o}=await S.execute("doctor",3e4);y.value=o}catch(o){y.value=`诊断失败: ${o.message}`}finally{C.value=!1}}return ee($),(o,a)=>{const v=n("a-button"),p=n("a-statistic"),i=n("a-card"),l=n("a-col"),f=n("a-row"),G=n("a-tag"),T=n("a-spin"),q=n("a-badge"),A=n("a-table"),H=n("a-space");return s(),d("div",null,[m("div",oe,[a[3]||(a[3]=m("div",null,[m("h2",{class:"page-title"},"服务管理"),m("p",{class:"page-sub"},"ChainlessChain 运行状态与服务控制")],-1)),e(v,{type:"primary",ghost:"",loading:x.value,onClick:$},{icon:t(()=>[e(c(K))]),default:t(()=>[a[2]||(a[2]=b(" 刷新 ",-1))]),_:1},8,["loading"])]),e(f,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"应用状态",value:z.value?"运行中":"未运行","value-style":{color:z.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:t(()=>[e(c(Q))]),_:1},8,["value","value-style"]),D.value?(s(),d("div",ae,"版本: "+u(D.value),1)):g("",!0)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"WebSocket 服务",value:"运行中","value-style":{color:"#52c41a",fontSize:"16px"}},{prefix:t(()=>[e(c(R))]),_:1}),m("div",re," 端口: "+u(c(B).wsPort||18800)+" · "+u(c(B).wsHost||"127.0.0.1"),1)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"LLM 提供商",value:k.value||"未配置","value-style":{color:k.value?"#1677ff":"#888",fontSize:"16px"}},{prefix:t(()=>[e(c(U))]),_:1},8,["value","value-style"]),L.value?(s(),d("div",le,u(L.value),1)):g("",!0)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"初始化",value:M.value?"已完成":"未完成","value-style":{color:M.value?"#52c41a":"#faad14",fontSize:"16px"}},{prefix:t(()=>[e(c(X))]),_:1},8,["value","value-style"]),w.value?(s(),d("div",se,u(w.value),1)):g("",!0)]),_:1})]),_:1})]),_:1}),e(i,{title:"端口状态",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:t(()=>[e(G,{color:N.value?"green":"red"},{default:t(()=>[b(" WS "+u(N.value?"已连接":"断开"),1)]),_:1},8,["color"])]),default:t(()=>[x.value?(s(),d("div",ne,[e(T)])):(s(),V(A,{key:1,columns:W,"data-source":I.value,pagination:!1,size:"small","row-class-name":_=>_.active?"port-active":""},{bodyCell:t(({column:_,record:O})=>[_.key==="status"?(s(),V(q,{key:0,status:O.active?"success":"default",text:O.active?"运行中":"未运行"},null,8,["status","text"])):g("",!0),_.key==="port"?(s(),d("span",ce,u(O.port),1)):g("",!0)]),_:1},8,["data-source","row-class-name"]))]),_:1}),e(i,{title:"Docker 服务",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{default:t(()=>[h.value?(s(),d("div",ie,u(h.value),1)):(s(),d("div",de,"未检测到 Docker 服务"))]),_:1}),e(i,{title:"快速操作",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(H,{wrap:""},{default:t(()=>[e(v,{loading:C.value,onClick:E,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(Y))]),default:t(()=>[a[4]||(a[4]=b(" 环境诊断 ",-1))]),_:1},8,["loading"]),e(v,{onClick:a[0]||(a[0]=_=>o.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(Z))]),default:t(()=>[a[5]||(a[5]=b(" 查看日志 ",-1))]),_:1}),e(v,{onClick:a[1]||(a[1]=_=>o.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(R))]),default:t(()=>[a[6]||(a[6]=b(" LLM 配置 ",-1))]),_:1})]),_:1}),y.value?(s(),d("div",ue,[a[7]||(a[7]=m("div",{style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},"诊断结果",-1)),m("pre",ve,u(y.value),1)])):g("",!0)]),_:1})])}}},be=P(pe,[["__scopeId","data-v-13be6bfe"]]);export{be as default};
1
+ import{u as J}from"./ws-Bv7YH0VB.js";import{_ as P}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{y as K,H as Q,c as R,z as U,a3 as X,a4 as Y,a as Z}from"./icons-DbKJDD5_.js";import{l as ee,F as d,D as m,c as e,x as t,r,q as n,v as s,J as b,u as c,I as u,G as g,m as V,j as te}from"./vendor-BVetwVfk.js";const oe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ae={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},re={style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},le={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},se={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},ne={key:0,style:{"text-align":"center",padding:"30px"}},ce={key:1,style:{"font-family":"monospace",color:"#ccc"}},ie={key:0,style:{color:"var(--text-secondary)","font-size":"13px",padding:"8px 0"}},de={key:1,style:{color:"var(--text-muted)","font-size":"13px",padding:"8px 0"}},ue={key:0,style:{"margin-top":"16px"}},ve={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"300px","overflow-y":"auto","white-space":"pre-wrap"}},pe={__name:"Services",setup(fe){const S=J(),B=window.__CC_CONFIG__||{},x=r(!1),C=r(!1),y=r(""),F=r(""),z=r(!1),D=r(""),k=r(""),L=r(""),M=r(!1),h=r(""),w=r(""),I=r([]),N=te(()=>S.status==="connected"),W=[{title:"服务",dataIndex:"name",key:"name"},{title:"端口",dataIndex:"port",key:"port"},{title:"状态",key:"status"}];async function $(){x.value=!0;try{const{output:o}=await S.execute("status",15e3);F.value=o,j(o)}catch(o){console.error("status failed:",o)}finally{x.value=!1}}function j(o){z.value=o.includes("Desktop app running")||o.includes("Running");const a=o.match(/Edition:\s+(\S+)/i);a&&(D.value=a[1]);const v=o.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if(v)k.value=v[1],L.value=v[2];else{const l=o.match(/LLM:\s+(\S+)/i);l&&(k.value=l[1])}M.value=o.includes("Setup completed");const p=o.match(/Setup completed \(([^)]+)\)/i);if(p)try{h.value=new Date(p[1]).toLocaleDateString("zh-CN")}catch{h.value=""}o.includes("docker-compose.yml not found")?w.value="未找到 docker-compose.yml":o.includes("Docker Services")&&(w.value="已检测到 Docker 配置");const i=o.split(`
2
+ `).filter(l=>l.match(/[○●]\s+\w+:\s+\d+/));I.value=i.map(l=>{const f=l.match(/([○●])\s+(\w+):\s+(\d+)/);return f?{key:f[2],name:f[2],port:parseInt(f[3]),active:f[1]==="●"}:null}).filter(Boolean)}async function E(){C.value=!0,y.value="";try{const{output:o}=await S.execute("doctor",3e4);y.value=o}catch(o){y.value=`诊断失败: ${o.message}`}finally{C.value=!1}}return ee($),(o,a)=>{const v=n("a-button"),p=n("a-statistic"),i=n("a-card"),l=n("a-col"),f=n("a-row"),G=n("a-tag"),H=n("a-spin"),T=n("a-badge"),q=n("a-table"),A=n("a-space");return s(),d("div",null,[m("div",oe,[a[3]||(a[3]=m("div",null,[m("h2",{class:"page-title"},"服务管理"),m("p",{class:"page-sub"},"ChainlessChain 运行状态与服务控制")],-1)),e(v,{type:"primary",ghost:"",loading:x.value,onClick:$},{icon:t(()=>[e(c(K))]),default:t(()=>[a[2]||(a[2]=b(" 刷新 ",-1))]),_:1},8,["loading"])]),e(f,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"应用状态",value:z.value?"运行中":"未运行","value-style":{color:z.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:t(()=>[e(c(Q))]),_:1},8,["value","value-style"]),D.value?(s(),d("div",ae,"版本: "+u(D.value),1)):g("",!0)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"WebSocket 服务",value:"运行中","value-style":{color:"#52c41a",fontSize:"16px"}},{prefix:t(()=>[e(c(R))]),_:1}),m("div",re," 端口: "+u(c(B).wsPort||18800)+" · "+u(c(B).wsHost||"127.0.0.1"),1)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"LLM 提供商",value:k.value||"未配置","value-style":{color:k.value?"#1677ff":"#888",fontSize:"16px"}},{prefix:t(()=>[e(c(U))]),_:1},8,["value","value-style"]),L.value?(s(),d("div",le,u(L.value),1)):g("",!0)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"初始化",value:M.value?"已完成":"未完成","value-style":{color:M.value?"#52c41a":"#faad14",fontSize:"16px"}},{prefix:t(()=>[e(c(X))]),_:1},8,["value","value-style"]),h.value?(s(),d("div",se,u(h.value),1)):g("",!0)]),_:1})]),_:1})]),_:1}),e(i,{title:"端口状态",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:t(()=>[e(G,{color:N.value?"green":"red"},{default:t(()=>[b(" WS "+u(N.value?"已连接":"断开"),1)]),_:1},8,["color"])]),default:t(()=>[x.value?(s(),d("div",ne,[e(H)])):(s(),V(q,{key:1,columns:W,"data-source":I.value,pagination:!1,size:"small","row-class-name":_=>_.active?"port-active":""},{bodyCell:t(({column:_,record:O})=>[_.key==="status"?(s(),V(T,{key:0,status:O.active?"success":"default",text:O.active?"运行中":"未运行"},null,8,["status","text"])):g("",!0),_.key==="port"?(s(),d("span",ce,u(O.port),1)):g("",!0)]),_:1},8,["data-source","row-class-name"]))]),_:1}),e(i,{title:"Docker 服务",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{default:t(()=>[w.value?(s(),d("div",ie,u(w.value),1)):(s(),d("div",de,"未检测到 Docker 服务"))]),_:1}),e(i,{title:"快速操作",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(A,{wrap:""},{default:t(()=>[e(v,{loading:C.value,onClick:E,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(Y))]),default:t(()=>[a[4]||(a[4]=b(" 环境诊断 ",-1))]),_:1},8,["loading"]),e(v,{onClick:a[0]||(a[0]=_=>o.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(Z))]),default:t(()=>[a[5]||(a[5]=b(" 查看日志 ",-1))]),_:1}),e(v,{onClick:a[1]||(a[1]=_=>o.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(R))]),default:t(()=>[a[6]||(a[6]=b(" LLM 配置 ",-1))]),_:1})]),_:1}),y.value?(s(),d("div",ue,[a[7]||(a[7]=m("div",{style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},"诊断结果",-1)),m("pre",ve,u(y.value),1)])):g("",!0)]),_:1})])}}},be=P(pe,[["__scopeId","data-v-13be6bfe"]]);export{be as default};
@@ -1,4 +1,4 @@
1
- import{_ as o}from"./index-MzZGrA5i.js";import{c as C,g as N,m as D,u as G}from"./useConfigInject-BfCzqqat.js";import{i as W}from"./initDefaultProps-Dl1s0-DH.js";import{d as I,c}from"./vendor-BVetwVfk.js";import{K as j}from"./Keyframes-C7fCrnlS.js";const z=()=>({prefixCls:String,width:{type:[Number,String]}}),O=I({compatConfig:{MODE:3},name:"SkeletonTitle",props:z(),setup(e){return()=>{const{prefixCls:t,width:n}=e,r=typeof n=="number"?`${n}px`:n;return c("h3",{class:t,style:{width:r}},null)}}}),X=()=>({prefixCls:String,width:{type:[Number,String,Array]},rows:Number}),_=I({compatConfig:{MODE:3},name:"SkeletonParagraph",props:X(),setup(e){const t=n=>{const{width:r,rows:l=2}=e;if(Array.isArray(r))return r[n];if(l-1===n)return r};return()=>{const{prefixCls:n,rows:r}=e,l=[...Array(r)].map((i,a)=>{const d=t(a);return c("li",{key:a,style:{width:typeof d=="number"?`${d}px`:d}},null)});return c("ul",{class:n},[l])}}}),se=()=>({prefixCls:String,size:[String,Number],shape:String,active:{type:Boolean,default:void 0}}),L=e=>{const{prefixCls:t,size:n,shape:r}=e,l=C({[`${t}-lg`]:n==="large",[`${t}-sm`]:n==="small"}),i=C({[`${t}-circle`]:r==="circle",[`${t}-square`]:r==="square",[`${t}-round`]:r==="round"}),a=typeof n=="number"?{width:`${n}px`,height:`${n}px`,lineHeight:`${n}px`}:{};return c("span",{class:C(t,l,i),style:a},null)};L.displayName="SkeletonElement";const q=new j("ant-skeleton-loading",{"0%":{transform:"translateX(-37.5%)"},"100%":{transform:"translateX(37.5%)"}}),v=e=>({height:e,lineHeight:`${e}px`}),$=e=>o({width:e},v(e)),F=e=>({position:"relative",zIndex:0,overflow:"hidden",background:"transparent","&::after":{position:"absolute",top:0,insetInlineEnd:"-150%",bottom:0,insetInlineStart:"-150%",background:e.skeletonLoadingBackground,animationName:q,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite",content:'""'}}),P=e=>o({width:e*5,minWidth:e*5},v(e)),K=e=>{const{skeletonAvatarCls:t,color:n,controlHeight:r,controlHeightLG:l,controlHeightSM:i}=e;return{[`${t}`]:o({display:"inline-block",verticalAlign:"top",background:n},$(r)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:o({},$(l)),[`${t}${t}-sm`]:o({},$(i))}},V=e=>{const{controlHeight:t,borderRadiusSM:n,skeletonInputCls:r,controlHeightLG:l,controlHeightSM:i,color:a}=e;return{[`${r}`]:o({display:"inline-block",verticalAlign:"top",background:a,borderRadius:n},P(t)),[`${r}-lg`]:o({},P(l)),[`${r}-sm`]:o({},P(i))}},M=e=>o({width:e},v(e)),J=e=>{const{skeletonImageCls:t,imageSizeBase:n,color:r,borderRadiusSM:l}=e;return{[`${t}`]:o(o({display:"flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",background:r,borderRadius:l},M(n*2)),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:o(o({},M(n)),{maxWidth:n*4,maxHeight:n*4}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}},x=(e,t,n)=>{const{skeletonButtonCls:r}=e;return{[`${n}${r}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${n}${r}-round`]:{borderRadius:t}}},E=e=>o({width:e*2,minWidth:e*2},v(e)),Q=e=>{const{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:r,controlHeightLG:l,controlHeightSM:i,color:a}=e;return o(o(o(o(o({[`${n}`]:o({display:"inline-block",verticalAlign:"top",background:a,borderRadius:t,width:r*2,minWidth:r*2},E(r))},x(e,r,n)),{[`${n}-lg`]:o({},E(l))}),x(e,l,`${n}-lg`)),{[`${n}-sm`]:o({},E(i))}),x(e,i,`${n}-sm`))},U=e=>{const{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:r,skeletonParagraphCls:l,skeletonButtonCls:i,skeletonInputCls:a,skeletonImageCls:d,controlHeight:y,controlHeightLG:f,controlHeightSM:p,color:g,padding:w,marginSM:B,borderRadius:s,skeletonTitleHeight:h,skeletonBlockRadius:u,skeletonParagraphLineHeight:m,controlHeightXS:k,skeletonParagraphMarginTop:S}=e;return{[`${t}`]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:w,verticalAlign:"top",[`${n}`]:o({display:"inline-block",verticalAlign:"top",background:g},$(y)),[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:o({},$(f)),[`${n}-sm`]:o({},$(p))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[`${r}`]:{width:"100%",height:h,background:g,borderRadius:u,[`+ ${l}`]:{marginBlockStart:p}},[`${l}`]:{padding:0,"> li":{width:"100%",height:m,listStyle:"none",background:g,borderRadius:u,"+ li":{marginBlockStart:k}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${r}, ${l} > li`]:{borderRadius:s}}},[`${t}-with-avatar ${t}-content`]:{[`${r}`]:{marginBlockStart:B,[`+ ${l}`]:{marginBlockStart:S}}},[`${t}${t}-element`]:o(o(o(o({display:"inline-block",width:"auto"},Q(e)),K(e)),V(e)),J(e)),[`${t}${t}-block`]:{width:"100%",[`${i}`]:{width:"100%"},[`${a}`]:{width:"100%"}},[`${t}${t}-active`]:{[`
1
+ import{_ as o}from"./index-BLYcQWYW.js";import{c as C,g as N,m as D,u as G}from"./useConfigInject-BlTQDaaH.js";import{i as W}from"./initDefaultProps-DbZ1HRc7.js";import{d as I,c}from"./vendor-BVetwVfk.js";import{K as j}from"./Keyframes-C7fCrnlS.js";const z=()=>({prefixCls:String,width:{type:[Number,String]}}),O=I({compatConfig:{MODE:3},name:"SkeletonTitle",props:z(),setup(e){return()=>{const{prefixCls:t,width:n}=e,r=typeof n=="number"?`${n}px`:n;return c("h3",{class:t,style:{width:r}},null)}}}),X=()=>({prefixCls:String,width:{type:[Number,String,Array]},rows:Number}),_=I({compatConfig:{MODE:3},name:"SkeletonParagraph",props:X(),setup(e){const t=n=>{const{width:r,rows:l=2}=e;if(Array.isArray(r))return r[n];if(l-1===n)return r};return()=>{const{prefixCls:n,rows:r}=e,l=[...Array(r)].map((i,a)=>{const d=t(a);return c("li",{key:a,style:{width:typeof d=="number"?`${d}px`:d}},null)});return c("ul",{class:n},[l])}}}),se=()=>({prefixCls:String,size:[String,Number],shape:String,active:{type:Boolean,default:void 0}}),L=e=>{const{prefixCls:t,size:n,shape:r}=e,l=C({[`${t}-lg`]:n==="large",[`${t}-sm`]:n==="small"}),i=C({[`${t}-circle`]:r==="circle",[`${t}-square`]:r==="square",[`${t}-round`]:r==="round"}),a=typeof n=="number"?{width:`${n}px`,height:`${n}px`,lineHeight:`${n}px`}:{};return c("span",{class:C(t,l,i),style:a},null)};L.displayName="SkeletonElement";const q=new j("ant-skeleton-loading",{"0%":{transform:"translateX(-37.5%)"},"100%":{transform:"translateX(37.5%)"}}),v=e=>({height:e,lineHeight:`${e}px`}),$=e=>o({width:e},v(e)),F=e=>({position:"relative",zIndex:0,overflow:"hidden",background:"transparent","&::after":{position:"absolute",top:0,insetInlineEnd:"-150%",bottom:0,insetInlineStart:"-150%",background:e.skeletonLoadingBackground,animationName:q,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite",content:'""'}}),P=e=>o({width:e*5,minWidth:e*5},v(e)),K=e=>{const{skeletonAvatarCls:t,color:n,controlHeight:r,controlHeightLG:l,controlHeightSM:i}=e;return{[`${t}`]:o({display:"inline-block",verticalAlign:"top",background:n},$(r)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:o({},$(l)),[`${t}${t}-sm`]:o({},$(i))}},V=e=>{const{controlHeight:t,borderRadiusSM:n,skeletonInputCls:r,controlHeightLG:l,controlHeightSM:i,color:a}=e;return{[`${r}`]:o({display:"inline-block",verticalAlign:"top",background:a,borderRadius:n},P(t)),[`${r}-lg`]:o({},P(l)),[`${r}-sm`]:o({},P(i))}},M=e=>o({width:e},v(e)),J=e=>{const{skeletonImageCls:t,imageSizeBase:n,color:r,borderRadiusSM:l}=e;return{[`${t}`]:o(o({display:"flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",background:r,borderRadius:l},M(n*2)),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:o(o({},M(n)),{maxWidth:n*4,maxHeight:n*4}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}},x=(e,t,n)=>{const{skeletonButtonCls:r}=e;return{[`${n}${r}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${n}${r}-round`]:{borderRadius:t}}},E=e=>o({width:e*2,minWidth:e*2},v(e)),Q=e=>{const{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:r,controlHeightLG:l,controlHeightSM:i,color:a}=e;return o(o(o(o(o({[`${n}`]:o({display:"inline-block",verticalAlign:"top",background:a,borderRadius:t,width:r*2,minWidth:r*2},E(r))},x(e,r,n)),{[`${n}-lg`]:o({},E(l))}),x(e,l,`${n}-lg`)),{[`${n}-sm`]:o({},E(i))}),x(e,i,`${n}-sm`))},U=e=>{const{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:r,skeletonParagraphCls:l,skeletonButtonCls:i,skeletonInputCls:a,skeletonImageCls:d,controlHeight:y,controlHeightLG:f,controlHeightSM:p,color:g,padding:w,marginSM:B,borderRadius:s,skeletonTitleHeight:h,skeletonBlockRadius:u,skeletonParagraphLineHeight:m,controlHeightXS:k,skeletonParagraphMarginTop:S}=e;return{[`${t}`]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:w,verticalAlign:"top",[`${n}`]:o({display:"inline-block",verticalAlign:"top",background:g},$(y)),[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:o({},$(f)),[`${n}-sm`]:o({},$(p))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[`${r}`]:{width:"100%",height:h,background:g,borderRadius:u,[`+ ${l}`]:{marginBlockStart:p}},[`${l}`]:{padding:0,"> li":{width:"100%",height:m,listStyle:"none",background:g,borderRadius:u,"+ li":{marginBlockStart:k}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${r}, ${l} > li`]:{borderRadius:s}}},[`${t}-with-avatar ${t}-content`]:{[`${r}`]:{marginBlockStart:B,[`+ ${l}`]:{marginBlockStart:S}}},[`${t}${t}-element`]:o(o(o(o({display:"inline-block",width:"auto"},Q(e)),K(e)),V(e)),J(e)),[`${t}${t}-block`]:{width:"100%",[`${i}`]:{width:"100%"},[`${a}`]:{width:"100%"}},[`${t}${t}-active`]:{[`
2
2
  ${r},
3
3
  ${l} > li,
4
4
  ${n},
@@ -0,0 +1 @@
1
+ import{k as O,r as v,j as h,l as A,F as f,D as i,I as y,u as s,c as r,x as d,H as C,L,q as p,B as F,v as u,J as g,m as M}from"./vendor-BVetwVfk.js";import{u as N}from"./ws-Bv7YH0VB.js";import{p as Q}from"./parsers-DftYMnlk.js";import{u as V}from"./chat-CVn-r3oV.js";import{_ as $}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{b as D,y as E,a2 as R}from"./icons-DbKJDD5_.js";const T=O("skills",()=>{const _=v(!1),e=v([]),c=v(""),m=v("all"),x=h(()=>{const n=new Set(["all"]);return e.value.forEach(l=>{l.category&&n.add(l.category),l.executionMode&&n.add(l.executionMode)}),[...n]}),k=h(()=>{let n=e.value;if(m.value!=="all"&&(n=n.filter(l=>l.category===m.value||l.executionMode===m.value)),c.value){const l=c.value.toLowerCase();n=n.filter(o=>o.name?.toLowerCase().includes(l)||o.description?.toLowerCase().includes(l)||o.title?.toLowerCase().includes(l))}return n});async function b(){const n=N();_.value=!0;try{const{output:l}=await n.execute("skill list",2e4),o=Q(l);e.value=o}catch(l){console.error("Failed to load skills:",l)}finally{_.value=!1}}return{loading:_,allSkills:e,searchQuery:c,selectedCategory:m,categories:x,filteredSkills:k,loadSkills:b}}),U={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},H={class:"page-sub"},J={style:{display:"flex",gap:"12px","margin-bottom":"20px","flex-wrap":"wrap"}},P={key:0,style:{"text-align":"center",padding:"60px"}},W={key:1,class:"skills-grid"},G={style:{display:"flex","justify-content":"space-between","align-items":"flex-start"}},K={style:{flex:"1","min-width":"0"}},X={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","margin-bottom":"4px","font-family":"monospace"}},Y={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},Z={style:{"margin-left":"12px","flex-shrink":"0"}},ee={style:{"margin-top":"10px",display:"flex","justify-content":"flex-end"}},te={key:2,style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}},oe={__name:"Skills",setup(_){const e=T(),c=V(),m=F(),x=h(()=>e.categories.filter(o=>o!=="all").slice(0,6));function k(o){return{"built-in":"内置","cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合",workspace:"工作区",marketplace:"市场"}[o]||o}function b(o){return{"cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合","built-in":"内置"}[o]||o||"未知"}function n(o){return{"cli-direct":"cyan",agent:"purple","llm-query":"blue",hybrid:"orange","built-in":"green"}[o]||"default"}async function l(o){await c.createSession("agent"),m.push("/chat"),setTimeout(()=>{c.currentSessionId&&c.sendMessage(c.currentSessionId,`/skill run ${o}`)},300)}return A(()=>{e.allSkills.length||e.loadSkills()}),(o,t)=>{const S=p("a-button"),z=p("a-input-search"),w=p("a-radio-button"),I=p("a-radio-group"),q=p("a-spin"),B=p("a-tag"),j=p("a-card");return u(),f("div",null,[i("div",U,[i("div",null,[t[3]||(t[3]=i("h2",{class:"page-title"},"技能管理",-1)),i("p",H,y(s(e).allSkills.length)+" 个可用技能",1)]),r(S,{type:"primary",ghost:"",loading:s(e).loading,onClick:t[0]||(t[0]=a=>s(e).loadSkills())},{icon:d(()=>[r(s(E))]),default:d(()=>[t[4]||(t[4]=g(" 刷新 ",-1))]),_:1},8,["loading"])]),i("div",J,[r(z,{value:s(e).searchQuery,"onUpdate:value":t[1]||(t[1]=a=>s(e).searchQuery=a),placeholder:"搜索技能名称或描述...",style:{width:"300px"},"allow-clear":""},null,8,["value"]),r(I,{value:s(e).selectedCategory,"onUpdate:value":t[2]||(t[2]=a=>s(e).selectedCategory=a),"button-style":"solid"},{default:d(()=>[r(w,{value:"all"},{default:d(()=>[...t[5]||(t[5]=[g("全部",-1)])]),_:1}),(u(!0),f(C,null,L(x.value,a=>(u(),M(w,{key:a,value:a},{default:d(()=>[g(y(k(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),s(e).loading?(u(),f("div",P,[r(q,{size:"large"}),t[6]||(t[6]=i("div",{style:{color:"var(--text-muted)","margin-top":"12px"}},"加载技能中...",-1))])):s(e).filteredSkills.length?(u(),f("div",W,[(u(!0),f(C,null,L(s(e).filteredSkills,a=>(u(),M(j,{key:a.name,class:"skill-card",size:"small",hoverable:"",style:{background:"var(--bg-card)","border-color":"var(--border-color)",cursor:"default"}},{default:d(()=>[i("div",G,[i("div",K,[i("div",X,y(a.name),1),i("div",Y,y(a.description||"暂无描述"),1)]),i("div",Z,[r(B,{color:n(a.executionMode),style:{"font-size":"10px"}},{default:d(()=>[g(y(b(a.executionMode)),1)]),_:2},1032,["color"])])]),i("div",ee,[r(S,{size:"small",type:"primary",ghost:"",onClick:le=>l(a.name)},{icon:d(()=>[r(s(R))]),default:d(()=>[t[7]||(t[7]=g(" 运行 ",-1))]),_:1},8,["onClick"])])]),_:2},1024))),128))])):(u(),f("div",te,[r(s(D),{style:{"font-size":"48px","margin-bottom":"16px",display:"block"}}),i("div",null,y(s(e).allSkills.length?"没有匹配的技能":"点击刷新加载技能列表"),1)]))])}}},ce=$(oe,[["__scopeId","data-v-a1cd8dd9"]]);export{ce as default};
@@ -1 +1 @@
1
- import{k as F,r as $,j as I,l as P,M as R,F as d,D as f,c as o,x as l,u as s,m as T,G as b,q as _,v as r,J as g,I as u,H as A,L as V}from"./vendor-BVetwVfk.js";import{u as B}from"./ws-Bv7YH0VB.js";import{_ as L}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{v as E}from"./icons-Jk30QO6-.js";const M=F("tasks",()=>{const v=$([]),t=$(!1);let w=null,k=null;const S=I(()=>v.value.filter(e=>e.status==="running")),x=I(()=>v.value.filter(e=>e.status==="pending")),i=I(()=>v.value.filter(e=>e.status==="completed"||e.status==="failed"||e.status==="timeout"));async function a(){const e=B();t.value=!0;try{const p=await e.sendRaw({type:"tasks-list"});p&&Array.isArray(p.tasks)&&(v.value=p.tasks)}catch{}finally{t.value=!1}}async function N(e){const p=B();try{await p.sendRaw({type:"tasks-stop",taskId:e})}catch{}finally{await a()}}const C=$(null);function z(e=5e3){y(),a(),w=setInterval(a,e),m()}function y(){w&&(clearInterval(w),w=null),k&&(k(),k=null)}function m(){const e=B();if(k)return;const p=n=>{n.type==="task:notification"&&n.payload?.task&&(C.value=n.payload.task,a(),setTimeout(()=>{C.value=null},8e3))};k=e.onRuntimeEvent(p)}function h(e){return!e||e<0?"-":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`}function D(e){switch(e){case"running":return"processing";case"pending":return"default";case"completed":return"success";case"failed":return"error";case"timeout":return"warning";default:return"default"}}return{tasks:v,loading:t,running:S,pending:x,completed:i,lastNotification:C,fetchTasks:a,stopTask:N,startPolling:z,stopPolling:y,formatDuration:h,getStatusColor:D}}),U={class:"page-header"},j={key:0,class:"error-text"},q={key:1},G={class:"task-header"},H={class:"task-desc"},J={class:"task-id"},O={class:"task-meta"},W=["title"],K={key:0,class:"error-text"},Q={key:1,class:"success-text"},X={key:2,class:"muted-text"},Y={__name:"Tasks",setup(v){const t=M(),w=[{title:"状态",key:"status",width:90},{title:"描述",key:"description",ellipsis:!0},{title:"类型",dataIndex:"type",width:100},{title:"耗时",key:"duration",width:90},{title:"创建时间",key:"createdAt",width:180},{title:"结果",key:"result",ellipsis:!0},{title:"操作",key:"action",width:80}];function k(i){return i.status==="running"&&i.startedAt?t.formatDuration(Date.now()-i.startedAt):i.completedAt&&i.startedAt?t.formatDuration(i.completedAt-i.startedAt):"-"}function S(i){return i?new Date(i).toLocaleString():"-"}function x(i,a){return i?i.length>a?`${i.slice(0,a)}...`:i:""}return P(()=>t.startPolling(5e3)),R(()=>t.stopPolling()),(i,a)=>{const N=_("a-button"),C=_("a-space"),z=_("a-alert"),y=_("a-statistic"),m=_("a-card"),h=_("a-col"),D=_("a-row"),e=_("a-tag"),p=_("a-table");return r(),d("div",null,[f("div",U,[a[3]||(a[3]=f("div",null,[f("h2",{class:"page-title"},"后台任务"),f("p",{class:"page-sub"},"查看后台任务队列、实时通知和任务执行结果。")],-1)),o(C,null,{default:l(()=>[o(N,{ghost:"",loading:s(t).loading,onClick:a[0]||(a[0]=n=>s(t).fetchTasks())},{icon:l(()=>[o(s(E))]),default:l(()=>[a[2]||(a[2]=g(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),s(t).lastNotification?(r(),T(z,{key:0,type:s(t).lastNotification.status==="completed"?"success":"error","show-icon":"",closable:"",class:"banner",onClose:a[1]||(a[1]=n=>s(t).lastNotification=null)},{message:l(()=>[g(" 任务"+u(s(t).lastNotification.status==="completed"?"完成":"结束")+": "+u(s(t).lastNotification.description||s(t).lastNotification.id.slice(0,16)),1)]),description:l(()=>[s(t).lastNotification.error?(r(),d("span",j,u(s(t).lastNotification.error),1)):s(t).lastNotification.result?(r(),d("span",q,u(x(String(s(t).lastNotification.result),120)),1)):b("",!0)]),_:1},8,["type"])):b("",!0),o(D,{gutter:[16,16],class:"stats-row"},{default:l(()=>[o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"全部任务",value:s(t).tasks.length},null,8,["value"])]),_:1})]),_:1}),o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"运行中",value:s(t).running.length},null,8,["value"])]),_:1})]),_:1}),o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"等待中",value:s(t).pending.length},null,8,["value"])]),_:1})]),_:1}),o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"已完成",value:s(t).completed.length},null,8,["value"])]),_:1})]),_:1})]),_:1}),s(t).running.length>0?(r(),T(m,{key:1,title:"运行中的任务",class:"panel-card",size:"small"},{default:l(()=>[(r(!0),d(A,null,V(s(t).running,n=>(r(),d("div",{key:n.id,class:"task-item running"},[f("div",G,[o(e,{color:s(t).getStatusColor(n.status)},{default:l(()=>[g(u(n.status.toUpperCase()),1)]),_:2},1032,["color"]),f("span",H,u(n.description),1),f("span",J,u(n.id.slice(0,16)),1)]),f("div",O,[f("span",null,"类型: "+u(n.type||"-"),1),f("span",null,"已运行: "+u(s(t).formatDuration(Date.now()-n.startedAt)),1),o(N,{size:"small",danger:"",onClick:c=>s(t).stopTask(n.id)},{default:l(()=>[...a[4]||(a[4]=[g("停止",-1)])]),_:1},8,["onClick"])])]))),128))]),_:1})):b("",!0),o(m,{class:"panel-card"},{default:l(()=>[o(p,{columns:w,"data-source":s(t).tasks,pagination:{pageSize:15,size:"small"},loading:s(t).loading,"row-key":"id",size:"small"},{bodyCell:l(({column:n,record:c})=>[n.key==="status"?(r(),T(e,{key:0,color:s(t).getStatusColor(c.status)},{default:l(()=>[g(u(c.status),1)]),_:2},1032,["color"])):n.key==="description"?(r(),d("span",{key:1,title:c.command},u(c.description),9,W)):n.key==="duration"?(r(),d(A,{key:2},[g(u(k(c)),1)],64)):n.key==="createdAt"?(r(),d(A,{key:3},[g(u(S(c.createdAt)),1)],64)):n.key==="result"?(r(),d(A,{key:4},[c.error?(r(),d("span",K,u(x(c.error,60)),1)):c.result?(r(),d("span",Q,u(x(String(c.result),60)),1)):(r(),d("span",X,"-"))],64)):n.key==="action"?(r(),d(A,{key:5},[c.status==="running"?(r(),T(N,{key:0,size:"small",danger:"",onClick:Z=>s(t).stopTask(c.id)},{default:l(()=>[...a[5]||(a[5]=[g(" 停止 ",-1)])]),_:1},8,["onClick"])):b("",!0)],64)):b("",!0)]),_:1},8,["data-source","loading"])]),_:1})])}}},nt=L(Y,[["__scopeId","data-v-c8e3e605"]]);export{nt as default};
1
+ import{k as F,r as $,j as I,l as P,M as R,F as d,D as f,c as o,x as l,u as s,m as T,G as b,q as _,v as r,J as g,I as u,H as A,L as V}from"./vendor-BVetwVfk.js";import{u as B}from"./ws-Bv7YH0VB.js";import{_ as L}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{y as E}from"./icons-DbKJDD5_.js";const M=F("tasks",()=>{const v=$([]),t=$(!1);let w=null,k=null;const S=I(()=>v.value.filter(e=>e.status==="running")),x=I(()=>v.value.filter(e=>e.status==="pending")),i=I(()=>v.value.filter(e=>e.status==="completed"||e.status==="failed"||e.status==="timeout"));async function a(){const e=B();t.value=!0;try{const p=await e.sendRaw({type:"tasks-list"});p&&Array.isArray(p.tasks)&&(v.value=p.tasks)}catch{}finally{t.value=!1}}async function N(e){const p=B();try{await p.sendRaw({type:"tasks-stop",taskId:e})}catch{}finally{await a()}}const C=$(null);function z(e=5e3){y(),a(),w=setInterval(a,e),m()}function y(){w&&(clearInterval(w),w=null),k&&(k(),k=null)}function m(){const e=B();if(k)return;const p=n=>{n.type==="task:notification"&&n.payload?.task&&(C.value=n.payload.task,a(),setTimeout(()=>{C.value=null},8e3))};k=e.onRuntimeEvent(p)}function h(e){return!e||e<0?"-":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`}function D(e){switch(e){case"running":return"processing";case"pending":return"default";case"completed":return"success";case"failed":return"error";case"timeout":return"warning";default:return"default"}}return{tasks:v,loading:t,running:S,pending:x,completed:i,lastNotification:C,fetchTasks:a,stopTask:N,startPolling:z,stopPolling:y,formatDuration:h,getStatusColor:D}}),U={class:"page-header"},j={key:0,class:"error-text"},q={key:1},G={class:"task-header"},H={class:"task-desc"},J={class:"task-id"},O={class:"task-meta"},W=["title"],K={key:0,class:"error-text"},Q={key:1,class:"success-text"},X={key:2,class:"muted-text"},Y={__name:"Tasks",setup(v){const t=M(),w=[{title:"状态",key:"status",width:90},{title:"描述",key:"description",ellipsis:!0},{title:"类型",dataIndex:"type",width:100},{title:"耗时",key:"duration",width:90},{title:"创建时间",key:"createdAt",width:180},{title:"结果",key:"result",ellipsis:!0},{title:"操作",key:"action",width:80}];function k(i){return i.status==="running"&&i.startedAt?t.formatDuration(Date.now()-i.startedAt):i.completedAt&&i.startedAt?t.formatDuration(i.completedAt-i.startedAt):"-"}function S(i){return i?new Date(i).toLocaleString():"-"}function x(i,a){return i?i.length>a?`${i.slice(0,a)}...`:i:""}return P(()=>t.startPolling(5e3)),R(()=>t.stopPolling()),(i,a)=>{const N=_("a-button"),C=_("a-space"),z=_("a-alert"),y=_("a-statistic"),m=_("a-card"),h=_("a-col"),D=_("a-row"),e=_("a-tag"),p=_("a-table");return r(),d("div",null,[f("div",U,[a[3]||(a[3]=f("div",null,[f("h2",{class:"page-title"},"后台任务"),f("p",{class:"page-sub"},"查看后台任务队列、实时通知和任务执行结果。")],-1)),o(C,null,{default:l(()=>[o(N,{ghost:"",loading:s(t).loading,onClick:a[0]||(a[0]=n=>s(t).fetchTasks())},{icon:l(()=>[o(s(E))]),default:l(()=>[a[2]||(a[2]=g(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),s(t).lastNotification?(r(),T(z,{key:0,type:s(t).lastNotification.status==="completed"?"success":"error","show-icon":"",closable:"",class:"banner",onClose:a[1]||(a[1]=n=>s(t).lastNotification=null)},{message:l(()=>[g(" 任务"+u(s(t).lastNotification.status==="completed"?"完成":"结束")+": "+u(s(t).lastNotification.description||s(t).lastNotification.id.slice(0,16)),1)]),description:l(()=>[s(t).lastNotification.error?(r(),d("span",j,u(s(t).lastNotification.error),1)):s(t).lastNotification.result?(r(),d("span",q,u(x(String(s(t).lastNotification.result),120)),1)):b("",!0)]),_:1},8,["type"])):b("",!0),o(D,{gutter:[16,16],class:"stats-row"},{default:l(()=>[o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"全部任务",value:s(t).tasks.length},null,8,["value"])]),_:1})]),_:1}),o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"运行中",value:s(t).running.length},null,8,["value"])]),_:1})]),_:1}),o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"等待中",value:s(t).pending.length},null,8,["value"])]),_:1})]),_:1}),o(h,{xs:12,sm:6},{default:l(()=>[o(m,{class:"stat-card",size:"small"},{default:l(()=>[o(y,{title:"已完成",value:s(t).completed.length},null,8,["value"])]),_:1})]),_:1})]),_:1}),s(t).running.length>0?(r(),T(m,{key:1,title:"运行中的任务",class:"panel-card",size:"small"},{default:l(()=>[(r(!0),d(A,null,V(s(t).running,n=>(r(),d("div",{key:n.id,class:"task-item running"},[f("div",G,[o(e,{color:s(t).getStatusColor(n.status)},{default:l(()=>[g(u(n.status.toUpperCase()),1)]),_:2},1032,["color"]),f("span",H,u(n.description),1),f("span",J,u(n.id.slice(0,16)),1)]),f("div",O,[f("span",null,"类型: "+u(n.type||"-"),1),f("span",null,"已运行: "+u(s(t).formatDuration(Date.now()-n.startedAt)),1),o(N,{size:"small",danger:"",onClick:c=>s(t).stopTask(n.id)},{default:l(()=>[...a[4]||(a[4]=[g("停止",-1)])]),_:1},8,["onClick"])])]))),128))]),_:1})):b("",!0),o(m,{class:"panel-card"},{default:l(()=>[o(p,{columns:w,"data-source":s(t).tasks,pagination:{pageSize:15,size:"small"},loading:s(t).loading,"row-key":"id",size:"small"},{bodyCell:l(({column:n,record:c})=>[n.key==="status"?(r(),T(e,{key:0,color:s(t).getStatusColor(c.status)},{default:l(()=>[g(u(c.status),1)]),_:2},1032,["color"])):n.key==="description"?(r(),d("span",{key:1,title:c.command},u(c.description),9,W)):n.key==="duration"?(r(),d(A,{key:2},[g(u(k(c)),1)],64)):n.key==="createdAt"?(r(),d(A,{key:3},[g(u(S(c.createdAt)),1)],64)):n.key==="result"?(r(),d(A,{key:4},[c.error?(r(),d("span",K,u(x(c.error,60)),1)):c.result?(r(),d("span",Q,u(x(String(c.result),60)),1)):(r(),d("span",X,"-"))],64)):n.key==="action"?(r(),d(A,{key:5},[c.status==="running"?(r(),T(N,{key:0,size:"small",danger:"",onClick:Z=>s(t).stopTask(c.id)},{default:l(()=>[...a[5]||(a[5]=[g(" 停止 ",-1)])]),_:1},8,["onClick"])):b("",!0)],64)):b("",!0)]),_:1},8,["data-source","loading"])]),_:1})])}}},nt=L(Y,[["__scopeId","data-v-c8e3e605"]]);export{nt as default};
@@ -0,0 +1 @@
1
+ import{l as fe,F as x,D as n,c as t,x as o,r as c,q as l,a as ye,B as ge,v as p,H as A,L as R,u,I as d,J as i,m as y,G as U}from"./vendor-BVetwVfk.js";import{u as _e}from"./ws-Bv7YH0VB.js";import{_ as xe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{R as M,a2 as G,b as be,u as H,a5 as ke,a as W,ak as we,aj as Ce}from"./icons-DbKJDD5_.js";import{a as h}from"./index-CtUuEt-Q.js";import"./index-BLYcQWYW.js";import"./useConfigInject-BlTQDaaH.js";import"./transition-C4Iby8cT.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-CHsntPCQ.js";import"./index-U4Zd5IK6.js";const ze={style:{display:"flex","align-items":"flex-start",gap:"10px"}},he={style:{flex:"1","min-width":"0"}},Pe={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","font-family":"monospace","margin-bottom":"4px"}},Oe={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},Ie={style:{"margin-top":"12px","text-align":"right"}},Te={style:{margin:"0","font-size":"12px","white-space":"pre-wrap","max-height":"200px","overflow-y":"auto"}},$e={key:0,style:{"text-align":"center",padding:"40px"}},Be={style:{display:"flex","align-items":"flex-start",gap:"10px"}},je={style:{flex:"1","min-width":"0"}},Se={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","margin-bottom":"4px"}},Ne={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},Ae={key:0,style:{"margin-top":"4px"}},Re={style:{"margin-top":"12px","text-align":"right"}},Ue={style:{margin:"0","font-size":"12px","white-space":"pre-wrap","max-height":"200px","overflow-y":"auto"}},De={style:{"margin-bottom":"16px"}},Le={style:{display:"flex","align-items":"center",gap:"8px","margin-bottom":"8px"}},qe={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px",flex:"1",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Fe={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5","max-height":"60px",overflow:"hidden","text-overflow":"ellipsis","white-space":"pre-wrap"}},Je={style:{"margin-top":"12px",display:"flex",gap:"8px","justify-content":"flex-end"}},Y="cc_prompt_templates",Ke={__name:"Templates",setup(Ve){const P=_e(),Q=ge(),D=c("project"),O=c(""),v=c(null),b=c(!1),I=c(""),X=[{name:"code-project",description:"代码项目 — 代码审查、重构、单元测试"},{name:"data-science",description:"数据科学 — ML/数据分析、可视化"},{name:"devops",description:"DevOps — 基础设施、部署、监控"},{name:"medical-triage",description:"医疗分诊 — 症状分析、分诊建议"},{name:"agriculture-expert",description:"农业专家 — 作物管理、病虫害"},{name:"general-assistant",description:"通用助手 — 日常问答、任务管理"},{name:"ai-media-creator",description:"AI 媒体创作 — 图文生成、视频脚本"},{name:"ai-doc-creator",description:"AI 文档创作 — 文档生成、格式转换"},{name:"empty",description:"空白模板 — 最小项目结构"}];function Z(s){I.value=s,b.value=!0}async function ee(){b.value=!1;const s=I.value;if(s){O.value=s,v.value=null;try{const e=`init --template ${s} --yes`,{output:m,exitCode:_}=await P.execute(e,3e4);v.value={success:_===0,output:m}}catch(e){v.value={success:!1,output:`初始化失败: ${e.message}`}}finally{O.value=""}}}const T=c(!1),k=c([]),$=c(""),f=c(null);async function te(){T.value=!0;try{const{output:s}=await P.execute("bi templates --json",15e3),e=JSON.parse(s);k.value=Array.isArray(e)?e:e.templates||[]}catch{k.value=[]}finally{T.value=!1}}async function oe(s){$.value=s,f.value=null;try{const e=`bi dashboard create --template ${s} --json`,{output:m,exitCode:_}=await P.execute(e,3e4);f.value={success:_===0,output:m}}catch(e){f.value={success:!1,output:`创建失败: ${e.message}`}}finally{$.value=""}}const g=c([]),w=c(!1),r=ye({name:"",category:"general",content:""});function ae(){try{const s=localStorage.getItem(Y);g.value=s?JSON.parse(s):[]}catch{g.value=[]}}function L(){localStorage.setItem(Y,JSON.stringify(g.value))}function ne(){!r.name||!r.content||(g.value.push({name:r.name,category:r.category,content:r.content}),L(),q(),h.success("模板已保存"))}function q(){w.value=!1,r.name="",r.category="general",r.content=""}function se(s){g.value.splice(s,1),L(),h.success("模板已删除")}function le(s){navigator.clipboard.writeText(s.content).then(()=>{h.success("已复制到剪贴板")}).catch(()=>{h.error("复制失败")})}function ie(s){Q.push({path:"/chat",query:{prompt:s.content}})}function re(s){return{general:"blue",code:"green",writing:"orange",analysis:"purple"}[s]||"default"}return fe(()=>{ae(),te()}),(s,e)=>{const m=l("a-button"),_=l("a-card"),B=l("a-col"),j=l("a-row"),F=l("a-alert"),S=l("a-tab-pane"),pe=l("a-spin"),J=l("a-empty"),K=l("a-tag"),ue=l("a-tabs"),V=l("a-modal"),ce=l("a-input"),N=l("a-form-item"),C=l("a-select-option"),de=l("a-select"),me=l("a-textarea"),ve=l("a-form");return p(),x("div",null,[e[27]||(e[27]=n("div",{style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},[n("div",null,[n("h2",{class:"page-title"},"模板中心"),n("p",{class:"page-sub"},"项目模板 / BI 模板 / Prompt 模板")])],-1)),t(ue,{activeKey:D.value,"onUpdate:activeKey":e[3]||(e[3]=a=>D.value=a),type:"card"},{default:o(()=>[t(S,{key:"project"},{tab:o(()=>[t(u(be)),e[10]||(e[10]=i(" 项目模板 ",-1))]),default:o(()=>[t(j,{gutter:[16,16]},{default:o(()=>[(p(),x(A,null,R(X,a=>t(B,{key:a.name,xs:24,sm:12,lg:8},{default:o(()=>[t(_,{size:"small",hoverable:"",class:"template-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[n("div",ze,[t(u(M),{style:{"font-size":"24px",color:"#1677ff","flex-shrink":"0","margin-top":"2px"}}),n("div",he,[n("div",Pe,d(a.name),1),n("div",Oe,d(a.description),1)])]),n("div",Ie,[t(m,{type:"primary",size:"small",loading:O.value===a.name,onClick:z=>Z(a.name)},{icon:o(()=>[t(u(G))]),default:o(()=>[e[11]||(e[11]=i(" 初始化 ",-1))]),_:1},8,["loading","onClick"])])]),_:2},1024)]),_:2},1024)),64))]),_:1}),v.value?(p(),y(F,{key:0,message:v.value.success?"初始化成功":"初始化失败",type:v.value.success?"success":"error","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:e[0]||(e[0]=a=>v.value=null)},{description:o(()=>[n("pre",Te,d(v.value.output),1)]),_:1},8,["message","type"])):U("",!0)]),_:1}),t(S,{key:"bi"},{tab:o(()=>[t(u(H)),e[12]||(e[12]=i(" BI 模板 ",-1))]),default:o(()=>[T.value?(p(),x("div",$e,[t(pe),e[13]||(e[13]=n("div",{style:{color:"var(--text-muted)","margin-top":"8px"}},"加载 BI 模板...",-1))])):k.value.length?(p(),y(j,{key:2,gutter:[16,16]},{default:o(()=>[(p(!0),x(A,null,R(k.value,a=>(p(),y(B,{key:a.id,xs:24,sm:12,lg:8},{default:o(()=>[t(_,{size:"small",hoverable:"",class:"template-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[n("div",Be,[t(u(H),{style:{"font-size":"24px",color:"#722ed1","flex-shrink":"0","margin-top":"2px"}}),n("div",je,[n("div",Se,d(a.name),1),n("div",Ne,d(a.description||"暂无描述"),1),a.id?(p(),x("div",Ae,[t(K,{size:"small",color:"purple"},{default:o(()=>[i(d(a.id),1)]),_:2},1024)])):U("",!0)])]),n("div",Re,[t(m,{type:"primary",size:"small",loading:$.value===a.id,onClick:z=>oe(a.id)},{icon:o(()=>[t(u(G))]),default:o(()=>[e[14]||(e[14]=i(" 创建仪表板 ",-1))]),_:1},8,["loading","onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):(p(),y(J,{key:1,description:"暂无 BI 模板"})),f.value?(p(),y(F,{key:3,message:f.value.success?"仪表板创建成功":"创建失败",type:f.value.success?"success":"error","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:e[1]||(e[1]=a=>f.value=null)},{description:o(()=>[n("pre",Ue,d(f.value.output),1)]),_:1},8,["message","type"])):U("",!0)]),_:1}),t(S,{key:"prompts"},{tab:o(()=>[t(u(W)),e[15]||(e[15]=i(" Prompt 模板 ",-1))]),default:o(()=>[n("div",De,[t(m,{type:"primary",onClick:e[2]||(e[2]=a=>w.value=!0)},{icon:o(()=>[t(u(ke))]),default:o(()=>[e[16]||(e[16]=i(" 新建模板 ",-1))]),_:1})]),g.value.length?(p(),y(j,{key:1,gutter:[16,16]},{default:o(()=>[(p(!0),x(A,null,R(g.value,(a,z)=>(p(),y(B,{key:z,xs:24,sm:12,lg:8},{default:o(()=>[t(_,{size:"small",class:"template-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[n("div",Le,[t(u(W),{style:{"font-size":"18px",color:"#52c41a"}}),n("span",qe,d(a.name),1),t(K,{color:re(a.category),size:"small"},{default:o(()=>[i(d(a.category),1)]),_:2},1032,["color"])]),n("div",Fe,d(a.content.length>120?a.content.slice(0,120)+"...":a.content),1),n("div",Je,[t(m,{size:"small",onClick:E=>ie(a)},{icon:o(()=>[t(u(M))]),default:o(()=>[e[17]||(e[17]=i(" 使用 ",-1))]),_:1},8,["onClick"]),t(m,{size:"small",onClick:E=>le(a)},{icon:o(()=>[t(u(we))]),default:o(()=>[e[18]||(e[18]=i(" 复制 ",-1))]),_:1},8,["onClick"]),t(m,{size:"small",danger:"",onClick:E=>se(z)},{icon:o(()=>[t(u(Ce))]),default:o(()=>[e[19]||(e[19]=i(" 删除 ",-1))]),_:1},8,["onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):(p(),y(J,{key:0,description:"暂无 Prompt 模板,点击上方按钮创建"}))]),_:1})]),_:1},8,["activeKey"]),t(V,{open:b.value,"onUpdate:open":e[4]||(e[4]=a=>b.value=a),title:"确认初始化",onOk:ee,onCancel:e[5]||(e[5]=a=>b.value=!1),"ok-text":"确认","cancel-text":"取消"},{default:o(()=>[n("p",null,[e[20]||(e[20]=i("确定要使用模板 ",-1)),n("strong",null,d(I.value),1),e[21]||(e[21]=i(" 初始化项目吗?",-1))]),e[22]||(e[22]=n("p",{style:{color:"var(--text-muted)","font-size":"12px"}},"这将在当前工作目录创建项目结构。",-1))]),_:1},8,["open"]),t(V,{open:w.value,"onUpdate:open":e[9]||(e[9]=a=>w.value=a),title:"新建 Prompt 模板",onOk:ne,onCancel:q,"ok-text":"保存","cancel-text":"取消","ok-button-props":{disabled:!r.name||!r.content}},{default:o(()=>[t(ve,{layout:"vertical"},{default:o(()=>[t(N,{label:"模板名称",required:""},{default:o(()=>[t(ce,{value:r.name,"onUpdate:value":e[6]||(e[6]=a=>r.name=a),placeholder:"输入模板名称"},null,8,["value"])]),_:1}),t(N,{label:"分类"},{default:o(()=>[t(de,{value:r.category,"onUpdate:value":e[7]||(e[7]=a=>r.category=a),style:{width:"100%"}},{default:o(()=>[t(C,{value:"general"},{default:o(()=>[...e[23]||(e[23]=[i("general",-1)])]),_:1}),t(C,{value:"code"},{default:o(()=>[...e[24]||(e[24]=[i("code",-1)])]),_:1}),t(C,{value:"writing"},{default:o(()=>[...e[25]||(e[25]=[i("writing",-1)])]),_:1}),t(C,{value:"analysis"},{default:o(()=>[...e[26]||(e[26]=[i("analysis",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),t(N,{label:"模板内容",required:""},{default:o(()=>[t(me,{value:r.content,"onUpdate:value":e[8]||(e[8]=a=>r.content=a),rows:6,placeholder:"输入 Prompt 模板内容"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","ok-button-props"])])}}},ot=xe(Ke,[["__scopeId","data-v-22e50acf"]]);export{ot as default};
@@ -0,0 +1 @@
1
+ .page-title[data-v-45eae7f1]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-45eae7f1]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.tenant-tabs[data-v-45eae7f1] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-45eae7f1]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.plan-fee[data-v-45eae7f1]{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:12px}.plan-fee-unit[data-v-45eae7f1]{font-size:12px;font-weight:400;color:var(--text-secondary)}.plan-section[data-v-45eae7f1]{margin-top:12px}.plan-section-title[data-v-45eae7f1]{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.plan-quota-row[data-v-45eae7f1]{display:flex;justify-content:space-between;font-size:12px;padding:2px 0}.plan-quota-label[data-v-45eae7f1]{color:var(--text-secondary)}.plan-quota-value[data-v-45eae7f1]{color:var(--text-primary);font-family:monospace}
@@ -0,0 +1 @@
1
+ import{u as Ze}from"./ws-Bv7YH0VB.js";import{s as et}from"./community-parser-CO25nZFt.js";import{_ as tt}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as v}from"./index-CtUuEt-Q.js";import{y as at,a5 as nt,t as ce,D as lt,aA as ot,aF as Ie,c as rt}from"./icons-DbKJDD5_.js";import{l as ut,F as f,D as m,c as n,x as a,m as g,G as S,q as y,r as C,v as u,J as d,u as _,H as A,L as j,I as p,a as ne,j as he}from"./vendor-BVetwVfk.js";import"./index-BLYcQWYW.js";import"./useConfigInject-BlTQDaaH.js";import"./transition-C4Iby8cT.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-CHsntPCQ.js";import"./index-U4Zd5IK6.js";function D(o){const r=et(o);if(!r)return null;try{return JSON.parse(r)}catch{}const s=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const W=Object.freeze(["free","starter","pro","enterprise"]),st=Object.freeze(["active","suspended","deleted"]),Te=Object.freeze(["api_calls","storage_bytes","ai_requests"]);function I(o,r=0){return typeof o=="number"&&Number.isFinite(o)?o:r}function it(o,r=0){if(!o||typeof o!="object")return null;const s=o.id||"";if(!s)return null;const z=o.quotas&&typeof o.quotas=="object"?{...o.quotas}:{};return{key:s,id:s,name:String(o.name||s),monthlyFee:o.monthlyFee==null?null:I(o.monthlyFee,null),quotas:z,features:Array.isArray(o.features)?o.features.filter(Y=>typeof Y=="string"):[],_idx:r}}function dt(o){const r=D(o);return Array.isArray(r)?r.map(it).filter(Boolean):[]}function pt(o,r=0){if(!o||typeof o!="object")return null;const s=o.id||"";return s?{key:s,id:s,name:String(o.name||s),unit:String(o.unit||""),_idx:r}:null}function ct(o){const r=D(o);return Array.isArray(r)?r.map(pt).filter(Boolean):[]}function ft(o,r=0){if(!o||typeof o!="object")return null;const s=o.id||"";return s?{key:s,id:s,name:String(o.name||""),slug:String(o.slug||""),config:o.config??null,status:String(o.status||"active").toLowerCase(),plan:String(o.plan||"free").toLowerCase(),dbPath:o.dbPath||null,ownerId:o.ownerId||"",createdAt:o.createdAt??null,updatedAt:o.updatedAt??null,deletedAt:o.deletedAt??null,_idx:r}:null}function vt(o){const r=D(o);return Array.isArray(r)?r.map(ft).filter(Boolean):[]}function mt(o,r=0){if(!o||typeof o!="object")return null;const s=o.id||"";return s?{key:s,id:s,tenantId:String(o.tenantId||""),plan:String(o.plan||"free").toLowerCase(),status:String(o.status||"active").toLowerCase(),startedAt:o.startedAt??null,expiresAt:o.expiresAt??null,cancelledAt:o.cancelledAt??null,paymentMethod:o.paymentMethod||null,amount:o.amount==null?null:I(o.amount,null),createdAt:o.createdAt??null,_idx:r}:null}function yt(o){const r=D(o);return Array.isArray(r)?r.map(mt).filter(Boolean):[]}function gt(o){const r=D(o);return!r||typeof r!="object"||Array.isArray(r)?null:{tenantId:String(r.tenantId||""),plan:String(r.plan||"free").toLowerCase(),metric:String(r.metric||""),period:String(r.period||""),limit:r.limit==null?null:I(r.limit,null),used:I(r.used,0),remaining:r.remaining==null?null:I(r.remaining,null),unlimited:!!r.unlimited,exceeded:!!r.exceeded}}const _t={tenantCount:0,byStatus:{active:0,suspended:0,deleted:0},byPlan:{free:0,starter:0,pro:0,enterprise:0},subscriptionCount:0,activeSubscriptions:0,usageRecordCount:0,totalUsage:{api_calls:0,storage_bytes:0,ai_requests:0}};function bt(o){const r=JSON.parse(JSON.stringify(_t)),s=D(o);if(!s||typeof s!="object"||Array.isArray(s))return r;if(r.tenantCount=I(s.tenantCount,0),r.subscriptionCount=I(s.subscriptionCount,0),r.activeSubscriptions=I(s.activeSubscriptions,0),r.usageRecordCount=I(s.usageRecordCount,0),s.byStatus&&typeof s.byStatus=="object")for(const z of Object.keys(r.byStatus))r.byStatus[z]=I(s.byStatus[z],0);if(s.byPlan&&typeof s.byPlan=="object")for(const z of Object.keys(r.byPlan))r.byPlan[z]=I(s.byPlan[z],0);if(s.totalUsage&&typeof s.totalUsage=="object")for(const z of Object.keys(r.totalUsage))r.totalUsage[z]=I(s.totalUsage[z],0);return r}function fe(o){if(o==null||o==="")return"—";const r=typeof o=="number"?new Date(o):new Date(String(o));return isNaN(r.getTime())?String(o):r.toLocaleString("zh-CN",{hour12:!1})}function ve(o){return typeof o!="number"||!Number.isFinite(o)||o<0?"—":o===0?"0":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:o<1024*1024*1024?`${(o/1024/1024).toFixed(1)} MB`:`${(o/1024/1024/1024).toFixed(2)} GB`}function kt(o=new Date){const r=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0");return`${r}-${s}`}const xt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},St={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},Ct={class:"filter-bar"},At={style:{color:"var(--text-primary)","font-weight":"500"}},wt={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px","font-family":"monospace"}},zt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},$t={key:1,style:{color:"var(--text-muted)"}},jt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Ut={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},It={style:{color:"var(--text-primary)","font-weight":"500"}},ht={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Tt={key:0,style:{color:"#722ed1","font-weight":"500"}},qt={key:1,style:{color:"var(--text-muted)"}},Ft={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Nt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Ot={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Mt={class:"plan-fee"},Pt={key:0},Lt={key:1,style:{color:"#722ed1"}},Rt={class:"plan-section"},Bt={class:"plan-quota-label"},Et={class:"plan-quota-value"},Dt={class:"plan-section"},Yt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Jt={style:{"font-family":"monospace",color:"var(--text-primary)"}},Kt={key:0},Vt={style:{"font-family":"monospace"}},Qt={key:1,style:{"margin-top":"8px"}},Gt={__name:"Tenant",setup(o){const r=Ze(),s=C(!1),z=C(!1),Y=C(!1),le=C(!1),oe=C(!1),J=C([]),re=C([]),me=C([]),ye=C([]),h=C({tenantCount:0,byStatus:{active:0,suspended:0,deleted:0},byPlan:{free:0,starter:0,pro:0,enterprise:0},subscriptionCount:0,activeSubscriptions:0,usageRecordCount:0,totalUsage:{api_calls:0,storage_bytes:0,ai_requests:0}}),ue=C("tenants"),K=C(""),V=C(""),H=C(!1),X=C(!1),se=C(!1),Z=C(!1),w=ne({name:"",slug:"",plan:"free",owner:""}),x=ne({tenantId:"",plan:"pro",amount:null,duration:720*60*60*1e3}),ie=C(""),U=ne({tenantId:null,metric:"api_calls",period:""}),b=ne({tenantId:null,metric:"api_calls",value:1,period:""}),k=C(null),qe=[{title:"租户",key:"name"},{title:"计划",key:"plan",width:"110px"},{title:"状态",key:"status",width:"100px"},{title:"所有者",key:"owner",width:"160px"},{title:"创建时间",key:"createdAt",width:"160px"},{title:"操作",key:"action",width:"280px"}],Fe=[{title:"租户",key:"tenant"},{title:"计划",key:"plan",width:"110px"},{title:"金额",key:"amount",width:"100px"},{title:"状态",key:"status",width:"110px"},{title:"开始",key:"startedAt",width:"160px"},{title:"到期",key:"expiresAt",width:"160px"},{title:"操作",key:"action",width:"120px"}],Ne=he(()=>{let l=J.value;return K.value&&(l=l.filter(e=>e.plan===K.value)),V.value&&(l=l.filter(e=>e.status===V.value)),l}),Oe=he(()=>re.value.filter(l=>l.status==="active"&&typeof l.amount=="number").reduce((l,e)=>l+e.amount,0));function F(l){return{free:"免费版",starter:"入门版",pro:"专业版",enterprise:"企业版"}[l]||l}function Q(l){return{free:"default",starter:"blue",pro:"purple",enterprise:"gold"}[l]||"default"}function ge(l){return{active:"活跃",suspended:"已暂停",deleted:"已删除"}[l]||l}function Me(l){return{active:"green",suspended:"orange",deleted:"default"}[l]||"default"}function Pe(l){return{active:"活跃",cancelled:"已取消",expired:"已过期",past_due:"逾期"}[l]||l}function Le(l){return{active:"green",cancelled:"default",expired:"red",past_due:"orange"}[l]||"default"}function Re(l){const e=J.value.find(c=>c.id===l);return e?e.name:"(已删除)"}function _e(l,e){return l==null?"—":e==="storage_bytes"?ve(l):String(l)}function Be(l,e){return l==null?"无限":e==="storage_bytes"?ve(l):l.toLocaleString()}function Ee({key:l}){l==="tenant"?H.value=!0:l==="quota"?(k.value=null,se.value=!0):l==="record"&&(Z.value=!0)}async function N(){s.value=!0;try{const[l,e,c,T,ee]=await Promise.all([r.execute("tenant list --json",1e4).catch(()=>({output:""})),r.execute("tenant subscriptions --json",1e4).catch(()=>({output:""})),r.execute("tenant plans --json",8e3).catch(()=>({output:""})),r.execute("tenant metrics --json",8e3).catch(()=>({output:""})),r.execute("tenant stats --json",8e3).catch(()=>({output:""}))]);J.value=vt(l.output),re.value=yt(e.output),me.value=dt(c.output),ye.value=ct(T.output),h.value=bt(ee.output)}catch(l){v.error("加载租户数据失败: "+(l?.message||l))}finally{s.value=!1}}async function De(){const l=w.name.trim(),e=w.slug.trim();if(!l||!e){v.warning("请填写名称和 slug");return}if(!/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/.test(e)){v.warning("slug 必须为小写字母数字 + 连字符");return}z.value=!0;try{const c=[`tenant create "${l.replace(/"/g,'\\"')}" "${e.replace(/"/g,'\\"')}"`];c.push(`--plan ${w.plan}`),w.owner.trim()&&c.push(`--owner "${w.owner.trim().replace(/"/g,'\\"')}"`),c.push("--json");const{output:T}=await r.execute(c.join(" "),1e4);if(/error|Error|失败/i.test(T)&&!/"id"/.test(T)){v.error("创建失败: "+T.slice(0,120));return}v.success("租户已创建"),H.value=!1,ke(),await N()}catch(c){v.error("创建失败: "+(c?.message||c))}finally{z.value=!1}}function Ye(l){x.tenantId=l.id,x.plan=l.plan==="free"?"starter":l.plan,x.amount=null,x.duration=720*60*60*1e3,ie.value=l.name,X.value=!0}async function Je(){Y.value=!0;try{const l=[`tenant subscribe ${x.tenantId}`];l.push(`--plan ${x.plan}`),x.amount!=null&&l.push(`--amount ${x.amount}`),x.duration&&l.push(`--duration-ms ${x.duration}`),l.push("--json");const{output:e}=await r.execute(l.join(" "),1e4);if(/error|Error|失败/i.test(e)&&!/"id"/.test(e)){v.error("订阅失败: "+e.slice(0,120));return}v.success("订阅已创建"),X.value=!1,xe(),ue.value="subscriptions",await N()}catch(l){v.error("订阅失败: "+(l?.message||l))}finally{Y.value=!1}}async function Ke(l,e){if(e!==l.plan)try{const{output:c}=await r.execute(`tenant configure ${l.id} --plan ${e} --json`,8e3);if(/error|Error/i.test(c)&&!/"id"/.test(c)){v.error("计划变更失败: "+c.slice(0,120));return}v.success(`已切换到 ${F(e)}`),await N()}catch(c){v.error("计划变更失败: "+(c?.message||c))}}async function be(l,e){try{const{output:c}=await r.execute(`tenant configure ${l.id} --status ${e} --json`,8e3);if(/error|Error/i.test(c)&&!/"id"/.test(c)){v.error("状态变更失败: "+c.slice(0,120));return}v.success(`已${e==="active"?"激活":"暂停"}`),await N()}catch(c){v.error("状态变更失败: "+(c?.message||c))}}async function Ve(l){try{const{output:e}=await r.execute(`tenant delete ${l.id} --json`,8e3);if(/error|Error/i.test(e)&&!/deleted|removed/.test(e)){v.error("删除失败: "+e.slice(0,120));return}v.success("租户已软删除"),await N()}catch(e){v.error("删除失败: "+(e?.message||e))}}async function Qe(l){try{const{output:e}=await r.execute(`tenant cancel ${l.tenantId}`,8e3);if(/error|Error/i.test(e)&&!/cancelled|cancel/i.test(e)){v.error("取消失败: "+e.slice(0,120));return}v.success("订阅已取消"),await N()}catch(e){v.error("取消失败: "+(e?.message||e))}}async function Ge(){if(!U.tenantId){v.warning("请选择租户");return}le.value=!0,k.value=null;try{const l=[`tenant check-quota ${U.tenantId} ${U.metric}`];U.period.trim()&&l.push(`--period ${U.period.trim()}`),l.push("--json");const{output:e}=await r.execute(l.join(" "),8e3),c=gt(e);if(!c){v.error("检查失败: "+e.slice(0,120));return}k.value=c,c.exceeded&&v.warning("该租户已超额!")}catch(l){v.error("检查失败: "+(l?.message||l))}finally{le.value=!1}}async function We(){if(!b.tenantId){v.warning("请选择租户");return}if(b.value==null||b.value<0){v.warning("请输入有效数量");return}oe.value=!0;try{const l=[`tenant record ${b.tenantId} ${b.metric} ${b.value}`];b.period.trim()&&l.push(`--period ${b.period.trim()}`),l.push("--json");const{output:e}=await r.execute(l.join(" "),8e3);if(/error|Error/i.test(e)&&!/"id"|"tenant"/.test(e)){v.error("记录失败: "+e.slice(0,120));return}v.success("用量已记录"),Z.value=!1,Se(),await N()}catch(l){v.error("记录失败: "+(l?.message||l))}finally{oe.value=!1}}function ke(){w.name="",w.slug="",w.plan="free",w.owner=""}function xe(){x.tenantId="",x.plan="pro",x.amount=null,x.duration=720*60*60*1e3,ie.value=""}function Se(){b.tenantId=null,b.metric="api_calls",b.value=1,b.period=""}function Ce(l){l.period||(l.period=kt())}return Ce(U),Ce(b),ut(N),(l,e)=>{const c=y("a-button"),T=y("a-menu-item"),ee=y("a-menu"),Ae=y("a-dropdown"),we=y("a-space"),L=y("a-statistic"),O=y("a-card"),R=y("a-col"),ze=y("a-row"),M=y("a-tag"),P=y("a-radio-button"),de=y("a-radio-group"),$e=y("a-popconfirm"),je=y("a-table"),pe=y("a-tab-pane"),He=y("a-tabs"),G=y("a-input"),$=y("a-form-item"),B=y("a-select-option"),E=y("a-select"),te=y("a-form"),ae=y("a-modal"),Ue=y("a-input-number"),Xe=y("a-progress");return u(),f("div",null,[m("div",xt,[e[26]||(e[26]=m("div",null,[m("h2",{class:"page-title"},"多租户 SaaS"),m("p",{class:"page-sub"},"租户管理 · 订阅计费 · 用量计量 · 配额检查")],-1)),n(we,null,{default:a(()=>[n(c,{loading:s.value,onClick:N},{icon:a(()=>[n(_(at))]),default:a(()=>[e[21]||(e[21]=d(" 刷新 ",-1))]),_:1},8,["loading"]),n(Ae,{trigger:["click"]},{overlay:a(()=>[n(ee,{onClick:Ee},{default:a(()=>[n(T,{key:"tenant"},{default:a(()=>[n(_(ce)),e[23]||(e[23]=d(" 创建租户",-1))]),_:1}),n(T,{key:"quota"},{default:a(()=>[n(_(lt)),e[24]||(e[24]=d(" 检查配额",-1))]),_:1}),n(T,{key:"record"},{default:a(()=>[n(_(ot)),e[25]||(e[25]=d(" 记录用量",-1))]),_:1})]),_:1})]),default:a(()=>[n(c,{type:"primary"},{icon:a(()=>[n(_(nt))]),default:a(()=>[e[22]||(e[22]=d(" 操作 ▼ ",-1))]),_:1})]),_:1})]),_:1})]),n(ze,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[n(R,{xs:12,sm:8,lg:5},{default:a(()=>[n(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[n(L,{title:"租户总数",value:h.value.tenantCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[n(_(ce))]),_:1},8,["value"])]),_:1})]),_:1}),n(R,{xs:12,sm:8,lg:5},{default:a(()=>[n(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[n(L,{title:"活跃订阅",value:h.value.activeSubscriptions,"value-style":{color:h.value.activeSubscriptions>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:a(()=>[n(_(Ie))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),n(R,{xs:12,sm:8,lg:5},{default:a(()=>[n(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[n(L,{title:"月度收入",value:Oe.value,precision:0,prefix:"¥","value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["value"])]),_:1})]),_:1}),n(R,{xs:12,sm:8,lg:5},{default:a(()=>[n(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[n(L,{title:"API 调用",value:h.value.totalUsage.api_calls,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[n(_(rt))]),_:1},8,["value"])]),_:1})]),_:1}),n(R,{xs:24,sm:8,lg:4},{default:a(()=>[n(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[n(L,{title:"存储用量",value:_(ve)(h.value.totalUsage.storage_bytes),"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["value"])]),_:1})]),_:1})]),_:1}),h.value.tenantCount>0?(u(),g(O,{key:0,title:"计划分布",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[n(we,{size:[12,8],wrap:""},{default:a(()=>[(u(!0),f(A,null,j(_(W),t=>(u(),g(M,{key:t,color:Q(t)},{default:a(()=>[d(p(F(t))+": "+p(h.value.byPlan[t]||0),1)]),_:2},1032,["color"]))),128)),m("span",St," 活跃 "+p(h.value.byStatus.active)+" · 暂停 "+p(h.value.byStatus.suspended)+" · 已删除 "+p(h.value.byStatus.deleted),1)]),_:1})]),_:1})):S("",!0),n(He,{activeKey:ue.value,"onUpdate:activeKey":e[2]||(e[2]=t=>ue.value=t),class:"tenant-tabs"},{default:a(()=>[n(pe,{key:"tenants",tab:"租户"},{default:a(()=>[m("div",Ct,[n(de,{value:K.value,"onUpdate:value":e[0]||(e[0]=t=>K.value=t),size:"small"},{default:a(()=>[n(P,{value:""},{default:a(()=>[...e[27]||(e[27]=[d("全部计划",-1)])]),_:1}),(u(!0),f(A,null,j(_(W),t=>(u(),g(P,{key:t,value:t},{default:a(()=>[d(p(F(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),n(de,{value:V.value,"onUpdate:value":e[1]||(e[1]=t=>V.value=t),size:"small","button-style":"solid"},{default:a(()=>[n(P,{value:""},{default:a(()=>[...e[28]||(e[28]=[d("全部状态",-1)])]),_:1}),(u(!0),f(A,null,j(_(st),t=>(u(),g(P,{key:t,value:t},{default:a(()=>[d(p(ge(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),n(je,{columns:qe,"data-source":Ne.value,pagination:{pageSize:20,showTotal:t=>`共 ${t} 条`},size:"small",loading:s.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:t,record:i})=>[t.key==="name"?(u(),f(A,{key:0},[m("span",At,p(i.name),1),m("div",wt,p(i.slug),1)],64)):S("",!0),t.key==="plan"?(u(),g(M,{key:1,color:Q(i.plan)},{default:a(()=>[d(p(F(i.plan)),1)]),_:2},1032,["color"])):S("",!0),t.key==="status"?(u(),g(M,{key:2,color:Me(i.status)},{default:a(()=>[d(p(ge(i.status)),1)]),_:2},1032,["color"])):S("",!0),t.key==="owner"?(u(),f(A,{key:3},[i.ownerId?(u(),f("span",zt,p(i.ownerId),1)):(u(),f("span",$t,"—"))],64)):S("",!0),t.key==="createdAt"?(u(),f("span",jt,p(_(fe)(i.createdAt)),1)):S("",!0),t.key==="action"?(u(),f(A,{key:5},[n(c,{size:"small",type:"link",onClick:q=>Ye(i)},{default:a(()=>[...e[29]||(e[29]=[d("订阅",-1)])]),_:1},8,["onClick"]),n(Ae,{trigger:["click"]},{overlay:a(()=>[n(ee,{onClick:q=>Ke(i,q.key)},{default:a(()=>[(u(!0),f(A,null,j(_(W),q=>(u(),g(T,{key:q,disabled:q===i.plan},{default:a(()=>[d(p(F(q)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:a(()=>[n(c,{size:"small",type:"link"},{default:a(()=>[...e[30]||(e[30]=[d("计划 ▼",-1)])]),_:1})]),_:2},1024),i.status==="active"?(u(),g(c,{key:0,size:"small",type:"link",onClick:q=>be(i,"suspended")},{default:a(()=>[...e[31]||(e[31]=[d("暂停",-1)])]),_:1},8,["onClick"])):i.status==="suspended"?(u(),g(c,{key:1,size:"small",type:"link",onClick:q=>be(i,"active")},{default:a(()=>[...e[32]||(e[32]=[d("激活",-1)])]),_:1},8,["onClick"])):S("",!0),i.status!=="deleted"?(u(),g($e,{key:2,title:"软删除该租户?","ok-text":"删除","cancel-text":"取消",onConfirm:q=>Ve(i)},{default:a(()=>[n(c,{size:"small",type:"link",danger:""},{default:a(()=>[...e[33]||(e[33]=[d("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])):S("",!0)],64)):S("",!0)]),emptyText:a(()=>[m("div",Ut,[n(_(ce),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),d(" "+p(K.value||V.value?"没有符合条件的租户":'暂无租户,点"操作 → 创建租户"添加第一个'),1)])]),_:1},8,["data-source","pagination","loading"])]),_:1}),n(pe,{key:"subscriptions",tab:"订阅"},{default:a(()=>[n(je,{columns:Fe,"data-source":re.value,pagination:{pageSize:20,showTotal:t=>`共 ${t} 条`},size:"small",loading:s.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:t,record:i})=>[t.key==="tenant"?(u(),f(A,{key:0},[m("span",It,p(Re(i.tenantId)),1),m("div",ht,p(i.tenantId.slice(0,8)),1)],64)):S("",!0),t.key==="plan"?(u(),g(M,{key:1,color:Q(i.plan)},{default:a(()=>[d(p(F(i.plan)),1)]),_:2},1032,["color"])):S("",!0),t.key==="amount"?(u(),f(A,{key:2},[i.amount!=null?(u(),f("span",Tt,"¥"+p(i.amount),1)):(u(),f("span",qt,"—"))],64)):S("",!0),t.key==="status"?(u(),g(M,{key:3,color:Le(i.status)},{default:a(()=>[d(p(Pe(i.status)),1)]),_:2},1032,["color"])):S("",!0),t.key==="startedAt"?(u(),f("span",Ft,p(_(fe)(i.startedAt)),1)):S("",!0),t.key==="expiresAt"?(u(),f("span",Nt,p(_(fe)(i.expiresAt)),1)):S("",!0),t.key==="action"?(u(),f(A,{key:6},[i.status==="active"?(u(),g($e,{key:0,title:"取消该订阅?","ok-text":"取消订阅","cancel-text":"返回",onConfirm:q=>Qe(i)},{default:a(()=>[n(c,{size:"small",type:"link",danger:""},{default:a(()=>[...e[34]||(e[34]=[d("取消订阅",-1)])]),_:1})]),_:1},8,["onConfirm"])):S("",!0)],64)):S("",!0)]),emptyText:a(()=>[m("div",Ot,[n(_(Ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),e[35]||(e[35]=d(" 暂无订阅记录 ",-1))])]),_:1},8,["data-source","pagination","loading"])]),_:1}),n(pe,{key:"plans",tab:"计划"},{default:a(()=>[n(ze,{gutter:[16,16]},{default:a(()=>[(u(!0),f(A,null,j(me.value,t=>(u(),g(R,{key:t.id,xs:24,sm:12,lg:6},{default:a(()=>[n(O,{title:t.name,size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:a(()=>[n(M,{color:Q(t.id)},{default:a(()=>[d(p(t.id),1)]),_:2},1032,["color"])]),default:a(()=>[m("div",Mt,[t.monthlyFee!=null?(u(),f("span",Pt,[d("¥"+p(t.monthlyFee)+" ",1),e[36]||(e[36]=m("span",{class:"plan-fee-unit"},"/ 月",-1))])):(u(),f("span",Lt,"联系销售"))]),m("div",Rt,[e[37]||(e[37]=m("div",{class:"plan-section-title"},"配额",-1)),(u(!0),f(A,null,j(ye.value,i=>(u(),f("div",{key:i.id,class:"plan-quota-row"},[m("span",Bt,p(i.name),1),m("span",Et,p(Be(t.quotas?.[i.id],i.id)),1)]))),128))]),m("div",Dt,[e[38]||(e[38]=m("div",{class:"plan-section-title"},"特性",-1)),(u(!0),f(A,null,j(t.features,i=>(u(),g(M,{key:i,style:{"font-size":"10px",margin:"1px"}},{default:a(()=>[d(p(i),1)]),_:2},1024))),128))])]),_:2},1032,["title"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1},8,["activeKey"]),n(ae,{open:H.value,"onUpdate:open":e[7]||(e[7]=t=>H.value=t),title:"创建租户","confirm-loading":z.value,width:520,"ok-text":"创建","cancel-text":"取消",onOk:De,onCancel:ke},{default:a(()=>[n(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[n($,{label:"名称",required:""},{default:a(()=>[n(G,{value:w.name,"onUpdate:value":e[3]||(e[3]=t=>w.name=t),placeholder:"例如: Acme Corp"},null,8,["value"])]),_:1}),n($,{label:"Slug",required:""},{default:a(()=>[n(G,{value:w.slug,"onUpdate:value":e[4]||(e[4]=t=>w.slug=t),placeholder:"小写字母数字+连字符,例如: acme-corp"},null,8,["value"])]),_:1}),n($,{label:"计划"},{default:a(()=>[n(E,{value:w.plan,"onUpdate:value":e[5]||(e[5]=t=>w.plan=t)},{default:a(()=>[(u(!0),f(A,null,j(_(W),t=>(u(),g(B,{key:t,value:t},{default:a(()=>[d(p(F(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),n($,{label:"所有者 ID"},{default:a(()=>[n(G,{value:w.owner,"onUpdate:value":e[6]||(e[6]=t=>w.owner=t),placeholder:"可选"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),n(ae,{open:X.value,"onUpdate:open":e[11]||(e[11]=t=>X.value=t),title:`订阅:${ie.value}`,"confirm-loading":Y.value,width:500,"ok-text":"订阅","cancel-text":"取消",onOk:Je,onCancel:xe},{default:a(()=>[n(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[n($,{label:"计划",required:""},{default:a(()=>[n(E,{value:x.plan,"onUpdate:value":e[8]||(e[8]=t=>x.plan=t)},{default:a(()=>[(u(!0),f(A,null,j(_(W),t=>(u(),g(B,{key:t,value:t},{default:a(()=>[d(p(F(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),n($,{label:"金额覆盖"},{default:a(()=>[n(Ue,{value:x.amount,"onUpdate:value":e[9]||(e[9]=t=>x.amount=t),min:0,placeholder:"留空使用计划默认价",style:{width:"100%"}},null,8,["value"])]),_:1}),n($,{label:"周期"},{default:a(()=>[n(de,{value:x.duration,"onUpdate:value":e[10]||(e[10]=t=>x.duration=t)},{default:a(()=>[n(P,{value:720*60*60*1e3},{default:a(()=>[...e[39]||(e[39]=[d("30 天",-1)])]),_:1}),n(P,{value:2160*60*60*1e3},{default:a(()=>[...e[40]||(e[40]=[d("90 天",-1)])]),_:1}),n(P,{value:365*24*60*60*1e3},{default:a(()=>[...e[41]||(e[41]=[d("1 年",-1)])]),_:1})]),_:1},8,["value"])]),_:1})]),_:1})]),_:1},8,["open","title","confirm-loading"]),n(ae,{open:se.value,"onUpdate:open":e[15]||(e[15]=t=>se.value=t),title:"配额检查","confirm-loading":le.value,width:500,"ok-text":"检查","cancel-text":"关闭",onOk:Ge},{default:a(()=>[n(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[n($,{label:"租户",required:""},{default:a(()=>[n(E,{value:U.tenantId,"onUpdate:value":e[12]||(e[12]=t=>U.tenantId=t),"show-search":"",placeholder:"选择租户"},{default:a(()=>[(u(!0),f(A,null,j(J.value,t=>(u(),g(B,{key:t.id,value:t.id},{default:a(()=>[d(p(t.name)+" ("+p(t.slug)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),n($,{label:"指标",required:""},{default:a(()=>[n(E,{value:U.metric,"onUpdate:value":e[13]||(e[13]=t=>U.metric=t)},{default:a(()=>[(u(!0),f(A,null,j(_(Te),t=>(u(),g(B,{key:t,value:t},{default:a(()=>[d(p(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),n($,{label:"周期"},{default:a(()=>[n(G,{value:U.period,"onUpdate:value":e[14]||(e[14]=t=>U.period=t),placeholder:"YYYY-MM,留空则当前月"},null,8,["value"])]),_:1})]),_:1}),k.value?(u(),g(O,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:a(()=>[n(L,{title:"配额状态",value:k.value.unlimited?"无限":k.value.exceeded?"已超额":"正常","value-style":{color:k.value.exceeded?"#ff4d4f":k.value.unlimited?"#722ed1":"#52c41a"}},null,8,["value","value-style"]),m("div",Yt,[m("div",null,[e[42]||(e[42]=d("计划: ",-1)),n(M,{color:Q(k.value.plan)},{default:a(()=>[d(p(F(k.value.plan)),1)]),_:1},8,["color"])]),m("div",null,"周期: "+p(k.value.period),1),m("div",null,[e[43]||(e[43]=d("已用: ",-1)),m("span",Jt,p(_e(k.value.used,k.value.metric)),1)]),k.value.unlimited?S("",!0):(u(),f("div",Kt,[e[44]||(e[44]=d(" 上限: ",-1)),m("span",Vt,p(_e(k.value.limit,k.value.metric)),1)])),!k.value.unlimited&&k.value.limit>0?(u(),f("div",Qt,[n(Xe,{percent:Math.min(100,Math.round(100*k.value.used/k.value.limit)),size:"small",status:k.value.exceeded?"exception":"active"},null,8,["percent","status"])])):S("",!0)])]),_:1})):S("",!0)]),_:1},8,["open","confirm-loading"]),n(ae,{open:Z.value,"onUpdate:open":e[20]||(e[20]=t=>Z.value=t),title:"记录用量","confirm-loading":oe.value,width:500,"ok-text":"记录","cancel-text":"取消",onOk:We,onCancel:Se},{default:a(()=>[n(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[n($,{label:"租户",required:""},{default:a(()=>[n(E,{value:b.tenantId,"onUpdate:value":e[16]||(e[16]=t=>b.tenantId=t),"show-search":"",placeholder:"选择租户"},{default:a(()=>[(u(!0),f(A,null,j(J.value,t=>(u(),g(B,{key:t.id,value:t.id},{default:a(()=>[d(p(t.name)+" ("+p(t.slug)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),n($,{label:"指标",required:""},{default:a(()=>[n(E,{value:b.metric,"onUpdate:value":e[17]||(e[17]=t=>b.metric=t)},{default:a(()=>[(u(!0),f(A,null,j(_(Te),t=>(u(),g(B,{key:t,value:t},{default:a(()=>[d(p(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),n($,{label:"数量",required:""},{default:a(()=>[n(Ue,{value:b.value,"onUpdate:value":e[18]||(e[18]=t=>b.value=t),min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),n($,{label:"周期"},{default:a(()=>[n(G,{value:b.period,"onUpdate:value":e[19]||(e[19]=t=>b.period=t),placeholder:"YYYY-MM,留空则当前月"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])])}}},sa=tt(Gt,[["__scopeId","data-v-45eae7f1"]]);export{sa as default};
@@ -1 +1 @@
1
- import{_ as P,l as I}from"./index-MzZGrA5i.js";import{P as _}from"./index-U4Zd5IK6.js";import{w as z}from"./raf-Deuc0E8-.js";import{_ as $,t as fe,c as Ct,J as Be,x as Ve,K as Fe,M as $t,N as Le,O as Ie,y as et}from"./useConfigInject-BfCzqqat.js";import{a as U,s as G,P as We}from"./motion-Bo_wsn2G.js";import{c as C,$ as xt,a0 as ce,a5 as ze,d as J,r as W,w as V,l as pe,o as Xe,s as x,j as K,n as wt,_ as Ye,M as je,a1 as Ue,P as Ht,a4 as Ge,H as ke,p as Ke,i as qe}from"./vendor-BVetwVfk.js";import{g as de,u as Ze}from"./Portal-CHsntPCQ.js";import{c as he}from"./vnode-kNIbBJfF.js";import{i as Je}from"./isVisible-C7tPsqfj.js";import{i as Qe}from"./ResizeObserver.es-D6qJbdzf.js";import{l as tn,M as ve,r as en,S as Rt,a as at,d as nn,b as Tt,c as ge,i as on,f as rn,g as Bt,j as Vt}from"./_getTag-CWA3v-Ds.js";import{a as sn}from"./transition-6LOZvE9a.js";function an(){return""}function un(t){return t?t.ownerDocument:window.document}function me(){}const ln=()=>({action:_.oneOfType([_.string,_.arrayOf(_.string)]).def([]),showAction:_.any.def([]),hideAction:_.any.def([]),getPopupClassNameFromAlign:_.any.def(an),onPopupVisibleChange:Function,afterPopupVisibleChange:_.func.def(me),popup:_.any,arrow:_.bool.def(!0),popupStyle:{type:Object,default:void 0},prefixCls:_.string.def("rc-trigger-popup"),popupClassName:_.string.def(""),popupPlacement:String,builtinPlacements:_.object,popupTransitionName:String,popupAnimation:_.any,mouseEnterDelay:_.number.def(0),mouseLeaveDelay:_.number.def(.1),zIndex:Number,focusDelay:_.number.def(0),blurDelay:_.number.def(.15),getPopupContainer:Function,getDocument:_.func.def(un),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:_.object.def(()=>({})),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function}),Mt={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,arrow:{type:Boolean,default:!0},animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},fn=P(P({},Mt),{mobile:{type:Object}}),cn=P(P({},Mt),{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function ye(t){const{prefixCls:e,visible:n,zIndex:i,mask:o,maskAnimation:r,maskTransitionName:s}=t;if(!o)return null;let a={};return(s||r)&&(a=de({prefixCls:e,transitionName:s,animation:r})),C(xt,$({appear:!0},a),{default:()=>[ce(C("div",{style:{zIndex:i},class:`${e}-mask`},null),[[ze("if"),n]])]})}ye.displayName="Mask";const pn=J({compatConfig:{MODE:3},name:"MobilePopupInner",inheritAttrs:!1,props:fn,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup(t,e){let{expose:n,slots:i}=e;const o=W();return n({forceAlign:()=>{},getElement:()=>o.value}),()=>{var r;const{zIndex:s,visible:a,prefixCls:l,mobile:{popupClassName:u,popupStyle:h,popupMotion:p={},popupRender:c}={}}=t,f=P({zIndex:s},h);let d=fe((r=i.default)===null||r===void 0?void 0:r.call(i));d.length>1&&(d=C("div",{class:`${l}-content`},[d])),c&&(d=c(d));const g=Ct(l,u);return C(xt,$({ref:o},p),{default:()=>[a?C("div",{class:g,style:f},[d]):null]})}}});var dn=function(t,e,n,i){function o(r){return r instanceof n?r:new n(function(s){s(r)})}return new(n||(n=Promise))(function(r,s){function a(h){try{u(i.next(h))}catch(p){s(p)}}function l(h){try{u(i.throw(h))}catch(p){s(p)}}function u(h){h.done?r(h.value):o(h.value).then(a,l)}u((i=i.apply(t,e||[])).next())})};const Ft=["measure","align",null,"motion"],hn=((t,e)=>{const n=x(null),i=x(),o=x(!1);function r(l){o.value||(n.value=l)}function s(){z.cancel(i.value)}function a(l){s(),i.value=z(()=>{let u=n.value;switch(n.value){case"align":u="motion";break;case"motion":u="stable";break}r(u),l?.()})}return V(t,()=>{r("measure")},{immediate:!0,flush:"post"}),pe(()=>{V(n,()=>{n.value==="measure"&&e(),n.value&&(i.value=z(()=>dn(void 0,void 0,void 0,function*(){const l=Ft.indexOf(n.value),u=Ft[l+1];u&&l!==-1&&r(u)})))},{immediate:!0,flush:"post"})}),Xe(()=>{o.value=!0,s()}),[n,a]}),vn=(t=>{const e=x({width:0,height:0});function n(o){e.value={width:o.offsetWidth,height:o.offsetHeight}}return[K(()=>{const o={};if(t.value){const{width:r,height:s}=e.value;t.value.indexOf("height")!==-1&&s?o.height=`${s}px`:t.value.indexOf("minHeight")!==-1&&s&&(o.minHeight=`${s}px`),t.value.indexOf("width")!==-1&&r?o.width=`${r}px`:t.value.indexOf("minWidth")!==-1&&r&&(o.minWidth=`${r}px`)}return o}),n]});function Lt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function It(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Lt(Object(n),!0).forEach(function(i){gn(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Lt(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function bt(t){"@babel/helpers - typeof";return bt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bt(t)}function gn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var j,mn={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-",O:"-o-"};function ut(){if(j!==void 0)return j;j="";var t=document.createElement("p").style,e="Transform";for(var n in mn)n+e in t&&(j=n);return j}function we(){return ut()?"".concat(ut(),"TransitionProperty"):"transitionProperty"}function ft(){return ut()?"".concat(ut(),"Transform"):"transform"}function Wt(t,e){var n=we();n&&(t.style[n]=e,n!=="transitionProperty"&&(t.style.transitionProperty=e))}function ht(t,e){var n=ft();n&&(t.style[n]=e,n!=="transform"&&(t.style.transform=e))}function yn(t){return t.style.transitionProperty||t.style[we()]}function wn(t){var e=window.getComputedStyle(t,null),n=e.getPropertyValue("transform")||e.getPropertyValue(ft());if(n&&n!=="none"){var i=n.replace(/[^0-9\-.,]/g,"").split(",");return{x:parseFloat(i[12]||i[4],0),y:parseFloat(i[13]||i[5],0)}}return{x:0,y:0}}var Tn=/matrix\((.*)\)/,bn=/matrix3d\((.*)\)/;function Pn(t,e){var n=window.getComputedStyle(t,null),i=n.getPropertyValue("transform")||n.getPropertyValue(ft());if(i&&i!=="none"){var o,r=i.match(Tn);if(r)r=r[1],o=r.split(",").map(function(a){return parseFloat(a,10)}),o[4]=e.x,o[5]=e.y,ht(t,"matrix(".concat(o.join(","),")"));else{var s=i.match(bn)[1];o=s.split(",").map(function(a){return parseFloat(a,10)}),o[12]=e.x,o[13]=e.y,ht(t,"matrix3d(".concat(o.join(","),")"))}}else ht(t,"translateX(".concat(e.x,"px) translateY(").concat(e.y,"px) translateZ(0)"))}var _n=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,Q;function zt(t){var e=t.style.display;t.style.display="none",t.offsetHeight,t.style.display=e}function X(t,e,n){var i=n;if(bt(e)==="object"){for(var o in e)e.hasOwnProperty(o)&&X(t,o,e[o]);return}if(typeof i<"u"){typeof i=="number"&&(i="".concat(i,"px")),t.style[e]=i;return}return Q(t,e)}function On(t){var e,n,i,o=t.ownerDocument,r=o.body,s=o&&o.documentElement;return e=t.getBoundingClientRect(),n=Math.floor(e.left),i=Math.floor(e.top),n-=s.clientLeft||r.clientLeft||0,i-=s.clientTop||r.clientTop||0,{left:n,top:i}}function Te(t,e){var n=t["page".concat(e?"Y":"X","Offset")],i="scroll".concat(e?"Top":"Left");if(typeof n!="number"){var o=t.document;n=o.documentElement[i],typeof n!="number"&&(n=o.body[i])}return n}function be(t){return Te(t)}function Pe(t){return Te(t,!0)}function q(t){var e=On(t),n=t.ownerDocument,i=n.defaultView||n.parentWindow;return e.left+=be(i),e.top+=Pe(i),e}function St(t){return t!=null&&t==t.window}function _e(t){return St(t)?t.document:t.nodeType===9?t:t.ownerDocument}function Cn(t,e,n){var i=n,o="",r=_e(t);return i=i||r.defaultView.getComputedStyle(t,null),i&&(o=i.getPropertyValue(e)||i[e]),o}var xn=new RegExp("^(".concat(_n,")(?!px)[a-z%]+$"),"i"),Mn=/^(top|right|bottom|left)$/,vt="currentStyle",gt="runtimeStyle",B="left",Sn="px";function An(t,e){var n=t[vt]&&t[vt][e];if(xn.test(n)&&!Mn.test(e)){var i=t.style,o=i[B],r=t[gt][B];t[gt][B]=t[vt][B],i[B]=e==="fontSize"?"1em":n||0,n=i.pixelLeft+Sn,i[B]=o,t[gt][B]=r}return n===""?"auto":n}typeof window<"u"&&(Q=window.getComputedStyle?Cn:An);function nt(t,e){return t==="left"?e.useCssRight?"right":t:e.useCssBottom?"bottom":t}function Xt(t){if(t==="left")return"right";if(t==="right")return"left";if(t==="top")return"bottom";if(t==="bottom")return"top"}function Yt(t,e,n){X(t,"position")==="static"&&(t.style.position="relative");var i=-999,o=-999,r=nt("left",n),s=nt("top",n),a=Xt(r),l=Xt(s);r!=="left"&&(i=999),s!=="top"&&(o=999);var u="",h=q(t);("left"in e||"top"in e)&&(u=yn(t)||"",Wt(t,"none")),"left"in e&&(t.style[a]="",t.style[r]="".concat(i,"px")),"top"in e&&(t.style[l]="",t.style[s]="".concat(o,"px")),zt(t);var p=q(t),c={};for(var f in e)if(e.hasOwnProperty(f)){var d=nt(f,n),g=f==="left"?i:o,w=h[f]-p[f];d===f?c[d]=g+w:c[d]=g-w}X(t,c),zt(t),("left"in e||"top"in e)&&Wt(t,u);var m={};for(var y in e)if(e.hasOwnProperty(y)){var b=nt(y,n),O=e[y]-h[y];y===b?m[b]=c[b]+O:m[b]=c[b]-O}X(t,m)}function Dn(t,e){var n=q(t),i=wn(t),o={x:i.x,y:i.y};"left"in e&&(o.x=i.x+e.left-n.left),"top"in e&&(o.y=i.y+e.top-n.top),Pn(t,o)}function En(t,e,n){if(n.ignoreShake){var i=q(t),o=i.left.toFixed(0),r=i.top.toFixed(0),s=e.left.toFixed(0),a=e.top.toFixed(0);if(o===s&&r===a)return}n.useCssRight||n.useCssBottom?Yt(t,e,n):n.useCssTransform&&ft()in document.body.style?Dn(t,e):Yt(t,e,n)}function At(t,e){for(var n=0;n<t.length;n++)e(t[n])}function Oe(t){return Q(t,"boxSizing")==="border-box"}var Nn=["margin","border","padding"],Pt=-1,$n=2,_t=1,Hn=0;function Rn(t,e,n){var i={},o=t.style,r;for(r in e)e.hasOwnProperty(r)&&(i[r]=o[r],o[r]=e[r]);n.call(t);for(r in e)e.hasOwnProperty(r)&&(o[r]=i[r])}function k(t,e,n){var i=0,o,r,s;for(r=0;r<e.length;r++)if(o=e[r],o)for(s=0;s<n.length;s++){var a=void 0;o==="border"?a="".concat(o).concat(n[s],"Width"):a=o+n[s],i+=parseFloat(Q(t,a))||0}return i}var D={getParent:function(e){var n=e;do n.nodeType===11&&n.host?n=n.host:n=n.parentNode;while(n&&n.nodeType!==1&&n.nodeType!==9);return n}};At(["Width","Height"],function(t){D["doc".concat(t)]=function(e){var n=e.document;return Math.max(n.documentElement["scroll".concat(t)],n.body["scroll".concat(t)],D["viewport".concat(t)](n))},D["viewport".concat(t)]=function(e){var n="client".concat(t),i=e.document,o=i.body,r=i.documentElement,s=r[n];return i.compatMode==="CSS1Compat"&&s||o&&o[n]||s}});function jt(t,e,n){var i=n;if(St(t))return e==="width"?D.viewportWidth(t):D.viewportHeight(t);if(t.nodeType===9)return e==="width"?D.docWidth(t):D.docHeight(t);var o=e==="width"?["Left","Right"]:["Top","Bottom"],r=Math.floor(e==="width"?t.getBoundingClientRect().width:t.getBoundingClientRect().height),s=Oe(t),a=0;(r==null||r<=0)&&(r=void 0,a=Q(t,e),(a==null||Number(a)<0)&&(a=t.style[e]||0),a=Math.floor(parseFloat(a))||0),i===void 0&&(i=s?_t:Pt);var l=r!==void 0||s,u=r||a;return i===Pt?l?u-k(t,["border","padding"],o):a:l?i===_t?u:u+(i===$n?-k(t,["border"],o):k(t,["margin"],o)):a+k(t,Nn.slice(i),o)}var Bn={position:"absolute",visibility:"hidden",display:"block"};function Ut(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var i,o=e[0];return o.offsetWidth!==0?i=jt.apply(void 0,e):Rn(o,Bn,function(){i=jt.apply(void 0,e)}),i}At(["width","height"],function(t){var e=t.charAt(0).toUpperCase()+t.slice(1);D["outer".concat(e)]=function(i,o){return i&&Ut(i,t,o?Hn:_t)};var n=t==="width"?["Left","Right"]:["Top","Bottom"];D[t]=function(i,o){var r=o;if(r!==void 0){if(i){var s=Oe(i);return s&&(r+=k(i,["padding","border"],n)),X(i,t,r)}return}return i&&Ut(i,t,Pt)}});function Ce(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var v={getWindow:function(e){if(e&&e.document&&e.setTimeout)return e;var n=e.ownerDocument||e;return n.defaultView||n.parentWindow},getDocument:_e,offset:function(e,n,i){if(typeof n<"u")En(e,n,i||{});else return q(e)},isWindow:St,each:At,css:X,clone:function(e){var n,i={};for(n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);var o=e.overflow;if(o)for(n in e)e.hasOwnProperty(n)&&(i.overflow[n]=e.overflow[n]);return i},mix:Ce,getWindowScrollLeft:function(e){return be(e)},getWindowScrollTop:function(e){return Pe(e)},merge:function(){for(var e={},n=0;n<arguments.length;n++)v.mix(e,n<0||arguments.length<=n?void 0:arguments[n]);return e},viewportWidth:0,viewportHeight:0};Ce(v,D);var mt=v.getParent;function Ot(t){if(v.isWindow(t)||t.nodeType===9)return null;var e=v.getDocument(t),n=e.body,i,o=v.css(t,"position"),r=o==="fixed"||o==="absolute";if(!r)return t.nodeName.toLowerCase()==="html"?null:mt(t);for(i=mt(t);i&&i!==n&&i.nodeType!==9;i=mt(i))if(o=v.css(i,"position"),o!=="static")return i;return null}var Gt=v.getParent;function Vn(t){if(v.isWindow(t)||t.nodeType===9)return!1;var e=v.getDocument(t),n=e.body,i=null;for(i=Gt(t);i&&i!==n&&i!==e;i=Gt(i)){var o=v.css(i,"position");if(o==="fixed")return!0}return!1}function Dt(t,e){for(var n={left:0,right:1/0,top:0,bottom:1/0},i=Ot(t),o=v.getDocument(t),r=o.defaultView||o.parentWindow,s=o.body,a=o.documentElement;i;){if((navigator.userAgent.indexOf("MSIE")===-1||i.clientWidth!==0)&&i!==s&&i!==a&&v.css(i,"overflow")!=="visible"){var l=v.offset(i);l.left+=i.clientLeft,l.top+=i.clientTop,n.top=Math.max(n.top,l.top),n.right=Math.min(n.right,l.left+i.clientWidth),n.bottom=Math.min(n.bottom,l.top+i.clientHeight),n.left=Math.max(n.left,l.left)}else if(i===s||i===a)break;i=Ot(i)}var u=null;if(!v.isWindow(t)&&t.nodeType!==9){u=t.style.position;var h=v.css(t,"position");h==="absolute"&&(t.style.position="fixed")}var p=v.getWindowScrollLeft(r),c=v.getWindowScrollTop(r),f=v.viewportWidth(r),d=v.viewportHeight(r),g=a.scrollWidth,w=a.scrollHeight,m=window.getComputedStyle(s);if(m.overflowX==="hidden"&&(g=r.innerWidth),m.overflowY==="hidden"&&(w=r.innerHeight),t.style&&(t.style.position=u),e||Vn(t))n.left=Math.max(n.left,p),n.top=Math.max(n.top,c),n.right=Math.min(n.right,p+f),n.bottom=Math.min(n.bottom,c+d);else{var y=Math.max(g,p+f);n.right=Math.min(n.right,y);var b=Math.max(w,c+d);n.bottom=Math.min(n.bottom,b)}return n.top>=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function Fn(t,e,n,i){var o=v.clone(t),r={width:e.width,height:e.height};return i.adjustX&&o.left<n.left&&(o.left=n.left),i.resizeWidth&&o.left>=n.left&&o.left+r.width>n.right&&(r.width-=o.left+r.width-n.right),i.adjustX&&o.left+r.width>n.right&&(o.left=Math.max(n.right-r.width,n.left)),i.adjustY&&o.top<n.top&&(o.top=n.top),i.resizeHeight&&o.top>=n.top&&o.top+r.height>n.bottom&&(r.height-=o.top+r.height-n.bottom),i.adjustY&&o.top+r.height>n.bottom&&(o.top=Math.max(n.bottom-r.height,n.top)),v.mix(o,r)}function Et(t){var e,n,i;if(!v.isWindow(t)&&t.nodeType!==9)e=v.offset(t),n=v.outerWidth(t),i=v.outerHeight(t);else{var o=v.getWindow(t);e={left:v.getWindowScrollLeft(o),top:v.getWindowScrollTop(o)},n=v.viewportWidth(o),i=v.viewportHeight(o)}return e.width=n,e.height=i,e}function kt(t,e){var n=e.charAt(0),i=e.charAt(1),o=t.width,r=t.height,s=t.left,a=t.top;return n==="c"?a+=r/2:n==="b"&&(a+=r),i==="c"?s+=o/2:i==="r"&&(s+=o),{left:s,top:a}}function it(t,e,n,i,o){var r=kt(e,n[1]),s=kt(t,n[0]),a=[s.left-r.left,s.top-r.top];return{left:Math.round(t.left-a[0]+i[0]-o[0]),top:Math.round(t.top-a[1]+i[1]-o[1])}}function Kt(t,e,n){return t.left<n.left||t.left+e.width>n.right}function qt(t,e,n){return t.top<n.top||t.top+e.height>n.bottom}function Ln(t,e,n){return t.left>n.right||t.left+e.width<n.left}function In(t,e,n){return t.top>n.bottom||t.top+e.height<n.top}function ot(t,e,n){var i=[];return v.each(t,function(o){i.push(o.replace(e,function(r){return n[r]}))}),i}function rt(t,e){return t[e]=-t[e],t}function Zt(t,e){var n;return/%$/.test(t)?n=parseInt(t.substring(0,t.length-1),10)/100*e:n=parseInt(t,10),n||0}function Jt(t,e){t[0]=Zt(t[0],e.width),t[1]=Zt(t[1],e.height)}function xe(t,e,n,i){var o=n.points,r=n.offset||[0,0],s=n.targetOffset||[0,0],a=n.overflow,l=n.source||t;r=[].concat(r),s=[].concat(s),a=a||{};var u={},h=0,p=!!(a&&a.alwaysByViewport),c=Dt(l,p),f=Et(l);Jt(r,f),Jt(s,e);var d=it(f,e,o,r,s),g=v.merge(f,d);if(c&&(a.adjustX||a.adjustY)&&i){if(a.adjustX&&Kt(d,f,c)){var w=ot(o,/[lr]/gi,{l:"r",r:"l"}),m=rt(r,0),y=rt(s,0),b=it(f,e,w,m,y);Ln(b,f,c)||(h=1,o=w,r=m,s=y)}if(a.adjustY&&qt(d,f,c)){var O=ot(o,/[tb]/gi,{t:"b",b:"t"}),A=rt(r,1),T=rt(s,1),E=it(f,e,O,A,T);In(E,f,c)||(h=1,o=O,r=A,s=T)}h&&(d=it(f,e,o,r,s),v.mix(g,d));var M=Kt(d,f,c),S=qt(d,f,c);if(M||S){var R=o;M&&(R=ot(o,/[lr]/gi,{l:"r",r:"l"})),S&&(R=ot(o,/[tb]/gi,{t:"b",b:"t"})),o=R,r=n.offset||[0,0],s=n.targetOffset||[0,0]}u.adjustX=a.adjustX&&M,u.adjustY=a.adjustY&&S,(u.adjustX||u.adjustY)&&(g=Fn(d,f,c,u))}return g.width!==f.width&&v.css(l,"width",v.width(l)+g.width-f.width),g.height!==f.height&&v.css(l,"height",v.height(l)+g.height-f.height),v.offset(l,{left:g.left,top:g.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:r,targetOffset:s,overflow:u}}function Wn(t,e){var n=Dt(t,e),i=Et(t);return!n||i.left+i.width<=n.left||i.top+i.height<=n.top||i.left>=n.right||i.top>=n.bottom}function Nt(t,e,n){var i=n.target||e,o=Et(i),r=!Wn(i,n.overflow&&n.overflow.alwaysByViewport);return xe(t,o,n,r)}Nt.__getOffsetParent=Ot;Nt.__getVisibleRectForElement=Dt;function zn(t,e,n){var i,o,r=v.getDocument(t),s=r.defaultView||r.parentWindow,a=v.getWindowScrollLeft(s),l=v.getWindowScrollTop(s),u=v.viewportWidth(s),h=v.viewportHeight(s);"pageX"in e?i=e.pageX:i=a+e.clientX,"pageY"in e?o=e.pageY:o=l+e.clientY;var p={left:i,top:o,width:0,height:0},c=i>=0&&i<=a+u&&o>=0&&o<=l+h,f=[n.points[0],"cc"];return xe(t,p,It(It({},n),{},{points:f}),c)}function Xn(t,e){return t===e?!0:!t||!e?!1:"pageX"in e&&"pageY"in e?t.pageX===e.pageX&&t.pageY===e.pageY:"clientX"in e&&"clientY"in e?t.clientX===e.clientX&&t.clientY===e.clientY:!1}function Yn(t,e){t!==document.activeElement&&I(e,t)&&typeof t.focus=="function"&&t.focus()}function Qt(t,e){let n=null,i=null;function o(s){let[{target:a}]=s;if(!document.documentElement.contains(a))return;const{width:l,height:u}=a.getBoundingClientRect(),h=Math.floor(l),p=Math.floor(u);(n!==h||i!==p)&&Promise.resolve().then(()=>{e({width:h,height:p})}),n=h,i=p}const r=new Qe(o);return t&&r.observe(t),()=>{r.disconnect()}}const jn=((t,e)=>{let n=!1,i=null;function o(){clearTimeout(i)}function r(s){if(!n||s===!0){if(t()===!1)return;n=!0,o(),i=setTimeout(()=>{n=!1},e.value)}else o(),i=setTimeout(()=>{n=!1,r()},e.value)}return[r,()=>{n=!1,o()}]});function Un(){this.__data__=[],this.size=0}function Me(t,e){return t===e||t!==t&&e!==e}function ct(t,e){for(var n=t.length;n--;)if(Me(t[n][0],e))return n;return-1}var Gn=Array.prototype,kn=Gn.splice;function Kn(t){var e=this.__data__,n=ct(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():kn.call(e,n,1),--this.size,!0}function qn(t){var e=this.__data__,n=ct(e,t);return n<0?void 0:e[n][1]}function Zn(t){return ct(this.__data__,t)>-1}function Jn(t,e){var n=this.__data__,i=ct(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}function N(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}N.prototype.clear=Un;N.prototype.delete=Kn;N.prototype.get=qn;N.prototype.has=Zn;N.prototype.set=Jn;function Qn(){this.__data__=new N,this.size=0}function ti(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function ei(t){return this.__data__.get(t)}function ni(t){return this.__data__.has(t)}var Z=tn(Object,"create");function ii(){this.__data__=Z?Z(null):{},this.size=0}function oi(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ri="__lodash_hash_undefined__",si=Object.prototype,ai=si.hasOwnProperty;function ui(t){var e=this.__data__;if(Z){var n=e[t];return n===ri?void 0:n}return ai.call(e,t)?e[t]:void 0}var li=Object.prototype,fi=li.hasOwnProperty;function ci(t){var e=this.__data__;return Z?e[t]!==void 0:fi.call(e,t)}var pi="__lodash_hash_undefined__";function di(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Z&&e===void 0?pi:e,this}function F(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}F.prototype.clear=ii;F.prototype.delete=oi;F.prototype.get=ui;F.prototype.has=ci;F.prototype.set=di;function hi(){this.size=0,this.__data__={hash:new F,map:new(ve||N),string:new F}}function vi(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function pt(t,e){var n=t.__data__;return vi(e)?n[typeof e=="string"?"string":"hash"]:n.map}function gi(t){var e=pt(this,t).delete(t);return this.size-=e?1:0,e}function mi(t){return pt(this,t).get(t)}function yi(t){return pt(this,t).has(t)}function wi(t,e){var n=pt(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}function L(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}L.prototype.clear=hi;L.prototype.delete=gi;L.prototype.get=mi;L.prototype.has=yi;L.prototype.set=wi;var Ti=200;function bi(t,e){var n=this.__data__;if(n instanceof N){var i=n.__data__;if(!ve||i.length<Ti-1)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new L(i)}return n.set(t,e),this.size=n.size,this}function H(t){var e=this.__data__=new N(t);this.size=e.size}H.prototype.clear=Qn;H.prototype.delete=ti;H.prototype.get=ei;H.prototype.has=ni;H.prototype.set=bi;var Pi="__lodash_hash_undefined__";function _i(t){return this.__data__.set(t,Pi),this}function Oi(t){return this.__data__.has(t)}function lt(t){var e=-1,n=t==null?0:t.length;for(this.__data__=new L;++e<n;)this.add(t[e])}lt.prototype.add=lt.prototype.push=_i;lt.prototype.has=Oi;function Ci(t,e){for(var n=-1,i=t==null?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1}function xi(t,e){return t.has(e)}var Mi=1,Si=2;function Se(t,e,n,i,o,r){var s=n&Mi,a=t.length,l=e.length;if(a!=l&&!(s&&l>a))return!1;var u=r.get(t),h=r.get(e);if(u&&h)return u==e&&h==t;var p=-1,c=!0,f=n&Si?new lt:void 0;for(r.set(t,e),r.set(e,t);++p<a;){var d=t[p],g=e[p];if(i)var w=s?i(g,d,p,e,t,r):i(d,g,p,t,e,r);if(w!==void 0){if(w)continue;c=!1;break}if(f){if(!Ci(e,function(m,y){if(!xi(f,y)&&(d===m||o(d,m,n,i,r)))return f.push(y)})){c=!1;break}}else if(!(d===g||o(d,g,n,i,r))){c=!1;break}}return r.delete(t),r.delete(e),c}var te=en.Uint8Array;function Ai(t){var e=-1,n=Array(t.size);return t.forEach(function(i,o){n[++e]=[o,i]}),n}function Di(t){var e=-1,n=Array(t.size);return t.forEach(function(i){n[++e]=i}),n}var Ei=1,Ni=2,$i="[object Boolean]",Hi="[object Date]",Ri="[object Error]",Bi="[object Map]",Vi="[object Number]",Fi="[object RegExp]",Li="[object Set]",Ii="[object String]",Wi="[object Symbol]",zi="[object ArrayBuffer]",Xi="[object DataView]",ee=Rt?Rt.prototype:void 0,yt=ee?ee.valueOf:void 0;function Yi(t,e,n,i,o,r,s){switch(n){case Xi:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case zi:return!(t.byteLength!=e.byteLength||!r(new te(t),new te(e)));case $i:case Hi:case Vi:return Me(+t,+e);case Ri:return t.name==e.name&&t.message==e.message;case Fi:case Ii:return t==e+"";case Bi:var a=Ai;case Li:var l=i&Ei;if(a||(a=Di),t.size!=e.size&&!l)return!1;var u=s.get(t);if(u)return u==e;i|=Ni,s.set(t,e);var h=Se(a(t),a(e),i,o,r,s);return s.delete(t),h;case Wi:if(yt)return yt.call(t)==yt.call(e)}return!1}function ji(t,e){for(var n=-1,i=e.length,o=t.length;++n<i;)t[o+n]=e[n];return t}function Ui(t,e,n){var i=e(t);return at(t)?i:ji(i,n(t))}function Gi(t,e){for(var n=-1,i=t==null?0:t.length,o=0,r=[];++n<i;){var s=t[n];e(s,n,t)&&(r[o++]=s)}return r}function ki(){return[]}var Ki=Object.prototype,qi=Ki.propertyIsEnumerable,ne=Object.getOwnPropertySymbols,Zi=ne?function(t){return t==null?[]:(t=Object(t),Gi(ne(t),function(e){return qi.call(t,e)}))}:ki;function Ji(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}var Qi=9007199254740991,to=/^(?:0|[1-9]\d*)$/;function eo(t,e){var n=typeof t;return e=e??Qi,!!e&&(n=="number"||n!="symbol"&&to.test(t))&&t>-1&&t%1==0&&t<e}var no=Object.prototype,io=no.hasOwnProperty;function oo(t,e){var n=at(t),i=!n&&nn(t),o=!n&&!i&&Tt(t),r=!n&&!i&&!o&&ge(t),s=n||i||o||r,a=s?Ji(t.length,String):[],l=a.length;for(var u in t)(e||io.call(t,u))&&!(s&&(u=="length"||o&&(u=="offset"||u=="parent")||r&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||eo(u,l)))&&a.push(u);return a}function ro(t){return on(t)?oo(t):rn(t)}function ie(t){return Ui(t,ro,Zi)}var so=1,ao=Object.prototype,uo=ao.hasOwnProperty;function lo(t,e,n,i,o,r){var s=n&so,a=ie(t),l=a.length,u=ie(e),h=u.length;if(l!=h&&!s)return!1;for(var p=l;p--;){var c=a[p];if(!(s?c in e:uo.call(e,c)))return!1}var f=r.get(t),d=r.get(e);if(f&&d)return f==e&&d==t;var g=!0;r.set(t,e),r.set(e,t);for(var w=s;++p<l;){c=a[p];var m=t[c],y=e[c];if(i)var b=s?i(y,m,c,e,t,r):i(m,y,c,t,e,r);if(!(b===void 0?m===y||o(m,y,n,i,r):b)){g=!1;break}w||(w=c=="constructor")}if(g&&!w){var O=t.constructor,A=e.constructor;O!=A&&"constructor"in t&&"constructor"in e&&!(typeof O=="function"&&O instanceof O&&typeof A=="function"&&A instanceof A)&&(g=!1)}return r.delete(t),r.delete(e),g}var fo=1,oe="[object Arguments]",re="[object Array]",st="[object Object]",co=Object.prototype,se=co.hasOwnProperty;function po(t,e,n,i,o,r){var s=at(t),a=at(e),l=s?re:Bt(t),u=a?re:Bt(e);l=l==oe?st:l,u=u==oe?st:u;var h=l==st,p=u==st,c=l==u;if(c&&Tt(t)){if(!Tt(e))return!1;s=!0,h=!1}if(c&&!h)return r||(r=new H),s||ge(t)?Se(t,e,n,i,o,r):Yi(t,e,l,n,i,o,r);if(!(n&fo)){var f=h&&se.call(t,"__wrapped__"),d=p&&se.call(e,"__wrapped__");if(f||d){var g=f?t.value():t,w=d?e.value():e;return r||(r=new H),o(g,w,n,i,r)}}return c?(r||(r=new H),lo(t,e,n,i,o,r)):!1}function Ae(t,e,n,i,o){return t===e?!0:t==null||e==null||!Vt(t)&&!Vt(e)?t!==t&&e!==e:po(t,e,n,i,Ae,o)}function ho(t,e){return Ae(t,e)}const vo={align:Object,target:[Object,Function],onAlign:Function,monitorBufferTime:Number,monitorWindowResize:Boolean,disabled:Boolean};function ae(t){return typeof t!="function"?null:t()}function ue(t){return typeof t!="object"||!t?null:t}const go=J({compatConfig:{MODE:3},name:"Align",props:vo,emits:["align"],setup(t,e){let{expose:n,slots:i}=e;const o=W({}),r=W(),[s,a]=jn(()=>{const{disabled:c,target:f,align:d,onAlign:g}=t;if(!c&&f&&r.value){const w=r.value;let m;const y=ae(f),b=ue(f);o.value.element=y,o.value.point=b,o.value.align=d;const{activeElement:O}=document;return y&&Je(y)?m=Nt(w,y,d):b&&(m=zn(w,b,d)),Yn(O,w),g&&m&&g(w,m),!0}return!1},K(()=>t.monitorBufferTime)),l=W({cancel:()=>{}}),u=W({cancel:()=>{}}),h=()=>{const c=t.target,f=ae(c),d=ue(c);r.value!==u.value.element&&(u.value.cancel(),u.value.element=r.value,u.value.cancel=Qt(r.value,s)),(o.value.element!==f||!Xn(o.value.point,d)||!ho(o.value.align,t.align))&&(s(),l.value.element!==f&&(l.value.cancel(),l.value.element=f,l.value.cancel=Qt(f,s)))};pe(()=>{wt(()=>{h()})}),Ye(()=>{wt(()=>{h()})}),V(()=>t.disabled,c=>{c?a():s()},{immediate:!0,flush:"post"});const p=W(null);return V(()=>t.monitorWindowResize,c=>{c?p.value||(p.value=U(window,"resize",s)):p.value&&(p.value.remove(),p.value=null)},{flush:"post"}),je(()=>{l.value.cancel(),u.value.cancel(),p.value&&p.value.remove(),a()}),n({forceAlign:()=>s(!0)}),()=>{const c=i?.default();return c?he(c[0],{ref:r},!0,!0):null}}}),mo=J({compatConfig:{MODE:3},name:"PopupInner",inheritAttrs:!1,props:Mt,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup(t,e){let{expose:n,attrs:i,slots:o}=e;const r=x(),s=x(),a=x(),[l,u]=vn(Ge(t,"stretch")),h=()=>{t.stretch&&u(t.getRootDomNode())},p=x(!1);let c;V(()=>t.visible,T=>{clearTimeout(c),T?c=setTimeout(()=>{p.value=t.visible}):p.value=!1},{immediate:!0});const[f,d]=hn(p,h),g=x(),w=()=>t.point?t.point:t.getRootDomNode,m=()=>{var T;(T=r.value)===null||T===void 0||T.forceAlign()},y=(T,E)=>{var M;const S=t.getClassNameFromAlign(E),R=a.value;a.value!==S&&(a.value=S),f.value==="align"&&(R!==S?Promise.resolve().then(()=>{m()}):d(()=>{var Y;(Y=g.value)===null||Y===void 0||Y.call(g)}),(M=t.onAlign)===null||M===void 0||M.call(t,T,E))},b=K(()=>{const T=typeof t.animation=="object"?t.animation:de(t);return["onAfterEnter","onAfterLeave"].forEach(E=>{const M=T[E];T[E]=S=>{d(),f.value="stable",M?.(S)}}),T}),O=()=>new Promise(T=>{g.value=T});V([b,f],()=>{!b.value&&f.value==="motion"&&d()},{immediate:!0}),n({forceAlign:m,getElement:()=>s.value.$el||s.value});const A=K(()=>{var T;return!(!((T=t.align)===null||T===void 0)&&T.points&&(f.value==="align"||f.value==="stable"))});return()=>{var T;const{zIndex:E,align:M,prefixCls:S,destroyPopupOnHide:R,onMouseenter:Y,onMouseleave:De,onTouchstart:Ee=()=>{},onMousedown:Ne}=t,dt=f.value,$e=[P(P({},l.value),{zIndex:E,opacity:dt==="motion"||dt==="stable"||!p.value?null:0,pointerEvents:!p.value&&dt!=="stable"?"none":null}),i.style];let tt=fe((T=o.default)===null||T===void 0?void 0:T.call(o,{visible:t.visible}));tt.length>1&&(tt=C("div",{class:`${S}-content`},[tt]));const He=Ct(S,i.class,a.value,!t.arrow&&`${S}-arrow-hidden`),Re=p.value||!t.visible?sn(b.value.name,b.value):{};return C(xt,$($({ref:s},Re),{},{onBeforeEnter:O}),{default:()=>!R||t.visible?ce(C(go,{target:w(),key:"popup",ref:r,monitorWindowResize:!0,disabled:A.value,align:M,onAlign:y},{default:()=>C("div",{class:He,onMouseenter:Y,onMouseleave:De,onMousedown:Ht(Ne,["capture"]),[G?"onTouchstartPassive":"onTouchstart"]:Ht(Ee,["capture"]),style:$e},[tt])}),[[Ue,p.value]]):null})}}}),yo=J({compatConfig:{MODE:3},name:"Popup",inheritAttrs:!1,props:cn,setup(t,e){let{attrs:n,slots:i,expose:o}=e;const r=x(!1),s=x(!1),a=x(),l=x();return V([()=>t.visible,()=>t.mobile],()=>{r.value=t.visible,t.visible&&t.mobile&&(s.value=!0)},{immediate:!0,flush:"post"}),o({forceAlign:()=>{var u;(u=a.value)===null||u===void 0||u.forceAlign()},getElement:()=>{var u;return(u=a.value)===null||u===void 0?void 0:u.getElement()}}),()=>{const u=P(P(P({},t),n),{visible:r.value}),h=s.value?C(pn,$($({},u),{},{mobile:t.mobile,ref:a}),{default:i.default}):C(mo,$($({},u),{},{ref:a}),{default:i.default});return C("div",{ref:l},[C(ye,u,null),h])}}});function wo(t,e,n){return n?t[0]===e[0]:t[0]===e[0]&&t[1]===e[1]}function le(t,e,n){const i=t[e]||{};return P(P({},i),n)}function To(t,e,n,i){const{points:o}=n,r=Object.keys(t);for(let s=0;s<r.length;s+=1){const a=r[s];if(wo(t[a].points,o,i))return`${e}-placement-${a}`}return""}const bo={methods:{setState(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=typeof t=="function"?t(this.$data,this.$props):t;if(this.getDerivedStateFromProps){const i=this.getDerivedStateFromProps(Be(this),P(P({},this.$data),n));if(i===null)return;n=P(P({},n),i||{})}P(this.$data,n),this._.isMounted&&this.$forceUpdate(),wt(()=>{e&&e()})},__emit(){const t=[].slice.call(arguments,0);let e=t[0];e=`on${e[0].toUpperCase()}${e.substring(1)}`;const n=this.$props[e]||this.$attrs[e];if(t.length&&n)if(Array.isArray(n))for(let i=0,o=n.length;i<o;i++)n[i](...t.slice(1));else n(...t.slice(1))}}},Po=["onClick","onMousedown","onTouchstart","onMouseenter","onMouseleave","onFocus","onBlur","onContextmenu"],Bo=J({compatConfig:{MODE:3},name:"Trigger",mixins:[bo],inheritAttrs:!1,props:ln(),setup(t){const e=K(()=>{const{popupPlacement:o,popupAlign:r,builtinPlacements:s}=t;return o&&s?le(s,o,r):r}),n=x(null),i=o=>{n.value=o};return{vcTriggerContext:qe("vcTriggerContext",{}),popupRef:n,setPopupRef:i,triggerRef:x(null),align:e,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data(){const t=this.$props;let e;return this.popupVisible!==void 0?e=!!t.popupVisible:e=!!t.defaultPopupVisible,Po.forEach(n=>{this[`fire${n}`]=i=>{this.fireEvents(n,i)}}),{prevPopupVisible:e,sPopupVisible:e,point:null}},watch:{popupVisible(t){t!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=t)}},created(){Ke("vcTriggerContext",{onPopupMouseDown:this.onPopupMouseDown,onPopupMouseenter:this.onPopupMouseenter,onPopupMouseleave:this.onPopupMouseleave}),Ze(this)},deactivated(){this.setPopupVisible(!1)},mounted(){this.$nextTick(()=>{this.updatedCal()})},updated(){this.$nextTick(()=>{this.updatedCal()})},beforeUnmount(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),z.cancel(this.attachId)},methods:{updatedCal(){const t=this.$props;if(this.$data.sPopupVisible){let n;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(n=t.getDocument(this.getRootDomNode()),this.clickOutsideHandler=U(n,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(n=n||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=U(n,"touchstart",this.onDocumentClick,G?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(n=n||t.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=U(n,"scroll",this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=U(window,"blur",this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter(t){const{mouseEnterDelay:e}=this.$props;this.fireEvents("onMouseenter",t),this.delaySetPopupVisible(!0,e,e?null:t)},onMouseMove(t){this.fireEvents("onMousemove",t),this.setPoint(t)},onMouseleave(t){this.fireEvents("onMouseleave",t),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter(){const{vcTriggerContext:t={}}=this;t.onPopupMouseenter&&t.onPopupMouseenter(),this.clearDelayTimer()},onPopupMouseleave(t){var e;if(t&&t.relatedTarget&&!t.relatedTarget.setTimeout&&I((e=this.popupRef)===null||e===void 0?void 0:e.getElement(),t.relatedTarget))return;this.isMouseLeaveToHide()&&this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay);const{vcTriggerContext:n={}}=this;n.onPopupMouseleave&&n.onPopupMouseleave(t)},onFocus(t){this.fireEvents("onFocus",t),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown(t){this.fireEvents("onMousedown",t),this.preClickTime=Date.now()},onTouchstart(t){this.fireEvents("onTouchstart",t),this.preTouchTime=Date.now()},onBlur(t){I(t.target,t.relatedTarget||document.activeElement)||(this.fireEvents("onBlur",t),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu(t){t.preventDefault(),this.fireEvents("onContextmenu",t),this.setPopupVisible(!0,t)},onContextmenuClose(){this.isContextmenuToShow()&&this.close()},onClick(t){if(this.fireEvents("onClick",t),this.focusTime){let n;if(this.preClickTime&&this.preTouchTime?n=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?n=this.preClickTime:this.preTouchTime&&(n=this.preTouchTime),Math.abs(n-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&t&&t.preventDefault&&t.preventDefault(),t&&t.domEvent&&t.domEvent.preventDefault();const e=!this.$data.sPopupVisible;(this.isClickToHide()&&!e||e&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,t)},onPopupMouseDown(){const{vcTriggerContext:t={}}=this;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(()=>{this.hasPopupMouseDown=!1},0),t.onPopupMouseDown&&t.onPopupMouseDown(...arguments)},onDocumentClick(t){if(this.$props.mask&&!this.$props.maskClosable)return;const e=t.target,n=this.getRootDomNode(),i=this.getPopupDomNode();(!I(n,e)||this.isContextMenuOnly())&&!I(i,e)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)},getPopupDomNode(){var t;return((t=this.popupRef)===null||t===void 0?void 0:t.getElement())||null},getRootDomNode(){var t,e,n,i;const{getTriggerDOMNode:o}=this.$props;if(o){const r=((e=(t=this.triggerRef)===null||t===void 0?void 0:t.$el)===null||e===void 0?void 0:e.nodeName)==="#comment"?null:et(this.triggerRef);return et(o(r))}try{const r=((i=(n=this.triggerRef)===null||n===void 0?void 0:n.$el)===null||i===void 0?void 0:i.nodeName)==="#comment"?null:et(this.triggerRef);if(r)return r}catch{}return et(this)},handleGetPopupClassFromAlign(t){const e=[],n=this.$props,{popupPlacement:i,builtinPlacements:o,prefixCls:r,alignPoint:s,getPopupClassNameFromAlign:a}=n;return i&&o&&e.push(To(o,r,t,s)),a&&e.push(a(t)),e.join(" ")},getPopupAlign(){const t=this.$props,{popupPlacement:e,popupAlign:n,builtinPlacements:i}=t;return e&&i?le(i,e,n):n},getComponent(){const t={};this.isMouseEnterToShow()&&(t.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(t.onMouseleave=this.onPopupMouseleave),t.onMousedown=this.onPopupMouseDown,t[G?"onTouchstartPassive":"onTouchstart"]=this.onPopupMouseDown;const{handleGetPopupClassFromAlign:e,getRootDomNode:n,$attrs:i}=this,{prefixCls:o,destroyPopupOnHide:r,popupClassName:s,popupAnimation:a,popupTransitionName:l,popupStyle:u,mask:h,maskAnimation:p,maskTransitionName:c,zIndex:f,stretch:d,alignPoint:g,mobile:w,arrow:m,forceRender:y}=this.$props,{sPopupVisible:b,point:O}=this.$data,A=P(P({prefixCls:o,arrow:m,destroyPopupOnHide:r,visible:b,point:g?O:null,align:this.align,animation:a,getClassNameFromAlign:e,stretch:d,getRootDomNode:n,mask:h,zIndex:f,transitionName:l,maskAnimation:p,maskTransitionName:c,class:s,style:u,onAlign:i.onPopupAlign||me},t),{ref:this.setPopupRef,mobile:w,forceRender:y});return C(yo,A,{default:this.$slots.popup||(()=>Ie(this,"popup"))})},attachParent(t){z.cancel(this.attachId);const{getPopupContainer:e,getDocument:n}=this.$props,i=this.getRootDomNode();let o;e?(i||e.length===0)&&(o=e(i)):o=n(this.getRootDomNode()).body,o?o.appendChild(t):this.attachId=z(()=>{this.attachParent(t)})},getContainer(){const{$props:t}=this,{getDocument:e}=t,n=e(this.getRootDomNode()).createElement("div");return n.style.position="absolute",n.style.top="0",n.style.left="0",n.style.width="100%",this.attachParent(n),n},setPopupVisible(t,e){const{alignPoint:n,sPopupVisible:i,onPopupVisibleChange:o}=this;this.clearDelayTimer(),i!==t&&(Le(this,"popupVisible")||this.setState({sPopupVisible:t,prevPopupVisible:i}),o&&o(t)),n&&e&&t&&this.setPoint(e)},setPoint(t){const{alignPoint:e}=this.$props;!e||!t||this.setState({point:{pageX:t.pageX,pageY:t.pageY}})},handlePortalUpdate(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible(t,e,n){const i=e*1e3;if(this.clearDelayTimer(),i){const o=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout(()=>{this.setPopupVisible(t,o),this.clearDelayTimer()},i)}else this.setPopupVisible(t,n)},clearDelayTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)},clearOutsideHandler(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextmenuOutsideHandler1&&(this.contextmenuOutsideHandler1.remove(),this.contextmenuOutsideHandler1=null),this.contextmenuOutsideHandler2&&(this.contextmenuOutsideHandler2.remove(),this.contextmenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},createTwoChains(t){let e=()=>{};const n=$t(this);return this.childOriginEvents[t]&&n[t]?this[`fire${t}`]:(e=this.childOriginEvents[t]||n[t]||e,e)},isClickToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("click")!==-1||e.indexOf("click")!==-1},isContextMenuOnly(){const{action:t}=this.$props;return t==="contextmenu"||t.length===1&&t[0]==="contextmenu"},isContextmenuToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("contextmenu")!==-1||e.indexOf("contextmenu")!==-1},isClickToHide(){const{action:t,hideAction:e}=this.$props;return t.indexOf("click")!==-1||e.indexOf("click")!==-1},isMouseEnterToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("hover")!==-1||e.indexOf("mouseenter")!==-1},isMouseLeaveToHide(){const{action:t,hideAction:e}=this.$props;return t.indexOf("hover")!==-1||e.indexOf("mouseleave")!==-1},isFocusToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("focus")!==-1||e.indexOf("focus")!==-1},isBlurToHide(){const{action:t,hideAction:e}=this.$props;return t.indexOf("focus")!==-1||e.indexOf("blur")!==-1},forcePopupAlign(){var t;this.$data.sPopupVisible&&((t=this.popupRef)===null||t===void 0||t.forceAlign())},fireEvents(t,e){this.childOriginEvents[t]&&this.childOriginEvents[t](e);const n=this.$props[t]||this.$attrs[t];n&&n(e)},close(){this.setPopupVisible(!1)}},render(){const{$attrs:t}=this,e=Ve(Fe(this)),{alignPoint:n,getPopupContainer:i}=this.$props,o=e[0];this.childOriginEvents=$t(o);const r={key:"trigger"};this.isContextmenuToShow()?r.onContextmenu=this.onContextmenu:r.onContextmenu=this.createTwoChains("onContextmenu"),this.isClickToHide()||this.isClickToShow()?(r.onClick=this.onClick,r.onMousedown=this.onMousedown,r[G?"onTouchstartPassive":"onTouchstart"]=this.onTouchstart):(r.onClick=this.createTwoChains("onClick"),r.onMousedown=this.createTwoChains("onMousedown"),r[G?"onTouchstartPassive":"onTouchstart"]=this.createTwoChains("onTouchstart")),this.isMouseEnterToShow()?(r.onMouseenter=this.onMouseenter,n&&(r.onMousemove=this.onMouseMove)):r.onMouseenter=this.createTwoChains("onMouseenter"),this.isMouseLeaveToHide()?r.onMouseleave=this.onMouseleave:r.onMouseleave=this.createTwoChains("onMouseleave"),this.isFocusToShow()||this.isBlurToHide()?(r.onFocus=this.onFocus,r.onBlur=this.onBlur):(r.onFocus=this.createTwoChains("onFocus"),r.onBlur=u=>{u&&(!u.relatedTarget||!I(u.target,u.relatedTarget))&&this.createTwoChains("onBlur")(u)});const s=Ct(o&&o.props&&o.props.class,t.class);s&&(r.class=s);const a=he(o,P(P({},r),{ref:"triggerRef"}),!0,!0),l=C(We,{key:"portal",getContainer:i&&(()=>i(this.getRootDomNode())),didUpdate:this.handlePortalUpdate,visible:this.$data.sPopupVisible},{default:this.getComponent});return C(ke,null,[a,l])}});export{bo as B,L as M,lt as S,Bo as T,te as U,ji as a,oo as b,xi as c,ki as d,Me as e,Ui as f,Zi as g,H as h,eo as i,ie as j,ro as k,Ae as l,ho as m,Di as s};
1
+ import{_ as P,l as I}from"./index-BLYcQWYW.js";import{P as _}from"./index-U4Zd5IK6.js";import{w as z}from"./raf-Deuc0E8-.js";import{_ as $,t as fe,c as Ct,J as Be,x as Ve,K as Fe,M as $t,N as Le,O as Ie,y as et}from"./useConfigInject-BlTQDaaH.js";import{a as U,s as G,P as We}from"./motion-KRtHWi9E.js";import{c as C,$ as xt,a0 as ce,a5 as ze,d as J,r as W,w as V,l as pe,o as Xe,s as x,j as K,n as wt,_ as Ye,M as je,a1 as Ue,P as Ht,a4 as Ge,H as ke,p as Ke,i as qe}from"./vendor-BVetwVfk.js";import{g as de,u as Ze}from"./Portal-CHsntPCQ.js";import{c as he}from"./vnode-BToqLQaO.js";import{i as Je}from"./isVisible-C7tPsqfj.js";import{i as Qe}from"./ResizeObserver.es-D6qJbdzf.js";import{l as tn,M as ve,r as en,S as Rt,a as at,d as nn,b as Tt,c as ge,i as on,f as rn,g as Bt,j as Vt}from"./_getTag-CWA3v-Ds.js";import{a as sn}from"./transition-C4Iby8cT.js";function an(){return""}function un(t){return t?t.ownerDocument:window.document}function me(){}const ln=()=>({action:_.oneOfType([_.string,_.arrayOf(_.string)]).def([]),showAction:_.any.def([]),hideAction:_.any.def([]),getPopupClassNameFromAlign:_.any.def(an),onPopupVisibleChange:Function,afterPopupVisibleChange:_.func.def(me),popup:_.any,arrow:_.bool.def(!0),popupStyle:{type:Object,default:void 0},prefixCls:_.string.def("rc-trigger-popup"),popupClassName:_.string.def(""),popupPlacement:String,builtinPlacements:_.object,popupTransitionName:String,popupAnimation:_.any,mouseEnterDelay:_.number.def(0),mouseLeaveDelay:_.number.def(.1),zIndex:Number,focusDelay:_.number.def(0),blurDelay:_.number.def(.15),getPopupContainer:Function,getDocument:_.func.def(un),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:_.object.def(()=>({})),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function}),Mt={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,arrow:{type:Boolean,default:!0},animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},fn=P(P({},Mt),{mobile:{type:Object}}),cn=P(P({},Mt),{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function ye(t){const{prefixCls:e,visible:n,zIndex:i,mask:o,maskAnimation:r,maskTransitionName:s}=t;if(!o)return null;let a={};return(s||r)&&(a=de({prefixCls:e,transitionName:s,animation:r})),C(xt,$({appear:!0},a),{default:()=>[ce(C("div",{style:{zIndex:i},class:`${e}-mask`},null),[[ze("if"),n]])]})}ye.displayName="Mask";const pn=J({compatConfig:{MODE:3},name:"MobilePopupInner",inheritAttrs:!1,props:fn,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup(t,e){let{expose:n,slots:i}=e;const o=W();return n({forceAlign:()=>{},getElement:()=>o.value}),()=>{var r;const{zIndex:s,visible:a,prefixCls:l,mobile:{popupClassName:u,popupStyle:h,popupMotion:p={},popupRender:c}={}}=t,f=P({zIndex:s},h);let d=fe((r=i.default)===null||r===void 0?void 0:r.call(i));d.length>1&&(d=C("div",{class:`${l}-content`},[d])),c&&(d=c(d));const g=Ct(l,u);return C(xt,$({ref:o},p),{default:()=>[a?C("div",{class:g,style:f},[d]):null]})}}});var dn=function(t,e,n,i){function o(r){return r instanceof n?r:new n(function(s){s(r)})}return new(n||(n=Promise))(function(r,s){function a(h){try{u(i.next(h))}catch(p){s(p)}}function l(h){try{u(i.throw(h))}catch(p){s(p)}}function u(h){h.done?r(h.value):o(h.value).then(a,l)}u((i=i.apply(t,e||[])).next())})};const Ft=["measure","align",null,"motion"],hn=((t,e)=>{const n=x(null),i=x(),o=x(!1);function r(l){o.value||(n.value=l)}function s(){z.cancel(i.value)}function a(l){s(),i.value=z(()=>{let u=n.value;switch(n.value){case"align":u="motion";break;case"motion":u="stable";break}r(u),l?.()})}return V(t,()=>{r("measure")},{immediate:!0,flush:"post"}),pe(()=>{V(n,()=>{n.value==="measure"&&e(),n.value&&(i.value=z(()=>dn(void 0,void 0,void 0,function*(){const l=Ft.indexOf(n.value),u=Ft[l+1];u&&l!==-1&&r(u)})))},{immediate:!0,flush:"post"})}),Xe(()=>{o.value=!0,s()}),[n,a]}),vn=(t=>{const e=x({width:0,height:0});function n(o){e.value={width:o.offsetWidth,height:o.offsetHeight}}return[K(()=>{const o={};if(t.value){const{width:r,height:s}=e.value;t.value.indexOf("height")!==-1&&s?o.height=`${s}px`:t.value.indexOf("minHeight")!==-1&&s&&(o.minHeight=`${s}px`),t.value.indexOf("width")!==-1&&r?o.width=`${r}px`:t.value.indexOf("minWidth")!==-1&&r&&(o.minWidth=`${r}px`)}return o}),n]});function Lt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function It(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Lt(Object(n),!0).forEach(function(i){gn(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Lt(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function bt(t){"@babel/helpers - typeof";return bt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bt(t)}function gn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var j,mn={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-",O:"-o-"};function ut(){if(j!==void 0)return j;j="";var t=document.createElement("p").style,e="Transform";for(var n in mn)n+e in t&&(j=n);return j}function we(){return ut()?"".concat(ut(),"TransitionProperty"):"transitionProperty"}function ft(){return ut()?"".concat(ut(),"Transform"):"transform"}function Wt(t,e){var n=we();n&&(t.style[n]=e,n!=="transitionProperty"&&(t.style.transitionProperty=e))}function ht(t,e){var n=ft();n&&(t.style[n]=e,n!=="transform"&&(t.style.transform=e))}function yn(t){return t.style.transitionProperty||t.style[we()]}function wn(t){var e=window.getComputedStyle(t,null),n=e.getPropertyValue("transform")||e.getPropertyValue(ft());if(n&&n!=="none"){var i=n.replace(/[^0-9\-.,]/g,"").split(",");return{x:parseFloat(i[12]||i[4],0),y:parseFloat(i[13]||i[5],0)}}return{x:0,y:0}}var Tn=/matrix\((.*)\)/,bn=/matrix3d\((.*)\)/;function Pn(t,e){var n=window.getComputedStyle(t,null),i=n.getPropertyValue("transform")||n.getPropertyValue(ft());if(i&&i!=="none"){var o,r=i.match(Tn);if(r)r=r[1],o=r.split(",").map(function(a){return parseFloat(a,10)}),o[4]=e.x,o[5]=e.y,ht(t,"matrix(".concat(o.join(","),")"));else{var s=i.match(bn)[1];o=s.split(",").map(function(a){return parseFloat(a,10)}),o[12]=e.x,o[13]=e.y,ht(t,"matrix3d(".concat(o.join(","),")"))}}else ht(t,"translateX(".concat(e.x,"px) translateY(").concat(e.y,"px) translateZ(0)"))}var _n=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,Q;function zt(t){var e=t.style.display;t.style.display="none",t.offsetHeight,t.style.display=e}function X(t,e,n){var i=n;if(bt(e)==="object"){for(var o in e)e.hasOwnProperty(o)&&X(t,o,e[o]);return}if(typeof i<"u"){typeof i=="number"&&(i="".concat(i,"px")),t.style[e]=i;return}return Q(t,e)}function On(t){var e,n,i,o=t.ownerDocument,r=o.body,s=o&&o.documentElement;return e=t.getBoundingClientRect(),n=Math.floor(e.left),i=Math.floor(e.top),n-=s.clientLeft||r.clientLeft||0,i-=s.clientTop||r.clientTop||0,{left:n,top:i}}function Te(t,e){var n=t["page".concat(e?"Y":"X","Offset")],i="scroll".concat(e?"Top":"Left");if(typeof n!="number"){var o=t.document;n=o.documentElement[i],typeof n!="number"&&(n=o.body[i])}return n}function be(t){return Te(t)}function Pe(t){return Te(t,!0)}function q(t){var e=On(t),n=t.ownerDocument,i=n.defaultView||n.parentWindow;return e.left+=be(i),e.top+=Pe(i),e}function St(t){return t!=null&&t==t.window}function _e(t){return St(t)?t.document:t.nodeType===9?t:t.ownerDocument}function Cn(t,e,n){var i=n,o="",r=_e(t);return i=i||r.defaultView.getComputedStyle(t,null),i&&(o=i.getPropertyValue(e)||i[e]),o}var xn=new RegExp("^(".concat(_n,")(?!px)[a-z%]+$"),"i"),Mn=/^(top|right|bottom|left)$/,vt="currentStyle",gt="runtimeStyle",B="left",Sn="px";function An(t,e){var n=t[vt]&&t[vt][e];if(xn.test(n)&&!Mn.test(e)){var i=t.style,o=i[B],r=t[gt][B];t[gt][B]=t[vt][B],i[B]=e==="fontSize"?"1em":n||0,n=i.pixelLeft+Sn,i[B]=o,t[gt][B]=r}return n===""?"auto":n}typeof window<"u"&&(Q=window.getComputedStyle?Cn:An);function nt(t,e){return t==="left"?e.useCssRight?"right":t:e.useCssBottom?"bottom":t}function Xt(t){if(t==="left")return"right";if(t==="right")return"left";if(t==="top")return"bottom";if(t==="bottom")return"top"}function Yt(t,e,n){X(t,"position")==="static"&&(t.style.position="relative");var i=-999,o=-999,r=nt("left",n),s=nt("top",n),a=Xt(r),l=Xt(s);r!=="left"&&(i=999),s!=="top"&&(o=999);var u="",h=q(t);("left"in e||"top"in e)&&(u=yn(t)||"",Wt(t,"none")),"left"in e&&(t.style[a]="",t.style[r]="".concat(i,"px")),"top"in e&&(t.style[l]="",t.style[s]="".concat(o,"px")),zt(t);var p=q(t),c={};for(var f in e)if(e.hasOwnProperty(f)){var d=nt(f,n),g=f==="left"?i:o,w=h[f]-p[f];d===f?c[d]=g+w:c[d]=g-w}X(t,c),zt(t),("left"in e||"top"in e)&&Wt(t,u);var m={};for(var y in e)if(e.hasOwnProperty(y)){var b=nt(y,n),O=e[y]-h[y];y===b?m[b]=c[b]+O:m[b]=c[b]-O}X(t,m)}function Dn(t,e){var n=q(t),i=wn(t),o={x:i.x,y:i.y};"left"in e&&(o.x=i.x+e.left-n.left),"top"in e&&(o.y=i.y+e.top-n.top),Pn(t,o)}function En(t,e,n){if(n.ignoreShake){var i=q(t),o=i.left.toFixed(0),r=i.top.toFixed(0),s=e.left.toFixed(0),a=e.top.toFixed(0);if(o===s&&r===a)return}n.useCssRight||n.useCssBottom?Yt(t,e,n):n.useCssTransform&&ft()in document.body.style?Dn(t,e):Yt(t,e,n)}function At(t,e){for(var n=0;n<t.length;n++)e(t[n])}function Oe(t){return Q(t,"boxSizing")==="border-box"}var Nn=["margin","border","padding"],Pt=-1,$n=2,_t=1,Hn=0;function Rn(t,e,n){var i={},o=t.style,r;for(r in e)e.hasOwnProperty(r)&&(i[r]=o[r],o[r]=e[r]);n.call(t);for(r in e)e.hasOwnProperty(r)&&(o[r]=i[r])}function k(t,e,n){var i=0,o,r,s;for(r=0;r<e.length;r++)if(o=e[r],o)for(s=0;s<n.length;s++){var a=void 0;o==="border"?a="".concat(o).concat(n[s],"Width"):a=o+n[s],i+=parseFloat(Q(t,a))||0}return i}var D={getParent:function(e){var n=e;do n.nodeType===11&&n.host?n=n.host:n=n.parentNode;while(n&&n.nodeType!==1&&n.nodeType!==9);return n}};At(["Width","Height"],function(t){D["doc".concat(t)]=function(e){var n=e.document;return Math.max(n.documentElement["scroll".concat(t)],n.body["scroll".concat(t)],D["viewport".concat(t)](n))},D["viewport".concat(t)]=function(e){var n="client".concat(t),i=e.document,o=i.body,r=i.documentElement,s=r[n];return i.compatMode==="CSS1Compat"&&s||o&&o[n]||s}});function jt(t,e,n){var i=n;if(St(t))return e==="width"?D.viewportWidth(t):D.viewportHeight(t);if(t.nodeType===9)return e==="width"?D.docWidth(t):D.docHeight(t);var o=e==="width"?["Left","Right"]:["Top","Bottom"],r=Math.floor(e==="width"?t.getBoundingClientRect().width:t.getBoundingClientRect().height),s=Oe(t),a=0;(r==null||r<=0)&&(r=void 0,a=Q(t,e),(a==null||Number(a)<0)&&(a=t.style[e]||0),a=Math.floor(parseFloat(a))||0),i===void 0&&(i=s?_t:Pt);var l=r!==void 0||s,u=r||a;return i===Pt?l?u-k(t,["border","padding"],o):a:l?i===_t?u:u+(i===$n?-k(t,["border"],o):k(t,["margin"],o)):a+k(t,Nn.slice(i),o)}var Bn={position:"absolute",visibility:"hidden",display:"block"};function Ut(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var i,o=e[0];return o.offsetWidth!==0?i=jt.apply(void 0,e):Rn(o,Bn,function(){i=jt.apply(void 0,e)}),i}At(["width","height"],function(t){var e=t.charAt(0).toUpperCase()+t.slice(1);D["outer".concat(e)]=function(i,o){return i&&Ut(i,t,o?Hn:_t)};var n=t==="width"?["Left","Right"]:["Top","Bottom"];D[t]=function(i,o){var r=o;if(r!==void 0){if(i){var s=Oe(i);return s&&(r+=k(i,["padding","border"],n)),X(i,t,r)}return}return i&&Ut(i,t,Pt)}});function Ce(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var v={getWindow:function(e){if(e&&e.document&&e.setTimeout)return e;var n=e.ownerDocument||e;return n.defaultView||n.parentWindow},getDocument:_e,offset:function(e,n,i){if(typeof n<"u")En(e,n,i||{});else return q(e)},isWindow:St,each:At,css:X,clone:function(e){var n,i={};for(n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);var o=e.overflow;if(o)for(n in e)e.hasOwnProperty(n)&&(i.overflow[n]=e.overflow[n]);return i},mix:Ce,getWindowScrollLeft:function(e){return be(e)},getWindowScrollTop:function(e){return Pe(e)},merge:function(){for(var e={},n=0;n<arguments.length;n++)v.mix(e,n<0||arguments.length<=n?void 0:arguments[n]);return e},viewportWidth:0,viewportHeight:0};Ce(v,D);var mt=v.getParent;function Ot(t){if(v.isWindow(t)||t.nodeType===9)return null;var e=v.getDocument(t),n=e.body,i,o=v.css(t,"position"),r=o==="fixed"||o==="absolute";if(!r)return t.nodeName.toLowerCase()==="html"?null:mt(t);for(i=mt(t);i&&i!==n&&i.nodeType!==9;i=mt(i))if(o=v.css(i,"position"),o!=="static")return i;return null}var Gt=v.getParent;function Vn(t){if(v.isWindow(t)||t.nodeType===9)return!1;var e=v.getDocument(t),n=e.body,i=null;for(i=Gt(t);i&&i!==n&&i!==e;i=Gt(i)){var o=v.css(i,"position");if(o==="fixed")return!0}return!1}function Dt(t,e){for(var n={left:0,right:1/0,top:0,bottom:1/0},i=Ot(t),o=v.getDocument(t),r=o.defaultView||o.parentWindow,s=o.body,a=o.documentElement;i;){if((navigator.userAgent.indexOf("MSIE")===-1||i.clientWidth!==0)&&i!==s&&i!==a&&v.css(i,"overflow")!=="visible"){var l=v.offset(i);l.left+=i.clientLeft,l.top+=i.clientTop,n.top=Math.max(n.top,l.top),n.right=Math.min(n.right,l.left+i.clientWidth),n.bottom=Math.min(n.bottom,l.top+i.clientHeight),n.left=Math.max(n.left,l.left)}else if(i===s||i===a)break;i=Ot(i)}var u=null;if(!v.isWindow(t)&&t.nodeType!==9){u=t.style.position;var h=v.css(t,"position");h==="absolute"&&(t.style.position="fixed")}var p=v.getWindowScrollLeft(r),c=v.getWindowScrollTop(r),f=v.viewportWidth(r),d=v.viewportHeight(r),g=a.scrollWidth,w=a.scrollHeight,m=window.getComputedStyle(s);if(m.overflowX==="hidden"&&(g=r.innerWidth),m.overflowY==="hidden"&&(w=r.innerHeight),t.style&&(t.style.position=u),e||Vn(t))n.left=Math.max(n.left,p),n.top=Math.max(n.top,c),n.right=Math.min(n.right,p+f),n.bottom=Math.min(n.bottom,c+d);else{var y=Math.max(g,p+f);n.right=Math.min(n.right,y);var b=Math.max(w,c+d);n.bottom=Math.min(n.bottom,b)}return n.top>=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function Fn(t,e,n,i){var o=v.clone(t),r={width:e.width,height:e.height};return i.adjustX&&o.left<n.left&&(o.left=n.left),i.resizeWidth&&o.left>=n.left&&o.left+r.width>n.right&&(r.width-=o.left+r.width-n.right),i.adjustX&&o.left+r.width>n.right&&(o.left=Math.max(n.right-r.width,n.left)),i.adjustY&&o.top<n.top&&(o.top=n.top),i.resizeHeight&&o.top>=n.top&&o.top+r.height>n.bottom&&(r.height-=o.top+r.height-n.bottom),i.adjustY&&o.top+r.height>n.bottom&&(o.top=Math.max(n.bottom-r.height,n.top)),v.mix(o,r)}function Et(t){var e,n,i;if(!v.isWindow(t)&&t.nodeType!==9)e=v.offset(t),n=v.outerWidth(t),i=v.outerHeight(t);else{var o=v.getWindow(t);e={left:v.getWindowScrollLeft(o),top:v.getWindowScrollTop(o)},n=v.viewportWidth(o),i=v.viewportHeight(o)}return e.width=n,e.height=i,e}function kt(t,e){var n=e.charAt(0),i=e.charAt(1),o=t.width,r=t.height,s=t.left,a=t.top;return n==="c"?a+=r/2:n==="b"&&(a+=r),i==="c"?s+=o/2:i==="r"&&(s+=o),{left:s,top:a}}function it(t,e,n,i,o){var r=kt(e,n[1]),s=kt(t,n[0]),a=[s.left-r.left,s.top-r.top];return{left:Math.round(t.left-a[0]+i[0]-o[0]),top:Math.round(t.top-a[1]+i[1]-o[1])}}function Kt(t,e,n){return t.left<n.left||t.left+e.width>n.right}function qt(t,e,n){return t.top<n.top||t.top+e.height>n.bottom}function Ln(t,e,n){return t.left>n.right||t.left+e.width<n.left}function In(t,e,n){return t.top>n.bottom||t.top+e.height<n.top}function ot(t,e,n){var i=[];return v.each(t,function(o){i.push(o.replace(e,function(r){return n[r]}))}),i}function rt(t,e){return t[e]=-t[e],t}function Zt(t,e){var n;return/%$/.test(t)?n=parseInt(t.substring(0,t.length-1),10)/100*e:n=parseInt(t,10),n||0}function Jt(t,e){t[0]=Zt(t[0],e.width),t[1]=Zt(t[1],e.height)}function xe(t,e,n,i){var o=n.points,r=n.offset||[0,0],s=n.targetOffset||[0,0],a=n.overflow,l=n.source||t;r=[].concat(r),s=[].concat(s),a=a||{};var u={},h=0,p=!!(a&&a.alwaysByViewport),c=Dt(l,p),f=Et(l);Jt(r,f),Jt(s,e);var d=it(f,e,o,r,s),g=v.merge(f,d);if(c&&(a.adjustX||a.adjustY)&&i){if(a.adjustX&&Kt(d,f,c)){var w=ot(o,/[lr]/gi,{l:"r",r:"l"}),m=rt(r,0),y=rt(s,0),b=it(f,e,w,m,y);Ln(b,f,c)||(h=1,o=w,r=m,s=y)}if(a.adjustY&&qt(d,f,c)){var O=ot(o,/[tb]/gi,{t:"b",b:"t"}),A=rt(r,1),T=rt(s,1),E=it(f,e,O,A,T);In(E,f,c)||(h=1,o=O,r=A,s=T)}h&&(d=it(f,e,o,r,s),v.mix(g,d));var M=Kt(d,f,c),S=qt(d,f,c);if(M||S){var R=o;M&&(R=ot(o,/[lr]/gi,{l:"r",r:"l"})),S&&(R=ot(o,/[tb]/gi,{t:"b",b:"t"})),o=R,r=n.offset||[0,0],s=n.targetOffset||[0,0]}u.adjustX=a.adjustX&&M,u.adjustY=a.adjustY&&S,(u.adjustX||u.adjustY)&&(g=Fn(d,f,c,u))}return g.width!==f.width&&v.css(l,"width",v.width(l)+g.width-f.width),g.height!==f.height&&v.css(l,"height",v.height(l)+g.height-f.height),v.offset(l,{left:g.left,top:g.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:r,targetOffset:s,overflow:u}}function Wn(t,e){var n=Dt(t,e),i=Et(t);return!n||i.left+i.width<=n.left||i.top+i.height<=n.top||i.left>=n.right||i.top>=n.bottom}function Nt(t,e,n){var i=n.target||e,o=Et(i),r=!Wn(i,n.overflow&&n.overflow.alwaysByViewport);return xe(t,o,n,r)}Nt.__getOffsetParent=Ot;Nt.__getVisibleRectForElement=Dt;function zn(t,e,n){var i,o,r=v.getDocument(t),s=r.defaultView||r.parentWindow,a=v.getWindowScrollLeft(s),l=v.getWindowScrollTop(s),u=v.viewportWidth(s),h=v.viewportHeight(s);"pageX"in e?i=e.pageX:i=a+e.clientX,"pageY"in e?o=e.pageY:o=l+e.clientY;var p={left:i,top:o,width:0,height:0},c=i>=0&&i<=a+u&&o>=0&&o<=l+h,f=[n.points[0],"cc"];return xe(t,p,It(It({},n),{},{points:f}),c)}function Xn(t,e){return t===e?!0:!t||!e?!1:"pageX"in e&&"pageY"in e?t.pageX===e.pageX&&t.pageY===e.pageY:"clientX"in e&&"clientY"in e?t.clientX===e.clientX&&t.clientY===e.clientY:!1}function Yn(t,e){t!==document.activeElement&&I(e,t)&&typeof t.focus=="function"&&t.focus()}function Qt(t,e){let n=null,i=null;function o(s){let[{target:a}]=s;if(!document.documentElement.contains(a))return;const{width:l,height:u}=a.getBoundingClientRect(),h=Math.floor(l),p=Math.floor(u);(n!==h||i!==p)&&Promise.resolve().then(()=>{e({width:h,height:p})}),n=h,i=p}const r=new Qe(o);return t&&r.observe(t),()=>{r.disconnect()}}const jn=((t,e)=>{let n=!1,i=null;function o(){clearTimeout(i)}function r(s){if(!n||s===!0){if(t()===!1)return;n=!0,o(),i=setTimeout(()=>{n=!1},e.value)}else o(),i=setTimeout(()=>{n=!1,r()},e.value)}return[r,()=>{n=!1,o()}]});function Un(){this.__data__=[],this.size=0}function Me(t,e){return t===e||t!==t&&e!==e}function ct(t,e){for(var n=t.length;n--;)if(Me(t[n][0],e))return n;return-1}var Gn=Array.prototype,kn=Gn.splice;function Kn(t){var e=this.__data__,n=ct(e,t);if(n<0)return!1;var i=e.length-1;return n==i?e.pop():kn.call(e,n,1),--this.size,!0}function qn(t){var e=this.__data__,n=ct(e,t);return n<0?void 0:e[n][1]}function Zn(t){return ct(this.__data__,t)>-1}function Jn(t,e){var n=this.__data__,i=ct(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}function N(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}N.prototype.clear=Un;N.prototype.delete=Kn;N.prototype.get=qn;N.prototype.has=Zn;N.prototype.set=Jn;function Qn(){this.__data__=new N,this.size=0}function ti(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function ei(t){return this.__data__.get(t)}function ni(t){return this.__data__.has(t)}var Z=tn(Object,"create");function ii(){this.__data__=Z?Z(null):{},this.size=0}function oi(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ri="__lodash_hash_undefined__",si=Object.prototype,ai=si.hasOwnProperty;function ui(t){var e=this.__data__;if(Z){var n=e[t];return n===ri?void 0:n}return ai.call(e,t)?e[t]:void 0}var li=Object.prototype,fi=li.hasOwnProperty;function ci(t){var e=this.__data__;return Z?e[t]!==void 0:fi.call(e,t)}var pi="__lodash_hash_undefined__";function di(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Z&&e===void 0?pi:e,this}function F(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}F.prototype.clear=ii;F.prototype.delete=oi;F.prototype.get=ui;F.prototype.has=ci;F.prototype.set=di;function hi(){this.size=0,this.__data__={hash:new F,map:new(ve||N),string:new F}}function vi(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function pt(t,e){var n=t.__data__;return vi(e)?n[typeof e=="string"?"string":"hash"]:n.map}function gi(t){var e=pt(this,t).delete(t);return this.size-=e?1:0,e}function mi(t){return pt(this,t).get(t)}function yi(t){return pt(this,t).has(t)}function wi(t,e){var n=pt(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}function L(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}L.prototype.clear=hi;L.prototype.delete=gi;L.prototype.get=mi;L.prototype.has=yi;L.prototype.set=wi;var Ti=200;function bi(t,e){var n=this.__data__;if(n instanceof N){var i=n.__data__;if(!ve||i.length<Ti-1)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new L(i)}return n.set(t,e),this.size=n.size,this}function H(t){var e=this.__data__=new N(t);this.size=e.size}H.prototype.clear=Qn;H.prototype.delete=ti;H.prototype.get=ei;H.prototype.has=ni;H.prototype.set=bi;var Pi="__lodash_hash_undefined__";function _i(t){return this.__data__.set(t,Pi),this}function Oi(t){return this.__data__.has(t)}function lt(t){var e=-1,n=t==null?0:t.length;for(this.__data__=new L;++e<n;)this.add(t[e])}lt.prototype.add=lt.prototype.push=_i;lt.prototype.has=Oi;function Ci(t,e){for(var n=-1,i=t==null?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1}function xi(t,e){return t.has(e)}var Mi=1,Si=2;function Se(t,e,n,i,o,r){var s=n&Mi,a=t.length,l=e.length;if(a!=l&&!(s&&l>a))return!1;var u=r.get(t),h=r.get(e);if(u&&h)return u==e&&h==t;var p=-1,c=!0,f=n&Si?new lt:void 0;for(r.set(t,e),r.set(e,t);++p<a;){var d=t[p],g=e[p];if(i)var w=s?i(g,d,p,e,t,r):i(d,g,p,t,e,r);if(w!==void 0){if(w)continue;c=!1;break}if(f){if(!Ci(e,function(m,y){if(!xi(f,y)&&(d===m||o(d,m,n,i,r)))return f.push(y)})){c=!1;break}}else if(!(d===g||o(d,g,n,i,r))){c=!1;break}}return r.delete(t),r.delete(e),c}var te=en.Uint8Array;function Ai(t){var e=-1,n=Array(t.size);return t.forEach(function(i,o){n[++e]=[o,i]}),n}function Di(t){var e=-1,n=Array(t.size);return t.forEach(function(i){n[++e]=i}),n}var Ei=1,Ni=2,$i="[object Boolean]",Hi="[object Date]",Ri="[object Error]",Bi="[object Map]",Vi="[object Number]",Fi="[object RegExp]",Li="[object Set]",Ii="[object String]",Wi="[object Symbol]",zi="[object ArrayBuffer]",Xi="[object DataView]",ee=Rt?Rt.prototype:void 0,yt=ee?ee.valueOf:void 0;function Yi(t,e,n,i,o,r,s){switch(n){case Xi:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case zi:return!(t.byteLength!=e.byteLength||!r(new te(t),new te(e)));case $i:case Hi:case Vi:return Me(+t,+e);case Ri:return t.name==e.name&&t.message==e.message;case Fi:case Ii:return t==e+"";case Bi:var a=Ai;case Li:var l=i&Ei;if(a||(a=Di),t.size!=e.size&&!l)return!1;var u=s.get(t);if(u)return u==e;i|=Ni,s.set(t,e);var h=Se(a(t),a(e),i,o,r,s);return s.delete(t),h;case Wi:if(yt)return yt.call(t)==yt.call(e)}return!1}function ji(t,e){for(var n=-1,i=e.length,o=t.length;++n<i;)t[o+n]=e[n];return t}function Ui(t,e,n){var i=e(t);return at(t)?i:ji(i,n(t))}function Gi(t,e){for(var n=-1,i=t==null?0:t.length,o=0,r=[];++n<i;){var s=t[n];e(s,n,t)&&(r[o++]=s)}return r}function ki(){return[]}var Ki=Object.prototype,qi=Ki.propertyIsEnumerable,ne=Object.getOwnPropertySymbols,Zi=ne?function(t){return t==null?[]:(t=Object(t),Gi(ne(t),function(e){return qi.call(t,e)}))}:ki;function Ji(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}var Qi=9007199254740991,to=/^(?:0|[1-9]\d*)$/;function eo(t,e){var n=typeof t;return e=e??Qi,!!e&&(n=="number"||n!="symbol"&&to.test(t))&&t>-1&&t%1==0&&t<e}var no=Object.prototype,io=no.hasOwnProperty;function oo(t,e){var n=at(t),i=!n&&nn(t),o=!n&&!i&&Tt(t),r=!n&&!i&&!o&&ge(t),s=n||i||o||r,a=s?Ji(t.length,String):[],l=a.length;for(var u in t)(e||io.call(t,u))&&!(s&&(u=="length"||o&&(u=="offset"||u=="parent")||r&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||eo(u,l)))&&a.push(u);return a}function ro(t){return on(t)?oo(t):rn(t)}function ie(t){return Ui(t,ro,Zi)}var so=1,ao=Object.prototype,uo=ao.hasOwnProperty;function lo(t,e,n,i,o,r){var s=n&so,a=ie(t),l=a.length,u=ie(e),h=u.length;if(l!=h&&!s)return!1;for(var p=l;p--;){var c=a[p];if(!(s?c in e:uo.call(e,c)))return!1}var f=r.get(t),d=r.get(e);if(f&&d)return f==e&&d==t;var g=!0;r.set(t,e),r.set(e,t);for(var w=s;++p<l;){c=a[p];var m=t[c],y=e[c];if(i)var b=s?i(y,m,c,e,t,r):i(m,y,c,t,e,r);if(!(b===void 0?m===y||o(m,y,n,i,r):b)){g=!1;break}w||(w=c=="constructor")}if(g&&!w){var O=t.constructor,A=e.constructor;O!=A&&"constructor"in t&&"constructor"in e&&!(typeof O=="function"&&O instanceof O&&typeof A=="function"&&A instanceof A)&&(g=!1)}return r.delete(t),r.delete(e),g}var fo=1,oe="[object Arguments]",re="[object Array]",st="[object Object]",co=Object.prototype,se=co.hasOwnProperty;function po(t,e,n,i,o,r){var s=at(t),a=at(e),l=s?re:Bt(t),u=a?re:Bt(e);l=l==oe?st:l,u=u==oe?st:u;var h=l==st,p=u==st,c=l==u;if(c&&Tt(t)){if(!Tt(e))return!1;s=!0,h=!1}if(c&&!h)return r||(r=new H),s||ge(t)?Se(t,e,n,i,o,r):Yi(t,e,l,n,i,o,r);if(!(n&fo)){var f=h&&se.call(t,"__wrapped__"),d=p&&se.call(e,"__wrapped__");if(f||d){var g=f?t.value():t,w=d?e.value():e;return r||(r=new H),o(g,w,n,i,r)}}return c?(r||(r=new H),lo(t,e,n,i,o,r)):!1}function Ae(t,e,n,i,o){return t===e?!0:t==null||e==null||!Vt(t)&&!Vt(e)?t!==t&&e!==e:po(t,e,n,i,Ae,o)}function ho(t,e){return Ae(t,e)}const vo={align:Object,target:[Object,Function],onAlign:Function,monitorBufferTime:Number,monitorWindowResize:Boolean,disabled:Boolean};function ae(t){return typeof t!="function"?null:t()}function ue(t){return typeof t!="object"||!t?null:t}const go=J({compatConfig:{MODE:3},name:"Align",props:vo,emits:["align"],setup(t,e){let{expose:n,slots:i}=e;const o=W({}),r=W(),[s,a]=jn(()=>{const{disabled:c,target:f,align:d,onAlign:g}=t;if(!c&&f&&r.value){const w=r.value;let m;const y=ae(f),b=ue(f);o.value.element=y,o.value.point=b,o.value.align=d;const{activeElement:O}=document;return y&&Je(y)?m=Nt(w,y,d):b&&(m=zn(w,b,d)),Yn(O,w),g&&m&&g(w,m),!0}return!1},K(()=>t.monitorBufferTime)),l=W({cancel:()=>{}}),u=W({cancel:()=>{}}),h=()=>{const c=t.target,f=ae(c),d=ue(c);r.value!==u.value.element&&(u.value.cancel(),u.value.element=r.value,u.value.cancel=Qt(r.value,s)),(o.value.element!==f||!Xn(o.value.point,d)||!ho(o.value.align,t.align))&&(s(),l.value.element!==f&&(l.value.cancel(),l.value.element=f,l.value.cancel=Qt(f,s)))};pe(()=>{wt(()=>{h()})}),Ye(()=>{wt(()=>{h()})}),V(()=>t.disabled,c=>{c?a():s()},{immediate:!0,flush:"post"});const p=W(null);return V(()=>t.monitorWindowResize,c=>{c?p.value||(p.value=U(window,"resize",s)):p.value&&(p.value.remove(),p.value=null)},{flush:"post"}),je(()=>{l.value.cancel(),u.value.cancel(),p.value&&p.value.remove(),a()}),n({forceAlign:()=>s(!0)}),()=>{const c=i?.default();return c?he(c[0],{ref:r},!0,!0):null}}}),mo=J({compatConfig:{MODE:3},name:"PopupInner",inheritAttrs:!1,props:Mt,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup(t,e){let{expose:n,attrs:i,slots:o}=e;const r=x(),s=x(),a=x(),[l,u]=vn(Ge(t,"stretch")),h=()=>{t.stretch&&u(t.getRootDomNode())},p=x(!1);let c;V(()=>t.visible,T=>{clearTimeout(c),T?c=setTimeout(()=>{p.value=t.visible}):p.value=!1},{immediate:!0});const[f,d]=hn(p,h),g=x(),w=()=>t.point?t.point:t.getRootDomNode,m=()=>{var T;(T=r.value)===null||T===void 0||T.forceAlign()},y=(T,E)=>{var M;const S=t.getClassNameFromAlign(E),R=a.value;a.value!==S&&(a.value=S),f.value==="align"&&(R!==S?Promise.resolve().then(()=>{m()}):d(()=>{var Y;(Y=g.value)===null||Y===void 0||Y.call(g)}),(M=t.onAlign)===null||M===void 0||M.call(t,T,E))},b=K(()=>{const T=typeof t.animation=="object"?t.animation:de(t);return["onAfterEnter","onAfterLeave"].forEach(E=>{const M=T[E];T[E]=S=>{d(),f.value="stable",M?.(S)}}),T}),O=()=>new Promise(T=>{g.value=T});V([b,f],()=>{!b.value&&f.value==="motion"&&d()},{immediate:!0}),n({forceAlign:m,getElement:()=>s.value.$el||s.value});const A=K(()=>{var T;return!(!((T=t.align)===null||T===void 0)&&T.points&&(f.value==="align"||f.value==="stable"))});return()=>{var T;const{zIndex:E,align:M,prefixCls:S,destroyPopupOnHide:R,onMouseenter:Y,onMouseleave:De,onTouchstart:Ee=()=>{},onMousedown:Ne}=t,dt=f.value,$e=[P(P({},l.value),{zIndex:E,opacity:dt==="motion"||dt==="stable"||!p.value?null:0,pointerEvents:!p.value&&dt!=="stable"?"none":null}),i.style];let tt=fe((T=o.default)===null||T===void 0?void 0:T.call(o,{visible:t.visible}));tt.length>1&&(tt=C("div",{class:`${S}-content`},[tt]));const He=Ct(S,i.class,a.value,!t.arrow&&`${S}-arrow-hidden`),Re=p.value||!t.visible?sn(b.value.name,b.value):{};return C(xt,$($({ref:s},Re),{},{onBeforeEnter:O}),{default:()=>!R||t.visible?ce(C(go,{target:w(),key:"popup",ref:r,monitorWindowResize:!0,disabled:A.value,align:M,onAlign:y},{default:()=>C("div",{class:He,onMouseenter:Y,onMouseleave:De,onMousedown:Ht(Ne,["capture"]),[G?"onTouchstartPassive":"onTouchstart"]:Ht(Ee,["capture"]),style:$e},[tt])}),[[Ue,p.value]]):null})}}}),yo=J({compatConfig:{MODE:3},name:"Popup",inheritAttrs:!1,props:cn,setup(t,e){let{attrs:n,slots:i,expose:o}=e;const r=x(!1),s=x(!1),a=x(),l=x();return V([()=>t.visible,()=>t.mobile],()=>{r.value=t.visible,t.visible&&t.mobile&&(s.value=!0)},{immediate:!0,flush:"post"}),o({forceAlign:()=>{var u;(u=a.value)===null||u===void 0||u.forceAlign()},getElement:()=>{var u;return(u=a.value)===null||u===void 0?void 0:u.getElement()}}),()=>{const u=P(P(P({},t),n),{visible:r.value}),h=s.value?C(pn,$($({},u),{},{mobile:t.mobile,ref:a}),{default:i.default}):C(mo,$($({},u),{},{ref:a}),{default:i.default});return C("div",{ref:l},[C(ye,u,null),h])}}});function wo(t,e,n){return n?t[0]===e[0]:t[0]===e[0]&&t[1]===e[1]}function le(t,e,n){const i=t[e]||{};return P(P({},i),n)}function To(t,e,n,i){const{points:o}=n,r=Object.keys(t);for(let s=0;s<r.length;s+=1){const a=r[s];if(wo(t[a].points,o,i))return`${e}-placement-${a}`}return""}const bo={methods:{setState(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=typeof t=="function"?t(this.$data,this.$props):t;if(this.getDerivedStateFromProps){const i=this.getDerivedStateFromProps(Be(this),P(P({},this.$data),n));if(i===null)return;n=P(P({},n),i||{})}P(this.$data,n),this._.isMounted&&this.$forceUpdate(),wt(()=>{e&&e()})},__emit(){const t=[].slice.call(arguments,0);let e=t[0];e=`on${e[0].toUpperCase()}${e.substring(1)}`;const n=this.$props[e]||this.$attrs[e];if(t.length&&n)if(Array.isArray(n))for(let i=0,o=n.length;i<o;i++)n[i](...t.slice(1));else n(...t.slice(1))}}},Po=["onClick","onMousedown","onTouchstart","onMouseenter","onMouseleave","onFocus","onBlur","onContextmenu"],Bo=J({compatConfig:{MODE:3},name:"Trigger",mixins:[bo],inheritAttrs:!1,props:ln(),setup(t){const e=K(()=>{const{popupPlacement:o,popupAlign:r,builtinPlacements:s}=t;return o&&s?le(s,o,r):r}),n=x(null),i=o=>{n.value=o};return{vcTriggerContext:qe("vcTriggerContext",{}),popupRef:n,setPopupRef:i,triggerRef:x(null),align:e,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data(){const t=this.$props;let e;return this.popupVisible!==void 0?e=!!t.popupVisible:e=!!t.defaultPopupVisible,Po.forEach(n=>{this[`fire${n}`]=i=>{this.fireEvents(n,i)}}),{prevPopupVisible:e,sPopupVisible:e,point:null}},watch:{popupVisible(t){t!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=t)}},created(){Ke("vcTriggerContext",{onPopupMouseDown:this.onPopupMouseDown,onPopupMouseenter:this.onPopupMouseenter,onPopupMouseleave:this.onPopupMouseleave}),Ze(this)},deactivated(){this.setPopupVisible(!1)},mounted(){this.$nextTick(()=>{this.updatedCal()})},updated(){this.$nextTick(()=>{this.updatedCal()})},beforeUnmount(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),z.cancel(this.attachId)},methods:{updatedCal(){const t=this.$props;if(this.$data.sPopupVisible){let n;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(n=t.getDocument(this.getRootDomNode()),this.clickOutsideHandler=U(n,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(n=n||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=U(n,"touchstart",this.onDocumentClick,G?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(n=n||t.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=U(n,"scroll",this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=U(window,"blur",this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter(t){const{mouseEnterDelay:e}=this.$props;this.fireEvents("onMouseenter",t),this.delaySetPopupVisible(!0,e,e?null:t)},onMouseMove(t){this.fireEvents("onMousemove",t),this.setPoint(t)},onMouseleave(t){this.fireEvents("onMouseleave",t),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter(){const{vcTriggerContext:t={}}=this;t.onPopupMouseenter&&t.onPopupMouseenter(),this.clearDelayTimer()},onPopupMouseleave(t){var e;if(t&&t.relatedTarget&&!t.relatedTarget.setTimeout&&I((e=this.popupRef)===null||e===void 0?void 0:e.getElement(),t.relatedTarget))return;this.isMouseLeaveToHide()&&this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay);const{vcTriggerContext:n={}}=this;n.onPopupMouseleave&&n.onPopupMouseleave(t)},onFocus(t){this.fireEvents("onFocus",t),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown(t){this.fireEvents("onMousedown",t),this.preClickTime=Date.now()},onTouchstart(t){this.fireEvents("onTouchstart",t),this.preTouchTime=Date.now()},onBlur(t){I(t.target,t.relatedTarget||document.activeElement)||(this.fireEvents("onBlur",t),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu(t){t.preventDefault(),this.fireEvents("onContextmenu",t),this.setPopupVisible(!0,t)},onContextmenuClose(){this.isContextmenuToShow()&&this.close()},onClick(t){if(this.fireEvents("onClick",t),this.focusTime){let n;if(this.preClickTime&&this.preTouchTime?n=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?n=this.preClickTime:this.preTouchTime&&(n=this.preTouchTime),Math.abs(n-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&t&&t.preventDefault&&t.preventDefault(),t&&t.domEvent&&t.domEvent.preventDefault();const e=!this.$data.sPopupVisible;(this.isClickToHide()&&!e||e&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,t)},onPopupMouseDown(){const{vcTriggerContext:t={}}=this;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(()=>{this.hasPopupMouseDown=!1},0),t.onPopupMouseDown&&t.onPopupMouseDown(...arguments)},onDocumentClick(t){if(this.$props.mask&&!this.$props.maskClosable)return;const e=t.target,n=this.getRootDomNode(),i=this.getPopupDomNode();(!I(n,e)||this.isContextMenuOnly())&&!I(i,e)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)},getPopupDomNode(){var t;return((t=this.popupRef)===null||t===void 0?void 0:t.getElement())||null},getRootDomNode(){var t,e,n,i;const{getTriggerDOMNode:o}=this.$props;if(o){const r=((e=(t=this.triggerRef)===null||t===void 0?void 0:t.$el)===null||e===void 0?void 0:e.nodeName)==="#comment"?null:et(this.triggerRef);return et(o(r))}try{const r=((i=(n=this.triggerRef)===null||n===void 0?void 0:n.$el)===null||i===void 0?void 0:i.nodeName)==="#comment"?null:et(this.triggerRef);if(r)return r}catch{}return et(this)},handleGetPopupClassFromAlign(t){const e=[],n=this.$props,{popupPlacement:i,builtinPlacements:o,prefixCls:r,alignPoint:s,getPopupClassNameFromAlign:a}=n;return i&&o&&e.push(To(o,r,t,s)),a&&e.push(a(t)),e.join(" ")},getPopupAlign(){const t=this.$props,{popupPlacement:e,popupAlign:n,builtinPlacements:i}=t;return e&&i?le(i,e,n):n},getComponent(){const t={};this.isMouseEnterToShow()&&(t.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(t.onMouseleave=this.onPopupMouseleave),t.onMousedown=this.onPopupMouseDown,t[G?"onTouchstartPassive":"onTouchstart"]=this.onPopupMouseDown;const{handleGetPopupClassFromAlign:e,getRootDomNode:n,$attrs:i}=this,{prefixCls:o,destroyPopupOnHide:r,popupClassName:s,popupAnimation:a,popupTransitionName:l,popupStyle:u,mask:h,maskAnimation:p,maskTransitionName:c,zIndex:f,stretch:d,alignPoint:g,mobile:w,arrow:m,forceRender:y}=this.$props,{sPopupVisible:b,point:O}=this.$data,A=P(P({prefixCls:o,arrow:m,destroyPopupOnHide:r,visible:b,point:g?O:null,align:this.align,animation:a,getClassNameFromAlign:e,stretch:d,getRootDomNode:n,mask:h,zIndex:f,transitionName:l,maskAnimation:p,maskTransitionName:c,class:s,style:u,onAlign:i.onPopupAlign||me},t),{ref:this.setPopupRef,mobile:w,forceRender:y});return C(yo,A,{default:this.$slots.popup||(()=>Ie(this,"popup"))})},attachParent(t){z.cancel(this.attachId);const{getPopupContainer:e,getDocument:n}=this.$props,i=this.getRootDomNode();let o;e?(i||e.length===0)&&(o=e(i)):o=n(this.getRootDomNode()).body,o?o.appendChild(t):this.attachId=z(()=>{this.attachParent(t)})},getContainer(){const{$props:t}=this,{getDocument:e}=t,n=e(this.getRootDomNode()).createElement("div");return n.style.position="absolute",n.style.top="0",n.style.left="0",n.style.width="100%",this.attachParent(n),n},setPopupVisible(t,e){const{alignPoint:n,sPopupVisible:i,onPopupVisibleChange:o}=this;this.clearDelayTimer(),i!==t&&(Le(this,"popupVisible")||this.setState({sPopupVisible:t,prevPopupVisible:i}),o&&o(t)),n&&e&&t&&this.setPoint(e)},setPoint(t){const{alignPoint:e}=this.$props;!e||!t||this.setState({point:{pageX:t.pageX,pageY:t.pageY}})},handlePortalUpdate(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible(t,e,n){const i=e*1e3;if(this.clearDelayTimer(),i){const o=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout(()=>{this.setPopupVisible(t,o),this.clearDelayTimer()},i)}else this.setPopupVisible(t,n)},clearDelayTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)},clearOutsideHandler(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextmenuOutsideHandler1&&(this.contextmenuOutsideHandler1.remove(),this.contextmenuOutsideHandler1=null),this.contextmenuOutsideHandler2&&(this.contextmenuOutsideHandler2.remove(),this.contextmenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},createTwoChains(t){let e=()=>{};const n=$t(this);return this.childOriginEvents[t]&&n[t]?this[`fire${t}`]:(e=this.childOriginEvents[t]||n[t]||e,e)},isClickToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("click")!==-1||e.indexOf("click")!==-1},isContextMenuOnly(){const{action:t}=this.$props;return t==="contextmenu"||t.length===1&&t[0]==="contextmenu"},isContextmenuToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("contextmenu")!==-1||e.indexOf("contextmenu")!==-1},isClickToHide(){const{action:t,hideAction:e}=this.$props;return t.indexOf("click")!==-1||e.indexOf("click")!==-1},isMouseEnterToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("hover")!==-1||e.indexOf("mouseenter")!==-1},isMouseLeaveToHide(){const{action:t,hideAction:e}=this.$props;return t.indexOf("hover")!==-1||e.indexOf("mouseleave")!==-1},isFocusToShow(){const{action:t,showAction:e}=this.$props;return t.indexOf("focus")!==-1||e.indexOf("focus")!==-1},isBlurToHide(){const{action:t,hideAction:e}=this.$props;return t.indexOf("focus")!==-1||e.indexOf("blur")!==-1},forcePopupAlign(){var t;this.$data.sPopupVisible&&((t=this.popupRef)===null||t===void 0||t.forceAlign())},fireEvents(t,e){this.childOriginEvents[t]&&this.childOriginEvents[t](e);const n=this.$props[t]||this.$attrs[t];n&&n(e)},close(){this.setPopupVisible(!1)}},render(){const{$attrs:t}=this,e=Ve(Fe(this)),{alignPoint:n,getPopupContainer:i}=this.$props,o=e[0];this.childOriginEvents=$t(o);const r={key:"trigger"};this.isContextmenuToShow()?r.onContextmenu=this.onContextmenu:r.onContextmenu=this.createTwoChains("onContextmenu"),this.isClickToHide()||this.isClickToShow()?(r.onClick=this.onClick,r.onMousedown=this.onMousedown,r[G?"onTouchstartPassive":"onTouchstart"]=this.onTouchstart):(r.onClick=this.createTwoChains("onClick"),r.onMousedown=this.createTwoChains("onMousedown"),r[G?"onTouchstartPassive":"onTouchstart"]=this.createTwoChains("onTouchstart")),this.isMouseEnterToShow()?(r.onMouseenter=this.onMouseenter,n&&(r.onMousemove=this.onMouseMove)):r.onMouseenter=this.createTwoChains("onMouseenter"),this.isMouseLeaveToHide()?r.onMouseleave=this.onMouseleave:r.onMouseleave=this.createTwoChains("onMouseleave"),this.isFocusToShow()||this.isBlurToHide()?(r.onFocus=this.onFocus,r.onBlur=this.onBlur):(r.onFocus=this.createTwoChains("onFocus"),r.onBlur=u=>{u&&(!u.relatedTarget||!I(u.target,u.relatedTarget))&&this.createTwoChains("onBlur")(u)});const s=Ct(o&&o.props&&o.props.class,t.class);s&&(r.class=s);const a=he(o,P(P({},r),{ref:"triggerRef"}),!0,!0),l=C(We,{key:"portal",getContainer:i&&(()=>i(this.getRootDomNode())),didUpdate:this.handlePortalUpdate,visible:this.$data.sPopupVisible},{default:this.getComponent});return C(ke,null,[a,l])}});export{bo as B,L as M,lt as S,Bo as T,te as U,ji as a,oo as b,xi as c,ki as d,Me as e,Ui as f,Zi as g,H as h,eo as i,ie as j,ro as k,Ae as l,ho as m,Di as s};
@@ -1 +1 @@
1
- import{u as Z}from"./ws-Bv7YH0VB.js";import{_ as tt}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{v as et}from"./icons-Jk30QO6-.js";import{a as A}from"./index-CP2liZYV.js";import{l as at,F as d,D as r,c as a,x as s,r as m,q as c,v as i,J as _,u as ot,m as S,H as U,L as V,E as nt,I as p,G as x,N as st,a as lt,n as it}from"./vendor-BVetwVfk.js";import"./index-MzZGrA5i.js";import"./useConfigInject-BfCzqqat.js";import"./transition-6LOZvE9a.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-CHsntPCQ.js";import"./index-U4Zd5IK6.js";const rt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ut={key:1,style:{color:"var(--text-muted)","text-align":"center",padding:"20px"}},dt={key:2},ct=["onClick"],pt={style:{"font-weight":"500","font-family":"monospace","font-size":"12px"}},vt={style:{color:"var(--text-muted)","font-size":"11px","word-break":"break-all"}},ft={style:{color:"var(--text-muted)","font-size":"11px"}},mt={style:{display:"flex",gap:"8px","margin-top":"12px"}},_t={key:0,style:{color:"var(--text-muted)","text-align":"center",padding:"20px"}},ht={key:1},gt={style:{display:"flex","align-items":"center",gap:"8px","margin-bottom":"4px"}},yt={style:{"font-weight":"500"}},bt={key:0,style:{color:"var(--text-muted)","font-size":"12px"}},xt={key:1,style:{color:"var(--text-muted)","font-size":"11px"}},kt={class:"timeline-container"},Pt=["title"],wt={class:"timeline-label"},Ct={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"4px"}},zt={class:"event-type"},St={class:"event-detail"},Rt={style:{"text-align":"center"}},$t={style:{color:"var(--text-muted)","margin-bottom":"8px"}},Dt={__name:"VideoEditing",setup(Ut){const k=Z(),R=m([]),E=m(!1),P=m(null),v=m(!1),$=m([]),w=m([]),h=m(null),C=m(null),D=m(null);let L=null;const n=lt({videoPath:"",audioPath:"",existingSrt:"",instruction:"",fps:2,mainCharacter:"",outputPath:"./output.mp4"});at(()=>{M()});async function M(){E.value=!0;try{await k.waitConnected();const o=await k.sendRaw({type:"video.assets.list"});R.value=o.assets||[]}catch{R.value=[]}finally{E.value=!1}}function N(o,t){$.value=[],w.value=[],h.value=null,C.value=null,v.value=!0;const u=`video-${Date.now()}`;L=u;const y=k.onMessage(l=>{l.id===u&&(l.type==="stream.event"&&l.event&&F(l.event),l.type===`${o}.end`&&(v.value=!1,y(),l.ok?(l.shotPlan&&(h.value=l.shotPlan),l.outputPath&&(C.value=l.outputPath),l.assetDir&&M(),A.success("完成")):A.error(l.error?.message||"失败")))});k.sendRaw({type:o,id:u,...t}).catch(()=>{v.value=!1,y()})}function F(o){if($.value.push(o),o.type==="phase.start")w.value.push({phase:o.phase,pct:0,message:"",done:!1});else if(o.type==="phase.progress"){const t=w.value.find(u=>u.phase===o.phase);t&&(t.pct=o.pct,t.message=o.message||"")}else if(o.type==="phase.end"){const t=w.value.find(u=>u.phase===o.phase);t&&(t.pct=1,t.done=!0)}it(()=>{D.value&&(D.value.scrollTop=D.value.scrollHeight)})}function T(){N("video.edit",{videoPath:n.videoPath,audioPath:n.audioPath||void 0,instruction:n.instruction,outputPath:n.outputPath,existingSrt:n.existingSrt||void 0,fps:n.fps,mainCharacter:n.mainCharacter||void 0})}function I(){N("video.deconstruct",{videoPath:n.videoPath,audioPath:n.audioPath||void 0,existingSrt:n.existingSrt||void 0,fps:n.fps})}function q(){P.value&&N("video.plan",{assetDir:P.value.hash,instruction:n.instruction,mainCharacter:n.mainCharacter||void 0})}function H(){L&&k.sendRaw({type:"cancel",id:L}).catch(()=>{}),v.value=!1}function J(o){return o.done?"success":o.pct>0?"processing":"default"}function W(o){const t=(h.value?.sections||[]).reduce((y,l)=>y+(l.music_segment?.end||0)-(l.music_segment?.start||0),0),u=((o.music_segment?.end||0)-(o.music_segment?.start||0))/(t||1)*100;return Math.max(u,2)}function j(o){return o.phase?o.message||o.phase:o.tool?`${o.agent}.${o.tool}`:o.reason?o.reason:""}function G(o){navigator.clipboard?.writeText(o),A.success("已复制")}return(o,t)=>{const u=c("a-button"),y=c("a-spin"),l=c("a-card"),b=c("a-col"),z=c("a-input"),g=c("a-form-item"),O=c("a-textarea"),K=c("a-input-number"),B=c("a-row"),Q=c("a-form"),X=c("a-badge"),Y=c("a-progress");return i(),d("div",null,[r("div",rt,[t[9]||(t[9]=r("div",null,[r("h2",{class:"page-title"},"视频剪辑"),r("p",{class:"page-sub"},"长视频素材 + 音乐 → 节奏化蒙太奇(CutClaw 风格)")],-1)),a(u,{type:"primary",ghost:"",onClick:M},{icon:s(()=>[a(ot(et))]),default:s(()=>[t[8]||(t[8]=_(" 刷新资产 ",-1))]),_:1})]),a(B,{gutter:16},{default:s(()=>[a(b,{span:6},{default:s(()=>[a(l,{title:"素材库",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[E.value?(i(),S(y,{key:0})):R.value.length===0?(i(),d("div",ut,[...t[10]||(t[10]=[_(" 暂无已解构素材",-1),r("br",null,null,-1),_("请先执行解构 ",-1)])])):(i(),d("div",dt,[(i(!0),d(U,null,V(R.value,e=>(i(),d("div",{key:e.hash,class:nt(["asset-item",{active:P.value?.hash===e.hash}]),onClick:f=>P.value=e},[r("div",pt,p(e.hash),1),r("div",vt,p(e.videoPath),1),r("div",ft,p(e.modifiedAt?.slice(0,10)),1)],10,ct))),128))]))]),_:1})]),_:1}),a(b,{span:10},{default:s(()=>[a(l,{title:"编辑工作台",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(Q,{layout:"vertical",style:{"max-width":"100%"}},{default:s(()=>[a(g,{label:"视频文件"},{default:s(()=>[a(z,{value:n.videoPath,"onUpdate:value":t[0]||(t[0]=e=>n.videoPath=e),placeholder:"/path/to/video.mp4"},null,8,["value"])]),_:1}),a(g,{label:"音乐文件"},{default:s(()=>[a(z,{value:n.audioPath,"onUpdate:value":t[1]||(t[1]=e=>n.audioPath=e),placeholder:"/path/to/bgm.mp3(可选)"},null,8,["value"])]),_:1}),a(g,{label:"字幕文件"},{default:s(()=>[a(z,{value:n.existingSrt,"onUpdate:value":t[2]||(t[2]=e=>n.existingSrt=e),placeholder:"/path/to/subtitle.srt(可选,跳过 ASR)"},null,8,["value"])]),_:1}),a(g,{label:"剪辑指令"},{default:s(()=>[a(O,{value:n.instruction,"onUpdate:value":t[3]||(t[3]=e=>n.instruction=e),rows:3,placeholder:"节奏感强的角色蒙太奇..."},null,8,["value"])]),_:1}),a(B,{gutter:12},{default:s(()=>[a(b,{span:8},{default:s(()=>[a(g,{label:"采样 FPS"},{default:s(()=>[a(K,{value:n.fps,"onUpdate:value":t[4]||(t[4]=e=>n.fps=e),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1})]),_:1}),a(b,{span:8},{default:s(()=>[a(g,{label:"主角名"},{default:s(()=>[a(z,{value:n.mainCharacter,"onUpdate:value":t[5]||(t[5]=e=>n.mainCharacter=e),placeholder:"Joker"},null,8,["value"])]),_:1})]),_:1}),a(b,{span:8},{default:s(()=>[a(g,{label:"输出路径"},{default:s(()=>[a(z,{value:n.outputPath,"onUpdate:value":t[6]||(t[6]=e=>n.outputPath=e),placeholder:"./output.mp4"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1}),r("div",mt,[a(u,{type:"primary",loading:v.value,disabled:!n.videoPath,onClick:T},{default:s(()=>[...t[11]||(t[11]=[_(" 一键剪辑 ",-1)])]),_:1},8,["loading","disabled"]),a(u,{loading:v.value,disabled:!n.videoPath,onClick:I},{default:s(()=>[...t[12]||(t[12]=[_(" 仅解构 ",-1)])]),_:1},8,["loading","disabled"]),a(u,{loading:v.value,disabled:!P.value,onClick:q},{default:s(()=>[...t[13]||(t[13]=[_(" 生成计划 ",-1)])]),_:1},8,["loading","disabled"]),v.value?(i(),S(u,{key:0,danger:"",onClick:H},{default:s(()=>[...t[14]||(t[14]=[_(" 取消 ",-1)])]),_:1})):x("",!0)])]),_:1})]),_:1}),a(b,{span:8},{default:s(()=>[a(l,{title:"进度",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:s(()=>[!v.value&&$.value.length===0?(i(),d("div",_t," 等待开始... ")):(i(),d("div",ht,[(i(!0),d(U,null,V(w.value,(e,f)=>(i(),d("div",{key:f,style:{"margin-bottom":"12px"}},[r("div",gt,[a(X,{status:J(e)},null,8,["status"]),r("span",yt,p(e.phase),1),e.pct!=null?(i(),d("span",bt,p(Math.round(e.pct*100))+"% ",1)):x("",!0)]),e.pct!=null?(i(),S(Y,{key:0,percent:Math.round(e.pct*100),"show-info":!1,size:"small",status:e.done?"success":"active"},null,8,["percent","status"])):x("",!0),e.message?(i(),d("div",xt,p(e.message),1)):x("",!0)]))),128))]))]),_:1}),h.value?(i(),S(l,{key:0,title:"分镜时间轴",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:s(()=>[r("div",kt,[(i(!0),d(U,null,V(h.value.sections||[],(e,f)=>(i(),d("div",{key:f,class:"timeline-section",style:st({width:W(e)+"%"}),title:`Section ${e.section_idx}: ${e.shots?.length||0} shots`},[r("div",wt,p(e.music_segment?.label||f),1)],12,Pt))),128))]),r("div",Ct,p((h.value.sections||[]).length)+" 段 / "+p((h.value.sections||[]).reduce((e,f)=>e+(f.shots?.length||0),0))+" 镜头 ",1)]),_:1})):x("",!0),a(l,{title:"事件日志",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[r("div",{class:"event-log",ref_key:"eventLogRef",ref:D},[(i(!0),d(U,null,V($.value.slice(-50),(e,f)=>(i(),d("div",{key:f,class:"event-item"},[r("span",zt,p(e.type),1),r("span",St,p(j(e)),1)]))),128))],512)]),_:1}),C.value?(i(),S(l,{key:1,title:"成片预览",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:s(()=>[r("div",Rt,[r("div",$t,p(C.value),1),a(u,{type:"primary",ghost:"",size:"small",onClick:t[7]||(t[7]=e=>G(C.value))},{default:s(()=>[...t[15]||(t[15]=[_("复制路径",-1)])]),_:1})])]),_:1})):x("",!0)]),_:1})]),_:1})])}}},Ht=tt(Dt,[["__scopeId","data-v-301515b7"]]);export{Ht as default};
1
+ import{u as Z}from"./ws-Bv7YH0VB.js";import{_ as tt}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{y as et}from"./icons-DbKJDD5_.js";import{a as A}from"./index-CtUuEt-Q.js";import{l as at,F as d,D as r,c as a,x as s,r as m,q as c,v as i,J as _,u as ot,m as S,H as U,L as V,E as nt,I as p,G as x,N as st,a as lt,n as it}from"./vendor-BVetwVfk.js";import"./index-BLYcQWYW.js";import"./useConfigInject-BlTQDaaH.js";import"./transition-C4Iby8cT.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-CHsntPCQ.js";import"./index-U4Zd5IK6.js";const rt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ut={key:1,style:{color:"var(--text-muted)","text-align":"center",padding:"20px"}},dt={key:2},ct=["onClick"],pt={style:{"font-weight":"500","font-family":"monospace","font-size":"12px"}},vt={style:{color:"var(--text-muted)","font-size":"11px","word-break":"break-all"}},ft={style:{color:"var(--text-muted)","font-size":"11px"}},mt={style:{display:"flex",gap:"8px","margin-top":"12px"}},_t={key:0,style:{color:"var(--text-muted)","text-align":"center",padding:"20px"}},ht={key:1},gt={style:{display:"flex","align-items":"center",gap:"8px","margin-bottom":"4px"}},yt={style:{"font-weight":"500"}},bt={key:0,style:{color:"var(--text-muted)","font-size":"12px"}},xt={key:1,style:{color:"var(--text-muted)","font-size":"11px"}},kt={class:"timeline-container"},Pt=["title"],wt={class:"timeline-label"},Ct={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"4px"}},zt={class:"event-type"},St={class:"event-detail"},Rt={style:{"text-align":"center"}},$t={style:{color:"var(--text-muted)","margin-bottom":"8px"}},Dt={__name:"VideoEditing",setup(Ut){const k=Z(),R=m([]),E=m(!1),P=m(null),v=m(!1),$=m([]),w=m([]),h=m(null),C=m(null),D=m(null);let L=null;const n=lt({videoPath:"",audioPath:"",existingSrt:"",instruction:"",fps:2,mainCharacter:"",outputPath:"./output.mp4"});at(()=>{M()});async function M(){E.value=!0;try{await k.waitConnected();const o=await k.sendRaw({type:"video.assets.list"});R.value=o.assets||[]}catch{R.value=[]}finally{E.value=!1}}function N(o,t){$.value=[],w.value=[],h.value=null,C.value=null,v.value=!0;const u=`video-${Date.now()}`;L=u;const y=k.onMessage(l=>{l.id===u&&(l.type==="stream.event"&&l.event&&F(l.event),l.type===`${o}.end`&&(v.value=!1,y(),l.ok?(l.shotPlan&&(h.value=l.shotPlan),l.outputPath&&(C.value=l.outputPath),l.assetDir&&M(),A.success("完成")):A.error(l.error?.message||"失败")))});k.sendRaw({type:o,id:u,...t}).catch(()=>{v.value=!1,y()})}function F(o){if($.value.push(o),o.type==="phase.start")w.value.push({phase:o.phase,pct:0,message:"",done:!1});else if(o.type==="phase.progress"){const t=w.value.find(u=>u.phase===o.phase);t&&(t.pct=o.pct,t.message=o.message||"")}else if(o.type==="phase.end"){const t=w.value.find(u=>u.phase===o.phase);t&&(t.pct=1,t.done=!0)}it(()=>{D.value&&(D.value.scrollTop=D.value.scrollHeight)})}function T(){N("video.edit",{videoPath:n.videoPath,audioPath:n.audioPath||void 0,instruction:n.instruction,outputPath:n.outputPath,existingSrt:n.existingSrt||void 0,fps:n.fps,mainCharacter:n.mainCharacter||void 0})}function I(){N("video.deconstruct",{videoPath:n.videoPath,audioPath:n.audioPath||void 0,existingSrt:n.existingSrt||void 0,fps:n.fps})}function q(){P.value&&N("video.plan",{assetDir:P.value.hash,instruction:n.instruction,mainCharacter:n.mainCharacter||void 0})}function H(){L&&k.sendRaw({type:"cancel",id:L}).catch(()=>{}),v.value=!1}function J(o){return o.done?"success":o.pct>0?"processing":"default"}function W(o){const t=(h.value?.sections||[]).reduce((y,l)=>y+(l.music_segment?.end||0)-(l.music_segment?.start||0),0),u=((o.music_segment?.end||0)-(o.music_segment?.start||0))/(t||1)*100;return Math.max(u,2)}function j(o){return o.phase?o.message||o.phase:o.tool?`${o.agent}.${o.tool}`:o.reason?o.reason:""}function G(o){navigator.clipboard?.writeText(o),A.success("已复制")}return(o,t)=>{const u=c("a-button"),y=c("a-spin"),l=c("a-card"),b=c("a-col"),z=c("a-input"),g=c("a-form-item"),O=c("a-textarea"),K=c("a-input-number"),B=c("a-row"),Q=c("a-form"),X=c("a-badge"),Y=c("a-progress");return i(),d("div",null,[r("div",rt,[t[9]||(t[9]=r("div",null,[r("h2",{class:"page-title"},"视频剪辑"),r("p",{class:"page-sub"},"长视频素材 + 音乐 → 节奏化蒙太奇(CutClaw 风格)")],-1)),a(u,{type:"primary",ghost:"",onClick:M},{icon:s(()=>[a(ot(et))]),default:s(()=>[t[8]||(t[8]=_(" 刷新资产 ",-1))]),_:1})]),a(B,{gutter:16},{default:s(()=>[a(b,{span:6},{default:s(()=>[a(l,{title:"素材库",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[E.value?(i(),S(y,{key:0})):R.value.length===0?(i(),d("div",ut,[...t[10]||(t[10]=[_(" 暂无已解构素材",-1),r("br",null,null,-1),_("请先执行解构 ",-1)])])):(i(),d("div",dt,[(i(!0),d(U,null,V(R.value,e=>(i(),d("div",{key:e.hash,class:nt(["asset-item",{active:P.value?.hash===e.hash}]),onClick:f=>P.value=e},[r("div",pt,p(e.hash),1),r("div",vt,p(e.videoPath),1),r("div",ft,p(e.modifiedAt?.slice(0,10)),1)],10,ct))),128))]))]),_:1})]),_:1}),a(b,{span:10},{default:s(()=>[a(l,{title:"编辑工作台",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(Q,{layout:"vertical",style:{"max-width":"100%"}},{default:s(()=>[a(g,{label:"视频文件"},{default:s(()=>[a(z,{value:n.videoPath,"onUpdate:value":t[0]||(t[0]=e=>n.videoPath=e),placeholder:"/path/to/video.mp4"},null,8,["value"])]),_:1}),a(g,{label:"音乐文件"},{default:s(()=>[a(z,{value:n.audioPath,"onUpdate:value":t[1]||(t[1]=e=>n.audioPath=e),placeholder:"/path/to/bgm.mp3(可选)"},null,8,["value"])]),_:1}),a(g,{label:"字幕文件"},{default:s(()=>[a(z,{value:n.existingSrt,"onUpdate:value":t[2]||(t[2]=e=>n.existingSrt=e),placeholder:"/path/to/subtitle.srt(可选,跳过 ASR)"},null,8,["value"])]),_:1}),a(g,{label:"剪辑指令"},{default:s(()=>[a(O,{value:n.instruction,"onUpdate:value":t[3]||(t[3]=e=>n.instruction=e),rows:3,placeholder:"节奏感强的角色蒙太奇..."},null,8,["value"])]),_:1}),a(B,{gutter:12},{default:s(()=>[a(b,{span:8},{default:s(()=>[a(g,{label:"采样 FPS"},{default:s(()=>[a(K,{value:n.fps,"onUpdate:value":t[4]||(t[4]=e=>n.fps=e),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1})]),_:1}),a(b,{span:8},{default:s(()=>[a(g,{label:"主角名"},{default:s(()=>[a(z,{value:n.mainCharacter,"onUpdate:value":t[5]||(t[5]=e=>n.mainCharacter=e),placeholder:"Joker"},null,8,["value"])]),_:1})]),_:1}),a(b,{span:8},{default:s(()=>[a(g,{label:"输出路径"},{default:s(()=>[a(z,{value:n.outputPath,"onUpdate:value":t[6]||(t[6]=e=>n.outputPath=e),placeholder:"./output.mp4"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1}),r("div",mt,[a(u,{type:"primary",loading:v.value,disabled:!n.videoPath,onClick:T},{default:s(()=>[...t[11]||(t[11]=[_(" 一键剪辑 ",-1)])]),_:1},8,["loading","disabled"]),a(u,{loading:v.value,disabled:!n.videoPath,onClick:I},{default:s(()=>[...t[12]||(t[12]=[_(" 仅解构 ",-1)])]),_:1},8,["loading","disabled"]),a(u,{loading:v.value,disabled:!P.value,onClick:q},{default:s(()=>[...t[13]||(t[13]=[_(" 生成计划 ",-1)])]),_:1},8,["loading","disabled"]),v.value?(i(),S(u,{key:0,danger:"",onClick:H},{default:s(()=>[...t[14]||(t[14]=[_(" 取消 ",-1)])]),_:1})):x("",!0)])]),_:1})]),_:1}),a(b,{span:8},{default:s(()=>[a(l,{title:"进度",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:s(()=>[!v.value&&$.value.length===0?(i(),d("div",_t," 等待开始... ")):(i(),d("div",ht,[(i(!0),d(U,null,V(w.value,(e,f)=>(i(),d("div",{key:f,style:{"margin-bottom":"12px"}},[r("div",gt,[a(X,{status:J(e)},null,8,["status"]),r("span",yt,p(e.phase),1),e.pct!=null?(i(),d("span",bt,p(Math.round(e.pct*100))+"% ",1)):x("",!0)]),e.pct!=null?(i(),S(Y,{key:0,percent:Math.round(e.pct*100),"show-info":!1,size:"small",status:e.done?"success":"active"},null,8,["percent","status"])):x("",!0),e.message?(i(),d("div",xt,p(e.message),1)):x("",!0)]))),128))]))]),_:1}),h.value?(i(),S(l,{key:0,title:"分镜时间轴",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:s(()=>[r("div",kt,[(i(!0),d(U,null,V(h.value.sections||[],(e,f)=>(i(),d("div",{key:f,class:"timeline-section",style:st({width:W(e)+"%"}),title:`Section ${e.section_idx}: ${e.shots?.length||0} shots`},[r("div",wt,p(e.music_segment?.label||f),1)],12,Pt))),128))]),r("div",Ct,p((h.value.sections||[]).length)+" 段 / "+p((h.value.sections||[]).reduce((e,f)=>e+(f.shots?.length||0),0))+" 镜头 ",1)]),_:1})):x("",!0),a(l,{title:"事件日志",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[r("div",{class:"event-log",ref_key:"eventLogRef",ref:D},[(i(!0),d(U,null,V($.value.slice(-50),(e,f)=>(i(),d("div",{key:f,class:"event-item"},[r("span",zt,p(e.type),1),r("span",St,p(j(e)),1)]))),128))],512)]),_:1}),C.value?(i(),S(l,{key:1,title:"成片预览",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:s(()=>[r("div",Rt,[r("div",$t,p(C.value),1),a(u,{type:"primary",ghost:"",size:"small",onClick:t[7]||(t[7]=e=>G(C.value))},{default:s(()=>[...t[15]||(t[15]=[_("复制路径",-1)])]),_:1})])]),_:1})):x("",!0)]),_:1})]),_:1})])}}},Ht=tt(Dt,[["__scopeId","data-v-301515b7"]]);export{Ht as default};