llm-simple-router 0.4.2 → 0.4.3
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.
- package/frontend-dist/assets/{CardContent-3ytnac7B.js → CardContent-BIgWZo6N.js} +1 -1
- package/frontend-dist/assets/{CardTitle-BHZE8Rty.js → CardTitle-BVVp36Pq.js} +1 -1
- package/frontend-dist/assets/{Checkbox-CMYgDuxw.js → Checkbox-CnvHc21k.js} +1 -1
- package/frontend-dist/assets/{CollapsibleTrigger-DooxvEnx.js → CollapsibleTrigger-DG8JZQfm.js} +1 -1
- package/frontend-dist/assets/{Collection-GDvpW_uY.js → Collection-B4yfvPwd.js} +1 -1
- package/frontend-dist/assets/{Dashboard-BJslVTg8.js → Dashboard-D9ZMKiZw.js} +1 -1
- package/frontend-dist/assets/{DialogTitle-lj6NAA5R.js → DialogTitle-C7Wl7fWN.js} +1 -1
- package/frontend-dist/assets/{Input-JApdUstN.js → Input-BA5UO-Ab.js} +1 -1
- package/frontend-dist/assets/{Label-IbQFgxLe.js → Label-CmG21jDR.js} +1 -1
- package/frontend-dist/assets/{Login-BjuVvrPV.js → Login-Dqwj0s5l.js} +1 -1
- package/frontend-dist/assets/Logs-CGzGzcDa.js +1 -0
- package/frontend-dist/assets/{ModelMappings-DWVmxMy6.js → ModelMappings-qxaFWRsq.js} +1 -1
- package/frontend-dist/assets/{Monitor-BTEW0evp.js → Monitor-Zy3O9UQA.js} +1 -1
- package/frontend-dist/assets/{PopperContent-ZhhkKJo0.js → PopperContent-B48BBgdW.js} +1 -1
- package/frontend-dist/assets/{Providers-BqLSKXuv.js → Providers-DRMSjTlb.js} +1 -1
- package/frontend-dist/assets/{ProxyEnhancement-TAHOKnxW.js → ProxyEnhancement-CtlDQ_oK.js} +1 -1
- package/frontend-dist/assets/{RetryRules-Cn6KHzgB.js → RetryRules-CxbZt6dv.js} +1 -1
- package/frontend-dist/assets/{RouterKeys-CBgWAJ6-.js → RouterKeys-drAASJqH.js} +1 -1
- package/frontend-dist/assets/{SelectValue-DS4Z8y0u.js → SelectValue-Ct22fmR7.js} +1 -1
- package/frontend-dist/assets/{Setup-QKmeMDtB.js → Setup-CfscyFFo.js} +1 -1
- package/frontend-dist/assets/{Switch-BYebebrY.js → Switch-ROnHu48E.js} +1 -1
- package/frontend-dist/assets/{TableHeader-B2A48qgy.js → TableHeader-R3y9M8qo.js} +1 -1
- package/frontend-dist/assets/{TabsContent-BcNBY5CB.js → TabsContent-CtT2wglf.js} +1 -1
- package/frontend-dist/assets/{TabsTrigger-8W_mNsGI.js → TabsTrigger-D2S77VwS.js} +1 -1
- package/frontend-dist/assets/UnifiedRequestDialog-BhGWzOYY.js +3 -0
- package/frontend-dist/assets/UnifiedRequestDialog-CotaDyW7.css +1 -0
- package/frontend-dist/assets/{VisuallyHidden-DPKPka_x.js → VisuallyHidden-ppNQPfSR.js} +1 -1
- package/frontend-dist/assets/{VisuallyHiddenInput-Bnglr6yR.js → VisuallyHiddenInput-DOdhvOHf.js} +1 -1
- package/frontend-dist/assets/{alert-dialog-BzyDZnoE.js → alert-dialog-BbI_a1Xz.js} +1 -1
- package/frontend-dist/assets/{badge-BTjuxlp4.js → badge-CcgNasyU.js} +1 -1
- package/frontend-dist/assets/{button-BKJB3nEQ.js → button-BkhL20Qz.js} +2 -2
- package/frontend-dist/assets/{createLucideIcon-igIAnu_Y.js → createLucideIcon-D2A5NyBH.js} +1 -1
- package/frontend-dist/assets/{dialog-C0B-Xn-S.js → dialog-BeetdYQi.js} +1 -1
- package/frontend-dist/assets/{file-text-Ci7Mgh3F.js → file-text-D-Vekfc6.js} +1 -1
- package/frontend-dist/assets/{index-BrDOp_gc.js → index-Bgqc9Lca.js} +1 -1
- package/frontend-dist/assets/index-hzTjKE_2.css +1 -0
- package/frontend-dist/assets/{lib-BGW4QyKP.js → lib-BAWhmkfz.js} +1 -1
- package/frontend-dist/assets/{ohash.D__AXeF1-CsY_LBk-.js → ohash.D__AXeF1-B5oxGXRD.js} +1 -1
- package/frontend-dist/assets/{useClipboard-wnGQAe3I.js → useClipboard-D3mHD2V6.js} +1 -1
- package/frontend-dist/assets/{useForwardExpose-bqtcPo63.js → useForwardExpose-Pf45y-q1.js} +1 -1
- package/frontend-dist/assets/useNonce-Dfbnp6Co.js +1 -0
- package/frontend-dist/assets/x-CrCHzImd.js +1 -0
- package/frontend-dist/index.html +8 -8
- package/package.json +1 -1
- package/frontend-dist/assets/Logs-J08HyZWA.js +0 -1
- package/frontend-dist/assets/UnifiedRequestDialog-BmEamR1L.js +0 -3
- package/frontend-dist/assets/UnifiedRequestDialog-Dk3IIDDx.css +0 -1
- package/frontend-dist/assets/index-DMdVJThL.css +0 -1
- package/frontend-dist/assets/useNonce-DN0Hrw3l.js +0 -1
- package/frontend-dist/assets/x-Cy_v5hrA.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Et as t,G as n,H as r,K as i,Pt as a,V as o,at as s,ct as c,i as l,jt as u,nt as d,p as f,vt as p}from"./button-
|
|
1
|
+
import{$ as e,Et as t,G as n,H as r,K as i,Pt as a,V as o,at as s,ct as c,i as l,jt as u,nt as d,p as f,vt as p}from"./button-BkhL20Qz.js";import{S as m,a as h,c as g,d as _,g as v,i as y,m as b,o as x,u as S,x as C}from"./Collection-B4yfvPwd.js";import{t as w}from"./useForwardExpose-Pf45y-q1.js";var[T,E]=m(`DialogRoot`),D=i({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:n}){let r=e,i=f(r,`open`,n,{defaultValue:r.defaultOpen,passive:r.open===void 0}),o=t(),s=t(),{modal:l}=u(r);return E({open:i,modal:l,openModal:()=>{i.value=!0},onOpenChange:e=>{i.value=e},onOpenToggle:()=>{i.value=!i.value},contentId:``,titleId:``,descriptionId:``,triggerElement:o,contentElement:s}),(e,t)=>c(e.$slots,`default`,{open:a(i),close:()=>i.value=!1})}}),O=i({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t;w();let r=T();return(t,i)=>(s(),o(a(l),e(n,{type:t.as===`button`?`button`:void 0,onClick:i[0]||=e=>a(r).onOpenChange(!1)}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16,[`type`]))}}),k=i({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:r}){let i=t,l=r,u=T(),{forwardRef:f,currentElement:m}=w();return u.titleId||=S(void 0,`reka-dialog-title`),u.descriptionId||=S(void 0,`reka-dialog-description`),d(()=>{u.contentElement=m,C()!==document.body&&(u.triggerElement.value=C())}),(t,r)=>(s(),o(a(h),{"as-child":``,loop:``,trapped:i.trapFocus,onMountAutoFocus:r[5]||=e=>l(`openAutoFocus`,e),onUnmountAutoFocus:r[6]||=e=>l(`closeAutoFocus`,e)},{default:p(()=>[n(a(x),e({id:a(u).contentId,ref:a(f),as:t.as,"as-child":t.asChild,"disable-outside-pointer-events":t.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":a(u).descriptionId,"aria-labelledby":a(u).titleId,"data-state":a(y)(a(u).open.value)},t.$attrs,{onDismiss:r[0]||=e=>a(u).onOpenChange(!1),onEscapeKeyDown:r[1]||=e=>l(`escapeKeyDown`,e),onFocusOutside:r[2]||=e=>l(`focusOutside`,e),onInteractOutside:r[3]||=e=>l(`interactOutside`,e),onPointerDownOutside:r[4]||=e=>l(`pointerDownOutside`,e)}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`]))}}),A=i({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:n}){let r=t,i=n,l=T(),u=b(i),{forwardRef:d,currentElement:f}=w();return _(f),(t,n)=>(s(),o(k,e({...r,...a(u)},{ref:a(d),"trap-focus":a(l).open.value,"disable-outside-pointer-events":!0,onCloseAutoFocus:n[0]||=e=>{e.defaultPrevented||(e.preventDefault(),a(l).triggerElement.value?.focus())},onPointerDownOutside:n[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:n[2]||=e=>{e.preventDefault()}}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),j=i({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(n,{emit:r}){let i=n,l=b(r);w();let u=T(),d=t(!1),f=t(!1);return(t,n)=>(s(),o(k,e({...i,...a(l)},{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:n[0]||=e=>{e.defaultPrevented||(d.value||a(u).triggerElement.value?.focus(),e.preventDefault()),d.value=!1,f.value=!1},onInteractOutside:n[1]||=e=>{e.defaultPrevented||(d.value=!0,e.detail.originalEvent.type===`pointerdown`&&(f.value=!0));let t=e.target;a(u).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&f.value&&e.preventDefault()}}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16))}}),M=i({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:n}){let r=t,i=n,l=T(),u=b(i),{forwardRef:d}=w();return(t,n)=>(s(),o(a(g),{present:t.forceMount||a(l).open.value},{default:p(()=>[a(l).modal.value?(s(),o(A,e({key:0,ref:a(d)},{...r,...a(u),...t.$attrs}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16)):(s(),o(j,e({key:1,ref:a(d)},{...r,...a(u),...t.$attrs}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),N=i({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(t){let n=t;w();let r=T();return(t,i)=>(s(),o(a(l),e(n,{id:a(r).descriptionId}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16,[`id`]))}}),P=i({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=T();return v(!0),w(),(e,n)=>(s(),o(a(l),{as:e.as,"as-child":e.asChild,"data-state":a(t).open.value?`open`:`closed`,style:{"pointer-events":`auto`}},{default:p(()=>[c(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),F=i({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let i=T(),{forwardRef:l}=w();return(t,u)=>a(i)?.modal.value?(s(),o(a(g),{key:0,present:t.forceMount||a(i).open.value},{default:p(()=>[n(P,e(t.$attrs,{ref:a(l),as:t.as,"as-child":t.asChild}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16,[`as`,`as-child`])]),_:3},8,[`present`])):r(`v-if`,!0)}}),I=i({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(t){let n=t,r=T();return w(),(t,i)=>(s(),o(a(l),e(n,{id:a(r).titleId}),{default:p(()=>[c(t.$slots,`default`)]),_:3},16,[`id`]))}});export{O as a,M as i,F as n,D as o,N as r,I as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{It as e,K as t,P as n,Pt as r,St as i,U as a,at as o,p as s,r as c,yt as l}from"./button-
|
|
1
|
+
import{It as e,K as t,P as n,Pt as r,St as i,U as a,at as o,p as s,r as c,yt as l}from"./button-BkhL20Qz.js";var u=t({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(t,{emit:u}){let d=t,f=s(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(t,s)=>l((o(),a(`input`,{"onUpdate:modelValue":s[0]||=e=>i(f)?f.value=e:null,"data-slot":`input`,class:e(r(c)(`dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,d.class))},null,2)),[[n,r(f)]])}});export{u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,K as t,Pt as n,V as r,at as i,b as a,ct as o,i as s,r as c,vt as l}from"./button-
|
|
1
|
+
import{$ as e,K as t,Pt as n,V as r,at as i,b as a,ct as o,i as s,r as c,vt as l}from"./button-BkhL20Qz.js";import{t as u}from"./useForwardExpose-Pf45y-q1.js";var d=t({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(t){let a=t;return u(),(t,c)=>(i(),r(n(s),e(a,{onMousedown:c[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:l(()=>[o(t.$slots,`default`)]),_:3},16))}}),f=t({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let s=t,u=a(s,`class`);return(t,a)=>(i(),r(n(d),e({"data-slot":`label`},n(u),{class:n(c)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,s.class)}),{default:l(()=>[o(t.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,Et as t,G as n,H as r,I as i,K as a,O as o,Pt as s,U as c,W as l,at as u,j as d,n as f,vt as p,zt as m}from"./button-
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,I as i,K as a,O as o,Pt as s,U as c,W as l,at as u,j as d,n as f,vt as p,zt as m}from"./button-BkhL20Qz.js";import{t as h}from"./Label-CmG21jDR.js";import{n as g,t as _}from"./CardContent-BIgWZo6N.js";import{t as v}from"./Input-BA5UO-Ab.js";var y={class:`min-h-screen flex items-center justify-center bg-background`},b={key:0,class:`text-destructive text-sm`},x=a({__name:`Login`,setup(a){let x=d(),S=t(``),C=t(``),w=t(!1);async function T(){if(S.value){C.value=``,w.value=!0;try{await o.login(S.value),x.push(`/`)}catch(e){C.value=e.response?.data?.error?.message||`登录失败`}finally{w.value=!1}}}return(t,a)=>(u(),c(`div`,y,[n(s(g),{class:`w-full max-w-sm shadow-lg`},{default:p(()=>[n(s(_),{class:`pt-6`},{default:p(()=>[a[2]||=e(`div`,{class:`text-center mb-6`},[e(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[e(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z`})])]),e(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`),e(`p`,{class:`text-sm text-muted-foreground mt-1`},`管理后台登录`)],-1),e(`form`,{onSubmit:i(T,[`prevent`]),class:`space-y-4`},[e(`div`,null,[n(s(h),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[1]||=[l(`密码`,-1)]]),_:1}),n(s(v),{modelValue:S.value,"onUpdate:modelValue":a[0]||=e=>S.value=e,type:`password`,placeholder:`输入管理员密码`,disabled:w.value},null,8,[`modelValue`,`disabled`])]),C.value?(u(),c(`p`,b,m(C.value),1)):r(``,!0),n(s(f),{type:`submit`,class:`w-full`,disabled:w.value},{default:p(()=>[l(m(w.value?`登录中...`:`登 录`),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{x as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,It as i,K as a,L as o,O as s,Pt as c,St as l,U as u,V as d,W as f,at as p,ht as m,n as h,nt as g,r as _,st as v,vt as y,z as b,zt as x}from"./button-BkhL20Qz.js";import{r as S,t as C}from"./UnifiedRequestDialog-BhGWzOYY.js";import{a as w,i as T,n as E,r as D,t as O}from"./SelectValue-Ct22fmR7.js";import{a as ee,n as te,o as ne,r as re,t as ie}from"./dialog-BeetdYQi.js";import{a as ae,i as k,n as A,o as oe,r as j,t as se}from"./TableHeader-R3y9M8qo.js";import{t as ce}from"./Label-CmG21jDR.js";import{t as M}from"./badge-CcgNasyU.js";import{n as N}from"./lib-BAWhmkfz.js";import{t as P}from"./Input-BA5UO-Ab.js";import{t as F}from"./format-CPdJtjZ5.js";var le=a({__name:`Skeleton`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(p(),u(`div`,{"data-slot":`skeleton`,class:i(c(_)(`bg-muted rounded-md animate-pulse`,t.class))},null,2))}}),I={key:1,class:`ml-4 text-muted-foreground text-xs`},L={class:`font-mono`},R={key:2,class:`text-muted-foreground`},z={key:1,class:`text-muted-foreground`},B={key:1,class:`text-muted-foreground`},V=a({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1}},emits:[`toggleExpand`,`openDetail`],setup(t,{emit:a}){let s=a;function l(e){if(!e)return`未知`;try{let t=JSON.parse(e);return t.action?t.detail?`${t.action}: ${t.detail}`:t.action:e}catch{return`未知`}}return(a,m)=>(p(),d(c(j),{class:i({"bg-destructive/10":!t.isChild&&(t.log.status_code??0)>=400,"bg-muted/20":t.isChild})},{default:y(()=>[n(c(k),{class:`w-10`},{default:y(()=>[!t.isChild&&t.log.child_count?(p(),d(c(h),{key:0,variant:`ghost`,size:`xs`,onClick:m[0]||=e=>s(`toggleExpand`,t.log)},{default:y(()=>[e(`span`,{class:i([`text-xs transition-transform`,t.expanded?``:`-rotate-90`])},`▼`,2)]),_:1})):r(``,!0),t.isChild?(p(),u(`span`,I,`└`)):r(``,!0)]),_:1}),n(c(k),{class:`font-mono text-xs text-muted-foreground`,title:t.log.id},{default:y(()=>[f(x(t.log.id.slice(0,8)),1)]),_:1},8,[`title`]),n(c(k),{class:`text-muted-foreground`},{default:y(()=>[f(x(c(F)(t.log.created_at)),1)]),_:1}),n(c(k),null,{default:y(()=>[n(c(M),{variant:t.log.api_type===`openai`?`default`:`secondary`},{default:y(()=>[f(x(t.log.api_type),1)]),_:1},8,[`variant`])]),_:1}),n(c(k),{class:`font-mono text-xs`},{default:y(()=>[f(x(t.log.model||`-`)+` `,1),!t.isChild&&t.log.original_model?(p(),d(c(M),{key:0,variant:`secondary`,class:`ml-1 text-xs`},{default:y(()=>[...m[2]||=[f(`已替换`,-1)]]),_:1})):r(``,!0)]),_:1}),n(c(k),{class:`text-xs`},{default:y(()=>[!t.isChild&&t.log.provider_id===c(`router`)?(p(),d(c(M),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:y(()=>[f(` 代理增强:`+x(l(t.log.upstream_request)),1)]),_:1})):t.log.backend_model||t.log.provider_name?(p(),u(o,{key:1},[e(`span`,L,x(t.log.backend_model||`-`),1),m[3]||=e(`span`,{class:`text-muted-foreground`},` @ `,-1),n(c(M),{variant:`outline`,class:`text-[10px] px-1 py-0`},{default:y(()=>[f(x(t.log.provider_name||t.log.provider_id||`-`),1)]),_:1})],64)):(p(),u(`span`,R,`-`))]),_:1}),n(c(k),null,{default:y(()=>[n(c(M),{variant:(t.log.status_code??0)<400?`default`:`destructive`},{default:y(()=>[f(x(t.log.status_code||`-`),1)]),_:1},8,[`variant`])]),_:1}),n(c(k),null,{default:y(()=>[f(x(t.log.latency_ms?t.log.latency_ms+`ms`:`-`),1)]),_:1}),n(c(k),null,{default:y(()=>[f(x(t.log.is_stream?`Yes`:`No`),1)]),_:1}),n(c(k),null,{default:y(()=>[t.log.is_retry?(p(),d(c(M),{key:0,variant:`outline`,class:`text-warning-dark border-warning`},{default:y(()=>[...m[4]||=[f(`重试`,-1)]]),_:1})):(p(),u(`span`,z,`-`))]),_:1}),n(c(k),null,{default:y(()=>[t.log.is_failover?(p(),d(c(M),{key:0,variant:`outline`,class:`text-danger-dark border-danger`},{default:y(()=>[...m[5]||=[f(`故障转移`,-1)]]),_:1})):(p(),u(`span`,B,`-`))]),_:1}),n(c(k),{class:`text-destructive text-xs`},{default:y(()=>[f(x(t.log.error_message||`-`),1)]),_:1}),n(c(k),null,{default:y(()=>[n(c(h),{variant:`ghost`,size:`sm`,onClick:m[1]||=e=>s(`openDetail`,t.log.id)},{default:y(()=>[...m[6]||=[f(`详情`,-1)]]),_:1})]),_:1})]),_:1},8,[`class`]))}}),H=[{label:`1h`,value:`1h`},{label:`5h`,value:`5h`},{label:`24h`,value:`24h`},{label:`7d`,value:`7d`},{label:`30d`,value:`30d`}];function ue(){let e=t(`5h`),n=t({start:``,end:``}),r=t(`all`),i=t(`all`),a=t(`all`),o=t(`all`),c=t([]),l=t([]),u=t([]),d=b(()=>n.value.start&&n.value.end&&n.value.start<n.value.end),f=b(()=>{let{start:e,end:t}=n.value;return!e||!t?``:e>=t?`结束时间须晚于开始时间`:``}),p=b(()=>{if(r.value===`all`)return u.value;let e=c.value.find(e=>e.id===r.value);if(!e)return u.value;let t=new Set(e.models);return u.value.filter(e=>t.has(e))});function m(e){return e.includes(`T`)?`${e}:00.000Z`:`${e}T00:00:00.000Z`}function h(e){return e.includes(`T`)?`${e}:59.999Z`:`${e}T23:59:59.999Z`}let _={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function v(){let t={};if(d.value)t.start_time=m(n.value.start),t.end_time=h(n.value.end);else{let n=_[e.value];n&&(t.start_time=new Date(Date.now()-n).toISOString())}return o.value!==`all`&&(t.api_type=o.value),r.value!==`all`&&(t.provider_id=r.value),i.value!==`all`&&(t.model=i.value),a.value!==`all`&&(t.router_key_id=a.value),t}function y(){n.value={start:``,end:``}}async function x(){try{c.value=await s.getProviders()}catch(e){console.error(`Failed to load providers:`,e),N.error(`加载供应商列表失败`)}}async function S(){try{l.value=await s.getRouterKeys()}catch(e){console.error(`Failed to load router keys:`,e),N.error(`加载密钥列表失败`)}}async function C(){try{let e=await s.getMetricsSummary({period:`30d`});u.value=[...new Set(e.map(e=>e.backend_model))]}catch{u.value=[]}}return g(()=>{Promise.allSettled([x(),S(),C()])}),{PERIODS:H,period:e,dateRange:n,dateRangeError:f,providerFilter:r,modelFilter:i,keyFilter:a,apiTypeFilter:o,providers:c,routerKeys:l,filteredModelOptions:p,hasDateRange:d,clearDateRange:y,buildFilterParams:v}}var U=20,W=864e5;function de(){let e=t([]),n=t(0),r=t(1),i=t({}),a=t(30),o=t(!1),c=t(new Set),l=t({}),u=t({}),d=t(!1),f=t(null),p=b(()=>e.value.length>=U);async function m(t){t&&(i.value=t);try{let t=await s.getLogs({page:r.value,limit:U,view:`grouped`,...i.value});e.value=t.data,n.value=t.total,c.value.clear(),l.value={},u.value={}}catch(e){console.error(`Failed to load logs:`,e),N.error(`加载日志失败`)}}function h(){r.value>1&&(r.value--,m())}function g(){r.value++,m()}async function _(){try{let e=new Date(Date.now()-a.value*W).toISOString(),t=await s.deleteLogsBefore(e);o.value=!1,r.value=1,await m(),N.success(`已清理 ${t.deleted} 条日志`)}catch(e){console.error(`Failed to cleanup logs:`,e),N.error(`清理日志失败`)}}async function v(e){let t=e.id;if(c.value.has(t)){c.value.delete(t);return}if(c.value.add(t),!l.value[t]){u.value[t]=!0;try{l.value[t]=await s.getLogChildren(t)}catch(e){console.error(`Failed to load child logs:`,e),N.error(`加载子请求失败`)}finally{u.value[t]=!1}}}async function y(e){try{f.value=await s.getLogDetail(e),d.value=!0}catch(e){console.error(`Failed to load log detail:`,e),N.error(`加载日志详情失败`)}}return{PAGE_SIZE:U,logs:e,total:n,page:r,hasMore:p,cleanupDays:a,showCleanup:o,expandedRows:c,childLogs:l,childLoading:u,logDetailOpen:d,selectedLogEntry:f,loadLogs:m,prevPage:h,nextPage:g,handleCleanup:_,toggleExpand:v,openLogDetail:y}}var fe={class:`p-6`},pe={class:`flex items-center justify-between mb-4`},me={class:`flex flex-wrap items-center gap-2 mb-4`},he={class:`flex gap-1`},ge={class:`flex items-center gap-1`},_e={key:1,class:`text-xs text-destructive whitespace-nowrap`},ve={class:`bg-card rounded-lg border overflow-hidden`},ye={class:`flex items-center justify-between mt-4`},be={class:`text-sm text-muted-foreground`},xe={class:`flex gap-1`},Se={class:`px-3 py-1 text-sm text-muted-foreground`},Ce={class:`mb-4`},we={class:`space-y-3`},Te={class:`flex items-center gap-3`},Ee={class:`flex justify-end`},G=13,De=300,Oe=3,K=a({__name:`Logs`,setup(i){let{PERIODS:a,period:_,dateRange:b,dateRangeError:M,providerFilter:F,modelFilter:I,keyFilter:L,providers:R,routerKeys:z,filteredModelOptions:B,clearDateRange:H,buildFilterParams:U}=ue(),{logs:W,total:K,page:q,hasMore:ke,cleanupDays:J,showCleanup:Y,expandedRows:Ae,childLogs:je,childLoading:Me,logDetailOpen:X,selectedLogEntry:Ne,loadLogs:Pe,prevPage:Fe,nextPage:Ie,handleCleanup:Le,toggleExpand:Re,openLogDetail:ze}=de(),Z=t(Oe),Q=t(!1);async function Be(){Q.value=!0;try{await s.setLogRetention(Z.value),N.success(`保留天数已更新`)}catch{N.error(`更新失败`)}finally{Q.value=!1}}async function Ve(){try{let{days:e}=await s.getLogRetention();Z.value=e}catch{N.error(`加载保留天数失败,使用默认值`)}}let $=null;return m([_,b,F,I,L],()=>{q.value=1,$&&clearTimeout($),$=setTimeout(()=>Pe(U()),De)},{deep:!0}),g(()=>{Pe(U()),Ve()}),(t,i)=>(p(),u(`div`,fe,[e(`div`,pe,[i[12]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`请求日志`,-1),n(c(h),{variant:`outline`,class:`text-destructive border-destructive hover:bg-destructive/10`,onClick:i[0]||=e=>Y.value=!0},{default:y(()=>[...i[11]||=[f(` 清理日志 `,-1)]]),_:1})]),e(`div`,me,[e(`div`,he,[(p(!0),u(o,null,v(c(a),e=>(p(),d(c(h),{key:e.value,variant:c(_)===e.value?`default`:`ghost`,size:`sm`,onClick:t=>_.value=e.value},{default:y(()=>[f(x(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),e(`div`,ge,[n(c(P),{type:`datetime-local`,modelValue:c(b).start,"onUpdate:modelValue":i[1]||=e=>c(b).start=e,class:`w-44`},null,8,[`modelValue`]),i[14]||=e(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),n(c(P),{type:`datetime-local`,modelValue:c(b).end,"onUpdate:modelValue":i[2]||=e=>c(b).end=e,class:`w-44`},null,8,[`modelValue`]),c(b).start||c(b).end?(p(),d(c(h),{key:0,variant:`ghost`,size:`sm`,onClick:c(H)},{default:y(()=>[...i[13]||=[f(`清除`,-1)]]),_:1},8,[`onClick`])):r(``,!0),c(M)?(p(),u(`span`,_e,x(c(M)),1)):r(``,!0)]),n(c(w),{modelValue:c(F),"onUpdate:modelValue":i[3]||=e=>l(F)?F.value=e:null},{default:y(()=>[n(c(E),{class:`w-28 truncate`},{default:y(()=>[n(c(O),{placeholder:`全部供应商`})]),_:1}),n(c(T),null,{default:y(()=>[n(c(D),{value:`all`},{default:y(()=>[...i[15]||=[f(`全部供应商`,-1)]]),_:1}),(p(!0),u(o,null,v(c(R),e=>(p(),d(c(D),{key:e.id,value:e.id},{default:y(()=>[f(x(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),n(c(w),{modelValue:c(I),"onUpdate:modelValue":i[4]||=e=>l(I)?I.value=e:null},{default:y(()=>[n(c(E),{class:`w-32 truncate`},{default:y(()=>[n(c(O),{placeholder:`全部模型`})]),_:1}),n(c(T),null,{default:y(()=>[n(c(D),{value:`all`},{default:y(()=>[...i[16]||=[f(`全部模型`,-1)]]),_:1}),(p(!0),u(o,null,v(c(B),e=>(p(),d(c(D),{key:e,value:e},{default:y(()=>[f(x(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),n(c(w),{modelValue:c(L),"onUpdate:modelValue":i[5]||=e=>l(L)?L.value=e:null},{default:y(()=>[n(c(E),{class:`w-32 truncate`},{default:y(()=>[n(c(O),{placeholder:`全部密钥`})]),_:1}),n(c(T),null,{default:y(()=>[n(c(D),{value:`all`},{default:y(()=>[...i[17]||=[f(`全部密钥`,-1)]]),_:1}),(p(!0),u(o,null,v(c(z),e=>(p(),d(c(D),{key:e.id,value:e.id},{default:y(()=>[f(x(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),e(`div`,ve,[n(c(oe),null,{default:y(()=>[n(c(se),null,{default:y(()=>[n(c(j),{class:`bg-muted`},{default:y(()=>[n(c(A),{class:`w-10`}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[18]||=[f(`ID`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[19]||=[f(`时间`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[20]||=[f(`类型`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[21]||=[f(`模型`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[22]||=[f(`实际转发`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[23]||=[f(`状态码`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[24]||=[f(`延迟`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[25]||=[f(`流式`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[26]||=[f(`重试`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[27]||=[f(`故障转移`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[28]||=[f(`错误`,-1)]]),_:1}),n(c(A),{class:`text-muted-foreground`},{default:y(()=>[...i[29]||=[f(`操作`,-1)]]),_:1})]),_:1})]),_:1}),n(c(ae),null,{default:y(()=>[(p(!0),u(o,null,v(c(W),e=>(p(),u(o,{key:e.id},[n(V,{log:e,expanded:c(Ae).has(e.id),onToggleExpand:c(Re),onOpenDetail:c(ze)},null,8,[`log`,`expanded`,`onToggleExpand`,`onOpenDetail`]),c(Ae).has(e.id)?(p(),u(o,{key:0},[c(Me)[e.id]?(p(),d(c(j),{key:0},{default:y(()=>[n(c(k),{colspan:G,class:`text-center py-2 pl-10`},{default:y(()=>[n(c(le),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):c(je)[e.id]?.length?(p(!0),u(o,{key:1},v(c(je)[e.id],e=>(p(),d(V,{key:e.id,log:e,"is-child":!0,onOpenDetail:c(ze)},null,8,[`log`,`onOpenDetail`]))),128)):r(``,!0)],64)):r(``,!0)],64))),128)),c(W).length===0?(p(),d(c(j),{key:0},{default:y(()=>[n(c(k),{colspan:G,class:`text-center text-muted-foreground py-8`},{default:y(()=>[...i[30]||=[f(`暂无日志`,-1)]]),_:1})]),_:1})):r(``,!0)]),_:1})]),_:1})]),e(`div`,ye,[e(`p`,be,`共 `+x(c(K))+` 条`,1),e(`div`,xe,[n(c(h),{variant:`outline`,size:`sm`,onClick:c(Fe),disabled:c(q)<=1},{default:y(()=>[...i[31]||=[f(`上一页`,-1)]]),_:1},8,[`onClick`,`disabled`]),e(`span`,Se,`第 `+x(c(q))+` 页`,1),n(c(h),{variant:`outline`,size:`sm`,onClick:c(Ie),disabled:!c(ke)},{default:y(()=>[...i[32]||=[f(`下一页`,-1)]]),_:1},8,[`onClick`,`disabled`])])]),n(C,{open:c(X),"onUpdate:open":i[6]||=e=>l(X)?X.value=e:null,source:`history`,"log-entry":c(Ne)},null,8,[`open`,`log-entry`]),n(c(ne),{open:c(Y),"onUpdate:open":i[10]||=e=>l(Y)?Y.value=e:null},{default:y(()=>[n(c(ee),null,{default:y(()=>[n(c(te),null,{default:y(()=>[n(c(ie),null,{default:y(()=>[...i[33]||=[f(`清理日志`,-1)]]),_:1})]),_:1}),i[41]||=e(`p`,{class:`text-sm text-muted-foreground`},`删除指定天数之前的日志`,-1),e(`div`,Ce,[n(c(ce),{class:`block text-sm font-medium text-foreground mb-1`},{default:y(()=>[...i[34]||=[f(`保留最近天数`,-1)]]),_:1}),n(c(P),{modelValue:c(J),"onUpdate:modelValue":i[7]||=e=>l(J)?J.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),n(c(S)),e(`div`,we,[i[38]||=e(`div`,{class:`text-sm font-medium`},`自动清理设置`,-1),e(`div`,Te,[n(c(ce),{class:`whitespace-nowrap`},{default:y(()=>[...i[35]||=[f(`保留天数`,-1)]]),_:1}),n(c(P),{type:`number`,modelValue:Z.value,"onUpdate:modelValue":i[8]||=e=>Z.value=e,modelModifiers:{number:!0},min:0,max:90,class:`w-20`},null,8,[`modelValue`]),i[36]||=e(`span`,{class:`text-xs text-muted-foreground`},`0 = 不自动清理`,-1)]),e(`div`,Ee,[n(c(h),{size:`sm`,onClick:Be,disabled:Q.value},{default:y(()=>[...i[37]||=[f(` 保存设置 `,-1)]]),_:1},8,[`disabled`])])]),n(c(re),null,{default:y(()=>[n(c(h),{variant:`outline`,onClick:i[9]||=e=>Y.value=!1},{default:y(()=>[...i[39]||=[f(`取消`,-1)]]),_:1}),n(c(h),{variant:`destructive`,onClick:c(Le)},{default:y(()=>[...i[40]||=[f(`确认清理`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{K as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,Et as t,G as n,H as r,I as i,K as a,L as o,O as s,Pt as c,U as l,V as u,W as d,at as f,ht as p,n as m,nt as h,st as g,vt as _,z as v,zt as y}from"./button-BKJB3nEQ.js";import{a as b,i as x,n as S,r as C,t as w}from"./SelectValue-DS4Z8y0u.js";import{n as T,r as E,t as D}from"./CollapsibleTrigger-DooxvEnx.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./dialog-C0B-Xn-S.js";import{a as P,c as F,i as I,n as L,o as R,r as z,t as B}from"./alert-dialog-BzyDZnoE.js";import{t as V}from"./Label-IbQFgxLe.js";import{t as H}from"./badge-BTjuxlp4.js";import{n as U}from"./lib-BGW4QyKP.js";import{n as W,t as ee}from"./CardContent-3ytnac7B.js";import{n as te,t as G}from"./CardTitle-BHZE8Rty.js";import{t as K}from"./Input-JApdUstN.js";var q={key:0,class:`text-sm text-destructive mt-1`},J={class:`border rounded-lg p-3 space-y-3`},Y={class:`flex gap-3`},X={class:`flex-1`},Z={key:0,class:`text-sm text-destructive mt-1`},Q={class:`flex-1`},ne={key:0,class:`text-sm text-destructive mt-1`},re={class:`border rounded-lg p-3 space-y-3`},ie={class:`flex items-center justify-between`},ae={class:`flex items-end gap-2`},oe={class:`w-24`},se={key:0,class:`text-sm text-destructive mt-1`},ce={class:`w-24`},le={key:0,class:`text-sm text-destructive mt-1`},ue={class:`flex gap-3`},de={class:`flex-1`},fe={key:0,class:`text-sm text-destructive mt-1`},pe={class:`flex-1`},me={key:0,class:`text-sm text-destructive mt-1`},he={key:0,class:`text-sm text-muted-foreground`},ge={key:1,class:`border rounded-lg p-3 space-y-3`},_e={class:`flex items-center justify-between`},ve={key:0,class:`text-sm text-destructive`},ye={class:`flex gap-3`},be={class:`flex-1`},xe={key:0,class:`text-sm text-destructive mt-1`},Se={class:`flex-1`},Ce={key:0,class:`text-sm text-destructive mt-1`},we={class:`flex justify-end gap-1`},Te={key:1,class:`text-sm text-muted-foreground`},Ee=a({__name:`MappingGroupFormDialog`,props:{open:{type:Boolean},editingId:{},form:{},providers:{},providerModels:{}},emits:[`update:open`,`save`,`addWindow`,`removeWindow`,`addTarget`,`removeTarget`,`moveTargetUp`,`moveTargetDown`],setup(a,{emit:s}){let h=a,T=s,E=v(()=>h.providerModels.get(h.form.default.provider_id)||[]);function D(e){let t=h.form.windows[e]?.target?.provider_id;return t&&h.providerModels.get(t)||[]}function P(e){if(typeof e!=`string`)return;h.form.default.provider_id=e;let t=h.providerModels.get(e)||[];h.form.default.backend_model=t[0]||``}function F(e,t){if(typeof t!=`string`)return;h.form.windows[e].target.provider_id=t;let n=h.providerModels.get(t)||[];h.form.windows[e].target.backend_model=n[0]||``}function I(e){let t=h.form.targets[e]?.provider_id;return t&&h.providerModels.get(t)||[]}function L(e,t){if(typeof t!=`string`)return;h.form.targets[e].provider_id=t;let n=h.providerModels.get(t)||[];h.form.targets[e].backend_model=n[0]||``}function R(){H()&&T(`save`)}let z=/^\d{2}:\d{2}$/,B=t({});function H(){let e={};return h.form.client_model.trim()||(e.client_model=`请输入客户端模型名称`),h.form.strategy===`scheduled`?(h.form.default.provider_id||(e[`default.provider_id`]=`请选择供应商`),h.form.default.backend_model||(e[`default.backend_model`]=`请选择后端模型`),h.form.windows.forEach((t,n)=>{z.test(t.start)||(e[`window.${n}.start`]=`格式:HH:MM`),z.test(t.end)||(e[`window.${n}.end`]=`格式:HH:MM`),t.target.provider_id||(e[`window.${n}.provider_id`]=`请选择供应商`),t.target.backend_model||(e[`window.${n}.backend_model`]=`请选择后端模型`)})):(h.form.targets.length===0&&(e.targets=`至少添加一个目标`),h.form.targets.forEach((t,n)=>{t.provider_id||(e[`target.${n}.provider_id`]=`请选择供应商`),t.backend_model||(e[`target.${n}.backend_model`]=`请选择后端模型`)})),B.value=e,Object.keys(e).length===0}return p(()=>h.open,e=>{e&&(B.value={})}),(t,s)=>(f(),u(c(j),{open:a.open,"onUpdate:open":s[7]||=e=>T(`update:open`,e)},{default:_(()=>[n(c(O),{class:`max-w-2xl`},{default:_(()=>[n(c(A),null,{default:_(()=>[n(c(N),null,{default:_(()=>[d(y(a.editingId?`编辑分组`:`添加分组`),1)]),_:1}),n(c(k),null,{default:_(()=>[...s[8]||=[d(`配置客户端模型到后端供应商模型的映射规则`,-1)]]),_:1})]),_:1}),e(`form`,{onSubmit:i(R,[`prevent`]),class:`space-y-4`},[e(`div`,null,[n(c(V),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[...s[9]||=[d(`客户端模型`,-1)]]),_:1}),n(c(K),{modelValue:a.form.client_model,"onUpdate:modelValue":s[0]||=e=>a.form.client_model=e,type:`text`,required:``,onInput:s[1]||=e=>delete B.value.client_model},null,8,[`modelValue`]),B.value.client_model?(f(),l(`p`,q,y(B.value.client_model),1)):r(``,!0)]),e(`div`,null,[n(c(V),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[...s[10]||=[d(`策略`,-1)]]),_:1}),n(c(b),{modelValue:a.form.strategy,"onUpdate:modelValue":s[2]||=e=>a.form.strategy=e},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择策略`})]),_:1}),n(c(x),null,{default:_(()=>[n(c(C),{value:`scheduled`},{default:_(()=>[...s[11]||=[d(`定时切换 (scheduled)`,-1)]]),_:1}),n(c(C),{value:`round-robin`},{default:_(()=>[...s[12]||=[d(`轮询 (round-robin)`,-1)]]),_:1}),n(c(C),{value:`random`},{default:_(()=>[...s[13]||=[d(`随机 (random)`,-1)]]),_:1}),n(c(C),{value:`failover`},{default:_(()=>[...s[14]||=[d(`故障转移 (failover)`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),a.form.strategy===`scheduled`?(f(),l(o,{key:0},[e(`div`,J,[s[17]||=e(`div`,{class:`text-sm font-medium text-foreground`},`默认目标`,-1),e(`div`,Y,[e(`div`,X,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[15]||=[d(`供应商`,-1)]]),_:1}),n(c(b),{"model-value":a.form.default.provider_id,"onUpdate:modelValue":P},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择供应商`})]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(a.providers,e=>(f(),u(c(C),{key:e.id,value:e.id},{default:_(()=>[d(y(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),B.value[`default.provider_id`]?(f(),l(`p`,Z,y(B.value[`default.provider_id`]),1)):r(``,!0)]),e(`div`,Q,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[16]||=[d(`后端模型`,-1)]]),_:1}),n(c(b),{modelValue:a.form.default.backend_model,"onUpdate:modelValue":s[3]||=e=>a.form.default.backend_model=e,disabled:E.value.length===0},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:E.value.length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(E.value,e=>(f(),u(c(C),{key:e,value:e},{default:_(()=>[d(y(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`disabled`]),B.value[`default.backend_model`]?(f(),l(`p`,ne,y(B.value[`default.backend_model`]),1)):r(``,!0)])])]),e(`div`,re,[e(`div`,ie,[s[19]||=e(`div`,{class:`text-sm font-medium text-foreground`},`时间窗口`,-1),n(c(m),{type:`button`,variant:`outline`,size:`sm`,onClick:s[4]||=e=>T(`addWindow`)},{default:_(()=>[...s[18]||=[d(`添加窗口`,-1)]]),_:1})]),(f(!0),l(o,null,g(a.form.windows,(t,i)=>(f(),l(`div`,{key:i,class:`border rounded-md p-2 space-y-2`},[e(`div`,ae,[e(`div`,oe,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[20]||=[d(`开始`,-1)]]),_:1}),n(c(K),{modelValue:t.start,"onUpdate:modelValue":e=>t.start=e,type:`text`,placeholder:`HH:MM`,required:``,onInput:e=>delete B.value[`window.${i}.start`]},null,8,[`modelValue`,`onUpdate:modelValue`,`onInput`]),B.value[`window.${i}.start`]?(f(),l(`p`,se,y(B.value[`window.${i}.start`]),1)):r(``,!0)]),s[23]||=e(`span`,{class:`text-muted-foreground pb-1.5`},`-`,-1),e(`div`,ce,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[21]||=[d(`结束`,-1)]]),_:1}),n(c(K),{modelValue:t.end,"onUpdate:modelValue":e=>t.end=e,type:`text`,placeholder:`HH:MM`,required:``,onInput:e=>delete B.value[`window.${i}.end`]},null,8,[`modelValue`,`onUpdate:modelValue`,`onInput`]),B.value[`window.${i}.end`]?(f(),l(`p`,le,y(B.value[`window.${i}.end`]),1)):r(``,!0)]),s[24]||=e(`div`,{class:`flex-1`},null,-1),n(c(m),{type:`button`,variant:`ghost`,size:`sm`,class:`text-destructive shrink-0`,onClick:e=>T(`removeWindow`,i)},{default:_(()=>[...s[22]||=[d(`删除`,-1)]]),_:1},8,[`onClick`])]),e(`div`,ue,[e(`div`,de,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[25]||=[d(`供应商`,-1)]]),_:1}),n(c(b),{"model-value":t.target.provider_id,"onUpdate:modelValue":e=>F(i,e)},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择供应商`})]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(a.providers,e=>(f(),u(c(C),{key:e.id,value:e.id},{default:_(()=>[d(y(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`,`onUpdate:modelValue`]),B.value[`window.${i}.provider_id`]?(f(),l(`p`,fe,y(B.value[`window.${i}.provider_id`]),1)):r(``,!0)]),e(`div`,pe,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[26]||=[d(`后端模型`,-1)]]),_:1}),n(c(b),{modelValue:t.target.backend_model,"onUpdate:modelValue":e=>t.target.backend_model=e,disabled:D(i).length===0},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:D(i).length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:2},1024),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(D(i),e=>(f(),u(c(C),{key:e,value:e},{default:_(()=>[d(y(e),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`disabled`]),B.value[`window.${i}.backend_model`]?(f(),l(`p`,me,y(B.value[`window.${i}.backend_model`]),1)):r(``,!0)])])]))),128)),a.form.windows.length===0?(f(),l(`div`,he,`暂无窗口`)):r(``,!0)])],64)):(f(),l(`div`,ge,[e(`div`,_e,[s[28]||=e(`div`,{class:`text-sm font-medium text-foreground`},`目标列表`,-1),n(c(m),{type:`button`,variant:`outline`,size:`sm`,onClick:s[5]||=e=>T(`addTarget`)},{default:_(()=>[...s[27]||=[d(`添加目标`,-1)]]),_:1})]),B.value.targets?(f(),l(`p`,ve,y(B.value.targets),1)):r(``,!0),(f(!0),l(o,null,g(a.form.targets,(t,i)=>(f(),l(`div`,{key:i,class:`border rounded-md p-2 space-y-2`},[e(`div`,ye,[e(`div`,be,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[29]||=[d(`供应商`,-1)]]),_:1}),n(c(b),{"model-value":t.provider_id,"onUpdate:modelValue":e=>L(i,e)},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择供应商`})]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(a.providers,e=>(f(),u(c(C),{key:e.id,value:e.id},{default:_(()=>[d(y(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`,`onUpdate:modelValue`]),B.value[`target.${i}.provider_id`]?(f(),l(`p`,xe,y(B.value[`target.${i}.provider_id`]),1)):r(``,!0)]),e(`div`,Se,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[30]||=[d(`后端模型`,-1)]]),_:1}),n(c(b),{modelValue:t.backend_model,"onUpdate:modelValue":e=>t.backend_model=e,disabled:I(i).length===0},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:I(i).length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:2},1024),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(I(i),e=>(f(),u(c(C),{key:e,value:e},{default:_(()=>[d(y(e),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`disabled`]),B.value[`target.${i}.backend_model`]?(f(),l(`p`,Ce,y(B.value[`target.${i}.backend_model`]),1)):r(``,!0)])]),e(`div`,we,[a.form.strategy===`failover`?(f(),u(c(m),{key:0,type:`button`,variant:`ghost`,size:`sm`,disabled:i===0,onClick:e=>T(`moveTargetUp`,i)},{default:_(()=>[...s[31]||=[d(`↑`,-1)]]),_:1},8,[`disabled`,`onClick`])):r(``,!0),a.form.strategy===`failover`?(f(),u(c(m),{key:1,type:`button`,variant:`ghost`,size:`sm`,disabled:i===a.form.targets.length-1,onClick:e=>T(`moveTargetDown`,i)},{default:_(()=>[...s[32]||=[d(`↓`,-1)]]),_:1},8,[`disabled`,`onClick`])):r(``,!0),n(c(m),{type:`button`,variant:`ghost`,size:`sm`,class:`text-destructive shrink-0`,onClick:e=>T(`removeTarget`,i)},{default:_(()=>[...s[33]||=[d(`删除`,-1)]]),_:1},8,[`onClick`])])]))),128)),a.form.targets.length===0?(f(),l(`div`,Te,`暂无目标`)):r(``,!0)])),n(c(M),null,{default:_(()=>[n(c(m),{type:`button`,variant:`outline`,onClick:s[6]||=e=>T(`update:open`,!1)},{default:_(()=>[...s[34]||=[d(`取消`,-1)]]),_:1}),n(c(m),{type:`submit`},{default:_(()=>[...s[35]||=[d(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]))}}),De=a({__name:`MappingGroupDeleteDialog`,props:{target:{}},emits:[`confirm`,`cancel`],setup(e,{emit:t}){let r=t;return(t,i)=>(f(),u(c(F),{open:!!e.target,"onUpdate:open":i[1]||=e=>{e||r(`cancel`)}},{default:_(()=>[n(c(P),null,{default:_(()=>[n(c(L),null,{default:_(()=>[n(c(B),null,{default:_(()=>[...i[2]||=[d(`确认删除`,-1)]]),_:1}),n(c(I),null,{default:_(()=>[d(`确定要删除分组「`+y(e.target?.client_model)+`」吗?`,1)]),_:1})]),_:1}),n(c(z),null,{default:_(()=>[n(c(R),null,{default:_(()=>[...i[3]||=[d(`取消`,-1)]]),_:1}),n(c(m),{variant:`destructive`,onClick:i[0]||=e=>r(`confirm`)},{default:_(()=>[...i[4]||=[d(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]))}}),Oe={class:`p-6`},ke={class:`flex items-center justify-between mb-4`},Ae={class:`space-y-4`},je={class:`flex items-center gap-3`},Me={class:`flex items-center gap-2`},Ne={key:0,class:`space-y-3`},Pe={class:`flex items-center gap-2 text-sm`},$={class:`font-mono`},Fe={key:0,class:`space-y-2`},Ie={class:`font-mono text-xs bg-muted px-2 py-0.5 rounded`},Le={class:`font-mono`},Re={key:1,class:`text-sm text-muted-foreground`},ze={key:1,class:`space-y-2`},Be={key:0,class:`text-muted-foreground text-xs`},Ve={class:`font-mono`},He={key:0,class:`text-sm text-muted-foreground`},Ue={key:0,class:`text-center text-muted-foreground py-12 bg-card rounded-xl border`},We=a({__name:`ModelMappings`,setup(i){let a={client_model:``,strategy:`scheduled`,default:{backend_model:``,provider_id:``},windows:[],targets:[]},p=t([]),b=t([]),x=t(!1),S=t(null),C=t(null),w=t({...a}),O=v(()=>{let e=new Map;for(let t of b.value)e.set(t.id,t.name);return e}),k=v(()=>{let e=new Map;for(let t of b.value){let n=t.models;Array.isArray(n)&&n.length>0&&e.set(t.id,[...n])}return e}),A=v(()=>p.value.map(e=>{let t={};try{t=JSON.parse(e.rule)}catch{}return{...e,parsedRule:t}}));async function j(){let e=await Promise.allSettled([s.getMappingGroups(),s.getProviders()]);e[0].status===`fulfilled`?p.value=e[0].value:console.error(`Failed to load groups:`,e[0].reason),e[1].status===`fulfilled`?b.value=e[1].value:(console.error(`Failed to load providers:`,e[1].reason),U.error(`加载供应商失败`))}function M(){S.value=null;let e=b.value[0]?.id||``;w.value={client_model:``,strategy:`scheduled`,default:{backend_model:(k.value.get(e)||[])[0]||``,provider_id:e},windows:[],targets:[]},x.value=!0}function N(e){S.value=e.id;let t={};try{t=JSON.parse(e.rule)}catch{}if(e.strategy===`scheduled`)w.value={...a,client_model:e.client_model,strategy:e.strategy,default:{backend_model:t.default?.backend_model||``,provider_id:t.default?.provider_id||b.value[0]?.id||``},windows:t.windows?JSON.parse(JSON.stringify(t.windows)):[]};else{let n=b.value[0]?.id||``,r=k.value.get(n)||[];w.value={...a,client_model:e.client_model,strategy:e.strategy,targets:Array.isArray(t.targets)?t.targets.map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||n})):[{backend_model:r[0]||``,provider_id:n}]}}x.value=!0}function P(){let e=b.value[0]?.id||``,t=k.value.get(e)||[];w.value.windows.push({start:``,end:``,target:{backend_model:t[0]||``,provider_id:e}})}function F(e){w.value.windows.splice(e,1)}function I(){let e=b.value[0]?.id||``,t=k.value.get(e)||[];w.value.targets.push({backend_model:t[0]||``,provider_id:e})}function L(e){w.value.targets.splice(e,1)}function R(e){if(e<=0)return;let t=w.value.targets;[t[e-1],t[e]]=[t[e],t[e-1]]}function z(e){let t=w.value.targets;e>=t.length-1||([t[e],t[e+1]]=[t[e+1],t[e]])}async function B(){try{let e;e=w.value.strategy===`scheduled`?JSON.stringify({default:w.value.default,windows:w.value.windows}):JSON.stringify({targets:w.value.targets});let t={client_model:w.value.client_model,strategy:w.value.strategy,rule:e};S.value?await s.updateMappingGroup(S.value,t):await s.createMappingGroup(t),x.value=!1,await j()}catch(e){console.error(`Failed to save mapping group:`,e),U.error(`保存分组失败`)}}async function V(){let e=C.value;if(e){C.value=null;try{await s.deleteMappingGroup(e.id),await j()}catch(e){console.error(`Failed to delete mapping group:`,e),U.error(`删除分组失败`)}}}return h(j),(t,i)=>(f(),l(`div`,Oe,[e(`div`,ke,[i[3]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`模型映射`,-1),n(c(m),{onClick:M,class:`flex items-center gap-1`},{default:_(()=>[...i[2]||=[e(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),d(` 添加分组 `,-1)]]),_:1})]),e(`div`,Ae,[(f(!0),l(o,null,g(A.value,t=>(f(),u(c(W),{key:t.id},{default:_(()=>[n(c(E),{"default-open":!0},{default:_(()=>[n(c(te),{class:`flex flex-row items-center justify-between gap-4`},{default:_(()=>[e(`div`,je,[n(c(G),{class:`font-mono text-sm`},{default:_(()=>[d(y(t.client_model),1)]),_:2},1024),n(c(H),{variant:`secondary`},{default:_(()=>[d(y(t.strategy),1)]),_:2},1024)]),e(`div`,Me,[n(c(D),{"as-child":``},{default:_(()=>[n(c(m),{variant:`ghost`,size:`sm`},{default:_(()=>[...i[4]||=[d(` 展开 `,-1)]]),_:1})]),_:1}),n(c(m),{variant:`ghost`,size:`sm`,onClick:e=>N(t)},{default:_(()=>[...i[5]||=[d(`编辑`,-1)]]),_:1},8,[`onClick`]),n(c(m),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>C.value=t},{default:_(()=>[...i[6]||=[d(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:2},1024),n(c(T),null,{default:_(()=>[n(c(ee),null,{default:_(()=>[t.strategy===`scheduled`?(f(),l(`div`,Ne,[e(`div`,Pe,[i[7]||=e(`span`,{class:`text-muted-foreground`},`默认模型:`,-1),e(`span`,$,y(t.parsedRule.default?.backend_model||`-`),1),i[8]||=e(`span`,{class:`text-muted-foreground`},`/`,-1),e(`span`,null,y(O.value.get(t.parsedRule.default?.provider_id||``)||`-`),1)]),t.parsedRule.windows?.length?(f(),l(`div`,Fe,[i[10]||=e(`div`,{class:`text-sm text-muted-foreground`},`时间窗口`,-1),(f(!0),l(o,null,g(t.parsedRule.windows,(t,n)=>(f(),l(`div`,{key:n,class:`flex items-center gap-2 text-sm`},[e(`span`,Ie,y(t.start)+` - `+y(t.end),1),e(`span`,Le,y(t.target.backend_model),1),i[9]||=e(`span`,{class:`text-muted-foreground`},`/`,-1),e(`span`,null,y(O.value.get(t.target.provider_id)||t.target.provider_id),1)]))),128))])):(f(),l(`div`,Re,`无时间窗口`))])):(f(),l(`div`,ze,[(f(!0),l(o,null,g(t.parsedRule.targets||[],(n,a)=>(f(),l(`div`,{key:a,class:`flex items-center gap-2 text-sm`},[t.strategy===`failover`?(f(),l(`span`,Be,y(a+1)+`.`,1)):r(``,!0),e(`span`,Ve,y(n.backend_model),1),i[11]||=e(`span`,{class:`text-muted-foreground`},`/`,-1),e(`span`,null,y(O.value.get(n.provider_id)||n.provider_id),1)]))),128)),(t.parsedRule.targets||[]).length?r(``,!0):(f(),l(`div`,He,`无目标`))]))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128)),p.value.length===0?(f(),l(`div`,Ue,` 暂无映射分组 `)):r(``,!0)]),n(Ee,{open:x.value,"onUpdate:open":i[0]||=e=>x.value=e,"editing-id":S.value,form:w.value,providers:b.value,"provider-models":k.value,onSave:B,onAddWindow:P,onRemoveWindow:F,onAddTarget:I,onRemoveTarget:L,onMoveTargetUp:R,onMoveTargetDown:z},null,8,[`open`,`editing-id`,`form`,`providers`,`provider-models`]),n(De,{target:C.value,onConfirm:V,onCancel:i[1]||=e=>C.value=null},null,8,[`target`])]))}});export{We as default};
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,I as i,K as a,L as o,O as s,Pt as c,U as l,V as u,W as d,at as f,ht as p,n as m,nt as h,st as g,vt as _,z as v,zt as y}from"./button-BkhL20Qz.js";import{a as b,i as x,n as S,r as C,t as w}from"./SelectValue-Ct22fmR7.js";import{n as T,r as E,t as D}from"./CollapsibleTrigger-DG8JZQfm.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./dialog-BeetdYQi.js";import{a as P,c as F,i as I,n as L,o as R,r as z,t as B}from"./alert-dialog-BbI_a1Xz.js";import{t as V}from"./Label-CmG21jDR.js";import{t as H}from"./badge-CcgNasyU.js";import{n as U}from"./lib-BAWhmkfz.js";import{n as W,t as ee}from"./CardContent-BIgWZo6N.js";import{n as te,t as G}from"./CardTitle-BVVp36Pq.js";import{t as K}from"./Input-BA5UO-Ab.js";var q={key:0,class:`text-sm text-destructive mt-1`},J={class:`border rounded-lg p-3 space-y-3`},Y={class:`flex gap-3`},X={class:`flex-1`},Z={key:0,class:`text-sm text-destructive mt-1`},Q={class:`flex-1`},ne={key:0,class:`text-sm text-destructive mt-1`},re={class:`border rounded-lg p-3 space-y-3`},ie={class:`flex items-center justify-between`},ae={class:`flex items-end gap-2`},oe={class:`w-24`},se={key:0,class:`text-sm text-destructive mt-1`},ce={class:`w-24`},le={key:0,class:`text-sm text-destructive mt-1`},ue={class:`flex gap-3`},de={class:`flex-1`},fe={key:0,class:`text-sm text-destructive mt-1`},pe={class:`flex-1`},me={key:0,class:`text-sm text-destructive mt-1`},he={key:0,class:`text-sm text-muted-foreground`},ge={key:1,class:`border rounded-lg p-3 space-y-3`},_e={class:`flex items-center justify-between`},ve={key:0,class:`text-sm text-destructive`},ye={class:`flex gap-3`},be={class:`flex-1`},xe={key:0,class:`text-sm text-destructive mt-1`},Se={class:`flex-1`},Ce={key:0,class:`text-sm text-destructive mt-1`},we={class:`flex justify-end gap-1`},Te={key:1,class:`text-sm text-muted-foreground`},Ee=a({__name:`MappingGroupFormDialog`,props:{open:{type:Boolean},editingId:{},form:{},providers:{},providerModels:{}},emits:[`update:open`,`save`,`addWindow`,`removeWindow`,`addTarget`,`removeTarget`,`moveTargetUp`,`moveTargetDown`],setup(a,{emit:s}){let h=a,T=s,E=v(()=>h.providerModels.get(h.form.default.provider_id)||[]);function D(e){let t=h.form.windows[e]?.target?.provider_id;return t&&h.providerModels.get(t)||[]}function P(e){if(typeof e!=`string`)return;h.form.default.provider_id=e;let t=h.providerModels.get(e)||[];h.form.default.backend_model=t[0]||``}function F(e,t){if(typeof t!=`string`)return;h.form.windows[e].target.provider_id=t;let n=h.providerModels.get(t)||[];h.form.windows[e].target.backend_model=n[0]||``}function I(e){let t=h.form.targets[e]?.provider_id;return t&&h.providerModels.get(t)||[]}function L(e,t){if(typeof t!=`string`)return;h.form.targets[e].provider_id=t;let n=h.providerModels.get(t)||[];h.form.targets[e].backend_model=n[0]||``}function R(){H()&&T(`save`)}let z=/^\d{2}:\d{2}$/,B=t({});function H(){let e={};return h.form.client_model.trim()||(e.client_model=`请输入客户端模型名称`),h.form.strategy===`scheduled`?(h.form.default.provider_id||(e[`default.provider_id`]=`请选择供应商`),h.form.default.backend_model||(e[`default.backend_model`]=`请选择后端模型`),h.form.windows.forEach((t,n)=>{z.test(t.start)||(e[`window.${n}.start`]=`格式:HH:MM`),z.test(t.end)||(e[`window.${n}.end`]=`格式:HH:MM`),t.target.provider_id||(e[`window.${n}.provider_id`]=`请选择供应商`),t.target.backend_model||(e[`window.${n}.backend_model`]=`请选择后端模型`)})):(h.form.targets.length===0&&(e.targets=`至少添加一个目标`),h.form.targets.forEach((t,n)=>{t.provider_id||(e[`target.${n}.provider_id`]=`请选择供应商`),t.backend_model||(e[`target.${n}.backend_model`]=`请选择后端模型`)})),B.value=e,Object.keys(e).length===0}return p(()=>h.open,e=>{e&&(B.value={})}),(t,s)=>(f(),u(c(j),{open:a.open,"onUpdate:open":s[7]||=e=>T(`update:open`,e)},{default:_(()=>[n(c(O),{class:`max-w-2xl`},{default:_(()=>[n(c(A),null,{default:_(()=>[n(c(N),null,{default:_(()=>[d(y(a.editingId?`编辑分组`:`添加分组`),1)]),_:1}),n(c(k),null,{default:_(()=>[...s[8]||=[d(`配置客户端模型到后端供应商模型的映射规则`,-1)]]),_:1})]),_:1}),e(`form`,{onSubmit:i(R,[`prevent`]),class:`space-y-4`},[e(`div`,null,[n(c(V),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[...s[9]||=[d(`客户端模型`,-1)]]),_:1}),n(c(K),{modelValue:a.form.client_model,"onUpdate:modelValue":s[0]||=e=>a.form.client_model=e,type:`text`,required:``,onInput:s[1]||=e=>delete B.value.client_model},null,8,[`modelValue`]),B.value.client_model?(f(),l(`p`,q,y(B.value.client_model),1)):r(``,!0)]),e(`div`,null,[n(c(V),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[...s[10]||=[d(`策略`,-1)]]),_:1}),n(c(b),{modelValue:a.form.strategy,"onUpdate:modelValue":s[2]||=e=>a.form.strategy=e},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择策略`})]),_:1}),n(c(x),null,{default:_(()=>[n(c(C),{value:`scheduled`},{default:_(()=>[...s[11]||=[d(`定时切换 (scheduled)`,-1)]]),_:1}),n(c(C),{value:`round-robin`},{default:_(()=>[...s[12]||=[d(`轮询 (round-robin)`,-1)]]),_:1}),n(c(C),{value:`random`},{default:_(()=>[...s[13]||=[d(`随机 (random)`,-1)]]),_:1}),n(c(C),{value:`failover`},{default:_(()=>[...s[14]||=[d(`故障转移 (failover)`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),a.form.strategy===`scheduled`?(f(),l(o,{key:0},[e(`div`,J,[s[17]||=e(`div`,{class:`text-sm font-medium text-foreground`},`默认目标`,-1),e(`div`,Y,[e(`div`,X,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[15]||=[d(`供应商`,-1)]]),_:1}),n(c(b),{"model-value":a.form.default.provider_id,"onUpdate:modelValue":P},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择供应商`})]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(a.providers,e=>(f(),u(c(C),{key:e.id,value:e.id},{default:_(()=>[d(y(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),B.value[`default.provider_id`]?(f(),l(`p`,Z,y(B.value[`default.provider_id`]),1)):r(``,!0)]),e(`div`,Q,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[16]||=[d(`后端模型`,-1)]]),_:1}),n(c(b),{modelValue:a.form.default.backend_model,"onUpdate:modelValue":s[3]||=e=>a.form.default.backend_model=e,disabled:E.value.length===0},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:E.value.length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(E.value,e=>(f(),u(c(C),{key:e,value:e},{default:_(()=>[d(y(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`disabled`]),B.value[`default.backend_model`]?(f(),l(`p`,ne,y(B.value[`default.backend_model`]),1)):r(``,!0)])])]),e(`div`,re,[e(`div`,ie,[s[19]||=e(`div`,{class:`text-sm font-medium text-foreground`},`时间窗口`,-1),n(c(m),{type:`button`,variant:`outline`,size:`sm`,onClick:s[4]||=e=>T(`addWindow`)},{default:_(()=>[...s[18]||=[d(`添加窗口`,-1)]]),_:1})]),(f(!0),l(o,null,g(a.form.windows,(t,i)=>(f(),l(`div`,{key:i,class:`border rounded-md p-2 space-y-2`},[e(`div`,ae,[e(`div`,oe,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[20]||=[d(`开始`,-1)]]),_:1}),n(c(K),{modelValue:t.start,"onUpdate:modelValue":e=>t.start=e,type:`text`,placeholder:`HH:MM`,required:``,onInput:e=>delete B.value[`window.${i}.start`]},null,8,[`modelValue`,`onUpdate:modelValue`,`onInput`]),B.value[`window.${i}.start`]?(f(),l(`p`,se,y(B.value[`window.${i}.start`]),1)):r(``,!0)]),s[23]||=e(`span`,{class:`text-muted-foreground pb-1.5`},`-`,-1),e(`div`,ce,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[21]||=[d(`结束`,-1)]]),_:1}),n(c(K),{modelValue:t.end,"onUpdate:modelValue":e=>t.end=e,type:`text`,placeholder:`HH:MM`,required:``,onInput:e=>delete B.value[`window.${i}.end`]},null,8,[`modelValue`,`onUpdate:modelValue`,`onInput`]),B.value[`window.${i}.end`]?(f(),l(`p`,le,y(B.value[`window.${i}.end`]),1)):r(``,!0)]),s[24]||=e(`div`,{class:`flex-1`},null,-1),n(c(m),{type:`button`,variant:`ghost`,size:`sm`,class:`text-destructive shrink-0`,onClick:e=>T(`removeWindow`,i)},{default:_(()=>[...s[22]||=[d(`删除`,-1)]]),_:1},8,[`onClick`])]),e(`div`,ue,[e(`div`,de,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[25]||=[d(`供应商`,-1)]]),_:1}),n(c(b),{"model-value":t.target.provider_id,"onUpdate:modelValue":e=>F(i,e)},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择供应商`})]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(a.providers,e=>(f(),u(c(C),{key:e.id,value:e.id},{default:_(()=>[d(y(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`,`onUpdate:modelValue`]),B.value[`window.${i}.provider_id`]?(f(),l(`p`,fe,y(B.value[`window.${i}.provider_id`]),1)):r(``,!0)]),e(`div`,pe,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[26]||=[d(`后端模型`,-1)]]),_:1}),n(c(b),{modelValue:t.target.backend_model,"onUpdate:modelValue":e=>t.target.backend_model=e,disabled:D(i).length===0},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:D(i).length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:2},1024),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(D(i),e=>(f(),u(c(C),{key:e,value:e},{default:_(()=>[d(y(e),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`disabled`]),B.value[`window.${i}.backend_model`]?(f(),l(`p`,me,y(B.value[`window.${i}.backend_model`]),1)):r(``,!0)])])]))),128)),a.form.windows.length===0?(f(),l(`div`,he,`暂无窗口`)):r(``,!0)])],64)):(f(),l(`div`,ge,[e(`div`,_e,[s[28]||=e(`div`,{class:`text-sm font-medium text-foreground`},`目标列表`,-1),n(c(m),{type:`button`,variant:`outline`,size:`sm`,onClick:s[5]||=e=>T(`addTarget`)},{default:_(()=>[...s[27]||=[d(`添加目标`,-1)]]),_:1})]),B.value.targets?(f(),l(`p`,ve,y(B.value.targets),1)):r(``,!0),(f(!0),l(o,null,g(a.form.targets,(t,i)=>(f(),l(`div`,{key:i,class:`border rounded-md p-2 space-y-2`},[e(`div`,ye,[e(`div`,be,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[29]||=[d(`供应商`,-1)]]),_:1}),n(c(b),{"model-value":t.provider_id,"onUpdate:modelValue":e=>L(i,e)},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:`选择供应商`})]),_:1}),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(a.providers,e=>(f(),u(c(C),{key:e.id,value:e.id},{default:_(()=>[d(y(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`,`onUpdate:modelValue`]),B.value[`target.${i}.provider_id`]?(f(),l(`p`,xe,y(B.value[`target.${i}.provider_id`]),1)):r(``,!0)]),e(`div`,Se,[n(c(V),{class:`block text-xs text-muted-foreground mb-1`},{default:_(()=>[...s[30]||=[d(`后端模型`,-1)]]),_:1}),n(c(b),{modelValue:t.backend_model,"onUpdate:modelValue":e=>t.backend_model=e,disabled:I(i).length===0},{default:_(()=>[n(c(S),null,{default:_(()=>[n(c(w),{placeholder:I(i).length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:2},1024),n(c(x),null,{default:_(()=>[(f(!0),l(o,null,g(I(i),e=>(f(),u(c(C),{key:e,value:e},{default:_(()=>[d(y(e),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`disabled`]),B.value[`target.${i}.backend_model`]?(f(),l(`p`,Ce,y(B.value[`target.${i}.backend_model`]),1)):r(``,!0)])]),e(`div`,we,[a.form.strategy===`failover`?(f(),u(c(m),{key:0,type:`button`,variant:`ghost`,size:`sm`,disabled:i===0,onClick:e=>T(`moveTargetUp`,i)},{default:_(()=>[...s[31]||=[d(`↑`,-1)]]),_:1},8,[`disabled`,`onClick`])):r(``,!0),a.form.strategy===`failover`?(f(),u(c(m),{key:1,type:`button`,variant:`ghost`,size:`sm`,disabled:i===a.form.targets.length-1,onClick:e=>T(`moveTargetDown`,i)},{default:_(()=>[...s[32]||=[d(`↓`,-1)]]),_:1},8,[`disabled`,`onClick`])):r(``,!0),n(c(m),{type:`button`,variant:`ghost`,size:`sm`,class:`text-destructive shrink-0`,onClick:e=>T(`removeTarget`,i)},{default:_(()=>[...s[33]||=[d(`删除`,-1)]]),_:1},8,[`onClick`])])]))),128)),a.form.targets.length===0?(f(),l(`div`,Te,`暂无目标`)):r(``,!0)])),n(c(M),null,{default:_(()=>[n(c(m),{type:`button`,variant:`outline`,onClick:s[6]||=e=>T(`update:open`,!1)},{default:_(()=>[...s[34]||=[d(`取消`,-1)]]),_:1}),n(c(m),{type:`submit`},{default:_(()=>[...s[35]||=[d(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]))}}),De=a({__name:`MappingGroupDeleteDialog`,props:{target:{}},emits:[`confirm`,`cancel`],setup(e,{emit:t}){let r=t;return(t,i)=>(f(),u(c(F),{open:!!e.target,"onUpdate:open":i[1]||=e=>{e||r(`cancel`)}},{default:_(()=>[n(c(P),null,{default:_(()=>[n(c(L),null,{default:_(()=>[n(c(B),null,{default:_(()=>[...i[2]||=[d(`确认删除`,-1)]]),_:1}),n(c(I),null,{default:_(()=>[d(`确定要删除分组「`+y(e.target?.client_model)+`」吗?`,1)]),_:1})]),_:1}),n(c(z),null,{default:_(()=>[n(c(R),null,{default:_(()=>[...i[3]||=[d(`取消`,-1)]]),_:1}),n(c(m),{variant:`destructive`,onClick:i[0]||=e=>r(`confirm`)},{default:_(()=>[...i[4]||=[d(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]))}}),Oe={class:`p-6`},ke={class:`flex items-center justify-between mb-4`},Ae={class:`space-y-4`},je={class:`flex items-center gap-3`},Me={class:`flex items-center gap-2`},Ne={key:0,class:`space-y-3`},Pe={class:`flex items-center gap-2 text-sm`},$={class:`font-mono`},Fe={key:0,class:`space-y-2`},Ie={class:`font-mono text-xs bg-muted px-2 py-0.5 rounded`},Le={class:`font-mono`},Re={key:1,class:`text-sm text-muted-foreground`},ze={key:1,class:`space-y-2`},Be={key:0,class:`text-muted-foreground text-xs`},Ve={class:`font-mono`},He={key:0,class:`text-sm text-muted-foreground`},Ue={key:0,class:`text-center text-muted-foreground py-12 bg-card rounded-xl border`},We=a({__name:`ModelMappings`,setup(i){let a={client_model:``,strategy:`scheduled`,default:{backend_model:``,provider_id:``},windows:[],targets:[]},p=t([]),b=t([]),x=t(!1),S=t(null),C=t(null),w=t({...a}),O=v(()=>{let e=new Map;for(let t of b.value)e.set(t.id,t.name);return e}),k=v(()=>{let e=new Map;for(let t of b.value){let n=t.models;Array.isArray(n)&&n.length>0&&e.set(t.id,[...n])}return e}),A=v(()=>p.value.map(e=>{let t={};try{t=JSON.parse(e.rule)}catch{}return{...e,parsedRule:t}}));async function j(){let e=await Promise.allSettled([s.getMappingGroups(),s.getProviders()]);e[0].status===`fulfilled`?p.value=e[0].value:console.error(`Failed to load groups:`,e[0].reason),e[1].status===`fulfilled`?b.value=e[1].value:(console.error(`Failed to load providers:`,e[1].reason),U.error(`加载供应商失败`))}function M(){S.value=null;let e=b.value[0]?.id||``;w.value={client_model:``,strategy:`scheduled`,default:{backend_model:(k.value.get(e)||[])[0]||``,provider_id:e},windows:[],targets:[]},x.value=!0}function N(e){S.value=e.id;let t={};try{t=JSON.parse(e.rule)}catch{}if(e.strategy===`scheduled`)w.value={...a,client_model:e.client_model,strategy:e.strategy,default:{backend_model:t.default?.backend_model||``,provider_id:t.default?.provider_id||b.value[0]?.id||``},windows:t.windows?JSON.parse(JSON.stringify(t.windows)):[]};else{let n=b.value[0]?.id||``,r=k.value.get(n)||[];w.value={...a,client_model:e.client_model,strategy:e.strategy,targets:Array.isArray(t.targets)?t.targets.map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||n})):[{backend_model:r[0]||``,provider_id:n}]}}x.value=!0}function P(){let e=b.value[0]?.id||``,t=k.value.get(e)||[];w.value.windows.push({start:``,end:``,target:{backend_model:t[0]||``,provider_id:e}})}function F(e){w.value.windows.splice(e,1)}function I(){let e=b.value[0]?.id||``,t=k.value.get(e)||[];w.value.targets.push({backend_model:t[0]||``,provider_id:e})}function L(e){w.value.targets.splice(e,1)}function R(e){if(e<=0)return;let t=w.value.targets;[t[e-1],t[e]]=[t[e],t[e-1]]}function z(e){let t=w.value.targets;e>=t.length-1||([t[e],t[e+1]]=[t[e+1],t[e]])}async function B(){try{let e;e=w.value.strategy===`scheduled`?JSON.stringify({default:w.value.default,windows:w.value.windows}):JSON.stringify({targets:w.value.targets});let t={client_model:w.value.client_model,strategy:w.value.strategy,rule:e};S.value?await s.updateMappingGroup(S.value,t):await s.createMappingGroup(t),x.value=!1,await j()}catch(e){console.error(`Failed to save mapping group:`,e),U.error(`保存分组失败`)}}async function V(){let e=C.value;if(e){C.value=null;try{await s.deleteMappingGroup(e.id),await j()}catch(e){console.error(`Failed to delete mapping group:`,e),U.error(`删除分组失败`)}}}return h(j),(t,i)=>(f(),l(`div`,Oe,[e(`div`,ke,[i[3]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`模型映射`,-1),n(c(m),{onClick:M,class:`flex items-center gap-1`},{default:_(()=>[...i[2]||=[e(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),d(` 添加分组 `,-1)]]),_:1})]),e(`div`,Ae,[(f(!0),l(o,null,g(A.value,t=>(f(),u(c(W),{key:t.id},{default:_(()=>[n(c(E),{"default-open":!0},{default:_(()=>[n(c(te),{class:`flex flex-row items-center justify-between gap-4`},{default:_(()=>[e(`div`,je,[n(c(G),{class:`font-mono text-sm`},{default:_(()=>[d(y(t.client_model),1)]),_:2},1024),n(c(H),{variant:`secondary`},{default:_(()=>[d(y(t.strategy),1)]),_:2},1024)]),e(`div`,Me,[n(c(D),{"as-child":``},{default:_(()=>[n(c(m),{variant:`ghost`,size:`sm`},{default:_(()=>[...i[4]||=[d(` 展开 `,-1)]]),_:1})]),_:1}),n(c(m),{variant:`ghost`,size:`sm`,onClick:e=>N(t)},{default:_(()=>[...i[5]||=[d(`编辑`,-1)]]),_:1},8,[`onClick`]),n(c(m),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>C.value=t},{default:_(()=>[...i[6]||=[d(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:2},1024),n(c(T),null,{default:_(()=>[n(c(ee),null,{default:_(()=>[t.strategy===`scheduled`?(f(),l(`div`,Ne,[e(`div`,Pe,[i[7]||=e(`span`,{class:`text-muted-foreground`},`默认模型:`,-1),e(`span`,$,y(t.parsedRule.default?.backend_model||`-`),1),i[8]||=e(`span`,{class:`text-muted-foreground`},`/`,-1),e(`span`,null,y(O.value.get(t.parsedRule.default?.provider_id||``)||`-`),1)]),t.parsedRule.windows?.length?(f(),l(`div`,Fe,[i[10]||=e(`div`,{class:`text-sm text-muted-foreground`},`时间窗口`,-1),(f(!0),l(o,null,g(t.parsedRule.windows,(t,n)=>(f(),l(`div`,{key:n,class:`flex items-center gap-2 text-sm`},[e(`span`,Ie,y(t.start)+` - `+y(t.end),1),e(`span`,Le,y(t.target.backend_model),1),i[9]||=e(`span`,{class:`text-muted-foreground`},`/`,-1),e(`span`,null,y(O.value.get(t.target.provider_id)||t.target.provider_id),1)]))),128))])):(f(),l(`div`,Re,`无时间窗口`))])):(f(),l(`div`,ze,[(f(!0),l(o,null,g(t.parsedRule.targets||[],(n,a)=>(f(),l(`div`,{key:a,class:`flex items-center gap-2 text-sm`},[t.strategy===`failover`?(f(),l(`span`,Be,y(a+1)+`.`,1)):r(``,!0),e(`span`,Ve,y(n.backend_model),1),i[11]||=e(`span`,{class:`text-muted-foreground`},`/`,-1),e(`span`,null,y(O.value.get(n.provider_id)||n.provider_id),1)]))),128)),(t.parsedRule.targets||[]).length?r(``,!0):(f(),l(`div`,He,`无目标`))]))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128)),p.value.length===0?(f(),l(`div`,Ue,` 暂无映射分组 `)):r(``,!0)]),n(Ee,{open:x.value,"onUpdate:open":i[0]||=e=>x.value=e,"editing-id":S.value,form:w.value,providers:b.value,"provider-models":k.value,onSave:B,onAddWindow:P,onRemoveWindow:F,onAddTarget:I,onRemoveTarget:L,onMoveTargetUp:R,onMoveTargetDown:z},null,8,[`open`,`editing-id`,`form`,`providers`,`provider-models`]),n(De,{target:C.value,onConfirm:V,onCancel:i[1]||=e=>C.value=null},null,8,[`target`])]))}});export{We as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,Et as t,G as n,H as r,It as i,K as a,L as o,O as s,Pt as c,Rt as l,St as u,U as d,V as f,W as p,at as m,ht as h,nt as g,rt as _,st as v,vt as y,z as b,zt as x}from"./button-BKJB3nEQ.js";import{n as S,t as C}from"./UnifiedRequestDialog-BmEamR1L.js";import{a as w,i as T,n as E,o as D,r as O,t as k}from"./TableHeader-B2A48qgy.js";import{t as A}from"./badge-BTjuxlp4.js";import{n as j,t as M}from"./CardContent-3ytnac7B.js";import{n as N,t as P}from"./CardTitle-BHZE8Rty.js";var F={class:`grid grid-cols-2 lg:grid-cols-4 gap-4 mb-6`},I={class:`text-2xl font-bold text-foreground mt-1`},L={class:`text-xs text-muted-foreground mt-1`},R={class:`text-2xl font-bold text-foreground mt-1`},z={class:`text-xs text-muted-foreground mt-1`},B={class:`text-2xl font-bold text-foreground mt-1`},V={class:`text-xs text-muted-foreground mt-1`},H={class:`text-2xl font-bold text-foreground mt-1`},ee={class:`text-xs text-muted-foreground mt-1`},te=a({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{}},setup(t){let r=t,i=b(()=>!r.stats||r.stats.totalRequests===0?`0.0`:(r.stats.errorCount/r.stats.totalRequests*100).toFixed(1)),a=b(()=>!r.stats||r.stats.totalRequests===0?`0.0`:(r.stats.retryCount/r.stats.totalRequests*100).toFixed(1)),o=b(()=>r.stats?r.stats.p50LatencyMs.toFixed(0):`--`);return(r,s)=>(m(),d(`div`,F,[n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[0]||=e(`p`,{class:`text-sm text-muted-foreground`},`活跃请求`,-1),e(`p`,I,x(t.activeCount),1),e(`p`,L,x(t.streamCount)+` 流式 / `+x(t.activeCount-t.streamCount)+` 非流式 `,1)]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[1]||=e(`p`,{class:`text-sm text-muted-foreground`},`错误率`,-1),e(`p`,R,x(i.value)+`%`,1),e(`p`,z,x(t.stats?.errorCount??0)+` / `+x(t.stats?.totalRequests??0),1)]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[2]||=e(`p`,{class:`text-sm text-muted-foreground`},`P50 延迟`,-1),e(`p`,B,x(o.value)+`ms`,1),e(`p`,V,` 平均 `+x(t.stats?.avgLatencyMs?.toFixed(0)??`--`)+`ms `,1)]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[3]||=e(`p`,{class:`text-sm text-muted-foreground`},`重试率`,-1),e(`p`,H,x(a.value)+`%`,1),e(`p`,ee,x(t.stats?.retryCount??0)+` / `+x(t.stats?.totalRequests??0),1)]),_:1})]),_:1})]))}}),ne={class:`space-y-3`},re={key:0,class:`text-sm text-muted-foreground`},ie={class:`flex items-center justify-between text-sm`},U={class:`font-medium text-foreground`},W={class:`text-muted-foreground`},G={key:0,class:`h-2 bg-muted rounded-full overflow-hidden`},K={key:1,class:`flex gap-3 text-xs text-muted-foreground`},q=a({__name:`ConcurrencyPanel`,props:{providers:{}},setup(t){function n(e,t){let n=e/t;return n>=1?`bg-red-500`:n>=.8?`bg-orange-500`:n>=.5?`bg-yellow-500`:`bg-green-500`}return(a,s)=>(m(),d(`div`,ne,[t.providers.length===0?(m(),d(`div`,re,` 暂无并发数据 `)):r(``,!0),(m(!0),d(o,null,v(t.providers,t=>(m(),d(`div`,{key:t.providerId,class:`space-y-1`},[e(`div`,ie,[e(`span`,U,x(t.providerName),1),e(`span`,W,[t.maxConcurrency===0?(m(),d(o,{key:0},[p(`未限制`)],64)):(m(),d(o,{key:1},[p(x(t.active)+` / `+x(t.maxConcurrency),1)],64))])]),t.maxConcurrency>0?(m(),d(`div`,G,[e(`div`,{class:i([`h-full rounded-full transition-all duration-300`,n(t.active,t.maxConcurrency)]),style:l({width:`${Math.min(100,t.active/t.maxConcurrency*100)}%`})},null,6)])):r(``,!0),t.maxConcurrency>0?(m(),d(`div`,K,[e(`span`,null,`排队: `+x(t.queued),1),e(`span`,null,`队列上限: `+x(t.maxQueueSize),1)])):r(``,!0)]))),128))]))}}),J={key:0,class:`text-sm text-muted-foreground`},Y={key:1,class:`grid grid-cols-2 gap-3 text-sm`},ae={class:`font-medium text-foreground`},oe={class:`font-medium text-foreground`},se={class:`col-span-2`},ce={class:`flex items-center justify-between`},le={class:`text-muted-foreground`},ue={class:`h-2 bg-muted rounded-full overflow-hidden mt-1`},de={class:`font-medium text-foreground`},fe={class:`font-medium text-foreground`},pe={class:`col-span-2`},me={class:`font-medium text-foreground`},he=a({__name:`RuntimePanel`,props:{runtime:{}},setup(t){let n=t,r=b(()=>!n.runtime||n.runtime.memoryUsage.heapTotal===0?0:Math.min(100,n.runtime.memoryUsage.heapUsed/n.runtime.memoryUsage.heapTotal*100));function i(e){let t=Math.floor(e/1e3);return`${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m ${t%60}s`}function a(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}return(n,o)=>t.runtime?(m(),d(`div`,Y,[e(`div`,null,[o[0]||=e(`p`,{class:`text-muted-foreground`},`运行时间`,-1),e(`p`,ae,x(i(t.runtime.uptimeMs)),1)]),e(`div`,null,[o[1]||=e(`p`,{class:`text-muted-foreground`},`内存 RSS`,-1),e(`p`,oe,x(a(t.runtime.memoryUsage.rss)),1)]),e(`div`,se,[e(`div`,ce,[o[2]||=e(`p`,{class:`text-muted-foreground`},`Heap 使用`,-1),e(`p`,le,x(a(t.runtime.memoryUsage.heapUsed))+` / `+x(a(t.runtime.memoryUsage.heapTotal)),1)]),e(`div`,ue,[e(`div`,{class:`h-full bg-blue-500 rounded-full transition-all duration-300`,style:l({width:`${r.value}%`})},null,4)])]),e(`div`,null,[o[3]||=e(`p`,{class:`text-muted-foreground`},`Active Handles`,-1),e(`p`,de,x(t.runtime.activeHandles),1)]),e(`div`,null,[o[4]||=e(`p`,{class:`text-muted-foreground`},`Active Requests`,-1),e(`p`,fe,x(t.runtime.activeRequests),1)]),e(`div`,pe,[o[5]||=e(`p`,{class:`text-muted-foreground`},`Event Loop 延迟`,-1),e(`p`,me,x(t.runtime.eventLoopDelayMs.toFixed(2))+`ms`,1)])])):(m(),d(`div`,J,`暂无运行时数据`))}}),ge={key:0,class:`text-sm text-muted-foreground`},_e={key:1,class:`space-y-2`},ve={class:`flex items-center justify-between text-sm`},ye={class:`text-muted-foreground`},be={class:`h-2 bg-muted rounded-full overflow-hidden`},xe=a({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(t){let n=t,r=b(()=>Object.values(n.byStatusCode).reduce((e,t)=>e+t,0)),a=b(()=>{let e=n.byStatusCode,t=r.value||1,i=s(e,200,299),a=s(e,400,499)-(e[429]||0),o=e[429]||0,c=s(e,500,599);return[{label:`2xx 成功`,count:i,percent:(i/t*100).toFixed(1),textClass:`text-green-600 dark:text-green-400`,barClass:`bg-green-500`},{label:`4xx 客户端错误`,count:a,percent:(a/t*100).toFixed(1),textClass:`text-yellow-600 dark:text-yellow-400`,barClass:`bg-yellow-500`},{label:`429 限流`,count:o,percent:(o/t*100).toFixed(1),textClass:`text-orange-600 dark:text-orange-400`,barClass:`bg-orange-500`},{label:`5xx 服务端错误`,count:c,percent:(c/t*100).toFixed(1),textClass:`text-red-600 dark:text-red-400`,barClass:`bg-red-500`}].filter(e=>e.count>0)});function s(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(t,n)=>r.value===0?(m(),d(`div`,ge,`暂无状态码数据`)):(m(),d(`div`,_e,[(m(!0),d(o,null,v(a.value,t=>(m(),d(`div`,{key:t.label,class:`space-y-1`},[e(`div`,ve,[e(`span`,{class:i(t.textClass)},x(t.label),3),e(`span`,ye,x(t.count)+` (`+x(t.percent)+`%) `,1)]),e(`div`,be,[e(`div`,{class:i([`h-full rounded-full transition-all duration-300`,t.barClass]),style:l({width:`${t.percent}%`})},null,6)])]))),128))]))}}),Se={key:0,class:`text-sm text-muted-foreground py-4 text-center`},Ce={key:1,class:`text-sm text-muted-foreground py-4 text-center`},we={class:`flex flex-wrap gap-1`},Te={key:0,class:`text-xs text-muted-foreground`},Ee=a({__name:`ProviderStatsTable`,props:{stats:{}},setup(t){let a=t,s=b(()=>a.stats?Object.entries(a.stats.byProvider).filter(([e])=>typeof e==`string`).map(([e,t])=>({id:e,name:t.providerName,stats:t,successRate:t.totalRequests>0?t.successCount/t.totalRequests*100:0,retryRate:t.totalRequests>0?t.retryCount/t.totalRequests*100:0,p99Latency:a.stats.p99LatencyMs.toFixed(0)+`ms`})):[]);return(a,l)=>t.stats?s.value.length===0?(m(),d(`div`,Ce,` 暂无 Provider 统计 `)):(m(),f(c(D),{key:2},{default:y(()=>[n(c(k),null,{default:y(()=>[n(c(O),null,{default:y(()=>[n(c(E),null,{default:y(()=>[...l[0]||=[p(`Provider`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[1]||=[p(`请求数`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[2]||=[p(`成功率`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[3]||=[p(`平均延迟`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[4]||=[p(`P99 延迟`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[5]||=[p(`重试率`,-1)]]),_:1}),n(c(E),null,{default:y(()=>[...l[6]||=[p(`Top Errors`,-1)]]),_:1})]),_:1})]),_:1}),n(c(w),null,{default:y(()=>[(m(!0),d(o,null,v(s.value,t=>(m(),f(c(O),{key:t.id},{default:y(()=>[n(c(T),{class:`font-medium`},{default:y(()=>[p(x(t.name),1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[p(x(t.stats.totalRequests),1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[e(`span`,{class:i(t.successRate>=95?`text-green-600`:t.successRate>=80?`text-yellow-600`:`text-red-500`)},x(t.successRate.toFixed(1))+`% `,3)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[p(x(t.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[p(x(t.p99Latency),1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[e(`span`,{class:i(t.retryRate>10?`text-yellow-600`:``)},x(t.retryRate.toFixed(1))+`% `,3)]),_:2},1024),n(c(T),null,{default:y(()=>[e(`div`,we,[(m(!0),d(o,null,v(t.stats.topErrors.slice(0,3),e=>(m(),f(c(A),{key:e.code,variant:`destructive`,class:`text-xs`},{default:y(()=>[p(x(e.code)+` (`+x(e.count)+`) `,1)]),_:2},1024))),128)),t.stats.topErrors.length===0?(m(),d(`span`,Te,`--`)):r(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(m(),d(`div`,Se,` 暂无数据 `))}});function De(e,t,n){let r=null,i=null;function a(){if(!r){r=new EventSource(e),r.onopen=()=>{n?.onOpen?.()};for(let[e,n]of Object.entries(t))r.addEventListener(e,n);r.onerror=()=>{o(),n?.onClose?.(),i=setTimeout(a,3e3)}}}function o(){i&&=(clearTimeout(i),null),r&&=(r.close(),null)}return _(()=>{o(),n?.onClose?.()}),{connect:a,disconnect:o}}var X=200;function Oe(){let e=t([]),n=t([]),r=t(null),i=t([]),a=t(null),o=t(!1),c=b(()=>e.value.filter(e=>e.isStream).length),l=b(()=>e.value.filter(e=>!e.queued)),u=b(()=>e.value.filter(e=>e.queued===!0));function d(t){let o;try{o=JSON.parse(t.data)}catch{return}switch(t.type){case`request_start`:{let t=o;n.value.some(e=>e.id===t.id)||e.value.unshift(t);break}case`request_update`:e.value=o;break;case`request_complete`:{let t=o;e.value=e.value.filter(e=>e.id!==t.id),n.value.unshift(t),n.value.length>X&&(n.value.length=X);break}case`concurrency_update`:i.value=o;break;case`stats_update`:r.value=o;break;case`runtime_update`:a.value=o;break}}function f(){o.value=!0}function p(){o.value=!1}async function m(){try{let[t,o,c,l,u]=await Promise.allSettled([s.getMonitorActive(),s.getMonitorRecent(),s.getMonitorStats(),s.getMonitorConcurrency(),s.getMonitorRuntime()]);t.status===`fulfilled`&&(e.value=t.value),o.status===`fulfilled`&&(n.value=o.value),c.status===`fulfilled`&&(r.value=c.value),l.status===`fulfilled`&&(i.value=l.value),u.status===`fulfilled`&&(a.value=u.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),r.value=null,i.value=[],a.value=null}}let g=t(null),_=t(!1),v=t(0);async function y(t){let r=++v.value,i=e.value.find(e=>e.id===t)??n.value.find(e=>e.id===t);if(!i){g.value=null;return}if(g.value=null,i.status!==`pending`){_.value=!0;try{let e=await s.getLogDetail(t);if(r!==v.value)return;let n;if(!i.isStream){let t=e.upstream_response;if(t)try{let e=JSON.parse(t);n=(typeof e.body==`string`?e.body:t)??void 0}catch{n=t}}g.value={responseBody:n,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==v.value)return;console.warn(`Failed to load log detail:`,e),g.value=null}finally{r===v.value&&(_.value=!1)}}}let x=t(null),S=t(!1);function C(e){x.value=e,S.value=!0,y(e)}let w=b(()=>x.value?e.value.find(e=>e.id===x.value)??n.value.find(e=>e.id===x.value)??null:null);return h(()=>w.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&y(x.value)}),{activeRequests:e,recentCompleted:n,stats:r,concurrency:i,runtime:a,connected:o,streamCount:c,streamingRequests:l,queuedRequests:u,selectedRequestId:x,selectedRequest:w,requestDetailOpen:S,selectRequest:C,logDetailData:g,nonStreamBodyLoading:_,handleSSEMessage:d,handleSSEOpen:f,handleSSEClose:p,loadInitialData:m}}function Z(e){switch(e){case`pending`:return`default`;case`failed`:return`destructive`;case`completed`:return`secondary`;default:return`outline`}}function Q(e){switch(e){case`pending`:return`进行中`;case`failed`:return`失败`;case`completed`:return`完成`;default:return e}}var ke={class:`p-6`},Ae={class:`flex items-center justify-between mb-4`},je={class:`flex items-center gap-2`},Me={class:`grid grid-cols-3 gap-4 mb-6`},Ne={class:`flex items-center justify-between`},Pe={key:0,class:`text-sm text-muted-foreground py-2`},$=[`onClick`],Fe={class:`text-sm text-foreground truncate flex-1`},Ie={class:`text-xs text-muted-foreground shrink-0`},Le={class:`flex items-center justify-between`},Re={key:0,class:`text-sm text-muted-foreground py-2`},ze=[`onClick`],Be={class:`text-sm text-foreground truncate flex-1`},Ve={class:`text-xs text-muted-foreground shrink-0`},He={class:`flex items-center justify-between`},Ue={key:0,class:`text-sm text-muted-foreground py-2`},We=[`onClick`],Ge={class:`text-sm text-foreground truncate flex-1`},Ke={class:`grid grid-cols-1 lg:grid-cols-3 gap-4`},qe=1e3,Je=a({__name:`Monitor`,setup(t){let{activeRequests:a,recentCompleted:s,stats:l,concurrency:h,runtime:_,connected:b,streamCount:w,streamingRequests:T,queuedRequests:E,selectedRequestId:D,selectedRequest:O,requestDetailOpen:k,selectRequest:F,logDetailData:I,handleSSEMessage:L,handleSSEOpen:R,handleSSEClose:z,loadInitialData:B}=Oe(),{connect:V}=De(`/admin/api/monitor/stream`,{request_start:L,request_update:L,request_complete:L,concurrency_update:L,stats_update:L,runtime_update:L},{onOpen:R,onClose:z});function H(e){return((Date.now()-e)/qe).toFixed(1)}return g(async()=>{await B(),V()}),(t,g)=>(m(),d(`div`,ke,[e(`div`,Ae,[g[1]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`实时监控`,-1),e(`div`,je,[n(c(A),{variant:c(b)?`default`:`destructive`},{default:y(()=>[p(x(c(b)?`已连接`:`未连接`),1)]),_:1},8,[`variant`])])]),n(te,{stats:c(l),"active-count":c(a).length,"stream-count":c(w)},null,8,[`stats`,`active-count`,`stream-count`]),e(`div`,Me,[n(c(j),null,{default:y(()=>[n(c(N),{class:`pb-2`},{default:y(()=>[e(`div`,Ne,[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[2]||=[p(`活跃请求`,-1)]]),_:1}),n(c(A),{variant:`secondary`},{default:y(()=>[p(x(c(T).length),1)]),_:1})])]),_:1}),n(c(M),null,{default:y(()=>[n(c(S),{class:`h-64`},{default:y(()=>[c(T).length===0?(m(),d(`div`,Pe,` 暂无活跃请求 `)):r(``,!0),(m(!0),d(o,null,v(c(T),t=>(m(),d(`div`,{key:t.id,class:i([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":c(D)===t.id}]),onClick:e=>c(F)(t.id)},[n(c(A),{variant:c(Z)(t.status),class:`shrink-0`},{default:y(()=>[p(x(c(Q)(t.status)),1)]),_:2},1032,[`variant`]),e(`span`,Fe,x(t.model),1),n(c(A),{variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[p(x(t.providerName),1)]),_:2},1024),e(`span`,Ie,x(H(t.startTime))+`s`,1),t.isStream?(m(),f(c(A),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[...g[3]||=[p(`SSE`,-1)]]),_:1})):r(``,!0)],10,$))),128))]),_:1})]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),{class:`pb-2`},{default:y(()=>[e(`div`,Le,[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[4]||=[p(`队列请求`,-1)]]),_:1}),n(c(A),{variant:`secondary`},{default:y(()=>[p(x(c(E).length),1)]),_:1})])]),_:1}),n(c(M),null,{default:y(()=>[n(c(S),{class:`h-64`},{default:y(()=>[c(E).length===0?(m(),d(`div`,Re,` 暂无排队请求 `)):r(``,!0),(m(!0),d(o,null,v(c(E),t=>(m(),d(`div`,{key:t.id,class:i([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":c(D)===t.id}]),onClick:e=>c(F)(t.id)},[n(c(A),{variant:`outline`,class:`shrink-0`},{default:y(()=>[...g[5]||=[p(` 排队 `,-1)]]),_:1}),e(`span`,Be,x(t.model),1),n(c(A),{variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[p(x(t.providerName),1)]),_:2},1024),e(`span`,Ve,x(H(t.startTime))+`s`,1)],10,ze))),128))]),_:1})]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),{class:`pb-2`},{default:y(()=>[e(`div`,He,[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[6]||=[p(`已完成`,-1)]]),_:1}),n(c(A),{variant:`secondary`},{default:y(()=>[p(x(c(s).length),1)]),_:1})])]),_:1}),n(c(M),null,{default:y(()=>[n(c(S),{class:`h-64`},{default:y(()=>[c(s).length===0?(m(),d(`div`,Ue,` 暂无已完成请求 `)):r(``,!0),(m(!0),d(o,null,v(c(s),t=>(m(),d(`div`,{key:t.id,class:i([`flex items-center gap-2 py-1.5 px-2 rounded cursor-pointer opacity-60 hover:opacity-80 hover:bg-muted/50 transition-colors`,{"bg-muted":c(D)===t.id}]),onClick:e=>c(F)(t.id)},[n(c(A),{variant:c(Z)(t.status),class:`shrink-0`},{default:y(()=>[p(x(c(Q)(t.status)),1)]),_:2},1032,[`variant`]),e(`span`,Ge,x(t.model),1),n(c(A),{variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[p(x(t.providerName),1)]),_:2},1024),t.isStream?(m(),f(c(A),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[...g[7]||=[p(`SSE`,-1)]]),_:1})):r(``,!0)],10,We))),128))]),_:1})]),_:1})]),_:1})]),n(c(j),{class:`mb-4`},{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[8]||=[p(`Provider 统计`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(Ee,{stats:c(l)},null,8,[`stats`])]),_:1})]),_:1}),e(`div`,Ke,[n(c(j),null,{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[9]||=[p(`并发度`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(q,{providers:c(h)},null,8,[`providers`])]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[10]||=[p(`状态码分布`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(xe,{"by-status-code":c(l)?.byStatusCode??{}},null,8,[`by-status-code`])]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[11]||=[p(`运行时`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(he,{runtime:c(_)},null,8,[`runtime`])]),_:1})]),_:1})]),n(C,{open:c(k),"onUpdate:open":g[0]||=e=>u(k)?k.value=e:null,source:`realtime`,request:c(O),"stream-content":c(O)?.streamContent,"log-detail-data":c(I)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`])]))}});export{Je as default};
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,It as i,K as a,L as o,O as s,Pt as c,Rt as l,St as u,U as d,V as f,W as p,at as m,ht as h,nt as g,rt as _,st as v,vt as y,z as b,zt as x}from"./button-BkhL20Qz.js";import{n as S,t as C}from"./UnifiedRequestDialog-BhGWzOYY.js";import{a as w,i as T,n as E,o as D,r as O,t as k}from"./TableHeader-R3y9M8qo.js";import{t as A}from"./badge-CcgNasyU.js";import{n as j,t as M}from"./CardContent-BIgWZo6N.js";import{n as N,t as P}from"./CardTitle-BVVp36Pq.js";var F={class:`grid grid-cols-2 lg:grid-cols-4 gap-4 mb-6`},I={class:`text-2xl font-bold text-foreground mt-1`},L={class:`text-xs text-muted-foreground mt-1`},R={class:`text-2xl font-bold text-foreground mt-1`},z={class:`text-xs text-muted-foreground mt-1`},B={class:`text-2xl font-bold text-foreground mt-1`},V={class:`text-xs text-muted-foreground mt-1`},H={class:`text-2xl font-bold text-foreground mt-1`},ee={class:`text-xs text-muted-foreground mt-1`},te=a({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{}},setup(t){let r=t,i=b(()=>!r.stats||r.stats.totalRequests===0?`0.0`:(r.stats.errorCount/r.stats.totalRequests*100).toFixed(1)),a=b(()=>!r.stats||r.stats.totalRequests===0?`0.0`:(r.stats.retryCount/r.stats.totalRequests*100).toFixed(1)),o=b(()=>r.stats?r.stats.p50LatencyMs.toFixed(0):`--`);return(r,s)=>(m(),d(`div`,F,[n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[0]||=e(`p`,{class:`text-sm text-muted-foreground`},`活跃请求`,-1),e(`p`,I,x(t.activeCount),1),e(`p`,L,x(t.streamCount)+` 流式 / `+x(t.activeCount-t.streamCount)+` 非流式 `,1)]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[1]||=e(`p`,{class:`text-sm text-muted-foreground`},`错误率`,-1),e(`p`,R,x(i.value)+`%`,1),e(`p`,z,x(t.stats?.errorCount??0)+` / `+x(t.stats?.totalRequests??0),1)]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[2]||=e(`p`,{class:`text-sm text-muted-foreground`},`P50 延迟`,-1),e(`p`,B,x(o.value)+`ms`,1),e(`p`,V,` 平均 `+x(t.stats?.avgLatencyMs?.toFixed(0)??`--`)+`ms `,1)]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(M),{class:`p-4`},{default:y(()=>[s[3]||=e(`p`,{class:`text-sm text-muted-foreground`},`重试率`,-1),e(`p`,H,x(a.value)+`%`,1),e(`p`,ee,x(t.stats?.retryCount??0)+` / `+x(t.stats?.totalRequests??0),1)]),_:1})]),_:1})]))}}),ne={class:`space-y-3`},re={key:0,class:`text-sm text-muted-foreground`},ie={class:`flex items-center justify-between text-sm`},U={class:`font-medium text-foreground`},W={class:`text-muted-foreground`},G={key:0,class:`h-2 bg-muted rounded-full overflow-hidden`},K={key:1,class:`flex gap-3 text-xs text-muted-foreground`},q=a({__name:`ConcurrencyPanel`,props:{providers:{}},setup(t){function n(e,t){let n=e/t;return n>=1?`bg-red-500`:n>=.8?`bg-orange-500`:n>=.5?`bg-yellow-500`:`bg-green-500`}return(a,s)=>(m(),d(`div`,ne,[t.providers.length===0?(m(),d(`div`,re,` 暂无并发数据 `)):r(``,!0),(m(!0),d(o,null,v(t.providers,t=>(m(),d(`div`,{key:t.providerId,class:`space-y-1`},[e(`div`,ie,[e(`span`,U,x(t.providerName),1),e(`span`,W,[t.maxConcurrency===0?(m(),d(o,{key:0},[p(`未限制`)],64)):(m(),d(o,{key:1},[p(x(t.active)+` / `+x(t.maxConcurrency),1)],64))])]),t.maxConcurrency>0?(m(),d(`div`,G,[e(`div`,{class:i([`h-full rounded-full transition-all duration-300`,n(t.active,t.maxConcurrency)]),style:l({width:`${Math.min(100,t.active/t.maxConcurrency*100)}%`})},null,6)])):r(``,!0),t.maxConcurrency>0?(m(),d(`div`,K,[e(`span`,null,`排队: `+x(t.queued),1),e(`span`,null,`队列上限: `+x(t.maxQueueSize),1)])):r(``,!0)]))),128))]))}}),J={key:0,class:`text-sm text-muted-foreground`},Y={key:1,class:`grid grid-cols-2 gap-3 text-sm`},ae={class:`font-medium text-foreground`},oe={class:`font-medium text-foreground`},se={class:`col-span-2`},ce={class:`flex items-center justify-between`},le={class:`text-muted-foreground`},ue={class:`h-2 bg-muted rounded-full overflow-hidden mt-1`},de={class:`font-medium text-foreground`},fe={class:`font-medium text-foreground`},pe={class:`col-span-2`},me={class:`font-medium text-foreground`},he=a({__name:`RuntimePanel`,props:{runtime:{}},setup(t){let n=t,r=b(()=>!n.runtime||n.runtime.memoryUsage.heapTotal===0?0:Math.min(100,n.runtime.memoryUsage.heapUsed/n.runtime.memoryUsage.heapTotal*100));function i(e){let t=Math.floor(e/1e3);return`${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m ${t%60}s`}function a(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}return(n,o)=>t.runtime?(m(),d(`div`,Y,[e(`div`,null,[o[0]||=e(`p`,{class:`text-muted-foreground`},`运行时间`,-1),e(`p`,ae,x(i(t.runtime.uptimeMs)),1)]),e(`div`,null,[o[1]||=e(`p`,{class:`text-muted-foreground`},`内存 RSS`,-1),e(`p`,oe,x(a(t.runtime.memoryUsage.rss)),1)]),e(`div`,se,[e(`div`,ce,[o[2]||=e(`p`,{class:`text-muted-foreground`},`Heap 使用`,-1),e(`p`,le,x(a(t.runtime.memoryUsage.heapUsed))+` / `+x(a(t.runtime.memoryUsage.heapTotal)),1)]),e(`div`,ue,[e(`div`,{class:`h-full bg-blue-500 rounded-full transition-all duration-300`,style:l({width:`${r.value}%`})},null,4)])]),e(`div`,null,[o[3]||=e(`p`,{class:`text-muted-foreground`},`Active Handles`,-1),e(`p`,de,x(t.runtime.activeHandles),1)]),e(`div`,null,[o[4]||=e(`p`,{class:`text-muted-foreground`},`Active Requests`,-1),e(`p`,fe,x(t.runtime.activeRequests),1)]),e(`div`,pe,[o[5]||=e(`p`,{class:`text-muted-foreground`},`Event Loop 延迟`,-1),e(`p`,me,x(t.runtime.eventLoopDelayMs.toFixed(2))+`ms`,1)])])):(m(),d(`div`,J,`暂无运行时数据`))}}),ge={key:0,class:`text-sm text-muted-foreground`},_e={key:1,class:`space-y-2`},ve={class:`flex items-center justify-between text-sm`},ye={class:`text-muted-foreground`},be={class:`h-2 bg-muted rounded-full overflow-hidden`},xe=a({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(t){let n=t,r=b(()=>Object.values(n.byStatusCode).reduce((e,t)=>e+t,0)),a=b(()=>{let e=n.byStatusCode,t=r.value||1,i=s(e,200,299),a=s(e,400,499)-(e[429]||0),o=e[429]||0,c=s(e,500,599);return[{label:`2xx 成功`,count:i,percent:(i/t*100).toFixed(1),textClass:`text-green-600 dark:text-green-400`,barClass:`bg-green-500`},{label:`4xx 客户端错误`,count:a,percent:(a/t*100).toFixed(1),textClass:`text-yellow-600 dark:text-yellow-400`,barClass:`bg-yellow-500`},{label:`429 限流`,count:o,percent:(o/t*100).toFixed(1),textClass:`text-orange-600 dark:text-orange-400`,barClass:`bg-orange-500`},{label:`5xx 服务端错误`,count:c,percent:(c/t*100).toFixed(1),textClass:`text-red-600 dark:text-red-400`,barClass:`bg-red-500`}].filter(e=>e.count>0)});function s(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(t,n)=>r.value===0?(m(),d(`div`,ge,`暂无状态码数据`)):(m(),d(`div`,_e,[(m(!0),d(o,null,v(a.value,t=>(m(),d(`div`,{key:t.label,class:`space-y-1`},[e(`div`,ve,[e(`span`,{class:i(t.textClass)},x(t.label),3),e(`span`,ye,x(t.count)+` (`+x(t.percent)+`%) `,1)]),e(`div`,be,[e(`div`,{class:i([`h-full rounded-full transition-all duration-300`,t.barClass]),style:l({width:`${t.percent}%`})},null,6)])]))),128))]))}}),Se={key:0,class:`text-sm text-muted-foreground py-4 text-center`},Ce={key:1,class:`text-sm text-muted-foreground py-4 text-center`},we={class:`flex flex-wrap gap-1`},Te={key:0,class:`text-xs text-muted-foreground`},Ee=a({__name:`ProviderStatsTable`,props:{stats:{}},setup(t){let a=t,s=b(()=>a.stats?Object.entries(a.stats.byProvider).filter(([e])=>typeof e==`string`).map(([e,t])=>({id:e,name:t.providerName,stats:t,successRate:t.totalRequests>0?t.successCount/t.totalRequests*100:0,retryRate:t.totalRequests>0?t.retryCount/t.totalRequests*100:0,p99Latency:a.stats.p99LatencyMs.toFixed(0)+`ms`})):[]);return(a,l)=>t.stats?s.value.length===0?(m(),d(`div`,Ce,` 暂无 Provider 统计 `)):(m(),f(c(D),{key:2},{default:y(()=>[n(c(k),null,{default:y(()=>[n(c(O),null,{default:y(()=>[n(c(E),null,{default:y(()=>[...l[0]||=[p(`Provider`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[1]||=[p(`请求数`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[2]||=[p(`成功率`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[3]||=[p(`平均延迟`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[4]||=[p(`P99 延迟`,-1)]]),_:1}),n(c(E),{class:`text-right`},{default:y(()=>[...l[5]||=[p(`重试率`,-1)]]),_:1}),n(c(E),null,{default:y(()=>[...l[6]||=[p(`Top Errors`,-1)]]),_:1})]),_:1})]),_:1}),n(c(w),null,{default:y(()=>[(m(!0),d(o,null,v(s.value,t=>(m(),f(c(O),{key:t.id},{default:y(()=>[n(c(T),{class:`font-medium`},{default:y(()=>[p(x(t.name),1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[p(x(t.stats.totalRequests),1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[e(`span`,{class:i(t.successRate>=95?`text-green-600`:t.successRate>=80?`text-yellow-600`:`text-red-500`)},x(t.successRate.toFixed(1))+`% `,3)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[p(x(t.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[p(x(t.p99Latency),1)]),_:2},1024),n(c(T),{class:`text-right`},{default:y(()=>[e(`span`,{class:i(t.retryRate>10?`text-yellow-600`:``)},x(t.retryRate.toFixed(1))+`% `,3)]),_:2},1024),n(c(T),null,{default:y(()=>[e(`div`,we,[(m(!0),d(o,null,v(t.stats.topErrors.slice(0,3),e=>(m(),f(c(A),{key:e.code,variant:`destructive`,class:`text-xs`},{default:y(()=>[p(x(e.code)+` (`+x(e.count)+`) `,1)]),_:2},1024))),128)),t.stats.topErrors.length===0?(m(),d(`span`,Te,`--`)):r(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(m(),d(`div`,Se,` 暂无数据 `))}});function De(e,t,n){let r=null,i=null;function a(){if(!r){r=new EventSource(e),r.onopen=()=>{n?.onOpen?.()};for(let[e,n]of Object.entries(t))r.addEventListener(e,n);r.onerror=()=>{o(),n?.onClose?.(),i=setTimeout(a,3e3)}}}function o(){i&&=(clearTimeout(i),null),r&&=(r.close(),null)}return _(()=>{o(),n?.onClose?.()}),{connect:a,disconnect:o}}var X=200;function Oe(){let e=t([]),n=t([]),r=t(null),i=t([]),a=t(null),o=t(!1),c=b(()=>e.value.filter(e=>e.isStream).length),l=b(()=>e.value.filter(e=>!e.queued)),u=b(()=>e.value.filter(e=>e.queued===!0));function d(t){let o;try{o=JSON.parse(t.data)}catch{return}switch(t.type){case`request_start`:{let t=o;n.value.some(e=>e.id===t.id)||e.value.unshift(t);break}case`request_update`:e.value=o;break;case`request_complete`:{let t=o;e.value=e.value.filter(e=>e.id!==t.id),n.value.unshift(t),n.value.length>X&&(n.value.length=X);break}case`concurrency_update`:i.value=o;break;case`stats_update`:r.value=o;break;case`runtime_update`:a.value=o;break}}function f(){o.value=!0}function p(){o.value=!1}async function m(){try{let[t,o,c,l,u]=await Promise.allSettled([s.getMonitorActive(),s.getMonitorRecent(),s.getMonitorStats(),s.getMonitorConcurrency(),s.getMonitorRuntime()]);t.status===`fulfilled`&&(e.value=t.value),o.status===`fulfilled`&&(n.value=o.value),c.status===`fulfilled`&&(r.value=c.value),l.status===`fulfilled`&&(i.value=l.value),u.status===`fulfilled`&&(a.value=u.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),r.value=null,i.value=[],a.value=null}}let g=t(null),_=t(!1),v=t(0);async function y(t){let r=++v.value,i=e.value.find(e=>e.id===t)??n.value.find(e=>e.id===t);if(!i){g.value=null;return}if(g.value=null,i.status!==`pending`){_.value=!0;try{let e=await s.getLogDetail(t);if(r!==v.value)return;let n;if(!i.isStream){let t=e.upstream_response;if(t)try{let e=JSON.parse(t);n=(typeof e.body==`string`?e.body:t)??void 0}catch{n=t}}g.value={responseBody:n,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==v.value)return;console.warn(`Failed to load log detail:`,e),g.value=null}finally{r===v.value&&(_.value=!1)}}}let x=t(null),S=t(!1);function C(e){x.value=e,S.value=!0,y(e)}let w=b(()=>x.value?e.value.find(e=>e.id===x.value)??n.value.find(e=>e.id===x.value)??null:null);return h(()=>w.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&y(x.value)}),{activeRequests:e,recentCompleted:n,stats:r,concurrency:i,runtime:a,connected:o,streamCount:c,streamingRequests:l,queuedRequests:u,selectedRequestId:x,selectedRequest:w,requestDetailOpen:S,selectRequest:C,logDetailData:g,nonStreamBodyLoading:_,handleSSEMessage:d,handleSSEOpen:f,handleSSEClose:p,loadInitialData:m}}function Z(e){switch(e){case`pending`:return`default`;case`failed`:return`destructive`;case`completed`:return`secondary`;default:return`outline`}}function Q(e){switch(e){case`pending`:return`进行中`;case`failed`:return`失败`;case`completed`:return`完成`;default:return e}}var ke={class:`p-6`},Ae={class:`flex items-center justify-between mb-4`},je={class:`flex items-center gap-2`},Me={class:`grid grid-cols-3 gap-4 mb-6`},Ne={class:`flex items-center justify-between`},Pe={key:0,class:`text-sm text-muted-foreground py-2`},$=[`onClick`],Fe={class:`text-sm text-foreground truncate flex-1`},Ie={class:`text-xs text-muted-foreground shrink-0`},Le={class:`flex items-center justify-between`},Re={key:0,class:`text-sm text-muted-foreground py-2`},ze=[`onClick`],Be={class:`text-sm text-foreground truncate flex-1`},Ve={class:`text-xs text-muted-foreground shrink-0`},He={class:`flex items-center justify-between`},Ue={key:0,class:`text-sm text-muted-foreground py-2`},We=[`onClick`],Ge={class:`text-sm text-foreground truncate flex-1`},Ke={class:`grid grid-cols-1 lg:grid-cols-3 gap-4`},qe=1e3,Je=a({__name:`Monitor`,setup(t){let{activeRequests:a,recentCompleted:s,stats:l,concurrency:h,runtime:_,connected:b,streamCount:w,streamingRequests:T,queuedRequests:E,selectedRequestId:D,selectedRequest:O,requestDetailOpen:k,selectRequest:F,logDetailData:I,handleSSEMessage:L,handleSSEOpen:R,handleSSEClose:z,loadInitialData:B}=Oe(),{connect:V}=De(`/admin/api/monitor/stream`,{request_start:L,request_update:L,request_complete:L,concurrency_update:L,stats_update:L,runtime_update:L},{onOpen:R,onClose:z});function H(e){return((Date.now()-e)/qe).toFixed(1)}return g(async()=>{await B(),V()}),(t,g)=>(m(),d(`div`,ke,[e(`div`,Ae,[g[1]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`实时监控`,-1),e(`div`,je,[n(c(A),{variant:c(b)?`default`:`destructive`},{default:y(()=>[p(x(c(b)?`已连接`:`未连接`),1)]),_:1},8,[`variant`])])]),n(te,{stats:c(l),"active-count":c(a).length,"stream-count":c(w)},null,8,[`stats`,`active-count`,`stream-count`]),e(`div`,Me,[n(c(j),null,{default:y(()=>[n(c(N),{class:`pb-2`},{default:y(()=>[e(`div`,Ne,[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[2]||=[p(`活跃请求`,-1)]]),_:1}),n(c(A),{variant:`secondary`},{default:y(()=>[p(x(c(T).length),1)]),_:1})])]),_:1}),n(c(M),null,{default:y(()=>[n(c(S),{class:`h-64`},{default:y(()=>[c(T).length===0?(m(),d(`div`,Pe,` 暂无活跃请求 `)):r(``,!0),(m(!0),d(o,null,v(c(T),t=>(m(),d(`div`,{key:t.id,class:i([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":c(D)===t.id}]),onClick:e=>c(F)(t.id)},[n(c(A),{variant:c(Z)(t.status),class:`shrink-0`},{default:y(()=>[p(x(c(Q)(t.status)),1)]),_:2},1032,[`variant`]),e(`span`,Fe,x(t.model),1),n(c(A),{variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[p(x(t.providerName),1)]),_:2},1024),e(`span`,Ie,x(H(t.startTime))+`s`,1),t.isStream?(m(),f(c(A),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[...g[3]||=[p(`SSE`,-1)]]),_:1})):r(``,!0)],10,$))),128))]),_:1})]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),{class:`pb-2`},{default:y(()=>[e(`div`,Le,[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[4]||=[p(`队列请求`,-1)]]),_:1}),n(c(A),{variant:`secondary`},{default:y(()=>[p(x(c(E).length),1)]),_:1})])]),_:1}),n(c(M),null,{default:y(()=>[n(c(S),{class:`h-64`},{default:y(()=>[c(E).length===0?(m(),d(`div`,Re,` 暂无排队请求 `)):r(``,!0),(m(!0),d(o,null,v(c(E),t=>(m(),d(`div`,{key:t.id,class:i([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":c(D)===t.id}]),onClick:e=>c(F)(t.id)},[n(c(A),{variant:`outline`,class:`shrink-0`},{default:y(()=>[...g[5]||=[p(` 排队 `,-1)]]),_:1}),e(`span`,Be,x(t.model),1),n(c(A),{variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[p(x(t.providerName),1)]),_:2},1024),e(`span`,Ve,x(H(t.startTime))+`s`,1)],10,ze))),128))]),_:1})]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),{class:`pb-2`},{default:y(()=>[e(`div`,He,[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[6]||=[p(`已完成`,-1)]]),_:1}),n(c(A),{variant:`secondary`},{default:y(()=>[p(x(c(s).length),1)]),_:1})])]),_:1}),n(c(M),null,{default:y(()=>[n(c(S),{class:`h-64`},{default:y(()=>[c(s).length===0?(m(),d(`div`,Ue,` 暂无已完成请求 `)):r(``,!0),(m(!0),d(o,null,v(c(s),t=>(m(),d(`div`,{key:t.id,class:i([`flex items-center gap-2 py-1.5 px-2 rounded cursor-pointer opacity-60 hover:opacity-80 hover:bg-muted/50 transition-colors`,{"bg-muted":c(D)===t.id}]),onClick:e=>c(F)(t.id)},[n(c(A),{variant:c(Z)(t.status),class:`shrink-0`},{default:y(()=>[p(x(c(Q)(t.status)),1)]),_:2},1032,[`variant`]),e(`span`,Ge,x(t.model),1),n(c(A),{variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[p(x(t.providerName),1)]),_:2},1024),t.isStream?(m(),f(c(A),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:y(()=>[...g[7]||=[p(`SSE`,-1)]]),_:1})):r(``,!0)],10,We))),128))]),_:1})]),_:1})]),_:1})]),n(c(j),{class:`mb-4`},{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[8]||=[p(`Provider 统计`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(Ee,{stats:c(l)},null,8,[`stats`])]),_:1})]),_:1}),e(`div`,Ke,[n(c(j),null,{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[9]||=[p(`并发度`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(q,{providers:c(h)},null,8,[`providers`])]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[10]||=[p(`状态码分布`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(xe,{"by-status-code":c(l)?.byStatusCode??{}},null,8,[`by-status-code`])]),_:1})]),_:1}),n(c(j),null,{default:y(()=>[n(c(N),null,{default:y(()=>[n(c(P),{class:`text-sm font-medium text-foreground`},{default:y(()=>[...g[11]||=[p(`运行时`,-1)]]),_:1})]),_:1}),n(c(M),null,{default:y(()=>[n(he,{runtime:c(_)},null,8,[`runtime`])]),_:1})]),_:1})]),n(C,{open:c(k),"onUpdate:open":g[0]||=e=>u(k)?k.value=e:null,source:`realtime`,request:c(O),"stream-content":c(O)?.streamContent,"log-detail-data":c(I)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`])]))}});export{Je as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Dt as t,Et as n,G as r,K as i,Ot as a,Pt as o,Q as s,Rt as c,U as l,V as u,_t as d,at as f,bt as p,ct as m,gt as h,ht as g,i as _,l as v,m as y,nt as b,vt as x,wt as S,z as C}from"./button-BKJB3nEQ.js";import{S as w}from"./Collection-GDvpW_uY.js";import{t as T}from"./useForwardExpose-bqtcPo63.js";function E(e){let t=n(),r=C(()=>t.value?.width??0),i=C(()=>t.value?.height??0);return b(()=>{let n=v(e);if(n){t.value={width:n.offsetWidth,height:n.offsetHeight};let e=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let r=e[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=n.offsetWidth,a=n.offsetHeight;t.value={width:i,height:a}});return e.observe(n,{box:`border-box`}),()=>e.unobserve(n)}else t.value=void 0}),{width:r,height:i}}var[D,O]=w(`PopperRoot`),ee=i({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=n();return O({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>m(e.$slots,`default`)}}),k=i({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n,currentElement:r}=T(),i=D();return d(()=>{i.onAnchorChange(t.reference??r.value)}),(e,t)=>(f(),u(o(_),{ref:o(n),as:e.as,"as-child":e.asChild},{default:x(()=>[m(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function te(e){return e!==null}function ne(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=A(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}}function A(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var j=[`top`,`right`,`bottom`,`left`],M=Math.min,N=Math.max,P=Math.round,F=Math.floor,I=e=>({x:e,y:e}),L={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function re(e,t,n){return N(e,M(t,n))}function R(e,t){return typeof e==`function`?e(t):e}function z(e){return e.split(`-`)[0]}function B(e){return e.split(`-`)[1]}function ie(e){return e===`x`?`y`:`x`}function ae(e){return e===`y`?`height`:`width`}function V(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function oe(e){return ie(V(e))}function se(e,t,n){n===void 0&&(n=!1);let r=B(e),i=oe(e),a=ae(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=ge(o)),[o,ge(o)]}function ce(e){let t=ge(e);return[le(e),t,le(t)]}function le(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var ue=[`left`,`right`],de=[`right`,`left`],fe=[`top`,`bottom`],pe=[`bottom`,`top`];function me(e,t,n){switch(e){case`top`:case`bottom`:return n?t?de:ue:t?ue:de;case`left`:case`right`:return t?fe:pe;default:return[]}}function he(e,t,n,r){let i=B(e),a=me(z(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(le)))),a}function ge(e){let t=z(e);return L[t]+e.slice(t.length)}function _e(e){return{top:0,right:0,bottom:0,left:0,...e}}function ve(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:_e(e)}function ye(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function be(e,t,n){let{reference:r,floating:i}=e,a=V(t),o=oe(t),s=ae(o),c=z(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(B(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function xe(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=R(t,e),p=ve(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=ye(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=ye(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Se=50,Ce=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:xe},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=be(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Se&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=be(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},we=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=R(e,t)||{};if(l==null)return{};let d=ve(u),f={x:n,y:r},p=oe(i),m=ae(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=M(d[_],T),D=M(d[v],T),O=E,ee=C-h[m]-D,k=C/2-h[m]/2+w,te=re(O,k,ee),ne=!c.arrow&&B(i)!=null&&k!==te&&a.reference[m]/2-(k<O?E:D)-h[m]/2<0,A=ne?k<O?k-O:k-ee:0;return{[p]:f[p]+A,data:{[p]:te,centerOffset:k-te-A,...ne&&{alignmentOffset:A}},reset:ne}}}),Te=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=R(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=z(r),_=V(o),v=z(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[ge(o)]:ce(o)),x=p!==`none`;!d&&x&&b.push(...he(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=se(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==V(t))||T.every(e=>V(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=V(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Ee(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function De(e){return j.some(t=>e[t]>=0)}var Oe=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=R(e,t);switch(i){case`referenceHidden`:{let e=Ee(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:De(e)}}}case`escaped`:{let e=Ee(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:De(e)}}}default:return{}}}}},ke=new Set([`left`,`top`]);async function Ae(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=z(n),s=B(n),c=V(n)===`y`,l=ke.has(o)?-1:1,u=a&&c?-1:1,d=R(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var je=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Ae(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Me=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=R(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=V(z(i)),p=ie(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=re(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=re(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ne=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=R(e,t),u={x:n,y:r},d=V(i),f=ie(d),p=u[f],m=u[d],h=R(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=ke.has(z(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Pe=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=R(e,t),u=await o.detectOverflow(t,l),d=z(i),f=B(i),p=V(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=M(h-u[g],v),x=M(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=N(u.left,0),t=N(u.right,0),n=N(u.top,0),r=N(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:N(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:N(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function Fe(){return typeof window<`u`}function H(e){return Ie(e)?(e.nodeName||``).toLowerCase():`#document`}function U(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function W(e){return((Ie(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ie(e){return Fe()?e instanceof Node||e instanceof U(e).Node:!1}function G(e){return Fe()?e instanceof Element||e instanceof U(e).Element:!1}function K(e){return Fe()?e instanceof HTMLElement||e instanceof U(e).HTMLElement:!1}function Le(e){return!Fe()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof U(e).ShadowRoot}function Re(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Y(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function ze(e){return/^(table|td|th)$/.test(H(e))}function Be(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Ve=/transform|translate|scale|rotate|perspective|filter/,He=/paint|layout|strict|content/,q=e=>!!e&&e!==`none`,Ue;function We(e){let t=G(e)?Y(e):e;return q(t.transform)||q(t.translate)||q(t.scale)||q(t.rotate)||q(t.perspective)||!Ke()&&(q(t.backdropFilter)||q(t.filter))||Ve.test(t.willChange||``)||He.test(t.contain||``)}function Ge(e){let t=X(e);for(;K(t)&&!J(t);){if(We(t))return t;if(Be(t))return null;t=X(t)}return null}function Ke(){return Ue??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ue}function J(e){return/^(html|body|#document)$/.test(H(e))}function Y(e){return U(e).getComputedStyle(e)}function qe(e){return G(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function X(e){if(H(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Le(e)&&e.host||W(e);return Le(t)?t.host:t}function Je(e){let t=X(e);return J(t)?e.ownerDocument?e.ownerDocument.body:e.body:K(t)&&Re(t)?t:Je(t)}function Ye(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Je(e),i=r===e.ownerDocument?.body,a=U(r);if(i){let e=Xe(a);return t.concat(a,a.visualViewport||[],Re(r)?r:[],e&&n?Ye(e):[])}else return t.concat(r,Ye(r,[],n))}function Xe(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ze(e){let t=Y(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=K(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=P(n)!==a||P(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Qe(e){return G(e)?e:e.contextElement}function Z(e){let t=Qe(e);if(!K(t))return I(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Ze(t),o=(a?P(n.width):n.width)/r,s=(a?P(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var $e=I(0);function et(e){let t=U(e);return!Ke()||!t.visualViewport?$e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function tt(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==U(e)?!1:t}function Q(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Qe(e),o=I(1);t&&(r?G(r)&&(o=Z(r)):o=Z(e));let s=tt(a,n,r)?et(a):I(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=U(a),t=r&&G(r)?U(r):r,n=e,i=Xe(n);for(;i&&r&&t!==n;){let e=Z(i),t=i.getBoundingClientRect(),r=Y(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=U(i),i=Xe(n)}}return ye({width:u,height:d,x:c,y:l})}function nt(e,t){let n=qe(e).scrollLeft;return t?t.left+n:Q(W(e)).left+n}function rt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-nt(e,n),y:n.top+t.scrollTop}}function it(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=W(r),s=t?Be(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=I(1),u=I(0),d=K(r);if((d||!d&&!a)&&((H(r)!==`body`||Re(o))&&(c=qe(r)),d)){let e=Q(r);l=Z(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?rt(o,c):I(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function at(e){return Array.from(e.getClientRects())}function ot(e){let t=W(e),n=qe(e),r=e.ownerDocument.body,i=N(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=N(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+nt(e),s=-n.scrollTop;return Y(r).direction===`rtl`&&(o+=N(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var st=25;function ct(e,t){let n=U(e),r=W(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Ke();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=nt(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=st&&(a-=o)}else l<=st&&(a+=l);return{width:a,height:o,x:s,y:c}}function lt(e,t){let n=Q(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=K(e)?Z(e):I(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function ut(e,t,n){let r;if(t===`viewport`)r=ct(e,n);else if(t===`document`)r=ot(W(e));else if(G(t))r=lt(t,n);else{let n=et(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return ye(r)}function dt(e,t){let n=X(e);return n===t||!G(n)||J(n)?!1:Y(n).position===`fixed`||dt(n,t)}function ft(e,t){let n=t.get(e);if(n)return n;let r=Ye(e,[],!1).filter(e=>G(e)&&H(e)!==`body`),i=null,a=Y(e).position===`fixed`,o=a?X(e):e;for(;G(o)&&!J(o);){let t=Y(o),n=We(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Re(o)&&!n&&dt(e,o))?r=r.filter(e=>e!==o):i=t,o=X(o)}return t.set(e,r),r}function pt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Be(t)?[]:ft(t,this._c):[].concat(n),r],o=ut(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=ut(t,a[e],i);s=N(n.top,s),c=M(n.right,c),l=M(n.bottom,l),u=N(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function mt(e){let{width:t,height:n}=Ze(e);return{width:t,height:n}}function ht(e,t,n){let r=K(t),i=W(t),a=n===`fixed`,o=Q(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=I(0);function l(){c.x=nt(i)}if(r||!r&&!a)if((H(t)!==`body`||Re(i))&&(s=qe(t)),r){let e=Q(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?rt(i,s):I(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function gt(e){return Y(e).position===`static`}function _t(e,t){if(!K(e)||Y(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return W(e)===n&&(n=n.ownerDocument.body),n}function vt(e,t){let n=U(e);if(Be(e))return n;if(!K(e)){let t=X(e);for(;t&&!J(t);){if(G(t)&&!gt(t))return t;t=X(t)}return n}let r=_t(e,t);for(;r&&ze(r)&>(r);)r=_t(r,t);return r&&J(r)&>(r)&&!We(r)?n:r||Ge(e)||n}var yt=async function(e){let t=this.getOffsetParent||vt,n=this.getDimensions,r=await n(e.floating);return{reference:ht(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function bt(e){return Y(e).direction===`rtl`}var xt={convertOffsetParentRelativeRectToViewportRelativeRect:it,getDocumentElement:W,getClippingRect:pt,getOffsetParent:vt,getElementRects:yt,getClientRects:at,getDimensions:mt,getScale:Z,isElement:G,isRTL:bt};function St(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ct(e,t){let n=null,r,i=W(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=F(d),h=F(i.clientWidth-(u+f)),g=F(i.clientHeight-(d+p)),_=F(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:N(0,M(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!St(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function wt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Qe(e),u=i||a?[...l?Ye(l):[],...t?Ye(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Ct(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Q(e):null;c&&g();function g(){let t=Q(e);h&&!St(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Tt=je,Et=Me,Dt=Te,Ot=Pe,kt=Oe,At=we,jt=Ne,Mt=(e,t,n)=>{let r=new Map,i={platform:xt,...n},a={...i.platform,_c:r};return Ce(e,t,{...i,platform:a})};function Nt(e){return typeof e==`object`&&!!e&&`$el`in e}function Pt(e){if(Nt(e)){let t=e.$el;return Ie(t)&&H(t)===`#comment`?null:t}return e}function $(e){return typeof e==`function`?e():o(e)}function Ft(e){return{name:`arrow`,options:e,fn(t){let n=Pt($(e.element));return n==null?{}:At({element:n,padding:e.padding}).fn(t)}}}function It(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Lt(e,t){let n=It(e);return Math.round(t*n)/n}function Rt(e,r,i){i===void 0&&(i={});let o=i.whileElementsMounted,s=C(()=>$(i.open)??!0),c=C(()=>$(i.middleware)),l=C(()=>$(i.placement)??`bottom`),u=C(()=>$(i.strategy)??`absolute`),d=C(()=>$(i.transform)??!0),f=C(()=>Pt(e.value)),m=C(()=>Pt(r.value)),h=n(0),_=n(0),v=n(u.value),y=n(l.value),b=a({}),x=n(!1),w=C(()=>{let e={position:v.value,left:`0`,top:`0`};if(!m.value)return e;let t=Lt(m.value,h.value),n=Lt(m.value,_.value);return d.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...It(m.value)>=1.5&&{willChange:`transform`}}:{position:v.value,left:t+`px`,top:n+`px`}}),T;function E(){if(f.value==null||m.value==null)return;let e=s.value;Mt(f.value,m.value,{middleware:c.value,placement:l.value,strategy:u.value}).then(t=>{h.value=t.x,_.value=t.y,v.value=t.strategy,y.value=t.placement,b.value=t.middlewareData,x.value=e!==!1})}function D(){typeof T==`function`&&(T(),T=void 0)}function O(){if(D(),o===void 0){E();return}if(f.value!=null&&m.value!=null){T=o(f.value,m.value,E);return}}function ee(){s.value||(x.value=!1)}return g([c,l,u,s],E,{flush:`sync`}),g([f,m],O,{flush:`sync`}),g(s,ee,{flush:`sync`}),p()&&S(D),{x:t(h),y:t(_),strategy:t(v),placement:t(y),middlewareData:t(b),isPositioned:t(x),floatingStyles:w,update:E}}var zt={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[Bt,Vt]=w(`PopperContent`),Ht=i({inheritAttrs:!1,__name:`PopperContent`,props:s({side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...zt}),emits:[`placed`],setup(t,{emit:i}){let a=t,s=i,u=D(),{forwardRef:p,currentElement:g}=T(),v=n(),b=n(),{width:S,height:w}=E(b),O=C(()=>a.side+(a.align===`center`?``:`-${a.align}`)),ee=C(()=>typeof a.collisionPadding==`number`?a.collisionPadding:{top:0,right:0,bottom:0,left:0,...a.collisionPadding}),k=C(()=>Array.isArray(a.collisionBoundary)?a.collisionBoundary:[a.collisionBoundary]),j=C(()=>({padding:ee.value,boundary:k.value.filter(te),altBoundary:k.value.length>0})),M=C(()=>({mainAxis:a.sideFlip,crossAxis:a.alignFlip})),N=y(()=>[Tt({mainAxis:a.sideOffset+w.value,alignmentAxis:a.alignOffset}),a.prioritizePosition&&a.avoidCollisions&&Dt({...j.value,...M.value}),a.avoidCollisions&&Et({mainAxis:!0,crossAxis:!!a.prioritizePosition,limiter:a.sticky===`partial`?jt():void 0,...j.value}),!a.prioritizePosition&&a.avoidCollisions&&Dt({...j.value,...M.value}),Ot({...j.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),b.value&&Ft({element:b.value,padding:a.arrowPadding}),ne({arrowWidth:S.value,arrowHeight:w.value}),a.hideWhenDetached&&kt({strategy:`referenceHidden`,...j.value})]),{floatingStyles:P,placement:F,isPositioned:I,middlewareData:L,update:re}=Rt(C(()=>a.reference??u.anchor.value),v,{strategy:a.positionStrategy,placement:O,whileElementsMounted:(...e)=>wt(...e,{layoutShift:!a.disableUpdateOnLayoutShift,animationFrame:a.updatePositionStrategy===`always`}),middleware:N}),R=C(()=>A(F.value)[0]),z=C(()=>A(F.value)[1]);d(()=>{I.value&&s(`placed`)});let B=C(()=>{let e=L.value.arrow?.centerOffset!==0;return a.hideShiftedArrow&&e}),ie=n(``);return h(()=>{g.value&&(ie.value=window.getComputedStyle(g.value).zIndex)}),Vt({placedSide:R,onArrowChange:e=>b.value=e,arrowX:C(()=>L.value.arrow?.x??0),arrowY:C(()=>L.value.arrow?.y??0),shouldHideArrow:B}),(t,n)=>(f(),l(`div`,{ref_key:`floatingRef`,ref:v,"data-reka-popper-content-wrapper":``,style:c({...o(P),transform:o(I)?o(P).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ie.value,"--reka-popper-transform-origin":[o(L).transformOrigin?.x,o(L).transformOrigin?.y].join(` `),...o(L).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[r(o(_),e({ref:o(p)},t.$attrs,{"as-child":a.asChild,as:t.as,"data-side":R.value,"data-align":z.value,style:{animation:o(I)?void 0:`none`}}),{default:x(()=>[m(t.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}});export{ee as i,Bt as n,k as r,Ht as t};
|
|
1
|
+
import{$ as e,Dt as t,Et as n,G as r,K as i,Ot as a,Pt as o,Q as s,Rt as c,U as l,V as u,_t as d,at as f,bt as p,ct as m,gt as h,ht as g,i as _,l as v,m as y,nt as b,vt as x,wt as S,z as C}from"./button-BkhL20Qz.js";import{S as w}from"./Collection-B4yfvPwd.js";import{t as T}from"./useForwardExpose-Pf45y-q1.js";function E(e){let t=n(),r=C(()=>t.value?.width??0),i=C(()=>t.value?.height??0);return b(()=>{let n=v(e);if(n){t.value={width:n.offsetWidth,height:n.offsetHeight};let e=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let r=e[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=n.offsetWidth,a=n.offsetHeight;t.value={width:i,height:a}});return e.observe(n,{box:`border-box`}),()=>e.unobserve(n)}else t.value=void 0}),{width:r,height:i}}var[D,O]=w(`PopperRoot`),ee=i({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=n();return O({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>m(e.$slots,`default`)}}),k=i({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n,currentElement:r}=T(),i=D();return d(()=>{i.onAnchorChange(t.reference??r.value)}),(e,t)=>(f(),u(o(_),{ref:o(n),as:e.as,"as-child":e.asChild},{default:x(()=>[m(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function te(e){return e!==null}function ne(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=A(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}}function A(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var j=[`top`,`right`,`bottom`,`left`],M=Math.min,N=Math.max,P=Math.round,F=Math.floor,I=e=>({x:e,y:e}),L={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function re(e,t,n){return N(e,M(t,n))}function R(e,t){return typeof e==`function`?e(t):e}function z(e){return e.split(`-`)[0]}function B(e){return e.split(`-`)[1]}function ie(e){return e===`x`?`y`:`x`}function ae(e){return e===`y`?`height`:`width`}function V(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function oe(e){return ie(V(e))}function se(e,t,n){n===void 0&&(n=!1);let r=B(e),i=oe(e),a=ae(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=ge(o)),[o,ge(o)]}function ce(e){let t=ge(e);return[le(e),t,le(t)]}function le(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var ue=[`left`,`right`],de=[`right`,`left`],fe=[`top`,`bottom`],pe=[`bottom`,`top`];function me(e,t,n){switch(e){case`top`:case`bottom`:return n?t?de:ue:t?ue:de;case`left`:case`right`:return t?fe:pe;default:return[]}}function he(e,t,n,r){let i=B(e),a=me(z(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(le)))),a}function ge(e){let t=z(e);return L[t]+e.slice(t.length)}function _e(e){return{top:0,right:0,bottom:0,left:0,...e}}function ve(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:_e(e)}function ye(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function be(e,t,n){let{reference:r,floating:i}=e,a=V(t),o=oe(t),s=ae(o),c=z(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(B(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function xe(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=R(t,e),p=ve(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=ye(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=ye(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Se=50,Ce=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:xe},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=be(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Se&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=be(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},we=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=R(e,t)||{};if(l==null)return{};let d=ve(u),f={x:n,y:r},p=oe(i),m=ae(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=M(d[_],T),D=M(d[v],T),O=E,ee=C-h[m]-D,k=C/2-h[m]/2+w,te=re(O,k,ee),ne=!c.arrow&&B(i)!=null&&k!==te&&a.reference[m]/2-(k<O?E:D)-h[m]/2<0,A=ne?k<O?k-O:k-ee:0;return{[p]:f[p]+A,data:{[p]:te,centerOffset:k-te-A,...ne&&{alignmentOffset:A}},reset:ne}}}),Te=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=R(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=z(r),_=V(o),v=z(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[ge(o)]:ce(o)),x=p!==`none`;!d&&x&&b.push(...he(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=se(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==V(t))||T.every(e=>V(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=V(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Ee(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function De(e){return j.some(t=>e[t]>=0)}var Oe=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=R(e,t);switch(i){case`referenceHidden`:{let e=Ee(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:De(e)}}}case`escaped`:{let e=Ee(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:De(e)}}}default:return{}}}}},ke=new Set([`left`,`top`]);async function Ae(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=z(n),s=B(n),c=V(n)===`y`,l=ke.has(o)?-1:1,u=a&&c?-1:1,d=R(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var je=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Ae(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Me=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=R(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=V(z(i)),p=ie(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=re(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=re(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ne=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=R(e,t),u={x:n,y:r},d=V(i),f=ie(d),p=u[f],m=u[d],h=R(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=ke.has(z(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Pe=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=R(e,t),u=await o.detectOverflow(t,l),d=z(i),f=B(i),p=V(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=M(h-u[g],v),x=M(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=N(u.left,0),t=N(u.right,0),n=N(u.top,0),r=N(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:N(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:N(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function Fe(){return typeof window<`u`}function H(e){return Ie(e)?(e.nodeName||``).toLowerCase():`#document`}function U(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function W(e){return((Ie(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ie(e){return Fe()?e instanceof Node||e instanceof U(e).Node:!1}function G(e){return Fe()?e instanceof Element||e instanceof U(e).Element:!1}function K(e){return Fe()?e instanceof HTMLElement||e instanceof U(e).HTMLElement:!1}function Le(e){return!Fe()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof U(e).ShadowRoot}function Re(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Y(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function ze(e){return/^(table|td|th)$/.test(H(e))}function Be(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Ve=/transform|translate|scale|rotate|perspective|filter/,He=/paint|layout|strict|content/,q=e=>!!e&&e!==`none`,Ue;function We(e){let t=G(e)?Y(e):e;return q(t.transform)||q(t.translate)||q(t.scale)||q(t.rotate)||q(t.perspective)||!Ke()&&(q(t.backdropFilter)||q(t.filter))||Ve.test(t.willChange||``)||He.test(t.contain||``)}function Ge(e){let t=X(e);for(;K(t)&&!J(t);){if(We(t))return t;if(Be(t))return null;t=X(t)}return null}function Ke(){return Ue??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ue}function J(e){return/^(html|body|#document)$/.test(H(e))}function Y(e){return U(e).getComputedStyle(e)}function qe(e){return G(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function X(e){if(H(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Le(e)&&e.host||W(e);return Le(t)?t.host:t}function Je(e){let t=X(e);return J(t)?e.ownerDocument?e.ownerDocument.body:e.body:K(t)&&Re(t)?t:Je(t)}function Ye(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Je(e),i=r===e.ownerDocument?.body,a=U(r);if(i){let e=Xe(a);return t.concat(a,a.visualViewport||[],Re(r)?r:[],e&&n?Ye(e):[])}else return t.concat(r,Ye(r,[],n))}function Xe(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ze(e){let t=Y(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=K(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=P(n)!==a||P(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Qe(e){return G(e)?e:e.contextElement}function Z(e){let t=Qe(e);if(!K(t))return I(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Ze(t),o=(a?P(n.width):n.width)/r,s=(a?P(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var $e=I(0);function et(e){let t=U(e);return!Ke()||!t.visualViewport?$e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function tt(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==U(e)?!1:t}function Q(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Qe(e),o=I(1);t&&(r?G(r)&&(o=Z(r)):o=Z(e));let s=tt(a,n,r)?et(a):I(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=U(a),t=r&&G(r)?U(r):r,n=e,i=Xe(n);for(;i&&r&&t!==n;){let e=Z(i),t=i.getBoundingClientRect(),r=Y(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=U(i),i=Xe(n)}}return ye({width:u,height:d,x:c,y:l})}function nt(e,t){let n=qe(e).scrollLeft;return t?t.left+n:Q(W(e)).left+n}function rt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-nt(e,n),y:n.top+t.scrollTop}}function it(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=W(r),s=t?Be(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=I(1),u=I(0),d=K(r);if((d||!d&&!a)&&((H(r)!==`body`||Re(o))&&(c=qe(r)),d)){let e=Q(r);l=Z(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?rt(o,c):I(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function at(e){return Array.from(e.getClientRects())}function ot(e){let t=W(e),n=qe(e),r=e.ownerDocument.body,i=N(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=N(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+nt(e),s=-n.scrollTop;return Y(r).direction===`rtl`&&(o+=N(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var st=25;function ct(e,t){let n=U(e),r=W(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Ke();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=nt(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=st&&(a-=o)}else l<=st&&(a+=l);return{width:a,height:o,x:s,y:c}}function lt(e,t){let n=Q(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=K(e)?Z(e):I(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function ut(e,t,n){let r;if(t===`viewport`)r=ct(e,n);else if(t===`document`)r=ot(W(e));else if(G(t))r=lt(t,n);else{let n=et(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return ye(r)}function dt(e,t){let n=X(e);return n===t||!G(n)||J(n)?!1:Y(n).position===`fixed`||dt(n,t)}function ft(e,t){let n=t.get(e);if(n)return n;let r=Ye(e,[],!1).filter(e=>G(e)&&H(e)!==`body`),i=null,a=Y(e).position===`fixed`,o=a?X(e):e;for(;G(o)&&!J(o);){let t=Y(o),n=We(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Re(o)&&!n&&dt(e,o))?r=r.filter(e=>e!==o):i=t,o=X(o)}return t.set(e,r),r}function pt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Be(t)?[]:ft(t,this._c):[].concat(n),r],o=ut(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=ut(t,a[e],i);s=N(n.top,s),c=M(n.right,c),l=M(n.bottom,l),u=N(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function mt(e){let{width:t,height:n}=Ze(e);return{width:t,height:n}}function ht(e,t,n){let r=K(t),i=W(t),a=n===`fixed`,o=Q(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=I(0);function l(){c.x=nt(i)}if(r||!r&&!a)if((H(t)!==`body`||Re(i))&&(s=qe(t)),r){let e=Q(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?rt(i,s):I(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function gt(e){return Y(e).position===`static`}function _t(e,t){if(!K(e)||Y(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return W(e)===n&&(n=n.ownerDocument.body),n}function vt(e,t){let n=U(e);if(Be(e))return n;if(!K(e)){let t=X(e);for(;t&&!J(t);){if(G(t)&&!gt(t))return t;t=X(t)}return n}let r=_t(e,t);for(;r&&ze(r)&>(r);)r=_t(r,t);return r&&J(r)&>(r)&&!We(r)?n:r||Ge(e)||n}var yt=async function(e){let t=this.getOffsetParent||vt,n=this.getDimensions,r=await n(e.floating);return{reference:ht(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function bt(e){return Y(e).direction===`rtl`}var xt={convertOffsetParentRelativeRectToViewportRelativeRect:it,getDocumentElement:W,getClippingRect:pt,getOffsetParent:vt,getElementRects:yt,getClientRects:at,getDimensions:mt,getScale:Z,isElement:G,isRTL:bt};function St(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ct(e,t){let n=null,r,i=W(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=F(d),h=F(i.clientWidth-(u+f)),g=F(i.clientHeight-(d+p)),_=F(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:N(0,M(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!St(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function wt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Qe(e),u=i||a?[...l?Ye(l):[],...t?Ye(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Ct(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Q(e):null;c&&g();function g(){let t=Q(e);h&&!St(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Tt=je,Et=Me,Dt=Te,Ot=Pe,kt=Oe,At=we,jt=Ne,Mt=(e,t,n)=>{let r=new Map,i={platform:xt,...n},a={...i.platform,_c:r};return Ce(e,t,{...i,platform:a})};function Nt(e){return typeof e==`object`&&!!e&&`$el`in e}function Pt(e){if(Nt(e)){let t=e.$el;return Ie(t)&&H(t)===`#comment`?null:t}return e}function $(e){return typeof e==`function`?e():o(e)}function Ft(e){return{name:`arrow`,options:e,fn(t){let n=Pt($(e.element));return n==null?{}:At({element:n,padding:e.padding}).fn(t)}}}function It(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Lt(e,t){let n=It(e);return Math.round(t*n)/n}function Rt(e,r,i){i===void 0&&(i={});let o=i.whileElementsMounted,s=C(()=>$(i.open)??!0),c=C(()=>$(i.middleware)),l=C(()=>$(i.placement)??`bottom`),u=C(()=>$(i.strategy)??`absolute`),d=C(()=>$(i.transform)??!0),f=C(()=>Pt(e.value)),m=C(()=>Pt(r.value)),h=n(0),_=n(0),v=n(u.value),y=n(l.value),b=a({}),x=n(!1),w=C(()=>{let e={position:v.value,left:`0`,top:`0`};if(!m.value)return e;let t=Lt(m.value,h.value),n=Lt(m.value,_.value);return d.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...It(m.value)>=1.5&&{willChange:`transform`}}:{position:v.value,left:t+`px`,top:n+`px`}}),T;function E(){if(f.value==null||m.value==null)return;let e=s.value;Mt(f.value,m.value,{middleware:c.value,placement:l.value,strategy:u.value}).then(t=>{h.value=t.x,_.value=t.y,v.value=t.strategy,y.value=t.placement,b.value=t.middlewareData,x.value=e!==!1})}function D(){typeof T==`function`&&(T(),T=void 0)}function O(){if(D(),o===void 0){E();return}if(f.value!=null&&m.value!=null){T=o(f.value,m.value,E);return}}function ee(){s.value||(x.value=!1)}return g([c,l,u,s],E,{flush:`sync`}),g([f,m],O,{flush:`sync`}),g(s,ee,{flush:`sync`}),p()&&S(D),{x:t(h),y:t(_),strategy:t(v),placement:t(y),middlewareData:t(b),isPositioned:t(x),floatingStyles:w,update:E}}var zt={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[Bt,Vt]=w(`PopperContent`),Ht=i({inheritAttrs:!1,__name:`PopperContent`,props:s({side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...zt}),emits:[`placed`],setup(t,{emit:i}){let a=t,s=i,u=D(),{forwardRef:p,currentElement:g}=T(),v=n(),b=n(),{width:S,height:w}=E(b),O=C(()=>a.side+(a.align===`center`?``:`-${a.align}`)),ee=C(()=>typeof a.collisionPadding==`number`?a.collisionPadding:{top:0,right:0,bottom:0,left:0,...a.collisionPadding}),k=C(()=>Array.isArray(a.collisionBoundary)?a.collisionBoundary:[a.collisionBoundary]),j=C(()=>({padding:ee.value,boundary:k.value.filter(te),altBoundary:k.value.length>0})),M=C(()=>({mainAxis:a.sideFlip,crossAxis:a.alignFlip})),N=y(()=>[Tt({mainAxis:a.sideOffset+w.value,alignmentAxis:a.alignOffset}),a.prioritizePosition&&a.avoidCollisions&&Dt({...j.value,...M.value}),a.avoidCollisions&&Et({mainAxis:!0,crossAxis:!!a.prioritizePosition,limiter:a.sticky===`partial`?jt():void 0,...j.value}),!a.prioritizePosition&&a.avoidCollisions&&Dt({...j.value,...M.value}),Ot({...j.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),b.value&&Ft({element:b.value,padding:a.arrowPadding}),ne({arrowWidth:S.value,arrowHeight:w.value}),a.hideWhenDetached&&kt({strategy:`referenceHidden`,...j.value})]),{floatingStyles:P,placement:F,isPositioned:I,middlewareData:L,update:re}=Rt(C(()=>a.reference??u.anchor.value),v,{strategy:a.positionStrategy,placement:O,whileElementsMounted:(...e)=>wt(...e,{layoutShift:!a.disableUpdateOnLayoutShift,animationFrame:a.updatePositionStrategy===`always`}),middleware:N}),R=C(()=>A(F.value)[0]),z=C(()=>A(F.value)[1]);d(()=>{I.value&&s(`placed`)});let B=C(()=>{let e=L.value.arrow?.centerOffset!==0;return a.hideShiftedArrow&&e}),ie=n(``);return h(()=>{g.value&&(ie.value=window.getComputedStyle(g.value).zIndex)}),Vt({placedSide:R,onArrowChange:e=>b.value=e,arrowX:C(()=>L.value.arrow?.x??0),arrowY:C(()=>L.value.arrow?.y??0),shouldHideArrow:B}),(t,n)=>(f(),l(`div`,{ref_key:`floatingRef`,ref:v,"data-reka-popper-content-wrapper":``,style:c({...o(P),transform:o(I)?o(P).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ie.value,"--reka-popper-transform-origin":[o(L).transformOrigin?.x,o(L).transformOrigin?.y].join(` `),...o(L).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[r(o(_),e({ref:o(p)},t.$attrs,{"as-child":a.asChild,as:t.as,"data-side":R.value,"data-align":z.value,style:{animation:o(I)?void 0:`none`}}),{default:x(()=>[m(t.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}});export{ee as i,Bt as n,k as r,Ht as t};
|