chainlesschain 0.157.0 → 0.157.1

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 (114) hide show
  1. package/bin/chainlesschain.js +0 -0
  2. package/package.json +2 -2
  3. package/src/assets/web-panel/.build-hash +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-CCj9oE5_.js → ActionButton-Dp5EHuSs.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-RMqXlyHE.js → Analytics-Dt69R7IX.js} +2 -2
  6. package/src/assets/web-panel/assets/AppLayout-BiOlkA-r.js +1 -0
  7. package/src/assets/web-panel/assets/AppLayout-Wr63FaJ2.css +1 -0
  8. package/src/assets/web-panel/assets/{Backup-bes7wE_k.js → Backup-sEweroFg.js} +1 -1
  9. package/src/assets/web-panel/assets/{BaseInput-BKgAovqI.js → BaseInput-CMHSpW6z.js} +1 -1
  10. package/src/assets/web-panel/assets/{Chat-Duckao6i.js → Chat-DQusK0UJ.js} +2 -2
  11. package/src/assets/web-panel/assets/{Checkbox-BaBBUZnH.js → Checkbox-DXQE64jQ.js} +1 -1
  12. package/src/assets/web-panel/assets/{Col-B6iQKzFs.js → Col-GesfSTFv.js} +1 -1
  13. package/src/assets/web-panel/assets/{Compact-Fwt0CbI5.js → Compact-DOVOXT5H.js} +1 -1
  14. package/src/assets/web-panel/assets/{Cowork-DNy50_Cp.js → Cowork-BaJ4irYi.js} +3 -3
  15. package/src/assets/web-panel/assets/{Cron-CBREJypB.js → Cron-DLx6zElQ.js} +2 -2
  16. package/src/assets/web-panel/assets/DID-BDvsVa08.css +1 -0
  17. package/src/assets/web-panel/assets/DID-O2dY9RPB.js +2 -0
  18. package/src/assets/web-panel/assets/Dashboard-BReDcgB_.js +3 -0
  19. package/src/assets/web-panel/assets/{Dropdown-B3vdFzOi.js → Dropdown-O-lFvQpB.js} +1 -1
  20. package/src/assets/web-panel/assets/{FormItemContext-RYn2zMn5.js → FormItemContext-Dld2C8JQ.js} +1 -1
  21. package/src/assets/web-panel/assets/{Git-7TolKe3c.js → Git-hvFWgySH.js} +2 -2
  22. package/src/assets/web-panel/assets/{KnowledgeGraph-4b9v3wYV.js → KnowledgeGraph-B_y3Ap4i.js} +1 -1
  23. package/src/assets/web-panel/assets/{Logs-BZgM3Q4b.js → Logs-DhFPaoDT.js} +2 -2
  24. package/src/assets/web-panel/assets/{McpTools-5Wrif1R_.js → McpTools-D0XTOWu9.js} +2 -2
  25. package/src/assets/web-panel/assets/{Memory-D8YRnt51.js → Memory-DW_B6rnE.js} +2 -2
  26. package/src/assets/web-panel/assets/{Notes-CWTUG8hk.js → Notes-BbyhsweS.js} +2 -2
  27. package/src/assets/web-panel/assets/{Organization-DvJzrIES.js → Organization-CChT-ntv.js} +4 -4
  28. package/src/assets/web-panel/assets/{Overflow-tpvXbZkh.js → Overflow-CZx2xJzC.js} +1 -1
  29. package/src/assets/web-panel/assets/{P2P-C-AoKbTs.js → P2P-CwaXSJZR.js} +2 -2
  30. package/src/assets/web-panel/assets/{Permissions-cIclKlQB.js → Permissions-D5U7ha3z.js} +4 -4
  31. package/src/assets/web-panel/assets/ProjectSettings-BQX5tF8E.js +2 -0
  32. package/src/assets/web-panel/assets/ProjectSettings-pLSae-wy.css +1 -0
  33. package/src/assets/web-panel/assets/{Projects-CDKdsdit.js → Projects-CLL9WS2z.js} +2 -2
  34. package/src/assets/web-panel/assets/{Providers-C33u4Mka.js → Providers-fjohdAMK.js} +2 -2
  35. package/src/assets/web-panel/assets/{Row-DVscVTtp.js → Row-C-bX9EFG.js} +1 -1
  36. package/src/assets/web-panel/assets/{RssFeed-CGC4w7VD.js → RssFeed-BsKQE8pe.js} +3 -3
  37. package/src/assets/web-panel/assets/{Security-ymR0We-P.js → Security-DXW6YBaw.js} +3 -3
  38. package/src/assets/web-panel/assets/{Services-Gydt4uVC.js → Services-BnNYoCwx.js} +2 -2
  39. package/src/assets/web-panel/assets/{Skeleton-CfLdvEpu.js → Skeleton-B-K9_08N.js} +1 -1
  40. package/src/assets/web-panel/assets/{Skills-C_SrPIFZ.js → Skills-DB8Qba_i.js} +1 -1
  41. package/src/assets/web-panel/assets/Tasks-0fHss8Sn.js +1 -0
  42. package/src/assets/web-panel/assets/{Templates-Bj1wDexb.js → Templates-Cfch0kkR.js} +1 -1
  43. package/src/assets/web-panel/assets/{Trigger-CIW_GVYA.js → Trigger-CAZQ8LeJ.js} +1 -1
  44. package/src/assets/web-panel/assets/{VideoEditing-CQOwjQFu.js → VideoEditing-CiTgOTo4.js} +1 -1
  45. package/src/assets/web-panel/assets/{Wallet-0kSZ-ENs.js → Wallet-BQiQ4WyF.js} +4 -4
  46. package/src/assets/web-panel/assets/{WebAuthn-CrZlAr6l.js → WebAuthn-Dq27qj5Y.js} +5 -5
  47. package/src/assets/web-panel/assets/{WorkflowEditor-DbdF8700.js → WorkflowEditor-BSXLy_fi.js} +1 -1
  48. package/src/assets/web-panel/assets/{colors-BgoKrIXh.js → colors-CHcJ8oqQ.js} +1 -1
  49. package/src/assets/web-panel/assets/{compact-item-COAuztwB.js → compact-item-BIM24cFh.js} +1 -1
  50. package/src/assets/web-panel/assets/{createContext-BTceykzK.js → createContext-yGfIqyCQ.js} +1 -1
  51. package/src/assets/web-panel/assets/{hasIn-BNooGgXx.js → hasIn-BXMsXiz7.js} +1 -1
  52. package/src/assets/web-panel/assets/{icons-DzieZiVh.js → icons-DEoqYzGZ.js} +4 -4
  53. package/src/assets/web-panel/assets/{index-CjOtB4wg.js → index-36fB-tdr.js} +3 -3
  54. package/src/assets/web-panel/assets/{index-BqJS8Rje.js → index-B-tWHvIW.js} +1 -1
  55. package/src/assets/web-panel/assets/{index-D1SCFE25.js → index-B50P9i-m.js} +1 -1
  56. package/src/assets/web-panel/assets/{index-Cf1n_3VC.js → index-BDzwtAvJ.js} +1 -1
  57. package/src/assets/web-panel/assets/{index-D6w1kIHg.js → index-BEPQ53hT.js} +1 -1
  58. package/src/assets/web-panel/assets/{index-vHj3UTBK.js → index-BPRyVdxV.js} +1 -1
  59. package/src/assets/web-panel/assets/{index-DbxkO9Uy.js → index-BPln_4T8.js} +1 -1
  60. package/src/assets/web-panel/assets/index-BPzN5a2A.js +36 -0
  61. package/src/assets/web-panel/assets/{index-Z9wFemG0.js → index-BaV1qPw2.js} +1 -1
  62. package/src/assets/web-panel/assets/{index-BbBjevdP.js → index-Bm7xqsYQ.js} +1 -1
  63. package/src/assets/web-panel/assets/{index-BMU9I-F6.js → index-BsSnr41N.js} +1 -1
  64. package/src/assets/web-panel/assets/{index-BRBeeCRz.js → index-BtfOEVOq.js} +2 -2
  65. package/src/assets/web-panel/assets/{index-Z5CuKqcS.js → index-C6RUQfzA.js} +1 -1
  66. package/src/assets/web-panel/assets/{index-Bn7dXbEh.js → index-CEBBaWRc.js} +1 -1
  67. package/src/assets/web-panel/assets/{index-DC-nDpH_.js → index-CELIaC07.js} +2 -2
  68. package/src/assets/web-panel/assets/{index-CZ3YetO8.js → index-CN1O5Ka0.js} +1 -1
  69. package/src/assets/web-panel/assets/{index-DDgwb3KP.js → index-CPzBvwi4.js} +1 -1
  70. package/src/assets/web-panel/assets/{index-g7FAcG7B.js → index-CSzJBDW_.js} +1 -1
  71. package/src/assets/web-panel/assets/{index-BEbmwv5T.js → index-CWRVLGUY.js} +3 -3
  72. package/src/assets/web-panel/assets/{index-KEQgDCwj.js → index-CWhMnsWX.js} +1 -1
  73. package/src/assets/web-panel/assets/{index-DnoNK5Gb.js → index-C_VBCJdj.js} +1 -1
  74. package/src/assets/web-panel/assets/{index-81NIDNcI.js → index-CfXwGGJa.js} +1 -1
  75. package/src/assets/web-panel/assets/{index-CpFrvhnj.js → index-Csq1ymAd.js} +1 -1
  76. package/src/assets/web-panel/assets/{index-Bjf02LQY.js → index-CvI-6roc.js} +1 -1
  77. package/src/assets/web-panel/assets/{index-eVLTVVvL.js → index-D2aA1Eww.js} +1 -1
  78. package/src/assets/web-panel/assets/{index-BLzkplpf.js → index-DNwo9Dzx.js} +1 -1
  79. package/src/assets/web-panel/assets/{index-nw5SqpgZ.js → index-DViNLv05.js} +2 -2
  80. package/src/assets/web-panel/assets/index-DX3NKnlx.js +1 -0
  81. package/src/assets/web-panel/assets/{index-C7uW3zj4.js → index-DYbkrS1k.js} +1 -1
  82. package/src/assets/web-panel/assets/index-D_E9PBtZ.js +1 -0
  83. package/src/assets/web-panel/assets/{index-B7gZm05C.js → index-DlqQ3NPc.js} +1 -1
  84. package/src/assets/web-panel/assets/{index-BAPulPv1.js → index-DrBsteza.js} +1 -1
  85. package/src/assets/web-panel/assets/{index-O-dqdn3q.js → index-Mc421_zZ.js} +1 -1
  86. package/src/assets/web-panel/assets/{index-D5wFryiJ.js → index-OcnmMROX.js} +2 -2
  87. package/src/assets/web-panel/assets/{index-cF6gfPY3.js → index-PbAFYgta.js} +1 -1
  88. package/src/assets/web-panel/assets/{index-lrfnKtkl.js → index-T5htsJq3.js} +1 -1
  89. package/src/assets/web-panel/assets/index-lx2gVL_l.js +1 -0
  90. package/src/assets/web-panel/assets/{index-C1BBkQIj.js → index-pj_DB3gf.js} +1 -1
  91. package/src/assets/web-panel/assets/{initDefaultProps-_t-PG0bz.js → initDefaultProps-DR3dFRrN.js} +1 -1
  92. package/src/assets/web-panel/assets/{motion-DPnqtODq.js → motion-Dab0Jzue.js} +1 -1
  93. package/src/assets/web-panel/assets/{move-kO9NQRyb.js → move-CbXivKK7.js} +1 -1
  94. package/src/assets/web-panel/assets/{omit-DD9MqVt0.js → omit-CyPQ4Rvu.js} +1 -1
  95. package/src/assets/web-panel/assets/{pickAttrs-D4u5AYq1.js → pickAttrs-DLkAq0jb.js} +1 -1
  96. package/src/assets/web-panel/assets/{placementArrow-BUkUxlJc.js → placementArrow-OJpzGLKb.js} +1 -1
  97. package/src/assets/web-panel/assets/{responsiveObserve-DA_o8FHw.js → responsiveObserve-BSL-2rcG.js} +1 -1
  98. package/src/assets/web-panel/assets/{slide-DSmAtCrK.js → slide-CSTFi1jq.js} +1 -1
  99. package/src/assets/web-panel/assets/{statusUtils-Bn00xQ4D.js → statusUtils-DYDvuHx4.js} +1 -1
  100. package/src/assets/web-panel/assets/{styleChecker-phGTLjuN.js → styleChecker-BMkbm-8r.js} +1 -1
  101. package/src/assets/web-panel/assets/{transition-exl3w1iN.js → transition-B3-w1SVL.js} +1 -1
  102. package/src/assets/web-panel/assets/{useConfigInject-C2E3Qsop.js → useConfigInject-DIr4olCu.js} +2 -2
  103. package/src/assets/web-panel/assets/{useFlexGapSupport-tlovsMBV.js → useFlexGapSupport-d0_YPT4c.js} +1 -1
  104. package/src/assets/web-panel/assets/{vnode-CIbqhcnZ.js → vnode-Df_mZ5AJ.js} +1 -1
  105. package/src/assets/web-panel/assets/{zoom-Ck9WbYsZ.js → zoom-CY5xo2Ia.js} +1 -1
  106. package/src/assets/web-panel/index.html +2 -2
  107. package/src/assets/web-panel/assets/AppLayout-CSmBboZB.css +0 -1
  108. package/src/assets/web-panel/assets/AppLayout-CV6gWn1r.js +0 -1
  109. package/src/assets/web-panel/assets/Dashboard-DnJ1aZvj.js +0 -3
  110. package/src/assets/web-panel/assets/Tasks-BchvT4YD.js +0 -1
  111. package/src/assets/web-panel/assets/index-4C1c4hkZ.js +0 -36
  112. package/src/assets/web-panel/assets/index-C4YPr8e8.js +0 -1
  113. package/src/assets/web-panel/assets/index-DYDvGZbQ.js +0 -1
  114. package/src/assets/web-panel/assets/index-DeN7D3FZ.js +0 -1
@@ -1 +1 @@
1
- import{_ as P,z as I}from"./index-4C1c4hkZ.js";import{P as _}from"./index-U4Zd5IK6.js";import{w as z}from"./raf-Deuc0E8-.js";import{_ as H,b as fe,c as Ct,I as Be,f as Ve,J as Fe,K as Ht,M as Le,N as Ie,y as et}from"./useConfigInject-C2E3Qsop.js";import{a as U,s as G,P as We}from"./motion-DPnqtODq.js";import{c as C,U as xt,S 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,a1 as Ye,M as je,T as Ue,P as $t,a4 as Ge,H as ke,p as Ke,i as qe}from"./vendor-aH7YaPZi.js";import{g as de,u as Ze}from"./Portal-DXIqogG2.js";import{c as he}from"./vnode-CIbqhcnZ.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{g as sn}from"./transition-exl3w1iN.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,H({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,H({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,Hn=2,_t=1,$n=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===Hn?-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?$n:_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 $(t){var e=this.__data__=new N(t);this.size=e.size}$.prototype.clear=Qn;$.prototype.delete=ti;$.prototype.get=ei;$.prototype.has=ni;$.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,Hi="[object Boolean]",$i="[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 Hi:case $i: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 $),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 $),o(g,w,n,i,r)}}return c?(r||(r=new $),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,He=[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 $e=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,H(H({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:$e,onMouseenter:Y,onMouseleave:De,onMousedown:$t(Ne,["capture"]),[G?"onTouchstartPassive":"onTouchstart"]:$t(Ee,["capture"]),style:He},[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,H(H({},u),{},{mobile:t.mobile,ref:a}),{default:i.default}):C(mo,H(H({},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=Ht(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=Ht(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,$ as h,eo as i,ie as j,ro as k,Ae as l,ho as m,Di as s};
1
+ import{_ as P,z as I}from"./index-BPzN5a2A.js";import{P as _}from"./index-U4Zd5IK6.js";import{w as z}from"./raf-Deuc0E8-.js";import{_ as H,t as fe,c as Ct,I as Be,q as Ve,J as Fe,K as Ht,M as Le,N as Ie,y as et}from"./useConfigInject-DIr4olCu.js";import{a as U,s as G,P as We}from"./motion-Dab0Jzue.js";import{c as C,U as xt,S 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,a1 as Ye,M as je,T as Ue,P as $t,a4 as Ge,H as ke,p as Ke,i as qe}from"./vendor-aH7YaPZi.js";import{g as de,u as Ze}from"./Portal-DXIqogG2.js";import{c as he}from"./vnode-Df_mZ5AJ.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{g as sn}from"./transition-B3-w1SVL.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,H({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,H({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,Hn=2,_t=1,$n=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===Hn?-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?$n:_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 $(t){var e=this.__data__=new N(t);this.size=e.size}$.prototype.clear=Qn;$.prototype.delete=ti;$.prototype.get=ei;$.prototype.has=ni;$.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,Hi="[object Boolean]",$i="[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 Hi:case $i: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 $),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 $),o(g,w,n,i,r)}}return c?(r||(r=new $),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,He=[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 $e=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,H(H({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:$e,onMouseenter:Y,onMouseleave:De,onMousedown:$t(Ne,["capture"]),[G?"onTouchstartPassive":"onTouchstart"]:$t(Ee,["capture"]),style:He},[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,H(H({},u),{},{mobile:t.mobile,ref:a}),{default:i.default}):C(mo,H(H({},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=Ht(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=Ht(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,$ 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-BTS8ehTm.js";import{_ as tt}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{q as et}from"./icons-DzieZiVh.js";import{a as A}from"./index-CjOtB4wg.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-aH7YaPZi.js";import"./index-4C1c4hkZ.js";import"./useConfigInject-C2E3Qsop.js";import"./transition-exl3w1iN.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.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 q(){N("video.deconstruct",{videoPath:n.videoPath,audioPath:n.audioPath||void 0,existingSrt:n.existingSrt||void 0,fps:n.fps})}function I(){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:q},{default:s(()=>[...t[12]||(t[12]=[_(" 仅解构 ",-1)])]),_:1},8,["loading","disabled"]),a(u,{loading:v.value,disabled:!P.value,onClick:I},{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-BTS8ehTm.js";import{_ as tt}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{r as et}from"./icons-DEoqYzGZ.js";import{a as A}from"./index-36fB-tdr.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-aH7YaPZi.js";import"./index-BPzN5a2A.js";import"./useConfigInject-DIr4olCu.js";import"./transition-B3-w1SVL.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.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,4 +1,4 @@
1
- import{u as De}from"./ws-BTS8ehTm.js";import{_ as Te}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as v}from"./index-CjOtB4wg.js";import{q as K,l as P,a5 as $e,X as re,z as ie}from"./icons-DzieZiVh.js";import{l as Se,F as _,D as x,c as t,x as s,r as f,q as u,v as r,J as m,u as b,m as C,I as y,G as k,H as We,j as Ue,a as de}from"./vendor-aH7YaPZi.js";import"./index-4C1c4hkZ.js";import"./useConfigInject-C2E3Qsop.js";import"./transition-exl3w1iN.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.js";import"./index-U4Zd5IK6.js";const Oe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},qe={key:0,style:{"text-align":"center",padding:"60px"}},je={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Ne={key:1,style:{color:"var(--text-primary)"}},Fe={key:3,style:{color:"#52c41a","font-family":"monospace"}},Le={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},Me={key:0,style:{"text-align":"center",padding:"60px"}},Be={key:0,style:{color:"#e0e0e0"}},He={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Ve={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"12px"}},Je={key:0,style:{"margin-top":"8px"}},Ke={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},Pe={key:0,style:{"text-align":"center",padding:"30px"}},Re={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Ee={key:2,style:{color:"#e0e0e0","font-family":"monospace"}},Ge={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},Xe={style:{"margin-top":"16px"}},Qe={style:{"font-family":"monospace",color:"#ccc"}},Ye={style:{"font-family":"monospace",color:"#ccc"}},Ze={style:{"font-family":"monospace",color:"#52c41a"}},et={__name:"Wallet",setup(tt){const A=De(),$=f("wallets"),R=f(!1);function E(l){try{return JSON.parse(l)}catch{return null}}async function ue(){R.value=!0;try{$.value==="wallets"?await W():$.value==="assets"?await L():$.value==="transfer"&&await H()}finally{R.value=!1}}function pe(l){l==="assets"&&I.value.length===0&&L(),l==="transfer"&&T.value.length===0&&H()}const q=f(!1),G=f(!1),X=f(""),z=f([]),j=f(!1),S=f(""),ce=[{title:"地址",key:"address",dataIndex:"address",ellipsis:!0},{title:"名称",key:"name",dataIndex:"name",width:"150px"},{title:"默认",key:"isDefault",width:"80px"},{title:"余额",key:"balance",dataIndex:"balance",width:"120px"},{title:"操作",key:"action",width:"100px"}],ne=Ue(()=>{const l=z.value.find(a=>a.isDefault);if(!l||!l.address)return"未设置";const e=l.address;return e.length>16?e.slice(0,8)+"..."+e.slice(-6):e});async function W(){q.value=!0;try{const{output:l}=await A.execute("wallet list --json",15e3),e=E(l);e&&Array.isArray(e)?z.value=e.map((a,i)=>({key:a.address||a.id||i,address:a.address||a.id||"-",name:a.name||a.label||"-",isDefault:a.isDefault||a.default||!1,balance:a.balance??"-"})):e&&e.wallets&&Array.isArray(e.wallets)?z.value=e.wallets.map((a,i)=>({key:a.address||a.id||i,address:a.address||a.id||"-",name:a.name||a.label||"-",isDefault:a.isDefault||a.default||!1,balance:a.balance??"-"})):z.value=fe(l)}catch(l){v.error("加载钱包列表失败: "+l.message)}finally{q.value=!1}}function fe(l){const e=[],a=l.split(`
2
- `);for(const i of a){const n=i.trim();if(!n||n.startsWith("─")||n.match(/^\d+ wallet/i))continue;const d=n.match(/(0x[a-fA-F0-9]{8,})/);if(d){const V=/default|默认|\*/.test(n),U=n.match(/name[:\s]+(\S+)/i);e.push({key:d[1],address:d[1],name:U?U[1]:"-",isDefault:V,balance:"-"})}}return e}async function me(){if(!S.value.trim()){v.warning("请输入钱包名称");return}G.value=!0;try{const{output:l}=await A.execute(`wallet create --name "${S.value.trim()}" --json`,2e4);l.includes("error")||l.includes("失败")?v.error("创建失败: "+l.slice(0,120)):(v.success("钱包已创建"),j.value=!1,S.value="",await W())}catch(l){v.error("创建失败: "+l.message)}finally{G.value=!1}}async function ye(l){X.value=l;try{const{output:e}=await A.execute(`wallet set-default ${l}`,15e3);e.includes("error")||e.includes("失败")?v.error("设置失败: "+e.slice(0,120)):(v.success("已设为默认钱包"),await W())}catch(e){v.error("设置失败: "+e.message)}finally{X.value=""}}const N=f(!1),Q=f(!1),I=f([]),F=f(!1),g=de({name:"",type:"token",description:""}),ve=[{title:"名称",key:"name",dataIndex:"name",width:"180px"},{title:"类型",key:"type",dataIndex:"type",width:"100px"},{title:"描述",key:"description",dataIndex:"description",ellipsis:!0},{title:"地址",key:"address",dataIndex:"address",ellipsis:!0}];function _e(l){return{token:"blue",nft:"purple",data:"cyan"}[(l||"").toLowerCase()]||"default"}async function L(){N.value=!0;try{const{output:l}=await A.execute("wallet assets --json",15e3),e=E(l);e&&Array.isArray(e)?I.value=e.map((a,i)=>({key:a.id||a.address||i,name:a.name||"-",type:a.type||"-",description:a.description||"",address:a.address||a.id||"-"})):e&&e.assets&&Array.isArray(e.assets)?I.value=e.assets.map((a,i)=>({key:a.id||a.address||i,name:a.name||"-",type:a.type||"-",description:a.description||"",address:a.address||a.id||"-"})):I.value=ge(l)}catch(l){v.error("加载资产列表失败: "+l.message)}finally{N.value=!1}}function ge(l){const e=[],a=l.split(`
3
- `);for(const i of a){const n=i.trim();if(!n||n.startsWith("─")||n.match(/^\d+ asset/i))continue;const d=n.split(/\s*[|│]\s*/);d.length>=2&&e.push({key:e.length,name:d[0]||"-",type:d[1]||"-",description:d[2]||"",address:d[3]||"-"})}return e}async function ke(){if(!g.name.trim()){v.warning("请输入资产名称");return}Q.value=!0;try{let l=`wallet asset "${g.name.trim()}" --type ${g.type}`;g.description.trim()&&(l+=` --description "${g.description.trim().replace(/"/g,'\\"')}"`),l+=" --json";const{output:e}=await A.execute(l,2e4);e.includes("error")||e.includes("失败")?v.error("注册失败: "+e.slice(0,120)):(v.success("资产已注册"),F.value=!1,g.name="",g.type="token",g.description="",await L())}catch(l){v.error("注册失败: "+l.message)}finally{Q.value=!1}}const M=f(!1),B=f(!1),D=f(!1),w=f(null),T=f([]),c=de({assetId:"",toAddress:"",amount:null}),be=[{title:"时间",key:"time",dataIndex:"time",width:"150px"},{title:"类型",key:"type",dataIndex:"type",width:"80px"},{title:"数量",key:"amount",dataIndex:"amount",width:"100px"},{title:"目标",key:"to",dataIndex:"to",ellipsis:!0}];function xe(){if(!c.assetId.trim()||!c.toAddress.trim()||!c.amount){v.warning("请填写完整的转账信息");return}D.value=!0}async function we(){M.value=!0,w.value=null;try{const l=`wallet transfer ${c.assetId.trim()} ${c.toAddress.trim()} --amount ${c.amount}`,{output:e,exitCode:a}=await A.execute(l,3e4);w.value={success:a===0&&!e.includes("error")&&!e.includes("失败"),output:e||"转账已提交"},w.value.success?(v.success("转账成功"),D.value=!1,await H()):D.value=!1}catch(l){w.value={success:!1,output:"转账失败: "+l.message},D.value=!1}finally{M.value=!1}}async function H(){B.value=!0;try{const{output:l}=await A.execute("wallet history --limit 20 --json",15e3),e=E(l);e&&Array.isArray(e)?T.value=e.map((a,i)=>({key:a.id||a.hash||i,time:a.time||a.timestamp||a.createdAt||"-",type:a.type||a.direction||"-",amount:a.amount??"-",to:a.to||a.recipient||"-"})):e&&e.history&&Array.isArray(e.history)?T.value=e.history.map((a,i)=>({key:a.id||a.hash||i,time:a.time||a.timestamp||a.createdAt||"-",type:a.type||a.direction||"-",amount:a.amount??"-",to:a.to||a.recipient||"-"})):T.value=he(l)}catch(l){v.error("加载交易历史失败: "+l.message)}finally{B.value=!1}}function he(l){const e=[],a=l.split(`
4
- `);for(const i of a){const n=i.trim();if(!n||n.startsWith("─")||n.match(/^\d+ transaction/i))continue;const d=n.split(/\s*[|│]\s*/);d.length>=3&&e.push({key:e.length,time:d[0]||"-",type:d[1]||"-",amount:d[2]||"-",to:d[3]||"-"})}return e}return Se(()=>{W()}),(l,e)=>{const a=u("a-button"),i=u("a-statistic"),n=u("a-card"),d=u("a-col"),V=u("a-row"),U=u("a-space"),Y=u("a-spin"),J=u("a-tag"),Z=u("a-empty"),ee=u("a-table"),O=u("a-input"),h=u("a-form-item"),te=u("a-form"),ae=u("a-modal"),se=u("a-tab-pane"),le=u("a-select-option"),Ae=u("a-select"),Ce=u("a-input-number"),oe=u("a-descriptions-item"),ze=u("a-descriptions"),Ie=u("a-tabs");return r(),_("div",null,[x("div",Oe,[e[14]||(e[14]=x("div",null,[x("h2",{class:"page-title"},"钱包管理"),x("p",{class:"page-sub"},"资产 / 转账 / 历史")],-1)),t(a,{type:"primary",ghost:"",loading:R.value,onClick:ue},{icon:s(()=>[t(b(K))]),default:s(()=>[e[13]||(e[13]=m(" 刷新 ",-1))]),_:1},8,["loading"])]),t(V,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"钱包数量",value:z.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:s(()=>[t(b(P))]),_:1},8,["value"])]),_:1})]),_:1}),t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"总资产数",value:I.value.length,"value-style":{color:"#52c41a",fontSize:"20px"}},null,8,["value"])]),_:1})]),_:1}),t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"默认钱包",value:ne.value,"value-style":{color:ne.value!=="未设置"?"#faad14":"#888",fontSize:"14px",fontFamily:"monospace"}},{prefix:s(()=>[t(b(P))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"总交易数",value:T.value.length,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:s(()=>[t(b($e))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),t(Ie,{activeKey:$.value,"onUpdate:activeKey":e[12]||(e[12]=o=>$.value=o),type:"card",onChange:pe},{default:s(()=>[t(se,{key:"wallets"},{tab:s(()=>[t(b(P)),e[15]||(e[15]=m(" 钱包列表 ",-1))]),default:s(()=>[t(U,{style:{"margin-bottom":"16px"}},{default:s(()=>[t(a,{type:"primary",loading:q.value,onClick:W},{icon:s(()=>[t(b(K))]),default:s(()=>[e[16]||(e[16]=m(" 刷新列表 ",-1))]),_:1},8,["loading"]),t(a,{onClick:e[0]||(e[0]=o=>j.value=!0)},{icon:s(()=>[t(b(re))]),default:s(()=>[e[17]||(e[17]=m(" 创建钱包 ",-1))]),_:1})]),_:1}),q.value?(r(),_("div",qe,[t(Y,{size:"large"})])):(r(),C(ee,{key:1,columns:ce,"data-source":z.value,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:o,record:p})=>[o.key==="address"?(r(),_("span",je,y(p.address),1)):k("",!0),o.key==="name"?(r(),_("span",Ne,y(p.name||"-"),1)):k("",!0),o.key==="isDefault"?(r(),C(J,{key:2,color:p.isDefault?"green":"default"},{default:s(()=>[m(y(p.isDefault?"默认":"-"),1)]),_:2},1032,["color"])):k("",!0),o.key==="balance"?(r(),_("span",Fe,y(p.balance??"-"),1)):k("",!0),o.key==="action"?(r(),_(We,{key:4},[p.isDefault?(r(),_("span",Le,"当前默认")):(r(),C(a,{key:0,size:"small",type:"link",loading:X.value===p.address,onClick:at=>ye(p.address)},{default:s(()=>[...e[18]||(e[18]=[m(" 设为默认 ",-1)])]),_:1},8,["loading","onClick"]))],64)):k("",!0)]),emptyText:s(()=>[t(Z,{description:"暂无钱包,点击「创建钱包」添加"})]),_:1},8,["data-source","pagination"])),t(ae,{open:j.value,"onUpdate:open":e[2]||(e[2]=o=>j.value=o),title:"创建钱包","confirm-loading":G.value,onOk:me,"ok-text":"创建","cancel-text":"取消"},{default:s(()=>[t(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[t(h,{label:"钱包名称",required:""},{default:s(()=>[t(O,{value:S.value,"onUpdate:value":e[1]||(e[1]=o=>S.value=o),placeholder:"请输入钱包名称"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),t(se,{key:"assets"},{tab:s(()=>[t(b(P)),e[19]||(e[19]=m(" 资产管理 ",-1))]),default:s(()=>[t(U,{style:{"margin-bottom":"16px"}},{default:s(()=>[t(a,{type:"primary",loading:N.value,onClick:L},{icon:s(()=>[t(b(K))]),default:s(()=>[e[20]||(e[20]=m(" 刷新资产 ",-1))]),_:1},8,["loading"]),t(a,{onClick:e[3]||(e[3]=o=>F.value=!0)},{icon:s(()=>[t(b(re))]),default:s(()=>[e[21]||(e[21]=m(" 注册资产 ",-1))]),_:1})]),_:1}),N.value?(r(),_("div",Me,[t(Y,{size:"large"})])):(r(),C(ee,{key:1,columns:ve,"data-source":I.value,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:o,record:p})=>[o.key==="name"?(r(),_("span",Be,y(p.name),1)):k("",!0),o.key==="type"?(r(),C(J,{key:1,color:_e(p.type)},{default:s(()=>[m(y(p.type),1)]),_:2},1032,["color"])):k("",!0),o.key==="description"?(r(),_("span",He,y(p.description||"-"),1)):k("",!0),o.key==="address"?(r(),_("span",Ve,y(p.address||"-"),1)):k("",!0)]),emptyText:s(()=>[t(Z,{description:"暂无资产,点击「注册资产」添加"})]),_:1},8,["data-source","pagination"])),t(ae,{open:F.value,"onUpdate:open":e[7]||(e[7]=o=>F.value=o),title:"注册资产","confirm-loading":Q.value,onOk:ke,"ok-text":"注册","cancel-text":"取消"},{default:s(()=>[t(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[t(h,{label:"资产名称",required:""},{default:s(()=>[t(O,{value:g.name,"onUpdate:value":e[4]||(e[4]=o=>g.name=o),placeholder:"请输入资产名称"},null,8,["value"])]),_:1}),t(h,{label:"资产类型",required:""},{default:s(()=>[t(Ae,{value:g.type,"onUpdate:value":e[5]||(e[5]=o=>g.type=o),placeholder:"请选择类型"},{default:s(()=>[t(le,{value:"token"},{default:s(()=>[...e[22]||(e[22]=[m("Token",-1)])]),_:1}),t(le,{value:"nft"},{default:s(()=>[...e[23]||(e[23]=[m("NFT",-1)])]),_:1}),t(le,{value:"data"},{default:s(()=>[...e[24]||(e[24]=[m("Data",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),t(h,{label:"描述"},{default:s(()=>[t(O,{value:g.description,"onUpdate:value":e[6]||(e[6]=o=>g.description=o),placeholder:"资产描述(可选)"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),t(se,{key:"transfer"},{tab:s(()=>[t(b(ie)),e[25]||(e[25]=m(" 转账 ",-1))]),default:s(()=>[t(V,{gutter:[24,24]},{default:s(()=>[t(d,{xs:24,md:12},{default:s(()=>[t(n,{title:"发起转账",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(te,{"label-col":{span:6},"wrapper-col":{span:18}},{default:s(()=>[t(h,{label:"资产 ID",required:""},{default:s(()=>[t(O,{value:c.assetId,"onUpdate:value":e[8]||(e[8]=o=>c.assetId=o),placeholder:"请输入资产 ID"},null,8,["value"])]),_:1}),t(h,{label:"目标地址",required:""},{default:s(()=>[t(O,{value:c.toAddress,"onUpdate:value":e[9]||(e[9]=o=>c.toAddress=o),placeholder:"请输入接收方地址"},null,8,["value"])]),_:1}),t(h,{label:"数量",required:""},{default:s(()=>[t(Ce,{value:c.amount,"onUpdate:value":e[10]||(e[10]=o=>c.amount=o),min:0,step:.01,placeholder:"转账数量",style:{width:"100%"}},null,8,["value"])]),_:1}),t(h,{"wrapper-col":{offset:6,span:18}},{default:s(()=>[t(a,{type:"primary",loading:M.value,disabled:!c.assetId.trim()||!c.toAddress.trim()||!c.amount,onClick:xe},{icon:s(()=>[t(b(ie))]),default:s(()=>[e[26]||(e[26]=m(" 确认转账 ",-1))]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),w.value?(r(),_("div",Je,[t(J,{color:w.value.success?"green":"red"},{default:s(()=>[m(y(w.value.success?"成功":"失败"),1)]),_:1},8,["color"]),x("pre",Ke,y(w.value.output),1)])):k("",!0)]),_:1})]),_:1}),t(d,{xs:24,md:12},{default:s(()=>[t(n,{title:"交易历史",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[t(a,{size:"small",loading:B.value,onClick:H},{icon:s(()=>[t(b(K))]),_:1},8,["loading"])]),default:s(()=>[B.value?(r(),_("div",Pe,[t(Y)])):(r(),C(ee,{key:1,columns:be,"data-source":T.value,pagination:{pageSize:10,showTotal:o=>`共 ${o} 条`,size:"small"},size:"small","row-class-name":()=>"wallet-row"},{bodyCell:s(({column:o,record:p})=>[o.key==="time"?(r(),_("span",Re,y(p.time),1)):k("",!0),o.key==="type"?(r(),C(J,{key:1,color:p.type==="send"?"orange":"green"},{default:s(()=>[m(y(p.type),1)]),_:2},1032,["color"])):k("",!0),o.key==="amount"?(r(),_("span",Ee,y(p.amount),1)):k("",!0),o.key==="to"?(r(),_("span",Ge,y(p.to),1)):k("",!0)]),emptyText:s(()=>[t(Z,{description:"暂无交易记录"})]),_:1},8,["data-source","pagination"]))]),_:1})]),_:1})]),_:1}),t(ae,{open:D.value,"onUpdate:open":e[11]||(e[11]=o=>D.value=o),title:"确认转账","confirm-loading":M.value,onOk:we,"ok-text":"确认","cancel-text":"取消","ok-type":"primary"},{default:s(()=>[x("div",Xe,[e[27]||(e[27]=x("p",{style:{color:"var(--text-primary)"}},"请确认以下转账信息:",-1)),t(ze,{column:1,bordered:"",size:"small",style:{"margin-top":"12px"}},{default:s(()=>[t(oe,{label:"资产 ID"},{default:s(()=>[x("span",Qe,y(c.assetId),1)]),_:1}),t(oe,{label:"目标地址"},{default:s(()=>[x("span",Ye,y(c.toAddress),1)]),_:1}),t(oe,{label:"数量"},{default:s(()=>[x("span",Ze,y(c.amount),1)]),_:1})]),_:1})])]),_:1},8,["open","confirm-loading"])]),_:1})]),_:1},8,["activeKey"])])}}},mt=Te(et,[["__scopeId","data-v-01e6c0f1"]]);export{mt as default};
1
+ import{u as De}from"./ws-BTS8ehTm.js";import{_ as Te}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as v}from"./index-36fB-tdr.js";import{r as K,l as E,a7 as $e,Y as re,E as ie}from"./icons-DEoqYzGZ.js";import{l as Se,F as _,D as x,c as t,x as s,r as f,q as u,v as r,J as m,u as b,m as C,I as y,G as k,H as We,j as Ue,a as de}from"./vendor-aH7YaPZi.js";import"./index-BPzN5a2A.js";import"./useConfigInject-DIr4olCu.js";import"./transition-B3-w1SVL.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.js";import"./index-U4Zd5IK6.js";const Oe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},je={key:0,style:{"text-align":"center",padding:"60px"}},qe={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Ne={key:1,style:{color:"var(--text-primary)"}},Fe={key:3,style:{color:"#52c41a","font-family":"monospace"}},Le={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},Me={key:0,style:{"text-align":"center",padding:"60px"}},Be={key:0,style:{color:"#e0e0e0"}},He={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Ve={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"12px"}},Je={key:0,style:{"margin-top":"8px"}},Ke={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},Ee={key:0,style:{"text-align":"center",padding:"30px"}},Pe={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Re={key:2,style:{color:"#e0e0e0","font-family":"monospace"}},Ge={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},Ye={style:{"margin-top":"16px"}},Qe={style:{"font-family":"monospace",color:"#ccc"}},Xe={style:{"font-family":"monospace",color:"#ccc"}},Ze={style:{"font-family":"monospace",color:"#52c41a"}},et={__name:"Wallet",setup(tt){const A=De(),$=f("wallets"),P=f(!1);function R(l){try{return JSON.parse(l)}catch{return null}}async function ue(){P.value=!0;try{$.value==="wallets"?await W():$.value==="assets"?await L():$.value==="transfer"&&await H()}finally{P.value=!1}}function pe(l){l==="assets"&&I.value.length===0&&L(),l==="transfer"&&T.value.length===0&&H()}const j=f(!1),G=f(!1),Y=f(""),z=f([]),q=f(!1),S=f(""),ce=[{title:"地址",key:"address",dataIndex:"address",ellipsis:!0},{title:"名称",key:"name",dataIndex:"name",width:"150px"},{title:"默认",key:"isDefault",width:"80px"},{title:"余额",key:"balance",dataIndex:"balance",width:"120px"},{title:"操作",key:"action",width:"100px"}],ne=Ue(()=>{const l=z.value.find(a=>a.isDefault);if(!l||!l.address)return"未设置";const e=l.address;return e.length>16?e.slice(0,8)+"..."+e.slice(-6):e});async function W(){j.value=!0;try{const{output:l}=await A.execute("wallet list --json",15e3),e=R(l);e&&Array.isArray(e)?z.value=e.map((a,i)=>({key:a.address||a.id||i,address:a.address||a.id||"-",name:a.name||a.label||"-",isDefault:a.isDefault||a.default||!1,balance:a.balance??"-"})):e&&e.wallets&&Array.isArray(e.wallets)?z.value=e.wallets.map((a,i)=>({key:a.address||a.id||i,address:a.address||a.id||"-",name:a.name||a.label||"-",isDefault:a.isDefault||a.default||!1,balance:a.balance??"-"})):z.value=fe(l)}catch(l){v.error("加载钱包列表失败: "+l.message)}finally{j.value=!1}}function fe(l){const e=[],a=l.split(`
2
+ `);for(const i of a){const n=i.trim();if(!n||n.startsWith("─")||n.match(/^\d+ wallet/i))continue;const d=n.match(/(0x[a-fA-F0-9]{8,})/);if(d){const V=/default|默认|\*/.test(n),U=n.match(/name[:\s]+(\S+)/i);e.push({key:d[1],address:d[1],name:U?U[1]:"-",isDefault:V,balance:"-"})}}return e}async function me(){if(!S.value.trim()){v.warning("请输入钱包名称");return}G.value=!0;try{const{output:l}=await A.execute(`wallet create --name "${S.value.trim()}" --json`,2e4);l.includes("error")||l.includes("失败")?v.error("创建失败: "+l.slice(0,120)):(v.success("钱包已创建"),q.value=!1,S.value="",await W())}catch(l){v.error("创建失败: "+l.message)}finally{G.value=!1}}async function ye(l){Y.value=l;try{const{output:e}=await A.execute(`wallet set-default ${l}`,15e3);e.includes("error")||e.includes("失败")?v.error("设置失败: "+e.slice(0,120)):(v.success("已设为默认钱包"),await W())}catch(e){v.error("设置失败: "+e.message)}finally{Y.value=""}}const N=f(!1),Q=f(!1),I=f([]),F=f(!1),g=de({name:"",type:"token",description:""}),ve=[{title:"名称",key:"name",dataIndex:"name",width:"180px"},{title:"类型",key:"type",dataIndex:"type",width:"100px"},{title:"描述",key:"description",dataIndex:"description",ellipsis:!0},{title:"地址",key:"address",dataIndex:"address",ellipsis:!0}];function _e(l){return{token:"blue",nft:"purple",data:"cyan"}[(l||"").toLowerCase()]||"default"}async function L(){N.value=!0;try{const{output:l}=await A.execute("wallet assets --json",15e3),e=R(l);e&&Array.isArray(e)?I.value=e.map((a,i)=>({key:a.id||a.address||i,name:a.name||"-",type:a.type||"-",description:a.description||"",address:a.address||a.id||"-"})):e&&e.assets&&Array.isArray(e.assets)?I.value=e.assets.map((a,i)=>({key:a.id||a.address||i,name:a.name||"-",type:a.type||"-",description:a.description||"",address:a.address||a.id||"-"})):I.value=ge(l)}catch(l){v.error("加载资产列表失败: "+l.message)}finally{N.value=!1}}function ge(l){const e=[],a=l.split(`
3
+ `);for(const i of a){const n=i.trim();if(!n||n.startsWith("─")||n.match(/^\d+ asset/i))continue;const d=n.split(/\s*[|│]\s*/);d.length>=2&&e.push({key:e.length,name:d[0]||"-",type:d[1]||"-",description:d[2]||"",address:d[3]||"-"})}return e}async function ke(){if(!g.name.trim()){v.warning("请输入资产名称");return}Q.value=!0;try{let l=`wallet asset "${g.name.trim()}" --type ${g.type}`;g.description.trim()&&(l+=` --description "${g.description.trim().replace(/"/g,'\\"')}"`),l+=" --json";const{output:e}=await A.execute(l,2e4);e.includes("error")||e.includes("失败")?v.error("注册失败: "+e.slice(0,120)):(v.success("资产已注册"),F.value=!1,g.name="",g.type="token",g.description="",await L())}catch(l){v.error("注册失败: "+l.message)}finally{Q.value=!1}}const M=f(!1),B=f(!1),D=f(!1),w=f(null),T=f([]),c=de({assetId:"",toAddress:"",amount:null}),be=[{title:"时间",key:"time",dataIndex:"time",width:"150px"},{title:"类型",key:"type",dataIndex:"type",width:"80px"},{title:"数量",key:"amount",dataIndex:"amount",width:"100px"},{title:"目标",key:"to",dataIndex:"to",ellipsis:!0}];function xe(){if(!c.assetId.trim()||!c.toAddress.trim()||!c.amount){v.warning("请填写完整的转账信息");return}D.value=!0}async function we(){M.value=!0,w.value=null;try{const l=`wallet transfer ${c.assetId.trim()} ${c.toAddress.trim()} --amount ${c.amount}`,{output:e,exitCode:a}=await A.execute(l,3e4);w.value={success:a===0&&!e.includes("error")&&!e.includes("失败"),output:e||"转账已提交"},w.value.success?(v.success("转账成功"),D.value=!1,await H()):D.value=!1}catch(l){w.value={success:!1,output:"转账失败: "+l.message},D.value=!1}finally{M.value=!1}}async function H(){B.value=!0;try{const{output:l}=await A.execute("wallet history --limit 20 --json",15e3),e=R(l);e&&Array.isArray(e)?T.value=e.map((a,i)=>({key:a.id||a.hash||i,time:a.time||a.timestamp||a.createdAt||"-",type:a.type||a.direction||"-",amount:a.amount??"-",to:a.to||a.recipient||"-"})):e&&e.history&&Array.isArray(e.history)?T.value=e.history.map((a,i)=>({key:a.id||a.hash||i,time:a.time||a.timestamp||a.createdAt||"-",type:a.type||a.direction||"-",amount:a.amount??"-",to:a.to||a.recipient||"-"})):T.value=he(l)}catch(l){v.error("加载交易历史失败: "+l.message)}finally{B.value=!1}}function he(l){const e=[],a=l.split(`
4
+ `);for(const i of a){const n=i.trim();if(!n||n.startsWith("─")||n.match(/^\d+ transaction/i))continue;const d=n.split(/\s*[|│]\s*/);d.length>=3&&e.push({key:e.length,time:d[0]||"-",type:d[1]||"-",amount:d[2]||"-",to:d[3]||"-"})}return e}return Se(()=>{W()}),(l,e)=>{const a=u("a-button"),i=u("a-statistic"),n=u("a-card"),d=u("a-col"),V=u("a-row"),U=u("a-space"),X=u("a-spin"),J=u("a-tag"),Z=u("a-empty"),ee=u("a-table"),O=u("a-input"),h=u("a-form-item"),te=u("a-form"),ae=u("a-modal"),se=u("a-tab-pane"),le=u("a-select-option"),Ae=u("a-select"),Ce=u("a-input-number"),oe=u("a-descriptions-item"),ze=u("a-descriptions"),Ie=u("a-tabs");return r(),_("div",null,[x("div",Oe,[e[14]||(e[14]=x("div",null,[x("h2",{class:"page-title"},"钱包管理"),x("p",{class:"page-sub"},"资产 / 转账 / 历史")],-1)),t(a,{type:"primary",ghost:"",loading:P.value,onClick:ue},{icon:s(()=>[t(b(K))]),default:s(()=>[e[13]||(e[13]=m(" 刷新 ",-1))]),_:1},8,["loading"])]),t(V,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"钱包数量",value:z.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:s(()=>[t(b(E))]),_:1},8,["value"])]),_:1})]),_:1}),t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"总资产数",value:I.value.length,"value-style":{color:"#52c41a",fontSize:"20px"}},null,8,["value"])]),_:1})]),_:1}),t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"默认钱包",value:ne.value,"value-style":{color:ne.value!=="未设置"?"#faad14":"#888",fontSize:"14px",fontFamily:"monospace"}},{prefix:s(()=>[t(b(E))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),t(d,{xs:24,sm:12,lg:6},{default:s(()=>[t(n,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(i,{title:"总交易数",value:T.value.length,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:s(()=>[t(b($e))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),t(Ie,{activeKey:$.value,"onUpdate:activeKey":e[12]||(e[12]=o=>$.value=o),type:"card",onChange:pe},{default:s(()=>[t(se,{key:"wallets"},{tab:s(()=>[t(b(E)),e[15]||(e[15]=m(" 钱包列表 ",-1))]),default:s(()=>[t(U,{style:{"margin-bottom":"16px"}},{default:s(()=>[t(a,{type:"primary",loading:j.value,onClick:W},{icon:s(()=>[t(b(K))]),default:s(()=>[e[16]||(e[16]=m(" 刷新列表 ",-1))]),_:1},8,["loading"]),t(a,{onClick:e[0]||(e[0]=o=>q.value=!0)},{icon:s(()=>[t(b(re))]),default:s(()=>[e[17]||(e[17]=m(" 创建钱包 ",-1))]),_:1})]),_:1}),j.value?(r(),_("div",je,[t(X,{size:"large"})])):(r(),C(ee,{key:1,columns:ce,"data-source":z.value,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:o,record:p})=>[o.key==="address"?(r(),_("span",qe,y(p.address),1)):k("",!0),o.key==="name"?(r(),_("span",Ne,y(p.name||"-"),1)):k("",!0),o.key==="isDefault"?(r(),C(J,{key:2,color:p.isDefault?"green":"default"},{default:s(()=>[m(y(p.isDefault?"默认":"-"),1)]),_:2},1032,["color"])):k("",!0),o.key==="balance"?(r(),_("span",Fe,y(p.balance??"-"),1)):k("",!0),o.key==="action"?(r(),_(We,{key:4},[p.isDefault?(r(),_("span",Le,"当前默认")):(r(),C(a,{key:0,size:"small",type:"link",loading:Y.value===p.address,onClick:at=>ye(p.address)},{default:s(()=>[...e[18]||(e[18]=[m(" 设为默认 ",-1)])]),_:1},8,["loading","onClick"]))],64)):k("",!0)]),emptyText:s(()=>[t(Z,{description:"暂无钱包,点击「创建钱包」添加"})]),_:1},8,["data-source","pagination"])),t(ae,{open:q.value,"onUpdate:open":e[2]||(e[2]=o=>q.value=o),title:"创建钱包","confirm-loading":G.value,onOk:me,"ok-text":"创建","cancel-text":"取消"},{default:s(()=>[t(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[t(h,{label:"钱包名称",required:""},{default:s(()=>[t(O,{value:S.value,"onUpdate:value":e[1]||(e[1]=o=>S.value=o),placeholder:"请输入钱包名称"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),t(se,{key:"assets"},{tab:s(()=>[t(b(E)),e[19]||(e[19]=m(" 资产管理 ",-1))]),default:s(()=>[t(U,{style:{"margin-bottom":"16px"}},{default:s(()=>[t(a,{type:"primary",loading:N.value,onClick:L},{icon:s(()=>[t(b(K))]),default:s(()=>[e[20]||(e[20]=m(" 刷新资产 ",-1))]),_:1},8,["loading"]),t(a,{onClick:e[3]||(e[3]=o=>F.value=!0)},{icon:s(()=>[t(b(re))]),default:s(()=>[e[21]||(e[21]=m(" 注册资产 ",-1))]),_:1})]),_:1}),N.value?(r(),_("div",Me,[t(X,{size:"large"})])):(r(),C(ee,{key:1,columns:ve,"data-source":I.value,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:o,record:p})=>[o.key==="name"?(r(),_("span",Be,y(p.name),1)):k("",!0),o.key==="type"?(r(),C(J,{key:1,color:_e(p.type)},{default:s(()=>[m(y(p.type),1)]),_:2},1032,["color"])):k("",!0),o.key==="description"?(r(),_("span",He,y(p.description||"-"),1)):k("",!0),o.key==="address"?(r(),_("span",Ve,y(p.address||"-"),1)):k("",!0)]),emptyText:s(()=>[t(Z,{description:"暂无资产,点击「注册资产」添加"})]),_:1},8,["data-source","pagination"])),t(ae,{open:F.value,"onUpdate:open":e[7]||(e[7]=o=>F.value=o),title:"注册资产","confirm-loading":Q.value,onOk:ke,"ok-text":"注册","cancel-text":"取消"},{default:s(()=>[t(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[t(h,{label:"资产名称",required:""},{default:s(()=>[t(O,{value:g.name,"onUpdate:value":e[4]||(e[4]=o=>g.name=o),placeholder:"请输入资产名称"},null,8,["value"])]),_:1}),t(h,{label:"资产类型",required:""},{default:s(()=>[t(Ae,{value:g.type,"onUpdate:value":e[5]||(e[5]=o=>g.type=o),placeholder:"请选择类型"},{default:s(()=>[t(le,{value:"token"},{default:s(()=>[...e[22]||(e[22]=[m("Token",-1)])]),_:1}),t(le,{value:"nft"},{default:s(()=>[...e[23]||(e[23]=[m("NFT",-1)])]),_:1}),t(le,{value:"data"},{default:s(()=>[...e[24]||(e[24]=[m("Data",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),t(h,{label:"描述"},{default:s(()=>[t(O,{value:g.description,"onUpdate:value":e[6]||(e[6]=o=>g.description=o),placeholder:"资产描述(可选)"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),t(se,{key:"transfer"},{tab:s(()=>[t(b(ie)),e[25]||(e[25]=m(" 转账 ",-1))]),default:s(()=>[t(V,{gutter:[24,24]},{default:s(()=>[t(d,{xs:24,md:12},{default:s(()=>[t(n,{title:"发起转账",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[t(te,{"label-col":{span:6},"wrapper-col":{span:18}},{default:s(()=>[t(h,{label:"资产 ID",required:""},{default:s(()=>[t(O,{value:c.assetId,"onUpdate:value":e[8]||(e[8]=o=>c.assetId=o),placeholder:"请输入资产 ID"},null,8,["value"])]),_:1}),t(h,{label:"目标地址",required:""},{default:s(()=>[t(O,{value:c.toAddress,"onUpdate:value":e[9]||(e[9]=o=>c.toAddress=o),placeholder:"请输入接收方地址"},null,8,["value"])]),_:1}),t(h,{label:"数量",required:""},{default:s(()=>[t(Ce,{value:c.amount,"onUpdate:value":e[10]||(e[10]=o=>c.amount=o),min:0,step:.01,placeholder:"转账数量",style:{width:"100%"}},null,8,["value"])]),_:1}),t(h,{"wrapper-col":{offset:6,span:18}},{default:s(()=>[t(a,{type:"primary",loading:M.value,disabled:!c.assetId.trim()||!c.toAddress.trim()||!c.amount,onClick:xe},{icon:s(()=>[t(b(ie))]),default:s(()=>[e[26]||(e[26]=m(" 确认转账 ",-1))]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),w.value?(r(),_("div",Je,[t(J,{color:w.value.success?"green":"red"},{default:s(()=>[m(y(w.value.success?"成功":"失败"),1)]),_:1},8,["color"]),x("pre",Ke,y(w.value.output),1)])):k("",!0)]),_:1})]),_:1}),t(d,{xs:24,md:12},{default:s(()=>[t(n,{title:"交易历史",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[t(a,{size:"small",loading:B.value,onClick:H},{icon:s(()=>[t(b(K))]),_:1},8,["loading"])]),default:s(()=>[B.value?(r(),_("div",Ee,[t(X)])):(r(),C(ee,{key:1,columns:be,"data-source":T.value,pagination:{pageSize:10,showTotal:o=>`共 ${o} 条`,size:"small"},size:"small","row-class-name":()=>"wallet-row"},{bodyCell:s(({column:o,record:p})=>[o.key==="time"?(r(),_("span",Pe,y(p.time),1)):k("",!0),o.key==="type"?(r(),C(J,{key:1,color:p.type==="send"?"orange":"green"},{default:s(()=>[m(y(p.type),1)]),_:2},1032,["color"])):k("",!0),o.key==="amount"?(r(),_("span",Re,y(p.amount),1)):k("",!0),o.key==="to"?(r(),_("span",Ge,y(p.to),1)):k("",!0)]),emptyText:s(()=>[t(Z,{description:"暂无交易记录"})]),_:1},8,["data-source","pagination"]))]),_:1})]),_:1})]),_:1}),t(ae,{open:D.value,"onUpdate:open":e[11]||(e[11]=o=>D.value=o),title:"确认转账","confirm-loading":M.value,onOk:we,"ok-text":"确认","cancel-text":"取消","ok-type":"primary"},{default:s(()=>[x("div",Ye,[e[27]||(e[27]=x("p",{style:{color:"var(--text-primary)"}},"请确认以下转账信息:",-1)),t(ze,{column:1,bordered:"",size:"small",style:{"margin-top":"12px"}},{default:s(()=>[t(oe,{label:"资产 ID"},{default:s(()=>[x("span",Qe,y(c.assetId),1)]),_:1}),t(oe,{label:"目标地址"},{default:s(()=>[x("span",Xe,y(c.toAddress),1)]),_:1}),t(oe,{label:"数量"},{default:s(()=>[x("span",Ze,y(c.amount),1)]),_:1})]),_:1})])]),_:1},8,["open","confirm-loading"])]),_:1})]),_:1},8,["activeKey"])])}}},mt=Te(et,[["__scopeId","data-v-01e6c0f1"]]);export{mt as default};
@@ -1,5 +1,5 @@
1
- import{u as Ie}from"./ws-BTS8ehTm.js";import{_ as Oe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as u}from"./index-CjOtB4wg.js";import{q as le,X as Te,aa as ze,K as oe,ad as Le,L as ne}from"./icons-DzieZiVh.js";import{l as $e,F as y,D as g,c as a,x as l,r,q as s,v as i,J as c,u as k,m as I,I as m,G as h,H as j,L as se}from"./vendor-aH7YaPZi.js";import"./index-4C1c4hkZ.js";import"./useConfigInject-C2E3Qsop.js";import"./transition-exl3w1iN.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.js";import"./index-U4Zd5IK6.js";const De={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Pe={key:0,style:{"text-align":"center",padding:"60px"}},Ne=["title"],We={key:1,style:{color:"var(--text-primary)"}},Re={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},je={key:4,style:{color:"var(--text-secondary)","font-size":"12px"}},Ke={key:0,style:{"text-align":"center",padding:"60px"}},qe={style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Me={style:{color:"var(--text-secondary)","font-size":"12px"}},Be={style:{"margin-top":"16px"}},Ve={key:0,style:{"text-align":"center",padding:"60px"}},Fe={style:{display:"flex","align-items":"center",gap:"16px","margin-bottom":"16px"}},Je={key:0,style:{"margin-top":"16px"}},Ee={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},Ge={key:0,style:{"margin-top":"16px"}},He={style:{background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}},Xe={__name:"WebAuthn",setup(Ye){const x=Ie(),O=r("webauthn"),K=r(!1);async function re(){K.value=!0;try{O.value==="webauthn"?await P():O.value==="sso"?await E():O.value==="2fa"&&await ee()}finally{K.value=!1}}function ie(t){t==="sso"&&!V.value&&E(),t==="2fa"&&!H.value&&ee()}function T(t){try{return JSON.parse(t)}catch{return null}}function ue(t){return t?t.length<=16?t:t.slice(0,8)+"..."+t.slice(-8):"-"}const q=r(!1),M=r(!1),L=r([]),$=r(!1),D=r(""),de=[{title:"ID",key:"id",dataIndex:"id",width:"180px"},{title:"名称",key:"name",dataIndex:"name",width:"160px"},{title:"类型",key:"type",dataIndex:"type",width:"120px"},{title:"创建时间",key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:"最后使用",key:"lastUsed",dataIndex:"lastUsed",width:"180px"},{title:"操作",key:"actions",width:"100px",fixed:"right"}];async function P(){q.value=!0;try{const{output:t}=await x.execute("webauthn list --json",15e3),e=T(t);e&&Array.isArray(e)?L.value=e.map((o,f)=>({key:o.id||f,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):e&&e.credentials?L.value=e.credentials.map((o,f)=>({key:o.id||f,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):L.value=ce(t)}catch(t){u.error("加载 WebAuthn 凭证失败: "+t.message)}finally{q.value=!1}}function ce(t){const e=[],o=t.split(`
2
- `);for(const f of o){const b=f.trim();if(!b||b.startsWith("─")||b.startsWith("No "))continue;const d=b.split(/\s*[|│]\s*/);d.length>=2&&e.push({key:e.length,id:d[0]||"-",name:d[1]||"-",type:d[2]||"public-key",createdAt:d[3]||"-",lastUsed:d[4]||"-"})}return e}async function pe(){const t=D.value.trim();if(!t){u.warning("请输入凭证名称");return}M.value=!0;try{const e=t.replace(/"/g,'\\"'),{output:o}=await x.execute(`webauthn register --name "${e}" --json`,3e4);o.includes("error")||o.includes("失败")?u.error("注册失败: "+o.slice(0,120)):(u.success("WebAuthn 凭证已注册"),$.value=!1,D.value="",await P())}catch(e){u.error("注册失败: "+e.message)}finally{M.value=!1}}async function ve(t){try{const{output:e}=await x.execute(`webauthn delete "${t.id}"`,15e3);e.includes("error")||e.includes("失败")?u.error("删除失败: "+e.slice(0,120)):(u.success("凭证已删除"),await P())}catch(e){u.error("删除失败: "+e.message)}}const B=r(!1),V=r(!1),F=r(!1),N=r(!1),p=r({provider:"",clientId:"",redirectUrl:"",enabled:!1}),v=r({provider:void 0,clientId:"",clientSecret:"",issuerUrl:""}),J=r([]);async function E(){B.value=!0;try{const{output:t}=await x.execute("sso status --json",15e3),e=T(t);if(e)p.value={provider:e.provider||"",clientId:e.clientId||e.client_id||"",redirectUrl:e.redirectUrl||e.redirect_url||e.callbackUrl||"",enabled:e.enabled||e.active||!1};else{const o=t.split(`
3
- `);for(const f of o){const b=f.trim().match(/^(.+?)\s*[:=:]\s*(.+)$/);if(b){const d=b[1].toLowerCase(),C=b[2].trim();d.includes("provider")?p.value.provider=C:d.includes("client")&&d.includes("id")?p.value.clientId=C:d.includes("redirect")||d.includes("callback")?p.value.redirectUrl=C:(d.includes("status")||d.includes("enabled"))&&(p.value.enabled=/true|enabled|active|已启用/i.test(C))}}}J.value=[{label:"提供商",value:p.value.provider||"未配置",color:p.value.provider?"#1677ff":"#999"},{label:"状态",value:p.value.enabled?"已启用":"未启用",color:p.value.enabled?"#52c41a":"#faad14"}],V.value=!0}catch{p.value={provider:"",clientId:"",redirectUrl:"",enabled:!1},J.value=[{label:"提供商",value:"未配置",color:"#999"},{label:"状态",value:"未启用",color:"#faad14"}],V.value=!0}finally{B.value=!1}}async function fe(){if(!v.value.provider){u.warning("请选择 SSO 提供商");return}if(!v.value.clientId.trim()){u.warning("请输入 Client ID");return}F.value=!0;try{const t=[`config set sso.provider ${v.value.provider}`,`config set sso.clientId ${v.value.clientId.trim()}`];v.value.clientSecret.trim()&&t.push(`config set sso.clientSecret ${v.value.clientSecret.trim()}`),v.value.issuerUrl.trim()&&t.push(`config set sso.issuerUrl ${v.value.issuerUrl.trim()}`);for(const e of t)await x.execute(e,1e4);u.success("SSO 配置已保存"),N.value=!1,await E()}catch(t){u.error("保存失败: "+t.message)}finally{F.value=!1}}const G=r(!1),H=r(!1),w=r(!1),U=r(!1),A=r(""),X=r(!1),S=r([]);async function ee(){G.value=!0;try{const{output:t}=await x.execute("auth 2fa status --json",15e3),e=T(t);e?w.value=e.enabled||e.active||!1:w.value=/enabled|已启用|active/i.test(t),H.value=!0}catch{w.value=!1,H.value=!0}finally{G.value=!1}}async function ye(){U.value=!0,A.value="";try{const{output:t}=await x.execute("auth 2fa enable --type totp --json",2e4);if(t.includes("error")||t.includes("失败"))u.error("启用失败: "+t.slice(0,120));else{const e=T(t);e&&e.secret?A.value=`TOTP Secret: ${e.secret}
4
- OTP Auth URL: ${e.otpAuthUrl||e.uri||""}`:A.value=t,w.value=!0,u.success("TOTP 已启用")}}catch(t){u.error("启用失败: "+t.message)}finally{U.value=!1}}async function me(){U.value=!0,A.value="";try{const{output:t}=await x.execute("auth 2fa disable",15e3);t.includes("error")||t.includes("失败")?u.error("禁用失败: "+t.slice(0,120)):(w.value=!1,u.success("双因素认证已禁用"))}catch(t){u.error("禁用失败: "+t.message)}finally{U.value=!1}}async function be(){X.value=!0,S.value=[];try{const{output:t}=await x.execute("auth 2fa recovery-codes --json",15e3),e=T(t);if(e&&Array.isArray(e.codes))S.value=e.codes;else if(e&&Array.isArray(e))S.value=e;else{const o=t.split(`
5
- `).map(f=>f.trim()).filter(f=>f&&/^[A-Za-z0-9-]{6,}$/.test(f));S.value=o.length>0?o:[t.trim()||"无法生成恢复码"]}S.value.length>0&&S.value[0]!=="无法生成恢复码"&&u.success("恢复码已生成")}catch(t){u.error("生成恢复码失败: "+t.message)}finally{X.value=!1}}return $e(()=>{P()}),(t,e)=>{const o=s("a-button"),f=s("a-space"),b=s("a-spin"),d=s("a-tag"),C=s("a-popconfirm"),ge=s("a-empty"),_e=s("a-table"),Y=s("a-input"),z=s("a-form-item"),te=s("a-form"),ae=s("a-modal"),Z=s("a-tab-pane"),xe=s("a-statistic"),W=s("a-card"),ke=s("a-col"),we=s("a-row"),R=s("a-descriptions-item"),Se=s("a-descriptions"),Q=s("a-select-option"),he=s("a-select"),Ce=s("a-input-password"),Ue=s("a-alert"),Ae=s("a-tabs");return i(),y("div",null,[g("div",De,[e[11]||(e[11]=g("div",null,[g("h2",{class:"page-title"},"认证管理"),g("p",{class:"page-sub"},"WebAuthn / SSO / 双因素认证")],-1)),a(o,{type:"primary",ghost:"",loading:K.value,onClick:re},{icon:l(()=>[a(k(le))]),default:l(()=>[e[10]||(e[10]=c(" 刷新 ",-1))]),_:1},8,["loading"])]),a(Ae,{activeKey:O.value,"onUpdate:activeKey":e[9]||(e[9]=n=>O.value=n),type:"card",onChange:ie},{default:l(()=>[a(Z,{key:"webauthn"},{tab:l(()=>[a(k(oe)),e[12]||(e[12]=c(" WebAuthn ",-1))]),default:l(()=>[a(f,{style:{"margin-bottom":"16px"}},{default:l(()=>[a(o,{type:"primary",onClick:e[0]||(e[0]=n=>$.value=!0)},{icon:l(()=>[a(k(Te))]),default:l(()=>[e[13]||(e[13]=c(" 注册新凭证 ",-1))]),_:1})]),_:1}),q.value?(i(),y("div",Pe,[a(b,{size:"large"})])):(i(),I(_e,{key:1,columns:de,"data-source":L.value,pagination:{pageSize:20,showTotal:n=>`共 ${n} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"auth-row"},{bodyCell:l(({column:n,record:_})=>[n.key==="id"?(i(),y("span",{key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"},title:_.id},m(ue(_.id)),9,Ne)):h("",!0),n.key==="name"?(i(),y("span",We,m(_.name),1)):h("",!0),n.key==="type"?(i(),I(d,{key:2,color:"blue"},{default:l(()=>[c(m(_.type||"public-key"),1)]),_:2},1024)):h("",!0),n.key==="createdAt"?(i(),y("span",Re,m(_.createdAt||"-"),1)):h("",!0),n.key==="lastUsed"?(i(),y("span",je,m(_.lastUsed||"-"),1)):h("",!0),n.key==="actions"?(i(),I(C,{key:5,title:"确定要删除此凭证吗?","ok-text":"确定","cancel-text":"取消",onConfirm:Ze=>ve(_)},{default:l(()=>[a(o,{type:"link",danger:"",size:"small"},{icon:l(()=>[a(k(ze))]),default:l(()=>[e[14]||(e[14]=c(" 删除 ",-1))]),_:1})]),_:1},8,["onConfirm"])):h("",!0)]),emptyText:l(()=>[a(ge,{description:"暂无 WebAuthn 凭证,点击「注册新凭证」添加"})]),_:1},8,["data-source","pagination"])),a(ae,{open:$.value,"onUpdate:open":e[2]||(e[2]=n=>$.value=n),title:"注册 WebAuthn 凭证","confirm-loading":M.value,onOk:pe,"ok-text":"注册","cancel-text":"取消"},{default:l(()=>[a(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(z,{label:"凭证名称",required:""},{default:l(()=>[a(Y,{value:D.value,"onUpdate:value":e[1]||(e[1]=n=>D.value=n),placeholder:"例如:YubiKey-5, TouchID"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),a(Z,{key:"sso"},{tab:l(()=>[a(k(Le)),e[15]||(e[15]=c(" SSO 配置 ",-1))]),default:l(()=>[B.value?(i(),y("div",Ke,[a(b,{size:"large"})])):(i(),y(j,{key:1},[a(we,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[(i(!0),y(j,null,se(J.value,n=>(i(),I(ke,{xs:12,sm:6,key:n.label},{default:l(()=>[a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:l(()=>[a(xe,{title:n.label,value:n.value,"value-style":{color:n.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:"当前 SSO 配置"},{default:l(()=>[a(Se,{column:{xs:1,sm:2},bordered:"",size:"small",style:{background:"var(--bg-card)"}},{default:l(()=>[a(R,{label:"提供商"},{default:l(()=>[a(d,{color:p.value.provider?"blue":"default"},{default:l(()=>[c(m(p.value.provider||"未配置"),1)]),_:1},8,["color"])]),_:1}),a(R,{label:"Client ID"},{default:l(()=>[g("span",qe,m(p.value.clientId||"-"),1)]),_:1}),a(R,{label:"Redirect URL"},{default:l(()=>[g("span",Me,m(p.value.redirectUrl||"-"),1)]),_:1}),a(R,{label:"状态"},{default:l(()=>[a(d,{color:p.value.enabled?"green":"default"},{default:l(()=>[c(m(p.value.enabled?"已启用":"未启用"),1)]),_:1},8,["color"])]),_:1})]),_:1}),g("div",Be,[a(o,{type:"primary",onClick:e[3]||(e[3]=n=>N.value=!0)},{icon:l(()=>[a(k(oe))]),default:l(()=>[e[16]||(e[16]=c(" 配置 SSO ",-1))]),_:1})])]),_:1})],64)),a(ae,{open:N.value,"onUpdate:open":e[8]||(e[8]=n=>N.value=n),title:"配置 SSO","confirm-loading":F.value,onOk:fe,"ok-text":"保存","cancel-text":"取消",width:"520px"},{default:l(()=>[a(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(z,{label:"提供商",required:""},{default:l(()=>[a(he,{value:v.value.provider,"onUpdate:value":e[4]||(e[4]=n=>v.value.provider=n),placeholder:"选择 SSO 提供商"},{default:l(()=>[a(Q,{value:"OIDC"},{default:l(()=>[...e[17]||(e[17]=[c("OIDC",-1)])]),_:1}),a(Q,{value:"SAML"},{default:l(()=>[...e[18]||(e[18]=[c("SAML",-1)])]),_:1}),a(Q,{value:"LDAP"},{default:l(()=>[...e[19]||(e[19]=[c("LDAP",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),a(z,{label:"Client ID",required:""},{default:l(()=>[a(Y,{value:v.value.clientId,"onUpdate:value":e[5]||(e[5]=n=>v.value.clientId=n),placeholder:"输入 Client ID"},null,8,["value"])]),_:1}),a(z,{label:"Client Secret"},{default:l(()=>[a(Ce,{value:v.value.clientSecret,"onUpdate:value":e[6]||(e[6]=n=>v.value.clientSecret=n),placeholder:"输入 Client Secret"},null,8,["value"])]),_:1}),a(z,{label:"Issuer URL"},{default:l(()=>[a(Y,{value:v.value.issuerUrl,"onUpdate:value":e[7]||(e[7]=n=>v.value.issuerUrl=n),placeholder:"https://sso.example.com"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),a(Z,{key:"2fa"},{tab:l(()=>[a(k(ne)),e[20]||(e[20]=c(" 双因素认证 ",-1))]),default:l(()=>[G.value?(i(),y("div",Ve,[a(b,{size:"large"})])):(i(),y(j,{key:1},[a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},title:"TOTP 双因素认证"},{default:l(()=>[g("div",Fe,[e[21]||(e[21]=g("span",{style:{color:"var(--text-primary)","font-size":"14px"}},"状态:",-1)),a(d,{color:w.value?"green":"default",style:{"font-size":"13px"}},{default:l(()=>[c(m(w.value?"已启用":"未启用"),1)]),_:1},8,["color"])]),a(f,null,{default:l(()=>[w.value?(i(),I(C,{key:1,title:"确定要禁用双因素认证吗?这会降低账户安全性。","ok-text":"确定禁用","cancel-text":"取消",onConfirm:me},{default:l(()=>[a(o,{danger:"",loading:U.value},{default:l(()=>[...e[23]||(e[23]=[c(" 禁用 ",-1)])]),_:1},8,["loading"])]),_:1})):(i(),I(o,{key:0,type:"primary",loading:U.value,onClick:ye},{icon:l(()=>[a(k(ne))]),default:l(()=>[e[22]||(e[22]=c(" 启用 TOTP ",-1))]),_:1},8,["loading"]))]),_:1}),A.value?(i(),y("div",Je,[g("pre",Ee,m(A.value),1)])):h("",!0)]),_:1}),a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:"恢复码"},{default:l(()=>[e[25]||(e[25]=g("p",{style:{color:"var(--text-secondary)","margin-bottom":"12px"}}," 恢复码可在丢失 TOTP 设备时用于登录。请妥善保管。 ",-1)),a(o,{loading:X.value,onClick:be},{icon:l(()=>[a(k(le))]),default:l(()=>[e[24]||(e[24]=c(" 生成恢复码 ",-1))]),_:1},8,["loading"]),S.value.length>0?(i(),y("div",Ge,[a(Ue,{type:"warning","show-icon":"",style:{"margin-bottom":"12px"},message:"请立即保存这些恢复码,关闭后将无法再次查看。"}),g("div",He,[(i(!0),y(j,null,se(S.value,(n,_)=>(i(),y("div",{key:_,style:{"font-family":"monospace","font-size":"14px",color:"#e0e0e0",padding:"4px 0","letter-spacing":"2px"}},m(_+1)+". "+m(n),1))),128))])])):h("",!0)]),_:1})],64))]),_:1})]),_:1},8,["activeKey"])])}}},dt=Oe(Xe,[["__scopeId","data-v-a4bec262"]]);export{dt as default};
1
+ import{u as Ie}from"./ws-BTS8ehTm.js";import{_ as Oe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as u}from"./index-36fB-tdr.js";import{r as le,Y as Te,ac as ze,K as oe,af as Le,L as ne}from"./icons-DEoqYzGZ.js";import{l as $e,F as y,D as g,c as a,x as l,r,q as s,v as i,J as c,u as k,m as I,I as m,G as h,H as j,L as se}from"./vendor-aH7YaPZi.js";import"./index-BPzN5a2A.js";import"./useConfigInject-DIr4olCu.js";import"./transition-B3-w1SVL.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.js";import"./index-U4Zd5IK6.js";const De={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Pe={key:0,style:{"text-align":"center",padding:"60px"}},Ne=["title"],We={key:1,style:{color:"var(--text-primary)"}},Re={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},je={key:4,style:{color:"var(--text-secondary)","font-size":"12px"}},Ke={key:0,style:{"text-align":"center",padding:"60px"}},Me={style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},qe={style:{color:"var(--text-secondary)","font-size":"12px"}},Be={style:{"margin-top":"16px"}},Ve={key:0,style:{"text-align":"center",padding:"60px"}},Fe={style:{display:"flex","align-items":"center",gap:"16px","margin-bottom":"16px"}},Je={key:0,style:{"margin-top":"16px"}},Ee={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},Ye={key:0,style:{"margin-top":"16px"}},Ge={style:{background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}},He={__name:"WebAuthn",setup(Ze){const x=Ie(),O=r("webauthn"),K=r(!1);async function re(){K.value=!0;try{O.value==="webauthn"?await P():O.value==="sso"?await E():O.value==="2fa"&&await ee()}finally{K.value=!1}}function ie(t){t==="sso"&&!V.value&&E(),t==="2fa"&&!G.value&&ee()}function T(t){try{return JSON.parse(t)}catch{return null}}function ue(t){return t?t.length<=16?t:t.slice(0,8)+"..."+t.slice(-8):"-"}const M=r(!1),q=r(!1),L=r([]),$=r(!1),D=r(""),de=[{title:"ID",key:"id",dataIndex:"id",width:"180px"},{title:"名称",key:"name",dataIndex:"name",width:"160px"},{title:"类型",key:"type",dataIndex:"type",width:"120px"},{title:"创建时间",key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:"最后使用",key:"lastUsed",dataIndex:"lastUsed",width:"180px"},{title:"操作",key:"actions",width:"100px",fixed:"right"}];async function P(){M.value=!0;try{const{output:t}=await x.execute("webauthn list --json",15e3),e=T(t);e&&Array.isArray(e)?L.value=e.map((o,v)=>({key:o.id||v,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):e&&e.credentials?L.value=e.credentials.map((o,v)=>({key:o.id||v,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):L.value=ce(t)}catch(t){u.error("加载 WebAuthn 凭证失败: "+t.message)}finally{M.value=!1}}function ce(t){const e=[],o=t.split(`
2
+ `);for(const v of o){const b=v.trim();if(!b||b.startsWith("─")||b.startsWith("No "))continue;const d=b.split(/\s*[|│]\s*/);d.length>=2&&e.push({key:e.length,id:d[0]||"-",name:d[1]||"-",type:d[2]||"public-key",createdAt:d[3]||"-",lastUsed:d[4]||"-"})}return e}async function pe(){const t=D.value.trim();if(!t){u.warning("请输入凭证名称");return}q.value=!0;try{const e=t.replace(/"/g,'\\"'),{output:o}=await x.execute(`webauthn register --name "${e}" --json`,3e4);o.includes("error")||o.includes("失败")?u.error("注册失败: "+o.slice(0,120)):(u.success("WebAuthn 凭证已注册"),$.value=!1,D.value="",await P())}catch(e){u.error("注册失败: "+e.message)}finally{q.value=!1}}async function fe(t){try{const{output:e}=await x.execute(`webauthn delete "${t.id}"`,15e3);e.includes("error")||e.includes("失败")?u.error("删除失败: "+e.slice(0,120)):(u.success("凭证已删除"),await P())}catch(e){u.error("删除失败: "+e.message)}}const B=r(!1),V=r(!1),F=r(!1),N=r(!1),p=r({provider:"",clientId:"",redirectUrl:"",enabled:!1}),f=r({provider:void 0,clientId:"",clientSecret:"",issuerUrl:""}),J=r([]);async function E(){B.value=!0;try{const{output:t}=await x.execute("sso status --json",15e3),e=T(t);if(e)p.value={provider:e.provider||"",clientId:e.clientId||e.client_id||"",redirectUrl:e.redirectUrl||e.redirect_url||e.callbackUrl||"",enabled:e.enabled||e.active||!1};else{const o=t.split(`
3
+ `);for(const v of o){const b=v.trim().match(/^(.+?)\s*[:=:]\s*(.+)$/);if(b){const d=b[1].toLowerCase(),C=b[2].trim();d.includes("provider")?p.value.provider=C:d.includes("client")&&d.includes("id")?p.value.clientId=C:d.includes("redirect")||d.includes("callback")?p.value.redirectUrl=C:(d.includes("status")||d.includes("enabled"))&&(p.value.enabled=/true|enabled|active|已启用/i.test(C))}}}J.value=[{label:"提供商",value:p.value.provider||"未配置",color:p.value.provider?"#1677ff":"#999"},{label:"状态",value:p.value.enabled?"已启用":"未启用",color:p.value.enabled?"#52c41a":"#faad14"}],V.value=!0}catch{p.value={provider:"",clientId:"",redirectUrl:"",enabled:!1},J.value=[{label:"提供商",value:"未配置",color:"#999"},{label:"状态",value:"未启用",color:"#faad14"}],V.value=!0}finally{B.value=!1}}async function ve(){if(!f.value.provider){u.warning("请选择 SSO 提供商");return}if(!f.value.clientId.trim()){u.warning("请输入 Client ID");return}F.value=!0;try{const t=[`config set sso.provider ${f.value.provider}`,`config set sso.clientId ${f.value.clientId.trim()}`];f.value.clientSecret.trim()&&t.push(`config set sso.clientSecret ${f.value.clientSecret.trim()}`),f.value.issuerUrl.trim()&&t.push(`config set sso.issuerUrl ${f.value.issuerUrl.trim()}`);for(const e of t)await x.execute(e,1e4);u.success("SSO 配置已保存"),N.value=!1,await E()}catch(t){u.error("保存失败: "+t.message)}finally{F.value=!1}}const Y=r(!1),G=r(!1),w=r(!1),U=r(!1),A=r(""),H=r(!1),S=r([]);async function ee(){Y.value=!0;try{const{output:t}=await x.execute("auth 2fa status --json",15e3),e=T(t);e?w.value=e.enabled||e.active||!1:w.value=/enabled|已启用|active/i.test(t),G.value=!0}catch{w.value=!1,G.value=!0}finally{Y.value=!1}}async function ye(){U.value=!0,A.value="";try{const{output:t}=await x.execute("auth 2fa enable --type totp --json",2e4);if(t.includes("error")||t.includes("失败"))u.error("启用失败: "+t.slice(0,120));else{const e=T(t);e&&e.secret?A.value=`TOTP Secret: ${e.secret}
4
+ OTP Auth URL: ${e.otpAuthUrl||e.uri||""}`:A.value=t,w.value=!0,u.success("TOTP 已启用")}}catch(t){u.error("启用失败: "+t.message)}finally{U.value=!1}}async function me(){U.value=!0,A.value="";try{const{output:t}=await x.execute("auth 2fa disable",15e3);t.includes("error")||t.includes("失败")?u.error("禁用失败: "+t.slice(0,120)):(w.value=!1,u.success("双因素认证已禁用"))}catch(t){u.error("禁用失败: "+t.message)}finally{U.value=!1}}async function be(){H.value=!0,S.value=[];try{const{output:t}=await x.execute("auth 2fa recovery-codes --json",15e3),e=T(t);if(e&&Array.isArray(e.codes))S.value=e.codes;else if(e&&Array.isArray(e))S.value=e;else{const o=t.split(`
5
+ `).map(v=>v.trim()).filter(v=>v&&/^[A-Za-z0-9-]{6,}$/.test(v));S.value=o.length>0?o:[t.trim()||"无法生成恢复码"]}S.value.length>0&&S.value[0]!=="无法生成恢复码"&&u.success("恢复码已生成")}catch(t){u.error("生成恢复码失败: "+t.message)}finally{H.value=!1}}return $e(()=>{P()}),(t,e)=>{const o=s("a-button"),v=s("a-space"),b=s("a-spin"),d=s("a-tag"),C=s("a-popconfirm"),ge=s("a-empty"),_e=s("a-table"),Z=s("a-input"),z=s("a-form-item"),te=s("a-form"),ae=s("a-modal"),Q=s("a-tab-pane"),xe=s("a-statistic"),W=s("a-card"),ke=s("a-col"),we=s("a-row"),R=s("a-descriptions-item"),Se=s("a-descriptions"),X=s("a-select-option"),he=s("a-select"),Ce=s("a-input-password"),Ue=s("a-alert"),Ae=s("a-tabs");return i(),y("div",null,[g("div",De,[e[11]||(e[11]=g("div",null,[g("h2",{class:"page-title"},"认证管理"),g("p",{class:"page-sub"},"WebAuthn / SSO / 双因素认证")],-1)),a(o,{type:"primary",ghost:"",loading:K.value,onClick:re},{icon:l(()=>[a(k(le))]),default:l(()=>[e[10]||(e[10]=c(" 刷新 ",-1))]),_:1},8,["loading"])]),a(Ae,{activeKey:O.value,"onUpdate:activeKey":e[9]||(e[9]=n=>O.value=n),type:"card",onChange:ie},{default:l(()=>[a(Q,{key:"webauthn"},{tab:l(()=>[a(k(oe)),e[12]||(e[12]=c(" WebAuthn ",-1))]),default:l(()=>[a(v,{style:{"margin-bottom":"16px"}},{default:l(()=>[a(o,{type:"primary",onClick:e[0]||(e[0]=n=>$.value=!0)},{icon:l(()=>[a(k(Te))]),default:l(()=>[e[13]||(e[13]=c(" 注册新凭证 ",-1))]),_:1})]),_:1}),M.value?(i(),y("div",Pe,[a(b,{size:"large"})])):(i(),I(_e,{key:1,columns:de,"data-source":L.value,pagination:{pageSize:20,showTotal:n=>`共 ${n} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"auth-row"},{bodyCell:l(({column:n,record:_})=>[n.key==="id"?(i(),y("span",{key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"},title:_.id},m(ue(_.id)),9,Ne)):h("",!0),n.key==="name"?(i(),y("span",We,m(_.name),1)):h("",!0),n.key==="type"?(i(),I(d,{key:2,color:"blue"},{default:l(()=>[c(m(_.type||"public-key"),1)]),_:2},1024)):h("",!0),n.key==="createdAt"?(i(),y("span",Re,m(_.createdAt||"-"),1)):h("",!0),n.key==="lastUsed"?(i(),y("span",je,m(_.lastUsed||"-"),1)):h("",!0),n.key==="actions"?(i(),I(C,{key:5,title:"确定要删除此凭证吗?","ok-text":"确定","cancel-text":"取消",onConfirm:Qe=>fe(_)},{default:l(()=>[a(o,{type:"link",danger:"",size:"small"},{icon:l(()=>[a(k(ze))]),default:l(()=>[e[14]||(e[14]=c(" 删除 ",-1))]),_:1})]),_:1},8,["onConfirm"])):h("",!0)]),emptyText:l(()=>[a(ge,{description:"暂无 WebAuthn 凭证,点击「注册新凭证」添加"})]),_:1},8,["data-source","pagination"])),a(ae,{open:$.value,"onUpdate:open":e[2]||(e[2]=n=>$.value=n),title:"注册 WebAuthn 凭证","confirm-loading":q.value,onOk:pe,"ok-text":"注册","cancel-text":"取消"},{default:l(()=>[a(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(z,{label:"凭证名称",required:""},{default:l(()=>[a(Z,{value:D.value,"onUpdate:value":e[1]||(e[1]=n=>D.value=n),placeholder:"例如:YubiKey-5, TouchID"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),a(Q,{key:"sso"},{tab:l(()=>[a(k(Le)),e[15]||(e[15]=c(" SSO 配置 ",-1))]),default:l(()=>[B.value?(i(),y("div",Ke,[a(b,{size:"large"})])):(i(),y(j,{key:1},[a(we,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[(i(!0),y(j,null,se(J.value,n=>(i(),I(ke,{xs:12,sm:6,key:n.label},{default:l(()=>[a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:l(()=>[a(xe,{title:n.label,value:n.value,"value-style":{color:n.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:"当前 SSO 配置"},{default:l(()=>[a(Se,{column:{xs:1,sm:2},bordered:"",size:"small",style:{background:"var(--bg-card)"}},{default:l(()=>[a(R,{label:"提供商"},{default:l(()=>[a(d,{color:p.value.provider?"blue":"default"},{default:l(()=>[c(m(p.value.provider||"未配置"),1)]),_:1},8,["color"])]),_:1}),a(R,{label:"Client ID"},{default:l(()=>[g("span",Me,m(p.value.clientId||"-"),1)]),_:1}),a(R,{label:"Redirect URL"},{default:l(()=>[g("span",qe,m(p.value.redirectUrl||"-"),1)]),_:1}),a(R,{label:"状态"},{default:l(()=>[a(d,{color:p.value.enabled?"green":"default"},{default:l(()=>[c(m(p.value.enabled?"已启用":"未启用"),1)]),_:1},8,["color"])]),_:1})]),_:1}),g("div",Be,[a(o,{type:"primary",onClick:e[3]||(e[3]=n=>N.value=!0)},{icon:l(()=>[a(k(oe))]),default:l(()=>[e[16]||(e[16]=c(" 配置 SSO ",-1))]),_:1})])]),_:1})],64)),a(ae,{open:N.value,"onUpdate:open":e[8]||(e[8]=n=>N.value=n),title:"配置 SSO","confirm-loading":F.value,onOk:ve,"ok-text":"保存","cancel-text":"取消",width:"520px"},{default:l(()=>[a(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(z,{label:"提供商",required:""},{default:l(()=>[a(he,{value:f.value.provider,"onUpdate:value":e[4]||(e[4]=n=>f.value.provider=n),placeholder:"选择 SSO 提供商"},{default:l(()=>[a(X,{value:"OIDC"},{default:l(()=>[...e[17]||(e[17]=[c("OIDC",-1)])]),_:1}),a(X,{value:"SAML"},{default:l(()=>[...e[18]||(e[18]=[c("SAML",-1)])]),_:1}),a(X,{value:"LDAP"},{default:l(()=>[...e[19]||(e[19]=[c("LDAP",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),a(z,{label:"Client ID",required:""},{default:l(()=>[a(Z,{value:f.value.clientId,"onUpdate:value":e[5]||(e[5]=n=>f.value.clientId=n),placeholder:"输入 Client ID"},null,8,["value"])]),_:1}),a(z,{label:"Client Secret"},{default:l(()=>[a(Ce,{value:f.value.clientSecret,"onUpdate:value":e[6]||(e[6]=n=>f.value.clientSecret=n),placeholder:"输入 Client Secret"},null,8,["value"])]),_:1}),a(z,{label:"Issuer URL"},{default:l(()=>[a(Z,{value:f.value.issuerUrl,"onUpdate:value":e[7]||(e[7]=n=>f.value.issuerUrl=n),placeholder:"https://sso.example.com"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),a(Q,{key:"2fa"},{tab:l(()=>[a(k(ne)),e[20]||(e[20]=c(" 双因素认证 ",-1))]),default:l(()=>[Y.value?(i(),y("div",Ve,[a(b,{size:"large"})])):(i(),y(j,{key:1},[a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},title:"TOTP 双因素认证"},{default:l(()=>[g("div",Fe,[e[21]||(e[21]=g("span",{style:{color:"var(--text-primary)","font-size":"14px"}},"状态:",-1)),a(d,{color:w.value?"green":"default",style:{"font-size":"13px"}},{default:l(()=>[c(m(w.value?"已启用":"未启用"),1)]),_:1},8,["color"])]),a(v,null,{default:l(()=>[w.value?(i(),I(C,{key:1,title:"确定要禁用双因素认证吗?这会降低账户安全性。","ok-text":"确定禁用","cancel-text":"取消",onConfirm:me},{default:l(()=>[a(o,{danger:"",loading:U.value},{default:l(()=>[...e[23]||(e[23]=[c(" 禁用 ",-1)])]),_:1},8,["loading"])]),_:1})):(i(),I(o,{key:0,type:"primary",loading:U.value,onClick:ye},{icon:l(()=>[a(k(ne))]),default:l(()=>[e[22]||(e[22]=c(" 启用 TOTP ",-1))]),_:1},8,["loading"]))]),_:1}),A.value?(i(),y("div",Je,[g("pre",Ee,m(A.value),1)])):h("",!0)]),_:1}),a(W,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:"恢复码"},{default:l(()=>[e[25]||(e[25]=g("p",{style:{color:"var(--text-secondary)","margin-bottom":"12px"}}," 恢复码可在丢失 TOTP 设备时用于登录。请妥善保管。 ",-1)),a(o,{loading:H.value,onClick:be},{icon:l(()=>[a(k(le))]),default:l(()=>[e[24]||(e[24]=c(" 生成恢复码 ",-1))]),_:1},8,["loading"]),S.value.length>0?(i(),y("div",Ye,[a(Ue,{type:"warning","show-icon":"",style:{"margin-bottom":"12px"},message:"请立即保存这些恢复码,关闭后将无法再次查看。"}),g("div",Ge,[(i(!0),y(j,null,se(S.value,(n,_)=>(i(),y("div",{key:_,style:{"font-family":"monospace","font-size":"14px",color:"#e0e0e0",padding:"4px 0","letter-spacing":"2px"}},m(_+1)+". "+m(n),1))),128))])])):h("",!0)]),_:1})],64))]),_:1})]),_:1},8,["activeKey"])])}}},dt=Oe(He,[["__scopeId","data-v-a4bec262"]]);export{dt as default};
@@ -1 +1 @@
1
- import{k as T,r as b,l as K,F as v,D as _,c as s,x as o,q as p,v as c,J as m,u as h,m as j,E as X,I as y,P as Y,H as V,L as D,G as N,j as Q}from"./vendor-aH7YaPZi.js";import{u as Z}from"./ws-BTS8ehTm.js";import{_ as ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{X as te,q as ae}from"./icons-DzieZiVh.js";import{a as C}from"./index-CjOtB4wg.js";import"./index-4C1c4hkZ.js";import"./useConfigInject-C2E3Qsop.js";import"./transition-exl3w1iN.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.js";import"./index-U4Zd5IK6.js";const se=T("workflow",()=>{const f=Z(),l=b([]),t=b(null),x=b([]),w=b("idle"),R=b(!1),z=b(null);async function J(){R.value=!0,z.value=null;try{await f.waitConnected();const e=await f.sendRaw({type:"workflow-list"});return l.value=Array.isArray(e.workflows)?e.workflows:[],l.value}catch(e){throw z.value=e.message,e}finally{R.value=!1}}async function W(e){await f.waitConnected();const n=await f.sendRaw({type:"workflow-get",id:e});return t.value=n.workflow||null,t.value}async function q(e){await f.waitConnected();const n=await f.sendRaw({type:"workflow-save",workflow:e});if(n.saved){const u=l.value.findIndex(r=>r.id===e.id);u>=0?l.value.splice(u,1,e):l.value.push(e)}return n}async function A(e){await f.waitConnected();const n=await f.sendRaw({type:"workflow-remove",id:e});return n.removed&&(l.value=l.value.filter(u=>u.id!==e)),n}async function B(e,{onEvent:n}={}){await f.waitConnected(),x.value=[],w.value="running";const u=f.onMessage(r=>{!r||typeof r.type!="string"||r.type.startsWith("workflow:")&&(x.value.push(r),n&&n(r),r.type==="workflow:done"&&(w.value=r.status||"completed"))});try{return await f.sendRaw({type:"workflow-run",id:e},12e4)}catch(r){throw w.value="failed",z.value=r.message,r}finally{u()}}function M(e){const n=[];if(!e||typeof e!="object")return{valid:!1,errors:["workflow must be an object"]};if(e.id||n.push("id required"),e.name||n.push("name required"),!Array.isArray(e.steps)||e.steps.length===0)n.push("steps required");else{let g=function(i){$.set(i,E);for(const O of r.get(i)||[]){if(!r.has(O)){n.push(`unknown dependency: ${O}`);continue}const I=$.get(O);if(I===E){n.push(`cycle via ${i} -> ${O}`);return}I===L&&g(O)}$.set(i,S)};const u=new Set;for(const i of e.steps)i.id||n.push("step.id required"),u.has(i.id)&&n.push(`duplicate step id: ${i.id}`),u.add(i.id);const r=new Map;for(const i of e.steps)r.set(i.id,i.dependsOn||[]);const L=0,E=1,S=2,$=new Map([...r.keys()].map(i=>[i,L]));for(const i of r.keys())$.get(i)===L&&g(i)}return{valid:n.length===0,errors:n}}function d(e){return JSON.stringify(e,null,2)}return{workflows:l,current:t,runEvents:x,runStatus:w,loading:R,error:z,list:J,get:W,save:q,remove:A,run:B,validateLocal:M,exportJson:d}}),ne={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},oe={style:{flex:"1"}},le={style:{"font-weight":"500"}},re={style:{color:"#888","font-size":"12px"}},ie={style:{color:"#888","font-size":"12px"}},ue={key:0,style:{"margin-top":"12px",color:"#d32f2f"}},de={style:{color:"#1976d2"}},ce={key:0},pe={key:1},fe={key:2,style:{color:"#555"}},ve={__name:"WorkflowEditor",setup(f){const l=se(),t=b(null),x=b(!1),w=Q(()=>t.value?l.validateLocal(t.value):null);K(()=>l.list().catch(()=>{}));function R(){t.value={id:"",name:"",description:"",steps:[{id:"step1",message:"",dependsOn:[]}]}}async function z(d){try{const e=await l.get(d);e&&(t.value=JSON.parse(JSON.stringify(e)),t.value.steps||(t.value.steps=[]))}catch(e){C.error(`加载失败: ${e.message}`)}}function J(){t.value.steps||(t.value.steps=[]),t.value.steps.push({id:`step${t.value.steps.length+1}`,message:"",dependsOn:[]})}function W(d){t.value.steps.splice(d,1)}async function q(){const d=l.validateLocal(t.value);if(!d.valid){C.error(d.errors[0]);return}try{await l.save(t.value),C.success("保存成功")}catch(e){C.error(`保存失败: ${e.message}`)}}async function A(d){try{await l.remove(d),t.value?.id===d&&(t.value=null),C.success("已删除")}catch(e){C.error(`删除失败: ${e.message}`)}}async function B(){x.value=!0;try{await l.run(t.value.id),C.success(`运行完成:${l.runStatus}`)}catch(d){C.error(`运行失败: ${d.message}`)}finally{x.value=!1}}function M(){const d=l.exportJson(t.value),e=new Blob([d],{type:"application/json"}),n=URL.createObjectURL(e),u=document.createElement("a");u.href=n,u.download=`${t.value.id||"workflow"}.json`,u.click(),URL.revokeObjectURL(n)}return(d,e)=>{const n=p("a-button"),u=p("a-space"),r=p("a-empty"),L=p("a-list-item"),E=p("a-list"),S=p("a-card"),$=p("a-col"),g=p("a-input"),i=p("a-form-item"),O=p("a-divider"),I=p("a-select"),F=p("a-input-group"),G=p("a-textarea"),H=p("a-form"),P=p("a-row");return c(),v("div",null,[_("div",ne,[e[6]||(e[6]=_("div",null,[_("h2",{class:"page-title"},"工作流编辑器"),_("p",{class:"page-sub"},"创建、编辑、运行 Cowork 工作流(N1 — 初版:表单编辑,画布视图规划中)")],-1)),s(u,null,{default:o(()=>[s(n,{onClick:R,type:"primary"},{icon:o(()=>[s(h(te))]),default:o(()=>[e[4]||(e[4]=m(" 新建 ",-1))]),_:1}),s(n,{ghost:"",loading:h(l).loading,onClick:e[0]||(e[0]=a=>h(l).list())},{icon:o(()=>[s(h(ae))]),default:o(()=>[e[5]||(e[5]=m(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),s(P,{gutter:16},{default:o(()=>[s($,{span:8},{default:o(()=>[s(S,{title:"工作流列表",size:"small"},{default:o(()=>[h(l).workflows.length?(c(),j(E,{key:1,"data-source":h(l).workflows,size:"small"},{renderItem:o(({item:a})=>[s(L,{class:X({active:t.value?.id===a.id}),style:{cursor:"pointer"},onClick:U=>z(a.id)},{default:o(()=>[_("div",oe,[_("div",le,y(a.name||a.id),1),_("div",re,y((a.steps||[]).length)+" 步骤 ",1)]),s(n,{size:"small",danger:"",type:"text",onClick:Y(U=>A(a.id),["stop"])},{default:o(()=>[...e[7]||(e[7]=[m("删除",-1)])]),_:1},8,["onClick"])]),_:2},1032,["class","onClick"])]),_:1},8,["data-source"])):(c(),j(r,{key:0,description:"暂无工作流"}))]),_:1})]),_:1}),s($,{span:16},{default:o(()=>[t.value?(c(),j(S,{key:0,size:"small"},{title:o(()=>[m(" 编辑: "+y(t.value.name||t.value.id),1)]),extra:o(()=>[s(u,null,{default:o(()=>[s(n,{size:"small",onClick:M},{default:o(()=>[...e[8]||(e[8]=[m("导出 JSON",-1)])]),_:1}),s(n,{size:"small",loading:x.value,onClick:B,disabled:!t.value.id},{default:o(()=>[...e[9]||(e[9]=[m(" 运行 ",-1)])]),_:1},8,["loading","disabled"]),s(n,{size:"small",type:"primary",onClick:q},{default:o(()=>[...e[10]||(e[10]=[m("保存",-1)])]),_:1})]),_:1})]),default:o(()=>[s(H,{layout:"vertical",model:t.value},{default:o(()=>[s(i,{label:"ID (唯一标识)"},{default:o(()=>[s(g,{value:t.value.id,"onUpdate:value":e[1]||(e[1]=a=>t.value.id=a),placeholder:"my-workflow"},null,8,["value"])]),_:1}),s(i,{label:"名称"},{default:o(()=>[s(g,{value:t.value.name,"onUpdate:value":e[2]||(e[2]=a=>t.value.name=a),placeholder:"我的工作流"},null,8,["value"])]),_:1}),s(i,{label:"描述"},{default:o(()=>[s(g,{value:t.value.description,"onUpdate:value":e[3]||(e[3]=a=>t.value.description=a),placeholder:"(可选)"},null,8,["value"])]),_:1}),s(O,null,{default:o(()=>[...e[11]||(e[11]=[m("步骤",-1)])]),_:1}),(c(!0),v(V,null,D(t.value.steps,(a,U)=>(c(),v("div",{key:U,class:"step-card"},[s(u,{style:{width:"100%","margin-bottom":"8px"},direction:"vertical"},{default:o(()=>[s(F,{compact:""},{default:o(()=>[s(g,{value:a.id,"onUpdate:value":k=>a.id=k,placeholder:"step-id",style:{width:"30%"}},null,8,["value","onUpdate:value"]),s(I,{value:a.dependsOn,"onUpdate:value":k=>a.dependsOn=k,mode:"tags",placeholder:"dependsOn",style:{width:"70%"}},null,8,["value","onUpdate:value"])]),_:2},1024),s(G,{value:a.message,"onUpdate:value":k=>a.message=k,rows:2,placeholder:"任务 prompt(支持 \\${step.<id>.summary} 占位)"},null,8,["value","onUpdate:value"]),s(g,{value:a.when,"onUpdate:value":k=>a.when=k,placeholder:"when 条件(可选,如 step.s1.status === 'completed')"},null,8,["value","onUpdate:value"]),s(u,null,{default:o(()=>[s(n,{size:"small",danger:"",onClick:k=>W(U)},{default:o(()=>[...e[12]||(e[12]=[m("删除",-1)])]),_:1},8,["onClick"]),_("span",ie," step "+y(U+1)+" / "+y(t.value.steps.length),1)]),_:2},1024)]),_:2},1024)]))),128)),s(n,{block:"",onClick:J},{default:o(()=>[...e[13]||(e[13]=[m("+ 添加步骤",-1)])]),_:1})]),_:1},8,["model"]),w.value&&!w.value.valid?(c(),v("div",ue,[(c(!0),v(V,null,D(w.value.errors,a=>(c(),v("div",{key:a},"• "+y(a),1))),128))])):N("",!0)]),_:1})):(c(),j(S,{key:1,size:"small"},{default:o(()=>[s(r,{description:"从左侧选择工作流或新建一个"})]),_:1})),h(l).runEvents.length?(c(),j(S,{key:2,size:"small",title:"运行日志",style:{"margin-top":"12px"}},{default:o(()=>[(c(!0),v(V,null,D(h(l).runEvents,(a,U)=>(c(),v("div",{key:U,style:{"font-family":"monospace","font-size":"12px","margin-bottom":"4px"}},[_("span",de,y(a.type),1),a.stepId?(c(),v("span",ce," ["+y(a.stepId)+"]",1)):N("",!0),a.status?(c(),v("span",pe," → "+y(a.status),1)):N("",!0),a.summary?(c(),v("span",fe," — "+y(a.summary),1)):N("",!0)]))),128))]),_:1})):N("",!0)]),_:1})]),_:1})])}}},Oe=ee(ve,[["__scopeId","data-v-0d6dcf38"]]);export{Oe as default};
1
+ import{k as T,r as b,l as Y,F as v,D as _,c as s,x as o,q as p,v as c,J as m,u as h,m as j,E as K,I as y,P as Q,H as V,L as D,G as N,j as X}from"./vendor-aH7YaPZi.js";import{u as Z}from"./ws-BTS8ehTm.js";import{_ as ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{Y as te,r as ae}from"./icons-DEoqYzGZ.js";import{a as C}from"./index-36fB-tdr.js";import"./index-BPzN5a2A.js";import"./useConfigInject-DIr4olCu.js";import"./transition-B3-w1SVL.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-DXIqogG2.js";import"./index-U4Zd5IK6.js";const se=T("workflow",()=>{const f=Z(),l=b([]),t=b(null),x=b([]),w=b("idle"),R=b(!1),z=b(null);async function J(){R.value=!0,z.value=null;try{await f.waitConnected();const e=await f.sendRaw({type:"workflow-list"});return l.value=Array.isArray(e.workflows)?e.workflows:[],l.value}catch(e){throw z.value=e.message,e}finally{R.value=!1}}async function W(e){await f.waitConnected();const n=await f.sendRaw({type:"workflow-get",id:e});return t.value=n.workflow||null,t.value}async function A(e){await f.waitConnected();const n=await f.sendRaw({type:"workflow-save",workflow:e});if(n.saved){const u=l.value.findIndex(r=>r.id===e.id);u>=0?l.value.splice(u,1,e):l.value.push(e)}return n}async function B(e){await f.waitConnected();const n=await f.sendRaw({type:"workflow-remove",id:e});return n.removed&&(l.value=l.value.filter(u=>u.id!==e)),n}async function q(e,{onEvent:n}={}){await f.waitConnected(),x.value=[],w.value="running";const u=f.onMessage(r=>{!r||typeof r.type!="string"||r.type.startsWith("workflow:")&&(x.value.push(r),n&&n(r),r.type==="workflow:done"&&(w.value=r.status||"completed"))});try{return await f.sendRaw({type:"workflow-run",id:e},12e4)}catch(r){throw w.value="failed",z.value=r.message,r}finally{u()}}function M(e){const n=[];if(!e||typeof e!="object")return{valid:!1,errors:["workflow must be an object"]};if(e.id||n.push("id required"),e.name||n.push("name required"),!Array.isArray(e.steps)||e.steps.length===0)n.push("steps required");else{let g=function(i){$.set(i,E);for(const O of r.get(i)||[]){if(!r.has(O)){n.push(`unknown dependency: ${O}`);continue}const I=$.get(O);if(I===E){n.push(`cycle via ${i} -> ${O}`);return}I===L&&g(O)}$.set(i,S)};const u=new Set;for(const i of e.steps)i.id||n.push("step.id required"),u.has(i.id)&&n.push(`duplicate step id: ${i.id}`),u.add(i.id);const r=new Map;for(const i of e.steps)r.set(i.id,i.dependsOn||[]);const L=0,E=1,S=2,$=new Map([...r.keys()].map(i=>[i,L]));for(const i of r.keys())$.get(i)===L&&g(i)}return{valid:n.length===0,errors:n}}function d(e){return JSON.stringify(e,null,2)}return{workflows:l,current:t,runEvents:x,runStatus:w,loading:R,error:z,list:J,get:W,save:A,remove:B,run:q,validateLocal:M,exportJson:d}}),ne={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},oe={style:{flex:"1"}},le={style:{"font-weight":"500"}},re={style:{color:"#888","font-size":"12px"}},ie={style:{color:"#888","font-size":"12px"}},ue={key:0,style:{"margin-top":"12px",color:"#d32f2f"}},de={style:{color:"#1976d2"}},ce={key:0},pe={key:1},fe={key:2,style:{color:"#555"}},ve={__name:"WorkflowEditor",setup(f){const l=se(),t=b(null),x=b(!1),w=X(()=>t.value?l.validateLocal(t.value):null);Y(()=>l.list().catch(()=>{}));function R(){t.value={id:"",name:"",description:"",steps:[{id:"step1",message:"",dependsOn:[]}]}}async function z(d){try{const e=await l.get(d);e&&(t.value=JSON.parse(JSON.stringify(e)),t.value.steps||(t.value.steps=[]))}catch(e){C.error(`加载失败: ${e.message}`)}}function J(){t.value.steps||(t.value.steps=[]),t.value.steps.push({id:`step${t.value.steps.length+1}`,message:"",dependsOn:[]})}function W(d){t.value.steps.splice(d,1)}async function A(){const d=l.validateLocal(t.value);if(!d.valid){C.error(d.errors[0]);return}try{await l.save(t.value),C.success("保存成功")}catch(e){C.error(`保存失败: ${e.message}`)}}async function B(d){try{await l.remove(d),t.value?.id===d&&(t.value=null),C.success("已删除")}catch(e){C.error(`删除失败: ${e.message}`)}}async function q(){x.value=!0;try{await l.run(t.value.id),C.success(`运行完成:${l.runStatus}`)}catch(d){C.error(`运行失败: ${d.message}`)}finally{x.value=!1}}function M(){const d=l.exportJson(t.value),e=new Blob([d],{type:"application/json"}),n=URL.createObjectURL(e),u=document.createElement("a");u.href=n,u.download=`${t.value.id||"workflow"}.json`,u.click(),URL.revokeObjectURL(n)}return(d,e)=>{const n=p("a-button"),u=p("a-space"),r=p("a-empty"),L=p("a-list-item"),E=p("a-list"),S=p("a-card"),$=p("a-col"),g=p("a-input"),i=p("a-form-item"),O=p("a-divider"),I=p("a-select"),F=p("a-input-group"),G=p("a-textarea"),H=p("a-form"),P=p("a-row");return c(),v("div",null,[_("div",ne,[e[6]||(e[6]=_("div",null,[_("h2",{class:"page-title"},"工作流编辑器"),_("p",{class:"page-sub"},"创建、编辑、运行 Cowork 工作流(N1 — 初版:表单编辑,画布视图规划中)")],-1)),s(u,null,{default:o(()=>[s(n,{onClick:R,type:"primary"},{icon:o(()=>[s(h(te))]),default:o(()=>[e[4]||(e[4]=m(" 新建 ",-1))]),_:1}),s(n,{ghost:"",loading:h(l).loading,onClick:e[0]||(e[0]=a=>h(l).list())},{icon:o(()=>[s(h(ae))]),default:o(()=>[e[5]||(e[5]=m(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),s(P,{gutter:16},{default:o(()=>[s($,{span:8},{default:o(()=>[s(S,{title:"工作流列表",size:"small"},{default:o(()=>[h(l).workflows.length?(c(),j(E,{key:1,"data-source":h(l).workflows,size:"small"},{renderItem:o(({item:a})=>[s(L,{class:K({active:t.value?.id===a.id}),style:{cursor:"pointer"},onClick:U=>z(a.id)},{default:o(()=>[_("div",oe,[_("div",le,y(a.name||a.id),1),_("div",re,y((a.steps||[]).length)+" 步骤 ",1)]),s(n,{size:"small",danger:"",type:"text",onClick:Q(U=>B(a.id),["stop"])},{default:o(()=>[...e[7]||(e[7]=[m("删除",-1)])]),_:1},8,["onClick"])]),_:2},1032,["class","onClick"])]),_:1},8,["data-source"])):(c(),j(r,{key:0,description:"暂无工作流"}))]),_:1})]),_:1}),s($,{span:16},{default:o(()=>[t.value?(c(),j(S,{key:0,size:"small"},{title:o(()=>[m(" 编辑: "+y(t.value.name||t.value.id),1)]),extra:o(()=>[s(u,null,{default:o(()=>[s(n,{size:"small",onClick:M},{default:o(()=>[...e[8]||(e[8]=[m("导出 JSON",-1)])]),_:1}),s(n,{size:"small",loading:x.value,onClick:q,disabled:!t.value.id},{default:o(()=>[...e[9]||(e[9]=[m(" 运行 ",-1)])]),_:1},8,["loading","disabled"]),s(n,{size:"small",type:"primary",onClick:A},{default:o(()=>[...e[10]||(e[10]=[m("保存",-1)])]),_:1})]),_:1})]),default:o(()=>[s(H,{layout:"vertical",model:t.value},{default:o(()=>[s(i,{label:"ID (唯一标识)"},{default:o(()=>[s(g,{value:t.value.id,"onUpdate:value":e[1]||(e[1]=a=>t.value.id=a),placeholder:"my-workflow"},null,8,["value"])]),_:1}),s(i,{label:"名称"},{default:o(()=>[s(g,{value:t.value.name,"onUpdate:value":e[2]||(e[2]=a=>t.value.name=a),placeholder:"我的工作流"},null,8,["value"])]),_:1}),s(i,{label:"描述"},{default:o(()=>[s(g,{value:t.value.description,"onUpdate:value":e[3]||(e[3]=a=>t.value.description=a),placeholder:"(可选)"},null,8,["value"])]),_:1}),s(O,null,{default:o(()=>[...e[11]||(e[11]=[m("步骤",-1)])]),_:1}),(c(!0),v(V,null,D(t.value.steps,(a,U)=>(c(),v("div",{key:U,class:"step-card"},[s(u,{style:{width:"100%","margin-bottom":"8px"},direction:"vertical"},{default:o(()=>[s(F,{compact:""},{default:o(()=>[s(g,{value:a.id,"onUpdate:value":k=>a.id=k,placeholder:"step-id",style:{width:"30%"}},null,8,["value","onUpdate:value"]),s(I,{value:a.dependsOn,"onUpdate:value":k=>a.dependsOn=k,mode:"tags",placeholder:"dependsOn",style:{width:"70%"}},null,8,["value","onUpdate:value"])]),_:2},1024),s(G,{value:a.message,"onUpdate:value":k=>a.message=k,rows:2,placeholder:"任务 prompt(支持 \\${step.<id>.summary} 占位)"},null,8,["value","onUpdate:value"]),s(g,{value:a.when,"onUpdate:value":k=>a.when=k,placeholder:"when 条件(可选,如 step.s1.status === 'completed')"},null,8,["value","onUpdate:value"]),s(u,null,{default:o(()=>[s(n,{size:"small",danger:"",onClick:k=>W(U)},{default:o(()=>[...e[12]||(e[12]=[m("删除",-1)])]),_:1},8,["onClick"]),_("span",ie," step "+y(U+1)+" / "+y(t.value.steps.length),1)]),_:2},1024)]),_:2},1024)]))),128)),s(n,{block:"",onClick:J},{default:o(()=>[...e[13]||(e[13]=[m("+ 添加步骤",-1)])]),_:1})]),_:1},8,["model"]),w.value&&!w.value.valid?(c(),v("div",ue,[(c(!0),v(V,null,D(w.value.errors,a=>(c(),v("div",{key:a},"• "+y(a),1))),128))])):N("",!0)]),_:1})):(c(),j(S,{key:1,size:"small"},{default:o(()=>[s(r,{description:"从左侧选择工作流或新建一个"})]),_:1})),h(l).runEvents.length?(c(),j(S,{key:2,size:"small",title:"运行日志",style:{"margin-top":"12px"}},{default:o(()=>[(c(!0),v(V,null,D(h(l).runEvents,(a,U)=>(c(),v("div",{key:U,style:{"font-family":"monospace","font-size":"12px","margin-bottom":"4px"}},[_("span",de,y(a.type),1),a.stepId?(c(),v("span",ce," ["+y(a.stepId)+"]",1)):N("",!0),a.status?(c(),v("span",pe," → "+y(a.status),1)):N("",!0),a.summary?(c(),v("span",fe," — "+y(a.summary),1)):N("",!0)]))),128))]),_:1})):N("",!0)]),_:1})]),_:1})])}}},Oe=ee(ve,[["__scopeId","data-v-0d6dcf38"]]);export{Oe as default};
@@ -1 +1 @@
1
- import{_ as t}from"./index-4C1c4hkZ.js";const n=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];function C(e,s){return n.reduce((o,r)=>{const u=e[`${r}-1`],l=e[`${r}-3`],i=e[`${r}-6`],a=e[`${r}-7`];return t(t({},o),s(r,{lightColor:u,lightBorderColor:l,darkColor:i,textColor:a}))},{})}const c=n.map(e=>`${e}-inverse`),g=["success","processing","error","default","warning"];function m(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?[...c,...n].includes(e):n.includes(e)}function p(e){return g.includes(e)}export{n as P,p as a,C as g,m as i};
1
+ import{_ as t}from"./index-BPzN5a2A.js";const n=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];function C(e,s){return n.reduce((o,r)=>{const u=e[`${r}-1`],l=e[`${r}-3`],i=e[`${r}-6`],a=e[`${r}-7`];return t(t({},o),s(r,{lightColor:u,lightBorderColor:l,darkColor:i,textColor:a}))},{})}const c=n.map(e=>`${e}-inverse`),g=["success","processing","error","default","warning"];function m(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?[...c,...n].includes(e):n.includes(e)}function p(e){return g.includes(e)}export{n as P,p as a,C as g,m as i};
@@ -1 +1 @@
1
- import{_ as r}from"./index-4C1c4hkZ.js";function a(o,t,i){const{focusElCls:e,focus:n,borderElCls:s}=i,m=s?"> *":"",d=["hover",n?"focus":null,"active"].filter(Boolean).map(c=>`&:${c} ${m}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-o.lineWidth},"&-item":r(r({[d]:{zIndex:2}},e?{[`&${e}`]:{zIndex:2}}:{}),{[`&[disabled] ${m}`]:{zIndex:0}})}}function $(o,t,i){const{borderElCls:e}=i,n=e?`> ${e}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${n}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function l(o){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:i}=o,e=`${i}-compact`;return{[e]:r(r({},a(o,e,t)),$(i,e,t))}}export{l as g};
1
+ import{_ as r}from"./index-BPzN5a2A.js";function a(o,t,i){const{focusElCls:e,focus:n,borderElCls:s}=i,m=s?"> *":"",d=["hover",n?"focus":null,"active"].filter(Boolean).map(c=>`&:${c} ${m}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-o.lineWidth},"&-item":r(r({[d]:{zIndex:2}},e?{[`&${e}`]:{zIndex:2}}:{}),{[`&[disabled] ${m}`]:{zIndex:0}})}}function $(o,t,i){const{borderElCls:e}=i,n=e?`> ${e}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${n}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function l(o){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:i}=o,e=`${i}-compact`;return{[e]:r(r({},a(o,e,t)),$(i,e,t))}}export{l as g};
@@ -1 +1 @@
1
- import{_ as s}from"./index-4C1c4hkZ.js";import{i as c,f as a,a as i,p as u}from"./vendor-aH7YaPZi.js";function x(o){const t=Symbol("contextKey");return{useProvide:(r,n)=>{const e=i({});return u(t,e),a(()=>{s(e,r,n||{})}),e},useInject:()=>c(t,o)||{}}}export{x as c};
1
+ import{_ as s}from"./index-BPzN5a2A.js";import{i as c,f as a,a as i,p as u}from"./vendor-aH7YaPZi.js";function x(o){const t=Symbol("contextKey");return{useProvide:(r,n)=>{const e=i({});return u(t,e),a(()=>{s(e,r,n||{})}),e},useInject:()=>c(t,o)||{}}}export{x as c};