llm-simple-router 0.8.2 → 0.9.0
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/config/recommended-providers.json +33 -9
- package/config/recommended-retry-rules.json +9 -8
- package/dist/admin/providers.js +11 -9
- package/dist/admin/quick-setup.d.ts +13 -0
- package/dist/admin/quick-setup.js +169 -0
- package/dist/admin/recommended.js +5 -1
- package/dist/admin/routes.js +2 -0
- package/dist/config/model-context.d.ts +8 -2
- package/dist/config/model-context.js +17 -5
- package/dist/config/recommended.d.ts +1 -0
- package/dist/config/recommended.js +5 -9
- package/dist/proxy/handler/proxy-handler.js +8 -2
- package/dist/proxy/patch/index.d.ts +3 -0
- package/dist/proxy/patch/index.js +28 -0
- package/frontend-dist/assets/CardContent-F3K9pZNP.js +1 -0
- package/frontend-dist/assets/CardTitle-13anASyk.js +1 -0
- package/frontend-dist/assets/CascadingModelSelect-BmW89GUP.js +1 -0
- package/frontend-dist/assets/Checkbox-C2oSHNgP.js +1 -0
- package/frontend-dist/assets/CollapsibleContent-CdeCo0Ko.js +1 -0
- package/frontend-dist/assets/CollapsibleTrigger-CMd4wTNY.js +1 -0
- package/frontend-dist/assets/Collection-BulopTxo.js +1 -0
- package/frontend-dist/assets/Dashboard-BahJSTKV.js +3 -0
- package/frontend-dist/assets/DialogTitle-CnqbO2hx.js +1 -0
- package/frontend-dist/assets/{Input-CAnKUBBK.js → Input-RyuwzbNx.js} +1 -1
- package/frontend-dist/assets/Label-73u_Os4X.js +1 -0
- package/frontend-dist/assets/Login-CoQSrVLo.js +1 -0
- package/frontend-dist/assets/Logs-C2b6MPXL.js +1 -0
- package/frontend-dist/assets/MappingList-m2ebUmJ9.js +1 -0
- package/frontend-dist/assets/ModelCard-B0pjEq6W.js +1 -0
- package/frontend-dist/assets/ModelMappings-BazKS9T4.js +1 -0
- package/frontend-dist/assets/Monitor-8B_tm1NO.js +1 -0
- package/frontend-dist/assets/{PopoverTrigger-Bj65uUbv.js → PopoverTrigger-DSmA2dE4.js} +1 -1
- package/frontend-dist/assets/{PopperContent-gzzf1XHe.js → PopperContent-Bd_mpt_D.js} +1 -1
- package/frontend-dist/assets/Providers-TI83sF2T.js +1 -0
- package/frontend-dist/assets/ProxyEnhancement-CWLh-YlM.js +5 -0
- package/frontend-dist/assets/QuickSetup-DUZNdIvp.js +1 -0
- package/frontend-dist/assets/RetryRules-CzhCNQ0R.js +1 -0
- package/frontend-dist/assets/RouterKeys-B_C-Wp_I.js +1 -0
- package/frontend-dist/assets/RovingFocusItem-DwGTruuB.js +1 -0
- package/frontend-dist/assets/Schedules-BMB6RX9e.js +1 -0
- package/frontend-dist/assets/SelectValue-DRc1qira.js +1 -0
- package/frontend-dist/assets/Settings-Ck8CoUJC.js +6 -0
- package/frontend-dist/assets/Setup-dwKkHGrB.js +1 -0
- package/frontend-dist/assets/Switch-BE8DAylK.js +1 -0
- package/frontend-dist/assets/TableHeader-BqYT-eO-.js +1 -0
- package/frontend-dist/assets/Teleport-CLw1Jxrb.js +3 -0
- package/frontend-dist/assets/TooltipTrigger-bqCyq9MU.js +1 -0
- package/frontend-dist/assets/UnifiedRequestDialog-BDNR1wzi.js +3 -0
- package/frontend-dist/assets/UnifiedRequestDialog-DmpjVK9n.css +1 -0
- package/frontend-dist/assets/VisuallyHidden-BpDuyh8-.js +1 -0
- package/frontend-dist/assets/VisuallyHiddenInput-CCL5ykZW.js +1 -0
- package/frontend-dist/assets/alert-dialog-gprnWn1b.js +1 -0
- package/frontend-dist/assets/badge-CpT5q-jI.js +1 -0
- package/frontend-dist/assets/{button-Ul8WlrM5.js → button-zud8Qspb.js} +7 -7
- package/frontend-dist/assets/check-CRv7NpkT.js +1 -0
- package/frontend-dist/assets/constants-ncbNnOLM.js +1 -0
- package/frontend-dist/assets/copy-CIHn6HDL.js +1 -0
- package/frontend-dist/assets/dialog-Da8YFS7g.js +1 -0
- package/frontend-dist/assets/file-text-LfP0_JRK.js +1 -0
- package/frontend-dist/assets/index-BfXK7SYr.js +1 -0
- package/frontend-dist/assets/index-CDtb1WVq.css +1 -0
- package/frontend-dist/assets/lib-xfvPneK8.js +1 -0
- package/frontend-dist/assets/loader-circle-D8BaqxEc.js +1 -0
- package/frontend-dist/assets/sun-n4cC12ho.js +1 -0
- package/frontend-dist/assets/trash-2-oDWBOuqK.js +1 -0
- package/frontend-dist/assets/{useClipboard-BmmsNSGV.js → useClipboard-C2i7YvJ-.js} +1 -1
- package/frontend-dist/assets/{useFocusGuards-A-9V2Y-b.js → useFocusGuards-DORIgNd9.js} +1 -1
- package/frontend-dist/assets/useFormControl-OyxyVR_M.js +1 -0
- package/frontend-dist/assets/{useLogRetention-BfnBFZ5K.js → useLogRetention-DE7zYGFK.js} +1 -1
- package/frontend-dist/assets/useNonce-D_84NiFG.js +1 -0
- package/frontend-dist/assets/useTheme-BFhy-DAX.js +1 -0
- package/frontend-dist/assets/x-BN5AHIVk.js +1 -0
- package/frontend-dist/index.html +22 -20
- package/package.json +1 -1
- package/frontend-dist/assets/CardContent-BVMQ2_pg.js +0 -1
- package/frontend-dist/assets/CardTitle-GLv7QyIY.js +0 -1
- package/frontend-dist/assets/CascadingModelSelect-CBhqKFDX.js +0 -1
- package/frontend-dist/assets/Checkbox-HPVDmEdV.js +0 -1
- package/frontend-dist/assets/CollapsibleTrigger-DhxD9tpM.js +0 -1
- package/frontend-dist/assets/Collection-BRt7YxN8.js +0 -1
- package/frontend-dist/assets/Dashboard-D1Ys8Zog.js +0 -3
- package/frontend-dist/assets/DialogTitle-23q73lwF.js +0 -1
- package/frontend-dist/assets/Label-DWdYtVMI.js +0 -1
- package/frontend-dist/assets/Login-w5WFOinP.js +0 -1
- package/frontend-dist/assets/Logs-C1F1ZmWF.js +0 -1
- package/frontend-dist/assets/ModelMappings-BzmecWEH.js +0 -1
- package/frontend-dist/assets/Monitor-DrAZFTKR.js +0 -1
- package/frontend-dist/assets/Providers-DSgf4mb6.js +0 -1
- package/frontend-dist/assets/ProxyEnhancement-Bb1cCP6d.js +0 -5
- package/frontend-dist/assets/RetryRules-BwPfEZtm.js +0 -1
- package/frontend-dist/assets/RouterKeys-CzTSq1Mx.js +0 -1
- package/frontend-dist/assets/RovingFocusItem-CXM_Yfkm.js +0 -1
- package/frontend-dist/assets/Schedules-DVilCXrC.js +0 -1
- package/frontend-dist/assets/SelectValue-C0-LzGQY.js +0 -1
- package/frontend-dist/assets/Settings-Bpk53zVX.js +0 -6
- package/frontend-dist/assets/Setup-Dn7EgC49.js +0 -1
- package/frontend-dist/assets/Switch-BO8Ooae6.js +0 -1
- package/frontend-dist/assets/TableHeader-Bded9VTC.js +0 -1
- package/frontend-dist/assets/TabsTrigger-BzKMi9AF.js +0 -1
- package/frontend-dist/assets/Teleport-DizRK5O3.js +0 -3
- package/frontend-dist/assets/TooltipTrigger-EiIy2zn8.js +0 -1
- package/frontend-dist/assets/UnifiedRequestDialog-BABsTaGb.js +0 -3
- package/frontend-dist/assets/UnifiedRequestDialog-BjEigSaR.css +0 -1
- package/frontend-dist/assets/VisuallyHidden-5AozJQza.js +0 -1
- package/frontend-dist/assets/VisuallyHiddenInput-DdiZrV2i.js +0 -1
- package/frontend-dist/assets/alert-dialog-DlKUuTPe.js +0 -1
- package/frontend-dist/assets/arrow-down-CxWKmZ2I.js +0 -1
- package/frontend-dist/assets/badge-9KJEMa53.js +0 -1
- package/frontend-dist/assets/check-7ahK--N4.js +0 -1
- package/frontend-dist/assets/constants-D_0jiLjw.js +0 -1
- package/frontend-dist/assets/copy-DzU2pAMG.js +0 -1
- package/frontend-dist/assets/dialog-B9j-FMrd.js +0 -1
- package/frontend-dist/assets/file-text-Bj3ZIo-E.js +0 -1
- package/frontend-dist/assets/index-Bz_ZaXNn.css +0 -1
- package/frontend-dist/assets/index-MedWZMHB.js +0 -1
- package/frontend-dist/assets/lib-Hhs3NqfD.js +0 -1
- package/frontend-dist/assets/loader-circle-5TJUukEe.js +0 -1
- package/frontend-dist/assets/useFormControl-DEO19lRe.js +0 -1
- package/frontend-dist/assets/useNonce-BfwUJ1Ci.js +0 -1
- package/frontend-dist/assets/x-Cfopt3QL.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Bt as t,Ft as n,G as r,H as i,J as a,K as o,Lt as s,Ot as c,U as l,W as u,Y as d,_t as f,at as p,bt as m,k as h,lt as g,n as _,ot as v,q as y,st as b,wt as x,z as S,zt as C}from"./button-zud8Qspb.js";import{n as w,t as ee}from"./UnifiedRequestDialog-BDNR1wzi.js";import{t as T}from"./check-CRv7NpkT.js";import{t as E}from"./copy-CIHn6HDL.js";import{i as D,n as O,r as k,t as A}from"./TooltipTrigger-bqCyq9MU.js";import{t as j}from"./badge-CpT5q-jI.js";import{n as M,t as N}from"./CardContent-F3K9pZNP.js";import{n as P,t as F}from"./CardTitle-13anASyk.js";import{a as I,i as L,n as R,o as z,r as B,t as V}from"./TableHeader-BqYT-eO-.js";import{t as te}from"./useClipboard-C2i7YvJ-.js";var H={class:`grid grid-cols-2 lg:grid-cols-4 gap-4 mb-6`},U={class:`text-2xl font-bold text-foreground mt-1`},W={class:`text-xs text-muted-foreground mt-1`},G={class:`text-2xl font-bold text-foreground mt-1`},K={class:`text-xs text-muted-foreground mt-1`},q={class:`text-2xl font-bold text-foreground mt-1`},ne={class:`text-xs text-muted-foreground mt-1`},re={class:`text-2xl font-bold text-foreground mt-1`},ie={class:`text-xs text-muted-foreground mt-1`},ae=d({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{}},setup(e){let r=e,s=i(()=>!r.stats||r.stats.totalRequests===0?`0.0`:(r.stats.errorCount/r.stats.totalRequests*100).toFixed(1)),c=i(()=>!r.stats||r.stats.totalRequests===0?`0.0`:(r.stats.retryCount/r.stats.totalRequests*100).toFixed(1)),u=i(()=>r.stats?r.stats.p50LatencyMs.toFixed(0):`--`);return(r,i)=>(b(),o(`div`,H,[a(n(M),null,{default:m(()=>[a(n(N),{class:`p-4`},{default:m(()=>[i[0]||=l(`p`,{class:`text-sm text-muted-foreground`},`活跃请求`,-1),l(`p`,U,t(e.activeCount),1),l(`p`,W,t(e.streamCount)+` 流式 / `+t(e.activeCount-e.streamCount)+` 非流式 `,1)]),_:1})]),_:1}),a(n(M),null,{default:m(()=>[a(n(N),{class:`p-4`},{default:m(()=>[i[1]||=l(`p`,{class:`text-sm text-muted-foreground`},`错误率`,-1),l(`p`,G,t(s.value)+`%`,1),l(`p`,K,t(e.stats?.errorCount??0)+` / `+t(e.stats?.totalRequests??0),1)]),_:1})]),_:1}),a(n(M),null,{default:m(()=>[a(n(N),{class:`p-4`},{default:m(()=>[i[2]||=l(`p`,{class:`text-sm text-muted-foreground`},`P50 延迟`,-1),l(`p`,q,t(u.value)+`ms`,1),l(`p`,ne,` 平均 `+t(e.stats?.avgLatencyMs?.toFixed(0)??`--`)+`ms `,1)]),_:1})]),_:1}),a(n(M),null,{default:m(()=>[a(n(N),{class:`p-4`},{default:m(()=>[i[3]||=l(`p`,{class:`text-sm text-muted-foreground`},`重试率`,-1),l(`p`,re,t(c.value)+`%`,1),l(`p`,ie,t(e.stats?.retryCount??0)+` / `+t(e.stats?.totalRequests??0),1)]),_:1})]),_:1})]))}}),J={class:`space-y-3`},Y={key:0,class:`text-sm text-muted-foreground`},X={class:`flex items-center justify-between text-sm`},Z={class:`font-medium text-foreground`},Q={class:`text-muted-foreground`},oe={key:0,class:`h-2 bg-muted rounded-full overflow-hidden`},se={key:1,class:`flex gap-3 text-xs text-muted-foreground`},ce=d({__name:`ConcurrencyPanel`,props:{providers:{}},setup(n){function i(e){return e.adaptiveLimit??e.maxConcurrency}function a(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(c,u)=>(b(),o(`div`,J,[n.providers.length===0?(b(),o(`div`,Y,` 暂无并发数据 `)):r(``,!0),(b(!0),o(e,null,g(n.providers,n=>(b(),o(`div`,{key:n.providerId,class:`space-y-1`},[l(`div`,X,[l(`span`,Z,t(n.providerName),1),l(`span`,Q,[n.adaptiveEnabled?(b(),o(e,{key:0},[y(t(n.active)+` / `+t(n.adaptiveLimit??n.maxConcurrency)+` `,1),u[0]||=l(`span`,{class:`text-xs`},`(自适应)`,-1)],64)):n.maxConcurrency===0?(b(),o(e,{key:1},[y(`未限制`)],64)):(b(),o(e,{key:2},[y(t(n.active)+` / `+t(n.maxConcurrency),1)],64))])]),n.maxConcurrency>0?(b(),o(`div`,oe,[l(`div`,{class:s([`h-full rounded-full transition-all duration-300`,a(n.active,i(n))]),style:C({width:`${Math.min(100,n.active/i(n)*100)}%`})},null,6)])):r(``,!0),n.maxConcurrency>0?(b(),o(`div`,se,[l(`span`,null,`排队: `+t(n.queued),1),l(`span`,null,`队列上限: `+t(n.adaptiveLimit??n.maxQueueSize),1)])):r(``,!0)]))),128))]))}}),le={key:0,class:`text-sm text-muted-foreground`},ue={key:1,class:`grid grid-cols-2 gap-3 text-sm`},de={class:`font-medium text-foreground`},fe={class:`font-medium text-foreground`},pe={class:`col-span-2`},me={class:`flex items-center justify-between`},he={class:`text-muted-foreground`},ge={class:`h-2 bg-muted rounded-full overflow-hidden mt-1`},_e={class:`font-medium text-foreground`},ve={class:`font-medium text-foreground`},ye={class:`col-span-2`},be={class:`font-medium text-foreground`},xe=d({__name:`RuntimePanel`,props:{runtime:{}},setup(e){let n=e,r=i(()=>!n.runtime||n.runtime.memoryUsage.heapTotal===0?0:Math.min(100,n.runtime.memoryUsage.heapUsed/n.runtime.memoryUsage.heapTotal*100));function a(e){let t=Math.floor(e/1e3);return`${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m ${t%60}s`}function s(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}return(n,i)=>e.runtime?(b(),o(`div`,ue,[l(`div`,null,[i[0]||=l(`p`,{class:`text-muted-foreground`},`运行时间`,-1),l(`p`,de,t(a(e.runtime.uptimeMs)),1)]),l(`div`,null,[i[1]||=l(`p`,{class:`text-muted-foreground`},`内存 RSS`,-1),l(`p`,fe,t(s(e.runtime.memoryUsage.rss)),1)]),l(`div`,pe,[l(`div`,me,[i[2]||=l(`p`,{class:`text-muted-foreground`},`Heap 使用`,-1),l(`p`,he,t(s(e.runtime.memoryUsage.heapUsed))+` / `+t(s(e.runtime.memoryUsage.heapTotal)),1)]),l(`div`,ge,[l(`div`,{class:`h-full bg-primary rounded-full transition-all duration-300`,style:C({width:`${r.value}%`})},null,4)])]),l(`div`,null,[i[3]||=l(`p`,{class:`text-muted-foreground`},`Active Handles`,-1),l(`p`,_e,t(e.runtime.activeHandles),1)]),l(`div`,null,[i[4]||=l(`p`,{class:`text-muted-foreground`},`Active Requests`,-1),l(`p`,ve,t(e.runtime.activeRequests),1)]),l(`div`,ye,[i[5]||=l(`p`,{class:`text-muted-foreground`},`Event Loop 延迟`,-1),l(`p`,be,t(e.runtime.eventLoopDelayMs.toFixed(2))+`ms`,1)])])):(b(),o(`div`,le,`暂无运行时数据`))}}),Se={key:0,class:`text-sm text-muted-foreground`},Ce={key:1,class:`space-y-2`},we={class:`flex items-center justify-between text-sm`},Te={class:`text-muted-foreground`},Ee={class:`h-2 bg-muted rounded-full overflow-hidden`},De=d({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(n){let r=n,a=i(()=>Object.values(r.byStatusCode).reduce((e,t)=>e+t,0)),c=i(()=>{let e=r.byStatusCode,t=a.value||1,n=u(e,200,299),i=u(e,400,499)-(e[429]||0),o=e[429]||0,s=u(e,500,599);return[{label:`2xx 成功`,count:n,percent:(n/t*100).toFixed(1),textClass:`text-green-600 dark:text-green-400`,barClass:`bg-green-500`},{label:`4xx 客户端错误`,count:i,percent:(i/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:s,percent:(s/t*100).toFixed(1),textClass:`text-red-600 dark:text-red-400`,barClass:`bg-red-500`}].filter(e=>e.count>0)});function u(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(n,r)=>a.value===0?(b(),o(`div`,Se,`暂无状态码数据`)):(b(),o(`div`,Ce,[(b(!0),o(e,null,g(c.value,e=>(b(),o(`div`,{key:e.label,class:`space-y-1`},[l(`div`,we,[l(`span`,{class:s(e.textClass)},t(e.label),3),l(`span`,Te,t(e.count)+` (`+t(e.percent)+`%) `,1)]),l(`div`,Ee,[l(`div`,{class:s([`h-full rounded-full transition-all duration-300`,e.barClass]),style:C({width:`${e.percent}%`})},null,6)])]))),128))]))}}),Oe={key:0,class:`text-sm text-muted-foreground py-4 text-center`},ke={key:1,class:`text-sm text-muted-foreground py-4 text-center`},Ae={class:`flex flex-wrap gap-1`},je={key:0,class:`text-xs text-muted-foreground`},Me=d({__name:`ProviderStatsTable`,props:{stats:{}},setup(c){let d=c,f=i(()=>d.stats?Object.entries(d.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})):[]);return(i,d)=>c.stats?f.value.length===0?(b(),o(`div`,ke,` 暂无 Provider 统计 `)):(b(),u(n(z),{key:2},{default:m(()=>[a(n(V),null,{default:m(()=>[a(n(B),null,{default:m(()=>[a(n(R),null,{default:m(()=>[...d[0]||=[y(`Provider`,-1)]]),_:1}),a(n(R),{class:`text-right`},{default:m(()=>[...d[1]||=[y(`请求数`,-1)]]),_:1}),a(n(R),{class:`text-right`},{default:m(()=>[...d[2]||=[y(`成功率`,-1)]]),_:1}),a(n(R),{class:`text-right`},{default:m(()=>[...d[3]||=[y(`平均延迟`,-1)]]),_:1}),a(n(R),{class:`text-right`},{default:m(()=>[...d[4]||=[y(`重试率`,-1)]]),_:1}),a(n(R),null,{default:m(()=>[...d[5]||=[y(`Top Errors`,-1)]]),_:1})]),_:1})]),_:1}),a(n(I),null,{default:m(()=>[(b(!0),o(e,null,g(f.value,i=>(b(),u(n(B),{key:i.id},{default:m(()=>[a(n(L),{class:`font-medium`},{default:m(()=>[y(t(i.name),1)]),_:2},1024),a(n(L),{class:`text-right`},{default:m(()=>[y(t(i.stats.totalRequests),1)]),_:2},1024),a(n(L),{class:`text-right`},{default:m(()=>[l(`span`,{class:s(i.successRate>=95?`text-green-600 dark:text-green-400`:i.successRate>=80?`text-yellow-600 dark:text-yellow-400`:`text-red-500 dark:text-red-400`)},t(i.successRate.toFixed(1))+`% `,3)]),_:2},1024),a(n(L),{class:`text-right`},{default:m(()=>[y(t(i.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),a(n(L),{class:`text-right`},{default:m(()=>[l(`span`,{class:s(i.retryRate>10?`text-yellow-600 dark:text-yellow-400`:``)},t(i.retryRate.toFixed(1))+`% `,3)]),_:2},1024),a(n(L),null,{default:m(()=>[l(`div`,Ae,[(b(!0),o(e,null,g(i.stats.topErrors.slice(0,3),e=>(b(),u(n(j),{key:e.code,variant:`destructive`,class:`text-xs`},{default:m(()=>[y(t(e.code)+` (`+t(e.count)+`) `,1)]),_:2},1024))),128)),i.stats.topErrors.length===0?(b(),o(`span`,je,`--`)):r(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(b(),o(`div`,Oe,` 暂无数据 `))}});function Ne(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 v(()=>{o(),n?.onClose?.()}),{connect:a,disconnect:o}}var Pe=200;function Fe(){let e=c([]),t=c([]),n=c(null),r=c([]),a=c(null),o=c(!1),s=i(()=>e.value.filter(e=>e.isStream).length),l=i(()=>e.value.filter(e=>!e.queued)),u=i(()=>e.value.filter(e=>e.queued===!0));function d(i){let o;try{o=JSON.parse(i.data)}catch{return}switch(i.type){case`request_start`:{let n=o;t.value.some(e=>e.id===n.id)||e.value.unshift(n);break}case`request_update`:e.value=o;break;case`request_complete`:{let n=o;e.value=e.value.filter(e=>e.id!==n.id),t.value.unshift(n),t.value.length>Pe&&(t.value.length=Pe);break}case`concurrency_update`:r.value=o;break;case`stats_update`:n.value=o;break;case`stream_content_update`:{let t=o;for(let n of t){let t=e.value.find(e=>e.id===n.id);t&&(n.streamContent&&(t.streamContent=n.streamContent),n.streamMetrics&&(t.streamMetrics=n.streamMetrics))}break}case`runtime_update`:a.value=o;break}}function p(){o.value=!0}function m(){o.value=!1}async function g(){try{let[i,o,s,c,l]=await Promise.allSettled([h.getMonitorActive(),h.getMonitorRecent(),h.getMonitorStats(),h.getMonitorConcurrency(),h.getMonitorRuntime()]);i.status===`fulfilled`&&(e.value=i.value),o.status===`fulfilled`&&(t.value=o.value),s.status===`fulfilled`&&(n.value=s.value),c.status===`fulfilled`&&(r.value=c.value),l.status===`fulfilled`&&(a.value=l.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),n.value=null,r.value=[],a.value=null}}let _=c(null),v=c(!1),y=c(0);async function b(n){let r=++y.value,i=e.value.find(e=>e.id===n)??t.value.find(e=>e.id===n);if(!i){_.value=null;return}_.value=null,v.value=!0;try{if(i.status===`pending`){try{let e=await h.getMonitorRequest(n);if(r!==y.value)return;_.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==404)throw e;if(r!==y.value)return;let t=await h.getLogDetail(n);if(r!==y.value)return;_.value=t.client_request?{clientRequest:t.client_request}:null}return}let e=await h.getLogDetail(n);if(r!==y.value)return;let t;if(!i.isStream){let n=e.upstream_response;if(n)try{let e=JSON.parse(n);t=(typeof e.body==`string`?e.body:n)??void 0}catch{t=n}}_.value={responseBody:t,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==y.value)return;console.warn(`Failed to load log detail:`,e),_.value=null}finally{r===y.value&&(v.value=!1)}}let x=c(null),S=c(!1);function C(e){x.value=e,S.value=!0,b(e)}let w=i(()=>x.value?e.value.find(e=>e.id===x.value)??t.value.find(e=>e.id===x.value)??null:null);return f(()=>w.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&b(x.value)}),{activeRequests:e,recentCompleted:t,stats:n,concurrency:r,runtime:a,connected:o,streamCount:s,streamingRequests:l,queuedRequests:u,selectedRequestId:x,selectedRequest:w,requestDetailOpen:S,selectRequest:C,logDetailData:_,nonStreamBodyLoading:v,handleSSEMessage:d,handleSSEOpen:p,handleSSEClose:m,loadInitialData:g}}function Ie(e){switch(e){case`pending`:return`default`;case`failed`:return`destructive`;case`completed`:return`secondary`;default:return`outline`}}function Le(e){switch(e){case`pending`:return`进行中`;case`failed`:return`失败`;case`completed`:return`完成`;default:return e}}var Re={class:`p-6`},ze={class:`flex items-center justify-between mb-4`},Be={class:`flex items-center gap-2`},Ve={class:`grid grid-cols-3 gap-4 mb-6`},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:`text-xs text-muted-foreground shrink-0`},qe={class:`flex items-center justify-between`},Je={key:0,class:`text-sm text-muted-foreground py-2`},Ye=[`onClick`],Xe={class:`text-sm text-foreground truncate flex-1`},Ze={class:`text-xs text-muted-foreground shrink-0`},Qe={class:`flex items-center justify-between`},$e={key:0,class:`text-sm text-muted-foreground py-2`},et=[`onClick`],tt={class:`text-sm text-foreground truncate flex-1`},nt={class:`text-xs text-muted-foreground shrink-0`},rt={class:`grid grid-cols-1 lg:grid-cols-3 gap-4`},$=1e3,it=d({__name:`Monitor`,setup(i){let{activeRequests:d,recentCompleted:f,stats:h,concurrency:C,runtime:I,connected:L,streamCount:R,streamingRequests:z,queuedRequests:B,selectedRequestId:V,selectedRequest:H,requestDetailOpen:U,selectRequest:W,logDetailData:G,handleSSEMessage:K,handleSSEOpen:q,handleSSEClose:ne,loadInitialData:re}=Fe(),{connect:ie}=Ne(`/admin/api/monitor/stream`,{request_start:K,request_update:K,request_complete:K,concurrency_update:K,stats_update:K,runtime_update:K,stream_content_update:K},{onOpen:q,onClose:ne}),{copied:J,copy:Y}=te(),X=c(Date.now()),Z=null;function Q(e){return((X.value-e)/$).toFixed(1)}function oe(e){return e.completedAt?((e.completedAt-e.startTime)/$).toFixed(1)+`s`:`--`}return p(async()=>{await re(),ie(),Z=setInterval(()=>{X.value=Date.now()},$)}),v(()=>{Z&&=(clearInterval(Z),null)}),(i,c)=>(b(),o(`div`,Re,[l(`div`,ze,[c[1]||=l(`h2`,{class:`text-lg font-semibold text-foreground`},`实时监控`,-1),l(`div`,Be,[a(n(j),{variant:n(L)?`default`:`destructive`},{default:m(()=>[y(t(n(L)?`已连接`:`未连接`),1)]),_:1},8,[`variant`])])]),a(ae,{stats:n(h),"active-count":n(d).length,"stream-count":n(R)},null,8,[`stats`,`active-count`,`stream-count`]),l(`div`,Ve,[a(n(M),null,{default:m(()=>[a(n(P),{class:`pb-2`},{default:m(()=>[l(`div`,He,[a(n(F),{class:`text-sm font-medium text-foreground`},{default:m(()=>[...c[2]||=[y(`活跃请求`,-1)]]),_:1}),a(n(j),{variant:`secondary`},{default:m(()=>[y(t(n(z).length),1)]),_:1})])]),_:1}),a(n(N),null,{default:m(()=>[a(n(w),{class:`h-64`},{default:m(()=>[n(z).length===0?(b(),o(`div`,Ue,` 暂无活跃请求 `)):r(``,!0),(b(!0),o(e,null,g(n(z),e=>(b(),o(`div`,{key:e.id,class:s([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":n(V)===e.id}]),onClick:t=>n(W)(e.id)},[a(n(j),{variant:n(Ie)(e.status),class:`shrink-0`},{default:m(()=>[y(t(n(Le)(e.status)),1)]),_:2},1032,[`variant`]),l(`span`,Ge,t(e.model),1),a(n(j),{variant:`outline`,class:`shrink-0 text-xs`},{default:m(()=>[y(t(e.providerName),1)]),_:2},1024),l(`span`,Ke,t(Q(e.startTime))+`s`,1),e.isStream?(b(),u(n(j),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:m(()=>[...c[3]||=[y(`SSE`,-1)]]),_:1})):r(``,!0),a(n(O),{"delay-duration":300},{default:m(()=>[a(n(D),null,{default:m(()=>[a(n(A),{"as-child":``},{default:m(()=>[a(n(_),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:S(t=>n(Y)(e.id),[`stop`])},{default:m(()=>[n(J)?(b(),u(n(T),{key:0,class:`size-3 text-success`})):(b(),u(n(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),a(n(k),null,{default:m(()=>[...c[4]||=[y(`复制 ID`,-1)]]),_:1})]),_:2},1024)]),_:2},1024)],10,We))),128))]),_:1})]),_:1})]),_:1}),a(n(M),null,{default:m(()=>[a(n(P),{class:`pb-2`},{default:m(()=>[l(`div`,qe,[a(n(F),{class:`text-sm font-medium text-foreground`},{default:m(()=>[...c[5]||=[y(`队列请求`,-1)]]),_:1}),a(n(j),{variant:`secondary`},{default:m(()=>[y(t(n(B).length),1)]),_:1})])]),_:1}),a(n(N),null,{default:m(()=>[a(n(w),{class:`h-64`},{default:m(()=>[n(B).length===0?(b(),o(`div`,Je,` 暂无排队请求 `)):r(``,!0),(b(!0),o(e,null,g(n(B),e=>(b(),o(`div`,{key:e.id,class:s([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":n(V)===e.id}]),onClick:t=>n(W)(e.id)},[a(n(j),{variant:`outline`,class:`shrink-0`},{default:m(()=>[...c[6]||=[y(` 排队 `,-1)]]),_:1}),l(`span`,Xe,t(e.model),1),a(n(j),{variant:`outline`,class:`shrink-0 text-xs`},{default:m(()=>[y(t(e.providerName),1)]),_:2},1024),l(`span`,Ze,t(Q(e.startTime))+`s`,1),a(n(O),{"delay-duration":300},{default:m(()=>[a(n(D),null,{default:m(()=>[a(n(A),{"as-child":``},{default:m(()=>[a(n(_),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:S(t=>n(Y)(e.id),[`stop`])},{default:m(()=>[n(J)?(b(),u(n(T),{key:0,class:`size-3 text-success`})):(b(),u(n(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),a(n(k),null,{default:m(()=>[...c[7]||=[y(`复制 ID`,-1)]]),_:1})]),_:2},1024)]),_:2},1024)],10,Ye))),128))]),_:1})]),_:1})]),_:1}),a(n(M),null,{default:m(()=>[a(n(P),{class:`pb-2`},{default:m(()=>[l(`div`,Qe,[a(n(F),{class:`text-sm font-medium text-foreground`},{default:m(()=>[...c[8]||=[y(`已完成`,-1)]]),_:1}),a(n(j),{variant:`secondary`},{default:m(()=>[y(t(n(f).length),1)]),_:1})])]),_:1}),a(n(N),null,{default:m(()=>[a(n(w),{class:`h-64`},{default:m(()=>[n(f).length===0?(b(),o(`div`,$e,` 暂无已完成请求 `)):r(``,!0),(b(!0),o(e,null,g(n(f),e=>(b(),o(`div`,{key:e.id,class:s([`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":n(V)===e.id}]),onClick:t=>n(W)(e.id)},[a(n(j),{variant:n(Ie)(e.status),class:`shrink-0`},{default:m(()=>[y(t(n(Le)(e.status)),1)]),_:2},1032,[`variant`]),l(`span`,tt,t(e.model),1),a(n(j),{variant:`outline`,class:`shrink-0 text-xs`},{default:m(()=>[y(t(e.providerName),1)]),_:2},1024),e.isStream?(b(),u(n(j),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:m(()=>[...c[9]||=[y(`SSE`,-1)]]),_:1})):r(``,!0),l(`span`,nt,t(oe(e)),1),a(n(O),{"delay-duration":300},{default:m(()=>[a(n(D),null,{default:m(()=>[a(n(A),{"as-child":``},{default:m(()=>[a(n(_),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:S(t=>n(Y)(e.id),[`stop`])},{default:m(()=>[n(J)?(b(),u(n(T),{key:0,class:`size-3 text-success`})):(b(),u(n(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),a(n(k),null,{default:m(()=>[...c[10]||=[y(`复制 ID`,-1)]]),_:1})]),_:2},1024)]),_:2},1024)],10,et))),128))]),_:1})]),_:1})]),_:1})]),a(n(M),{class:`mb-4`},{default:m(()=>[a(n(P),null,{default:m(()=>[a(n(F),{class:`text-sm font-medium text-foreground`},{default:m(()=>[...c[11]||=[y(`Provider 统计`,-1)]]),_:1})]),_:1}),a(n(N),null,{default:m(()=>[a(Me,{stats:n(h)},null,8,[`stats`])]),_:1})]),_:1}),l(`div`,rt,[a(n(M),null,{default:m(()=>[a(n(P),null,{default:m(()=>[a(n(F),{class:`text-sm font-medium text-foreground`},{default:m(()=>[...c[12]||=[y(`并发度`,-1)]]),_:1})]),_:1}),a(n(N),null,{default:m(()=>[a(ce,{providers:n(C)},null,8,[`providers`])]),_:1})]),_:1}),a(n(M),null,{default:m(()=>[a(n(P),null,{default:m(()=>[a(n(F),{class:`text-sm font-medium text-foreground`},{default:m(()=>[...c[13]||=[y(`状态码分布`,-1)]]),_:1})]),_:1}),a(n(N),null,{default:m(()=>[a(De,{"by-status-code":n(h)?.byStatusCode??{}},null,8,[`by-status-code`])]),_:1})]),_:1}),a(n(M),null,{default:m(()=>[a(n(P),null,{default:m(()=>[a(n(F),{class:`text-sm font-medium text-foreground`},{default:m(()=>[...c[14]||=[y(`运行时`,-1)]]),_:1})]),_:1}),a(n(N),null,{default:m(()=>[a(xe,{runtime:n(I)},null,8,[`runtime`])]),_:1})]),_:1})]),a(ee,{open:n(U),"onUpdate:open":c[0]||=e=>x(U)?U.value=e:null,source:`realtime`,request:n(H),"stream-content":n(H)?.streamContent,"log-detail-data":n(G)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`])]))}});export{it as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Dt as e,J as t,Lt as n,Mt as r,Pt as i,R as a,U as o,X as s,dt as c,i as l,it as u,lt as d,m as f,o as p,ot as m,q as h,r as g,tt as _,x as v,yt as y}from"./button-Ul8WlrM5.js";import{a as b,c as x,d as S,i as C,l as w,o as T,p as E,t as D,u as O,y as k}from"./Teleport-DizRK5O3.js";import{i as A,r as j,t as M}from"./PopperContent-gzzf1XHe.js";import{t as N}from"./useFocusGuards-A-9V2Y-b.js";var[P,F]=k(`PopoverRoot`),I=t({__name:`PopoverRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:[`update:open`],setup(t,{emit:n}){let a=t,s=n,{modal:c}=r(a),l=f(a,`open`,s,{defaultValue:a.defaultOpen,passive:a.open===void 0});return F({contentId:``,triggerId:``,modal:c,open:l,onOpenChange:e=>{l.value=e},onOpenToggle:()=>{l.value=!l.value},triggerElement:e(),hasCustomAnchor:e(!1)}),(e,t)=>(m(),o(i(A),null,{default:y(()=>[d(e.$slots,`default`,{open:i(l),close:()=>l.value=!1})]),_:3}))}}),L=t({__name:`PopoverContentImpl`,props:{trapFocus:{type:Boolean,required:!1},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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,a=S(v(n,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:s}=p(),c=P();return N(),(e,t)=>(m(),o(i(C),{"as-child":``,loop:``,trapped:e.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:y(()=>[h(i(b),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onPointerDownOutside:t[0]||=e=>r(`pointerDownOutside`,e),onInteractOutside:t[1]||=e=>r(`interactOutside`,e),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[3]||=e=>r(`focusOutside`,e),onDismiss:t[4]||=e=>i(c).onOpenChange(!1)},{default:y(()=>[h(i(M),_(i(a),{id:i(c).contentId,ref:i(s),"data-state":i(c).open.value?`open`:`closed`,"aria-labelledby":i(c).triggerId,style:{"--reka-popover-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-popover-content-available-width":`var(--reka-popper-available-width)`,"--reka-popover-content-available-height":`var(--reka-popper-available-height)`,"--reka-popover-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-popover-trigger-height":`var(--reka-popper-anchor-height)`},role:`dialog`}),{default:y(()=>[d(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`aria-labelledby`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),R=t({__name:`PopoverContentModal`,props:{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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:n}){let r=t,s=n,c=P(),l=e(!1);E(!0);let u=O(r,s),{forwardRef:f,currentElement:h}=p();return w(h),(e,t)=>(m(),o(L,_(i(u),{ref:i(f),"trap-focus":i(c).open.value,"disable-outside-pointer-events":``,onCloseAutoFocus:t[0]||=a(e=>{s(`closeAutoFocus`,e),l.value||i(c).triggerElement.value?.focus()},[`prevent`]),onPointerDownOutside:t[1]||=e=>{s(`pointerDownOutside`,e);let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;l.value=t.button===2||n},onFocusOutside:t[2]||=a(()=>{},[`prevent`])}),{default:y(()=>[d(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),z=t({__name:`PopoverContentNonModal`,props:{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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:n}){let r=t,a=n,s=P(),c=e(!1),l=e(!1),u=O(r,a);return(e,t)=>(m(),o(L,_(i(u),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{a(`closeAutoFocus`,e),e.defaultPrevented||(c.value||i(s).triggerElement.value?.focus(),e.preventDefault()),c.value=!1,l.value=!1},onInteractOutside:t[1]||=async e=>{a(`interactOutside`,e),e.defaultPrevented||(c.value=!0,e.detail.originalEvent.type===`pointerdown`&&(l.value=!0));let t=e.target;i(s).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&l.value&&e.preventDefault()}}),{default:y(()=>[d(e.$slots,`default`)]),_:3},16))}}),B=t({__name:`PopoverContent`,props:{forceMount:{type:Boolean,required:!1},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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,a=P(),s=O(n,r),{forwardRef:c}=p();return a.contentId||=x(void 0,`reka-popover-content`),(e,t)=>(m(),o(i(T),{present:e.forceMount||i(a).open.value},{default:y(()=>[i(a).modal.value?(m(),o(R,_({key:0},i(s),{ref:i(c)}),{default:y(()=>[d(e.$slots,`default`)]),_:3},16)):(m(),o(z,_({key:1},i(s),{ref:i(c)}),{default:y(()=>[d(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),V=t({__name:`PopoverPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,r)=>(m(),o(i(D),n(s(t)),{default:y(()=>[d(e.$slots,`default`)]),_:3},16))}}),H=t({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=P(),{forwardRef:r,currentElement:a}=p();return n.triggerId||=x(void 0,`reka-popover-trigger`),u(()=>{n.triggerElement.value=a.value}),(e,a)=>(m(),o(c(i(n).hasCustomAnchor.value?i(l):i(j)),{"as-child":``},{default:y(()=>[h(i(l),{id:i(n).triggerId,ref:i(r),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":i(n).open.value,"aria-controls":i(n).contentId,"data-state":i(n).open.value?`open`:`closed`,as:e.as,"as-child":t.asChild,onClick:i(n).onOpenToggle},{default:y(()=>[d(e.$slots,`default`)]),_:3},8,[`id`,`type`,`aria-expanded`,`aria-controls`,`data-state`,`as`,`as-child`,`onClick`])]),_:3}))}}),U=t({__name:`Popover`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let r=O(e,t);return(e,t)=>(m(),o(i(I),_({"data-slot":`popover`},i(r)),{default:y(t=>[d(e.$slots,`default`,n(s(t)))]),_:3},16))}}),W=t({inheritAttrs:!1,__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,a=O(v(n,`class`),r);return(e,t)=>(m(),o(i(V),null,{default:y(()=>[h(i(B),_({"data-slot":`popover-content`},{...e.$attrs,...i(a)},{class:i(g)(`bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 flex flex-col gap-2.5 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 z-50 w-72 origin-(--reka-popover-content-transform-origin) outline-hidden`,n.class)}),{default:y(()=>[d(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),G=t({__name:`PopoverTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(m(),o(i(H),_({"data-slot":`popover-trigger`},t),{default:y(()=>[d(e.$slots,`default`)]),_:3},16))}});export{W as n,U as r,G as t};
|
|
1
|
+
import{Ft as e,J as t,Nt as n,Ot as r,Rt as i,W as a,Y as o,Z as s,at as c,bt as l,ft as u,i as d,m as f,nt as p,o as m,r as h,st as g,ut as _,x as v,z as y}from"./button-zud8Qspb.js";import{i as b,r as x,t as S}from"./PopperContent-Bd_mpt_D.js";import{a as C,c as w,d as T,i as E,l as D,o as O,p as k,t as A,u as j,y as M}from"./Teleport-CLw1Jxrb.js";import{t as N}from"./useFocusGuards-DORIgNd9.js";var[P,F]=M(`PopoverRoot`),I=o({__name:`PopoverRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:[`update:open`],setup(t,{emit:i}){let o=t,s=i,{modal:c}=n(o),u=f(o,`open`,s,{defaultValue:o.defaultOpen,passive:o.open===void 0});return F({contentId:``,triggerId:``,modal:c,open:u,onOpenChange:e=>{u.value=e},onOpenToggle:()=>{u.value=!u.value},triggerElement:r(),hasCustomAnchor:r(!1)}),(t,n)=>(g(),a(e(b),null,{default:l(()=>[_(t.$slots,`default`,{open:e(u),close:()=>u.value=!1})]),_:3}))}}),L=o({__name:`PopoverContentImpl`,props:{trapFocus:{type:Boolean,required:!1},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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(n,{emit:r}){let i=n,o=r,s=T(v(i,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:c}=m(),u=P();return N(),(n,r)=>(g(),a(e(E),{"as-child":``,loop:``,trapped:n.trapFocus,onMountAutoFocus:r[5]||=e=>o(`openAutoFocus`,e),onUnmountAutoFocus:r[6]||=e=>o(`closeAutoFocus`,e)},{default:l(()=>[t(e(C),{"as-child":``,"disable-outside-pointer-events":n.disableOutsidePointerEvents,onPointerDownOutside:r[0]||=e=>o(`pointerDownOutside`,e),onInteractOutside:r[1]||=e=>o(`interactOutside`,e),onEscapeKeyDown:r[2]||=e=>o(`escapeKeyDown`,e),onFocusOutside:r[3]||=e=>o(`focusOutside`,e),onDismiss:r[4]||=t=>e(u).onOpenChange(!1)},{default:l(()=>[t(e(S),p(e(s),{id:e(u).contentId,ref:e(c),"data-state":e(u).open.value?`open`:`closed`,"aria-labelledby":e(u).triggerId,style:{"--reka-popover-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-popover-content-available-width":`var(--reka-popper-available-width)`,"--reka-popover-content-available-height":`var(--reka-popper-available-height)`,"--reka-popover-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-popover-trigger-height":`var(--reka-popper-anchor-height)`},role:`dialog`}),{default:l(()=>[_(n.$slots,`default`)]),_:3},16,[`id`,`data-state`,`aria-labelledby`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),R=o({__name:`PopoverContentModal`,props:{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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:n}){let i=t,o=n,s=P(),c=r(!1);k(!0);let u=j(i,o),{forwardRef:d,currentElement:f}=m();return D(f),(t,n)=>(g(),a(L,p(e(u),{ref:e(d),"trap-focus":e(s).open.value,"disable-outside-pointer-events":``,onCloseAutoFocus:n[0]||=y(t=>{o(`closeAutoFocus`,t),c.value||e(s).triggerElement.value?.focus()},[`prevent`]),onPointerDownOutside:n[1]||=e=>{o(`pointerDownOutside`,e);let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;c.value=t.button===2||n},onFocusOutside:n[2]||=y(()=>{},[`prevent`])}),{default:l(()=>[_(t.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),z=o({__name:`PopoverContentNonModal`,props:{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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:n}){let i=t,o=n,s=P(),c=r(!1),u=r(!1),d=j(i,o);return(t,n)=>(g(),a(L,p(e(d),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:n[0]||=t=>{o(`closeAutoFocus`,t),t.defaultPrevented||(c.value||e(s).triggerElement.value?.focus(),t.preventDefault()),c.value=!1,u.value=!1},onInteractOutside:n[1]||=async t=>{o(`interactOutside`,t),t.defaultPrevented||(c.value=!0,t.detail.originalEvent.type===`pointerdown`&&(u.value=!0));let n=t.target;e(s).triggerElement.value?.contains(n)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&u.value&&t.preventDefault()}}),{default:l(()=>[_(t.$slots,`default`)]),_:3},16))}}),B=o({__name:`PopoverContent`,props:{forceMount:{type:Boolean,required:!1},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},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:n}){let r=t,i=n,o=P(),s=j(r,i),{forwardRef:c}=m();return o.contentId||=w(void 0,`reka-popover-content`),(t,n)=>(g(),a(e(O),{present:t.forceMount||e(o).open.value},{default:l(()=>[e(o).modal.value?(g(),a(R,p({key:0},e(s),{ref:e(c)}),{default:l(()=>[_(t.$slots,`default`)]),_:3},16)):(g(),a(z,p({key:1},e(s),{ref:e(c)}),{default:l(()=>[_(t.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),V=o({__name:`PopoverPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(t){let n=t;return(t,r)=>(g(),a(e(A),i(s(n)),{default:l(()=>[_(t.$slots,`default`)]),_:3},16))}}),H=o({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(n){let r=n,i=P(),{forwardRef:o,currentElement:s}=m();return i.triggerId||=w(void 0,`reka-popover-trigger`),c(()=>{i.triggerElement.value=s.value}),(n,s)=>(g(),a(u(e(i).hasCustomAnchor.value?e(d):e(x)),{"as-child":``},{default:l(()=>[t(e(d),{id:e(i).triggerId,ref:e(o),type:n.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":e(i).open.value,"aria-controls":e(i).contentId,"data-state":e(i).open.value?`open`:`closed`,as:n.as,"as-child":r.asChild,onClick:e(i).onOpenToggle},{default:l(()=>[_(n.$slots,`default`)]),_:3},8,[`id`,`type`,`aria-expanded`,`aria-controls`,`data-state`,`as`,`as-child`,`onClick`])]),_:3}))}}),U=o({__name:`Popover`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(t,{emit:n}){let r=j(t,n);return(t,n)=>(g(),a(e(I),p({"data-slot":`popover`},e(r)),{default:l(e=>[_(t.$slots,`default`,i(s(e)))]),_:3},16))}}),W=o({inheritAttrs:!1,__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(n,{emit:r}){let i=n,o=r,s=j(v(i,`class`),o);return(n,r)=>(g(),a(e(V),null,{default:l(()=>[t(e(B),p({"data-slot":`popover-content`},{...n.$attrs,...e(s)},{class:e(h)(`bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 flex flex-col gap-2.5 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 z-50 w-72 origin-(--reka-popover-content-transform-origin) outline-hidden`,i.class)}),{default:l(()=>[_(n.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),G=o({__name:`PopoverTrigger`,props:{asChild:{type:Boolean},as:{}},setup(t){let n=t;return(t,r)=>(g(),a(e(H),p({"data-slot":`popover-trigger`},n),{default:l(()=>[_(t.$slots,`default`)]),_:3},16))}});export{W as n,U as r,G as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Dt as e,G as t,J as n,Ot as r,Pt as i,Rt as a,Tt as o,U as s,V as c,_t as l,et as u,gt as d,h as f,i as p,it as m,kt as h,lt as g,o as _,ot as v,q as y,tt as b,u as x,vt as S,xt as C,yt as w}from"./button-Ul8WlrM5.js";import{b as T,y as E}from"./Teleport-DizRK5O3.js";var D=T(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]);function O(t){let n=e(),r=c(()=>n.value?.width??0),i=c(()=>n.value?.height??0);return m(()=>{let e=x(t);if(e){n.value={width:e.offsetWidth,height:e.offsetHeight};let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[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=e.offsetWidth,a=e.offsetHeight;n.value={width:i,height:a}});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n.value=void 0}),{width:r,height:i}}var[k,A]=E(`PopperRoot`),j=n({inheritAttrs:!1,__name:`PopperRoot`,setup(t){let n=e();return A({anchor:n,onAnchorChange:e=>n.value=e}),(e,t)=>g(e.$slots,`default`)}}),M=n({__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}=_(),a=k();return S(()=>{a.onAnchorChange(t.reference??r.value)}),(e,t)=>(v(),s(i(p),{ref:i(n),as:e.as,"as-child":e.asChild},{default:w(()=>[g(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function ee(e){return e!==null}function te(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]=ne(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 ne(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var re=[`top`,`right`,`bottom`,`left`],N=Math.min,P=Math.max,F=Math.round,I=Math.floor,L=e=>({x:e,y:e}),ie={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ae(e,t,n){return P(e,N(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 oe(e){return e===`x`?`y`:`x`}function se(e){return e===`y`?`height`:`width`}function V(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ce(e){return oe(V(e))}function le(e,t,n){n===void 0&&(n=!1);let r=B(e),i=ce(e),a=se(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=ve(o)),[o,ve(o)]}function ue(e){let t=ve(e);return[de(e),t,de(t)]}function de(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var fe=[`left`,`right`],pe=[`right`,`left`],me=[`top`,`bottom`],he=[`bottom`,`top`];function ge(e,t,n){switch(e){case`top`:case`bottom`:return n?t?pe:fe:t?fe:pe;case`left`:case`right`:return t?me:he;default:return[]}}function _e(e,t,n,r){let i=B(e),a=ge(z(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(de)))),a}function ve(e){let t=z(e);return ie[t]+e.slice(t.length)}function ye(e){return{top:0,right:0,bottom:0,left:0,...e}}function be(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ye(e)}function xe(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 Se(e,t,n){let{reference:r,floating:i}=e,a=V(t),o=ce(t),s=se(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 Ce(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=be(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=xe(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=xe(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 we=50,Te=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ce},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Se(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<we&&(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}=Se(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Ee=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=be(u),f={x:n,y:r},p=ce(i),m=se(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=N(d[_],T),D=N(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=ae(O,A,k),M=!c.arrow&&B(i)!=null&&A!==j&&a.reference[m]/2-(A<O?E:D)-h[m]/2<0,ee=M?A<O?A-O:A-k:0;return{[p]:f[p]+ee,data:{[p]:j,centerOffset:A-j-ee,...M&&{alignmentOffset:ee}},reset:M}}}),De=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?[ve(o)]:ue(o)),x=p!==`none`;!d&&x&&b.push(..._e(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=le(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 Oe(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ke(e){return re.some(t=>e[t]>=0)}var Ae=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=Oe(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:ke(e)}}}case`escaped`:{let e=Oe(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:ke(e)}}}default:return{}}}}},je=new Set([`left`,`top`]);async function Me(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=je.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 Ne=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 Me(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}}}}},Pe=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=oe(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=ae(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=ae(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}}}}}},Fe=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=oe(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=je.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}}}},Ie=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=N(h-u[g],v),x=N(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=P(u.left,0),t=P(u.right,0),n=P(u.top,0),r=P(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:P(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:P(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 Le(){return typeof window<`u`}function H(e){return Re(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((Re(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Re(e){return Le()?e instanceof Node||e instanceof U(e).Node:!1}function G(e){return Le()?e instanceof Element||e instanceof U(e).Element:!1}function K(e){return Le()?e instanceof HTMLElement||e instanceof U(e).HTMLElement:!1}function ze(e){return!Le()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof U(e).ShadowRoot}function Be(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 Ve(e){return/^(table|td|th)$/.test(H(e))}function He(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Ue=/transform|translate|scale|rotate|perspective|filter/,We=/paint|layout|strict|content/,q=e=>!!e&&e!==`none`,Ge;function Ke(e){let t=G(e)?Y(e):e;return q(t.transform)||q(t.translate)||q(t.scale)||q(t.rotate)||q(t.perspective)||!Je()&&(q(t.backdropFilter)||q(t.filter))||Ue.test(t.willChange||``)||We.test(t.contain||``)}function qe(e){let t=X(e);for(;K(t)&&!J(t);){if(Ke(t))return t;if(He(t))return null;t=X(t)}return null}function Je(){return Ge??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ge}function J(e){return/^(html|body|#document)$/.test(H(e))}function Y(e){return U(e).getComputedStyle(e)}function Ye(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||ze(e)&&e.host||W(e);return ze(t)?t.host:t}function Xe(e){let t=X(e);return J(t)?e.ownerDocument?e.ownerDocument.body:e.body:K(t)&&Be(t)?t:Xe(t)}function Ze(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Xe(e),i=r===e.ownerDocument?.body,a=U(r);if(i){let e=Qe(a);return t.concat(a,a.visualViewport||[],Be(r)?r:[],e&&n?Ze(e):[])}else return t.concat(r,Ze(r,[],n))}function Qe(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function $e(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=F(n)!==a||F(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function et(e){return G(e)?e:e.contextElement}function Z(e){let t=et(e);if(!K(t))return L(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=$e(t),o=(a?F(n.width):n.width)/r,s=(a?F(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var tt=L(0);function nt(e){let t=U(e);return!Je()||!t.visualViewport?tt:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function rt(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=et(e),o=L(1);t&&(r?G(r)&&(o=Z(r)):o=Z(e));let s=rt(a,n,r)?nt(a):L(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=Qe(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=Qe(n)}}return xe({width:u,height:d,x:c,y:l})}function it(e,t){let n=Ye(e).scrollLeft;return t?t.left+n:Q(W(e)).left+n}function at(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-it(e,n),y:n.top+t.scrollTop}}function ot(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=W(r),s=t?He(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=L(1),u=L(0),d=K(r);if((d||!d&&!a)&&((H(r)!==`body`||Be(o))&&(c=Ye(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?at(o,c):L(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 st(e){return Array.from(e.getClientRects())}function ct(e){let t=W(e),n=Ye(e),r=e.ownerDocument.body,i=P(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=P(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+it(e),s=-n.scrollTop;return Y(r).direction===`rtl`&&(o+=P(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var lt=25;function ut(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=Je();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=it(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<=lt&&(a-=o)}else l<=lt&&(a+=l);return{width:a,height:o,x:s,y:c}}function dt(e,t){let n=Q(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=K(e)?Z(e):L(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function ft(e,t,n){let r;if(t===`viewport`)r=ut(e,n);else if(t===`document`)r=ct(W(e));else if(G(t))r=dt(t,n);else{let n=nt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return xe(r)}function pt(e,t){let n=X(e);return n===t||!G(n)||J(n)?!1:Y(n).position===`fixed`||pt(n,t)}function mt(e,t){let n=t.get(e);if(n)return n;let r=Ze(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=Ke(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Be(o)&&!n&&pt(e,o))?r=r.filter(e=>e!==o):i=t,o=X(o)}return t.set(e,r),r}function ht(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?He(t)?[]:mt(t,this._c):[].concat(n),r],o=ft(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=ft(t,a[e],i);s=P(n.top,s),c=N(n.right,c),l=N(n.bottom,l),u=P(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function gt(e){let{width:t,height:n}=$e(e);return{width:t,height:n}}function _t(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=L(0);function l(){c.x=it(i)}if(r||!r&&!a)if((H(t)!==`body`||Be(i))&&(s=Ye(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?at(i,s):L(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 vt(e){return Y(e).position===`static`}function yt(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 bt(e,t){let n=U(e);if(He(e))return n;if(!K(e)){let t=X(e);for(;t&&!J(t);){if(G(t)&&!vt(t))return t;t=X(t)}return n}let r=yt(e,t);for(;r&&Ve(r)&&vt(r);)r=yt(r,t);return r&&J(r)&&vt(r)&&!Ke(r)?n:r||qe(e)||n}var xt=async function(e){let t=this.getOffsetParent||bt,n=this.getDimensions,r=await n(e.floating);return{reference:_t(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function St(e){return Y(e).direction===`rtl`}var Ct={convertOffsetParentRelativeRectToViewportRelativeRect:ot,getDocumentElement:W,getClippingRect:ht,getOffsetParent:bt,getElementRects:xt,getClientRects:st,getDimensions:gt,getScale:Z,isElement:G,isRTL:St};function wt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Tt(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=I(d),h=I(i.clientWidth-(u+f)),g=I(i.clientHeight-(d+p)),_=I(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:P(0,N(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&&!wt(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 Et(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=et(e),u=i||a?[...l?Ze(l):[],...t?Ze(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Tt(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&&!wt(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 Dt=Ne,Ot=Pe,kt=De,At=Ie,jt=Ae,Mt=Ee,Nt=Fe,Pt=(e,t,n)=>{let r=new Map,i={platform:Ct,...n},a={...i.platform,_c:r};return Te(e,t,{...i,platform:a})};function Ft(e){return typeof e==`object`&&!!e&&`$el`in e}function It(e){if(Ft(e)){let t=e.$el;return Re(t)&&H(t)===`#comment`?null:t}return e}function $(e){return typeof e==`function`?e():i(e)}function Lt(e){return{name:`arrow`,options:e,fn(t){let n=It($(e.element));return n==null?{}:Mt({element:n,padding:e.padding}).fn(t)}}}function Rt(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function zt(e,t){let n=Rt(e);return Math.round(t*n)/n}function Bt(t,n,i){i===void 0&&(i={});let a=i.whileElementsMounted,s=c(()=>$(i.open)??!0),l=c(()=>$(i.middleware)),u=c(()=>$(i.placement)??`bottom`),f=c(()=>$(i.strategy)??`absolute`),p=c(()=>$(i.transform)??!0),m=c(()=>It(t.value)),g=c(()=>It(n.value)),_=e(0),v=e(0),y=e(f.value),b=e(u.value),x=h({}),S=e(!1),w=c(()=>{let e={position:y.value,left:`0`,top:`0`};if(!g.value)return e;let t=zt(g.value,_.value),n=zt(g.value,v.value);return p.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...Rt(g.value)>=1.5&&{willChange:`transform`}}:{position:y.value,left:t+`px`,top:n+`px`}}),T;function E(){if(m.value==null||g.value==null)return;let e=s.value;Pt(m.value,g.value,{middleware:l.value,placement:u.value,strategy:f.value}).then(t=>{_.value=t.x,v.value=t.y,y.value=t.strategy,b.value=t.placement,x.value=t.middlewareData,S.value=e!==!1})}function D(){typeof T==`function`&&(T(),T=void 0)}function O(){if(D(),a===void 0){E();return}if(m.value!=null&&g.value!=null){T=a(m.value,g.value,E);return}}function k(){s.value||(S.value=!1)}return d([l,u,f,s],E,{flush:`sync`}),d([m,g],O,{flush:`sync`}),d(s,k,{flush:`sync`}),C()&&o(D),{x:r(_),y:r(v),strategy:r(y),placement:r(b),middlewareData:r(x),isPositioned:r(S),floatingStyles:w,update:E}}var Vt={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},[Ht,Ut]=E(`PopperContent`),Wt=n({inheritAttrs:!1,__name:`PopperContent`,props:u({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}},{...Vt}),emits:[`placed`],setup(n,{emit:r}){let o=n,s=r,u=k(),{forwardRef:d,currentElement:m}=_(),h=e(),x=e(),{width:C,height:T}=O(x),E=c(()=>o.side+(o.align===`center`?``:`-${o.align}`)),D=c(()=>typeof o.collisionPadding==`number`?o.collisionPadding:{top:0,right:0,bottom:0,left:0,...o.collisionPadding}),A=c(()=>Array.isArray(o.collisionBoundary)?o.collisionBoundary:[o.collisionBoundary]),j=c(()=>({padding:D.value,boundary:A.value.filter(ee),altBoundary:A.value.length>0})),M=c(()=>({mainAxis:o.sideFlip,crossAxis:o.alignFlip})),re=f(()=>[Dt({mainAxis:o.sideOffset+T.value,alignmentAxis:o.alignOffset}),o.prioritizePosition&&o.avoidCollisions&&kt({...j.value,...M.value}),o.avoidCollisions&&Ot({mainAxis:!0,crossAxis:!!o.prioritizePosition,limiter:o.sticky===`partial`?Nt():void 0,...j.value}),!o.prioritizePosition&&o.avoidCollisions&&kt({...j.value,...M.value}),At({...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`)}}),x.value&&Lt({element:x.value,padding:o.arrowPadding}),te({arrowWidth:C.value,arrowHeight:T.value}),o.hideWhenDetached&&jt({strategy:`referenceHidden`,...j.value})]),{floatingStyles:N,placement:P,isPositioned:F,middlewareData:I,update:L}=Bt(c(()=>o.reference??u.anchor.value),h,{strategy:o.positionStrategy,placement:E,whileElementsMounted:(...e)=>Et(...e,{layoutShift:!o.disableUpdateOnLayoutShift,animationFrame:o.updatePositionStrategy===`always`}),middleware:re}),ie=c(()=>ne(P.value)[0]),ae=c(()=>ne(P.value)[1]);S(()=>{F.value&&s(`placed`)});let R=c(()=>{let e=I.value.arrow?.centerOffset!==0;return o.hideShiftedArrow&&e}),z=e(``);return l(()=>{m.value&&(z.value=window.getComputedStyle(m.value).zIndex)}),Ut({placedSide:ie,onArrowChange:e=>x.value=e,arrowX:c(()=>I.value.arrow?.x??0),arrowY:c(()=>I.value.arrow?.y??0),shouldHideArrow:R}),(e,n)=>(v(),t(`div`,{ref_key:`floatingRef`,ref:h,"data-reka-popper-content-wrapper":``,style:a({...i(N),transform:i(F)?i(N).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:z.value,"--reka-popper-transform-origin":[i(I).transformOrigin?.x,i(I).transformOrigin?.y].join(` `),...i(I).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[y(i(p),b({ref:i(d)},e.$attrs,{"as-child":o.asChild,as:e.as,"data-side":ie.value,"data-align":ae.value,style:{animation:i(F)?void 0:`none`}}),{default:w(()=>[g(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}});export{D as a,j as i,Ht as n,M as r,Wt as t};
|
|
1
|
+
import{At as e,Et as t,Ft as n,H as r,J as i,K as a,M as o,Ot as s,St as c,W as l,Y as u,_t as d,at as f,bt as p,h as m,i as h,kt as g,nt as _,o as v,st as y,tt as b,u as x,ut as S,vt as C,yt as w,zt as T}from"./button-zud8Qspb.js";import{y as E}from"./Teleport-CLw1Jxrb.js";var D=o(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]);function O(e){let t=s(),n=r(()=>t.value?.width??0),i=r(()=>t.value?.height??0);return f(()=>{let n=x(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:n,height:i}}var[k,A]=E(`PopperRoot`),j=u({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=s();return A({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>S(e.$slots,`default`)}}),M=u({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:r,currentElement:i}=v(),a=k();return w(()=>{a.onAnchorChange(t.reference??i.value)}),(e,t)=>(y(),l(n(h),{ref:n(r),as:e.as,"as-child":e.asChild},{default:p(()=>[S(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function ee(e){return e!==null}function te(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]=ne(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 ne(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var re=[`top`,`right`,`bottom`,`left`],N=Math.min,P=Math.max,F=Math.round,I=Math.floor,L=e=>({x:e,y:e}),ie={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ae(e,t,n){return P(e,N(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 oe(e){return e===`x`?`y`:`x`}function se(e){return e===`y`?`height`:`width`}function V(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ce(e){return oe(V(e))}function le(e,t,n){n===void 0&&(n=!1);let r=B(e),i=ce(e),a=se(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=ve(o)),[o,ve(o)]}function ue(e){let t=ve(e);return[de(e),t,de(t)]}function de(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var fe=[`left`,`right`],pe=[`right`,`left`],me=[`top`,`bottom`],he=[`bottom`,`top`];function ge(e,t,n){switch(e){case`top`:case`bottom`:return n?t?pe:fe:t?fe:pe;case`left`:case`right`:return t?me:he;default:return[]}}function _e(e,t,n,r){let i=B(e),a=ge(z(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(de)))),a}function ve(e){let t=z(e);return ie[t]+e.slice(t.length)}function ye(e){return{top:0,right:0,bottom:0,left:0,...e}}function be(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ye(e)}function xe(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 Se(e,t,n){let{reference:r,floating:i}=e,a=V(t),o=ce(t),s=se(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 Ce(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=be(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=xe(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=xe(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 we=50,Te=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ce},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Se(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<we&&(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}=Se(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Ee=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=be(u),f={x:n,y:r},p=ce(i),m=se(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=N(d[_],T),D=N(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=ae(O,A,k),M=!c.arrow&&B(i)!=null&&A!==j&&a.reference[m]/2-(A<O?E:D)-h[m]/2<0,ee=M?A<O?A-O:A-k:0;return{[p]:f[p]+ee,data:{[p]:j,centerOffset:A-j-ee,...M&&{alignmentOffset:ee}},reset:M}}}),De=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?[ve(o)]:ue(o)),x=p!==`none`;!d&&x&&b.push(..._e(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=le(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 Oe(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ke(e){return re.some(t=>e[t]>=0)}var Ae=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=Oe(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:ke(e)}}}case`escaped`:{let e=Oe(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:ke(e)}}}default:return{}}}}},je=new Set([`left`,`top`]);async function Me(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=je.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 Ne=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 Me(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}}}}},Pe=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=oe(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=ae(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=ae(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}}}}}},Fe=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=oe(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=je.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}}}},Ie=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=N(h-u[g],v),x=N(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=P(u.left,0),t=P(u.right,0),n=P(u.top,0),r=P(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:P(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:P(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 Le(){return typeof window<`u`}function H(e){return Re(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((Re(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Re(e){return Le()?e instanceof Node||e instanceof U(e).Node:!1}function G(e){return Le()?e instanceof Element||e instanceof U(e).Element:!1}function K(e){return Le()?e instanceof HTMLElement||e instanceof U(e).HTMLElement:!1}function ze(e){return!Le()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof U(e).ShadowRoot}function Be(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 Ve(e){return/^(table|td|th)$/.test(H(e))}function He(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Ue=/transform|translate|scale|rotate|perspective|filter/,We=/paint|layout|strict|content/,q=e=>!!e&&e!==`none`,Ge;function Ke(e){let t=G(e)?Y(e):e;return q(t.transform)||q(t.translate)||q(t.scale)||q(t.rotate)||q(t.perspective)||!Je()&&(q(t.backdropFilter)||q(t.filter))||Ue.test(t.willChange||``)||We.test(t.contain||``)}function qe(e){let t=X(e);for(;K(t)&&!J(t);){if(Ke(t))return t;if(He(t))return null;t=X(t)}return null}function Je(){return Ge??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ge}function J(e){return/^(html|body|#document)$/.test(H(e))}function Y(e){return U(e).getComputedStyle(e)}function Ye(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||ze(e)&&e.host||W(e);return ze(t)?t.host:t}function Xe(e){let t=X(e);return J(t)?e.ownerDocument?e.ownerDocument.body:e.body:K(t)&&Be(t)?t:Xe(t)}function Ze(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Xe(e),i=r===e.ownerDocument?.body,a=U(r);if(i){let e=Qe(a);return t.concat(a,a.visualViewport||[],Be(r)?r:[],e&&n?Ze(e):[])}else return t.concat(r,Ze(r,[],n))}function Qe(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function $e(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=F(n)!==a||F(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function et(e){return G(e)?e:e.contextElement}function Z(e){let t=et(e);if(!K(t))return L(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=$e(t),o=(a?F(n.width):n.width)/r,s=(a?F(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var tt=L(0);function nt(e){let t=U(e);return!Je()||!t.visualViewport?tt:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function rt(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=et(e),o=L(1);t&&(r?G(r)&&(o=Z(r)):o=Z(e));let s=rt(a,n,r)?nt(a):L(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=Qe(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=Qe(n)}}return xe({width:u,height:d,x:c,y:l})}function it(e,t){let n=Ye(e).scrollLeft;return t?t.left+n:Q(W(e)).left+n}function at(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-it(e,n),y:n.top+t.scrollTop}}function ot(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=W(r),s=t?He(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=L(1),u=L(0),d=K(r);if((d||!d&&!a)&&((H(r)!==`body`||Be(o))&&(c=Ye(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?at(o,c):L(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 st(e){return Array.from(e.getClientRects())}function ct(e){let t=W(e),n=Ye(e),r=e.ownerDocument.body,i=P(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=P(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+it(e),s=-n.scrollTop;return Y(r).direction===`rtl`&&(o+=P(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var lt=25;function ut(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=Je();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=it(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<=lt&&(a-=o)}else l<=lt&&(a+=l);return{width:a,height:o,x:s,y:c}}function dt(e,t){let n=Q(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=K(e)?Z(e):L(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function ft(e,t,n){let r;if(t===`viewport`)r=ut(e,n);else if(t===`document`)r=ct(W(e));else if(G(t))r=dt(t,n);else{let n=nt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return xe(r)}function pt(e,t){let n=X(e);return n===t||!G(n)||J(n)?!1:Y(n).position===`fixed`||pt(n,t)}function mt(e,t){let n=t.get(e);if(n)return n;let r=Ze(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=Ke(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Be(o)&&!n&&pt(e,o))?r=r.filter(e=>e!==o):i=t,o=X(o)}return t.set(e,r),r}function ht(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?He(t)?[]:mt(t,this._c):[].concat(n),r],o=ft(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=ft(t,a[e],i);s=P(n.top,s),c=N(n.right,c),l=N(n.bottom,l),u=P(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function gt(e){let{width:t,height:n}=$e(e);return{width:t,height:n}}function _t(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=L(0);function l(){c.x=it(i)}if(r||!r&&!a)if((H(t)!==`body`||Be(i))&&(s=Ye(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?at(i,s):L(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 vt(e){return Y(e).position===`static`}function yt(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 bt(e,t){let n=U(e);if(He(e))return n;if(!K(e)){let t=X(e);for(;t&&!J(t);){if(G(t)&&!vt(t))return t;t=X(t)}return n}let r=yt(e,t);for(;r&&Ve(r)&&vt(r);)r=yt(r,t);return r&&J(r)&&vt(r)&&!Ke(r)?n:r||qe(e)||n}var xt=async function(e){let t=this.getOffsetParent||bt,n=this.getDimensions,r=await n(e.floating);return{reference:_t(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function St(e){return Y(e).direction===`rtl`}var Ct={convertOffsetParentRelativeRectToViewportRelativeRect:ot,getDocumentElement:W,getClippingRect:ht,getOffsetParent:bt,getElementRects:xt,getClientRects:st,getDimensions:gt,getScale:Z,isElement:G,isRTL:St};function wt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Tt(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=I(d),h=I(i.clientWidth-(u+f)),g=I(i.clientHeight-(d+p)),_=I(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:P(0,N(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&&!wt(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 Et(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=et(e),u=i||a?[...l?Ze(l):[],...t?Ze(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Tt(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&&!wt(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 Dt=Ne,Ot=Pe,kt=De,At=Ie,jt=Ae,Mt=Ee,Nt=Fe,Pt=(e,t,n)=>{let r=new Map,i={platform:Ct,...n},a={...i.platform,_c:r};return Te(e,t,{...i,platform:a})};function Ft(e){return typeof e==`object`&&!!e&&`$el`in e}function It(e){if(Ft(e)){let t=e.$el;return Re(t)&&H(t)===`#comment`?null:t}return e}function $(e){return typeof e==`function`?e():n(e)}function Lt(e){return{name:`arrow`,options:e,fn(t){let n=It($(e.element));return n==null?{}:Mt({element:n,padding:e.padding}).fn(t)}}}function Rt(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function zt(e,t){let n=Rt(e);return Math.round(t*n)/n}function Bt(n,i,a){a===void 0&&(a={});let o=a.whileElementsMounted,l=r(()=>$(a.open)??!0),u=r(()=>$(a.middleware)),f=r(()=>$(a.placement)??`bottom`),p=r(()=>$(a.strategy)??`absolute`),m=r(()=>$(a.transform)??!0),h=r(()=>It(n.value)),_=r(()=>It(i.value)),v=s(0),y=s(0),b=s(p.value),x=s(f.value),S=e({}),C=s(!1),w=r(()=>{let e={position:b.value,left:`0`,top:`0`};if(!_.value)return e;let t=zt(_.value,v.value),n=zt(_.value,y.value);return m.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...Rt(_.value)>=1.5&&{willChange:`transform`}}:{position:b.value,left:t+`px`,top:n+`px`}}),T;function E(){if(h.value==null||_.value==null)return;let e=l.value;Pt(h.value,_.value,{middleware:u.value,placement:f.value,strategy:p.value}).then(t=>{v.value=t.x,y.value=t.y,b.value=t.strategy,x.value=t.placement,S.value=t.middlewareData,C.value=e!==!1})}function D(){typeof T==`function`&&(T(),T=void 0)}function O(){if(D(),o===void 0){E();return}if(h.value!=null&&_.value!=null){T=o(h.value,_.value,E);return}}function k(){l.value||(C.value=!1)}return d([u,f,p,l],E,{flush:`sync`}),d([h,_],O,{flush:`sync`}),d(l,k,{flush:`sync`}),c()&&t(D),{x:g(v),y:g(y),strategy:g(b),placement:g(x),middlewareData:g(S),isPositioned:g(C),floatingStyles:w,update:E}}var Vt={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},[Ht,Ut]=E(`PopperContent`),Wt=u({inheritAttrs:!1,__name:`PopperContent`,props:b({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}},{...Vt}),emits:[`placed`],setup(e,{emit:t}){let o=e,c=t,l=k(),{forwardRef:u,currentElement:d}=v(),f=s(),g=s(),{width:b,height:x}=O(g),E=r(()=>o.side+(o.align===`center`?``:`-${o.align}`)),D=r(()=>typeof o.collisionPadding==`number`?o.collisionPadding:{top:0,right:0,bottom:0,left:0,...o.collisionPadding}),A=r(()=>Array.isArray(o.collisionBoundary)?o.collisionBoundary:[o.collisionBoundary]),j=r(()=>({padding:D.value,boundary:A.value.filter(ee),altBoundary:A.value.length>0})),M=r(()=>({mainAxis:o.sideFlip,crossAxis:o.alignFlip})),re=m(()=>[Dt({mainAxis:o.sideOffset+x.value,alignmentAxis:o.alignOffset}),o.prioritizePosition&&o.avoidCollisions&&kt({...j.value,...M.value}),o.avoidCollisions&&Ot({mainAxis:!0,crossAxis:!!o.prioritizePosition,limiter:o.sticky===`partial`?Nt():void 0,...j.value}),!o.prioritizePosition&&o.avoidCollisions&&kt({...j.value,...M.value}),At({...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`)}}),g.value&&Lt({element:g.value,padding:o.arrowPadding}),te({arrowWidth:b.value,arrowHeight:x.value}),o.hideWhenDetached&&jt({strategy:`referenceHidden`,...j.value})]),{floatingStyles:N,placement:P,isPositioned:F,middlewareData:I,update:L}=Bt(r(()=>o.reference??l.anchor.value),f,{strategy:o.positionStrategy,placement:E,whileElementsMounted:(...e)=>Et(...e,{layoutShift:!o.disableUpdateOnLayoutShift,animationFrame:o.updatePositionStrategy===`always`}),middleware:re}),ie=r(()=>ne(P.value)[0]),ae=r(()=>ne(P.value)[1]);w(()=>{F.value&&c(`placed`)});let R=r(()=>{let e=I.value.arrow?.centerOffset!==0;return o.hideShiftedArrow&&e}),z=s(``);return C(()=>{d.value&&(z.value=window.getComputedStyle(d.value).zIndex)}),Ut({placedSide:ie,onArrowChange:e=>g.value=e,arrowX:r(()=>I.value.arrow?.x??0),arrowY:r(()=>I.value.arrow?.y??0),shouldHideArrow:R}),(e,t)=>(y(),a(`div`,{ref_key:`floatingRef`,ref:f,"data-reka-popper-content-wrapper":``,style:T({...n(N),transform:n(F)?n(N).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:z.value,"--reka-popper-transform-origin":[n(I).transformOrigin?.x,n(I).transformOrigin?.y].join(` `),...n(I).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[i(n(h),_({ref:n(u)},e.$attrs,{"as-child":o.asChild,as:e.as,"data-side":ie.value,"data-align":ae.value,style:{animation:n(F)?void 0:`none`}}),{default:p(()=>[S(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}});export{D as a,j as i,Ht as n,M as r,Wt as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,Bt as n,Ft as r,G as i,H as a,J as o,K as s,Lt as c,M as ee,Ot as l,R as te,U as u,W as d,Y as ne,at as re,bt as f,ft as ie,k as p,lt as m,n as h,q as g,st as _,z as ae}from"./button-zud8Qspb.js";import{t as oe}from"./check-CRv7NpkT.js";import{a as se,i as ce,n as le,r as v,t as ue}from"./SelectValue-DRc1qira.js";import{t as de}from"./copy-CIHn6HDL.js";import{a as fe,n as pe,o as me,r as he,t as ge}from"./dialog-Da8YFS7g.js";import{a as _e,c as ve,i as ye,n as be,o as xe,r as Se,s as Ce,t as we}from"./alert-dialog-gprnWn1b.js";import{t as Te}from"./Label-73u_Os4X.js";import{t as Ee}from"./badge-CpT5q-jI.js";import{n as y}from"./lib-xfvPneK8.js";import{t as De}from"./Input-RyuwzbNx.js";import{a as Oe,i as b,n as x,o as ke,r as Ae,t as je}from"./TableHeader-BqYT-eO-.js";import{t as Me}from"./constants-ncbNnOLM.js";import{a as Ne,o as Pe,t as Fe}from"./ModelCard-B0pjEq6W.js";var Ie=ee(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),S;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(S||={});var C;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(C||={});var w=S.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),T=e=>{switch(typeof e){case`undefined`:return w.undefined;case`string`:return w.string;case`number`:return Number.isNaN(e)?w.nan:w.number;case`boolean`:return w.boolean;case`function`:return w.function;case`bigint`:return w.bigint;case`symbol`:return w.symbol;case`object`:return Array.isArray(e)?w.array:e===null?w.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?w.promise:typeof Map<`u`&&e instanceof Map?w.map:typeof Set<`u`&&e instanceof Set?w.set:typeof Date<`u`&&e instanceof Date?w.date:w.object;default:return w.unknown}},E=S.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),D=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,S.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};D.create=e=>new D(e);var O=(e,t)=>{let n;switch(e.code){case E.invalid_type:n=e.received===w.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case E.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,S.jsonStringifyReplacer)}`;break;case E.unrecognized_keys:n=`Unrecognized key(s) in object: ${S.joinValues(e.keys,`, `)}`;break;case E.invalid_union:n=`Invalid input`;break;case E.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${S.joinValues(e.options)}`;break;case E.invalid_enum_value:n=`Invalid enum value. Expected ${S.joinValues(e.options)}, received '${e.received}'`;break;case E.invalid_arguments:n=`Invalid function arguments`;break;case E.invalid_return_type:n=`Invalid function return type`;break;case E.invalid_date:n=`Invalid date`;break;case E.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:S.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case E.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case E.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case E.custom:n=`Invalid input`;break;case E.invalid_intersection_types:n=`Intersection results could not be merged`;break;case E.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case E.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,S.assertNever(e)}return{message:n}},k=O;function A(){return k}var j=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function M(e,t){let n=A(),r=j({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===O?void 0:O].filter(e=>!!e)});e.common.issues.push(r)}var N=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return P;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return P;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},P=Object.freeze({status:`aborted`}),F=e=>({status:`dirty`,value:e}),I=e=>({status:`valid`,value:e}),L=e=>e.status===`aborted`,R=e=>e.status===`dirty`,z=e=>e.status===`valid`,Le=e=>typeof Promise<`u`&&e instanceof Promise,B;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(B||={});var V=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Re=(e,t)=>{if(z(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){return this._error||=new D(e.common.issues),this._error}}};function H(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var U=class{get description(){return this._def.description}_getType(e){return T(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:T(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new N,ctx:{common:e.parent.common,data:e.data,parsedType:T(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Le(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:T(e)};return Re(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:T(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return z(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>z(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:T(e)},r=this._parse({data:e,path:n.path,parent:n});return Re(n,await(Le(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:E.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new X({schema:this,typeName:$.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return Z.create(this,this._def)}nullable(){return Q.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return yt.create(this)}promise(){return Pt.create(this,this._def)}or(e){return xt.create([this,e],this._def)}and(e){return wt.create(this,e,this._def)}transform(e){return new X({...H(this._def),schema:this,typeName:$.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new Ft({...H(this._def),innerType:this,defaultValue:t,typeName:$.ZodDefault})}brand(){return new Rt({typeName:$.ZodBranded,type:this,...H(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new It({...H(this._def),innerType:this,catchValue:t,typeName:$.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return zt.create(this,e)}readonly(){return Bt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ze=/^c[^\s-]{8,}$/i,Be=/^[0-9a-z]+$/,W=/^[0-9A-HJKMNP-TV-Z]{26}$/i,G=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ve=/^[a-z0-9_-]{21}$/i,He=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ue=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,We=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ge=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,Ke,qe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Je=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ze=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Qe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,$e=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,et=RegExp(`^${$e}$`);function tt(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function nt(e){return RegExp(`^${tt(e)}$`)}function rt(e){let t=`${$e}T${tt(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function it(e,t){return!!((t===`v4`||!t)&&qe.test(e)||(t===`v6`||!t)&&Ye.test(e))}function at(e,t){if(!He.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function ot(e,t){return!!((t===`v4`||!t)&&Je.test(e)||(t===`v6`||!t)&&Xe.test(e))}var st=class e extends U{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==w.string){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.string,received:t.parsedType}),P}let t=new N,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),M(n,{code:E.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),M(n,{code:E.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?M(n,{code:E.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&M(n,{code:E.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)We.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`email`,code:E.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)Ke||=new RegExp(Ge,`u`),Ke.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`emoji`,code:E.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)G.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`uuid`,code:E.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)Ve.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`nanoid`,code:E.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)ze.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`cuid`,code:E.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)Be.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`cuid2`,code:E.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)W.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`ulid`,code:E.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),M(n,{validation:`url`,code:E.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`regex`,code:E.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),M(n,{code:E.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),M(n,{code:E.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),M(n,{code:E.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?rt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{code:E.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?et.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{code:E.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?nt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{code:E.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ue.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`duration`,code:E.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?it(e.data,r.version)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`ip`,code:E.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?at(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`jwt`,code:E.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?ot(e.data,r.version)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`cidr`,code:E.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Ze.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`base64`,code:E.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Qe.test(e.data)||(n=this._getOrReturnCtx(e,n),M(n,{validation:`base64url`,code:E.invalid_string,message:r.message}),t.dirty()):S.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:E.invalid_string,...B.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...B.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...B.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...B.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...B.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...B.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...B.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...B.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...B.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...B.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...B.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...B.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...B.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...B.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...B.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...B.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...B.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...B.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...B.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...B.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...B.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...B.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...B.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...B.errToObj(t)})}nonempty(e){return this.min(1,B.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};st.create=e=>new st({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...H(e)});function ct(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var lt=class e extends U{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==w.number){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.number,received:t.parsedType}),P}let t,n=new N;for(let r of this._def.checks)r.kind===`int`?S.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),M(t,{code:E.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),M(t,{code:E.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),M(t,{code:E.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?ct(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),M(t,{code:E.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),M(t,{code:E.not_finite,message:r.message}),n.dirty()):S.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,B.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,B.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,B.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,B.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:B.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:B.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:B.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:B.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:B.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:B.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:B.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:B.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:B.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&S.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};lt.create=e=>new lt({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...H(e)});var ut=class e extends U{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==w.bigint)return this._getInvalidInput(e);let t,n=new N;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),M(t,{code:E.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),M(t,{code:E.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),M(t,{code:E.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):S.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.bigint,received:t.parsedType}),P}gte(e,t){return this.setLimit(`min`,e,!0,B.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,B.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,B.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,B.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:B.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:B.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:B.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:B.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:B.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};ut.create=e=>new ut({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...H(e)});var dt=class extends U{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==w.boolean){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.boolean,received:t.parsedType}),P}return I(e.data)}};dt.create=e=>new dt({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...H(e)});var ft=class e extends U{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==w.date){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.date,received:t.parsedType}),P}if(Number.isNaN(e.data.getTime()))return M(this._getOrReturnCtx(e),{code:E.invalid_date}),P;let t=new N,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),M(n,{code:E.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),M(n,{code:E.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):S.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:B.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:B.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};ft.create=e=>new ft({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...H(e)});var pt=class extends U{_parse(e){if(this._getType(e)!==w.symbol){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.symbol,received:t.parsedType}),P}return I(e.data)}};pt.create=e=>new pt({typeName:$.ZodSymbol,...H(e)});var mt=class extends U{_parse(e){if(this._getType(e)!==w.undefined){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.undefined,received:t.parsedType}),P}return I(e.data)}};mt.create=e=>new mt({typeName:$.ZodUndefined,...H(e)});var ht=class extends U{_parse(e){if(this._getType(e)!==w.null){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.null,received:t.parsedType}),P}return I(e.data)}};ht.create=e=>new ht({typeName:$.ZodNull,...H(e)});var gt=class extends U{constructor(){super(...arguments),this._any=!0}_parse(e){return I(e.data)}};gt.create=e=>new gt({typeName:$.ZodAny,...H(e)});var _t=class extends U{constructor(){super(...arguments),this._unknown=!0}_parse(e){return I(e.data)}};_t.create=e=>new _t({typeName:$.ZodUnknown,...H(e)});var K=class extends U{_parse(e){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.never,received:t.parsedType}),P}};K.create=e=>new K({typeName:$.ZodNever,...H(e)});var vt=class extends U{_parse(e){if(this._getType(e)!==w.undefined){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.void,received:t.parsedType}),P}return I(e.data)}};vt.create=e=>new vt({typeName:$.ZodVoid,...H(e)});var yt=class e extends U{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==w.array)return M(t,{code:E.invalid_type,expected:w.array,received:t.parsedType}),P;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(M(t,{code:e?E.too_big:E.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(M(t,{code:E.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(M(t,{code:E.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new V(t,e,t.path,n)))).then(e=>N.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new V(t,e,t.path,n)));return N.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:B.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:B.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:B.toString(n)}})}nonempty(e){return this.min(1,e)}};yt.create=(e,t)=>new yt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...H(t)});function bt(e){if(e instanceof q){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Z.create(bt(r))}return new q({...e._def,shape:()=>t})}else if(e instanceof yt)return new yt({...e._def,type:bt(e.element)});else if(e instanceof Z)return Z.create(bt(e.unwrap()));else if(e instanceof Q)return Q.create(bt(e.unwrap()));else if(e instanceof Y)return Y.create(e.items.map(e=>bt(e)));else return e}var q=class e extends U{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape();return this._cached={shape:e,keys:S.objectKeys(e)},this._cached}_parse(e){if(this._getType(e)!==w.object){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.object,received:t.parsedType}),P}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof K&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new V(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof K){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(M(n,{code:E.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new V(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>N.mergeObjectSync(t,e)):N.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return B.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:B.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:$.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of S.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of S.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return bt(this)}partial(t){let n={};for(let e of S.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of S.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof Z;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return jt(S.objectKeys(this.shape))}};q.create=(e,t)=>new q({shape:()=>e,unknownKeys:`strip`,catchall:K.create(),typeName:$.ZodObject,...H(t)}),q.strictCreate=(e,t)=>new q({shape:()=>e,unknownKeys:`strict`,catchall:K.create(),typeName:$.ZodObject,...H(t)}),q.lazycreate=(e,t)=>new q({shape:e,unknownKeys:`strip`,catchall:K.create(),typeName:$.ZodObject,...H(t)});var xt=class extends U{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new D(e.ctx.common.issues));return M(t,{code:E.invalid_union,unionErrors:n}),P}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new D(e));return M(t,{code:E.invalid_union,unionErrors:i}),P}}get options(){return this._def.options}};xt.create=(e,t)=>new xt({options:e,typeName:$.ZodUnion,...H(t)});var J=e=>e instanceof kt?J(e.schema):e instanceof X?J(e.innerType()):e instanceof At?[e.value]:e instanceof Mt?e.options:e instanceof Nt?S.objectValues(e.enum):e instanceof Ft?J(e._def.innerType):e instanceof mt?[void 0]:e instanceof ht?[null]:e instanceof Z?[void 0,...J(e.unwrap())]:e instanceof Q?[null,...J(e.unwrap())]:e instanceof Rt||e instanceof Bt?J(e.unwrap()):e instanceof It?J(e._def.innerType):[],St=class e extends U{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.object)return M(t,{code:E.invalid_type,expected:w.object,received:t.parsedType}),P;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(M(t,{code:E.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),P)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=J(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:$.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...H(r)})}};function Ct(e,t){let n=T(e),r=T(t);if(e===t)return{valid:!0,data:e};if(n===w.object&&r===w.object){let n=S.objectKeys(t),r=S.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=Ct(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===w.array&&r===w.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Ct(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===w.date&&r===w.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var wt=class extends U{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(L(e)||L(r))return P;let i=Ct(e.value,r.value);return i.valid?((R(e)||R(r))&&t.dirty(),{status:t.value,value:i.data}):(M(n,{code:E.invalid_intersection_types}),P)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};wt.create=(e,t,n)=>new wt({left:e,right:t,typeName:$.ZodIntersection,...H(n)});var Y=class e extends U{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==w.array)return M(n,{code:E.invalid_type,expected:w.array,received:n.parsedType}),P;if(n.data.length<this._def.items.length)return M(n,{code:E.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),P;!this._def.rest&&n.data.length>this._def.items.length&&(M(n,{code:E.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new V(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>N.mergeArray(t,e)):N.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Y.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new Y({items:e,typeName:$.ZodTuple,rest:null,...H(t)})};var Tt=class e extends U{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==w.object)return M(n,{code:E.invalid_type,expected:w.object,received:n.parsedType}),P;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new V(n,e,n.path,e)),value:a._parse(new V(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?N.mergeObjectAsync(t,r):N.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof U?new e({keyType:t,valueType:n,typeName:$.ZodRecord,...H(r)}):new e({keyType:st.create(),valueType:t,typeName:$.ZodRecord,...H(n)})}},Et=class extends U{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==w.map)return M(n,{code:E.invalid_type,expected:w.map,received:n.parsedType}),P;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new V(n,e,n.path,[a,`key`])),value:i._parse(new V(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return P;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return P;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};Et.create=(e,t,n)=>new Et({valueType:t,keyType:e,typeName:$.ZodMap,...H(n)});var Dt=class e extends U{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==w.set)return M(n,{code:E.invalid_type,expected:w.set,received:n.parsedType}),P;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(M(n,{code:E.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(M(n,{code:E.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return P;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new V(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:B.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:B.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Dt.create=(e,t)=>new Dt({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...H(t)});var Ot=class e extends U{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.function)return M(t,{code:E.invalid_type,expected:w.function,received:t.parsedType}),P;function n(e,n){return j({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,A(),O].filter(e=>!!e),issueData:{code:E.invalid_arguments,argumentsError:n}})}function r(e,n){return j({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,A(),O].filter(e=>!!e),issueData:{code:E.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Pt){let e=this;return I(async function(...t){let o=new D([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return I(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new D([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new D([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Y.create(t).rest(_t.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||Y.create([]).rest(_t.create()),returns:n||_t.create(),typeName:$.ZodFunction,...H(r)})}},kt=class extends U{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};kt.create=(e,t)=>new kt({getter:e,typeName:$.ZodLazy,...H(t)});var At=class extends U{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return M(t,{received:t.data,code:E.invalid_literal,expected:this._def.value}),P}return{status:`valid`,value:e.data}}get value(){return this._def.value}};At.create=(e,t)=>new At({value:e,typeName:$.ZodLiteral,...H(t)});function jt(e,t){return new Mt({values:e,typeName:$.ZodEnum,...H(t)})}var Mt=class e extends U{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return M(t,{expected:S.joinValues(n),received:t.parsedType,code:E.invalid_type}),P}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return M(t,{received:t.data,code:E.invalid_enum_value,options:n}),P}return I(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};Mt.create=jt;var Nt=class extends U{_parse(e){let t=S.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==w.string&&n.parsedType!==w.number){let e=S.objectValues(t);return M(n,{expected:S.joinValues(e),received:n.parsedType,code:E.invalid_type}),P}if(this._cache||=new Set(S.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=S.objectValues(t);return M(n,{received:n.data,code:E.invalid_enum_value,options:e}),P}return I(e.data)}get enum(){return this._def.values}};Nt.create=(e,t)=>new Nt({values:e,typeName:$.ZodNativeEnum,...H(t)});var Pt=class extends U{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==w.promise&&t.common.async===!1?(M(t,{code:E.invalid_type,expected:w.promise,received:t.parsedType}),P):I((t.parsedType===w.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Pt.create=(e,t)=>new Pt({type:e,typeName:$.ZodPromise,...H(t)});var X=class extends U{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{M(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return P;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?P:r.status===`dirty`||t.value===`dirty`?F(r.value):r});{if(t.value===`aborted`)return P;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?P:r.status===`dirty`||t.value===`dirty`?F(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?P:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?P:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!z(e))return P;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>z(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):P);S.assertNever(r)}};X.create=(e,t,n)=>new X({schema:e,typeName:$.ZodEffects,effect:t,...H(n)}),X.createWithPreprocess=(e,t,n)=>new X({schema:t,effect:{type:`preprocess`,transform:e},typeName:$.ZodEffects,...H(n)});var Z=class extends U{_parse(e){return this._getType(e)===w.undefined?I(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Z.create=(e,t)=>new Z({innerType:e,typeName:$.ZodOptional,...H(t)});var Q=class extends U{_parse(e){return this._getType(e)===w.null?I(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Q.create=(e,t)=>new Q({innerType:e,typeName:$.ZodNullable,...H(t)});var Ft=class extends U{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===w.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Ft.create=(e,t)=>new Ft({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...H(t)});var It=class extends U{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Le(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new D(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new D(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};It.create=(e,t)=>new It({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...H(t)});var Lt=class extends U{_parse(e){if(this._getType(e)!==w.nan){let t=this._getOrReturnCtx(e);return M(t,{code:E.invalid_type,expected:w.nan,received:t.parsedType}),P}return{status:`valid`,value:e.data}}};Lt.create=e=>new Lt({typeName:$.ZodNaN,...H(e)});var Rt=class extends U{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},zt=class e extends U{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?P:e.status===`dirty`?(t.dirty(),F(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?P:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:$.ZodPipeline})}},Bt=class extends U{_parse(e){let t=this._def.innerType._parse(e),n=e=>(z(e)&&(e.value=Object.freeze(e.value)),e);return Le(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Bt.create=(e,t)=>new Bt({innerType:e,typeName:$.ZodReadonly,...H(t)}),q.lazycreate;var $;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})($||={});var Vt=st.create;lt.create,Lt.create,ut.create,dt.create,ft.create,pt.create,mt.create,ht.create,gt.create,_t.create,K.create,vt.create,yt.create;var Ht=q.create;q.strictCreate,xt.create,St.create,wt.create,Y.create,Tt.create,Et.create,Dt.create,Ot.create,kt.create,At.create,Mt.create,Nt.create,Pt.create,X.create,Z.create,Q.create,X.createWithPreprocess,zt.create;function Ut(){let t=l({dropFieldsInput:``,requestDefaultsInput:``,injectHeadersInput:``,exists:!1});async function n(n){try{let e=await p.getTransformRules(n);e?(t.value.dropFieldsInput=(e.drop_fields||[]).join(`, `),t.value.requestDefaultsInput=e.request_defaults?JSON.stringify(e.request_defaults):``,t.value.injectHeadersInput=e.inject_headers?JSON.stringify(e.inject_headers):``,t.value.exists=!0):(t.value.dropFieldsInput=``,t.value.requestDefaultsInput=``,t.value.injectHeadersInput=``,t.value.exists=!1)}catch(n){y.error(e(n,`加载转换规则失败`)),t.value.dropFieldsInput=``,t.value.requestDefaultsInput=``,t.value.injectHeadersInput=``,t.value.exists=!1}}function r(n){if(!n)return Promise.resolve();let r=t.value.dropFieldsInput?t.value.dropFieldsInput.split(`,`).map(e=>e.trim()).filter(Boolean):null,i=null;if(t.value.requestDefaultsInput.trim())try{i=JSON.parse(t.value.requestDefaultsInput)}catch{return y.error(`请求默认值 JSON 格式错误`),Promise.resolve()}let a=null;if(t.value.injectHeadersInput.trim())try{a=JSON.parse(t.value.injectHeadersInput)}catch{return y.error(`注入 Headers JSON 格式错误`),Promise.resolve()}return p.upsertTransformRules(n,{drop_fields:r,request_defaults:i,inject_headers:a,is_active:1}).then(()=>{t.value.exists=!0,y.success(`转换规则已保存`)}).catch(t=>y.error(e(t,`保存失败`)))}function i(n){return n?p.deleteTransformRules(n).then(()=>{t.value.dropFieldsInput=``,t.value.requestDefaultsInput=``,t.value.injectHeadersInput=``,t.value.exists=!1,y.success(`转换规则已删除`)}).catch(t=>y.error(e(t,`删除失败`))):Promise.resolve()}return{transformForm:t,loadTransformRules:n,saveTransformRules:r,handleDeleteTransformRules:i}}var Wt={class:`p-6`},Gt={class:`flex items-center justify-between mb-4`},Kt={class:`flex items-center gap-2`},qt={class:`bg-card rounded-lg border overflow-hidden`},Jt={class:`flex items-center gap-1`},Yt={class:`font-mono text-xs text-muted-foreground`},Xt={class:`flex flex-wrap gap-1`},Zt={key:0,class:`ml-1 text-muted-foreground`},Qt={key:0,class:`text-muted-foreground text-xs`},$t={key:2,class:`text-muted-foreground`},en={key:0,class:`rounded-md border-2 border-primary/30 bg-primary/5 p-3 space-y-2`},tn={class:`flex gap-2`},nn={key:1,class:`flex flex-col items-center justify-center py-10 text-muted-foreground`},rn={class:`grid grid-cols-2 gap-3`},an={key:0,class:`text-xs text-destructive mt-0.5`},on={key:0,class:`text-xs text-destructive mt-0.5`},sn={key:0,class:`text-xs text-destructive mt-0.5`},cn={class:`grid grid-cols-3 gap-2 mb-3`},ln={class:`flex gap-2`},un={class:`grid grid-cols-2 gap-4`},dn={class:`border rounded-md p-3 space-y-3`},fn={class:`border rounded-md p-3 space-y-3`},pn={key:0,class:`mt-2 space-y-1`},mn=3,hn=10,gn=12e4,_n=10,vn=100,yn=1e3,bn=1e3,xn=1e6,Sn=7,Cn=7,wn=2e3,Tn=ne({__name:`Providers`,setup(ee){let ne=[{label:`8K`,value:`8000`},{label:`16K`,value:`16000`},{label:`32K`,value:`32000`},{label:`64K`,value:`64000`},{label:`128K`,value:`128000`},{label:`160K`,value:`160000`},{label:`200K`,value:`200000`},{label:`256K`,value:`256000`},{label:`1M`,value:`1000000`}],S={name:``,api_type:`anthropic`,base_url:``,api_key:``,models:[],is_active:!0,max_concurrency:hn,queue_timeout_ms:gn,max_queue_size:_n,adaptive_enabled:!0},C=l(``),w=l(Me),T=a({get:()=>String(w.value),set:e=>{w.value=Number(e)}}),E=l([]),D=l([]),O=l(!1),k=l(null),A=l(null),j=l(null),M=l(null),N=l(!1),P=l([]),F=l({...S}),I=l({}),L=l(`auto`),{transformForm:R,loadTransformRules:z,saveTransformRules:Le}=Ut(),B=l(null),V=l(!1),Re=Ht({name:Vt().min(1,`请输入名称`).regex(/^[a-zA-Z0-9_-]+$/,`仅允许英文、数字、横线和下划线`),base_url:Vt().min(1,`请输入 Base URL`).url(`请输入合法的 URL`)});function H(){let e={},t=Re.safeParse({name:F.value.name.trim(),base_url:F.value.base_url.trim()});if(!t.success)for(let n of t.error.issues){let t=n.path[0];e[t]||(e[t]=n.message)}if(!k.value&&!F.value.api_key.trim()&&(e.api_key=`请输入 API Key`),L.value!==`none`){let t=F.value.max_concurrency;(!t||t<1||t>vn)&&(e.max_concurrency=`范围 1-${vn}`),F.value.queue_timeout_ms<0&&(e.queue_timeout_ms=`不能为负数`);let n=F.value.max_queue_size;(!n||n<1||n>yn)&&(e.max_queue_size=`范围 1-${yn}`)}return I.value=e,Object.keys(e).length===0}function U(e){return e?e.slice(0,Sn)+`*`.repeat(Cn):``}function ze(e){return e>=xn?`${e/xn}M`:e>=bn?`${e/bn}K`:String(e)}async function Be(e,t){await navigator.clipboard.writeText(e),B.value=t,setTimeout(()=>{B.value=null},wn)}let W=l(``),G=l(``),Ve=a(()=>W.value?D.value.find(e=>e.group===W.value)?.presets??[]:[]);function He(){if(W.value===`__custom__`){G.value=``,F.value.name=``,F.value.api_type=`openai`,F.value.base_url=``,F.value.models=[];return}let e=D.value.find(e=>e.group===W.value)?.presets;e?.length?(G.value=e[0].plan,Ue()):G.value=``}function Ue(){let e=Ve.value.find(e=>e.plan===G.value);e&&(F.value.name=e.presetName,F.value.api_type=e.apiType,F.value.base_url=e.baseUrl,F.value.models=e.models.map(t=>({name:t,context_window:Me,patches:Ye(t,e.apiType)})))}async function We(){try{E.value=await p.getProviders()}catch(t){console.error(`Failed to load providers:`,t),y.error(e(t,`加载供应商失败`))}}function Ge(){let e=C.value.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let e of t)F.value.models.some(t=>t.name===e)||F.value.models.push({name:e,context_window:w.value||2e5,patches:[]});C.value=``,w.value=Me}function Ke(e){F.value.models.splice(e,1)}function qe(e){return e.includes(`api.openai.com`)}function Je(e,t){F.value.models[e].context_window=t.contextWindow,F.value.models[e].patches=t.patches}function Ye(e,t){let n=[];return e.toLowerCase().includes(`deepseek`)&&(t===`anthropic`?n.push(`thinking-param`,`cache-control`,`thinking-blocks`,`orphan-tool-results`):n.push(`non-ds-tools`,`orphan-tool-results-oa`)),n}function Xe(e){e===`auto`?((!F.value.max_concurrency||F.value.max_concurrency<1)&&(F.value.max_concurrency=hn),F.value.adaptive_enabled=!0):e===`manual`&&((!F.value.max_concurrency||F.value.max_concurrency<1)&&(F.value.max_concurrency=mn),F.value.adaptive_enabled=!1)}function Ze(){k.value=null,F.value={...S,models:[]},L.value=`auto`,C.value=``,w.value=Me,W.value=``,G.value=``,I.value={},O.value=!0}function Qe(e){k.value=e.id;let t=e.max_concurrency??0;t===0?L.value=`none`:e.adaptive_enabled?L.value=`auto`:L.value=`manual`,F.value={name:e.name,api_type:e.api_type,base_url:e.base_url,api_key:``,models:(e.models||[]).map(e=>({name:e.name,context_window:e.context_window??2e5,patches:e.patches??[]})),is_active:!!e.is_active,max_concurrency:L.value===`none`?hn:t,queue_timeout_ms:e.queue_timeout_ms??gn,max_queue_size:e.max_queue_size??_n,adaptive_enabled:L.value===`auto`},C.value=``,w.value=Me,W.value=``,G.value=``,I.value={},O.value=!0,z(e.id)}function $e(){let e={name:F.value.name,api_type:F.value.api_type,base_url:F.value.base_url,models:F.value.models.map(e=>({name:e.name,context_window:e.context_window??void 0,patches:e.patches??void 0})),is_active:+!!F.value.is_active,max_concurrency:L.value===`none`?0:F.value.max_concurrency,queue_timeout_ms:L.value===`none`?0:F.value.queue_timeout_ms,max_queue_size:L.value===`none`?_n:F.value.max_queue_size,adaptive_enabled:+(L.value===`auto`)};return F.value.api_key&&(e.api_key=F.value.api_key),e}async function et(){if(H())try{let e=$e();e.name=F.value.name.trim();let t=k.value;k.value?await p.updateProvider(k.value,e):(e.api_key=F.value.api_key,t=(await p.createProvider(e)).id),await Le(t),O.value=!1,await We()}catch(t){console.error(`Failed to save provider:`,t),y.error(e(t,`保存供应商失败`))}}function tt(e){A.value=e}async function nt(e){if(j.value=e,M.value=e.id,N.value=!!e.is_active,P.value=[],e.is_active)try{P.value=(await p.getProviderDependencies(e.id)).references}catch{}}async function rt(){let t=M.value;if(!t)return;let n=N.value;j.value=null,M.value=null;try{let e=await p.updateProvider(t,{is_active:+!n});if(e.cascadedGroups?.length){let t=e.cascadedGroups.filter(e=>e.disabled).length,n=e.cascadedGroups.length-t,r=[];n>0&&r.push(`清理 ${n} 个分组的引用`),t>0&&r.push(`禁用 ${t} 个分组`),y.warning(`已自动${r.join(`、`)}`)}await We()}catch(t){console.error(`Failed to toggle provider:`,t),y.error(e(t,`切换状态失败`))}}async function it(){let t=A.value;if(t){A.value=null;try{await p.deleteProvider(t.id),await We()}catch(t){y.error(e(t,`删除供应商失败`))}}}async function at(){V.value=!0;try{let e=await p.reloadTransformRules();y.success(`插件重载完成:${e.loadedPlugins.length} 个插件,${e.rulesCount} 条规则`)}catch(t){y.error(e(t,`重载失败`))}finally{V.value=!1}}return re(async()=>{let[e]=await Promise.allSettled([p.recommended.getProviders(),We()]);e.status===`fulfilled`?D.value=e.value:(D.value=[],console.error(`Failed to load provider presets:`,e.reason))}),(e,a)=>(_(),s(`div`,Wt,[u(`div`,Gt,[a[24]||=u(`h2`,{class:`text-lg font-semibold text-foreground`},`供应商`,-1),u(`div`,Kt,[o(r(h),{variant:`outline`,size:`sm`,onClick:at,disabled:V.value},{default:f(()=>[o(r(Ie),{class:c([`w-4 h-4 mr-1`,{"animate-spin":V.value}])},null,8,[`class`]),a[22]||=g(` 重载插件 `,-1)]),_:1},8,[`disabled`]),o(r(h),{onClick:Ze,class:`flex items-center gap-1`},{default:f(()=>[...a[23]||=[u(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[u(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),g(` 添加供应商 `,-1)]]),_:1})])]),u(`div`,qt,[o(r(ke),null,{default:f(()=>[o(r(je),null,{default:f(()=>[o(r(Ae),{class:`bg-muted`},{default:f(()=>[o(r(x),{class:`text-muted-foreground`},{default:f(()=>[...a[25]||=[g(`名称`,-1)]]),_:1}),o(r(x),{class:`text-muted-foreground`},{default:f(()=>[...a[26]||=[g(`类型`,-1)]]),_:1}),o(r(x),{class:`text-muted-foreground`},{default:f(()=>[...a[27]||=[g(`Base URL`,-1)]]),_:1}),o(r(x),{class:`text-muted-foreground`},{default:f(()=>[...a[28]||=[g(`API Key`,-1)]]),_:1}),o(r(x),{class:`text-muted-foreground`},{default:f(()=>[...a[29]||=[g(`模型`,-1)]]),_:1}),o(r(x),{class:`text-muted-foreground`},{default:f(()=>[...a[30]||=[g(`并发`,-1)]]),_:1}),o(r(x),{class:`text-muted-foreground`},{default:f(()=>[...a[31]||=[g(`状态`,-1)]]),_:1}),o(r(x),{class:`text-right text-muted-foreground`},{default:f(()=>[...a[32]||=[g(`操作`,-1)]]),_:1})]),_:1})]),_:1}),o(r(Oe),null,{default:f(()=>[(_(!0),s(t,null,m(E.value,e=>(_(),d(r(Ae),{key:e.id,class:c({"opacity-60":!e.is_active})},{default:f(()=>[o(r(b),{class:`font-medium`},{default:f(()=>[g(n(e.name),1)]),_:2},1024),o(r(b),null,{default:f(()=>[o(r(Ee),{variant:`secondary`},{default:f(()=>[g(n(e.api_type),1)]),_:2},1024)]),_:2},1024),o(r(b),{class:`text-muted-foreground`},{default:f(()=>[g(n(e.base_url),1)]),_:2},1024),o(r(b),null,{default:f(()=>[u(`div`,Jt,[u(`span`,Yt,n(U(e.api_key)),1),o(r(h),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>Be(e.api_key,e.id)},{default:f(()=>[(_(),d(ie(B.value===e.id?r(oe):r(de)),{class:c([`w-3.5 h-3.5`,{"text-success":B.value===e.id}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])]),_:2},1024),o(r(b),null,{default:f(()=>[u(`div`,Xt,[(_(!0),s(t,null,m(e.models||[],e=>(_(),d(r(Ee),{key:e.name,variant:`secondary`,class:`text-xs`},{default:f(()=>[g(n(e.name)+` `,1),e.context_window?(_(),s(`span`,Zt,`(`+n(ze(e.context_window))+`)`,1)):i(``,!0)]),_:2},1024))),128)),e.models?.length?i(``,!0):(_(),s(`span`,Qt,`-`))])]),_:2},1024),o(r(b),null,{default:f(()=>[e.adaptive_enabled?(_(),d(r(Ee),{key:0,variant:`outline`},{default:f(()=>[...a[33]||=[g(`自适应`,-1)]]),_:1})):e.max_concurrency>0?(_(),d(r(Ee),{key:1,variant:`secondary`},{default:f(()=>[g(n(e.max_concurrency),1)]),_:2},1024)):(_(),s(`span`,$t,`-`))]),_:2},1024),o(r(b),null,{default:f(()=>[o(r(h),{variant:`ghost`,size:`sm`,class:`gap-1.5`,onClick:t=>nt(e)},{default:f(()=>[u(`span`,{class:c([`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors`,e.is_active?`bg-primary`:`bg-input`])},[u(`span`,{class:c([`inline-block h-3 w-3 rounded-full bg-background shadow-sm transition-transform`,e.is_active?`translate-x-3.5`:`translate-x-0.5`])},null,2)],2),o(r(Ee),{variant:e.is_active?`default`:`secondary`},{default:f(()=>[g(n(e.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1032,[`onClick`])]),_:2},1024),o(r(b),{class:`text-right`},{default:f(()=>[o(r(h),{variant:`ghost`,size:`sm`,onClick:t=>Qe(e),class:`text-muted-foreground hover:text-primary mr-2`},{default:f(()=>[...a[34]||=[g(`编辑`,-1)]]),_:1},8,[`onClick`]),o(r(h),{variant:`ghost`,size:`sm`,onClick:t=>tt(e),class:`text-muted-foreground hover:text-destructive`},{default:f(()=>[...a[35]||=[g(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),E.value.length===0?(_(),d(r(Ae),{key:0},{default:f(()=>[o(r(b),{colspan:`8`,class:`text-center text-muted-foreground py-8`},{default:f(()=>[...a[36]||=[g(`暂无供应商`,-1)]]),_:1})]),_:1})):i(``,!0)]),_:1})]),_:1})]),o(r(me),{open:O.value,"onUpdate:open":a[19]||=e=>O.value=e},{default:f(()=>[o(r(fe),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:f(()=>[o(r(pe),null,{default:f(()=>[o(r(ge),null,{default:f(()=>[g(n(k.value?`编辑供应商`:`添加供应商`),1)]),_:1})]),_:1}),u(`form`,{onSubmit:ae(et,[`prevent`]),class:`space-y-4`},[k.value?i(``,!0):(_(),s(`div`,en,[a[38]||=u(`div`,{class:`flex items-center gap-1.5 text-xs font-semibold text-primary`},[u(`svg`,{class:`w-3.5 h-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[u(`path`,{d:`M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z`})]),g(` 模板选择 `)],-1),u(`div`,tn,[o(r(se),{modelValue:W.value,"onUpdate:modelValue":[a[0]||=e=>W.value=e,He]},{default:f(()=>[o(r(le),{class:`flex-1 border-primary/40`},{default:f(()=>[o(r(ue),{placeholder:`选择供应商模板`})]),_:1}),o(r(ce),null,{default:f(()=>[o(r(v),{value:`__custom__`},{default:f(()=>[...a[37]||=[g(`自定义`,-1)]]),_:1}),(_(!0),s(t,null,m(D.value,e=>(_(),d(r(v),{key:e.group,value:e.group},{default:f(()=>[g(n(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),W.value===`__custom__`?i(``,!0):(_(),d(r(se),{key:0,modelValue:G.value,"onUpdate:modelValue":[a[1]||=e=>G.value=e,Ue],disabled:!W.value||W.value===`__custom__`},{default:f(()=>[o(r(le),{class:`flex-1 border-primary/40`},{default:f(()=>[o(r(ue),{placeholder:`选择套餐`})]),_:1}),o(r(ce),null,{default:f(()=>[(_(!0),s(t,null,m(Ve.value,e=>(_(),d(r(v),{key:e.plan,value:e.plan},{default:f(()=>[g(n(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`disabled`]))])])),!W.value&&!k.value?(_(),s(`div`,nn,[...a[39]||=[u(`svg`,{class:`w-10 h-10 mb-3 opacity-30`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[u(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),u(`path`,{d:`M9 12l2 2 4-4`})],-1),u(`span`,{class:`text-sm`},`请先选择模板,或使用自定义模式`,-1)]])):i(``,!0),W.value||k.value?(_(),s(t,{key:2},[u(`div`,rn,[u(`div`,null,[o(r(Te),{class:`text-xs text-muted-foreground`},{default:f(()=>[...a[40]||=[g(`名称`,-1)]]),_:1}),o(r(De),{modelValue:F.value.name,"onUpdate:modelValue":a[2]||=e=>F.value.name=e,type:`text`,required:``,class:`mt-1`,onInput:a[3]||=e=>delete I.value.name},null,8,[`modelValue`]),I.value.name?(_(),s(`p`,an,n(I.value.name),1)):i(``,!0)]),u(`div`,null,[o(r(Te),{class:`text-xs text-muted-foreground`},{default:f(()=>[...a[41]||=[g(`API 类型`,-1)]]),_:1}),o(r(se),{modelValue:F.value.api_type,"onUpdate:modelValue":a[4]||=e=>F.value.api_type=e,class:`mt-1`},{default:f(()=>[o(r(le),null,{default:f(()=>[o(r(ue),{placeholder:`选择`})]),_:1}),o(r(ce),null,{default:f(()=>[o(r(v),{value:`openai`},{default:f(()=>[...a[42]||=[g(`OpenAI`,-1)]]),_:1}),o(r(v),{value:`anthropic`},{default:f(()=>[...a[43]||=[g(`Anthropic`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[o(r(Te),{class:`text-xs text-muted-foreground`},{default:f(()=>[...a[44]||=[g(`Base URL`,-1)]]),_:1}),o(r(De),{modelValue:F.value.base_url,"onUpdate:modelValue":a[5]||=e=>F.value.base_url=e,type:`url`,required:``,class:`mt-1 font-mono text-xs`,onInput:a[6]||=e=>delete I.value.base_url},null,8,[`modelValue`]),I.value.base_url?(_(),s(`p`,on,n(I.value.base_url),1)):i(``,!0)]),u(`div`,null,[o(r(Te),{class:`text-xs text-muted-foreground`},{default:f(()=>[...a[45]||=[g(`API Key`,-1)]]),_:1}),o(r(De),{modelValue:F.value.api_key,"onUpdate:modelValue":a[7]||=e=>F.value.api_key=e,type:`text`,required:!k.value,placeholder:k.value?`留空保持原密钥`:``,class:`mt-1`,onInput:a[8]||=e=>delete I.value.api_key},null,8,[`modelValue`,`required`,`placeholder`]),I.value.api_key?(_(),s(`p`,sn,n(I.value.api_key),1)):i(``,!0)])]),u(`div`,null,[o(r(Te),{class:`text-xs text-muted-foreground mb-2`},{default:f(()=>[...a[46]||=[g(`可用模型`,-1)]]),_:1}),u(`div`,cn,[(_(!0),s(t,null,m(F.value.models,(e,t)=>(_(),s(`div`,{key:t},[o(Fe,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":F.value.api_type,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!qe(F.value.base_url),"onUpdate:model":e=>Je(t,e),onRemove:e=>Ke(t)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`onUpdate:model`,`onRemove`])]))),128))]),u(`div`,ln,[o(r(De),{modelValue:C.value,"onUpdate:modelValue":a[9]||=e=>C.value=e,placeholder:`输入模型名称`,onKeydown:te(ae(Ge,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`modelValue`,`onKeydown`]),o(r(se),{modelValue:T.value,"onUpdate:modelValue":a[10]||=e=>T.value=e},{default:f(()=>[o(r(le),{class:`w-28`},{default:f(()=>[o(r(ue),{placeholder:`上下文`})]),_:1}),o(r(ce),null,{default:f(()=>[(_(),s(t,null,m(ne,e=>o(r(v),{key:e.value,value:e.value},{default:f(()=>[g(n(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),o(r(h),{type:`button`,variant:`outline`,size:`sm`,onClick:Ge,disabled:!C.value.trim()},{default:f(()=>[...a[47]||=[g(`添加`,-1)]]),_:1},8,[`disabled`])])]),u(`div`,un,[u(`div`,dn,[a[48]||=u(`div`,{class:`text-xs font-medium text-muted-foreground`},`并发控制`,-1),o(Pe,{mode:L.value,"max-concurrency":F.value.max_concurrency,"queue-timeout-ms":F.value.queue_timeout_ms,"max-queue-size":F.value.max_queue_size,compact:``,"onUpdate:mode":a[11]||=e=>Xe(e),"onUpdate:maxConcurrency":a[12]||=e=>F.value.max_concurrency=e,"onUpdate:queueTimeoutMs":a[13]||=e=>F.value.queue_timeout_ms=e,"onUpdate:maxQueueSize":a[14]||=e=>F.value.max_queue_size=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`])]),u(`div`,fn,[a[49]||=u(`div`,{class:`text-xs font-medium text-muted-foreground`},`转换规则`,-1),o(Ne,{"inject-headers":r(R).injectHeadersInput,"drop-fields":r(R).dropFieldsInput,"request-defaults":r(R).requestDefaultsInput,"onUpdate:injectHeaders":a[15]||=e=>r(R).injectHeadersInput=e,"onUpdate:dropFields":a[16]||=e=>r(R).dropFieldsInput=e,"onUpdate:requestDefaults":a[17]||=e=>r(R).requestDefaultsInput=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])])])],64)):i(``,!0),o(r(he),null,{default:f(()=>[o(r(h),{type:`button`,variant:`outline`,onClick:a[18]||=e=>O.value=!1},{default:f(()=>[...a[50]||=[g(`取消`,-1)]]),_:1}),o(r(h),{type:`submit`},{default:f(()=>[...a[51]||=[g(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),o(r(ve),{open:!!A.value,"onUpdate:open":a[20]||=e=>{e||(A.value=null)}},{default:f(()=>[o(r(_e),null,{default:f(()=>[o(r(be),null,{default:f(()=>[o(r(we),null,{default:f(()=>[...a[52]||=[g(`确认删除`,-1)]]),_:1}),o(r(ye),null,{default:f(()=>[g(`确定要删除供应商「`+n(A.value?.name)+`」吗?此操作不可撤销。`,1)]),_:1})]),_:1}),o(r(Se),null,{default:f(()=>[o(r(xe),null,{default:f(()=>[...a[53]||=[g(`取消`,-1)]]),_:1}),o(r(h),{variant:`destructive`,onClick:it},{default:f(()=>[...a[54]||=[g(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),o(r(ve),{open:!!j.value,"onUpdate:open":a[21]||=e=>{e||(j.value=null)}},{default:f(()=>[o(r(_e),null,{default:f(()=>[o(r(be),null,{default:f(()=>[o(r(we),null,{default:f(()=>[g(`确认`+n(j.value?.is_active?`禁用`:`启用`),1)]),_:1}),o(r(ye),null,{default:f(()=>[g(` 确定要`+n(j.value?.is_active?`禁用`:`启用`)+`供应商「`+n(j.value?.name)+`」吗? `,1),P.value.length?(_(),s(`div`,pn,[a[55]||=u(`div`,{class:`text-sm font-medium`},`以下映射分组正在使用此供应商:`,-1),(_(!0),s(t,null,m(P.value,e=>(_(),s(`div`,{key:e,class:`text-destructive text-sm`},n(e),1))),128))])):i(``,!0)]),_:1})]),_:1}),o(r(Se),null,{default:f(()=>[o(r(xe),null,{default:f(()=>[...a[56]||=[g(`取消`,-1)]]),_:1}),o(r(Ce),{onClick:rt},{default:f(()=>[...a[57]||=[g(`确认`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Tn as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{A as e,B as t,Bt as n,Ft as r,G as i,H as a,J as o,K as s,Lt as c,Ot as l,U as u,W as d,Y as f,at as p,bt as m,i as h,it as g,k as _,lt as v,n as y,nt as b,o as x,q as S,r as C,st as w,ut as T,x as E,zt as D}from"./button-zud8Qspb.js";import{i as O,t as k}from"./format-Dln15Luw.js";import{a as ee}from"./PopperContent-Bd_mpt_D.js";import{t as A}from"./loader-circle-D8BaqxEc.js";import{o as te}from"./Teleport-CLw1Jxrb.js";import{a as j,c as ne,i as re,l as ie,n as ae,o as oe,r as se,s as ce,t as le,u as ue}from"./TooltipTrigger-bqCyq9MU.js";import{n as de,t as fe}from"./CollapsibleContent-CdeCo0Ko.js";import{t as pe}from"./CollapsibleTrigger-CMd4wTNY.js";import{a as me,c as he,i as M,n as N,o as P,r as F,s as I,t as L}from"./alert-dialog-gprnWn1b.js";import{t as R}from"./Label-73u_Os4X.js";import{t as z}from"./Switch-BE8DAylK.js";import{t as B}from"./badge-CpT5q-jI.js";import{n as V}from"./lib-xfvPneK8.js";import{n as H,t as U}from"./CardContent-F3K9pZNP.js";import{n as W,t as G}from"./CardTitle-13anASyk.js";import{a as ge,i as K,n as q,o as _e,r as J,t as ve}from"./TableHeader-BqYT-eO-.js";var ye=f({__name:`TabsContent`,props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n}=x(),s=ue(),c=a(()=>ie(s.baseId,t.value)),u=a(()=>ne(s.baseId,t.value)),f=a(()=>t.value===s.modelValue.value),_=l(f.value);return p(()=>{s.registerContent(t.value),requestAnimationFrame(()=>{_.value=!1})}),g(()=>{s.unregisterContent(t.value)}),(e,t)=>(w(),d(r(te),{present:e.forceMount||f.value,"force-mount":``},{default:m(({present:t})=>[o(r(h),{id:u.value,ref:r(n),"as-child":e.asChild,as:e.as,role:`tabpanel`,"data-state":f.value?`active`:`inactive`,"data-orientation":r(s).orientation.value,"aria-labelledby":c.value,hidden:!t,tabindex:`0`,style:D({animationDuration:_.value?`0s`:void 0})},{default:m(()=>[!r(s).unmountOnHide.value||t?T(e.$slots,`default`,{key:0}):i(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),Y=f({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(w(),s(`div`,{"data-slot":`card-description`,class:c(r(C)(`text-muted-foreground text-sm`,t.class))},[T(e.$slots,`default`)],2))}}),X=f({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=E(t,`class`);return(e,i)=>(w(),d(r(ye),b({"data-slot":`tabs-content`,class:r(C)(`text-sm flex-1 outline-none`,t.class)},r(n)),{default:m(()=>[T(e.$slots,`default`)]),_:3},16,[`class`]))}}),be={key:0,class:`py-8 text-center text-muted-foreground`},xe={key:1,class:`py-8 text-center text-muted-foreground`},Se={class:`cursor-default font-mono text-xs`},Ce={class:`font-mono text-xs`},we={key:0,class:`text-muted-foreground`},Te={key:1,class:`text-muted-foreground`},Ee={class:`flex items-center gap-2`},De={class:`space-y-2`},Oe={class:`text-muted-foreground whitespace-nowrap`},ke={class:`text-muted-foreground`},Ae={class:`font-medium`},je=8,Me=6e4,Z=60,Q=24,Ne=f({__name:`SessionTable`,props:{sessions:{},loading:{type:Boolean},historyMap:{}},emits:[`clear`,`viewHistory`],setup(e,{emit:a}){let c=a,f=l(!1),p=l(null);function h(e){p.value=e,f.value=!0}function g(){p.value&&=(c(`clear`,p.value),null)}function _(e){return e.slice(0,je)+`...`}function b(e){let t=Date.now()-O(e).getTime(),n=Math.floor(t/Me);if(n<1)return`刚刚`;if(n<Z)return`${n} 分钟前`;let r=Math.floor(n/Z);return r<Q?`${r} 小时前`:`${Math.floor(r/Q)} 天前`}return(a,c)=>(w(),s(t,null,[e.loading?(w(),s(`div`,be,`加载中...`)):e.sessions.length===0?(w(),s(`div`,xe,`暂无活跃 Session`)):(w(),d(r(_e),{key:2},{default:m(()=>[o(r(ve),null,{default:m(()=>[o(r(J),null,{default:m(()=>[o(r(q),null,{default:m(()=>[...c[1]||=[S(`密钥名称`,-1)]]),_:1}),o(r(q),null,{default:m(()=>[...c[2]||=[S(`Session ID`,-1)]]),_:1}),o(r(q),null,{default:m(()=>[...c[3]||=[S(`当前模型`,-1)]]),_:1}),o(r(q),null,{default:m(()=>[...c[4]||=[S(`原始模型`,-1)]]),_:1}),o(r(q),null,{default:m(()=>[...c[5]||=[S(`最后活跃`,-1)]]),_:1}),o(r(q),null,{default:m(()=>[...c[6]||=[S(`操作`,-1)]]),_:1})]),_:1})]),_:1}),o(r(ge),null,{default:m(()=>[(w(!0),s(t,null,v(e.sessions,l=>(w(),s(t,{key:l.id},[o(r(J),null,{default:m(()=>[o(r(K),{class:`font-medium`},{default:m(()=>[S(n(l.router_key_name),1)]),_:2},1024),o(r(K),null,{default:m(()=>[o(r(ae),null,{default:m(()=>[o(r(re),null,{default:m(()=>[o(r(le),{"as-child":``},{default:m(()=>[u(`span`,Se,n(_(l.session_id)),1)]),_:2},1024),o(r(se),null,{default:m(()=>[u(`p`,Ce,n(l.session_id),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024),o(r(K),null,{default:m(()=>[o(r(B),{variant:`secondary`},{default:m(()=>[S(n(l.current_model),1)]),_:2},1024)]),_:2},1024),o(r(K),null,{default:m(()=>[l.original_model?(w(),s(`span`,we,n(l.original_model),1)):(w(),s(`span`,Te,`-`))]),_:2},1024),o(r(K),{class:`text-muted-foreground text-sm`},{default:m(()=>[S(n(b(l.last_active_at)),1)]),_:2},1024),o(r(K),null,{default:m(()=>[u(`div`,Ee,[o(r(y),{variant:`ghost`,size:`sm`,onClick:e=>a.$emit(`viewHistory`,l)},{default:m(()=>[S(n(e.historyMap[l.session_id]?`收起`:`历史`),1)]),_:2},1032,[`onClick`]),o(r(y),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>h(l)},{default:m(()=>[...c[7]||=[S(` 清除 `,-1)]]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024),e.historyMap[l.session_id]?(w(),d(r(J),{key:0},{default:m(()=>[o(r(K),{colspan:`6`,class:`bg-muted/50 px-6 py-3`},{default:m(()=>[u(`div`,De,[c[9]||=u(`p`,{class:`text-sm font-medium text-foreground`},`切换历史`,-1),(w(!0),s(t,null,v(e.historyMap[l.session_id],e=>(w(),s(`div`,{key:e.id,class:`flex items-center gap-3 text-sm`},[u(`span`,Oe,n(r(k)(e.created_at)),1),o(r(B),{variant:`outline`,class:`text-xs`},{default:m(()=>[S(n(e.trigger_type),1)]),_:2},1024),u(`span`,null,[u(`span`,ke,n(e.old_model||`默认`),1),c[8]||=u(`span`,{class:`mx-1`},`→`,-1),u(`span`,Ae,n(e.new_model),1)])]))),128))])]),_:2},1024)]),_:2},1024)):i(``,!0)],64))),128))]),_:1})]),_:1})),o(r(he),{open:f.value,"onUpdate:open":c[0]||=e=>f.value=e},{default:m(()=>[o(r(me),null,{default:m(()=>[o(r(N),null,{default:m(()=>[o(r(L),null,{default:m(()=>[...c[10]||=[S(`确认清除 Session`,-1)]]),_:1}),o(r(M),null,{default:m(()=>[...c[11]||=[S(` 清除后,该 Session 将恢复使用默认模型映射。此操作不可撤销。 `,-1)]]),_:1})]),_:1}),o(r(F),null,{default:m(()=>[o(r(P),null,{default:m(()=>[...c[12]||=[S(`取消`,-1)]]),_:1}),o(r(I),{onClick:g},{default:m(()=>[...c[13]||=[S(`确认清除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])],64))}}),Pe={class:`p-6`},Fe={class:`flex items-center gap-3`},Ie={class:`flex justify-end mt-4`},Le={key:0,class:`flex items-center gap-1`},$={key:1},Re={class:`flex items-center justify-between`},ze={class:`flex items-center gap-3`},Be={class:`flex items-center gap-3`},Ve={class:`flex items-center gap-3`},He={class:`flex justify-end mt-4`},Ue={key:0,class:`flex items-center gap-1`},We={key:1},Ge=`---
|
|
2
|
+
description: 切换代理路由模型
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
[router-command: select-model $ARGUMENTS]`,Ke=f({__name:`ProxyEnhancement`,setup(t){let i=l(!1),a=l(!0),d=l(!1),f=l(!1),h=l(!1),g=l(!0),v=l([]),b=l(!1),x=l({});async function C(){try{let e=await _.getProxyEnhancement();i.value=e.claude_code_enabled,a.value=e.tool_round_limit_enabled,d.value=e.tool_call_loop_enabled,f.value=e.stream_loop_enabled}catch(t){console.error(`Failed to load proxy enhancement config:`,t),V.error(e(t,`加载配置失败`))}}async function T(){h.value=!0;try{await _.updateProxyEnhancement({claude_code_enabled:i.value,tool_call_loop_enabled:d.value,stream_loop_enabled:f.value,tool_round_limit_enabled:a.value}),V.success(`保存成功`)}catch(t){console.error(`Failed to save proxy enhancement config:`,t),V.error(e(t,`保存失败`))}finally{h.value=!1}}async function E(){b.value=!0;try{v.value=await _.getSessionStates()}catch(t){console.error(`Failed to load sessions:`,t),V.error(e(t,`加载 Session 列表失败`))}finally{b.value=!1}}async function D(t){try{await _.deleteSessionState(t.router_key_id,t.session_id),V.success(`Session 已清除`),E()}catch(t){console.error(`Failed to clear session:`,t),V.error(e(t,`清除 Session 失败`))}}async function O(t){let n=t.session_id;if(x.value[n]){delete x.value[n];return}try{let e=await _.getSessionHistory(t.router_key_id,t.session_id);x.value[n]=e}catch(t){console.error(`Failed to load history:`,t),V.error(e(t,`加载历史记录失败`))}}return p(()=>{C(),E()}),(e,t)=>(w(),s(`div`,Pe,[t[26]||=u(`h2`,{class:`text-lg font-semibold text-foreground mb-4`},`代理增强(实验性)`,-1),o(r(ce),{"default-value":`dynamic-model`},{default:m(()=>[o(r(oe),null,{default:m(()=>[o(r(j),{value:`dynamic-model`},{default:m(()=>[...t[5]||=[S(`动态模型切换`,-1)]]),_:1}),o(r(j),{value:`loop-detection`},{default:m(()=>[...t[6]||=[S(`循环输出检测`,-1)]]),_:1})]),_:1}),o(r(X),{value:`dynamic-model`},{default:m(()=>[o(r(H),null,{default:m(()=>[o(r(W),null,{default:m(()=>[o(r(G),null,{default:m(()=>[...t[7]||=[S(`Claude Code 动态模型切换`,-1)]]),_:1}),o(r(Y),null,{default:m(()=>[...t[8]||=[S(` 在 Claude Code 对话中通过 /select-model 命令动态切换后端模型。模型选择在当前会话内有效(24h),不影响路由配置。 `,-1)]]),_:1})]),_:1}),o(r(U),null,{default:m(()=>[u(`div`,Fe,[o(r(z),{id:`claude-code-toggle`,modelValue:i.value,"onUpdate:modelValue":t[0]||=e=>i.value=e},null,8,[`modelValue`]),o(r(R),{for:`claude-code-toggle`},{default:m(()=>[S(n(i.value?`已启用`:`已禁用`),1)]),_:1})])]),_:1})]),_:1}),u(`div`,Ie,[o(r(y),{disabled:h.value,onClick:T},{default:m(()=>[h.value?(w(),s(`span`,Le,[o(r(A),{class:`w-4 h-4 animate-spin`}),t[9]||=S(` 保存中... `,-1)])):(w(),s(`span`,$,`保存`))]),_:1},8,[`disabled`])]),o(r(de),{open:g.value,"onUpdate:open":t[1]||=e=>g.value=e,class:`mt-4`},{default:m(()=>[o(r(pe),{"as-child":``},{default:m(()=>[o(r(y),{variant:`ghost`,class:`w-full justify-between`},{default:m(()=>[t[10]||=u(`span`,null,`使用说明`,-1),o(r(ee),{class:c([`w-4 h-4 transition-transform`,{"rotate-180":g.value}])},null,8,[`class`])]),_:1})]),_:1}),o(r(fe),{class:`mt-2`},{default:m(()=>[o(r(H),null,{default:m(()=>[o(r(U),{class:`space-y-4 text-sm`},{default:m(()=>[u(`div`,null,[t[11]||=u(`p`,{class:`font-medium text-foreground mb-1 leading-relaxed`},`配置方法`,-1),t[12]||=u(`p`,{class:`text-muted-foreground leading-relaxed`},` 在 Claude Code 项目级或全局级目录下创建 Command 文件: `,-1),t[13]||=u(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`},[S(` # 项目级 .claude/commands/select-model.md`),u(`br`),S(` # 全局级 ~/.claude/commands/select-model.md `)],-1),t[14]||=u(`p`,{class:`text-muted-foreground leading-relaxed mt-2`},` 文件内容: `,-1),u(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`,textContent:Ge})]),t[15]||=u(`div`,null,[u(`p`,{class:`font-medium text-foreground mb-1 leading-relaxed`},`使用方法`),u(`p`,{class:`text-muted-foreground leading-relaxed`},` 查看可用模型列表(格式为 provider_name/backend_model): `),u(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`},` /select-model `),u(`p`,{class:`text-muted-foreground leading-relaxed mt-2`},` 选择模型并记住到当前会话: `),u(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`},` /select-model provider_name/backend_model `),u(`p`,{class:`text-muted-foreground leading-relaxed mt-2`},` 切换后在下方活跃 Session 表中确认状态,请求日志中可验证路由是否生效。 `)],-1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),o(r(H),{class:`mt-4`},{default:m(()=>[o(r(W),null,{default:m(()=>[u(`div`,Re,[u(`div`,null,[o(r(G),null,{default:m(()=>[...t[16]||=[S(`活跃 Session`,-1)]]),_:1}),o(r(Y),null,{default:m(()=>[...t[17]||=[S(`查看和管理当前已配置模型的 session`,-1)]]),_:1})]),o(r(y),{variant:`outline`,size:`sm`,onClick:E,disabled:b.value},{default:m(()=>[...t[18]||=[S(`刷新`,-1)]]),_:1},8,[`disabled`])])]),_:1}),o(r(U),null,{default:m(()=>[o(Ne,{sessions:v.value,loading:b.value,"history-map":x.value,onClear:D,onViewHistory:O},null,8,[`sessions`,`loading`,`history-map`])]),_:1})]),_:1})]),_:1}),o(r(X),{value:`loop-detection`},{default:m(()=>[o(r(H),null,{default:m(()=>[o(r(W),null,{default:m(()=>[o(r(G),null,{default:m(()=>[...t[19]||=[S(`工具调用轮数限制`,-1)]]),_:1}),o(r(Y),null,{default:m(()=>[...t[20]||=[S(` 检测 AI 连续进行工具调用的轮数(assistant → tool_use → user → tool_result 算一轮),超过 5 轮时自动注入提示词提醒 AI 不要陷入无限循环。 `,-1)]]),_:1})]),_:1}),o(r(U),null,{default:m(()=>[u(`div`,ze,[o(r(z),{id:`tool-round-limit-toggle`,modelValue:a.value,"onUpdate:modelValue":t[2]||=e=>a.value=e},null,8,[`modelValue`]),o(r(R),{for:`tool-round-limit-toggle`},{default:m(()=>[S(n(a.value?`已启用`:`已禁用`),1)]),_:1})])]),_:1})]),_:1}),o(r(H),{class:`mt-4`},{default:m(()=>[o(r(W),null,{default:m(()=>[o(r(G),null,{default:m(()=>[...t[21]||=[S(`工具调用循环检测`,-1)]]),_:1}),o(r(Y),null,{default:m(()=>[...t[22]||=[S(` 检测模型重复调用同一工具的行为,超过阈值时自动中断请求或注入提示词。 `,-1)]]),_:1})]),_:1}),o(r(U),null,{default:m(()=>[u(`div`,Be,[o(r(z),{id:`tool-call-loop-toggle`,modelValue:d.value,"onUpdate:modelValue":t[3]||=e=>d.value=e},null,8,[`modelValue`]),o(r(R),{for:`tool-call-loop-toggle`},{default:m(()=>[S(n(d.value?`已启用`:`已禁用`),1)]),_:1})])]),_:1})]),_:1}),o(r(H),{class:`mt-4`},{default:m(()=>[o(r(W),null,{default:m(()=>[o(r(G),null,{default:m(()=>[...t[23]||=[S(`SSE 输出内容循环检测`,-1)]]),_:1}),o(r(Y),null,{default:m(()=>[...t[24]||=[S(` 检测流式输出中内容重复循环(N-gram 模式),超过阈值时自动中断流。 `,-1)]]),_:1})]),_:1}),o(r(U),null,{default:m(()=>[u(`div`,Ve,[o(r(z),{id:`stream-loop-toggle`,modelValue:f.value,"onUpdate:modelValue":t[4]||=e=>f.value=e},null,8,[`modelValue`]),o(r(R),{for:`stream-loop-toggle`},{default:m(()=>[S(n(f.value?`已启用`:`已禁用`),1)]),_:1})])]),_:1})]),_:1}),u(`div`,He,[o(r(y),{disabled:h.value,onClick:T},{default:m(()=>[h.value?(w(),s(`span`,Ue,[o(r(A),{class:`w-4 h-4 animate-spin`}),t[25]||=S(` 保存中... `,-1)])):(w(),s(`span`,We,`保存`))]),_:1},8,[`disabled`])])]),_:1})]),_:1})]))}});export{Ke as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,Bt as n,Ft as r,G as i,H as a,J as o,K as s,Lt as c,Ot as l,R as u,U as d,W as f,Y as p,_t as ee,at as m,bt as h,j as te,k as g,lt as _,n as v,q as y,st as b,wt as x,z as S}from"./button-zud8Qspb.js";import{a as C,i as w,n as T,r as E,t as D}from"./SelectValue-DRc1qira.js";import{t as O}from"./Checkbox-C2oSHNgP.js";import{t as k}from"./Label-73u_Os4X.js";import{t as A}from"./badge-CpT5q-jI.js";import{n as j}from"./lib-xfvPneK8.js";import{n as M,t as N}from"./CardContent-F3K9pZNP.js";import{n as P,t as F}from"./CardTitle-13anASyk.js";import{t as I}from"./Input-RyuwzbNx.js";import{t as L}from"./MappingList-m2ebUmJ9.js";import{a as R,i as z,n as B,o as ne,r as V,t as H}from"./ModelCard-B0pjEq6W.js";var U={DeepSeek:`deepseek`,百度千帆:`qianfan`,科大讯飞:`iflytek`,硅基流动:`siliconflow`,智谱:`zhipu`,月之暗面:`moonshot`,Minimax:`minimax`,火山引擎:`volcengine`,阿里云:`aliyun`,腾讯云:`tencent`,"OpenCode Go":`opencode-go`,阶跃星辰:`stepfun`};function W(e){return U[e]??e.toLowerCase().replace(/[^a-z0-9]/gi,`-`).replace(/-+/g,`-`)}function G(){let t=l(`claude-code`),n=l([]),r=l(``),i=l(``),o=l(`anthropic`),s=l(``),c=l([]),u=l([]),d=l([]),f=l(new Set),p=l(!1),h=l(`idle`),_=l(`auto`),v=l(10),y=l(12e4),b=l(100),x=l(``),S=l(``),C=l(``),w=l([]),T=l([]),E=a(()=>r.value===`__custom__`),D=a(()=>B.find(e=>e.id===t.value)),O=a(()=>{if(!r.value||!i.value)return;let e=n.value.find(e=>e.group===r.value);if(e)return e.presets.find(e=>e.plan===i.value)}),k=l(``),A=a(()=>E.value?k.value:O.value?.baseUrl??``),M=a(()=>n.value.find(e=>e.group===r.value)?.presets??[]),N=a(()=>!A.value.includes(`openai.com`)),P=a(()=>r.value?{provider:{id:E.value?`__new_custom__`:`__new_${W(r.value)}_${W(i.value)}__`,name:E.value?`自定义供应商`:`${r.value} - ${i.value}`},models:c.value.filter(e=>e.enabled).map(e=>({name:e.name,contextWindow:e.contextWindow})),isNew:!0}:null),F=a(()=>{let e=T.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??128e3}))}));return P.value&&P.value.models.length>0?[...e,P.value]:e}),I=a(()=>{let e=r.value;return d.value.filter(t=>!t.providers||t.providers.length===0?!0:t.providers.includes(e))});function L(e,t){let n=[];return e.toLowerCase().includes(`deepseek`)&&(t===`anthropic`?n.push(`thinking-param`,`cache-control`,`thinking-blocks`,`orphan-tool-results`):n.push(`non-ds-tools`,`orphan-tool-results-oa`)),t===`openai`&&N.value&&n.push(`developer-role`),n}function R(e){c.value=e.models.map(t=>({name:t,contextWindow:z(t),enabled:!0,patches:L(t,e.apiType)}))}function ne(e,t=128e3){c.value.push({name:e,contextWindow:t,enabled:!0,patches:L(e,o.value)})}function H(){let e=c.value.filter(e=>e.enabled),n;n=t.value===`pi`?e.map(e=>e.name):V[t.value]??e.map(e=>e.name),u.value=n.map(r=>{let i=w.value.find(e=>e.client_model===r);if(i){let t={};try{t=JSON.parse(i.rule)}catch{}let n=t.targets??[];return{clientModel:r,targets:n.length>0?n.map(e=>({backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})):[{backend_model:e[0]?.name??``,provider_id:`__new__`}],existing:!0,existingId:i.id,tag:`existing`,active:!!i.is_active,originalActive:!!i.is_active}}return{clientModel:r,targets:[{backend_model:e[n.indexOf(r)]?.name??e[e.length-1]?.name??``,provider_id:`__new__`}],existing:!1,tag:t.value===`pi`?`auto`:`def`,active:!0}})}function U(){f.value=new Set(I.value.filter(e=>!e.exists).map(e=>e.name))}function G(e){t.value=e;let a=B.find(t=>t.id===e);if(a){r.value=``,i.value=``;for(let e of n.value)if(e.group===a.defaultProvider){r.value=e.group;for(let t of e.presets)if(t.plan===a.defaultPlan){i.value=t.plan,o.value=t.apiType,R(t);break}break}H(),U()}}function re(e){if(r.value=e,i.value=``,c.value=[],e===`__custom__`)o.value=`openai`,k.value=``,c.value=[];else{let t=n.value.find(t=>t.group===e);if(t&&t.presets.length>0){let e=D.value,n=(e?t.presets.find(t=>t.apiType===e.format):null)??t.presets[0];i.value=n.plan,o.value=n.apiType,R(n)}}H(),U()}function ie(e){i.value=e;let t=n.value.find(e=>e.group===r.value);if(!t)return;let a=t.presets.find(t=>t.plan===e);a&&(o.value=a.apiType,R(a),H())}ee(o,()=>{for(let e of c.value)e.patches=L(e.name,o.value)});function ae(e,t){let n=new Set(f.value);t?n.add(e):n.delete(e),f.value=n}function oe(e,t){let n=[...u.value];n[e]={...n[e],targets:t},u.value=n}function se(e){let t=[...u.value];t[e]={...t[e],active:!t[e].active},u.value=t}function ce(e,t){let n=u.value.filter(t=>t.clientModel!==e);n.push({clientModel:e,targets:[{backend_model:t,provider_id:`__new__`}],existing:!1,tag:`cust`,active:!0}),u.value=n}function le(e){if(u.value.find(t=>t.clientModel===e)?.existing){j.error(`已有映射请到"模型映射"页面删除`);return}u.value=u.value.filter(t=>t.clientModel!==e)}function ue(e){_.value=e,e===`auto`?v.value=10:e===`manual`&&(v.value=3)}async function de(){if(!s.value.trim()){h.value=`error`,j.error(`请先填写 API Key`);return}h.value=`testing`,await new Promise(e=>setTimeout(e,800)),h.value=`ok`}function fe(){let e=x.value.trim(),t=S.value.trim(),n=C.value.trim();if(!e&&!t&&!n)return;let r={};if(e)try{r.inject_headers=JSON.parse(e)}catch{return j.error(`注入 Headers JSON 格式错误`),!1}if(t&&(r.drop_fields=t.split(`,`).map(e=>e.trim()).filter(Boolean)),n)try{r.request_defaults=JSON.parse(n)}catch{return j.error(`请求默认值 JSON 格式错误`),!1}return Object.keys(r).length>0?r:void 0}async function pe(){if(!O.value){j.error(`请选择供应商和套餐`);return}if(!s.value.trim()){j.error(`请填写 API Key`);return}p.value=!0;try{let e={provider:{name:E.value?`custom-${Date.now()}`:`${W(r.value)}-${W(i.value)}`,api_type:o.value,base_url:A.value,api_key:s.value.trim(),models:c.value.map(e=>({name:e.name,context_window:e.contextWindow,patches:e.patches.length>0?e.patches:void 0})),concurrency_mode:_.value,max_concurrency:_.value===`none`?void 0:v.value,queue_timeout_ms:_.value===`none`?void 0:y.value,max_queue_size:_.value===`none`?void 0:b.value},mappings:u.value.filter(e=>e.targets[0]?.backend_model).map(e=>({client_model:e.clientModel,backend_model:e.targets[0]?.backend_model??``})),retry_rules:I.value.filter(e=>f.value.has(e.name)&&!e.exists).map(e=>({name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms})),transform_rules:(()=>{let e=fe();if(e===!1)throw Error(`__transform_invalid__`);return e})()};await g.quickSetup(e);let t=[];for(let e of u.value)if(e.existing&&e.existingId&&e.originalActive!==void 0&&e.active!==e.originalActive)try{await g.toggleMappingGroup(e.existingId)}catch{t.push(e.clientModel)}t.length>0?j.success(`快速配置完成!${t.length} 个映射状态切换失败`):j.success(`快速配置完成!`),await new Promise(e=>setTimeout(e,1500)),te.push(`/`)}catch(t){j.error(e(t,`快速配置失败`))}finally{p.value=!1}}return m(async()=>{try{let[e,t,r,i]=await Promise.all([g.recommended.getProviders(),g.recommended.getRetryRules(),g.getMappingGroups().catch(()=>[]),g.getProviders().catch(()=>[])]);n.value=e,d.value=t,w.value=r,T.value=i,G(`claude-code`)}catch(t){j.error(e(t,`加载推荐配置失败`))}}),{clientType:t,providerGroups:n,selectedGroup:r,selectedPlan:i,apiType:o,apiKey:s,modelConfigs:c,mappingEntries:u,allRecommendedRules:d,recommendedRules:I,selectedRetryRules:f,saving:p,connectionStatus:h,currentClient:D,currentPreset:O,baseUrl:A,customBaseUrl:k,isCustomProvider:E,availablePlans:M,isNonOpenaiEndpoint:N,concurrencyMode:_,maxConcurrency:v,queueTimeoutMs:y,maxQueueSize:b,transformInjectHeaders:x,transformDropFields:S,transformRequestDefaults:C,existingMappings:w,allProviders:T,allProviderGroups:F,selectClient:G,onProviderChange:re,onPlanChange:ie,initModels:R,getDefaultPatches:L,updateMappings:H,updateMappingTargets:oe,toggleMappingActive:se,addMappingEntry:ce,removeMappingEntry:le,toggleRetryRule:ae,onConcurrencyModeChange:ue,testConnection:de,submit:pe,addCustomModel:ne}}var re={class:`p-6 space-y-4 pb-20`},ie={class:`flex gap-2 flex-wrap`},ae=[`onClick`],oe={class:`text-left`},se={class:`font-medium text-sm leading-tight`},ce={class:`text-[10px] opacity-60 leading-tight`},le={class:`flex items-end gap-2`},ue={class:`w-40 space-y-1`},de={class:`w-28 space-y-1`},fe={class:`w-80 space-y-1`},pe={class:`w-28 space-y-1`},me={class:`w-28 space-y-1`},he={class:`w-80 space-y-1`},ge={class:`w-64 space-y-1`},_e={class:`shrink-0 space-y-1`},ve={class:`border-t pt-3`},ye={class:`flex items-center justify-between mb-2`},be={key:0,class:`py-4 text-center text-xs text-muted-foreground`},xe={key:1,class:`grid grid-cols-4 gap-2`},Se={key:2,class:`flex gap-2 mt-2`},Ce={class:`border-t pt-3`},we={class:`grid grid-cols-5 gap-4`},Te={class:`flex items-center justify-between`},Ee={class:`col-span-2 space-y-4`},De={class:`flex items-center justify-between`},Oe={key:0,class:`py-6 text-center text-xs text-muted-foreground`},ke={key:1,class:`space-y-1.5 max-h-[320px] overflow-y-auto`},Ae=[`onClick`],je={class:`flex-1 min-w-0`},Me={class:`flex items-center gap-1.5`},Ne={class:`text-xs font-medium`},Pe={class:`text-[10px] text-muted-foreground mt-0.5`},Fe={class:`fixed bottom-0 right-0 left-56 border-t bg-card/95 backdrop-blur px-6 py-2.5 flex items-center justify-between z-10`},Ie={class:`text-xs text-muted-foreground flex items-center gap-1.5`},Le={class:`flex items-center gap-2`},K=p({__name:`QuickSetup`,setup(e){let{clientType:p,providerGroups:ee,selectedGroup:m,selectedPlan:te,apiType:g,apiKey:z,modelConfigs:V,mappingEntries:U,allRecommendedRules:W,recommendedRules:K,selectedRetryRules:q,saving:Re,connectionStatus:J,baseUrl:ze,availablePlans:Be,isNonOpenaiEndpoint:Ve,isCustomProvider:Y,customBaseUrl:X,concurrencyMode:He,maxConcurrency:Ue,queueTimeoutMs:We,maxQueueSize:Z,allProviderGroups:Ge,transformInjectHeaders:Ke,transformDropFields:qe,transformRequestDefaults:Je,selectClient:Ye,onProviderChange:Xe,onPlanChange:Ze,updateMappingTargets:Qe,toggleMappingActive:$e,addMappingEntry:et,removeMappingEntry:tt,toggleRetryRule:nt,onConcurrencyModeChange:rt,testConnection:it,submit:at,addCustomModel:ot}=G(),Q=l(``);function st(){Q.value.trim()&&(ot(Q.value.trim()),Q.value=``)}let $=a(()=>V.value.filter(e=>e.enabled).length),ct=a(()=>B.find(e=>e.id===p.value)?.name??p.value);function lt(e,t){let n=[...V.value];n[e]=t,V.value=n}function ut(e){V.value=V.value.filter((t,n)=>n!==e)}function dt(){if(!m.value){j.error(`请选择供应商`);return}if(!z.value.trim()){j.error(`请填写 API Key`);return}if($.value===0){j.error(`至少启用一个模型`);return}j.success(`配置验证通过`)}return(e,a)=>(b(),s(t,null,[d(`div`,re,[o(r(M),null,{default:h(()=>[o(r(P),{class:`pb-3`},{default:h(()=>[o(r(F),{class:`text-sm font-medium`},{default:h(()=>[...a[14]||=[y(`选择客户端`,-1)]]),_:1})]),_:1}),o(r(N),null,{default:h(()=>[d(`div`,ie,[(b(!0),s(t,null,_(r(B),e=>(b(),s(`button`,{key:e.id,class:c([`flex items-center gap-2.5 px-4 py-2.5 rounded-lg border text-sm transition-all cursor-pointer`,r(p)===e.id?`border-primary bg-primary/5 text-primary ring-1 ring-primary/20`:`border-border hover:border-muted-foreground/30 text-muted-foreground hover:text-foreground`]),onClick:t=>r(Ye)(e.id)},[d(`span`,{class:c([`w-7 h-7 rounded-md text-xs font-bold flex items-center justify-center shrink-0`,{"bg-purple-600 text-white":e.iconClass===`cc`,"bg-emerald-600 text-white":e.iconClass===`pi`,"bg-blue-600 text-white":e.iconClass===`oa`,"bg-orange-600 text-white":e.iconClass===`an`}])},n(e.icon),3),d(`div`,oe,[d(`div`,se,n(e.name),1),d(`div`,ce,n(e.format)+` · `+n(e.description),1)])],10,ae))),128))])]),_:1})]),_:1}),o(r(M),null,{default:h(()=>[o(r(P),{class:`pb-3`},{default:h(()=>[o(r(F),{class:`text-sm font-medium`},{default:h(()=>[...a[15]||=[y(`供应商配置`,-1)]]),_:1})]),_:1}),o(r(N),{class:`space-y-4`},{default:h(()=>[d(`div`,le,[d(`div`,ue,[o(r(k),{class:`text-xs text-muted-foreground`},{default:h(()=>[...a[16]||=[y(`供应商`,-1)]]),_:1}),o(r(C),{"model-value":r(m),"onUpdate:modelValue":a[0]||=e=>r(Xe)(e)},{default:h(()=>[o(r(T),{class:`w-full`},{default:h(()=>[o(r(D),{placeholder:`选择`})]),_:1}),o(r(w),null,{default:h(()=>[o(r(E),{value:`__custom__`},{default:h(()=>[...a[17]||=[y(`自定义`,-1)]]),_:1}),(b(!0),s(t,null,_(r(ee),e=>(b(),f(r(E),{key:e.group,value:e.group},{default:h(()=>[y(n(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),r(Y)?(b(),s(t,{key:0},[d(`div`,de,[o(r(k),{class:`text-xs text-muted-foreground`},{default:h(()=>[...a[18]||=[y(`格式`,-1)]]),_:1}),o(r(C),{modelValue:r(g),"onUpdate:modelValue":a[1]||=e=>x(g)?g.value=e:null},{default:h(()=>[o(r(T),{class:`w-full`},{default:h(()=>[o(r(D))]),_:1}),o(r(w),null,{default:h(()=>[o(r(E),{value:`anthropic`},{default:h(()=>[...a[19]||=[y(`Anthropic`,-1)]]),_:1}),o(r(E),{value:`openai`},{default:h(()=>[...a[20]||=[y(`OpenAI`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),d(`div`,fe,[o(r(k),{class:`text-xs text-muted-foreground`},{default:h(()=>[...a[21]||=[y(`Base URL`,-1)]]),_:1}),o(r(I),{modelValue:r(X),"onUpdate:modelValue":a[2]||=e=>x(X)?X.value=e:null,placeholder:`https://api.example.com/v1`,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):(b(),s(t,{key:1},[d(`div`,pe,[o(r(k),{class:`text-xs text-muted-foreground`},{default:h(()=>[...a[22]||=[y(`套餐`,-1)]]),_:1}),o(r(C),{"model-value":r(te),"onUpdate:modelValue":a[3]||=e=>r(Ze)(e)},{default:h(()=>[o(r(T),{class:`w-full`},{default:h(()=>[o(r(D),{placeholder:`选择`})]),_:1}),o(r(w),null,{default:h(()=>[(b(!0),s(t,null,_(r(Be),e=>(b(),f(r(E),{key:e.plan,value:e.plan},{default:h(()=>[y(n(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),d(`div`,me,[o(r(k),{class:`text-xs text-muted-foreground`},{default:h(()=>[...a[23]||=[y(`格式`,-1)]]),_:1}),o(r(C),{modelValue:r(g),"onUpdate:modelValue":a[4]||=e=>x(g)?g.value=e:null},{default:h(()=>[o(r(T),{class:`w-full`},{default:h(()=>[o(r(D))]),_:1}),o(r(w),null,{default:h(()=>[o(r(E),{value:`anthropic`},{default:h(()=>[...a[24]||=[y(`Anthropic`,-1)]]),_:1}),o(r(E),{value:`openai`},{default:h(()=>[...a[25]||=[y(`OpenAI`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),d(`div`,he,[o(r(k),{class:`text-xs text-muted-foreground`},{default:h(()=>[...a[26]||=[y(`Base URL`,-1)]]),_:1}),o(r(I),{"model-value":r(ze),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`])])],64)),d(`div`,ge,[o(r(k),{class:`text-xs text-muted-foreground`},{default:h(()=>[...a[27]||=[y(`API Key`,-1)]]),_:1}),o(r(I),{modelValue:r(z),"onUpdate:modelValue":a[5]||=e=>x(z)?z.value=e:null,type:`password`,placeholder:`输入 API Key`},null,8,[`modelValue`])]),d(`div`,_e,[o(r(k),{class:`text-xs text-muted-foreground invisible`},{default:h(()=>[...a[28]||=[y(`连接`,-1)]]),_:1}),o(r(v),{variant:`outline`,size:`sm`,disabled:r(J)===`testing`,onClick:r(it)},{default:h(()=>[r(J)===`testing`?(b(),s(t,{key:0},[a[29]||=d(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[d(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),d(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),a[30]||=y(` 测试中 `,-1)],64)):r(J)===`ok`?(b(),s(t,{key:1},[y(`已连接`)],64)):(b(),s(t,{key:2},[y(`测试`)],64))]),_:1},8,[`disabled`,`onClick`])])]),d(`div`,ve,[d(`div`,ye,[a[31]||=d(`span`,{class:`text-xs font-medium text-muted-foreground`},`模型配置`,-1),o(r(A),{variant:`secondary`,class:`text-[10px]`},{default:h(()=>[y(n($.value)+`/`+n(r(V).length),1)]),_:1})]),r(V).length===0?(b(),s(`p`,be,` 请先选择供应商与套餐 `)):(b(),s(`div`,xe,[(b(!0),s(t,null,_(r(V),(e,t)=>(b(),f(H,{key:e.name,model:e,"api-type":r(g),"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":r(Ve),"onUpdate:model":e=>lt(t,e),onRemove:e=>ut(t)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`onUpdate:model`,`onRemove`]))),128))])),r(Y)?(b(),s(`div`,Se,[o(r(I),{modelValue:Q.value,"onUpdate:modelValue":a[6]||=e=>Q.value=e,placeholder:`输入模型名称`,onKeydown:u(S(st,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`modelValue`,`onKeydown`]),o(r(v),{type:`button`,variant:`outline`,size:`sm`,onClick:st,disabled:!Q.value.trim()},{default:h(()=>[...a[32]||=[y(`添加`,-1)]]),_:1},8,[`disabled`])])):i(``,!0)]),d(`div`,Ce,[a[33]||=d(`div`,{class:`flex items-center justify-between mb-2`},[d(`span`,{class:`text-xs font-medium text-muted-foreground`},`并发控制`)],-1),o(ne,{mode:r(He),"max-concurrency":r(Ue),"queue-timeout-ms":r(We),"max-queue-size":r(Z),"onUpdate:mode":r(rt),"onUpdate:maxConcurrency":a[7]||=e=>Ue.value=e,"onUpdate:queueTimeoutMs":a[8]||=e=>We.value=e,"onUpdate:maxQueueSize":a[9]||=e=>Z.value=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`,`onUpdate:mode`])])]),_:1})]),_:1}),d(`div`,we,[o(r(M),{class:`col-span-3`},{default:h(()=>[o(r(P),{class:`pb-3`},{default:h(()=>[d(`div`,Te,[o(r(F),{class:`text-sm font-medium`},{default:h(()=>[...a[34]||=[y(`模型映射`,-1)]]),_:1}),o(r(A),{variant:`secondary`,class:`text-[10px]`},{default:h(()=>[y(n(r(U).length)+` 条`,1)]),_:1})])]),_:1}),o(r(N),null,{default:h(()=>[o(L,{entries:r(U),"provider-groups":r(Ge),"show-delete":!1,"show-add-form":!0,"onUpdate:targets":r(Qe),onToggleActive:r($e),onAdd:r(et),onRemove:r(tt)},null,8,[`entries`,`provider-groups`,`onUpdate:targets`,`onToggleActive`,`onAdd`,`onRemove`])]),_:1})]),_:1}),d(`div`,Ee,[o(r(M),null,{default:h(()=>[o(r(P),{class:`pb-3`},{default:h(()=>[d(`div`,De,[o(r(F),{class:`text-sm font-medium`},{default:h(()=>[...a[35]||=[y(`重试规则`,-1)]]),_:1}),o(r(A),{variant:`secondary`,class:`text-[10px]`},{default:h(()=>[y(n(r(q).size)+` 条已选`,1)]),_:1})])]),_:1}),o(r(N),null,{default:h(()=>[r(K).length===0?(b(),s(`div`,Oe,[r(W).length===0?(b(),s(t,{key:0},[y(` 所有推荐规则已创建,无需重复添加 `)],64)):(b(),s(t,{key:1},[y(` 选择供应商后显示推荐规则 `)],64))])):(b(),s(`div`,ke,[(b(!0),s(t,null,_(r(K),e=>(b(),s(`div`,{key:e.name,class:c([`flex items-start gap-2.5 rounded-md transition-colors`,e.exists?`opacity-60 cursor-default p-2`:`hover:bg-muted/50 cursor-pointer p-2`]),onClick:t=>!e.exists&&r(nt)(e.name,!r(q).has(e.name))},[o(r(O),{checked:e.exists?!0:r(q).has(e.name),disabled:e.exists,class:`mt-0.5`,"onUpdate:checked":t=>r(nt)(e.name,!!t),onClick:a[10]||=S(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),d(`div`,je,[d(`div`,Me,[d(`span`,Ne,n(e.name),1),e.exists?(b(),f(r(A),{key:0,variant:`secondary`,class:`text-[9px] px-1.5 py-0 leading-none bg-muted text-muted-foreground`},{default:h(()=>[...a[36]||=[y(`已配置`,-1)]]),_:1})):e.providers&&e.providers.length>0?(b(),f(r(A),{key:1,variant:`outline`,class:`text-[9px] px-1 py-0 leading-none`},{default:h(()=>[y(n(e.providers[0]),1)]),_:2},1024)):(b(),f(r(A),{key:2,variant:`secondary`,class:`text-[9px] px-1 py-0 leading-none`},{default:h(()=>[...a[37]||=[y(`通用`,-1)]]),_:1}))]),d(`div`,Pe,n(e.status_code)+` · `+n(e.retry_strategy===`fixed`?`固定`:`指数退避`)+` · `+n(e.retry_delay_ms/1e3)+`s · `+n(e.max_retries)+`次 `,1)])],10,Ae))),128))]))]),_:1})]),_:1}),o(r(M),null,{default:h(()=>[o(r(P),{class:`pb-3`},{default:h(()=>[o(r(F),{class:`text-sm font-medium`},{default:h(()=>[...a[38]||=[y(`转换规则`,-1)]]),_:1})]),_:1}),o(r(N),null,{default:h(()=>[o(R,{"inject-headers":r(Ke),"drop-fields":r(qe),"request-defaults":r(Je),"onUpdate:injectHeaders":a[11]||=e=>Ke.value=e,"onUpdate:dropFields":a[12]||=e=>qe.value=e,"onUpdate:requestDefaults":a[13]||=e=>Je.value=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])]),_:1})]),_:1})])])]),d(`div`,Fe,[d(`div`,Ie,[r(m)?(b(),s(t,{key:0},[o(r(A),{variant:`secondary`,class:`text-[10px]`},{default:h(()=>[y(n(ct.value),1)]),_:1}),a[39]||=d(`span`,{class:`text-muted-foreground/50`},`→`,-1),o(r(A),{variant:`secondary`,class:`text-[10px]`},{default:h(()=>[y(n(r(Y)?`自定义`:r(m)),1)]),_:1})],64)):i(``,!0),$.value>0?(b(),s(t,{key:1},[a[40]||=d(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),d(`span`,null,n($.value)+` 模型`,1)],64)):i(``,!0),r(U).length>0?(b(),s(t,{key:2},[a[41]||=d(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),d(`span`,null,n(r(U).length)+` 映射`,1)],64)):i(``,!0),r(q).size>0?(b(),s(t,{key:3},[a[42]||=d(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),d(`span`,null,n(r(q).size)+` 规则`,1)],64)):i(``,!0)]),d(`div`,Le,[o(r(v),{size:`sm`,variant:`outline`,onClick:dt},{default:h(()=>[...a[43]||=[y(`验证`,-1)]]),_:1}),o(r(v),{size:`sm`,disabled:r(Re),onClick:r(at)},{default:h(()=>[r(Re)?(b(),s(t,{key:0},[a[44]||=d(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[d(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),d(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),a[45]||=y(` 保存中 `,-1)],64)):(b(),s(t,{key:1},[y(`保存配置`)],64))]),_:1},8,[`disabled`,`onClick`])])])],64))}});export{K as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,Bt as n,Ft as r,G as i,H as a,J as o,K as s,Lt as ee,Ot as c,U as l,W as u,Y as d,at as f,bt as p,k as m,lt as h,n as g,q as _,st as v,z as te}from"./button-zud8Qspb.js";import{a as ne}from"./PopperContent-Bd_mpt_D.js";import{a as re,i as ie,n as ae,r as y,t as oe}from"./SelectValue-DRc1qira.js";import{t as b}from"./Checkbox-C2oSHNgP.js";import{n as se,t as ce}from"./CollapsibleContent-CdeCo0Ko.js";import{t as le}from"./CollapsibleTrigger-CMd4wTNY.js";import{a as x,n as S,o as C,r as ue,t as de}from"./dialog-Da8YFS7g.js";import{a as fe,c as pe,i as me,n as he,o as ge,r as _e,t as ve}from"./alert-dialog-gprnWn1b.js";import{t as w}from"./Label-73u_Os4X.js";import{t as T}from"./badge-CpT5q-jI.js";import{n as E}from"./lib-xfvPneK8.js";import{n as ye,t as D}from"./CardContent-F3K9pZNP.js";import{n as O,t as k}from"./CardTitle-13anASyk.js";import{t as A}from"./Input-RyuwzbNx.js";import{a as j,i as M,n as N,o as P,r as F,t as I}from"./TableHeader-BqYT-eO-.js";var be={class:`p-6`},xe={class:`flex items-center justify-between mb-4`},Se={class:`bg-card rounded-lg border overflow-hidden`},Ce={class:`flex items-center gap-2`},we={class:`text-xs text-muted-foreground`},Te={key:0,class:`text-sm text-destructive mt-1`},Ee={key:0,class:`text-sm text-destructive mt-1`},De={key:0,class:`text-sm text-destructive mt-1`},Oe={class:`grid grid-cols-2 gap-3`},L={key:0,class:`text-sm text-destructive mt-1`},ke={key:0,class:`text-sm text-destructive mt-1`},Ae={key:0},je={key:0,class:`text-sm text-destructive mt-1`},Me={class:`flex items-center gap-2`},Ne={class:`flex items-center justify-between`},Pe={class:`flex items-center justify-between mb-3`},Fe={class:`flex items-center gap-2`},R=100,z=599,B=100,V=100,H=d({__name:`RetryRules`,setup(d){let H={name:``,status_code:429,body_pattern:``,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4},U=c([]),W=c(!1),G=c(null),K=c(null),q=c({...H}),J=c({});function Ie(){let e={};q.value.name.trim()||(e.name=`请输入名称`);let t=Number(q.value.status_code);if((!Number.isInteger(t)||t<R||t>z)&&(e.status_code=`范围 ${R}-${z}`),!q.value.body_pattern.trim())e.body_pattern=`请输入匹配规则`;else try{new RegExp(q.value.body_pattern)}catch{e.body_pattern=`不是合法的正则表达式`}let n=Number(q.value.retry_delay_ms);(!n||n<B)&&(e.retry_delay_ms=`不能小于 ${B}ms`);let r=Number(q.value.max_retries);if((!Number.isInteger(r)||r<0||r>V)&&(e.max_retries=`范围 0-${V}`),q.value.retry_strategy===`exponential`){let t=Number(q.value.max_delay_ms);(!t||t<B)&&(e.max_delay_ms=`不能小于 ${B}ms`)}return J.value=e,Object.keys(e).length===0}async function Y(){try{U.value=await m.getRetryRules()}catch(t){console.error(`Failed to load retry rules:`,t),E.error(e(t,`加载数据失败`))}}function Le(){G.value=null,q.value={...H},J.value={},W.value=!0}function Re(e){G.value=e.id,q.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,is_active:!!e.is_active,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms},J.value={},W.value=!0}async function ze(){if(Ie())try{let e={name:q.value.name,status_code:Number(q.value.status_code),body_pattern:q.value.body_pattern,is_active:+!!q.value.is_active,retry_strategy:q.value.retry_strategy,retry_delay_ms:Number(q.value.retry_delay_ms),max_retries:Number(q.value.max_retries),max_delay_ms:Number(q.value.max_delay_ms)};G.value?await m.updateRetryRule(G.value,e):await m.createRetryRule(e),W.value=!1,await Y()}catch(t){console.error(`Failed to save retry rule:`,t),E.error(e(t,`保存规则失败`))}}function Be(e){K.value=e}async function Ve(){let t=K.value;if(t){K.value=null;try{await m.deleteRetryRule(t.id),await Y()}catch(t){console.error(`Failed to delete retry rule:`,t),E.error(e(t,`删除规则失败`))}}}let X=c(!1),Z=c([]),Q=c(new Set),He=a(()=>Z.value.length>0&&Q.value.size===Z.value.length);async function $(){try{Z.value=await m.recommended.getRetryRules()}catch{Z.value=[]}}function Ue(e){let t=new Set(Q.value);t.has(e)?t.delete(e):t.add(e),Q.value=t}function We(e){Q.value=e===!0?new Set(Z.value.map(e=>e.name)):new Set}async function Ge(){let e=Z.value.filter(e=>Q.value.has(e.name));for(let t of e)await m.createRetryRule({name:t.name,status_code:t.status_code,body_pattern:t.body_pattern,is_active:1,retry_strategy:t.retry_strategy,retry_delay_ms:t.retry_delay_ms,max_retries:t.max_retries,max_delay_ms:t.max_delay_ms});E.success(`已添加 ${e.length} 条规则`),Q.value=new Set,await Promise.allSettled([$(),Y()])}return f(()=>{Y(),$()}),(e,a)=>(v(),s(`div`,be,[l(`div`,xe,[a[19]||=l(`h2`,{class:`text-lg font-semibold text-foreground`},`重试规则`,-1),o(r(g),{onClick:Le,class:`flex items-center gap-1`},{default:p(()=>[...a[18]||=[l(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[l(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),_(` 添加规则 `,-1)]]),_:1})]),l(`div`,Se,[o(r(P),null,{default:p(()=>[o(r(I),null,{default:p(()=>[o(r(F),{class:`bg-muted`},{default:p(()=>[o(r(N),{class:`text-muted-foreground`},{default:p(()=>[...a[20]||=[_(`名称`,-1)]]),_:1}),o(r(N),{class:`text-muted-foreground`},{default:p(()=>[...a[21]||=[_(`HTTP 状态码`,-1)]]),_:1}),o(r(N),{class:`text-muted-foreground`},{default:p(()=>[...a[22]||=[_(`响应体匹配`,-1)]]),_:1}),o(r(N),{class:`text-muted-foreground`},{default:p(()=>[...a[23]||=[_(`重试策略`,-1)]]),_:1}),o(r(N),{class:`text-muted-foreground`},{default:p(()=>[...a[24]||=[_(`状态`,-1)]]),_:1}),o(r(N),{class:`text-right text-muted-foreground`},{default:p(()=>[...a[25]||=[_(`操作`,-1)]]),_:1})]),_:1})]),_:1}),o(r(j),null,{default:p(()=>[(v(!0),s(t,null,h(U.value,e=>(v(),u(r(F),{key:e.id},{default:p(()=>[o(r(M),{class:`font-mono text-sm`},{default:p(()=>[_(n(e.name),1)]),_:2},1024),o(r(M),null,{default:p(()=>[_(n(e.status_code),1)]),_:2},1024),o(r(M),{class:`font-mono text-xs text-muted-foreground`},{default:p(()=>[_(n(e.body_pattern),1)]),_:2},1024),o(r(M),null,{default:p(()=>[l(`div`,Ce,[o(r(T),{variant:`outline`},{default:p(()=>[_(n(e.retry_strategy===`fixed`?`固定间隔`:`指数退避`),1)]),_:2},1024),l(`span`,we,[_(n(e.retry_delay_ms/1e3)+`s · `+n(e.max_retries)+`次 `,1),e.retry_strategy===`exponential`?(v(),s(t,{key:0},[_(` · 上限`+n(e.max_delay_ms/1e3)+`s`,1)],64)):i(``,!0)])])]),_:2},1024),o(r(M),null,{default:p(()=>[o(r(T),{variant:e.is_active?`default`:`secondary`},{default:p(()=>[_(n(e.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),o(r(M),{class:`text-right`},{default:p(()=>[o(r(g),{variant:`ghost`,size:`sm`,onClick:t=>Re(e),class:`mr-2`},{default:p(()=>[...a[26]||=[_(`编辑`,-1)]]),_:1},8,[`onClick`]),o(r(g),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>Be(e)},{default:p(()=>[...a[27]||=[_(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),U.value.length===0?(v(),u(r(F),{key:0},{default:p(()=>[o(r(M),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:p(()=>[...a[28]||=[_(`暂无规则`,-1)]]),_:1})]),_:1})):i(``,!0)]),_:1})]),_:1})]),o(r(C),{open:W.value,"onUpdate:open":a[15]||=e=>W.value=e},{default:p(()=>[o(r(x),null,{default:p(()=>[o(r(S),null,{default:p(()=>[o(r(de),null,{default:p(()=>[_(n(G.value?`编辑规则`:`添加规则`),1)]),_:1})]),_:1}),l(`form`,{onSubmit:te(ze,[`prevent`]),class:`space-y-3`},[l(`div`,null,[o(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[29]||=[_(`名称`,-1)]]),_:1}),o(r(A),{modelValue:q.value.name,"onUpdate:modelValue":a[0]||=e=>q.value.name=e,type:`text`,required:``,onInput:a[1]||=e=>delete J.value.name},null,8,[`modelValue`]),J.value.name?(v(),s(`p`,Te,n(J.value.name),1)):i(``,!0)]),l(`div`,null,[o(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[30]||=[_(`HTTP 状态码`,-1)]]),_:1}),o(r(A),{modelValue:q.value.status_code,"onUpdate:modelValue":a[2]||=e=>q.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:a[3]||=e=>delete J.value.status_code},null,8,[`modelValue`]),J.value.status_code?(v(),s(`p`,Ee,n(J.value.status_code),1)):i(``,!0)]),l(`div`,null,[o(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[31]||=[_(`响应体匹配`,-1)]]),_:1}),o(r(A),{modelValue:q.value.body_pattern,"onUpdate:modelValue":a[4]||=e=>q.value.body_pattern=e,type:`text`,placeholder:`正则表达式,例如 .*rate_limit.*`,required:``,onInput:a[5]||=e=>delete J.value.body_pattern},null,8,[`modelValue`]),J.value.body_pattern?(v(),s(`p`,De,n(J.value.body_pattern),1)):i(``,!0)]),l(`div`,null,[o(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[32]||=[_(`重试策略`,-1)]]),_:1}),o(r(re),{modelValue:q.value.retry_strategy,"onUpdate:modelValue":a[6]||=e=>q.value.retry_strategy=e},{default:p(()=>[o(r(ae),{class:`w-full`},{default:p(()=>[o(r(oe),{placeholder:`选择策略`})]),_:1}),o(r(ie),null,{default:p(()=>[o(r(y),{value:`exponential`},{default:p(()=>[...a[33]||=[_(`指数退避`,-1)]]),_:1}),o(r(y),{value:`fixed`},{default:p(()=>[...a[34]||=[_(`固定间隔`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),l(`div`,Oe,[l(`div`,null,[o(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[_(n(q.value.retry_strategy===`fixed`?`间隔时间 (ms)`:`初始延迟 (ms)`),1)]),_:1}),o(r(A),{modelValue:q.value.retry_delay_ms,"onUpdate:modelValue":a[7]||=e=>q.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:a[8]||=e=>delete J.value.retry_delay_ms},null,8,[`modelValue`]),J.value.retry_delay_ms?(v(),s(`p`,L,n(J.value.retry_delay_ms),1)):i(``,!0)]),l(`div`,null,[o(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[35]||=[_(`最大重试次数`,-1)]]),_:1}),o(r(A),{modelValue:q.value.max_retries,"onUpdate:modelValue":a[9]||=e=>q.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:a[10]||=e=>delete J.value.max_retries},null,8,[`modelValue`]),J.value.max_retries?(v(),s(`p`,ke,n(J.value.max_retries),1)):i(``,!0)])]),q.value.retry_strategy===`exponential`?(v(),s(`div`,Ae,[o(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[36]||=[_(`延迟上限 (ms)`,-1)]]),_:1}),o(r(A),{modelValue:q.value.max_delay_ms,"onUpdate:modelValue":a[11]||=e=>q.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:a[12]||=e=>delete J.value.max_delay_ms},null,8,[`modelValue`]),J.value.max_delay_ms?(v(),s(`p`,je,n(J.value.max_delay_ms),1)):i(``,!0)])):i(``,!0),l(`div`,Me,[o(r(b),{modelValue:q.value.is_active,"onUpdate:modelValue":a[13]||=e=>q.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),o(r(w),{for:`rule-active`,class:`text-sm text-foreground`},{default:p(()=>[...a[37]||=[_(`启用`,-1)]]),_:1})]),o(r(ue),null,{default:p(()=>[o(r(g),{type:`button`,variant:`outline`,onClick:a[14]||=e=>W.value=!1},{default:p(()=>[...a[38]||=[_(`取消`,-1)]]),_:1}),o(r(g),{type:`submit`},{default:p(()=>[...a[39]||=[_(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),o(r(pe),{open:!!K.value,"onUpdate:open":a[16]||=e=>{e||(K.value=null)}},{default:p(()=>[o(r(fe),null,{default:p(()=>[o(r(he),null,{default:p(()=>[o(r(ve),null,{default:p(()=>[...a[40]||=[_(`确认删除`,-1)]]),_:1}),o(r(me),null,{default:p(()=>[_(`确定要删除规则「`+n(K.value?.name)+`」吗?`,1)]),_:1})]),_:1}),o(r(_e),null,{default:p(()=>[o(r(ge),null,{default:p(()=>[...a[41]||=[_(`取消`,-1)]]),_:1}),o(r(g),{variant:`destructive`,onClick:Ve},{default:p(()=>[...a[42]||=[_(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),Z.value.length>0?(v(),u(r(ye),{key:0,class:`mt-6`},{default:p(()=>[o(r(se),{open:X.value,"onUpdate:open":a[17]||=e=>X.value=e},{default:p(()=>[o(r(le),{"as-child":``},{default:p(()=>[o(r(O),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:p(()=>[l(`div`,Ne,[o(r(k),{class:`text-sm font-medium`},{default:p(()=>[_(`推荐重试规则 (`+n(Z.value.length)+`)`,1)]),_:1}),o(r(ne),{class:ee([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":X.value}])},null,8,[`class`])])]),_:1})]),_:1}),o(r(ce),null,{default:p(()=>[o(r(D),null,{default:p(()=>[l(`div`,Pe,[l(`div`,Fe,[o(r(b),{"model-value":He.value,"onUpdate:modelValue":We},null,8,[`model-value`]),a[43]||=l(`span`,{class:`text-sm text-muted-foreground`},`全选`,-1)]),o(r(g),{size:`sm`,disabled:Q.value.size===0,onClick:Ge},{default:p(()=>[_(` 添加选中 (`+n(Q.value.size)+`) `,1)]),_:1},8,[`disabled`])]),o(r(P),null,{default:p(()=>[o(r(I),null,{default:p(()=>[o(r(F),null,{default:p(()=>[o(r(N),{class:`w-10`}),o(r(N),null,{default:p(()=>[...a[44]||=[_(`名称`,-1)]]),_:1}),o(r(N),null,{default:p(()=>[...a[45]||=[_(`状态码`,-1)]]),_:1}),o(r(N),null,{default:p(()=>[...a[46]||=[_(`匹配模式`,-1)]]),_:1}),o(r(N),null,{default:p(()=>[...a[47]||=[_(`策略`,-1)]]),_:1})]),_:1})]),_:1}),o(r(j),null,{default:p(()=>[(v(!0),s(t,null,h(Z.value,e=>(v(),u(r(F),{key:e.name},{default:p(()=>[o(r(M),null,{default:p(()=>[o(r(b),{"model-value":Q.value.has(e.name),"onUpdate:modelValue":()=>Ue(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),o(r(M),null,{default:p(()=>[_(n(e.name),1)]),_:2},1024),o(r(M),null,{default:p(()=>[_(n(e.status_code),1)]),_:2},1024),o(r(M),{class:`font-mono text-xs max-w-[200px] truncate`},{default:p(()=>[_(n(e.body_pattern),1)]),_:2},1024),o(r(M),null,{default:p(()=>[_(n(e.retry_strategy===`fixed`?`固定间隔`:`指数退避`),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):i(``,!0)]))}});export{H as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,Bt as n,Ft as r,G as i,J as a,K as o,Lt as s,Ot as c,U as l,W as u,Y as d,at as f,bt as p,k as m,lt as h,n as g,q as _,st as v,z as y}from"./button-zud8Qspb.js";import{t as b}from"./format-Dln15Luw.js";import{t as x}from"./Checkbox-C2oSHNgP.js";import{a as S,n as ee,o as te,r as ne,t as re}from"./dialog-Da8YFS7g.js";import{a as ie,c as ae,i as oe,n as se,o as ce,r as le,t as C}from"./alert-dialog-gprnWn1b.js";import{t as w}from"./Label-73u_Os4X.js";import{t as T}from"./badge-CpT5q-jI.js";import{n as E}from"./lib-xfvPneK8.js";import{t as D}from"./Input-RyuwzbNx.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./TableHeader-BqYT-eO-.js";import{t as P}from"./useClipboard-C2i7YvJ-.js";var F={class:`p-6`},I={class:`flex items-center justify-between mb-4`},L={class:`bg-card rounded-lg border overflow-hidden`},R={class:`flex items-center gap-1`},z={class:`font-mono text-xs text-muted-foreground`},B={key:0,class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},V={key:1,class:`w-3.5 h-3.5 text-success`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},H={key:0,class:`flex flex-wrap gap-1`},ue={key:0,class:`text-sm text-destructive mt-1`},U={class:`border rounded-md p-3 max-h-48 overflow-y-auto space-y-2 bg-muted`},de={class:`font-mono text-xs`},fe={key:0,class:`text-muted-foreground text-sm text-center py-2`},pe={key:0,class:`flex flex-wrap gap-1 mt-2`},me={key:0,class:`flex items-center gap-2`},W=d({__name:`RouterKeys`,setup(d){let W={name:``,allowed_models:[],is_active:!0},G=c([]),K=c([]),q=c(!1),J=c(null),Y=c(null),X=c({...W,allowed_models:[]}),Z=c({}),{copied:he,copy:ge}=P();function _e(e){return e?e.slice(0,7)+`*`.repeat(7):``}function ve(e){return b(e)}function ye(e){let t=X.value.allowed_models.indexOf(e);t>=0&&X.value.allowed_models.splice(t,1)}async function Q(){try{let[e,t]=await Promise.allSettled([m.getRouterKeys(),m.getAvailableModels()]);e.status===`fulfilled`&&(G.value=e.value),t.status===`fulfilled`&&(K.value=t.value)}catch(t){console.error(`Failed to load data:`,t),E.error(e(t,`加载数据失败`))}}function be(){J.value=null,X.value={...W,allowed_models:[]},Z.value={},q.value=!0}function $(e){J.value=e.id,X.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},Z.value={},q.value=!0}function xe(){return{name:X.value.name,allowed_models:X.value.allowed_models.length>0?X.value.allowed_models:null,is_active:+!!X.value.is_active}}function Se(){return{name:X.value.name,allowed_models:X.value.allowed_models.length>0?X.value.allowed_models:null}}async function Ce(){let t={};if(X.value.name.trim()||(t.name=`请输入名称`),Z.value=t,!(Object.keys(t).length>0))try{J.value?await m.updateRouterKey(J.value,xe()):await m.createRouterKey(Se()),q.value=!1,await Q()}catch(t){console.error(`Failed to save router key:`,t),E.error(e(t,`保存密钥失败`))}}function we(e){Y.value=e}async function Te(){let t=Y.value;if(t){Y.value=null;try{await m.deleteRouterKey(t.id),await Q()}catch(t){console.error(`Failed to delete router key:`,t),E.error(e(t,`删除密钥失败`))}}}return f(Q),(e,c)=>(v(),o(`div`,F,[l(`div`,I,[c[7]||=l(`h2`,{class:`text-lg font-semibold text-foreground`},`API 密钥`,-1),a(r(g),{onClick:be,class:`flex items-center gap-1`},{default:p(()=>[...c[6]||=[l(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[l(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),_(` 创建密钥 `,-1)]]),_:1})]),l(`div`,L,[a(r(j),null,{default:p(()=>[a(r(N),null,{default:p(()=>[a(r(M),{class:`bg-muted`},{default:p(()=>[a(r(A),{class:`text-muted-foreground`},{default:p(()=>[...c[8]||=[_(`名称`,-1)]]),_:1}),a(r(A),{class:`text-muted-foreground`},{default:p(()=>[...c[9]||=[_(`密钥`,-1)]]),_:1}),a(r(A),{class:`text-muted-foreground`},{default:p(()=>[...c[10]||=[_(`白名单模型`,-1)]]),_:1}),a(r(A),{class:`text-muted-foreground`},{default:p(()=>[...c[11]||=[_(`状态`,-1)]]),_:1}),a(r(A),{class:`text-muted-foreground`},{default:p(()=>[...c[12]||=[_(`创建时间`,-1)]]),_:1}),a(r(A),{class:`text-right text-muted-foreground`},{default:p(()=>[...c[13]||=[_(`操作`,-1)]]),_:1})]),_:1})]),_:1}),a(r(O),null,{default:p(()=>[(v(!0),o(t,null,h(G.value,e=>(v(),u(r(M),{key:e.id,class:s({"opacity-60":!e.is_active})},{default:p(()=>[a(r(k),{class:`font-medium`},{default:p(()=>[_(n(e.name),1)]),_:2},1024),a(r(k),null,{default:p(()=>[l(`div`,R,[l(`span`,z,n(_e(e.key)),1),a(r(g),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>e.key&&r(ge)(e.key)},{default:p(()=>[r(he)?(v(),o(`svg`,V,[...c[15]||=[l(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 13l4 4L19 7`},null,-1)]])):(v(),o(`svg`,B,[...c[14]||=[l(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z`},null,-1)]]))]),_:1},8,[`onClick`])])]),_:2},1024),a(r(k),null,{default:p(()=>[e.allowed_models&&e.allowed_models.length>0?(v(),o(`div`,H,[(v(!0),o(t,null,h(e.allowed_models,e=>(v(),u(r(T),{key:e,variant:`outline`,class:`text-xs`},{default:p(()=>[_(n(e),1)]),_:2},1024))),128))])):(v(),u(r(T),{key:1,variant:`secondary`},{default:p(()=>[...c[16]||=[_(`全部模型`,-1)]]),_:1}))]),_:2},1024),a(r(k),null,{default:p(()=>[a(r(T),{variant:e.is_active?`default`:`secondary`},{default:p(()=>[_(n(e.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),a(r(k),{class:`text-muted-foreground text-sm`},{default:p(()=>[_(n(ve(e.created_at)),1)]),_:2},1024),a(r(k),{class:`text-right`},{default:p(()=>[a(r(g),{variant:`ghost`,size:`sm`,onClick:t=>$(e),class:`text-muted-foreground hover:text-primary mr-2`},{default:p(()=>[...c[17]||=[_(`编辑`,-1)]]),_:1},8,[`onClick`]),a(r(g),{variant:`ghost`,size:`sm`,onClick:t=>we(e),class:`text-muted-foreground hover:text-destructive`},{default:p(()=>[...c[18]||=[_(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),G.value.length===0?(v(),u(r(M),{key:0},{default:p(()=>[a(r(k),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:p(()=>[...c[19]||=[_(`暂无密钥`,-1)]]),_:1})]),_:1})):i(``,!0)]),_:1})]),_:1})]),a(r(te),{open:q.value,"onUpdate:open":c[4]||=e=>q.value=e},{default:p(()=>[a(r(S),{class:`sm:max-w-lg`},{default:p(()=>[a(r(ee),null,{default:p(()=>[a(r(re),null,{default:p(()=>[_(n(J.value?`编辑密钥`:`创建密钥`),1)]),_:1})]),_:1}),l(`form`,{onSubmit:y(Ce,[`prevent`]),class:`space-y-4`},[l(`div`,null,[a(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...c[20]||=[_(`名称`,-1)]]),_:1}),a(r(D),{modelValue:X.value.name,"onUpdate:modelValue":c[0]||=e=>X.value.name=e,type:`text`,required:``,placeholder:`例如:生产环境`,onInput:c[1]||=e=>delete Z.value.name},null,8,[`modelValue`]),Z.value.name?(v(),o(`p`,ue,n(Z.value.name),1)):i(``,!0)]),l(`div`,null,[a(r(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...c[21]||=[_(`白名单模型`,-1)]]),_:1}),c[23]||=l(`div`,{class:`text-xs text-muted-foreground mb-2`},`不选择 = 允许所有模型`,-1),l(`div`,U,[(v(!0),o(t,null,h(K.value,e=>(v(),u(r(w),{key:e,class:`flex items-center gap-2 cursor-pointer text-sm font-normal`},{default:p(()=>[a(r(x),{"model-value":X.value.allowed_models.includes(e),"onUpdate:modelValue":t=>{if(t&&t!==`indeterminate`&&!X.value.allowed_models.includes(e))X.value.allowed_models.push(e);else if(!t){let t=X.value.allowed_models.indexOf(e);t>=0&&X.value.allowed_models.splice(t,1)}}},null,8,[`model-value`,`onUpdate:modelValue`]),l(`span`,de,n(e),1)]),_:2},1024))),128)),K.value.length===0?(v(),o(`div`,fe,` 暂无可用模型,请先配置模型映射 `)):i(``,!0)]),X.value.allowed_models.length>0?(v(),o(`div`,pe,[(v(!0),o(t,null,h(X.value.allowed_models,e=>(v(),u(r(T),{key:e,variant:`outline`,class:`text-xs`},{default:p(()=>[_(n(e)+` `,1),a(r(g),{type:`button`,variant:`ghost`,size:`sm`,class:`ml-1 h-4 w-4 p-0 text-muted-foreground hover:text-destructive`,onClick:t=>ye(e)},{default:p(()=>[...c[22]||=[_(`×`,-1)]]),_:1},8,[`onClick`])]),_:2},1024))),128))])):i(``,!0)]),J.value?(v(),o(`div`,me,[a(r(x),{modelValue:X.value.is_active,"onUpdate:modelValue":c[2]||=e=>X.value.is_active=e,id:`key-active`},null,8,[`modelValue`]),a(r(w),{for:`key-active`,class:`text-sm text-foreground`},{default:p(()=>[...c[24]||=[_(`启用`,-1)]]),_:1})])):i(``,!0),a(r(ne),null,{default:p(()=>[a(r(g),{type:`button`,variant:`outline`,onClick:c[3]||=e=>q.value=!1},{default:p(()=>[...c[25]||=[_(`取消`,-1)]]),_:1}),a(r(g),{type:`submit`},{default:p(()=>[...c[26]||=[_(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),a(r(ae),{open:!!Y.value,"onUpdate:open":c[5]||=e=>{e||(Y.value=null)}},{default:p(()=>[a(r(ie),null,{default:p(()=>[a(r(se),null,{default:p(()=>[a(r(C),null,{default:p(()=>[...c[27]||=[_(`确认删除`,-1)]]),_:1}),a(r(oe),null,{default:p(()=>[_(`确定要删除密钥「`+n(Y.value?.name)+`」吗?使用此密钥的所有请求将被拒绝,此操作不可撤销。`,1)]),_:1})]),_:1}),a(r(le),null,{default:p(()=>[a(r(ce),null,{default:p(()=>[...c[28]||=[_(`取消`,-1)]]),_:1}),a(r(g),{variant:`destructive`,onClick:Te},{default:p(()=>[...c[29]||=[_(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{W as default};
|