llm-simple-router 1.0.0 → 1.0.2
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/dist/admin/retry-rules.js +1 -1
- package/dist/index.js +5 -0
- package/dist/middleware/admin-auth.js +29 -0
- package/frontend-dist/assets/{AuthLayout-De6aaM85.js → AuthLayout-Dkh-09Aq.js} +1 -1
- package/frontend-dist/assets/{Card-DneJRQNa.js → Card-OdDwacfm.js} +1 -1
- package/frontend-dist/assets/{CardContent-BYiS-OLu.js → CardContent-B4x52Duv.js} +1 -1
- package/frontend-dist/assets/{CardTitle-8-tAyE6S.js → CardTitle-DtDJrCKi.js} +1 -1
- package/frontend-dist/assets/{CascadingModelSelect-CVnBWxd0.js → CascadingModelSelect-C24zXMec.js} +1 -1
- package/frontend-dist/assets/{Checkbox-lPPFNh3g.js → Checkbox-BVu9v787.js} +1 -1
- package/frontend-dist/assets/{CollapsibleContent-D0WBasYY.js → CollapsibleContent-C4J8A1Ja.js} +1 -1
- package/frontend-dist/assets/{CollapsibleTrigger-DXlDbowG.js → CollapsibleTrigger-xl22mqUU.js} +1 -1
- package/frontend-dist/assets/{ConcurrencyControl-D4Dy75mf.js → ConcurrencyControl-B4mp9THM.js} +1 -1
- package/frontend-dist/assets/{Dashboard-Blpliw39.js → Dashboard-CctyCSwX.js} +1 -1
- package/frontend-dist/assets/{Input-DXSPfwpG.js → Input-BpmvwfP9.js} +1 -1
- package/frontend-dist/assets/{Label-CS89uu8N.js → Label-BhSGa_Tn.js} +1 -1
- package/frontend-dist/assets/{Login-B4wMhZVq.js → Login-BiAgsGJ2.js} +1 -1
- package/frontend-dist/assets/{Logs-DBG1OkfO.js → Logs-B3MOY5K8.js} +1 -1
- package/frontend-dist/assets/{ModelMappings-BL0h2iuz.js → ModelMappings-DaBqO3P4.js} +1 -1
- package/frontend-dist/assets/{Monitor-RJxfMjTf.js → Monitor-KfN48PKH.js} +1 -1
- package/frontend-dist/assets/Providers-nfdA-OUk.js +1 -0
- package/frontend-dist/assets/{ProxyEnhancement-CrivWqo3.js → ProxyEnhancement-BpnCqymD.js} +1 -1
- package/frontend-dist/assets/{QuickSetup-DMyFXs-z.js → QuickSetup-SZP_nB_J.js} +1 -1
- package/frontend-dist/assets/{RetryRules-Y05oXut1.js → RetryRules-C804Zx8z.js} +1 -1
- package/frontend-dist/assets/{RouterKeys-wCF4H7ed.js → RouterKeys-B3j42rkK.js} +1 -1
- package/frontend-dist/assets/{RovingFocusItem-BPCx-7_e.js → RovingFocusItem-G3DvDUr1.js} +1 -1
- package/frontend-dist/assets/{Schedules-Ilqnnyoo.js → Schedules-GZPRQV_6.js} +1 -1
- package/frontend-dist/assets/{Settings-CTy9ACya.js → Settings-DGW5M9RJ.js} +1 -1
- package/frontend-dist/assets/{Setup-jc3A_Hh3.js → Setup-Cil55gRl.js} +1 -1
- package/frontend-dist/assets/{Skeleton-CvU2Fu1Y.js → Skeleton-DpZH_Vpn.js} +1 -1
- package/frontend-dist/assets/{Switch-BNj81rHC.js → Switch-BG35vWEq.js} +1 -1
- package/frontend-dist/assets/{TableHeader-D9Qt4Aoe.js → TableHeader-_3-h6u2u.js} +1 -1
- package/frontend-dist/assets/{TabsTrigger-kt5pOTBd.js → TabsTrigger-yGl-ocCE.js} +1 -1
- package/frontend-dist/assets/{TooltipTrigger-ctVYouBP.js → TooltipTrigger-BIrArn-i.js} +1 -1
- package/frontend-dist/assets/{UnifiedRequestDialog-Uq9NY1XD.js → UnifiedRequestDialog-CbBhHfpW.js} +1 -1
- package/frontend-dist/assets/{VisuallyHiddenInput-TvNkj489.js → VisuallyHiddenInput-CWfsI5Fo.js} +1 -1
- package/frontend-dist/assets/arrow-down-gtf48PWs.js +1 -0
- package/frontend-dist/assets/{badge-BrOplN8n.js → badge-DfF7rlis.js} +1 -1
- package/frontend-dist/assets/{button-BW3lV6lw.js → button-Csj7G8uP.js} +2 -2
- package/frontend-dist/assets/chevron-right-FH7bCAPL.js +1 -0
- package/frontend-dist/assets/dialog-DSOZukxC.js +1 -0
- package/frontend-dist/assets/{image-CefgMOpc.js → image-chvQmEc7.js} +1 -1
- package/frontend-dist/assets/index-BDhTGcco.css +1 -0
- package/frontend-dist/assets/{index-CkhT3okn.js → index-C-o8k1O4.js} +2 -2
- package/frontend-dist/assets/{model-patches-CHW7tS49.js → model-patches-BDzdCFuY.js} +1 -1
- package/frontend-dist/assets/{pencil-x457kif0.js → pencil-C2mVN-qO.js} +1 -1
- package/frontend-dist/assets/plus-CtQvHS_r.js +1 -0
- package/frontend-dist/assets/search-BKxoG0xp.js +1 -0
- package/frontend-dist/assets/{sparkles-BjqFR567.js → sparkles-CciAvMR8.js} +1 -1
- package/frontend-dist/assets/{transform-domain-BxLBDHCJ.js → transform-domain-Dr6XoDiD.js} +1 -1
- package/frontend-dist/assets/{trash-2-BPhI0Tuv.js → trash-2-BL7xrIYJ.js} +1 -1
- package/frontend-dist/assets/{useClipboard-Du9vZK8q.js → useClipboard-DGrGSktu.js} +1 -1
- package/frontend-dist/assets/{useLogRetention-2fY-Rtfl.js → useLogRetention-CRlHMqOD.js} +1 -1
- package/frontend-dist/assets/{useProviderGroups-C8ZizGfL.js → useProviderGroups-Cgf0xLYZ.js} +1 -1
- package/frontend-dist/index.html +3 -3
- package/package.json +2 -2
- package/frontend-dist/assets/Providers-BkhHz54V.js +0 -1
- package/frontend-dist/assets/arrow-down-DvUiNydP.js +0 -1
- package/frontend-dist/assets/chevron-right-CmJy_8oF.js +0 -1
- package/frontend-dist/assets/dialog-DI8w_067.js +0 -1
- package/frontend-dist/assets/index-BcYqgllr.css +0 -1
- package/frontend-dist/assets/plus-CorbospU.js +0 -1
- package/frontend-dist/assets/search-EayCiSei.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Gt as n,H as r,J as i,Lt as a,Q as o,X as s,Xt as c,Yt as l,Z as u,dt as d,et as f,gt as p,i as m,it as h,k as g,kt as _,mt as v,n as y,nt as b,o as x,pt as S,q as C,qt as w,r as T,rt as E,vt as D,x as O,yt as k}from"./button-BW3lV6lw.js";import{t as ee}from"./plus-CorbospU.js";import{t as A}from"./Checkbox-lPPFNh3g.js";import{n as te,r as ne,t as re}from"./TooltipTrigger-ctVYouBP.js";import{n as ie,t as ae}from"./CollapsibleContent-D0WBasYY.js";import{t as oe}from"./CollapsibleTrigger-DXlDbowG.js";import{a as se,n as ce,o as le,r as ue,t as de}from"./dialog-DI8w_067.js";import{t as j}from"./Label-CS89uu8N.js";import{a as fe,i as M,n as pe,o as N,r as me,t as P}from"./TabsTrigger-kt5pOTBd.js";import{_ as F,a as I,c as he,d as ge,dt as _e,g as L,h as R,ht as z,l as ve,m as B,o as ye,p as be,s as xe,st as Se,t as Ce,u as we,v as V,z as H}from"./index-CkhT3okn.js";import{t as U}from"./badge-BrOplN8n.js";import{t as W}from"./Card-DneJRQNa.js";import{t as G}from"./CardContent-BYiS-OLu.js";import{n as K,t as q}from"./CardTitle-8-tAyE6S.js";import{t as J}from"./Input-DXSPfwpG.js";import{a as Y,i as X,n as Z,o as Te,r as Q,t as Ee}from"./TableHeader-D9Qt4Aoe.js";var De=h({__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(t){let r=t,{forwardRef:i}=x(),c=N(),u=s(()=>fe(c.baseId,r.value)),d=s(()=>M(c.baseId,r.value)),f=s(()=>r.value===c.modelValue.value),h=a(f.value);return v(()=>{c.registerContent(r.value),requestAnimationFrame(()=>{h.value=!1})}),S(()=>{c.unregisterContent(r.value)}),(t,r)=>(p(),o(n(H),{present:t.forceMount||f.value,"force-mount":``},{default:_(({present:r})=>[E(n(m),{id:d.value,ref:n(i),"as-child":t.asChild,as:t.as,role:`tabpanel`,"data-state":f.value?`active`:`inactive`,"data-orientation":n(c).orientation.value,"aria-labelledby":u.value,hidden:!r,tabindex:`0`,style:l({animationDuration:h.value?`0s`:void 0})},{default:_(()=>[!n(c).unmountOnHide.value||r?k(t.$slots,`default`,{key:0}):e(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),$=h({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,r=O(t,`class`);return(e,i)=>(p(),o(n(De),d({"data-slot":`tabs-content`,class:n(T)(`text-sm flex-1 outline-none`,t.class)},n(r)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16,[`class`]))}}),Oe={name:``,status_code:429,body_pattern:``,provider_id:`__all__`,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4,matchMode:`regex`,bodyMatchers:[]};function ke(e){if(!e)return[];try{return JSON.parse(e)}catch{return[]}}function Ae(e){let t=e.filter(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()));return t.length>0?JSON.stringify(t):null}function je(e){return e?`json`:`regex`}function Me(e,t){let n={};e.name.trim()||(n.name=t(`retryRules.validation.nameRequired`));let r=Number(e.status_code);if((!Number.isInteger(r)||r<100||r>599)&&(n.status_code=t(`retryRules.validation.statusCodeRange`,{min:100,max:599})),e.matchMode===`regex`)if(!e.body_pattern.trim())n.body_pattern=t(`retryRules.validation.bodyPatternRequired`);else try{new RegExp(e.body_pattern)}catch{n.body_pattern=t(`retryRules.validation.bodyPatternInvalid`)}else e.bodyMatchers.some(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()))||(n.body_matchers=t(`retryRules.validation.bodyPatternRequired`));let i=Number(e.retry_delay_ms);(!i||i<100)&&(n.retry_delay_ms=t(`retryRules.validation.delayMin`,{min:100}));let a=Number(e.max_retries);if((!Number.isInteger(a)||a<0||a>100)&&(n.max_retries=t(`retryRules.validation.retriesRange`,{max:100})),e.retry_strategy===`exponential`){let r=Number(e.max_delay_ms);(!r||r<100)&&(n.max_delay_ms=t(`retryRules.validation.delayMin`,{min:100}))}return n}function Ne(){return{...Oe,bodyMatchers:[]}}function Pe(e,t,n){if(e){let t=ke(e);return t.length>0?t.map(e=>{let t=n[e.operator]??e.operator;return e.operator===`exists`?`${e.path} ${t}`:`${e.path} ${t} "${e.value}"`}).join(`, `):e}return t??``}var Fe={class:`flex items-center justify-between`},Ie={class:`flex items-center justify-between mb-3`},Le={class:`flex items-center gap-2`},Re={class:`text-sm text-muted-foreground`},ze=h({__name:`RecommendedRules`,props:{rules:{}},emits:[`added`],setup(t,{emit:l}){let{t:d}=r(),m=t,h=l,v=a(!1),x=a(new Set),S=s(()=>m.rules.length>0&&x.value.size===m.rules.length);function C(e){let t=new Set(x.value);t.has(e)?t.delete(e):t.add(e),x.value=t}function T(e){x.value=e===!0?new Set(m.rules.map(e=>e.name)):new Set}async function O(){let e=m.rules.filter(e=>x.value.has(e.name));for(let t of e)await g.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});I.success(d(`retryRules.messages.addedCount`,{count:e.length})),x.value=new Set,h(`added`)}return(r,a)=>t.rules.length>0?(p(),o(n(W),{key:0,class:`mt-6`},{default:_(()=>[E(n(ie),{open:v.value,"onUpdate:open":a[0]||=e=>v.value=e},{default:_(()=>[E(n(oe),{"as-child":``},{default:_(()=>[E(n(K),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:_(()=>[u(`div`,Fe,[E(n(q),{class:`text-sm font-medium`},{default:_(()=>[b(c(n(d)(`retryRules.recommended.title`,{count:t.rules.length})),1)]),_:1}),E(n(z),{class:w([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":v.value}])},null,8,[`class`])])]),_:1})]),_:1}),E(n(ae),null,{default:_(()=>[E(n(G),null,{default:_(()=>[u(`div`,Ie,[u(`div`,Le,[E(n(A),{"model-value":S.value,"onUpdate:modelValue":T},null,8,[`model-value`]),u(`span`,Re,c(n(d)(`retryRules.recommended.selectAll`)),1)]),E(n(y),{size:`sm`,disabled:x.value.size===0,onClick:O},{default:_(()=>[b(c(n(d)(`retryRules.recommended.addSelected`,{count:x.value.size})),1)]),_:1},8,[`disabled`])]),E(n(Te),null,{default:_(()=>[E(n(Ee),null,{default:_(()=>[E(n(Q),null,{default:_(()=>[E(n(Z),{class:`w-10`}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.name`)),1)]),_:1}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),E(n(Y),null,{default:_(()=>[(p(!0),f(i,null,D(t.rules,e=>(p(),o(n(Q),{key:e.name},{default:_(()=>[E(n(X),null,{default:_(()=>[E(n(A),{"model-value":x.value.has(e.name),"onUpdate:modelValue":()=>C(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(e.name),1)]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(e.status_code),1)]),_:2},1024),E(n(X),{class:`font-mono text-xs max-w-[200px] truncate`},{default:_(()=>[b(c(e.body_pattern),1)]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(e.retry_strategy===`fixed`?n(d)(`retryRules.strategy.fixed`):n(d)(`retryRules.strategy.exponential`)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):e(``,!0)}}),Be={class:`page`},Ve={key:0,class:`flex items-center justify-center py-12 text-muted-foreground`},He={class:`flex items-center justify-between mb-4`},Ue={class:`text-lg font-semibold text-foreground`},We={class:`truncate block`},Ge={key:1},Ke={class:`flex items-center gap-2`},qe={class:`text-xs text-muted-foreground`},Je={key:0,class:`text-sm text-destructive mt-1`},Ye={key:0,class:`text-sm text-destructive mt-1`},Xe={class:`font-medium mb-1`},Ze={key:0,class:`text-sm text-destructive mt-1`},Qe={class:`space-y-2`},$e={key:0,class:`text-sm text-destructive mt-1`},et={class:`grid grid-cols-2 gap-3`},tt={key:0,class:`text-sm text-destructive mt-1`},nt={key:0,class:`text-sm text-destructive mt-1`},rt={key:0},it={key:0,class:`text-sm text-destructive mt-1`},at={class:`flex items-center gap-2`},ot=h({__name:`RetryRules`,setup(s){let{t:l}=r(),d=a(!1),m=a([]),h=a([]),x=a(!1),S=a(null),w=a(null),T=a(Ne()),O=a({}),k=a([]),ie={equals:l(`retryRules.operatorEquals`),contains:l(`retryRules.operatorContains`),exists:l(`retryRules.operatorExists`)};function ae(e){let t=h.value.find(t=>t.id===e);return t?t.name:e}function oe(e){return Pe(e.body_matchers,e.body_pattern,ie)}function fe(){T.value.bodyMatchers.push({path:``,operator:`contains`,value:``})}function M(e){T.value.bodyMatchers.splice(e,1)}function N(){let e=Me(T.value,l);return O.value=e,Object.keys(e).length===0}async function z(){try{m.value=await g.getRetryRules()}catch(e){console.error(`RetryRules.loadData:`,e),I.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function H(){try{h.value=await g.getProviders()}catch(e){console.error(`RetryRules.loadProviders:`,e),I.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function G(){try{k.value=await g.recommended.getRetryRules()}catch(e){console.error(`RetryRules.loadRecommended:`,e),k.value=[]}}function K(){S.value=null,T.value=Ne(),O.value={},x.value=!0}function q(e){S.value=e.id,T.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,provider_id:e.provider_id??`__all__`,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,matchMode:je(e.body_matchers),bodyMatchers:ke(e.body_matchers)},O.value={},x.value=!0}async function De(){if(N())try{let e=T.value.matchMode===`json`?Ae(T.value.bodyMatchers):null,t={name:T.value.name,status_code:Number(T.value.status_code),body_pattern:T.value.body_pattern,provider_id:T.value.provider_id===`__all__`?null:T.value.provider_id,body_matchers:e,is_active:+!!T.value.is_active,retry_strategy:T.value.retry_strategy,retry_delay_ms:Number(T.value.retry_delay_ms),max_retries:Number(T.value.max_retries),max_delay_ms:Number(T.value.max_delay_ms)};S.value?await g.updateRetryRule(S.value,t):await g.createRetryRule(t),x.value=!1,await z()}catch(e){console.error(`RetryRules.handleSave:`,e),I.error(t(e,l(`retryRules.messages.saveFailed`)))}}function Oe(e){w.value=e}async function Fe(){let e=w.value;if(e){w.value=null;try{await g.deleteRetryRule(e.id),await z()}catch(e){console.error(`RetryRules.handleDelete:`,e),I.error(t(e,l(`retryRules.messages.deleteFailed`)))}}}async function Ie(){await Promise.allSettled([G(),z()])}return v(async()=>{d.value=!0,await Promise.allSettled([z(),G(),H()]),d.value=!1}),(t,r)=>(p(),f(`div`,Be,[d.value?(p(),f(`div`,Ve,[E(n(_e),{class:`w-5 h-5 animate-spin mr-2`}),b(` `+c(n(l)(`common.loading`)),1)])):e(``,!0),d.value?e(``,!0):(p(),f(i,{key:1},[u(`div`,He,[u(`h2`,Ue,c(n(l)(`retryRules.title`)),1),E(n(y),{onClick:K,class:`flex items-center gap-1`},{default:_(()=>[E(n(ee),{class:`w-4 h-4`}),b(` `+c(n(l)(`retryRules.addRule`)),1)]),_:1})]),E(n(W),{flush:``},{default:_(()=>[E(n(Te),{class:`[&_td]:px-4 [&_th]:px-4`},{default:_(()=>[E(n(Ee),null,{default:_(()=>[E(n(Q),{class:`bg-muted`},{default:_(()=>[E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.name`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.provider`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.status`)),1)]),_:1}),E(n(Z),{class:`text-right text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),E(n(Y),null,{default:_(()=>[(p(!0),f(i,null,D(m.value,t=>(p(),o(n(Q),{key:t.id},{default:_(()=>[E(n(X),{class:`font-mono text-sm`},{default:_(()=>[b(c(t.name),1)]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(t.status_code),1)]),_:2},1024),E(n(X),{class:`font-mono text-xs text-muted-foreground max-w-[200px]`},{default:_(()=>[u(`span`,We,c(oe(t)),1)]),_:2},1024),E(n(X),null,{default:_(()=>[t.provider_id?(p(),f(`span`,Ge,c(ae(t.provider_id)),1)):(p(),o(n(U),{key:0,variant:`secondary`},{default:_(()=>[b(c(n(l)(`retryRules.globalBadge`)),1)]),_:1}))]),_:2},1024),E(n(X),null,{default:_(()=>[u(`div`,Ke,[E(n(U),{variant:`outline`},{default:_(()=>[b(c(t.retry_strategy===`fixed`?n(l)(`retryRules.strategy.fixed`):n(l)(`retryRules.strategy.exponential`)),1)]),_:2},1024),u(`span`,qe,[b(c(t.retry_delay_ms/1e3)+`s · `+c(n(l)(`retryRules.times`,{count:t.max_retries}))+` `,1),t.retry_strategy===`exponential`?(p(),f(i,{key:0},[b(` · `+c(n(l)(`retryRules.upperLimit`,{value:t.max_delay_ms/1e3})),1)],64)):e(``,!0)])])]),_:2},1024),E(n(X),null,{default:_(()=>[E(n(U),{variant:t.is_active?`default`:`secondary`},{default:_(()=>[b(c(t.is_active?n(l)(`common.enabled`):n(l)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),E(n(X),{class:`text-right`},{default:_(()=>[E(n(y),{variant:`ghost`,size:`sm`,onClick:e=>q(t),class:`mr-2`},{default:_(()=>[b(c(n(l)(`common.edit`)),1)]),_:1},8,[`onClick`]),E(n(y),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>Oe(t)},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),m.value.length===0?(p(),o(n(Q),{key:0},{default:_(()=>[E(n(X),{colspan:`7`,class:`text-center text-muted-foreground py-8`},{default:_(()=>[b(c(n(l)(`retryRules.noRules`)),1)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1}),E(n(le),{open:x.value,"onUpdate:open":r[17]||=e=>x.value=e},{default:_(()=>[E(n(se),{class:`max-w-lg`},{default:_(()=>[E(n(ce),null,{default:_(()=>[E(n(de),null,{default:_(()=>[b(c(S.value?n(l)(`retryRules.dialog.editRule`):n(l)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:C(De,[`prevent`]),class:`space-y-3`},[u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.name`)),1)]),_:1}),E(n(J),{modelValue:T.value.name,"onUpdate:modelValue":r[0]||=e=>T.value.name=e,type:`text`,required:``,onInput:r[1]||=e=>delete O.value.name},null,8,[`modelValue`]),O.value.name?(p(),f(`p`,Je,c(O.value.name),1)):e(``,!0)]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.provider`)),1)]),_:1}),E(n(V),{modelValue:T.value.provider_id,"onUpdate:modelValue":r[2]||=e=>T.value.provider_id=e},{default:_(()=>[E(n(R),{class:`w-full`},{default:_(()=>[E(n(B),{placeholder:n(l)(`retryRules.providerPlaceholder`)},null,8,[`placeholder`])]),_:1}),E(n(F),null,{default:_(()=>[E(n(L),{value:`__all__`},{default:_(()=>[b(c(n(l)(`retryRules.providerAll`)),1)]),_:1}),(p(!0),f(i,null,D(h.value,e=>(p(),o(n(L),{key:e.id,value:e.id},{default:_(()=>[b(c(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.statusCode`)),1)]),_:1}),E(n(J),{modelValue:T.value.status_code,"onUpdate:modelValue":r[3]||=e=>T.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:r[4]||=e=>delete O.value.status_code},null,8,[`modelValue`]),O.value.status_code?(p(),f(`p`,Ye,c(O.value.status_code),1)):e(``,!0)]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1 flex items-center gap-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.bodyPattern`))+` `,1),E(n(Ce),null,{default:_(()=>[E(n(ne),null,{default:_(()=>[E(n(re),{"as-child":``},{default:_(()=>[...r[19]||=[u(`span`,{class:`inline-flex items-center justify-center w-3.5 h-3.5 rounded-full bg-muted text-muted-foreground text-[10px] font-bold cursor-help`},`?`,-1)]]),_:1}),E(n(te),{side:`right`,class:`max-w-xs text-xs leading-relaxed`},{default:_(()=>[u(`p`,Xe,c(n(l)(`retryRules.dialog.bodyPattern`)),1),u(`p`,null,c(n(l)(`retryRules.dialog.bodyPatternTooltip`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),E(n(me),{modelValue:T.value.matchMode,"onUpdate:modelValue":r[7]||=e=>T.value.matchMode=e},{default:_(()=>[E(n(pe),{class:`mb-2`},{default:_(()=>[E(n(P),{value:`regex`},{default:_(()=>[b(c(n(l)(`retryRules.regexMatch`)),1)]),_:1}),E(n(P),{value:`json`},{default:_(()=>[b(c(n(l)(`retryRules.jsonMatch`)),1)]),_:1})]),_:1}),E(n($),{value:`regex`},{default:_(()=>[E(n(J),{modelValue:T.value.body_pattern,"onUpdate:modelValue":r[5]||=e=>T.value.body_pattern=e,type:`text`,placeholder:n(l)(`retryRules.dialog.bodyPatternPlaceholder`),onInput:r[6]||=e=>delete O.value.body_pattern},null,8,[`modelValue`,`placeholder`]),O.value.body_pattern?(p(),f(`p`,Ze,c(O.value.body_pattern),1)):e(``,!0)]),_:1}),E(n($),{value:`json`},{default:_(()=>[u(`div`,Qe,[(p(!0),f(i,null,D(T.value.bodyMatchers,(t,r)=>(p(),f(`div`,{key:r,class:`flex items-start gap-2`},[E(n(J),{modelValue:t.path,"onUpdate:modelValue":e=>t.path=e,placeholder:n(l)(`retryRules.fieldPath`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),E(n(V),{modelValue:t.operator,"onUpdate:modelValue":e=>t.operator=e},{default:_(()=>[E(n(R),{class:`w-28 shrink-0`},{default:_(()=>[E(n(B))]),_:1}),E(n(F),null,{default:_(()=>[E(n(L),{value:`equals`},{default:_(()=>[b(c(n(l)(`retryRules.operatorEquals`)),1)]),_:1}),E(n(L),{value:`contains`},{default:_(()=>[b(c(n(l)(`retryRules.operatorContains`)),1)]),_:1}),E(n(L),{value:`exists`},{default:_(()=>[b(c(n(l)(`retryRules.operatorExists`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),t.operator===`exists`?e(``,!0):(p(),o(n(J),{key:0,modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,placeholder:n(l)(`retryRules.matchValue`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])),E(n(y),{type:`button`,variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground`,onClick:e=>M(r)},{default:_(()=>[E(n(Se),{class:`w-4 h-4`})]),_:1},8,[`onClick`])]))),128)),E(n(y),{type:`button`,variant:`outline`,size:`sm`,onClick:fe},{default:_(()=>[E(n(ee),{class:`w-3 h-3 mr-1`}),b(` `+c(n(l)(`retryRules.addCondition`)),1)]),_:1}),O.value.body_matchers?(p(),f(`p`,$e,c(O.value.body_matchers),1)):e(``,!0)])]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),E(n(V),{modelValue:T.value.retry_strategy,"onUpdate:modelValue":r[8]||=e=>T.value.retry_strategy=e},{default:_(()=>[E(n(R),{class:`w-full`},{default:_(()=>[E(n(B),{placeholder:n(l)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),E(n(F),null,{default:_(()=>[E(n(L),{value:`exponential`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.exponential`)),1)]),_:1}),E(n(L),{value:`fixed`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,et,[u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(T.value.retry_strategy===`fixed`?n(l)(`retryRules.dialog.intervalMs`):n(l)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),E(n(J),{modelValue:T.value.retry_delay_ms,"onUpdate:modelValue":r[9]||=e=>T.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[10]||=e=>delete O.value.retry_delay_ms},null,8,[`modelValue`]),O.value.retry_delay_ms?(p(),f(`p`,tt,c(O.value.retry_delay_ms),1)):e(``,!0)]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxRetries`)),1)]),_:1}),E(n(J),{modelValue:T.value.max_retries,"onUpdate:modelValue":r[11]||=e=>T.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:r[12]||=e=>delete O.value.max_retries},null,8,[`modelValue`]),O.value.max_retries?(p(),f(`p`,nt,c(O.value.max_retries),1)):e(``,!0)])]),T.value.retry_strategy===`exponential`?(p(),f(`div`,rt,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),E(n(J),{modelValue:T.value.max_delay_ms,"onUpdate:modelValue":r[13]||=e=>T.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[14]||=e=>delete O.value.max_delay_ms},null,8,[`modelValue`]),O.value.max_delay_ms?(p(),f(`p`,it,c(O.value.max_delay_ms),1)):e(``,!0)])):e(``,!0),u(`div`,at,[E(n(A),{modelValue:T.value.is_active,"onUpdate:modelValue":r[15]||=e=>T.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),E(n(j),{for:`rule-active`,class:`text-sm text-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.enable`)),1)]),_:1})]),E(n(ue),null,{default:_(()=>[E(n(y),{type:`button`,variant:`outline`,onClick:r[16]||=e=>x.value=!1},{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),E(n(y),{type:`submit`},{default:_(()=>[b(c(n(l)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),E(n(be),{open:!!w.value,"onUpdate:open":r[18]||=e=>{e||(w.value=null)}},{default:_(()=>[E(n(we),null,{default:_(()=>[E(n(xe),null,{default:_(()=>[E(n(ye),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.title`)),1)]),_:1}),E(n(ve),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.description`,{name:w.value?.name})),1)]),_:1})]),_:1}),E(n(he),null,{default:_(()=>[E(n(ge),null,{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),E(n(y),{variant:`destructive`,onClick:Fe},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),E(ze,{rules:k.value,onAdded:Ie},null,8,[`rules`])],64))]))}});export{ot as default};
|
|
1
|
+
import{$ as e,A as t,Gt as n,H as r,J as i,Lt as a,Q as o,X as s,Xt as c,Yt as l,Z as u,dt as d,et as f,gt as p,i as m,it as h,k as g,kt as _,mt as v,n as y,nt as b,o as x,pt as S,q as C,qt as w,r as T,rt as E,vt as D,x as O,yt as k}from"./button-Csj7G8uP.js";import{t as ee}from"./plus-CtQvHS_r.js";import{t as A}from"./Checkbox-BVu9v787.js";import{n as te,r as ne,t as re}from"./TooltipTrigger-BIrArn-i.js";import{n as ie,t as ae}from"./CollapsibleContent-C4J8A1Ja.js";import{t as oe}from"./CollapsibleTrigger-xl22mqUU.js";import{a as se,n as ce,o as le,r as ue,t as de}from"./dialog-DSOZukxC.js";import{t as j}from"./Label-BhSGa_Tn.js";import{a as fe,i as M,n as pe,o as N,r as me,t as P}from"./TabsTrigger-yGl-ocCE.js";import{_ as F,a as I,c as he,d as ge,dt as _e,g as L,h as R,ht as z,l as ve,m as B,o as ye,p as be,s as xe,st as Se,t as Ce,u as we,v as V,z as H}from"./index-C-o8k1O4.js";import{t as U}from"./badge-DfF7rlis.js";import{t as W}from"./Card-OdDwacfm.js";import{t as G}from"./CardContent-B4x52Duv.js";import{n as K,t as q}from"./CardTitle-DtDJrCKi.js";import{t as J}from"./Input-BpmvwfP9.js";import{a as Y,i as X,n as Z,o as Te,r as Q,t as Ee}from"./TableHeader-_3-h6u2u.js";var De=h({__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(t){let r=t,{forwardRef:i}=x(),c=N(),u=s(()=>fe(c.baseId,r.value)),d=s(()=>M(c.baseId,r.value)),f=s(()=>r.value===c.modelValue.value),h=a(f.value);return v(()=>{c.registerContent(r.value),requestAnimationFrame(()=>{h.value=!1})}),S(()=>{c.unregisterContent(r.value)}),(t,r)=>(p(),o(n(H),{present:t.forceMount||f.value,"force-mount":``},{default:_(({present:r})=>[E(n(m),{id:d.value,ref:n(i),"as-child":t.asChild,as:t.as,role:`tabpanel`,"data-state":f.value?`active`:`inactive`,"data-orientation":n(c).orientation.value,"aria-labelledby":u.value,hidden:!r,tabindex:`0`,style:l({animationDuration:h.value?`0s`:void 0})},{default:_(()=>[!n(c).unmountOnHide.value||r?k(t.$slots,`default`,{key:0}):e(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),$=h({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,r=O(t,`class`);return(e,i)=>(p(),o(n(De),d({"data-slot":`tabs-content`,class:n(T)(`text-sm flex-1 outline-none`,t.class)},n(r)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16,[`class`]))}}),Oe={name:``,status_code:429,body_pattern:``,provider_id:`__all__`,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4,matchMode:`regex`,bodyMatchers:[]};function ke(e){if(!e)return[];try{return JSON.parse(e)}catch{return[]}}function Ae(e){let t=e.filter(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()));return t.length>0?JSON.stringify(t):null}function je(e){return e?`json`:`regex`}function Me(e,t){let n={};e.name.trim()||(n.name=t(`retryRules.validation.nameRequired`));let r=Number(e.status_code);if((!Number.isInteger(r)||r<100||r>599)&&(n.status_code=t(`retryRules.validation.statusCodeRange`,{min:100,max:599})),e.matchMode===`regex`)if(!e.body_pattern.trim())n.body_pattern=t(`retryRules.validation.bodyPatternRequired`);else try{new RegExp(e.body_pattern)}catch{n.body_pattern=t(`retryRules.validation.bodyPatternInvalid`)}else e.bodyMatchers.some(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()))||(n.body_matchers=t(`retryRules.validation.bodyPatternRequired`));let i=Number(e.retry_delay_ms);(!i||i<100)&&(n.retry_delay_ms=t(`retryRules.validation.delayMin`,{min:100}));let a=Number(e.max_retries);if((!Number.isInteger(a)||a<0||a>100)&&(n.max_retries=t(`retryRules.validation.retriesRange`,{max:100})),e.retry_strategy===`exponential`){let r=Number(e.max_delay_ms);(!r||r<100)&&(n.max_delay_ms=t(`retryRules.validation.delayMin`,{min:100}))}return n}function Ne(){return{...Oe,bodyMatchers:[]}}function Pe(e,t,n){if(e){let t=ke(e);return t.length>0?t.map(e=>{let t=n[e.operator]??e.operator;return e.operator===`exists`?`${e.path} ${t}`:`${e.path} ${t} "${e.value}"`}).join(`, `):e}return t??``}var Fe={class:`flex items-center justify-between`},Ie={class:`flex items-center justify-between mb-3`},Le={class:`flex items-center gap-2`},Re={class:`text-sm text-muted-foreground`},ze=h({__name:`RecommendedRules`,props:{rules:{}},emits:[`added`],setup(t,{emit:l}){let{t:d}=r(),m=t,h=l,v=a(!1),x=a(new Set),S=s(()=>m.rules.length>0&&x.value.size===m.rules.length);function C(e){let t=new Set(x.value);t.has(e)?t.delete(e):t.add(e),x.value=t}function T(e){x.value=e===!0?new Set(m.rules.map(e=>e.name)):new Set}async function O(){let e=m.rules.filter(e=>x.value.has(e.name));for(let t of e)await g.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});I.success(d(`retryRules.messages.addedCount`,{count:e.length})),x.value=new Set,h(`added`)}return(r,a)=>t.rules.length>0?(p(),o(n(W),{key:0,class:`mt-6`},{default:_(()=>[E(n(ie),{open:v.value,"onUpdate:open":a[0]||=e=>v.value=e},{default:_(()=>[E(n(oe),{"as-child":``},{default:_(()=>[E(n(K),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:_(()=>[u(`div`,Fe,[E(n(q),{class:`text-sm font-medium`},{default:_(()=>[b(c(n(d)(`retryRules.recommended.title`,{count:t.rules.length})),1)]),_:1}),E(n(z),{class:w([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":v.value}])},null,8,[`class`])])]),_:1})]),_:1}),E(n(ae),null,{default:_(()=>[E(n(G),null,{default:_(()=>[u(`div`,Ie,[u(`div`,Le,[E(n(A),{"model-value":S.value,"onUpdate:modelValue":T},null,8,[`model-value`]),u(`span`,Re,c(n(d)(`retryRules.recommended.selectAll`)),1)]),E(n(y),{size:`sm`,disabled:x.value.size===0,onClick:O},{default:_(()=>[b(c(n(d)(`retryRules.recommended.addSelected`,{count:x.value.size})),1)]),_:1},8,[`disabled`])]),E(n(Te),null,{default:_(()=>[E(n(Ee),null,{default:_(()=>[E(n(Q),null,{default:_(()=>[E(n(Z),{class:`w-10`}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.name`)),1)]),_:1}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),E(n(Z),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),E(n(Y),null,{default:_(()=>[(p(!0),f(i,null,D(t.rules,e=>(p(),o(n(Q),{key:e.name},{default:_(()=>[E(n(X),null,{default:_(()=>[E(n(A),{"model-value":x.value.has(e.name),"onUpdate:modelValue":()=>C(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(e.name),1)]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(e.status_code),1)]),_:2},1024),E(n(X),{class:`font-mono text-xs max-w-[200px] truncate`},{default:_(()=>[b(c(e.body_pattern),1)]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(e.retry_strategy===`fixed`?n(d)(`retryRules.strategy.fixed`):n(d)(`retryRules.strategy.exponential`)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):e(``,!0)}}),Be={class:`page`},Ve={key:0,class:`flex items-center justify-center py-12 text-muted-foreground`},He={class:`flex items-center justify-between mb-4`},Ue={class:`text-lg font-semibold text-foreground`},We={class:`truncate block`},Ge={key:1},Ke={class:`flex items-center gap-2`},qe={class:`text-xs text-muted-foreground`},Je={key:0,class:`text-sm text-destructive mt-1`},Ye={key:0,class:`text-sm text-destructive mt-1`},Xe={class:`font-medium mb-1`},Ze={key:0,class:`text-sm text-destructive mt-1`},Qe={class:`space-y-2`},$e={key:0,class:`text-sm text-destructive mt-1`},et={class:`grid grid-cols-2 gap-3`},tt={key:0,class:`text-sm text-destructive mt-1`},nt={key:0,class:`text-sm text-destructive mt-1`},rt={key:0},it={key:0,class:`text-sm text-destructive mt-1`},at={class:`flex items-center gap-2`},ot=h({__name:`RetryRules`,setup(s){let{t:l}=r(),d=a(!1),m=a([]),h=a([]),x=a(!1),S=a(null),w=a(null),T=a(Ne()),O=a({}),k=a([]),ie={equals:l(`retryRules.operatorEquals`),contains:l(`retryRules.operatorContains`),exists:l(`retryRules.operatorExists`)};function ae(e){let t=h.value.find(t=>t.id===e);return t?t.name:e}function oe(e){return Pe(e.body_matchers,e.body_pattern,ie)}function fe(){T.value.bodyMatchers.push({path:``,operator:`contains`,value:``})}function M(e){T.value.bodyMatchers.splice(e,1)}function N(){let e=Me(T.value,l);return O.value=e,Object.keys(e).length===0}async function z(){try{m.value=await g.getRetryRules()}catch(e){console.error(`RetryRules.loadData:`,e),I.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function H(){try{h.value=await g.getProviders()}catch(e){console.error(`RetryRules.loadProviders:`,e),I.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function G(){try{k.value=await g.recommended.getRetryRules()}catch(e){console.error(`RetryRules.loadRecommended:`,e),k.value=[]}}function K(){S.value=null,T.value=Ne(),O.value={},x.value=!0}function q(e){S.value=e.id,T.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,provider_id:e.provider_id??`__all__`,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,matchMode:je(e.body_matchers),bodyMatchers:ke(e.body_matchers)},O.value={},x.value=!0}async function De(){if(N())try{let e=T.value.matchMode===`json`?Ae(T.value.bodyMatchers):null,t={name:T.value.name,status_code:Number(T.value.status_code),body_pattern:T.value.body_pattern,provider_id:T.value.provider_id===`__all__`?null:T.value.provider_id,body_matchers:e,is_active:+!!T.value.is_active,retry_strategy:T.value.retry_strategy,retry_delay_ms:Number(T.value.retry_delay_ms),max_retries:Number(T.value.max_retries),max_delay_ms:Number(T.value.max_delay_ms)};S.value?await g.updateRetryRule(S.value,t):await g.createRetryRule(t),x.value=!1,await z()}catch(e){console.error(`RetryRules.handleSave:`,e),I.error(t(e,l(`retryRules.messages.saveFailed`)))}}function Oe(e){w.value=e}async function Fe(){let e=w.value;if(e){w.value=null;try{await g.deleteRetryRule(e.id),await z()}catch(e){console.error(`RetryRules.handleDelete:`,e),I.error(t(e,l(`retryRules.messages.deleteFailed`)))}}}async function Ie(){await Promise.allSettled([G(),z()])}return v(async()=>{d.value=!0,await Promise.allSettled([z(),G(),H()]),d.value=!1}),(t,r)=>(p(),f(`div`,Be,[d.value?(p(),f(`div`,Ve,[E(n(_e),{class:`w-5 h-5 animate-spin mr-2`}),b(` `+c(n(l)(`common.loading`)),1)])):e(``,!0),d.value?e(``,!0):(p(),f(i,{key:1},[u(`div`,He,[u(`h2`,Ue,c(n(l)(`retryRules.title`)),1),E(n(y),{onClick:K,class:`flex items-center gap-1`},{default:_(()=>[E(n(ee),{class:`w-4 h-4`}),b(` `+c(n(l)(`retryRules.addRule`)),1)]),_:1})]),E(n(W),{flush:``},{default:_(()=>[E(n(Te),{class:`[&_td]:px-4 [&_th]:px-4`},{default:_(()=>[E(n(Ee),null,{default:_(()=>[E(n(Q),{class:`bg-muted`},{default:_(()=>[E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.name`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.provider`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),E(n(Z),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.status`)),1)]),_:1}),E(n(Z),{class:`text-right text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),E(n(Y),null,{default:_(()=>[(p(!0),f(i,null,D(m.value,t=>(p(),o(n(Q),{key:t.id},{default:_(()=>[E(n(X),{class:`font-mono text-sm`},{default:_(()=>[b(c(t.name),1)]),_:2},1024),E(n(X),null,{default:_(()=>[b(c(t.status_code),1)]),_:2},1024),E(n(X),{class:`font-mono text-xs text-muted-foreground max-w-[200px]`},{default:_(()=>[u(`span`,We,c(oe(t)),1)]),_:2},1024),E(n(X),null,{default:_(()=>[t.provider_id?(p(),f(`span`,Ge,c(ae(t.provider_id)),1)):(p(),o(n(U),{key:0,variant:`secondary`},{default:_(()=>[b(c(n(l)(`retryRules.globalBadge`)),1)]),_:1}))]),_:2},1024),E(n(X),null,{default:_(()=>[u(`div`,Ke,[E(n(U),{variant:`outline`},{default:_(()=>[b(c(t.retry_strategy===`fixed`?n(l)(`retryRules.strategy.fixed`):n(l)(`retryRules.strategy.exponential`)),1)]),_:2},1024),u(`span`,qe,[b(c(t.retry_delay_ms/1e3)+`s · `+c(n(l)(`retryRules.times`,{count:t.max_retries}))+` `,1),t.retry_strategy===`exponential`?(p(),f(i,{key:0},[b(` · `+c(n(l)(`retryRules.upperLimit`,{value:t.max_delay_ms/1e3})),1)],64)):e(``,!0)])])]),_:2},1024),E(n(X),null,{default:_(()=>[E(n(U),{variant:t.is_active?`default`:`secondary`},{default:_(()=>[b(c(t.is_active?n(l)(`common.enabled`):n(l)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),E(n(X),{class:`text-right`},{default:_(()=>[E(n(y),{variant:`ghost`,size:`sm`,onClick:e=>q(t),class:`mr-2`},{default:_(()=>[b(c(n(l)(`common.edit`)),1)]),_:1},8,[`onClick`]),E(n(y),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>Oe(t)},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),m.value.length===0?(p(),o(n(Q),{key:0},{default:_(()=>[E(n(X),{colspan:`7`,class:`text-center text-muted-foreground py-8`},{default:_(()=>[b(c(n(l)(`retryRules.noRules`)),1)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1}),E(n(le),{open:x.value,"onUpdate:open":r[17]||=e=>x.value=e},{default:_(()=>[E(n(se),{class:`max-w-lg`},{default:_(()=>[E(n(ce),null,{default:_(()=>[E(n(de),null,{default:_(()=>[b(c(S.value?n(l)(`retryRules.dialog.editRule`):n(l)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:C(De,[`prevent`]),class:`space-y-3`},[u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.name`)),1)]),_:1}),E(n(J),{modelValue:T.value.name,"onUpdate:modelValue":r[0]||=e=>T.value.name=e,type:`text`,required:``,onInput:r[1]||=e=>delete O.value.name},null,8,[`modelValue`]),O.value.name?(p(),f(`p`,Je,c(O.value.name),1)):e(``,!0)]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.provider`)),1)]),_:1}),E(n(V),{modelValue:T.value.provider_id,"onUpdate:modelValue":r[2]||=e=>T.value.provider_id=e},{default:_(()=>[E(n(R),{class:`w-full`},{default:_(()=>[E(n(B),{placeholder:n(l)(`retryRules.providerPlaceholder`)},null,8,[`placeholder`])]),_:1}),E(n(F),null,{default:_(()=>[E(n(L),{value:`__all__`},{default:_(()=>[b(c(n(l)(`retryRules.providerAll`)),1)]),_:1}),(p(!0),f(i,null,D(h.value,e=>(p(),o(n(L),{key:e.id,value:e.id},{default:_(()=>[b(c(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.statusCode`)),1)]),_:1}),E(n(J),{modelValue:T.value.status_code,"onUpdate:modelValue":r[3]||=e=>T.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:r[4]||=e=>delete O.value.status_code},null,8,[`modelValue`]),O.value.status_code?(p(),f(`p`,Ye,c(O.value.status_code),1)):e(``,!0)]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1 flex items-center gap-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.bodyPattern`))+` `,1),E(n(Ce),null,{default:_(()=>[E(n(ne),null,{default:_(()=>[E(n(re),{"as-child":``},{default:_(()=>[...r[19]||=[u(`span`,{class:`inline-flex items-center justify-center w-3.5 h-3.5 rounded-full bg-muted text-muted-foreground text-[10px] font-bold cursor-help`},`?`,-1)]]),_:1}),E(n(te),{side:`right`,class:`max-w-xs text-xs leading-relaxed`},{default:_(()=>[u(`p`,Xe,c(n(l)(`retryRules.dialog.bodyPattern`)),1),u(`p`,null,c(n(l)(`retryRules.dialog.bodyPatternTooltip`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),E(n(me),{modelValue:T.value.matchMode,"onUpdate:modelValue":r[7]||=e=>T.value.matchMode=e},{default:_(()=>[E(n(pe),{class:`mb-2`},{default:_(()=>[E(n(P),{value:`regex`},{default:_(()=>[b(c(n(l)(`retryRules.regexMatch`)),1)]),_:1}),E(n(P),{value:`json`},{default:_(()=>[b(c(n(l)(`retryRules.jsonMatch`)),1)]),_:1})]),_:1}),E(n($),{value:`regex`},{default:_(()=>[E(n(J),{modelValue:T.value.body_pattern,"onUpdate:modelValue":r[5]||=e=>T.value.body_pattern=e,type:`text`,placeholder:n(l)(`retryRules.dialog.bodyPatternPlaceholder`),onInput:r[6]||=e=>delete O.value.body_pattern},null,8,[`modelValue`,`placeholder`]),O.value.body_pattern?(p(),f(`p`,Ze,c(O.value.body_pattern),1)):e(``,!0)]),_:1}),E(n($),{value:`json`},{default:_(()=>[u(`div`,Qe,[(p(!0),f(i,null,D(T.value.bodyMatchers,(t,r)=>(p(),f(`div`,{key:r,class:`flex items-start gap-2`},[E(n(J),{modelValue:t.path,"onUpdate:modelValue":e=>t.path=e,placeholder:n(l)(`retryRules.fieldPath`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),E(n(V),{modelValue:t.operator,"onUpdate:modelValue":e=>t.operator=e},{default:_(()=>[E(n(R),{class:`w-28 shrink-0`},{default:_(()=>[E(n(B))]),_:1}),E(n(F),null,{default:_(()=>[E(n(L),{value:`equals`},{default:_(()=>[b(c(n(l)(`retryRules.operatorEquals`)),1)]),_:1}),E(n(L),{value:`contains`},{default:_(()=>[b(c(n(l)(`retryRules.operatorContains`)),1)]),_:1}),E(n(L),{value:`exists`},{default:_(()=>[b(c(n(l)(`retryRules.operatorExists`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),t.operator===`exists`?e(``,!0):(p(),o(n(J),{key:0,modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,placeholder:n(l)(`retryRules.matchValue`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])),E(n(y),{type:`button`,variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground`,onClick:e=>M(r)},{default:_(()=>[E(n(Se),{class:`w-4 h-4`})]),_:1},8,[`onClick`])]))),128)),E(n(y),{type:`button`,variant:`outline`,size:`sm`,onClick:fe},{default:_(()=>[E(n(ee),{class:`w-3 h-3 mr-1`}),b(` `+c(n(l)(`retryRules.addCondition`)),1)]),_:1}),O.value.body_matchers?(p(),f(`p`,$e,c(O.value.body_matchers),1)):e(``,!0)])]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),E(n(V),{modelValue:T.value.retry_strategy,"onUpdate:modelValue":r[8]||=e=>T.value.retry_strategy=e},{default:_(()=>[E(n(R),{class:`w-full`},{default:_(()=>[E(n(B),{placeholder:n(l)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),E(n(F),null,{default:_(()=>[E(n(L),{value:`exponential`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.exponential`)),1)]),_:1}),E(n(L),{value:`fixed`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,et,[u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(T.value.retry_strategy===`fixed`?n(l)(`retryRules.dialog.intervalMs`):n(l)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),E(n(J),{modelValue:T.value.retry_delay_ms,"onUpdate:modelValue":r[9]||=e=>T.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[10]||=e=>delete O.value.retry_delay_ms},null,8,[`modelValue`]),O.value.retry_delay_ms?(p(),f(`p`,tt,c(O.value.retry_delay_ms),1)):e(``,!0)]),u(`div`,null,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxRetries`)),1)]),_:1}),E(n(J),{modelValue:T.value.max_retries,"onUpdate:modelValue":r[11]||=e=>T.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:r[12]||=e=>delete O.value.max_retries},null,8,[`modelValue`]),O.value.max_retries?(p(),f(`p`,nt,c(O.value.max_retries),1)):e(``,!0)])]),T.value.retry_strategy===`exponential`?(p(),f(`div`,rt,[E(n(j),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),E(n(J),{modelValue:T.value.max_delay_ms,"onUpdate:modelValue":r[13]||=e=>T.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[14]||=e=>delete O.value.max_delay_ms},null,8,[`modelValue`]),O.value.max_delay_ms?(p(),f(`p`,it,c(O.value.max_delay_ms),1)):e(``,!0)])):e(``,!0),u(`div`,at,[E(n(A),{modelValue:T.value.is_active,"onUpdate:modelValue":r[15]||=e=>T.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),E(n(j),{for:`rule-active`,class:`text-sm text-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.enable`)),1)]),_:1})]),E(n(ue),null,{default:_(()=>[E(n(y),{type:`button`,variant:`outline`,onClick:r[16]||=e=>x.value=!1},{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),E(n(y),{type:`submit`},{default:_(()=>[b(c(n(l)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),E(n(be),{open:!!w.value,"onUpdate:open":r[18]||=e=>{e||(w.value=null)}},{default:_(()=>[E(n(we),null,{default:_(()=>[E(n(xe),null,{default:_(()=>[E(n(ye),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.title`)),1)]),_:1}),E(n(ve),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.description`,{name:w.value?.name})),1)]),_:1})]),_:1}),E(n(he),null,{default:_(()=>[E(n(ge),null,{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),E(n(y),{variant:`destructive`,onClick:Fe},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),E(ze,{rules:k.value,onAdded:Ie},null,8,[`rules`])],64))]))}});export{ot as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Gt as n,H as r,J as i,L as a,Lt as o,Q as s,X as c,Xt as l,Z as u,et as d,gt as f,it as p,k as m,kt as h,mt as ee,n as g,nt as _,q as te,qt as v,rt as y,vt as b}from"./button-BW3lV6lw.js";import{n as x,t as ne}from"./useClipboard-Du9vZK8q.js";import{t as re}from"./pencil-x457kif0.js";import{t as ie}from"./plus-CorbospU.js";import{t as ae}from"./search-EayCiSei.js";import{t as oe}from"./trash-2-BPhI0Tuv.js";import{t as se}from"./Checkbox-lPPFNh3g.js";import{a as S,n as C,o as w,r as T,t as ce}from"./dialog-DI8w_067.js";import{t as E}from"./Label-CS89uu8N.js";import{t as le}from"./Switch-BNj81rHC.js";import{a as D,bt as ue,c as de,ct as fe,d as pe,gt as O,l as me,o as he,p as ge,s as _e,st as ve,u as ye}from"./index-CkhT3okn.js";import{t as k}from"./badge-BrOplN8n.js";import{t as be}from"./Card-DneJRQNa.js";import{t as A}from"./Input-DXSPfwpG.js";import{a as xe,i as j,n as M,o as Se,r as N,t as Ce}from"./TableHeader-D9Qt4Aoe.js";import{t as P}from"./_plugin-vue_export-helper-BH2M0_bF.js";var we=a(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Te=a(`shield-x`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m14.5 9.5-5 5`,key:`17q4r4`}],[`path`,{d:`m9.5 9.5 5 5`,key:`18nt4w`}]]),Ee={class:`page`},De={class:`flex items-center justify-between mb-4`},Oe={class:`text-base font-semibold text-foreground`},ke={class:`flex gap-6 px-4 py-3 mb-3 rounded-lg bg-card border border-input`},Ae={class:`flex flex-col gap-0.5`},je={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Me={class:`text-xl font-semibold leading-none font-mono`},Ne={class:`flex flex-col gap-0.5`},Pe={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Fe={class:`text-xl font-semibold leading-none font-mono text-primary`},Ie={class:`flex flex-col gap-0.5`},Le={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Re={class:`text-xl font-semibold leading-none font-mono`},ze={class:`mb-3`},Be={class:`relative max-w-[280px]`},Ve={class:`font-medium text-sm max-w-[200px] truncate block`},He={class:`flex items-center gap-1.5`},Ue={key:0,class:`font-mono text-xs font-medium break-all`},We={class:`font-mono text-xs font-medium`},Ge={class:`font-mono text-xs text-muted-foreground/40 tracking-wider`},Ke={class:`flex items-center gap-1 flex-wrap`},qe={class:`flex items-center gap-1.5`},Je={class:`text-xs text-muted-foreground`},Ye={class:`font-mono text-[11px] text-muted-foreground/50`},Xe={class:`flex items-center justify-end gap-0.5`},Ze={class:`text-muted-foreground text-sm`},Qe={key:0,class:`text-muted-foreground/50 text-xs mt-1`},$e={key:0,class:`text-xs text-destructive mt-1`},et={class:`text-[11px] text-muted-foreground/50 mb-2`},tt={class:`border rounded-md bg-muted/30 p-2`},nt={key:0,class:`flex flex-wrap gap-1 mb-2`},rt={class:`max-h-[200px] overflow-y-auto space-y-0.5`},it={class:`font-mono text-[11px]`},at={key:0,class:`text-muted-foreground text-xs text-center py-3`},ot={key:0,class:`flex items-center gap-2.5`},st={class:`space-y-3`},ct={class:`rounded-md border border-primary/25 bg-primary/10 p-3`},lt={class:`flex items-center gap-2`},ut={class:`font-mono text-xs font-medium break-all flex-1`},dt={class:`flex items-center gap-1.5 mt-2 text-warning text-[11px]`},F=2,ft=14,I=2e3,L=P(p({__name:`RouterKeys`,setup(a){let{t:p}=r(),P=`•`.repeat(ft),L=o([]),R=o([]),z=o(``),B=o(new Set),V=o(null),H=o(!1),U=o(!1),W=o(null),G=o(null),K=o(``),q=o(!1),J=o(``),Y=o({name:``,allowed_models:[],is_active:!0}),X=o({}),pt=c(()=>L.value.filter(e=>e.is_active).length),mt=c(()=>L.value.filter(e=>e.allowed_models&&e.allowed_models.length>0).length),Z=c(()=>{let e=z.value.toLowerCase();return e?L.value.filter(t=>t.name.toLowerCase().includes(e)||t.key&&t.key.toLowerCase().includes(e)):L.value}),ht=c(()=>{let e=J.value.toLowerCase();return e?R.value.filter(t=>t.toLowerCase().includes(e)):R.value});function gt(e){let t=`w-1.5 h-1.5 rounded-full shrink-0`;return e?`${t} bg-success shadow-[0_0_6px_var(--color-success)/0.4]`:`${t} bg-muted-foreground/30`}async function _t(e){let t=e.key;t&&await Q(t)&&(V.value=e.id,setTimeout(()=>{V.value===e.id&&(V.value=null)},I))}async function vt(){await Q(K.value)&&(q.value=!0,setTimeout(()=>{q.value=!1},I))}let{copy:Q}=ne();function yt(e){let t=B.value;t.has(e)?t.delete(e):t.add(e),B.value=new Set(t)}function bt(e,t){let n=Y.value.allowed_models;if(t===!0&&!n.includes(e))n.push(e);else if(!t){let t=n.indexOf(e);t>=0&&n.splice(t,1)}}function xt(e){let t=Y.value.allowed_models,n=t.indexOf(e);n>=0&&t.splice(n,1)}function St(){G.value=null,Y.value={name:``,allowed_models:[],is_active:!0},J.value=``,X.value={},H.value=!0}function Ct(e){G.value=e,Y.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},J.value=``,X.value={},H.value=!0}function wt(e){W.value=e}async function Tt(){let e={};if(Y.value.name.trim()||(e.name=p(`routerKeys.nameRequired`)),X.value=e,!(Object.keys(e).length>0))try{if(G.value)await m.updateRouterKey(G.value.id,{name:Y.value.name,allowed_models:Y.value.allowed_models.length>0?Y.value.allowed_models:null,is_active:+!!Y.value.is_active}),H.value=!1,await $();else{let e=await m.createRouterKey({name:Y.value.name,allowed_models:Y.value.allowed_models.length>0?Y.value.allowed_models:null});H.value=!1,K.value=e.key,q.value=!1,U.value=!0,await $()}}catch(e){console.error(`routerKeys.save:`,e),D.error(t(e,p(`routerKeys.saveFailed`)))}}async function Et(e){try{await m.updateRouterKey(e.id,{is_active:+!e.is_active}),await $()}catch(e){console.error(`routerKeys.toggleActive:`,e),D.error(t(e,p(`routerKeys.toggleActiveFailed`)))}}async function Dt(){let e=W.value;if(e){W.value=null;try{await m.deleteRouterKey(e.id),await $()}catch(e){console.error(`routerKeys.delete:`,e),D.error(t(e,p(`routerKeys.deleteFailed`)))}}}async function $(){try{let[e,t]=await Promise.allSettled([m.getRouterKeys(),m.getAvailableModels()]);e.status===`fulfilled`&&(L.value=e.value),t.status===`fulfilled`&&(R.value=t.value)}catch(e){console.error(`routerKeys.load:`,e),D.error(t(e,p(`routerKeys.loadFailed`)))}}return ee($),(t,r)=>(f(),d(`div`,Ee,[u(`div`,De,[u(`h2`,Oe,l(n(p)(`routerKeys.title`)),1),y(n(g),{size:`sm`,onClick:St,class:`flex items-center gap-1.5`},{default:h(()=>[y(n(ie),{class:`w-3.5 h-3.5`}),_(` `+l(n(p)(`routerKeys.createKey`)),1)]),_:1})]),u(`div`,ke,[u(`div`,Ae,[u(`span`,je,l(n(p)(`routerKeys.statTotal`)),1),u(`span`,Me,l(L.value.length),1)]),r[10]||=u(`div`,{class:`w-px self-stretch bg-border`},null,-1),u(`div`,Ne,[u(`span`,Pe,l(n(p)(`routerKeys.statActive`)),1),u(`span`,Fe,l(pt.value),1)]),r[11]||=u(`div`,{class:`w-px self-stretch bg-border`},null,-1),u(`div`,Ie,[u(`span`,Le,l(n(p)(`routerKeys.statWhitelist`)),1),u(`span`,Re,l(mt.value),1)])]),u(`div`,ze,[u(`div`,Be,[y(n(ae),{class:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground/50 pointer-events-none`}),y(n(A),{modelValue:z.value,"onUpdate:modelValue":r[0]||=e=>z.value=e,placeholder:n(p)(`routerKeys.searchPlaceholder`),class:`h-[30px] pl-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])])]),y(n(be),{flush:``},{default:h(()=>[y(n(Se),null,{default:h(()=>[y(n(Ce),null,{default:h(()=>[y(n(N),null,{default:h(()=>[y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.name`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.key`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.whitelist`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.status`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.createdAt`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60 text-right`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),y(n(xe),null,{default:h(()=>[(f(!0),d(i,null,b(Z.value,t=>(f(),s(n(N),{key:t.id,class:v({"opacity-40":!t.is_active})},{default:h(()=>[y(n(j),null,{default:h(()=>[u(`span`,Ve,l(t.name),1)]),_:2},1024),y(n(j),null,{default:h(()=>[u(`div`,He,[B.value.has(t.id)?(f(),d(`span`,Ue,l(t.key),1)):(f(),d(i,{key:1},[u(`span`,We,l(t.key_prefix),1),u(`span`,Ge,l(n(P)),1)],64)),y(n(g),{variant:`ghost`,size:`icon`,class:`h-6 w-6 shrink-0`,onClick:e=>_t(t)},{default:h(()=>[V.value===t.id?(f(),s(n(O),{key:0,class:`w-3.5 h-3.5 text-success`})):(f(),s(n(x),{key:1,class:`w-3.5 h-3.5`}))]),_:2},1032,[`onClick`]),y(n(g),{variant:`ghost`,size:`sm`,class:`h-6 px-1.5 text-[11px] text-muted-foreground shrink-0`,onClick:e=>yt(t.id)},{default:h(()=>[_(l(B.value.has(t.id)?n(p)(`routerKeys.hideKey`):n(p)(`routerKeys.showKey`)),1)]),_:2},1032,[`onClick`])])]),_:2},1024),y(n(j),null,{default:h(()=>[u(`div`,Ke,[t.allowed_models&&t.allowed_models.length>0?(f(),d(i,{key:0},[(f(!0),d(i,null,b(t.allowed_models.slice(0,F),e=>(f(),s(n(k),{key:e,variant:`outline`,class:`font-mono text-[10px] font-medium px-1.5 py-0 h-5`},{default:h(()=>[_(l(e),1)]),_:2},1024))),128)),t.allowed_models.length>F?(f(),s(n(k),{key:0,class:`text-[10px] font-medium px-1.5 py-0 h-5`},{default:h(()=>[_(l(n(p)(`routerKeys.moreModels`,{count:t.allowed_models.length-F})),1)]),_:2},1024)):e(``,!0)],64)):(f(),s(n(k),{key:1,variant:`secondary`,class:`text-[10px] font-semibold px-1.5 py-0 h-5`},{default:h(()=>[_(l(n(p)(`common.allModels`)),1)]),_:1}))])]),_:2},1024),y(n(j),null,{default:h(()=>[u(`div`,qe,[u(`span`,{class:v(gt(t.is_active))},null,2),u(`span`,Je,l(t.is_active?n(p)(`common.active`):n(p)(`common.inactive`)),1)])]),_:2},1024),y(n(j),null,{default:h(()=>[u(`span`,Ye,l(n(ue)(t.created_at)),1)]),_:2},1024),y(n(j),{class:`text-right`},{default:h(()=>[u(`div`,Xe,[y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7`,onClick:e=>Ct(t)},{default:h(()=>[y(n(re),{class:`w-3.5 h-3.5`})]),_:1},8,[`onClick`]),y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7`,onClick:e=>Et(t)},{default:h(()=>[t.is_active?(f(),s(n(we),{key:0,class:`w-3.5 h-3.5 text-success`})):(f(),s(n(Te),{key:1,class:`w-3.5 h-3.5 text-muted-foreground`}))]),_:2},1032,[`onClick`]),y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7 text-muted-foreground hover:text-destructive`,onClick:e=>wt(t)},{default:h(()=>[y(n(oe),{class:`w-3.5 h-3.5`})]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128)),Z.value.length===0?(f(),s(n(N),{key:0},{default:h(()=>[y(n(j),{colspan:`6`,class:`text-center py-12`},{default:h(()=>[u(`p`,Ze,l(L.value.length===0?n(p)(`routerKeys.noKeys`):n(p)(`routerKeys.noMatch`)),1),L.value.length===0?(f(),d(`p`,Qe,l(n(p)(`routerKeys.noKeysHint`)),1)):e(``,!0)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1}),y(n(w),{open:H.value,"onUpdate:open":r[6]||=e=>H.value=e},{default:h(()=>[y(n(S),{class:`sm:max-w-lg`},{default:h(()=>[y(n(C),null,{default:h(()=>[y(n(ce),null,{default:h(()=>[_(l(G.value?n(p)(`routerKeys.editKey`):n(p)(`routerKeys.createKey`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:te(Tt,[`prevent`]),class:`space-y-4`},[u(`div`,null,[y(n(E),{class:`text-xs font-medium text-muted-foreground mb-1 block`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.name`)),1)]),_:1}),y(n(A),{modelValue:Y.value.name,"onUpdate:modelValue":r[1]||=e=>Y.value.name=e,placeholder:n(p)(`routerKeys.placeholder.name`),onInput:r[2]||=e=>delete X.value.name},null,8,[`modelValue`,`placeholder`]),X.value.name?(f(),d(`p`,$e,l(X.value.name),1)):e(``,!0)]),u(`div`,null,[y(n(E),{class:`text-xs font-medium text-muted-foreground mb-1 block`},{default:h(()=>[_(l(n(p)(`routerKeys.whitelistLabel`)),1)]),_:1}),u(`p`,et,l(n(p)(`routerKeys.whitelistHint`)),1),u(`div`,tt,[y(n(A),{modelValue:J.value,"onUpdate:modelValue":r[3]||=e=>J.value=e,placeholder:n(p)(`routerKeys.modelFilterPlaceholder`),class:`h-7 text-xs border-0 border-b rounded-none mb-2 bg-transparent focus-visible:ring-0`},null,8,[`modelValue`,`placeholder`]),Y.value.allowed_models.length>0?(f(),d(`div`,nt,[(f(!0),d(i,null,b(Y.value.allowed_models,e=>(f(),s(n(k),{key:e,variant:`secondary`,class:`font-mono text-[10px] font-medium px-1.5 py-0 h-5 gap-1`},{default:h(()=>[_(l(e)+` `,1),y(n(ve),{class:`w-3 h-3 cursor-pointer hover:text-destructive shrink-0`,onClick:t=>xt(e)},null,8,[`onClick`])]),_:2},1024))),128))])):e(``,!0),u(`div`,rt,[(f(!0),d(i,null,b(ht.value,e=>(f(),s(n(E),{key:e,class:`flex items-center gap-2 cursor-pointer px-1.5 py-1 rounded hover:bg-muted text-xs font-normal`},{default:h(()=>[y(n(se),{"model-value":Y.value.allowed_models.includes(e),"onUpdate:modelValue":t=>bt(e,t)},null,8,[`model-value`,`onUpdate:modelValue`]),u(`span`,it,l(e),1)]),_:2},1024))),128)),R.value.length===0?(f(),d(`p`,at,l(n(p)(`routerKeys.noModels`)),1)):e(``,!0)])])]),G.value?(f(),d(`div`,ot,[y(n(le),{"model-value":Y.value.is_active,"onUpdate:modelValue":r[4]||=e=>Y.value.is_active=e},null,8,[`model-value`]),y(n(E),{class:`text-sm`},{default:h(()=>[_(l(Y.value.is_active?n(p)(`common.active`):n(p)(`common.inactive`)),1)]),_:1})])):e(``,!0),y(n(T),null,{default:h(()=>[y(n(g),{type:`button`,variant:`outline`,onClick:r[5]||=e=>H.value=!1},{default:h(()=>[_(l(n(p)(`common.cancel`)),1)]),_:1}),y(n(g),{type:`submit`},{default:h(()=>[_(l(n(p)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),y(n(w),{open:U.value,"onUpdate:open":r[8]||=e=>U.value=e},{default:h(()=>[y(n(S),{class:`sm:max-w-lg`},{default:h(()=>[y(n(C),null,{default:h(()=>[y(n(ce),null,{default:h(()=>[_(l(n(p)(`routerKeys.keyCreated`)),1)]),_:1})]),_:1}),u(`div`,st,[u(`div`,ct,[u(`div`,lt,[u(`span`,ut,l(K.value),1),y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7 shrink-0`,onClick:vt},{default:h(()=>[q.value?(f(),s(n(O),{key:0,class:`w-3.5 h-3.5 text-success`})):(f(),s(n(x),{key:1,class:`w-3.5 h-3.5`}))]),_:1})]),u(`div`,dt,[y(n(fe),{class:`w-3 h-3 shrink-0`}),_(` `+l(n(p)(`routerKeys.keyShownOnce`)),1)])])]),y(n(T),null,{default:h(()=>[y(n(g),{onClick:r[7]||=e=>U.value=!1},{default:h(()=>[_(l(n(p)(`common.close`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),y(n(ge),{open:!!W.value,"onUpdate:open":r[9]||=e=>{e||(W.value=null)}},{default:h(()=>[y(n(ye),null,{default:h(()=>[y(n(_e),null,{default:h(()=>[y(n(he),null,{default:h(()=>[_(l(n(p)(`routerKeys.confirmDeleteTitle`)),1)]),_:1}),y(n(me),null,{default:h(()=>[_(l(n(p)(`routerKeys.confirmDeleteDesc`,{name:W.value?.name})),1)]),_:1})]),_:1}),y(n(de),null,{default:h(()=>[y(n(pe),null,{default:h(()=>[_(l(n(p)(`common.cancel`)),1)]),_:1}),y(n(g),{variant:`destructive`,onClick:Dt},{default:h(()=>[_(l(n(p)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-b4ea54d4`]]);export{L as default};
|
|
1
|
+
import{$ as e,A as t,Gt as n,H as r,J as i,L as a,Lt as o,Q as s,X as c,Xt as l,Z as u,et as d,gt as f,it as p,k as m,kt as h,mt as ee,n as g,nt as _,q as te,qt as v,rt as y,vt as b}from"./button-Csj7G8uP.js";import{n as x,t as ne}from"./useClipboard-DGrGSktu.js";import{t as re}from"./pencil-C2mVN-qO.js";import{t as ie}from"./plus-CtQvHS_r.js";import{t as ae}from"./search-BKxoG0xp.js";import{t as oe}from"./trash-2-BL7xrIYJ.js";import{t as se}from"./Checkbox-BVu9v787.js";import{a as S,n as C,o as w,r as T,t as ce}from"./dialog-DSOZukxC.js";import{t as E}from"./Label-BhSGa_Tn.js";import{t as le}from"./Switch-BG35vWEq.js";import{a as D,bt as ue,c as de,ct as fe,d as pe,gt as O,l as me,o as he,p as ge,s as _e,st as ve,u as ye}from"./index-C-o8k1O4.js";import{t as k}from"./badge-DfF7rlis.js";import{t as be}from"./Card-OdDwacfm.js";import{t as A}from"./Input-BpmvwfP9.js";import{a as xe,i as j,n as M,o as Se,r as N,t as Ce}from"./TableHeader-_3-h6u2u.js";import{t as P}from"./_plugin-vue_export-helper-BH2M0_bF.js";var we=a(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Te=a(`shield-x`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m14.5 9.5-5 5`,key:`17q4r4`}],[`path`,{d:`m9.5 9.5 5 5`,key:`18nt4w`}]]),Ee={class:`page`},De={class:`flex items-center justify-between mb-4`},Oe={class:`text-base font-semibold text-foreground`},ke={class:`flex gap-6 px-4 py-3 mb-3 rounded-lg bg-card border border-input`},Ae={class:`flex flex-col gap-0.5`},je={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Me={class:`text-xl font-semibold leading-none font-mono`},Ne={class:`flex flex-col gap-0.5`},Pe={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Fe={class:`text-xl font-semibold leading-none font-mono text-primary`},Ie={class:`flex flex-col gap-0.5`},Le={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Re={class:`text-xl font-semibold leading-none font-mono`},ze={class:`mb-3`},Be={class:`relative max-w-[280px]`},Ve={class:`font-medium text-sm max-w-[200px] truncate block`},He={class:`flex items-center gap-1.5`},Ue={key:0,class:`font-mono text-xs font-medium break-all`},We={class:`font-mono text-xs font-medium`},Ge={class:`font-mono text-xs text-muted-foreground/40 tracking-wider`},Ke={class:`flex items-center gap-1 flex-wrap`},qe={class:`flex items-center gap-1.5`},Je={class:`text-xs text-muted-foreground`},Ye={class:`font-mono text-[11px] text-muted-foreground/50`},Xe={class:`flex items-center justify-end gap-0.5`},Ze={class:`text-muted-foreground text-sm`},Qe={key:0,class:`text-muted-foreground/50 text-xs mt-1`},$e={key:0,class:`text-xs text-destructive mt-1`},et={class:`text-[11px] text-muted-foreground/50 mb-2`},tt={class:`border rounded-md bg-muted/30 p-2`},nt={key:0,class:`flex flex-wrap gap-1 mb-2`},rt={class:`max-h-[200px] overflow-y-auto space-y-0.5`},it={class:`font-mono text-[11px]`},at={key:0,class:`text-muted-foreground text-xs text-center py-3`},ot={key:0,class:`flex items-center gap-2.5`},st={class:`space-y-3`},ct={class:`rounded-md border border-primary/25 bg-primary/10 p-3`},lt={class:`flex items-center gap-2`},ut={class:`font-mono text-xs font-medium break-all flex-1`},dt={class:`flex items-center gap-1.5 mt-2 text-warning text-[11px]`},F=2,ft=14,I=2e3,L=P(p({__name:`RouterKeys`,setup(a){let{t:p}=r(),P=`•`.repeat(ft),L=o([]),R=o([]),z=o(``),B=o(new Set),V=o(null),H=o(!1),U=o(!1),W=o(null),G=o(null),K=o(``),q=o(!1),J=o(``),Y=o({name:``,allowed_models:[],is_active:!0}),X=o({}),pt=c(()=>L.value.filter(e=>e.is_active).length),mt=c(()=>L.value.filter(e=>e.allowed_models&&e.allowed_models.length>0).length),Z=c(()=>{let e=z.value.toLowerCase();return e?L.value.filter(t=>t.name.toLowerCase().includes(e)||t.key&&t.key.toLowerCase().includes(e)):L.value}),ht=c(()=>{let e=J.value.toLowerCase();return e?R.value.filter(t=>t.toLowerCase().includes(e)):R.value});function gt(e){let t=`w-1.5 h-1.5 rounded-full shrink-0`;return e?`${t} bg-success shadow-[0_0_6px_var(--color-success)/0.4]`:`${t} bg-muted-foreground/30`}async function _t(e){let t=e.key;t&&await Q(t)&&(V.value=e.id,setTimeout(()=>{V.value===e.id&&(V.value=null)},I))}async function vt(){await Q(K.value)&&(q.value=!0,setTimeout(()=>{q.value=!1},I))}let{copy:Q}=ne();function yt(e){let t=B.value;t.has(e)?t.delete(e):t.add(e),B.value=new Set(t)}function bt(e,t){let n=Y.value.allowed_models;if(t===!0&&!n.includes(e))n.push(e);else if(!t){let t=n.indexOf(e);t>=0&&n.splice(t,1)}}function xt(e){let t=Y.value.allowed_models,n=t.indexOf(e);n>=0&&t.splice(n,1)}function St(){G.value=null,Y.value={name:``,allowed_models:[],is_active:!0},J.value=``,X.value={},H.value=!0}function Ct(e){G.value=e,Y.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},J.value=``,X.value={},H.value=!0}function wt(e){W.value=e}async function Tt(){let e={};if(Y.value.name.trim()||(e.name=p(`routerKeys.nameRequired`)),X.value=e,!(Object.keys(e).length>0))try{if(G.value)await m.updateRouterKey(G.value.id,{name:Y.value.name,allowed_models:Y.value.allowed_models.length>0?Y.value.allowed_models:null,is_active:+!!Y.value.is_active}),H.value=!1,await $();else{let e=await m.createRouterKey({name:Y.value.name,allowed_models:Y.value.allowed_models.length>0?Y.value.allowed_models:null});H.value=!1,K.value=e.key,q.value=!1,U.value=!0,await $()}}catch(e){console.error(`routerKeys.save:`,e),D.error(t(e,p(`routerKeys.saveFailed`)))}}async function Et(e){try{await m.updateRouterKey(e.id,{is_active:+!e.is_active}),await $()}catch(e){console.error(`routerKeys.toggleActive:`,e),D.error(t(e,p(`routerKeys.toggleActiveFailed`)))}}async function Dt(){let e=W.value;if(e){W.value=null;try{await m.deleteRouterKey(e.id),await $()}catch(e){console.error(`routerKeys.delete:`,e),D.error(t(e,p(`routerKeys.deleteFailed`)))}}}async function $(){try{let[e,t]=await Promise.allSettled([m.getRouterKeys(),m.getAvailableModels()]);e.status===`fulfilled`&&(L.value=e.value),t.status===`fulfilled`&&(R.value=t.value)}catch(e){console.error(`routerKeys.load:`,e),D.error(t(e,p(`routerKeys.loadFailed`)))}}return ee($),(t,r)=>(f(),d(`div`,Ee,[u(`div`,De,[u(`h2`,Oe,l(n(p)(`routerKeys.title`)),1),y(n(g),{size:`sm`,onClick:St,class:`flex items-center gap-1.5`},{default:h(()=>[y(n(ie),{class:`w-3.5 h-3.5`}),_(` `+l(n(p)(`routerKeys.createKey`)),1)]),_:1})]),u(`div`,ke,[u(`div`,Ae,[u(`span`,je,l(n(p)(`routerKeys.statTotal`)),1),u(`span`,Me,l(L.value.length),1)]),r[10]||=u(`div`,{class:`w-px self-stretch bg-border`},null,-1),u(`div`,Ne,[u(`span`,Pe,l(n(p)(`routerKeys.statActive`)),1),u(`span`,Fe,l(pt.value),1)]),r[11]||=u(`div`,{class:`w-px self-stretch bg-border`},null,-1),u(`div`,Ie,[u(`span`,Le,l(n(p)(`routerKeys.statWhitelist`)),1),u(`span`,Re,l(mt.value),1)])]),u(`div`,ze,[u(`div`,Be,[y(n(ae),{class:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground/50 pointer-events-none`}),y(n(A),{modelValue:z.value,"onUpdate:modelValue":r[0]||=e=>z.value=e,placeholder:n(p)(`routerKeys.searchPlaceholder`),class:`h-[30px] pl-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])])]),y(n(be),{flush:``},{default:h(()=>[y(n(Se),null,{default:h(()=>[y(n(Ce),null,{default:h(()=>[y(n(N),null,{default:h(()=>[y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.name`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.key`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.whitelist`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.status`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.createdAt`)),1)]),_:1}),y(n(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60 text-right`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),y(n(xe),null,{default:h(()=>[(f(!0),d(i,null,b(Z.value,t=>(f(),s(n(N),{key:t.id,class:v({"opacity-40":!t.is_active})},{default:h(()=>[y(n(j),null,{default:h(()=>[u(`span`,Ve,l(t.name),1)]),_:2},1024),y(n(j),null,{default:h(()=>[u(`div`,He,[B.value.has(t.id)?(f(),d(`span`,Ue,l(t.key),1)):(f(),d(i,{key:1},[u(`span`,We,l(t.key_prefix),1),u(`span`,Ge,l(n(P)),1)],64)),y(n(g),{variant:`ghost`,size:`icon`,class:`h-6 w-6 shrink-0`,onClick:e=>_t(t)},{default:h(()=>[V.value===t.id?(f(),s(n(O),{key:0,class:`w-3.5 h-3.5 text-success`})):(f(),s(n(x),{key:1,class:`w-3.5 h-3.5`}))]),_:2},1032,[`onClick`]),y(n(g),{variant:`ghost`,size:`sm`,class:`h-6 px-1.5 text-[11px] text-muted-foreground shrink-0`,onClick:e=>yt(t.id)},{default:h(()=>[_(l(B.value.has(t.id)?n(p)(`routerKeys.hideKey`):n(p)(`routerKeys.showKey`)),1)]),_:2},1032,[`onClick`])])]),_:2},1024),y(n(j),null,{default:h(()=>[u(`div`,Ke,[t.allowed_models&&t.allowed_models.length>0?(f(),d(i,{key:0},[(f(!0),d(i,null,b(t.allowed_models.slice(0,F),e=>(f(),s(n(k),{key:e,variant:`outline`,class:`font-mono text-[10px] font-medium px-1.5 py-0 h-5`},{default:h(()=>[_(l(e),1)]),_:2},1024))),128)),t.allowed_models.length>F?(f(),s(n(k),{key:0,class:`text-[10px] font-medium px-1.5 py-0 h-5`},{default:h(()=>[_(l(n(p)(`routerKeys.moreModels`,{count:t.allowed_models.length-F})),1)]),_:2},1024)):e(``,!0)],64)):(f(),s(n(k),{key:1,variant:`secondary`,class:`text-[10px] font-semibold px-1.5 py-0 h-5`},{default:h(()=>[_(l(n(p)(`common.allModels`)),1)]),_:1}))])]),_:2},1024),y(n(j),null,{default:h(()=>[u(`div`,qe,[u(`span`,{class:v(gt(t.is_active))},null,2),u(`span`,Je,l(t.is_active?n(p)(`common.active`):n(p)(`common.inactive`)),1)])]),_:2},1024),y(n(j),null,{default:h(()=>[u(`span`,Ye,l(n(ue)(t.created_at)),1)]),_:2},1024),y(n(j),{class:`text-right`},{default:h(()=>[u(`div`,Xe,[y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7`,onClick:e=>Ct(t)},{default:h(()=>[y(n(re),{class:`w-3.5 h-3.5`})]),_:1},8,[`onClick`]),y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7`,onClick:e=>Et(t)},{default:h(()=>[t.is_active?(f(),s(n(we),{key:0,class:`w-3.5 h-3.5 text-success`})):(f(),s(n(Te),{key:1,class:`w-3.5 h-3.5 text-muted-foreground`}))]),_:2},1032,[`onClick`]),y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7 text-muted-foreground hover:text-destructive`,onClick:e=>wt(t)},{default:h(()=>[y(n(oe),{class:`w-3.5 h-3.5`})]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128)),Z.value.length===0?(f(),s(n(N),{key:0},{default:h(()=>[y(n(j),{colspan:`6`,class:`text-center py-12`},{default:h(()=>[u(`p`,Ze,l(L.value.length===0?n(p)(`routerKeys.noKeys`):n(p)(`routerKeys.noMatch`)),1),L.value.length===0?(f(),d(`p`,Qe,l(n(p)(`routerKeys.noKeysHint`)),1)):e(``,!0)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1}),y(n(w),{open:H.value,"onUpdate:open":r[6]||=e=>H.value=e},{default:h(()=>[y(n(S),{class:`sm:max-w-lg`},{default:h(()=>[y(n(C),null,{default:h(()=>[y(n(ce),null,{default:h(()=>[_(l(G.value?n(p)(`routerKeys.editKey`):n(p)(`routerKeys.createKey`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:te(Tt,[`prevent`]),class:`space-y-4`},[u(`div`,null,[y(n(E),{class:`text-xs font-medium text-muted-foreground mb-1 block`},{default:h(()=>[_(l(n(p)(`routerKeys.tableHeaders.name`)),1)]),_:1}),y(n(A),{modelValue:Y.value.name,"onUpdate:modelValue":r[1]||=e=>Y.value.name=e,placeholder:n(p)(`routerKeys.placeholder.name`),onInput:r[2]||=e=>delete X.value.name},null,8,[`modelValue`,`placeholder`]),X.value.name?(f(),d(`p`,$e,l(X.value.name),1)):e(``,!0)]),u(`div`,null,[y(n(E),{class:`text-xs font-medium text-muted-foreground mb-1 block`},{default:h(()=>[_(l(n(p)(`routerKeys.whitelistLabel`)),1)]),_:1}),u(`p`,et,l(n(p)(`routerKeys.whitelistHint`)),1),u(`div`,tt,[y(n(A),{modelValue:J.value,"onUpdate:modelValue":r[3]||=e=>J.value=e,placeholder:n(p)(`routerKeys.modelFilterPlaceholder`),class:`h-7 text-xs border-0 border-b rounded-none mb-2 bg-transparent focus-visible:ring-0`},null,8,[`modelValue`,`placeholder`]),Y.value.allowed_models.length>0?(f(),d(`div`,nt,[(f(!0),d(i,null,b(Y.value.allowed_models,e=>(f(),s(n(k),{key:e,variant:`secondary`,class:`font-mono text-[10px] font-medium px-1.5 py-0 h-5 gap-1`},{default:h(()=>[_(l(e)+` `,1),y(n(ve),{class:`w-3 h-3 cursor-pointer hover:text-destructive shrink-0`,onClick:t=>xt(e)},null,8,[`onClick`])]),_:2},1024))),128))])):e(``,!0),u(`div`,rt,[(f(!0),d(i,null,b(ht.value,e=>(f(),s(n(E),{key:e,class:`flex items-center gap-2 cursor-pointer px-1.5 py-1 rounded hover:bg-muted text-xs font-normal`},{default:h(()=>[y(n(se),{"model-value":Y.value.allowed_models.includes(e),"onUpdate:modelValue":t=>bt(e,t)},null,8,[`model-value`,`onUpdate:modelValue`]),u(`span`,it,l(e),1)]),_:2},1024))),128)),R.value.length===0?(f(),d(`p`,at,l(n(p)(`routerKeys.noModels`)),1)):e(``,!0)])])]),G.value?(f(),d(`div`,ot,[y(n(le),{"model-value":Y.value.is_active,"onUpdate:modelValue":r[4]||=e=>Y.value.is_active=e},null,8,[`model-value`]),y(n(E),{class:`text-sm`},{default:h(()=>[_(l(Y.value.is_active?n(p)(`common.active`):n(p)(`common.inactive`)),1)]),_:1})])):e(``,!0),y(n(T),null,{default:h(()=>[y(n(g),{type:`button`,variant:`outline`,onClick:r[5]||=e=>H.value=!1},{default:h(()=>[_(l(n(p)(`common.cancel`)),1)]),_:1}),y(n(g),{type:`submit`},{default:h(()=>[_(l(n(p)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),y(n(w),{open:U.value,"onUpdate:open":r[8]||=e=>U.value=e},{default:h(()=>[y(n(S),{class:`sm:max-w-lg`},{default:h(()=>[y(n(C),null,{default:h(()=>[y(n(ce),null,{default:h(()=>[_(l(n(p)(`routerKeys.keyCreated`)),1)]),_:1})]),_:1}),u(`div`,st,[u(`div`,ct,[u(`div`,lt,[u(`span`,ut,l(K.value),1),y(n(g),{variant:`ghost`,size:`icon`,class:`h-7 w-7 shrink-0`,onClick:vt},{default:h(()=>[q.value?(f(),s(n(O),{key:0,class:`w-3.5 h-3.5 text-success`})):(f(),s(n(x),{key:1,class:`w-3.5 h-3.5`}))]),_:1})]),u(`div`,dt,[y(n(fe),{class:`w-3 h-3 shrink-0`}),_(` `+l(n(p)(`routerKeys.keyShownOnce`)),1)])])]),y(n(T),null,{default:h(()=>[y(n(g),{onClick:r[7]||=e=>U.value=!1},{default:h(()=>[_(l(n(p)(`common.close`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),y(n(ge),{open:!!W.value,"onUpdate:open":r[9]||=e=>{e||(W.value=null)}},{default:h(()=>[y(n(ye),null,{default:h(()=>[y(n(_e),null,{default:h(()=>[y(n(he),null,{default:h(()=>[_(l(n(p)(`routerKeys.confirmDeleteTitle`)),1)]),_:1}),y(n(me),null,{default:h(()=>[_(l(n(p)(`routerKeys.confirmDeleteDesc`,{name:W.value?.name})),1)]),_:1})]),_:1}),y(n(de),null,{default:h(()=>[y(n(pe),null,{default:h(()=>[_(l(n(p)(`common.cancel`)),1)]),_:1}),y(n(g),{variant:`destructive`,onClick:Dt},{default:h(()=>[_(l(n(p)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-b4ea54d4`]]);export{L as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,Ht as t,Lt as n,Q as r,X as i,ft as a,gt as o,ht as s,i as c,it as l,kt as u,m as d,mt as f,rt as p,yt as m}from"./button-
|
|
1
|
+
import{Gt as e,Ht as t,Lt as n,Q as r,X as i,ft as a,gt as o,ht as s,i as c,it as l,kt as u,m as d,mt as f,rt as p,yt as m}from"./button-Csj7G8uP.js";import{G as h,J as g,V as _,Y as v,k as y}from"./index-C-o8k1O4.js";var b=`rovingFocusGroup.onEntryFocus`,x={bubbles:!1,cancelable:!0},S={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function C(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function w(e,t,n){let r=C(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return S[r]}function T(e,t=!1){let n=g();for(let r of e)if(r===n||(r.focus({preventScroll:t}),g()!==n))return}function E(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[D,O]=v(`RovingFocusGroup`),k=l({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(i,{expose:a,emit:s}){let l=i,f=s,{loop:g,orientation:_,dir:v}=t(l),S=h(v),C=d(l,`currentTabStopId`,f,{defaultValue:l.defaultCurrentTabStopId,passive:l.currentTabStopId===void 0}),w=n(!1),E=n(!1),D=n(0),{getItems:k,CollectionSlot:A}=y({isProvider:!0});function j(e){let t=!E.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!w.value){let t=new CustomEvent(b,x);if(e.currentTarget.dispatchEvent(t),f(`entryFocus`,t),!t.defaultPrevented){let e=k().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);T([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===C.value),...e].filter(Boolean),l.preventScrollOnEntryFocus)}}E.value=!1}function M(){setTimeout(()=>{E.value=!1},1)}return a({getItems:k}),O({loop:g,dir:S,orientation:_,currentTabStopId:C,onItemFocus:e=>{C.value=e},onItemShiftTab:()=>{w.value=!0},onFocusableItemAdd:()=>{D.value++},onFocusableItemRemove:()=>{D.value--}}),(t,n)=>(o(),r(e(A),null,{default:u(()=>[p(e(c),{tabindex:w.value||D.value===0?-1:0,"data-orientation":e(_),as:t.as,"as-child":t.asChild,dir:e(S),style:{outline:`none`},onMousedown:n[0]||=e=>E.value=!0,onMouseup:M,onFocus:j,onBlur:n[1]||=e=>w.value=!1},{default:u(()=>[m(t.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),A=l({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=t,l=D(),d=_(),h=i(()=>n.tabStopId||d),g=i(()=>l.currentTabStopId.value===h.value),{getItems:v,CollectionItem:b}=y();f(()=>{n.focusable&&l.onFocusableItemAdd()}),s(()=>{n.focusable&&l.onFocusableItemRemove()});function x(e){if(e.key===`Tab`&&e.shiftKey){l.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=w(e,l.orientation.value,l.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!n.allowShiftKey&&e.shiftKey)return;e.preventDefault();let r=[...v().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)r.reverse();else if(t===`prev`||t===`next`){t===`prev`&&r.reverse();let n=r.indexOf(e.currentTarget);r=l.loop.value?E(r,n+1):r.slice(n+1)}a(()=>T(r))}}return(t,n)=>(o(),r(e(b),null,{default:u(()=>[p(e(c),{tabindex:g.value?0:-1,"data-orientation":e(l).orientation.value,"data-active":t.active?``:void 0,"data-disabled":t.focusable?void 0:``,as:t.as,"as-child":t.asChild,onMousedown:n[0]||=n=>{t.focusable?e(l).onItemFocus(h.value):n.preventDefault()},onFocus:n[1]||=t=>e(l).onItemFocus(h.value),onKeydown:x},{default:u(()=>[m(t.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}});export{k as n,A as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Gt as n,H as r,J as i,Lt as a,Q as o,X as s,Xt as c,Yt as l,Z as u,et as d,gt as f,it as p,k as m,kt as h,mt as ee,n as g,nt as _,q as v,qt as y,rt as b,vt as x}from"./button-BW3lV6lw.js";import{n as S,t as te}from"./ConcurrencyControl-D4Dy75mf.js";import{t as C}from"./chevron-right-CmJy_8oF.js";import{t as ne}from"./pencil-x457kif0.js";import{t as re}from"./plus-CorbospU.js";import{t as w}from"./trash-2-BPhI0Tuv.js";import{a as T,n as ie,o as ae,r as oe,t as se}from"./dialog-DI8w_067.js";import{t as E}from"./Label-CS89uu8N.js";import{t as ce}from"./Switch-BNj81rHC.js";import{_ as le,a as D,c as ue,d as de,g as O,h as fe,l as pe,m as me,o as he,p as ge,s as _e,u as ve,v as ye}from"./index-CkhT3okn.js";import{t as be}from"./Input-DXSPfwpG.js";import{a as xe,i as k,n as A,o as Se,r as j,t as Ce}from"./TableHeader-D9Qt4Aoe.js";import{t as we}from"./useProviderGroups-C8ZizGfL.js";import{n as Te,r as M,t as N}from"./transform-domain-BxLBDHCJ.js";var P=Array.from({length:5},(e,t)=>t+1);function Ee(){return{name:``,week:[...P],start_hour:0,end_hour:24,targets:[{backend_model:``,provider_id:``}],concurrency_mode:`auto`,max_concurrency:M.max_concurrency,queue_timeout_ms:M.queue_timeout_ms,max_queue_size:M.max_queue_size}}function De(){return{injectHeaders:``,dropFields:``,requestDefaults:``}}function F(e){try{return JSON.parse(e)}catch{return[]}}function Oe(e,t){let n=F(e).sort((e,t)=>e-t);return n.length===7?t(`schedules.everyDay`):n.length===5&&n[0]===1&&n[4]===5?t(`schedules.weekdays`):n.length===2&&n[0]===0&&n[1]===6?t(`schedules.weekend`):null}function ke(e,t){try{return(JSON.parse(e).targets??[]).map(e=>({provider:t.find(t=>t.id===e.provider_id)?.name??e.provider_id,model:e.backend_model??``}))}catch{return[]}}function Ae(e){return`${e}`.padStart(2,`0`)+`:00`}function je(e,t){let n=[],r=[{backend_model:``,provider_id:``}];try{let t=JSON.parse(e.mapping_rule);t.targets?.length&&(r=t.targets)}catch{n.push(t(`schedules.parseRuleFailed`))}let i=[...P];try{i=JSON.parse(e.week)}catch{n.push(t(`schedules.parseWeekFailed`))}let a=`auto`,o=M.max_concurrency,s=M.queue_timeout_ms,c=M.max_queue_size;if(e.concurrency_rule)try{let t=JSON.parse(e.concurrency_rule);a=t.mode||`auto`,t.max_concurrency&&(o=t.max_concurrency),t.queue_timeout_ms&&(s=t.queue_timeout_ms),t.max_queue_size&&(c=t.max_queue_size)}catch{n.push(t(`schedules.parseConcurrencyFailed`))}let l=``,u=``,d=``;if(e.transform_rule)try{let t=JSON.parse(e.transform_rule);u=(t.drop_fields||[]).join(`, `),d=t.request_defaults?JSON.stringify(t.request_defaults):``,l=t.inject_headers?JSON.stringify(t.inject_headers):``}catch{n.push(t(`schedules.parseTransformFailed`))}return{data:{form:{name:e.name,week:i,start_hour:e.start_hour,end_hour:e.end_hour,targets:r,concurrency_mode:a,max_concurrency:o,queue_timeout_ms:s,max_queue_size:c},transform:{injectHeaders:l,dropFields:u,requestDefaults:d}},warnings:n}}function Me(e,t,n){let{form:r}=e,i=JSON.stringify({targets:r.targets}),a=r.concurrency_mode===`none`?null:JSON.stringify({mode:r.concurrency_mode,max_concurrency:r.max_concurrency,queue_timeout_ms:r.queue_timeout_ms,max_queue_size:r.max_queue_size});return{mapping_group_id:t,name:r.name,week:JSON.stringify(r.week),start_hour:r.start_hour,end_hour:r.end_hour,mapping_rule:i,concurrency_rule:a,transform_rule:n}}function Ne(e,t){let n={};e.name.trim()||(n.name=t(`schedules.form.nameRequired`)),e.week.length===0&&(n.week=t(`schedules.form.weekRequired`)),e.start_hour>=e.end_hour&&(n.time=t(`schedules.form.timeInvalid`));for(let r of e.targets)if(!r.provider_id||!r.backend_model){n.targets=t(`schedules.form.targetRequired`);break}return n}var I={injectHeadersJsonError:`providers.transform.injectHeadersJsonError`,requestDefaultsJsonError:`providers.transform.requestDefaultsJsonError`};function Pe(e){let{rule:t,errorKey:n}=N({injectHeaders:e.injectHeaders,dropFields:e.dropFields,requestDefaults:e.requestDefaults});return{rule:t,errorKey:n?I[n]??n:null}}var L={class:`flex flex-col`},R={class:`w-7 shrink-0 text-[11px] font-medium text-muted-foreground text-right select-none`},z={class:`absolute inset-0 grid`,style:{gridTemplateColumns:`repeat(24, 1fr)`}},B={key:0,class:`truncate`},V={key:1,class:`hidden group-hover:block absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 bg-popover text-popover-foreground border rounded-md shadow-lg px-2.5 py-1.5 z-30 whitespace-nowrap text-[11px]`},H={class:`font-semibold whitespace-nowrap`},U={class:`font-mono text-[11px] text-muted-foreground whitespace-nowrap`},W={class:`flex items-center gap-2 mt-0.5`},G={class:`flex-1 grid`,style:{gridTemplateColumns:`repeat(24, 1fr)`}},K=24,q=5,J=3,Y=100,X=7,Fe=10,Ie=p({__name:`WeekTimeline`,props:{rules:{}},setup(t){let a=t,{t:o,te:p}=r(),m=X-1,h=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],ee=[...P,6,0],g=[`oklch(0.68 0.13 175 / 70%)`,`oklch(0.68 0.13 175 / 50%)`,`oklch(0.68 0.13 175 / 35%)`,`oklch(0.68 0.13 175 / 25%)`],_=Array.from({length:X},(e,t)=>t),v=Array.from({length:Math.ceil(K/J)},(e,t)=>t*J),b=Array.from({length:K},(e,t)=>t),S=s(()=>{let e=[[],[],[],[],[],[],[]];for(let t of a.rules)for(let n of t.days)n>=0&&n<=m&&e[ee.indexOf(n)].push(t);return e});function te(e){let t=`schedules.weekDays.${h[e]}`;return p(t)?o(t):{mon:`周一`,tue:`周二`,wed:`周三`,thu:`周四`,fri:`周五`,sat:`周六`,sun:`周日`}[h[e]]??``}function C(e){return S.value[e].length>0}function ne(e){let t=e.startHour/K*Y,n=(e.endHour-e.startHour)/K*Y;return{left:`${t}%`,width:`${n}%`}}function re(e){return g[a.rules.indexOf(e)%g.length]}function w(e){return e.endHour-e.startHour<q}function T(e){return e<Fe?`0${e}:00`:`${e}:00`}return(t,r)=>(f(),d(`div`,L,[(f(!0),d(i,null,x(n(_),t=>(f(),d(`div`,{key:t,class:y([`flex items-center gap-2 h-6`,{"opacity-35":!C(t)}])},[u(`div`,R,c(te(t)),1),u(`div`,{class:y([`flex-1 relative h-full rounded-sm overflow-visible`,C(t)?`bg-black/[0.06] dark:bg-white/[0.07]`:`bg-black/[0.03] dark:bg-white/[0.03]`])},[u(`div`,z,[(f(!0),d(i,null,x(n(b),e=>(f(),d(`div`,{key:e,class:`border-r border-border/30 dark:border-white/10 last:border-r-0`}))),128))]),(f(!0),d(i,null,x(S.value[t],n=>(f(),d(`div`,{key:n.name+t,class:y([`absolute top-0.5 bottom-0.5 rounded-sm flex items-center px-1 text-[10px] font-semibold overflow-hidden whitespace-nowrap cursor-default z-10 transition-[filter] duration-100 hover:z-20 hover:brightness-[1.15] group`,[n.enabled?``:`bg-transparent !border-dashed border-[1.5px] border-muted-foreground/50 text-muted-foreground/60`]]),style:l({...ne(n),...n.enabled?{background:re(n),color:`oklch(0.145 0 0)`}:{}})},[w(n)?e(``,!0):(f(),d(`span`,B,c(n.name),1)),w(n)?(f(),d(`div`,V,[u(`div`,H,c(n.name),1),u(`div`,U,c(T(n.startHour))+` - `+c(T(n.endHour)),1)])):e(``,!0)],6))),128))],2)],2))),128)),u(`div`,W,[r[0]||=u(`div`,{class:`w-7 shrink-0`},null,-1),u(`div`,G,[(f(!0),d(i,null,x(n(v),e=>(f(),d(`div`,{key:e,class:`font-mono text-[10px] text-muted-foreground text-left pl-0.5 leading-4`,style:l({gridColumn:`${e+1} / span 3`})},c(T(e)),5))),128))])])]))}}),Le={class:`page space-y-3`},Re={class:`flex items-center justify-between`},ze={class:`flex flex-col gap-0.5`},Be={class:`text-base font-semibold text-foreground`},Ve={class:`text-[11px] font-medium text-muted-foreground/60`},He={key:0,class:`flex items-center justify-center py-16 text-muted-foreground text-sm`},Ue={class:`flex bg-card border border-border rounded-lg overflow-hidden`},We={class:`flex-1 px-3.5 py-2 border-r border-border`},Ge={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Ke={class:`text-[13px] font-mono font-semibold text-foreground`},qe={class:`flex-1 px-3.5 py-2 border-r border-border`},Je={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Ye={class:`text-[13px] font-mono font-semibold text-success`},Xe={class:`flex-1 px-3.5 py-2 border-r border-border`},Ze={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Qe={class:`text-[13px] font-mono font-semibold text-warning`},$e={class:`flex-1 px-3.5 py-2`},et={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},tt={class:`text-[13px] font-mono font-semibold text-foreground`},nt={class:`bg-card border border-border rounded-lg overflow-hidden`},rt=[`onClick`],it={class:`font-mono text-[13px] font-semibold text-foreground shrink-0`},at={key:0,class:`font-mono text-[10px] px-[7px] py-px rounded-full bg-primary/15 text-primary`},ot={key:1,class:`font-mono text-[10px] px-[7px] py-px rounded-full bg-foreground/5 text-muted-foreground`},st={class:`flex-1 flex flex-wrap gap-1 min-w-0`},ct={key:0,class:`text-[10px] text-muted-foreground/50 self-center`},lt={class:`px-4 py-3 border-t border-border`},ut={class:`text-[11px] font-semibold text-muted-foreground mb-2`},dt={class:`pl-11`},ft={key:0,class:`text-[11px] font-medium text-muted-foreground`},pt={key:1,class:`flex flex-wrap gap-1`},mt={class:`flex flex-wrap gap-1`},ht={class:`text-muted-foreground/60 font-mono text-[10px]`},gt={class:`text-muted-foreground`},_t={class:`flex items-center justify-end gap-1`},vt={key:0,class:`py-12 text-center text-xs text-muted-foreground`},yt={key:0,class:`bg-destructive/10 border border-destructive/30 rounded-md px-3 py-2 text-sm text-destructive`},bt={class:`grid grid-cols-2 gap-3`},xt={key:0,class:`text-xs text-destructive mt-0.5`},St={class:`flex flex-wrap gap-1.5`},Ct={key:0,class:`text-xs text-destructive mt-0.5`},wt={class:`flex items-center gap-2 mb-2`},Tt={class:`flex gap-1.5`},Et={class:`grid grid-cols-2 gap-3`},Dt={key:0,class:`text-xs text-destructive mt-0.5`},Ot={key:0,class:`text-xs text-destructive mt-0.5`},kt={class:`grid grid-cols-2 gap-4`},At={class:`border rounded-md p-3 space-y-3`},jt={class:`text-xs font-medium text-muted-foreground`},Mt={class:`border rounded-md p-3 space-y-3`},Nt={class:`text-xs font-medium text-muted-foreground`},Z=p({__name:`Schedules`,setup(l){let{t:p}=r(),M=s(()=>[p(`schedules.weekDays.sun`),p(`schedules.weekDays.mon`),p(`schedules.weekDays.tue`),p(`schedules.weekDays.wed`),p(`schedules.weekDays.thu`),p(`schedules.weekDays.fri`),p(`schedules.weekDays.sat`)]),N=a(!1),P=a([]),I=a([]),L=a([]),R=a(null),z=a(!1),B=a(null),V=a(``),H=a(null),U=a(Ee()),W=a({}),G=a(``),K=a(De()),q=s({get:()=>({mode:U.value.concurrency_mode,max_concurrency:U.value.max_concurrency,queue_timeout_ms:U.value.queue_timeout_ms,max_queue_size:U.value.max_queue_size}),set:e=>{U.value.concurrency_mode=e.mode,U.value.max_concurrency=e.max_concurrency,U.value.queue_timeout_ms=e.queue_timeout_ms,U.value.max_queue_size=e.max_queue_size}}),J=s(()=>{let e={};for(let t of L.value)e[t.mapping_group_id]||(e[t.mapping_group_id]=[]),e[t.mapping_group_id].push(t);return e}),Y=s(()=>L.value.filter(e=>e.enabled).length),X=s(()=>L.value.filter(e=>!e.enabled).length),Fe=s(()=>{let e=new Set;for(let t of L.value)t.enabled&&F(t.week).forEach(t=>e.add(t));return e.size}),Z=s(()=>({clientModel:P.value.find(e=>e.id===V.value)?.client_model??``,targets:U.value.targets,existing:!1,tag:`cust`,active:!0})),Pt=s(()=>we(I.value,{includeStreamTimeout:!1}));function Ft(e){return Oe(e,p)}function It(e){return ke(e,I.value)}function Lt(e){return Ae(e)}function Rt(e){let t=M.value;return F(e).map(e=>t[e]??`${e}`)}function zt(e){return(J.value[e]??[]).map(e=>({name:e.name,days:F(e.week),startHour:e.start_hour,endHour:e.end_hour,enabled:!!e.enabled}))}function Bt(e){let t=J.value[e]??[];return t.length>0&&t.every(e=>e.enabled)}function Vt(e){return(J.value[e]?.length??0)>0}function Ht(e){U.value.targets=e}function Q(e,t){U.value.start_hour=e,U.value.end_hour=t,delete W.value.time}function Ut(e){R.value=R.value===e?null:e}function Wt(e){let t=U.value.week.indexOf(e);t>=0?U.value.week.splice(t,1):U.value.week.push(e),delete W.value.week}async function Gt(){try{P.value=await m.getMappingGroups()}catch(e){console.error(`schedules.loadGroups:`,e),D.error(t(e,p(`schedules.loadGroupsFailed`)))}}async function Kt(){try{I.value=await m.getProviders()}catch(e){console.error(`schedules.loadProviders:`,e),D.error(t(e,p(`schedules.loadProvidersFailed`)))}}async function $(){try{L.value=await m.getSchedules()}catch(e){console.error(`schedules.loadAll:`,e),D.error(t(e,p(`schedules.loadSchedulesFailed`)))}}function qt(e){B.value=null,V.value=e,U.value=Ee(),K.value=De(),W.value={},G.value=``,z.value=!0}function Jt(e){B.value=e.id,V.value=e.mapping_group_id,W.value={},G.value=``;let{data:t,warnings:n}=je(e,p);for(let e of n)D.error(e);U.value=t.form,K.value=t.transform,z.value=!0}async function Yt(){G.value=``;let e=Ne(U.value,p);if(W.value=e,Object.keys(e).length>0)return;let{rule:n,errorKey:r}=Pe(K.value);if(r){D.error(p(r));return}try{let e=Me({form:U.value,transform:K.value},V.value,n);B.value?await m.updateSchedule(B.value,e):await m.createSchedule(e),z.value=!1,await $()}catch(e){G.value=t(e,p(`schedules.saveFailed`))}}async function Xt(e){try{await m.toggleSchedule(e.id),await $()}catch(e){console.error(`schedules.toggle:`,e),D.error(t(e,p(`schedules.toggleFailed`)))}}async function Zt(){let e=H.value;if(e){H.value=null;try{await m.deleteSchedule(e.id),await $()}catch(e){console.error(`schedules.delete:`,e),D.error(t(e,p(`schedules.deleteFailed`)))}}}return ee(async()=>{N.value=!0,await Promise.allSettled([Gt(),Kt(),$()]),N.value=!1}),(t,r)=>(f(),d(`div`,Le,[u(`div`,Re,[u(`div`,ze,[u(`h2`,Be,c(n(p)(`schedules.title`)),1),u(`p`,Ve,c(n(p)(`schedules.description`)),1)])]),N.value?(f(),d(`div`,He,c(n(p)(`common.loading`)),1)):e(``,!0),N.value?e(``,!0):(f(),d(i,{key:1},[u(`div`,Ue,[u(`div`,We,[u(`div`,Ge,c(n(p)(`schedules.stats.groupCount`)),1),u(`div`,Ke,c(P.value.length),1)]),u(`div`,qe,[u(`div`,Je,c(n(p)(`schedules.stats.activeRules`)),1),u(`div`,Ye,c(Y.value),1)]),u(`div`,Xe,[u(`div`,Ze,c(n(p)(`schedules.stats.disabledRules`)),1),u(`div`,Qe,c(X.value),1)]),u(`div`,$e,[u(`div`,et,c(n(p)(`schedules.stats.coveredDays`)),1),u(`div`,tt,c(Fe.value)+`/7 `,1)])]),u(`div`,nt,[(f(!0),d(i,null,x(P.value,(t,r)=>(f(),d(`div`,{key:t.id,class:y({"border-t border-border":r>0})},[u(`div`,{class:y([`flex items-center gap-2.5 h-10 px-4 cursor-pointer transition-colors hover:bg-muted/40`,{"bg-muted/40":R.value===t.id}]),onClick:e=>Ut(t.id)},[b(n(C),{class:y([`size-3.5 text-muted-foreground/40 shrink-0 transition-transform`,{"rotate-90":R.value===t.id}])},null,8,[`class`]),u(`span`,it,c(t.client_model),1),J.value[t.id]?.length?(f(),d(`span`,at,c(n(p)(`schedules.ruleCount`,{count:J.value[t.id].length})),1)):(f(),d(`span`,ot,c(n(p)(`schedules.noRules`)),1)),u(`div`,st,[(f(!0),d(i,null,x((J.value[t.id]??[]).slice(0,3),e=>(f(),d(`span`,{key:e.id,class:`text-[11px] font-medium px-1.5 py-px rounded bg-foreground/5 text-muted-foreground`},c(e.name),1))),128)),(J.value[t.id]?.length??0)>3?(f(),d(`span`,ct,`+`+c(J.value[t.id].length-3),1)):e(``,!0)]),u(`span`,{class:y([`size-1.5 rounded-full shrink-0`,Bt(t.id)?`bg-success`:Vt(t.id)?`bg-warning`:``])},null,2)],10,rt),R.value===t.id?(f(),d(i,{key:0},[u(`div`,lt,[u(`div`,ut,c(n(p)(`schedules.timeline.weekView`)),1),b(Ie,{rules:zt(t.id)},null,8,[`rules`])]),u(`div`,dt,[b(n(Se),null,{default:h(()=>[b(n(Ce),null,{default:h(()=>[b(n(j),{class:`bg-muted/30 dark:bg-muted/50`},{default:h(()=>[b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`16%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.name`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`14%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.week`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`14%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.timeRange`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`10%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.status`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`30%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.targets`)),1)]),_:1}),b(n(A),{class:`text-right text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`16%`}},{default:h(()=>[b(n(g),{size:`xs`,variant:`ghost`,class:`h-5 text-[11px]`,onClick:e=>qt(t.id)},{default:h(()=>[b(n(re),{class:`w-3 h-3 mr-1`}),_(c(n(p)(`schedules.createSchedule`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024),b(n(xe),null,{default:h(()=>[(f(!0),d(i,null,x(J.value[t.id]??[],e=>(f(),o(n(j),{key:e.id,class:`hover:bg-muted/40`},{default:h(()=>[b(n(k),{class:`font-medium text-[13px] h-9`},{default:h(()=>[_(c(e.name),1)]),_:2},1024),b(n(k),{class:`h-9`},{default:h(()=>[Ft(e.week)?(f(),d(`span`,ft,c(Ft(e.week)),1)):(f(),d(`div`,pt,[(f(!0),d(i,null,x(Rt(e.week),e=>(f(),d(`span`,{key:e,class:`text-[11px] font-medium px-1.5 py-px rounded bg-foreground/5 text-muted-foreground`},c(e),1))),128))]))]),_:2},1024),b(n(k),{class:`font-mono text-[12px] font-medium h-9`},{default:h(()=>[_(c(Lt(e.start_hour))+`-`+c(Lt(e.end_hour)),1)]),_:2},1024),b(n(k),{class:`h-9`},{default:h(()=>[u(`span`,{class:y([`inline-flex items-center gap-1.5 text-[11px] font-semibold`,e.enabled?`text-success`:`text-muted-foreground/60`])},[u(`span`,{class:y([`size-1.5 rounded-full`,e.enabled?`bg-success`:`bg-muted-foreground/50`])},null,2),_(` `+c(e.enabled?n(p)(`schedules.enabled`):n(p)(`schedules.disabled`)),1)],2)]),_:2},1024),b(n(k),{class:`h-9`},{default:h(()=>[u(`div`,mt,[(f(!0),d(i,null,x(It(e.mapping_rule),(e,t)=>(f(),d(`span`,{key:t,class:`inline-flex items-center gap-0.5 px-1.5 py-px rounded text-[11px] font-medium bg-foreground/5`},[u(`span`,ht,c(e.provider)+`/`,1),u(`span`,gt,c(e.model),1)]))),128))])]),_:2},1024),b(n(k),{class:`h-9 text-right`},{default:h(()=>[u(`div`,_t,[b(n(ce),{"model-value":!!e.enabled,class:`scale-75`,onClick:v(t=>Xt(e),[`stop`])},null,8,[`model-value`,`onClick`]),b(n(g),{variant:`ghost`,size:`icon`,class:`size-6`,onClick:t=>Jt(e)},{default:h(()=>[b(n(ne),{class:`size-3.5`})]),_:1},8,[`onClick`]),b(n(g),{variant:`ghost`,size:`icon`,class:`size-6 hover:bg-destructive/10 text-destructive`,onClick:t=>H.value=e},{default:h(()=>[b(n(w),{class:`size-3.5`})]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024))),128)),J.value[t.id]?.length?e(``,!0):(f(),o(n(j),{key:0},{default:h(()=>[b(n(k),{colspan:`6`,class:`text-center text-muted-foreground py-6 text-xs`},{default:h(()=>[_(c(n(p)(`schedules.emptyRules`)),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)])],64)):e(``,!0)],2))),128)),P.value.length===0?(f(),d(`p`,vt,c(n(p)(`schedules.noGroups`)),1)):e(``,!0)])],64)),b(n(ae),{open:z.value,"onUpdate:open":r[12]||=e=>z.value=e},{default:h(()=>[b(n(T),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:h(()=>[b(n(ie),null,{default:h(()=>[b(n(se),null,{default:h(()=>[_(c(B.value?n(p)(`schedules.editSchedule`):n(p)(`schedules.createSchedule`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:v(Yt,[`prevent`]),class:`space-y-4`},[G.value?(f(),d(`div`,yt,c(G.value),1)):e(``,!0),u(`div`,bt,[u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.form.name`)),1)]),_:1}),b(n(be),{modelValue:U.value.name,"onUpdate:modelValue":r[0]||=e=>U.value.name=e,class:`mt-1`,placeholder:n(p)(`schedules.form.namePlaceholder`),onInput:r[1]||=e=>delete W.value.name},null,8,[`modelValue`,`placeholder`]),W.value.name?(f(),d(`p`,xt,c(W.value.name),1)):e(``,!0)]),u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground mb-1.5 block`},{default:h(()=>[_(c(n(p)(`schedules.form.week`)),1)]),_:1}),u(`div`,St,[(f(!0),d(i,null,x(M.value,(e,t)=>(f(),o(n(g),{key:t,type:`button`,variant:(U.value.week??[]).includes(t)?`default`:`outline`,size:`sm`,class:`h-7 text-xs`,onClick:e=>Wt(t)},{default:h(()=>[_(c(e),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),W.value.week?(f(),d(`p`,Ct,c(W.value.week),1)):e(``,!0)])]),u(`div`,null,[u(`div`,wt,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.timePresets.label`)),1)]),_:1}),u(`div`,Tt,[b(n(g),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[2]||=e=>Q(9,12)},{default:h(()=>[_(c(n(p)(`schedules.timePresets.morning`)),1)]),_:1}),b(n(g),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[3]||=e=>Q(14,18)},{default:h(()=>[_(c(n(p)(`schedules.timePresets.afternoon`)),1)]),_:1}),b(n(g),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[4]||=e=>Q(19,21)},{default:h(()=>[_(c(n(p)(`schedules.timePresets.evening`)),1)]),_:1})])]),u(`div`,Et,[u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.form.startTime`)),1)]),_:1}),b(n(ye),{modelValue:U.value.start_hour,"onUpdate:modelValue":[r[5]||=e=>U.value.start_hour=e,r[6]||=e=>{U.value.start_hour=Number(e),delete W.value.time}],class:`mt-1`},{default:h(()=>[b(n(fe),null,{default:h(()=>[b(n(me),{placeholder:n(p)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),b(n(le),null,{default:h(()=>[(f(),d(i,null,x(24,e=>b(n(O),{key:e-1,value:e-1},{default:h(()=>[_(c(String(e-1).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.form.endTime`)),1)]),_:1}),b(n(ye),{modelValue:U.value.end_hour,"onUpdate:modelValue":[r[7]||=e=>U.value.end_hour=e,r[8]||=e=>{U.value.end_hour=Number(e),delete W.value.time}],class:`mt-1`},{default:h(()=>[b(n(fe),null,{default:h(()=>[b(n(me),{placeholder:n(p)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),b(n(le),null,{default:h(()=>[(f(),d(i,null,x(24,e=>b(n(O),{key:e,value:e},{default:h(()=>[_(c(String(e).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])])]),W.value.time?(f(),d(`p`,Dt,c(W.value.time),1)):e(``,!0)]),u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground mb-1 block`},{default:h(()=>[_(c(n(p)(`schedules.form.targets`)),1)]),_:1}),b(S,{entry:Z.value,"provider-groups":Pt.value,expanded:!0,editable:!0,"onUpdate:targets":Ht},null,8,[`entry`,`provider-groups`]),W.value.targets?(f(),d(`p`,Ot,c(W.value.targets),1)):e(``,!0)]),u(`div`,kt,[u(`div`,At,[u(`div`,jt,c(n(p)(`schedules.form.concurrencyTitle`)),1),b(te,{modelValue:q.value,"onUpdate:modelValue":r[9]||=e=>q.value=e,compact:``},null,8,[`modelValue`])]),u(`div`,Mt,[u(`div`,Nt,c(n(p)(`providers.transform.title`)),1),b(Te,{modelValue:K.value,"onUpdate:modelValue":r[10]||=e=>K.value=e,compact:``},null,8,[`modelValue`])])]),b(n(oe),null,{default:h(()=>[b(n(g),{type:`button`,variant:`outline`,onClick:r[11]||=e=>z.value=!1},{default:h(()=>[_(c(n(p)(`common.cancel`)),1)]),_:1}),b(n(g),{type:`submit`},{default:h(()=>[_(c(n(p)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),b(n(ge),{open:!!H.value,"onUpdate:open":r[13]||=e=>{e||(H.value=null)}},{default:h(()=>[b(n(ve),null,{default:h(()=>[b(n(_e),null,{default:h(()=>[b(n(he),null,{default:h(()=>[_(c(n(p)(`schedules.confirmDeleteTitle`)),1)]),_:1}),b(n(pe),null,{default:h(()=>[_(c(n(p)(`schedules.confirmDeleteMessage`,{name:H.value?.name??``})),1)]),_:1})]),_:1}),b(n(ue),null,{default:h(()=>[b(n(de),null,{default:h(()=>[_(c(n(p)(`common.cancel`)),1)]),_:1}),b(n(g),{variant:`destructive`,onClick:Zt},{default:h(()=>[_(c(n(p)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Z as default};
|
|
1
|
+
import{$ as e,A as t,Gt as n,H as r,J as i,Lt as a,Q as o,X as s,Xt as c,Yt as l,Z as u,et as d,gt as f,it as p,k as m,kt as h,mt as ee,n as g,nt as _,q as v,qt as y,rt as b,vt as x}from"./button-Csj7G8uP.js";import{n as S,t as te}from"./ConcurrencyControl-B4mp9THM.js";import{t as C}from"./chevron-right-FH7bCAPL.js";import{t as ne}from"./pencil-C2mVN-qO.js";import{t as re}from"./plus-CtQvHS_r.js";import{t as w}from"./trash-2-BL7xrIYJ.js";import{a as T,n as ie,o as ae,r as oe,t as se}from"./dialog-DSOZukxC.js";import{t as E}from"./Label-BhSGa_Tn.js";import{t as ce}from"./Switch-BG35vWEq.js";import{_ as le,a as D,c as ue,d as de,g as O,h as fe,l as pe,m as me,o as he,p as ge,s as _e,u as ve,v as ye}from"./index-C-o8k1O4.js";import{t as be}from"./Input-BpmvwfP9.js";import{a as xe,i as k,n as A,o as Se,r as j,t as Ce}from"./TableHeader-_3-h6u2u.js";import{t as we}from"./useProviderGroups-Cgf0xLYZ.js";import{n as Te,r as M,t as N}from"./transform-domain-Dr6XoDiD.js";var P=Array.from({length:5},(e,t)=>t+1);function Ee(){return{name:``,week:[...P],start_hour:0,end_hour:24,targets:[{backend_model:``,provider_id:``}],concurrency_mode:`auto`,max_concurrency:M.max_concurrency,queue_timeout_ms:M.queue_timeout_ms,max_queue_size:M.max_queue_size}}function De(){return{injectHeaders:``,dropFields:``,requestDefaults:``}}function F(e){try{return JSON.parse(e)}catch{return[]}}function Oe(e,t){let n=F(e).sort((e,t)=>e-t);return n.length===7?t(`schedules.everyDay`):n.length===5&&n[0]===1&&n[4]===5?t(`schedules.weekdays`):n.length===2&&n[0]===0&&n[1]===6?t(`schedules.weekend`):null}function ke(e,t){try{return(JSON.parse(e).targets??[]).map(e=>({provider:t.find(t=>t.id===e.provider_id)?.name??e.provider_id,model:e.backend_model??``}))}catch{return[]}}function Ae(e){return`${e}`.padStart(2,`0`)+`:00`}function je(e,t){let n=[],r=[{backend_model:``,provider_id:``}];try{let t=JSON.parse(e.mapping_rule);t.targets?.length&&(r=t.targets)}catch{n.push(t(`schedules.parseRuleFailed`))}let i=[...P];try{i=JSON.parse(e.week)}catch{n.push(t(`schedules.parseWeekFailed`))}let a=`auto`,o=M.max_concurrency,s=M.queue_timeout_ms,c=M.max_queue_size;if(e.concurrency_rule)try{let t=JSON.parse(e.concurrency_rule);a=t.mode||`auto`,t.max_concurrency&&(o=t.max_concurrency),t.queue_timeout_ms&&(s=t.queue_timeout_ms),t.max_queue_size&&(c=t.max_queue_size)}catch{n.push(t(`schedules.parseConcurrencyFailed`))}let l=``,u=``,d=``;if(e.transform_rule)try{let t=JSON.parse(e.transform_rule);u=(t.drop_fields||[]).join(`, `),d=t.request_defaults?JSON.stringify(t.request_defaults):``,l=t.inject_headers?JSON.stringify(t.inject_headers):``}catch{n.push(t(`schedules.parseTransformFailed`))}return{data:{form:{name:e.name,week:i,start_hour:e.start_hour,end_hour:e.end_hour,targets:r,concurrency_mode:a,max_concurrency:o,queue_timeout_ms:s,max_queue_size:c},transform:{injectHeaders:l,dropFields:u,requestDefaults:d}},warnings:n}}function Me(e,t,n){let{form:r}=e,i=JSON.stringify({targets:r.targets}),a=r.concurrency_mode===`none`?null:JSON.stringify({mode:r.concurrency_mode,max_concurrency:r.max_concurrency,queue_timeout_ms:r.queue_timeout_ms,max_queue_size:r.max_queue_size});return{mapping_group_id:t,name:r.name,week:JSON.stringify(r.week),start_hour:r.start_hour,end_hour:r.end_hour,mapping_rule:i,concurrency_rule:a,transform_rule:n}}function Ne(e,t){let n={};e.name.trim()||(n.name=t(`schedules.form.nameRequired`)),e.week.length===0&&(n.week=t(`schedules.form.weekRequired`)),e.start_hour>=e.end_hour&&(n.time=t(`schedules.form.timeInvalid`));for(let r of e.targets)if(!r.provider_id||!r.backend_model){n.targets=t(`schedules.form.targetRequired`);break}return n}var I={injectHeadersJsonError:`providers.transform.injectHeadersJsonError`,requestDefaultsJsonError:`providers.transform.requestDefaultsJsonError`};function Pe(e){let{rule:t,errorKey:n}=N({injectHeaders:e.injectHeaders,dropFields:e.dropFields,requestDefaults:e.requestDefaults});return{rule:t,errorKey:n?I[n]??n:null}}var L={class:`flex flex-col`},R={class:`w-7 shrink-0 text-[11px] font-medium text-muted-foreground text-right select-none`},z={class:`absolute inset-0 grid`,style:{gridTemplateColumns:`repeat(24, 1fr)`}},B={key:0,class:`truncate`},V={key:1,class:`hidden group-hover:block absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 bg-popover text-popover-foreground border rounded-md shadow-lg px-2.5 py-1.5 z-30 whitespace-nowrap text-[11px]`},H={class:`font-semibold whitespace-nowrap`},U={class:`font-mono text-[11px] text-muted-foreground whitespace-nowrap`},W={class:`flex items-center gap-2 mt-0.5`},G={class:`flex-1 grid`,style:{gridTemplateColumns:`repeat(24, 1fr)`}},K=24,q=5,J=3,Y=100,X=7,Fe=10,Ie=p({__name:`WeekTimeline`,props:{rules:{}},setup(t){let a=t,{t:o,te:p}=r(),m=X-1,h=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],ee=[...P,6,0],g=[`oklch(0.68 0.13 175 / 70%)`,`oklch(0.68 0.13 175 / 50%)`,`oklch(0.68 0.13 175 / 35%)`,`oklch(0.68 0.13 175 / 25%)`],_=Array.from({length:X},(e,t)=>t),v=Array.from({length:Math.ceil(K/J)},(e,t)=>t*J),b=Array.from({length:K},(e,t)=>t),S=s(()=>{let e=[[],[],[],[],[],[],[]];for(let t of a.rules)for(let n of t.days)n>=0&&n<=m&&e[ee.indexOf(n)].push(t);return e});function te(e){let t=`schedules.weekDays.${h[e]}`;return p(t)?o(t):{mon:`周一`,tue:`周二`,wed:`周三`,thu:`周四`,fri:`周五`,sat:`周六`,sun:`周日`}[h[e]]??``}function C(e){return S.value[e].length>0}function ne(e){let t=e.startHour/K*Y,n=(e.endHour-e.startHour)/K*Y;return{left:`${t}%`,width:`${n}%`}}function re(e){return g[a.rules.indexOf(e)%g.length]}function w(e){return e.endHour-e.startHour<q}function T(e){return e<Fe?`0${e}:00`:`${e}:00`}return(t,r)=>(f(),d(`div`,L,[(f(!0),d(i,null,x(n(_),t=>(f(),d(`div`,{key:t,class:y([`flex items-center gap-2 h-6`,{"opacity-35":!C(t)}])},[u(`div`,R,c(te(t)),1),u(`div`,{class:y([`flex-1 relative h-full rounded-sm overflow-visible`,C(t)?`bg-black/[0.06] dark:bg-white/[0.07]`:`bg-black/[0.03] dark:bg-white/[0.03]`])},[u(`div`,z,[(f(!0),d(i,null,x(n(b),e=>(f(),d(`div`,{key:e,class:`border-r border-border/30 dark:border-white/10 last:border-r-0`}))),128))]),(f(!0),d(i,null,x(S.value[t],n=>(f(),d(`div`,{key:n.name+t,class:y([`absolute top-0.5 bottom-0.5 rounded-sm flex items-center px-1 text-[10px] font-semibold overflow-hidden whitespace-nowrap cursor-default z-10 transition-[filter] duration-100 hover:z-20 hover:brightness-[1.15] group`,[n.enabled?``:`bg-transparent !border-dashed border-[1.5px] border-muted-foreground/50 text-muted-foreground/60`]]),style:l({...ne(n),...n.enabled?{background:re(n),color:`oklch(0.145 0 0)`}:{}})},[w(n)?e(``,!0):(f(),d(`span`,B,c(n.name),1)),w(n)?(f(),d(`div`,V,[u(`div`,H,c(n.name),1),u(`div`,U,c(T(n.startHour))+` - `+c(T(n.endHour)),1)])):e(``,!0)],6))),128))],2)],2))),128)),u(`div`,W,[r[0]||=u(`div`,{class:`w-7 shrink-0`},null,-1),u(`div`,G,[(f(!0),d(i,null,x(n(v),e=>(f(),d(`div`,{key:e,class:`font-mono text-[10px] text-muted-foreground text-left pl-0.5 leading-4`,style:l({gridColumn:`${e+1} / span 3`})},c(T(e)),5))),128))])])]))}}),Le={class:`page space-y-3`},Re={class:`flex items-center justify-between`},ze={class:`flex flex-col gap-0.5`},Be={class:`text-base font-semibold text-foreground`},Ve={class:`text-[11px] font-medium text-muted-foreground/60`},He={key:0,class:`flex items-center justify-center py-16 text-muted-foreground text-sm`},Ue={class:`flex bg-card border border-border rounded-lg overflow-hidden`},We={class:`flex-1 px-3.5 py-2 border-r border-border`},Ge={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Ke={class:`text-[13px] font-mono font-semibold text-foreground`},qe={class:`flex-1 px-3.5 py-2 border-r border-border`},Je={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Ye={class:`text-[13px] font-mono font-semibold text-success`},Xe={class:`flex-1 px-3.5 py-2 border-r border-border`},Ze={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Qe={class:`text-[13px] font-mono font-semibold text-warning`},$e={class:`flex-1 px-3.5 py-2`},et={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},tt={class:`text-[13px] font-mono font-semibold text-foreground`},nt={class:`bg-card border border-border rounded-lg overflow-hidden`},rt=[`onClick`],it={class:`font-mono text-[13px] font-semibold text-foreground shrink-0`},at={key:0,class:`font-mono text-[10px] px-[7px] py-px rounded-full bg-primary/15 text-primary`},ot={key:1,class:`font-mono text-[10px] px-[7px] py-px rounded-full bg-foreground/5 text-muted-foreground`},st={class:`flex-1 flex flex-wrap gap-1 min-w-0`},ct={key:0,class:`text-[10px] text-muted-foreground/50 self-center`},lt={class:`px-4 py-3 border-t border-border`},ut={class:`text-[11px] font-semibold text-muted-foreground mb-2`},dt={class:`pl-11`},ft={key:0,class:`text-[11px] font-medium text-muted-foreground`},pt={key:1,class:`flex flex-wrap gap-1`},mt={class:`flex flex-wrap gap-1`},ht={class:`text-muted-foreground/60 font-mono text-[10px]`},gt={class:`text-muted-foreground`},_t={class:`flex items-center justify-end gap-1`},vt={key:0,class:`py-12 text-center text-xs text-muted-foreground`},yt={key:0,class:`bg-destructive/10 border border-destructive/30 rounded-md px-3 py-2 text-sm text-destructive`},bt={class:`grid grid-cols-2 gap-3`},xt={key:0,class:`text-xs text-destructive mt-0.5`},St={class:`flex flex-wrap gap-1.5`},Ct={key:0,class:`text-xs text-destructive mt-0.5`},wt={class:`flex items-center gap-2 mb-2`},Tt={class:`flex gap-1.5`},Et={class:`grid grid-cols-2 gap-3`},Dt={key:0,class:`text-xs text-destructive mt-0.5`},Ot={key:0,class:`text-xs text-destructive mt-0.5`},kt={class:`grid grid-cols-2 gap-4`},At={class:`border rounded-md p-3 space-y-3`},jt={class:`text-xs font-medium text-muted-foreground`},Mt={class:`border rounded-md p-3 space-y-3`},Nt={class:`text-xs font-medium text-muted-foreground`},Z=p({__name:`Schedules`,setup(l){let{t:p}=r(),M=s(()=>[p(`schedules.weekDays.sun`),p(`schedules.weekDays.mon`),p(`schedules.weekDays.tue`),p(`schedules.weekDays.wed`),p(`schedules.weekDays.thu`),p(`schedules.weekDays.fri`),p(`schedules.weekDays.sat`)]),N=a(!1),P=a([]),I=a([]),L=a([]),R=a(null),z=a(!1),B=a(null),V=a(``),H=a(null),U=a(Ee()),W=a({}),G=a(``),K=a(De()),q=s({get:()=>({mode:U.value.concurrency_mode,max_concurrency:U.value.max_concurrency,queue_timeout_ms:U.value.queue_timeout_ms,max_queue_size:U.value.max_queue_size}),set:e=>{U.value.concurrency_mode=e.mode,U.value.max_concurrency=e.max_concurrency,U.value.queue_timeout_ms=e.queue_timeout_ms,U.value.max_queue_size=e.max_queue_size}}),J=s(()=>{let e={};for(let t of L.value)e[t.mapping_group_id]||(e[t.mapping_group_id]=[]),e[t.mapping_group_id].push(t);return e}),Y=s(()=>L.value.filter(e=>e.enabled).length),X=s(()=>L.value.filter(e=>!e.enabled).length),Fe=s(()=>{let e=new Set;for(let t of L.value)t.enabled&&F(t.week).forEach(t=>e.add(t));return e.size}),Z=s(()=>({clientModel:P.value.find(e=>e.id===V.value)?.client_model??``,targets:U.value.targets,existing:!1,tag:`cust`,active:!0})),Pt=s(()=>we(I.value,{includeStreamTimeout:!1}));function Ft(e){return Oe(e,p)}function It(e){return ke(e,I.value)}function Lt(e){return Ae(e)}function Rt(e){let t=M.value;return F(e).map(e=>t[e]??`${e}`)}function zt(e){return(J.value[e]??[]).map(e=>({name:e.name,days:F(e.week),startHour:e.start_hour,endHour:e.end_hour,enabled:!!e.enabled}))}function Bt(e){let t=J.value[e]??[];return t.length>0&&t.every(e=>e.enabled)}function Vt(e){return(J.value[e]?.length??0)>0}function Ht(e){U.value.targets=e}function Q(e,t){U.value.start_hour=e,U.value.end_hour=t,delete W.value.time}function Ut(e){R.value=R.value===e?null:e}function Wt(e){let t=U.value.week.indexOf(e);t>=0?U.value.week.splice(t,1):U.value.week.push(e),delete W.value.week}async function Gt(){try{P.value=await m.getMappingGroups()}catch(e){console.error(`schedules.loadGroups:`,e),D.error(t(e,p(`schedules.loadGroupsFailed`)))}}async function Kt(){try{I.value=await m.getProviders()}catch(e){console.error(`schedules.loadProviders:`,e),D.error(t(e,p(`schedules.loadProvidersFailed`)))}}async function $(){try{L.value=await m.getSchedules()}catch(e){console.error(`schedules.loadAll:`,e),D.error(t(e,p(`schedules.loadSchedulesFailed`)))}}function qt(e){B.value=null,V.value=e,U.value=Ee(),K.value=De(),W.value={},G.value=``,z.value=!0}function Jt(e){B.value=e.id,V.value=e.mapping_group_id,W.value={},G.value=``;let{data:t,warnings:n}=je(e,p);for(let e of n)D.error(e);U.value=t.form,K.value=t.transform,z.value=!0}async function Yt(){G.value=``;let e=Ne(U.value,p);if(W.value=e,Object.keys(e).length>0)return;let{rule:n,errorKey:r}=Pe(K.value);if(r){D.error(p(r));return}try{let e=Me({form:U.value,transform:K.value},V.value,n);B.value?await m.updateSchedule(B.value,e):await m.createSchedule(e),z.value=!1,await $()}catch(e){G.value=t(e,p(`schedules.saveFailed`))}}async function Xt(e){try{await m.toggleSchedule(e.id),await $()}catch(e){console.error(`schedules.toggle:`,e),D.error(t(e,p(`schedules.toggleFailed`)))}}async function Zt(){let e=H.value;if(e){H.value=null;try{await m.deleteSchedule(e.id),await $()}catch(e){console.error(`schedules.delete:`,e),D.error(t(e,p(`schedules.deleteFailed`)))}}}return ee(async()=>{N.value=!0,await Promise.allSettled([Gt(),Kt(),$()]),N.value=!1}),(t,r)=>(f(),d(`div`,Le,[u(`div`,Re,[u(`div`,ze,[u(`h2`,Be,c(n(p)(`schedules.title`)),1),u(`p`,Ve,c(n(p)(`schedules.description`)),1)])]),N.value?(f(),d(`div`,He,c(n(p)(`common.loading`)),1)):e(``,!0),N.value?e(``,!0):(f(),d(i,{key:1},[u(`div`,Ue,[u(`div`,We,[u(`div`,Ge,c(n(p)(`schedules.stats.groupCount`)),1),u(`div`,Ke,c(P.value.length),1)]),u(`div`,qe,[u(`div`,Je,c(n(p)(`schedules.stats.activeRules`)),1),u(`div`,Ye,c(Y.value),1)]),u(`div`,Xe,[u(`div`,Ze,c(n(p)(`schedules.stats.disabledRules`)),1),u(`div`,Qe,c(X.value),1)]),u(`div`,$e,[u(`div`,et,c(n(p)(`schedules.stats.coveredDays`)),1),u(`div`,tt,c(Fe.value)+`/7 `,1)])]),u(`div`,nt,[(f(!0),d(i,null,x(P.value,(t,r)=>(f(),d(`div`,{key:t.id,class:y({"border-t border-border":r>0})},[u(`div`,{class:y([`flex items-center gap-2.5 h-10 px-4 cursor-pointer transition-colors hover:bg-muted/40`,{"bg-muted/40":R.value===t.id}]),onClick:e=>Ut(t.id)},[b(n(C),{class:y([`size-3.5 text-muted-foreground/40 shrink-0 transition-transform`,{"rotate-90":R.value===t.id}])},null,8,[`class`]),u(`span`,it,c(t.client_model),1),J.value[t.id]?.length?(f(),d(`span`,at,c(n(p)(`schedules.ruleCount`,{count:J.value[t.id].length})),1)):(f(),d(`span`,ot,c(n(p)(`schedules.noRules`)),1)),u(`div`,st,[(f(!0),d(i,null,x((J.value[t.id]??[]).slice(0,3),e=>(f(),d(`span`,{key:e.id,class:`text-[11px] font-medium px-1.5 py-px rounded bg-foreground/5 text-muted-foreground`},c(e.name),1))),128)),(J.value[t.id]?.length??0)>3?(f(),d(`span`,ct,`+`+c(J.value[t.id].length-3),1)):e(``,!0)]),u(`span`,{class:y([`size-1.5 rounded-full shrink-0`,Bt(t.id)?`bg-success`:Vt(t.id)?`bg-warning`:``])},null,2)],10,rt),R.value===t.id?(f(),d(i,{key:0},[u(`div`,lt,[u(`div`,ut,c(n(p)(`schedules.timeline.weekView`)),1),b(Ie,{rules:zt(t.id)},null,8,[`rules`])]),u(`div`,dt,[b(n(Se),null,{default:h(()=>[b(n(Ce),null,{default:h(()=>[b(n(j),{class:`bg-muted/30 dark:bg-muted/50`},{default:h(()=>[b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`16%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.name`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`14%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.week`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`14%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.timeRange`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`10%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.status`)),1)]),_:1}),b(n(A),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`30%`}},{default:h(()=>[_(c(n(p)(`schedules.tableHeaders.targets`)),1)]),_:1}),b(n(A),{class:`text-right text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`16%`}},{default:h(()=>[b(n(g),{size:`xs`,variant:`ghost`,class:`h-5 text-[11px]`,onClick:e=>qt(t.id)},{default:h(()=>[b(n(re),{class:`w-3 h-3 mr-1`}),_(c(n(p)(`schedules.createSchedule`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024),b(n(xe),null,{default:h(()=>[(f(!0),d(i,null,x(J.value[t.id]??[],e=>(f(),o(n(j),{key:e.id,class:`hover:bg-muted/40`},{default:h(()=>[b(n(k),{class:`font-medium text-[13px] h-9`},{default:h(()=>[_(c(e.name),1)]),_:2},1024),b(n(k),{class:`h-9`},{default:h(()=>[Ft(e.week)?(f(),d(`span`,ft,c(Ft(e.week)),1)):(f(),d(`div`,pt,[(f(!0),d(i,null,x(Rt(e.week),e=>(f(),d(`span`,{key:e,class:`text-[11px] font-medium px-1.5 py-px rounded bg-foreground/5 text-muted-foreground`},c(e),1))),128))]))]),_:2},1024),b(n(k),{class:`font-mono text-[12px] font-medium h-9`},{default:h(()=>[_(c(Lt(e.start_hour))+`-`+c(Lt(e.end_hour)),1)]),_:2},1024),b(n(k),{class:`h-9`},{default:h(()=>[u(`span`,{class:y([`inline-flex items-center gap-1.5 text-[11px] font-semibold`,e.enabled?`text-success`:`text-muted-foreground/60`])},[u(`span`,{class:y([`size-1.5 rounded-full`,e.enabled?`bg-success`:`bg-muted-foreground/50`])},null,2),_(` `+c(e.enabled?n(p)(`schedules.enabled`):n(p)(`schedules.disabled`)),1)],2)]),_:2},1024),b(n(k),{class:`h-9`},{default:h(()=>[u(`div`,mt,[(f(!0),d(i,null,x(It(e.mapping_rule),(e,t)=>(f(),d(`span`,{key:t,class:`inline-flex items-center gap-0.5 px-1.5 py-px rounded text-[11px] font-medium bg-foreground/5`},[u(`span`,ht,c(e.provider)+`/`,1),u(`span`,gt,c(e.model),1)]))),128))])]),_:2},1024),b(n(k),{class:`h-9 text-right`},{default:h(()=>[u(`div`,_t,[b(n(ce),{"model-value":!!e.enabled,class:`scale-75`,onClick:v(t=>Xt(e),[`stop`])},null,8,[`model-value`,`onClick`]),b(n(g),{variant:`ghost`,size:`icon`,class:`size-6`,onClick:t=>Jt(e)},{default:h(()=>[b(n(ne),{class:`size-3.5`})]),_:1},8,[`onClick`]),b(n(g),{variant:`ghost`,size:`icon`,class:`size-6 hover:bg-destructive/10 text-destructive`,onClick:t=>H.value=e},{default:h(()=>[b(n(w),{class:`size-3.5`})]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024))),128)),J.value[t.id]?.length?e(``,!0):(f(),o(n(j),{key:0},{default:h(()=>[b(n(k),{colspan:`6`,class:`text-center text-muted-foreground py-6 text-xs`},{default:h(()=>[_(c(n(p)(`schedules.emptyRules`)),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)])],64)):e(``,!0)],2))),128)),P.value.length===0?(f(),d(`p`,vt,c(n(p)(`schedules.noGroups`)),1)):e(``,!0)])],64)),b(n(ae),{open:z.value,"onUpdate:open":r[12]||=e=>z.value=e},{default:h(()=>[b(n(T),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:h(()=>[b(n(ie),null,{default:h(()=>[b(n(se),null,{default:h(()=>[_(c(B.value?n(p)(`schedules.editSchedule`):n(p)(`schedules.createSchedule`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:v(Yt,[`prevent`]),class:`space-y-4`},[G.value?(f(),d(`div`,yt,c(G.value),1)):e(``,!0),u(`div`,bt,[u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.form.name`)),1)]),_:1}),b(n(be),{modelValue:U.value.name,"onUpdate:modelValue":r[0]||=e=>U.value.name=e,class:`mt-1`,placeholder:n(p)(`schedules.form.namePlaceholder`),onInput:r[1]||=e=>delete W.value.name},null,8,[`modelValue`,`placeholder`]),W.value.name?(f(),d(`p`,xt,c(W.value.name),1)):e(``,!0)]),u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground mb-1.5 block`},{default:h(()=>[_(c(n(p)(`schedules.form.week`)),1)]),_:1}),u(`div`,St,[(f(!0),d(i,null,x(M.value,(e,t)=>(f(),o(n(g),{key:t,type:`button`,variant:(U.value.week??[]).includes(t)?`default`:`outline`,size:`sm`,class:`h-7 text-xs`,onClick:e=>Wt(t)},{default:h(()=>[_(c(e),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),W.value.week?(f(),d(`p`,Ct,c(W.value.week),1)):e(``,!0)])]),u(`div`,null,[u(`div`,wt,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.timePresets.label`)),1)]),_:1}),u(`div`,Tt,[b(n(g),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[2]||=e=>Q(9,12)},{default:h(()=>[_(c(n(p)(`schedules.timePresets.morning`)),1)]),_:1}),b(n(g),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[3]||=e=>Q(14,18)},{default:h(()=>[_(c(n(p)(`schedules.timePresets.afternoon`)),1)]),_:1}),b(n(g),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[4]||=e=>Q(19,21)},{default:h(()=>[_(c(n(p)(`schedules.timePresets.evening`)),1)]),_:1})])]),u(`div`,Et,[u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.form.startTime`)),1)]),_:1}),b(n(ye),{modelValue:U.value.start_hour,"onUpdate:modelValue":[r[5]||=e=>U.value.start_hour=e,r[6]||=e=>{U.value.start_hour=Number(e),delete W.value.time}],class:`mt-1`},{default:h(()=>[b(n(fe),null,{default:h(()=>[b(n(me),{placeholder:n(p)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),b(n(le),null,{default:h(()=>[(f(),d(i,null,x(24,e=>b(n(O),{key:e-1,value:e-1},{default:h(()=>[_(c(String(e-1).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(c(n(p)(`schedules.form.endTime`)),1)]),_:1}),b(n(ye),{modelValue:U.value.end_hour,"onUpdate:modelValue":[r[7]||=e=>U.value.end_hour=e,r[8]||=e=>{U.value.end_hour=Number(e),delete W.value.time}],class:`mt-1`},{default:h(()=>[b(n(fe),null,{default:h(()=>[b(n(me),{placeholder:n(p)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),b(n(le),null,{default:h(()=>[(f(),d(i,null,x(24,e=>b(n(O),{key:e,value:e},{default:h(()=>[_(c(String(e).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])])]),W.value.time?(f(),d(`p`,Dt,c(W.value.time),1)):e(``,!0)]),u(`div`,null,[b(n(E),{class:`text-xs text-muted-foreground mb-1 block`},{default:h(()=>[_(c(n(p)(`schedules.form.targets`)),1)]),_:1}),b(S,{entry:Z.value,"provider-groups":Pt.value,expanded:!0,editable:!0,"onUpdate:targets":Ht},null,8,[`entry`,`provider-groups`]),W.value.targets?(f(),d(`p`,Ot,c(W.value.targets),1)):e(``,!0)]),u(`div`,kt,[u(`div`,At,[u(`div`,jt,c(n(p)(`schedules.form.concurrencyTitle`)),1),b(te,{modelValue:q.value,"onUpdate:modelValue":r[9]||=e=>q.value=e,compact:``},null,8,[`modelValue`])]),u(`div`,Mt,[u(`div`,Nt,c(n(p)(`providers.transform.title`)),1),b(Te,{modelValue:K.value,"onUpdate:modelValue":r[10]||=e=>K.value=e,compact:``},null,8,[`modelValue`])])]),b(n(oe),null,{default:h(()=>[b(n(g),{type:`button`,variant:`outline`,onClick:r[11]||=e=>z.value=!1},{default:h(()=>[_(c(n(p)(`common.cancel`)),1)]),_:1}),b(n(g),{type:`submit`},{default:h(()=>[_(c(n(p)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),b(n(ge),{open:!!H.value,"onUpdate:open":r[13]||=e=>{e||(H.value=null)}},{default:h(()=>[b(n(ve),null,{default:h(()=>[b(n(_e),null,{default:h(()=>[b(n(he),null,{default:h(()=>[_(c(n(p)(`schedules.confirmDeleteTitle`)),1)]),_:1}),b(n(pe),null,{default:h(()=>[_(c(n(p)(`schedules.confirmDeleteMessage`,{name:H.value?.name??``})),1)]),_:1})]),_:1}),b(n(ue),null,{default:h(()=>[b(n(de),null,{default:h(()=>[_(c(n(p)(`common.cancel`)),1)]),_:1}),b(n(g),{variant:`destructive`,onClick:Zt},{default:h(()=>[_(c(n(p)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Z as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,L as o,Lt as s,Nt as c,Q as l,X as u,Xt as d,Yt as f,Z as p,dt as m,et as h,ft as g,gt as _,i as v,it as y,k as ee,kt as b,m as x,mt as te,n as S,nt as C,o as w,qt as T,r as E,rt as D,vt as ne,x as O,yt as k}from"./button-
|
|
1
|
+
import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,L as o,Lt as s,Nt as c,Q as l,X as u,Xt as d,Yt as f,Z as p,dt as m,et as h,ft as g,gt as _,i as v,it as y,k as ee,kt as b,m as x,mt as te,n as S,nt as C,o as w,qt as T,r as E,rt as D,vt as ne,x as O,yt as k}from"./button-Csj7G8uP.js";import{t as A}from"./Label-BhSGa_Tn.js";import{Q as re,Y as j,a as M,c as ie,d as ae,et as oe,f as se,l as ce,nt as le,o as ue,p as de,q as N,rt as fe,s as pe,u as me}from"./index-C-o8k1O4.js";import{t as P}from"./Card-OdDwacfm.js";import{t as F}from"./CardContent-B4x52Duv.js";import{n as I,t as L}from"./CardTitle-DtDJrCKi.js";import{t as R}from"./Input-BpmvwfP9.js";import{t as he}from"./useLogRetention-CRlHMqOD.js";var ge=o(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),_e=o(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),ve=o(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),z=100,[B,V]=j(`ProgressRoot`),H=e=>typeof e==`number`;function U(e,t){return N(e)||H(e)&&!Number.isNaN(e)&&e<=t&&e>=0?e:(console.error(`Invalid prop \`value\` of value \`${e}\` supplied to \`ProgressRoot\`. The \`value\` prop must be:
|
|
2
2
|
- a positive number
|
|
3
3
|
- less than the value passed to \`max\` (or ${z} if no \`max\` prop is set)
|
|
4
4
|
- \`null\` or \`undefined\` if the progress is indeterminate.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,F as n,Gt as r,H as i,Lt as a,Q as o,Xt as s,Z as c,et as l,gt as u,it as d,k as f,kt as p,n as m,nt as h,q as g,rt as _,z as v}from"./button-
|
|
1
|
+
import{$ as e,A as t,F as n,Gt as r,H as i,Lt as a,Q as o,Xt as s,Z as c,et as l,gt as u,it as d,k as f,kt as p,n as m,nt as h,q as g,rt as _,z as v}from"./button-Csj7G8uP.js";import{t as y}from"./Label-BhSGa_Tn.js";import{t as b}from"./AuthLayout-Dkh-09Aq.js";import{t as x}from"./Input-BpmvwfP9.js";var S={key:0,class:`text-destructive text-sm`},C=d({__name:`Setup`,setup(d){let{t:C}=i(),w=v(),T=a(``),E=a(``),D=a(``),O=a(!1);async function k(){if(!T.value||!E.value){D.value=C(`setup.pleaseInputPassword`);return}if(T.value!==E.value){D.value=C(`setup.passwordMismatch`);return}if(T.value.length<6){D.value=C(`setup.passwordTooShort`);return}D.value=``,O.value=!0;try{await f.initializeSetup(T.value),n(),w.push({name:`dashboard`})}catch(e){D.value=t(e,C(`setup.setupFailed`))}finally{O.value=!1}}return(t,n)=>(u(),o(b,{subtitle:r(C)(`setup.subtitle`)},{default:p(()=>[c(`form`,{onSubmit:g(k,[`prevent`]),class:`space-y-4`},[c(`div`,null,[_(r(y),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[h(s(r(C)(`setup.password`)),1)]),_:1}),_(r(x),{modelValue:T.value,"onUpdate:modelValue":n[0]||=e=>T.value=e,type:`password`,placeholder:r(C)(`setup.passwordPlaceholder`),disabled:O.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),c(`div`,null,[_(r(y),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[h(s(r(C)(`setup.confirmPassword`)),1)]),_:1}),_(r(x),{modelValue:E.value,"onUpdate:modelValue":n[1]||=e=>E.value=e,type:`password`,placeholder:r(C)(`setup.confirmPasswordPlaceholder`),disabled:O.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),D.value?(u(),l(`p`,S,s(D.value),1)):e(``,!0),_(r(m),{type:`submit`,class:`w-full`,disabled:O.value},{default:p(()=>[h(s(O.value?r(C)(`setup.settingUp`):r(C)(`setup.setupButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,et as t,gt as n,it as r,qt as i,r as a}from"./button-
|
|
1
|
+
import{Gt as e,et as t,gt as n,it as r,qt as i,r as a}from"./button-Csj7G8uP.js";var o=r({__name:`Skeleton`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let o=r;return(r,s)=>(n(),t(`div`,{"data-slot":`skeleton`,class:i(e(a)(`bg-muted rounded-md animate-pulse`,o.class))},null,2))}});export{o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Gt as t,Ht as n,Jt as r,K as i,Q as a,X as o,dt as s,gt as c,i as l,it as u,kt as d,m as f,o as p,ot as m,q as h,r as g,rt as _,x as v,yt as y}from"./button-
|
|
1
|
+
import{$ as e,Gt as t,Ht as n,Jt as r,K as i,Q as a,X as o,dt as s,gt as c,i as l,it as u,kt as d,m as f,o as p,ot as m,q as h,r as g,rt as _,x as v,yt as y}from"./button-Csj7G8uP.js";import{t as b}from"./VisuallyHiddenInput-CWfsI5Fo.js";import{H as x,W as S,Y as C}from"./index-C-o8k1O4.js";var[w,T]=C(`SwitchRoot`),E=u({__name:`SwitchRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:`on`},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(r,{emit:u}){let m=r,g=u,{disabled:_}=n(m),v=f(m,`modelValue`,g,{defaultValue:m.defaultValue??m.falseValue,passive:m.modelValue===void 0}),x=o(()=>v.value===m.trueValue);function C(){_.value||(v.value=x.value?m.falseValue:m.trueValue)}let{forwardRef:w,currentElement:E}=p(),D=S(E),O=o(()=>m.id&&E.value?document.querySelector(`[for="${m.id}"]`)?.innerText:void 0);return T({checked:x,toggleCheck:C,disabled:_}),(n,r)=>(c(),a(t(l),s(n.$attrs,{id:n.id,ref:t(w),role:`switch`,type:n.as===`button`?`button`:void 0,value:n.value,"aria-label":n.$attrs[`aria-label`]||O.value,"aria-checked":x.value,"aria-required":n.required,"data-state":x.value?`checked`:`unchecked`,"data-disabled":t(_)?``:void 0,"as-child":n.asChild,as:n.as,disabled:t(_),onClick:C,onKeydown:i(h(C,[`prevent`]),[`enter`])}),{default:d(()=>[y(n.$slots,`default`,{modelValue:t(v),checked:x.value}),t(D)&&n.name?(c(),a(t(b),{key:0,type:`checkbox`,name:n.name,disabled:t(_),required:n.required,value:n.value,checked:x.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):e(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),D=u({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=w();return p(),(e,r)=>(c(),a(t(l),{"data-state":t(n).checked.value?`checked`:`unchecked`,"data-disabled":t(n).disabled.value?``:void 0,"as-child":e.asChild,as:e.as},{default:d(()=>[y(e.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),O=u({__name:`Switch`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},id:{},value:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},emits:[`update:modelValue`],setup(e,{emit:n}){let i=e,o=n,l=x(v(i,`class`,`size`),o);return(n,o)=>(c(),a(t(E),s({"data-slot":`switch`,"data-size":e.size},t(l),{class:t(g)(`data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-[state=unchecked]:bg-input/80 shrink-0 rounded-full border border-transparent focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,i.class)}),{default:d(e=>[_(t(D),{"data-slot":`switch-thumb`,class:`bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 pointer-events-none block ring-0 transition-transform`},{default:d(()=>[y(n.$slots,`thumb`,r(m(e)))]),_:2},1024)]),_:3},16,[`data-size`,`class`]))}});export{O as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,Z as t,et as n,gt as r,it as i,qt as a,r as o,yt as s}from"./button-
|
|
1
|
+
import{Gt as e,Z as t,et as n,gt as r,it as i,qt as a,r as o,yt as s}from"./button-Csj7G8uP.js";var c={"data-slot":`table-container`,class:`relative w-full overflow-x-auto`},l=i({__name:`Table`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(i){let l=i;return(i,u)=>(r(),n(`div`,c,[t(`table`,{"data-slot":`table`,class:a(e(o)(`w-full caption-bottom text-sm`,l.class))},[s(i.$slots,`default`)],2)]))}}),u=i({__name:`TableBody`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t;return(t,c)=>(r(),n(`tbody`,{"data-slot":`table-body`,class:a(e(o)(`[&_tr:last-child]:border-0`,i.class))},[s(t.$slots,`default`)],2))}}),d=i({__name:`TableCell`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t;return(t,c)=>(r(),n(`td`,{"data-slot":`table-cell`,class:a(e(o)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0`,i.class))},[s(t.$slots,`default`)],2))}}),f=i({__name:`TableRow`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t;return(t,c)=>(r(),n(`tr`,{"data-slot":`table-row`,class:a(e(o)(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50`,i.class))},[s(t.$slots,`default`)],2))}}),p=i({__name:`TableHead`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t;return(t,c)=>(r(),n(`th`,{"data-slot":`table-head`,class:a(e(o)(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0`,i.class))},[s(t.$slots,`default`)],2))}}),m=i({__name:`TableHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t;return(t,c)=>(r(),n(`thead`,{"data-slot":`table-header`,class:a(e(o)(`[&_tr]:border-b`,i.class))},[s(t.$slots,`default`)],2))}});export{u as a,d as i,p as n,l as o,f as r,m as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,Ht as t,Jt as n,K as r,Lt as i,Q as a,X as o,dt as s,gt as c,i as l,it as u,kt as d,m as f,o as p,ot as m,q as h,r as g,rt as _,x as v,yt as y,zt as b}from"./button-
|
|
1
|
+
import{Gt as e,Ht as t,Jt as n,K as r,Lt as i,Q as a,X as o,dt as s,gt as c,i as l,it as u,kt as d,m as f,o as p,ot as m,q as h,r as g,rt as _,x as v,yt as y,zt as b}from"./button-Csj7G8uP.js";import{n as x,t as S}from"./RovingFocusItem-G3DvDUr1.js";import{G as C,H as w,U as T,V as E,Y as D}from"./index-C-o8k1O4.js";var[O,k]=D(`TabsRoot`),A=u({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(n,{emit:r}){let o=n,s=r,{orientation:u,unmountOnHide:m,dir:h}=t(o),g=C(h);p();let _=f(o,`modelValue`,s,{defaultValue:o.defaultValue,passive:o.modelValue===void 0}),v=i(),x=b(new Set);return k({modelValue:_,changeModelValue:e=>{_.value=e},orientation:u,dir:g,unmountOnHide:m,activationMode:o.activationMode,baseId:E(void 0,`reka-tabs`),tabsList:v,contentIds:x,registerContent:e=>{x.value=new Set([...x.value,e])},unregisterContent:e=>{let t=new Set(x.value);t.delete(e),x.value=t}}),(t,n)=>(c(),a(e(l),{dir:e(g),"data-orientation":e(u),"as-child":t.asChild,as:t.as},{default:d(()=>[y(t.$slots,`default`,{modelValue:e(_)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function j(e,t){return`${e}-trigger-${t}`}function M(e,t){return`${e}-content-${t}`}var N=u({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){let{loop:r}=t(n),{forwardRef:i,currentElement:o}=p(),s=O();return s.tabsList=o,(t,n)=>(c(),a(e(x),{"as-child":``,orientation:e(s).orientation.value,dir:e(s).dir.value,loop:e(r)},{default:d(()=>[_(e(l),{ref:e(i),role:`tablist`,"as-child":t.asChild,as:t.as,"aria-orientation":e(s).orientation.value},{default:d(()=>[y(t.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),P=u({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t,{forwardRef:i}=p(),s=O(),u=o(()=>j(s.baseId,n.value)),f=o(()=>s.contentIds.value.has(n.value)?M(s.baseId,n.value):void 0),m=o(()=>n.value===s.modelValue.value);return(t,n)=>(c(),a(e(S),{"as-child":``,focusable:!t.disabled,active:m.value},{default:d(()=>[_(e(l),{id:u.value,ref:e(i),role:`tab`,type:t.as===`button`?`button`:void 0,as:t.as,"as-child":t.asChild,"aria-selected":m.value?`true`:`false`,"aria-controls":f.value,"data-state":m.value?`active`:`inactive`,disabled:t.disabled,"data-disabled":t.disabled?``:void 0,"data-orientation":e(s).orientation.value,onMousedown:n[0]||=h(n=>{!t.disabled&&n.ctrlKey===!1?e(s).changeModelValue(t.value):n.preventDefault()},[`left`]),onKeydown:n[1]||=r(n=>e(s).changeModelValue(t.value),[`enter`,`space`]),onFocus:n[2]||=()=>{let n=e(s).activationMode!==`manual`;!m.value&&!t.disabled&&n&&e(s).changeModelValue(t.value)}},{default:d(()=>[y(t.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),F=u({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(t,{emit:r}){let i=t,o=r,l=w(v(i,`class`),o);return(t,r)=>(c(),a(e(A),s({"data-slot":`tabs`,"data-orientation":e(l).orientation||`horizontal`},e(l),{class:e(g)(`gap-2 group/tabs flex data-[orientation=horizontal]:flex-col`,i.class)}),{default:d(e=>[y(t.$slots,`default`,n(m(e)))]),_:3},16,[`data-orientation`,`class`]))}}),I=u({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(t){let n=t,r=v(n,`class`,`variant`);return(i,o)=>(c(),a(e(N),s({"data-slot":`tabs-list`,"data-variant":t.variant},e(r),{class:e(g)(`rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list inline-flex w-fit items-center justify-center text-muted-foreground group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col`,t.variant===`default`&&`bg-muted`,t.variant===`line`&&`gap-1 bg-transparent`,n.class)}),{default:d(()=>[y(i.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),L=u({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=T(v(n,`class`));return(t,i)=>(c(),a(e(P),s({"data-slot":`tabs-trigger`,class:e(g)(`gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg:not([class*=size-])]:size-4 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent`,`data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground`,`after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,n.class)},e(r)),{default:d(()=>[y(t.$slots,`default`)]),_:3},16,[`class`]))}});export{j as a,M as i,I as n,O as o,F as r,L as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Dt as e,E as t,Et as n,Gt as r,Jt as i,Lt as a,Q as o,S as s,St as c,X as l,Xt as u,Yt as d,d as f,dt as p,et as m,g as h,gt as g,i as _,it as v,kt as y,m as b,mt as x,nt as S,o as C,ot as w,q as T,r as E,rt as D,w as O,x as k,xt as ee,yt as A}from"./button-BW3lV6lw.js";import{D as j,E as M,F as te,H as N,K as ne,O as P,S as F,T as I,U as L,V as R,Y as z,j as B,w as V,z as H}from"./index-CkhT3okn.js";function U(t,n){let r=s(!1,300);O(()=>{r.value=!1});let i=a(null),o=h();function c(){i.value=null,r.value=!1}function l(e,t){if(!t)return;let n=e.currentTarget,a={x:e.clientX,y:e.clientY},o=G(a,W(a,n.getBoundingClientRect()),1),s=K(t.getBoundingClientRect());i.value=J([...o,...s]),r.value=!0}return e(e=>{if(t.value&&n.value){let r=e=>l(e,n.value),i=e=>l(e,t.value);t.value.addEventListener(`pointerleave`,r),n.value.addEventListener(`pointerleave`,i),e(()=>{t.value?.removeEventListener(`pointerleave`,r),n.value?.removeEventListener(`pointerleave`,i)})}}),e(e=>{if(i.value){let r=e=>{if(!i.value||!(e.target instanceof Element))return;let r=e.target,a={x:e.clientX,y:e.clientY},s=t.value?.contains(r)||n.value?.contains(r),l=!q(a,i.value),u=!!r.closest(`[data-grace-area-trigger]`);s?c():(l||u)&&(c(),o.trigger())};t.value?.ownerDocument.addEventListener(`pointermove`,r),e(()=>t.value?.ownerDocument.removeEventListener(`pointermove`,r))}}),{isPointerInTransit:r,onPointerExit:o.on}}function W(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function G(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function K(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function q(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function J(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),re(t)}function re(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Y={key:0,d:`M0 0L6 6L12 0`},X={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},ie=v({__name:`Arrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return C(),(e,n)=>(g(),o(r(_),p(t,{width:e.width,height:e.height,viewBox:e.asChild?void 0:`0 0 12 6`,preserveAspectRatio:e.asChild?void 0:`none`}),{default:y(()=>[A(e.$slots,`default`,{},()=>[e.rounded?(g(),m(`path`,X)):(g(),m(`path`,Y))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),ae={top:`bottom`,right:`left`,bottom:`top`,left:`right`},oe=v({inheritAttrs:!1,__name:`PopperArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let{forwardRef:t}=C(),n=I(),i=l(()=>ae[n.placedSide.value]);return(e,a)=>(g(),m(`span`,{ref:e=>{r(n).onArrowChange(e??void 0)},style:d({position:`absolute`,left:r(n).arrowX?.value?`${r(n).arrowX?.value}px`:void 0,top:r(n).arrowY?.value?`${r(n).arrowY?.value}px`:void 0,[i.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[r(n).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[r(n).placedSide.value],visibility:r(n).shouldHideArrow.value?`hidden`:void 0})},[D(ie,p(e.$attrs,{ref:r(t),style:{display:`block`},as:e.as,"as-child":e.asChild,rounded:e.rounded,width:e.width,height:e.height}),{default:y(()=>[A(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),se=v({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return C(),(e,n)=>(g(),o(r(oe),i(w(t)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}}),Z=`tooltip.open`,[Q,ce]=z(`TooltipRoot`),le=v({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:i}){let s=e,c=i;C();let u=F(),d=l(()=>s.disableHoverableContent??u.disableHoverableContent.value),f=l(()=>s.disableClosingTrigger??u.disableClosingTrigger.value),p=l(()=>s.disabled??u.disabled.value),m=l(()=>s.delayDuration??u.delayDuration.value),h=l(()=>s.ignoreNonKeyboardFocus??u.ignoreNonKeyboardFocus.value),_=b(s,`open`,c,{defaultValue:s.defaultOpen,passive:s.open===void 0});n(_,e=>{u.onClose&&(e?(u.onOpen(),document.dispatchEvent(new CustomEvent(Z))):u.onClose())});let v=a(!1),x=a(),S=l(()=>_.value?v.value?`delayed-open`:`instant-open`:`closed`),{start:w,stop:T}=t(()=>{v.value=!0,_.value=!0},m,{immediate:!1});function E(){T(),v.value=!1,_.value=!0}function D(){T(),_.value=!1}function O(){w()}return ce({contentId:``,open:_,stateAttribute:S,trigger:x,onTriggerChange(e){x.value=e},onTriggerEnter(){u.isOpenDelayed.value?O():E()},onTriggerLeave(){d.value?D():T()},onOpen:E,onClose:D,disableHoverableContent:d,disableClosingTrigger:f,disabled:p,ignoreNonKeyboardFocus:h}),(e,t)=>(g(),o(r(j),null,{default:y(()=>[A(e.$slots,`default`,{open:r(_)})]),_:3}))}}),$=v({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,i=t,a=Q(),s=F(),{forwardRef:c,currentElement:d}=C(),m=l(()=>n.ariaLabel||d.value?.textContent),h=l(()=>{let{ariaLabel:e,...t}=n;return ne(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return x(()=>{f(window,`scroll`,e=>{e.target?.contains(a.trigger.value)&&a.onClose()},{capture:!0}),f(window,Z,a.onClose)}),(e,t)=>(g(),o(r(te),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:t[0]||=e=>i(`escapeKeyDown`,e),onPointerDownOutside:t[1]||=e=>{r(a).disableClosingTrigger.value&&r(a).trigger.value?.contains(e.target)&&e.preventDefault(),i(`pointerDownOutside`,e)},onFocusOutside:t[2]||=T(()=>{},[`prevent`]),onDismiss:t[3]||=e=>r(a).onClose()},{default:y(()=>[D(r(V),p({ref:r(c),"data-state":r(a).stateAttribute.value},{...e.$attrs,...h.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:y(()=>[A(e.$slots,`default`),D(r(P),{id:r(a).contentId,role:`tooltip`},{default:y(()=>[S(u(m.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),ue=v({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=L(e),{forwardRef:n,currentElement:i}=C(),{trigger:a,onClose:s}=Q(),c=F(),{isPointerInTransit:l,onPointerExit:u}=U(a,i);return c.isPointerInTransitRef=l,u(()=>{s()}),(e,i)=>(g(),o($,p({ref:r(n)},r(t)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}}),de=v({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,i=t,a=Q(),s=N(n,i),{forwardRef:c}=C();return(e,t)=>(g(),o(r(H),{present:e.forceMount||r(a).open.value},{default:y(()=>[(g(),o(ee(r(a).disableHoverableContent.value?$:ue),p({ref:r(c)},r(s)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),fe=v({__name:`TooltipPortal`,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,n)=>(g(),o(r(B),i(w(t)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}}),pe=v({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Q(),i=F();n.contentId||=R(void 0,`reka-tooltip-content`);let{forwardRef:s,currentElement:u}=C(),d=a(!1),f=a(!1),m=l(()=>n.disabled.value?{}:{click:E,focus:w,pointermove:b,pointerleave:S,pointerdown:v,blur:T});x(()=>{n.onTriggerChange(u.value)});function h(){setTimeout(()=>{d.value=!1},1)}function v(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),d.value=!0,document.addEventListener(`pointerup`,h,{once:!0})}function b(e){e.pointerType!==`touch`&&!f.value&&!i.isPointerInTransitRef.value&&(n.onTriggerEnter(),f.value=!0)}function S(){n.onTriggerLeave(),f.value=!1}function w(e){d.value||n.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||n.onOpen()}function T(){n.onClose()}function E(){n.disableClosingTrigger.value||n.onClose()}return(e,i)=>(g(),o(r(M),{"as-child":``,reference:e.reference},{default:y(()=>[D(r(_),p({ref:r(s),"aria-describedby":r(n).open.value?r(n).contentId:void 0,"data-state":r(n).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},c(m.value)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),me=v({__name:`Tooltip`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},delayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=N(e,t);return(e,t)=>(g(),o(r(le),p({"data-slot":`tooltip`},r(n)),{default:y(t=>[A(e.$slots,`default`,i(w(t)))]),_:3},16))}}),he=v({inheritAttrs:!1,__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:0},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,i=t,a=N(k(n,`class`),i);return(e,t)=>(g(),o(r(fe),null,{default:y(()=>[D(r(de),p({"data-slot":`tooltip-content`},{...r(a),...e.$attrs},{class:r(E)(`data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-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 inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-dropdown **:data-[slot=kbd]:rounded-sm bg-foreground text-background z-dropdown w-fit max-w-xs origin-(--reka-tooltip-content-transform-origin)`,n.class)}),{default:y(()=>[A(e.$slots,`default`),D(r(se),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),ge=v({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(g(),o(r(pe),p({"data-slot":`tooltip-trigger`},t),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}});export{he as n,me as r,ge as t};
|
|
1
|
+
import{Dt as e,E as t,Et as n,Gt as r,Jt as i,Lt as a,Q as o,S as s,St as c,X as l,Xt as u,Yt as d,d as f,dt as p,et as m,g as h,gt as g,i as _,it as v,kt as y,m as b,mt as x,nt as S,o as C,ot as w,q as T,r as E,rt as D,w as O,x as k,xt as ee,yt as A}from"./button-Csj7G8uP.js";import{D as j,E as M,F as te,H as N,K as ne,O as P,S as F,T as I,U as L,V as R,Y as z,j as B,w as V,z as H}from"./index-C-o8k1O4.js";function U(t,n){let r=s(!1,300);O(()=>{r.value=!1});let i=a(null),o=h();function c(){i.value=null,r.value=!1}function l(e,t){if(!t)return;let n=e.currentTarget,a={x:e.clientX,y:e.clientY},o=G(a,W(a,n.getBoundingClientRect()),1),s=K(t.getBoundingClientRect());i.value=J([...o,...s]),r.value=!0}return e(e=>{if(t.value&&n.value){let r=e=>l(e,n.value),i=e=>l(e,t.value);t.value.addEventListener(`pointerleave`,r),n.value.addEventListener(`pointerleave`,i),e(()=>{t.value?.removeEventListener(`pointerleave`,r),n.value?.removeEventListener(`pointerleave`,i)})}}),e(e=>{if(i.value){let r=e=>{if(!i.value||!(e.target instanceof Element))return;let r=e.target,a={x:e.clientX,y:e.clientY},s=t.value?.contains(r)||n.value?.contains(r),l=!q(a,i.value),u=!!r.closest(`[data-grace-area-trigger]`);s?c():(l||u)&&(c(),o.trigger())};t.value?.ownerDocument.addEventListener(`pointermove`,r),e(()=>t.value?.ownerDocument.removeEventListener(`pointermove`,r))}}),{isPointerInTransit:r,onPointerExit:o.on}}function W(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function G(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function K(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function q(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function J(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),re(t)}function re(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Y={key:0,d:`M0 0L6 6L12 0`},X={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},ie=v({__name:`Arrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return C(),(e,n)=>(g(),o(r(_),p(t,{width:e.width,height:e.height,viewBox:e.asChild?void 0:`0 0 12 6`,preserveAspectRatio:e.asChild?void 0:`none`}),{default:y(()=>[A(e.$slots,`default`,{},()=>[e.rounded?(g(),m(`path`,X)):(g(),m(`path`,Y))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),ae={top:`bottom`,right:`left`,bottom:`top`,left:`right`},oe=v({inheritAttrs:!1,__name:`PopperArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let{forwardRef:t}=C(),n=I(),i=l(()=>ae[n.placedSide.value]);return(e,a)=>(g(),m(`span`,{ref:e=>{r(n).onArrowChange(e??void 0)},style:d({position:`absolute`,left:r(n).arrowX?.value?`${r(n).arrowX?.value}px`:void 0,top:r(n).arrowY?.value?`${r(n).arrowY?.value}px`:void 0,[i.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[r(n).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[r(n).placedSide.value],visibility:r(n).shouldHideArrow.value?`hidden`:void 0})},[D(ie,p(e.$attrs,{ref:r(t),style:{display:`block`},as:e.as,"as-child":e.asChild,rounded:e.rounded,width:e.width,height:e.height}),{default:y(()=>[A(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),se=v({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return C(),(e,n)=>(g(),o(r(oe),i(w(t)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}}),Z=`tooltip.open`,[Q,ce]=z(`TooltipRoot`),le=v({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:i}){let s=e,c=i;C();let u=F(),d=l(()=>s.disableHoverableContent??u.disableHoverableContent.value),f=l(()=>s.disableClosingTrigger??u.disableClosingTrigger.value),p=l(()=>s.disabled??u.disabled.value),m=l(()=>s.delayDuration??u.delayDuration.value),h=l(()=>s.ignoreNonKeyboardFocus??u.ignoreNonKeyboardFocus.value),_=b(s,`open`,c,{defaultValue:s.defaultOpen,passive:s.open===void 0});n(_,e=>{u.onClose&&(e?(u.onOpen(),document.dispatchEvent(new CustomEvent(Z))):u.onClose())});let v=a(!1),x=a(),S=l(()=>_.value?v.value?`delayed-open`:`instant-open`:`closed`),{start:w,stop:T}=t(()=>{v.value=!0,_.value=!0},m,{immediate:!1});function E(){T(),v.value=!1,_.value=!0}function D(){T(),_.value=!1}function O(){w()}return ce({contentId:``,open:_,stateAttribute:S,trigger:x,onTriggerChange(e){x.value=e},onTriggerEnter(){u.isOpenDelayed.value?O():E()},onTriggerLeave(){d.value?D():T()},onOpen:E,onClose:D,disableHoverableContent:d,disableClosingTrigger:f,disabled:p,ignoreNonKeyboardFocus:h}),(e,t)=>(g(),o(r(j),null,{default:y(()=>[A(e.$slots,`default`,{open:r(_)})]),_:3}))}}),$=v({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,i=t,a=Q(),s=F(),{forwardRef:c,currentElement:d}=C(),m=l(()=>n.ariaLabel||d.value?.textContent),h=l(()=>{let{ariaLabel:e,...t}=n;return ne(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return x(()=>{f(window,`scroll`,e=>{e.target?.contains(a.trigger.value)&&a.onClose()},{capture:!0}),f(window,Z,a.onClose)}),(e,t)=>(g(),o(r(te),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:t[0]||=e=>i(`escapeKeyDown`,e),onPointerDownOutside:t[1]||=e=>{r(a).disableClosingTrigger.value&&r(a).trigger.value?.contains(e.target)&&e.preventDefault(),i(`pointerDownOutside`,e)},onFocusOutside:t[2]||=T(()=>{},[`prevent`]),onDismiss:t[3]||=e=>r(a).onClose()},{default:y(()=>[D(r(V),p({ref:r(c),"data-state":r(a).stateAttribute.value},{...e.$attrs,...h.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:y(()=>[A(e.$slots,`default`),D(r(P),{id:r(a).contentId,role:`tooltip`},{default:y(()=>[S(u(m.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),ue=v({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=L(e),{forwardRef:n,currentElement:i}=C(),{trigger:a,onClose:s}=Q(),c=F(),{isPointerInTransit:l,onPointerExit:u}=U(a,i);return c.isPointerInTransitRef=l,u(()=>{s()}),(e,i)=>(g(),o($,p({ref:r(n)},r(t)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}}),de=v({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,i=t,a=Q(),s=N(n,i),{forwardRef:c}=C();return(e,t)=>(g(),o(r(H),{present:e.forceMount||r(a).open.value},{default:y(()=>[(g(),o(ee(r(a).disableHoverableContent.value?$:ue),p({ref:r(c)},r(s)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),fe=v({__name:`TooltipPortal`,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,n)=>(g(),o(r(B),i(w(t)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}}),pe=v({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Q(),i=F();n.contentId||=R(void 0,`reka-tooltip-content`);let{forwardRef:s,currentElement:u}=C(),d=a(!1),f=a(!1),m=l(()=>n.disabled.value?{}:{click:E,focus:w,pointermove:b,pointerleave:S,pointerdown:v,blur:T});x(()=>{n.onTriggerChange(u.value)});function h(){setTimeout(()=>{d.value=!1},1)}function v(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),d.value=!0,document.addEventListener(`pointerup`,h,{once:!0})}function b(e){e.pointerType!==`touch`&&!f.value&&!i.isPointerInTransitRef.value&&(n.onTriggerEnter(),f.value=!0)}function S(){n.onTriggerLeave(),f.value=!1}function w(e){d.value||n.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||n.onOpen()}function T(){n.onClose()}function E(){n.disableClosingTrigger.value||n.onClose()}return(e,i)=>(g(),o(r(M),{"as-child":``,reference:e.reference},{default:y(()=>[D(r(_),p({ref:r(s),"aria-describedby":r(n).open.value?r(n).contentId:void 0,"data-state":r(n).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},c(m.value)),{default:y(()=>[A(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),me=v({__name:`Tooltip`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},delayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=N(e,t);return(e,t)=>(g(),o(r(le),p({"data-slot":`tooltip`},r(n)),{default:y(t=>[A(e.$slots,`default`,i(w(t)))]),_:3},16))}}),he=v({inheritAttrs:!1,__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:0},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,i=t,a=N(k(n,`class`),i);return(e,t)=>(g(),o(r(fe),null,{default:y(()=>[D(r(de),p({"data-slot":`tooltip-content`},{...r(a),...e.$attrs},{class:r(E)(`data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-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 inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-dropdown **:data-[slot=kbd]:rounded-sm bg-foreground text-background z-dropdown w-fit max-w-xs origin-(--reka-tooltip-content-transform-origin)`,n.class)}),{default:y(()=>[A(e.$slots,`default`),D(r(se),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),ge=v({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(g(),o(r(pe),p({"data-slot":`tooltip-trigger`},t),{default:y(()=>[A(e.$slots,`default`)]),_:3},16))}});export{he as n,me as r,ge as t};
|