llm-simple-router 0.11.21 → 0.11.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/recommended-providers.json +3 -3
- package/dist/admin/providers.js +2 -2
- package/dist/config/recommended-providers.json +3 -3
- package/dist/db/migrations/050_normalize_patch_ids.sql +54 -0
- package/dist/proxy/patch/deepseek/patch-orphan-tool-results.d.ts +21 -12
- package/dist/proxy/patch/deepseek/patch-orphan-tool-results.js +166 -40
- package/dist/proxy/patch/index.js +3 -3
- package/frontend-dist/assets/{CardContent-1i8E_S3q.js → CardContent-tdwjLn4i.js} +1 -1
- package/frontend-dist/assets/{CardTitle-9IEYVrNF.js → CardTitle-QnVfhywP.js} +1 -1
- package/frontend-dist/assets/{CascadingModelSelect-CqzJeQWb.js → CascadingModelSelect-CUl0gGQL.js} +1 -1
- package/frontend-dist/assets/{Checkbox-9z_nic4H.js → Checkbox-uf5QqEJQ.js} +1 -1
- package/frontend-dist/assets/{CollapsibleContent-DRXTjuF_.js → CollapsibleContent-C0ytCrcq.js} +1 -1
- package/frontend-dist/assets/{CollapsibleTrigger-BusSosYR.js → CollapsibleTrigger-C_6qIDNW.js} +1 -1
- package/frontend-dist/assets/{Dashboard-DjO_Bc_0.js → Dashboard-Ems9PSCm.js} +1 -1
- package/frontend-dist/assets/{Input-BwqUPR8k.js → Input-CpDpvdgi.js} +1 -1
- package/frontend-dist/assets/{Label-CumWBzHY.js → Label-B83qJ4ZP.js} +1 -1
- package/frontend-dist/assets/{Login-9ZLrg5AA.js → Login-BMqtdfbp.js} +1 -1
- package/frontend-dist/assets/{Logs-DKktTerr.js → Logs-BLIKfkio.js} +1 -1
- package/frontend-dist/assets/{MappingEntryEditor-DX749LDW.js → MappingEntryEditor-D3KcV5CB.js} +1 -1
- package/frontend-dist/assets/{ModelMappings-snvf_INI.js → ModelMappings-DMTDact2.js} +1 -1
- package/frontend-dist/assets/{Monitor-RqCMWyto.js → Monitor-ss7HVjzI.js} +1 -1
- package/frontend-dist/assets/{Providers-DlVBSVgE.js → Providers-CedZBga7.js} +1 -1
- package/frontend-dist/assets/{ProxyEnhancement-CZBmTnsG.js → ProxyEnhancement-oUL_dwbp.js} +1 -1
- package/frontend-dist/assets/{QuickSetup-BIV6mDlG.js → QuickSetup-Co4FgTK_.js} +1 -1
- package/frontend-dist/assets/{RetryRules-DfeCwU9V.js → RetryRules-C69aeW9d.js} +1 -1
- package/frontend-dist/assets/{RouterKeys-tCdqFDml.js → RouterKeys-D3h7KUek.js} +1 -1
- package/frontend-dist/assets/{RovingFocusItem-D3EohvxE.js → RovingFocusItem-CBasI81o.js} +1 -1
- package/frontend-dist/assets/{Schedules-ImwpwJKm.js → Schedules-LaubVJAy.js} +1 -1
- package/frontend-dist/assets/{Settings-BUsDohX6.js → Settings-Dkj-jirH.js} +1 -1
- package/frontend-dist/assets/{Setup-2xmJP0f2.js → Setup-CNLhYD6z.js} +1 -1
- package/frontend-dist/assets/{Switch-Ce1RNEg2.js → Switch-JfjgADP5.js} +1 -1
- package/frontend-dist/assets/{TooltipTrigger-BvHKib2n.js → TooltipTrigger-C3Yxt228.js} +1 -1
- package/frontend-dist/assets/{TransformRulesForm-BT9zoPTc.js → TransformRulesForm-DA5XjrhO.js} +1 -1
- package/frontend-dist/assets/{UnifiedRequestDialog-D_88_dFB.js → UnifiedRequestDialog-B0GenWYJ.js} +1 -1
- package/frontend-dist/assets/{VisuallyHiddenInput-B-usxRjt.js → VisuallyHiddenInput-1EakFczP.js} +1 -1
- package/frontend-dist/assets/{button-Dm-cbgS5.js → button-EcESBjGm.js} +2 -2
- package/frontend-dist/assets/{copy-DMw-23Tb.js → copy-CmpVrrwT.js} +1 -1
- package/frontend-dist/assets/{dialog-Dzy4m58L.js → dialog-Is8Ujw3N.js} +1 -1
- package/frontend-dist/assets/{index-CTaQHTod.js → index-Dv_nrEfy.js} +2 -2
- package/frontend-dist/assets/{model-patches-Be68Qreu.js → model-patches-BKeZXFvS.js} +1 -1
- package/frontend-dist/assets/plus-CLv_FYiq.js +1 -0
- package/frontend-dist/assets/{sparkles-7mkrsmh7.js → sparkles-CGWfJ0kh.js} +1 -1
- package/frontend-dist/assets/{trash-2-BoBubJto.js → trash-2-Dz0n3WgV.js} +1 -1
- package/frontend-dist/assets/{useClipboard-DebN1Yvq.js → useClipboard-BJ0o_fEC.js} +1 -1
- package/frontend-dist/assets/{useLogRetention-BGDglTVo.js → useLogRetention-C05x-s32.js} +1 -1
- package/frontend-dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend-dist/assets/plus-BkH7yWn-.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Et as n,Gt as r,H as i,I as a,J as o,K as s,Lt as c,M as l,N as u,Nt as d,Q as f,X as p,Xt as m,Z as h,et as g,gt as _,it as v,k as y,kt as b,mt as x,n as S,nt as C,q as w,qt as T,rt as E,vt as D}from"./button-Dm-cbgS5.js";import{t as O}from"./MappingEntryEditor-DX749LDW.js";import{t as k}from"./CascadingModelSelect-CqzJeQWb.js";import{a as A,i as j,n as ee,o as M,r as N,t as P}from"./model-patches-Be68Qreu.js";import{t as F}from"./trash-2-BoBubJto.js";import{t as te}from"./Checkbox-9z_nic4H.js";import{t as I}from"./Label-CumWBzHY.js";import{t as L}from"./Switch-Ce1RNEg2.js";import{_ as R,g as z,h as B,i as V,m as H,p as U,x as W}from"./index-CTaQHTod.js";import{n as G,t as K}from"./CardContent-1i8E_S3q.js";import{n as q,t as J}from"./CardTitle-9IEYVrNF.js";import{t as Y}from"./Input-BwqUPR8k.js";import{n as ne,t as re}from"./TransformRulesForm-BT9zoPTc.js";var ie=10,ae=12e4,oe=100,X=800,se=1500,ce={DeepSeek:`deepseek`,百度千帆:`qianfan`,科大讯飞:`iflytek`,硅基流动:`siliconflow`,智谱:`zhipu`,月之暗面:`moonshot`,Minimax:`minimax`,火山引擎:`volcengine`,阿里云:`aliyun`,腾讯云:`tencent`,OpenCode:`opencode`,阶跃星辰:`stepfun`};function Z(e){return ce[e]??e.toLowerCase().replace(/[^a-z0-9]/gi,`-`).replace(/-+/g,`-`)}function le(e,t,n,r){if(!e&&!t&&!n)return;let i={};if(e)try{i.inject_headers=JSON.parse(e)}catch{return r(`injectHeadersJsonError`),!1}if(t&&(i.drop_fields=t.split(`,`).map(e=>e.trim()).filter(Boolean)),n)try{i.request_defaults=JSON.parse(n)}catch{return r(`requestDefaultsJsonError`),!1}return Object.keys(i).length>0?i:void 0}async function ue(e){let t=[];for(let n of e)if(n.existing&&n.existingId&&n.originalActive!==void 0&&n.active!==n.originalActive)try{await y.toggleMappingGroup(n.existingId)}catch{t.push(n.clientModel)}return t}function de(e,t){return e.filter(e=>t.has(e.name)&&!e.exists).map(e=>({name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms}))}function fe(e){return{name:e.isCustom?`custom-${Date.now()}`:`${Z(e.selectedGroup)}-${Z(e.selectedPlan)}`,api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||void 0,api_key:e.apiKey,models:e.models.map(e=>({name:e.name,context_window:e.contextWindow,patches:e.patches.length>0?e.patches:void 0,stream_timeout_ms:e.stream_timeout_ms??void 0,capabilities:e.capabilities&&e.capabilities.length>0?e.capabilities:void 0})),concurrency_mode:e.concurrencyMode,max_concurrency:e.concurrencyMode===`none`?void 0:e.maxConcurrency,queue_timeout_ms:e.concurrencyMode===`none`?void 0:e.queueTimeoutMs,max_queue_size:e.concurrencyMode===`none`?void 0:e.maxQueueSize}}function pe(e,t,n){let r;return r=e===`pi`?t.map(e=>e.name):j[e]??t.map(e=>e.name),r.map(i=>{let a=n.find(e=>e.client_model===i);if(a){let e={};try{e=JSON.parse(a.rule)}catch{e={}}let n=e.targets??[];return{clientModel:i,targets:n.length>0?n.map(e=>({backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})):[{backend_model:t[0]?.name??``,provider_id:`__new__`}],existing:!0,existingId:a.id,tag:`existing`,active:!!a.is_active,originalActive:!!a.is_active}}return{clientModel:i,targets:[{backend_model:t[r.indexOf(i)]?.name??t[t.length-1]?.name??``,provider_id:`__new__`}],existing:!1,tag:e===`pi`?`auto`:`def`,active:!0}})}function me(e,t){return e===`openai-responses`&&(t===`openai`||t===`openai-responses`)?`openai-responses`:t}function he(e){return{provider:fe({isCustom:e.isCustomProvider,selectedGroup:e.selectedGroup,selectedPlan:e.selectedPlan,apiType:e.apiType,baseUrl:e.baseUrl,upstreamPath:e.upstreamPath,apiKey:e.apiKey,models:e.models,concurrencyMode:e.concurrencyMode,maxConcurrency:e.maxConcurrency,queueTimeoutMs:e.queueTimeoutMs,maxQueueSize:e.maxQueueSize}),mappings:e.mappingEntries.filter(e=>e.targets[0]?.backend_model).map(e=>({client_model:e.clientModel,backend_model:e.targets[0]?.backend_model??``})),retry_rules:de(e.recommendedRules,e.selectedRetryRules),transform_rules:e.transformRules}}function ge(e){return p(()=>N.find(t=>t.id===e.value))}function _e(e,t,n){return p(()=>{if(!e.value||!t.value)return;let r=n.value.find(t=>t.group===e.value);if(r)return r.presets.find(e=>e.plan===t.value)})}function ve(e,t,n){return p(()=>e.value?t.value:n.value?.baseUrl??``)}function ye(e,t,n){return p(()=>{if(e.value)return t.value;let r=n.value;if(!r)return``;let i=r.apiType===`anthropic`?`/v1/messages`:r.apiType===`openai-responses`?`/v1/responses`:`/v1/chat/completions`;return r.upstreamPath&&r.upstreamPath!==i?r.upstreamPath:``})}function be(e,t){return p(()=>t.value.find(t=>t.group===e.value)?.presets??[])}function xe(e){return p(()=>!e.value.includes(`openai.com`))}function Se(e,t){return p(()=>{let n=e.value;return t.value.filter(e=>!e.providers||e.providers.length===0?!0:e.providers.includes(n))})}function Ce(e,t,n,r,i,a){let o=p(()=>t.value?{provider:{id:e.value?`__new_custom__`:`__new_${Z(t.value)}_${Z(n.value)}__`,name:e.value?a(`quickSetup.provider.customProvider`):`${t.value} - ${n.value}`},models:r.value.filter(e=>e.enabled).map(e=>({name:e.name,contextWindow:e.contextWindow})),isNew:!0}:null);return{currentProviderGroup:o,allProviderGroups:p(()=>{let e=i.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))}));return o.value&&o.value.models.length>0?[...e,o.value]:e})}}function we(e,t,n){t.value=e.models.map(t=>({name:t,contextWindow:A(t),enabled:!0,patches:P(t,e.apiType,n.value),stream_timeout_ms:u,capabilities:e.modelCapabilities?.[t]}))}function Te(e,t,n,r,i=l){e.value.push({name:t,contextWindow:i,enabled:!0,patches:P(t,n,r.value),stream_timeout_ms:u,capabilities:[`text`]})}async function Ee(e,n,r,i,a,o){try{let[t,o,s,c]=await Promise.allSettled([y.recommended.getProviders(),y.recommended.getRetryRules(),y.getMappingGroups(),y.getProviders()]);t.status===`fulfilled`&&(e.value=t.value),o.status===`fulfilled`&&(n.value=o.value),s.status===`fulfilled`&&(r.value=s.value),c.status===`fulfilled`&&(i.value=c.value),a(`claude-code`)}catch(e){console.error(`quickSetup.load:`,e),o(t(e,``))}}async function De(e,t,n){if(!e.value.trim()){t.value=`error`,n(`quickSetup.messages.fillApiKeyFirst`);return}t.value=`testing`,await new Promise(e=>setTimeout(e,X)),t.value=`ok`}function Oe(){let{t:e}=i(),r=c(`claude-code`),o=c([]),s=c(``),u=c(``),d=c(`anthropic`),f=c(``),m=c([]),h=c([]),g=c([]),_=c(new Set),v=c(!1),b=c(`idle`),S=c(`auto`),C=c(ie),w=c(ae),T=c(oe),E=c(``),D=c(``),O=c(``),k=c([]),A=c([]),j=p(()=>s.value===`__custom__`),ee=ge(r),M=_e(s,u,o),N=c(``),F=c(``),te=ve(j,N,M),I=ye(j,F,M),L=be(s,o),R=xe(te),z=Se(s,g),B=Ce(j,s,u,m,A,e).allProviderGroups;function H(){let e=m.value.filter(e=>e.enabled);h.value=pe(r.value,e,k.value)}function U(){_.value=new Set(z.value.filter(e=>!e.exists).map(e=>e.name))}function W(e){r.value=e,H()}function G(e){if(s.value=e,u.value=``,m.value=[],e===`__custom__`)d.value=`openai`,N.value=``,F.value=``;else{let t=o.value.find(t=>t.group===e);if(t&&t.presets.length>0){let e=ee.value,n=e?.format===`openai-responses`?[`openai-responses`,`openai`]:e?[e.format]:[],r=(e?t.presets.find(e=>n.includes(e.apiType)):null)??t.presets[0];u.value=r.plan,d.value=me(e?.format,r.apiType),we(r,m,R)}}H(),U()}function K(e){u.value=e;let t=o.value.find(e=>e.group===s.value);if(!t)return;let n=t.presets.find(t=>t.plan===e);n&&(d.value=me(ee.value?.format,n.apiType),we(n,m,R),H())}n(d,()=>{for(let e of m.value)e.patches=P(e.name,d.value,R.value)});function q(e,t){let n=new Set(_.value);t?n.add(e):n.delete(e),_.value=n}function J(e,t){let n=[...h.value];n[e]={...n[e],targets:t},h.value=n}function Y(e){let t=[...h.value];t[e]={...t[e],active:!t[e].active},h.value=t}function ne(e,t){let n=h.value.filter(t=>t.clientModel!==e);n.push({clientModel:e,targets:[{backend_model:t,provider_id:`__new__`}],existing:!1,tag:`cust`,active:!0}),h.value=n}function re(t){if(h.value.find(e=>e.clientModel===t)?.existing){V.error(e(`quickSetup.messages.existingMappingDelete`));return}h.value=h.value.filter(e=>e.clientModel!==t)}function X(e){S.value=e,e===`auto`?C.value=ie:e===`manual`&&(C.value=3)}async function ce(){return De(f,b,t=>V.error(e(t)))}function Z(e,t=l){Te(m,e,d.value,R,t)}async function de(){if(!M.value){V.error(e(`quickSetup.messages.selectProviderAndPlan`));return}if(!f.value.trim()){V.error(e(`quickSetup.messages.fillApiKey`));return}v.value=!0;try{let t=le(E.value.trim(),D.value.trim(),O.value.trim(),t=>V.error(e(`quickSetup.messages.${t}`)));if(t===!1)return;let n=he({isCustomProvider:j.value,selectedGroup:s.value,selectedPlan:u.value,apiType:d.value,baseUrl:te.value,upstreamPath:I.value,apiKey:f.value.trim(),models:m.value,concurrencyMode:S.value,maxConcurrency:C.value,queueTimeoutMs:w.value,maxQueueSize:T.value,mappingEntries:h.value,recommendedRules:z.value,selectedRetryRules:_.value,transformRules:t});await y.quickSetup(n);let r=await ue(h.value);r.length>0?V.success(e(`quickSetup.messages.setupCompleteWithErrors`,{count:r.length})):V.success(e(`quickSetup.messages.setupComplete`)),await new Promise(e=>setTimeout(e,se)),a.push(`/`)}catch(n){console.error(`quickSetup.save:`,n),V.error(t(n,e(`quickSetup.messages.setupFailed`)))}finally{v.value=!1}}return x(()=>{Ee(o,g,k,A,W,e=>V.error(e))}),{clientType:r,providerGroups:o,selectedGroup:s,selectedPlan:u,apiType:d,apiKey:f,modelConfigs:m,mappingEntries:h,allRecommendedRules:g,recommendedRules:z,selectedRetryRules:_,saving:v,connectionStatus:b,currentClient:ee,currentPreset:M,baseUrl:te,customBaseUrl:N,upstreamPath:I,customUpstreamPath:F,isCustomProvider:j,availablePlans:L,isNonOpenaiEndpoint:R,concurrencyMode:S,maxConcurrency:C,queueTimeoutMs:w,maxQueueSize:T,transformInjectHeaders:E,transformDropFields:D,transformRequestDefaults:O,existingMappings:k,allProviders:A,allProviderGroups:B,selectClient:W,onProviderChange:G,onPlanChange:K,updateMappings:H,updateMappingTargets:J,toggleMappingActive:Y,addMappingEntry:ne,removeMappingEntry:re,toggleRetryRule:q,onConcurrencyModeChange:X,testConnection:ce,submit:de,addCustomModel:Z}}var ke={class:`space-y-1.5`},Q={class:`flex items-start gap-2 px-3 py-2`},Ae=[`onClick`],$={class:`flex items-center gap-1.5 shrink-0 pt-0.5`},je={key:0,class:`py-3 text-center text-xs text-muted-foreground`},Me={class:`flex items-center gap-2 pt-2 border-t mt-2`},Ne={class:`flex-1`},Pe=v({__name:`QuickSetupMappingList`,props:{entries:{},providerGroups:{}},emits:[`update:targets`,`toggle-active`,`add`,`remove`],setup(t,{emit:n}){let{t:a}=i(),s=n,l=c(new Set);function u(e){let t=new Set(l.value);t.has(e)?t.delete(e):t.add(e),l.value=t}let d=c(``),f=c();function p(){return d.value.trim().length>0&&!!f.value?.model}function v(){let e=d.value.trim(),t=f.value;e&&t&&(s(`add`,e,t.model),d.value=``,f.value=void 0)}function y(e){e.key===`Enter`&&p()&&(e.preventDefault(),v())}return(n,i)=>(_(),g(`div`,ke,[(_(!0),g(o,null,D(t.entries,(e,n)=>(_(),g(`div`,{key:e.clientModel,class:`rounded-md border border-border`},[h(`div`,Q,[h(`div`,{class:T([`flex-1 min-w-0`,{"cursor-pointer":!l.value.has(e.clientModel)}]),onClick:t=>!l.value.has(e.clientModel)&&u(e.clientModel)},[E(O,{entry:e,"provider-groups":t.providerGroups,expanded:l.value.has(e.clientModel),editable:!0,"onUpdate:targets":e=>s(`update:targets`,n,e)},null,8,[`entry`,`provider-groups`,`expanded`,`onUpdate:targets`])],10,Ae),h(`div`,$,[E(r(S),{variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground/40 hover:text-destructive`,onClick:w(t=>s(`remove`,e.clientModel),[`stop`])},{default:b(()=>[E(r(F),{class:`size-3`})]),_:1},8,[`onClick`]),E(r(L),{"model-value":e.active,"onUpdate:modelValue":e=>s(`toggle-active`,n),class:`scale-75`,onClick:i[0]||=w(()=>{},[`stop`])},null,8,[`model-value`,`onUpdate:modelValue`])])])]))),128)),t.entries.length===0?(_(),g(`p`,je,m(r(a)(`providers.shared.noMappings`)),1)):e(``,!0),h(`div`,Me,[E(r(Y),{modelValue:d.value,"onUpdate:modelValue":i[1]||=e=>d.value=e,placeholder:r(a)(`providers.shared.clientModel`),class:`h-8 flex-1 text-xs font-mono`,onKeydown:y},null,8,[`modelValue`,`placeholder`]),h(`div`,Ne,[E(k,{providers:t.providerGroups,"model-value":f.value,compact:``,placeholder:r(a)(`providers.shared.selectModel`),"onUpdate:modelValue":i[2]||=e=>f.value=e},null,8,[`providers`,`model-value`,`placeholder`])]),E(r(S),{size:`sm`,variant:`outline`,class:`h-8 shrink-0`,disabled:!p(),onClick:v},{default:b(()=>[C(m(r(a)(`providers.shared.add`)),1)]),_:1},8,[`disabled`])])]))}}),Fe={class:`p-6 space-y-4 pb-20`},Ie={class:`flex gap-2 flex-wrap`},Le={class:`text-left`},Re={class:`font-medium text-sm leading-tight`},ze={class:`text-[10px] opacity-60 leading-tight`},Be={class:`flex items-end gap-2`},Ve={class:`w-40 space-y-1`},He={class:`w-48 space-y-1`},Ue={class:`w-80 space-y-1`},We={class:`w-48 space-y-1`},Ge={class:`w-28 space-y-1`},Ke={class:`w-48 space-y-1`},qe={class:`w-72 space-y-1`},Je={key:0,class:`w-48 space-y-1`},Ye={class:`w-64 space-y-1`},Xe={class:`shrink-0 space-y-1`},Ze={class:`border-t pt-3`},Qe={class:`flex items-center justify-between mb-2`},$e={class:`text-xs font-medium text-muted-foreground`},et={key:0,class:`py-4 text-center text-xs text-muted-foreground`},tt={key:1,class:`grid grid-cols-4 gap-2`},nt={key:2,class:`flex gap-2 mt-2`},rt={class:`border-t pt-3`},it={class:`flex items-center justify-between mb-2`},at={class:`text-xs font-medium text-muted-foreground`},ot={class:`grid grid-cols-5 gap-4`},st={class:`flex items-center justify-between`},ct={class:`col-span-2 space-y-4`},lt={class:`flex items-center justify-between`},ut={key:0,class:`py-6 text-center text-xs text-muted-foreground`},dt={key:1,class:`space-y-1.5 max-h-[320px] overflow-y-auto`},ft=[`onClick`],pt={class:`flex-1 min-w-0`},mt={class:`flex items-center gap-1.5`},ht={class:`text-xs font-medium`},gt={class:`text-[10px] text-muted-foreground mt-0.5`},_t={class:`fixed bottom-0 right-0 left-56 border-t bg-card/95 backdrop-blur px-6 py-2.5 flex items-center justify-between z-10`},vt={class:`text-xs text-muted-foreground flex items-center gap-1.5`},yt={class:`flex items-center gap-2`},bt=v({__name:`QuickSetup`,setup(t){let{t:n}=i(),{clientType:a,providerGroups:l,selectedGroup:u,selectedPlan:v,apiType:y,apiKey:x,modelConfigs:O,mappingEntries:k,allRecommendedRules:A,recommendedRules:j,selectedRetryRules:P,saving:F,connectionStatus:L,baseUrl:ie,availablePlans:ae,isNonOpenaiEndpoint:oe,isCustomProvider:X,customBaseUrl:se,upstreamPath:ce,customUpstreamPath:Z,concurrencyMode:le,maxConcurrency:ue,queueTimeoutMs:de,maxQueueSize:fe,allProviderGroups:pe,transformInjectHeaders:me,transformDropFields:he,transformRequestDefaults:ge,selectClient:_e,onProviderChange:ve,onPlanChange:ye,updateMappingTargets:be,toggleMappingActive:xe,addMappingEntry:Se,removeMappingEntry:Ce,toggleRetryRule:we,onConcurrencyModeChange:Te,testConnection:Ee,submit:De,addCustomModel:ke}=Oe(),Q=c(``);function Ae(){Q.value.trim()&&(ke(Q.value.trim()),Q.value=``)}let $=p(()=>O.value.filter(e=>e.enabled).length),je=p(()=>N.find(e=>e.id===a.value)?.name??a.value);function Me(e,t){let n=[...O.value];n[e]=t,O.value=n}function Ne(e){O.value=O.value.filter((t,n)=>n!==e)}function bt(e,t){let n=[...O.value];n[e]={...n[e],stream_timeout_ms:t||void 0},O.value=n}function xt(e,t){let n=[...O.value],r={...n[e]},i=r.capabilities??[`text`];i.includes(t)?r.capabilities=i.filter(e=>e!==t):r.capabilities=[...i,t],n[e]=r,O.value=n}function St(){if(!u.value){V.error(n(`quickSetup.messages.selectProvider`));return}if(!x.value.trim()){V.error(n(`quickSetup.messages.fillApiKey`));return}if($.value===0){V.error(n(`quickSetup.messages.enableOneModel`));return}V.success(n(`quickSetup.messages.validationPassed`))}return(t,i)=>(_(),g(o,null,[h(`div`,Fe,[E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.client.selectClient`)),1)]),_:1})]),_:1}),E(r(K),null,{default:b(()=>[h(`div`,Ie,[(_(!0),g(o,null,D(r(N),e=>(_(),f(r(S),{key:e.id,variant:`outline`,class:T([`flex h-auto items-center gap-2.5 px-4 py-2.5 text-sm transition-all cursor-pointer`,r(a)===e.id?`border-primary bg-primary/5 text-primary ring-1 ring-primary/20`:`border-border hover:border-muted-foreground/30 text-muted-foreground hover:text-foreground`]),onClick:t=>r(_e)(e.id)},{default:b(()=>[E(M,{name:e.iconSvg??``,size:24,class:T(r(a)===e.id?`text-primary`:`text-muted-foreground`)},null,8,[`name`,`class`]),h(`div`,Le,[h(`div`,Re,m(e.name),1),h(`div`,ze,m(e.format)+` · `+m(r(n)(e.descriptionKey)),1)])]),_:2},1032,[`class`,`onClick`]))),128))])]),_:1})]),_:1}),E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.config`)),1)]),_:1})]),_:1}),E(r(K),{class:`space-y-4`},{default:b(()=>[h(`div`,Be,[h(`div`,Ve,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.label`)),1)]),_:1}),E(r(R),{"model-value":r(u),"onUpdate:modelValue":i[0]||=e=>r(ve)(e)},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U),{placeholder:r(n)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),E(r(z),null,{default:b(()=>[E(r(B),{value:`__custom__`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.custom`)),1)]),_:1}),(_(!0),g(o,null,D(r(l),e=>(_(),f(r(B),{key:e.group,value:e.group},{default:b(()=>[C(m(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),r(X)?(_(),g(o,{key:0},[h(`div`,He,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.format`)),1)]),_:1}),E(r(R),{modelValue:r(y),"onUpdate:modelValue":i[1]||=e=>d(y)?y.value=e:null},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U))]),_:1}),E(r(z),null,{default:b(()=>[E(r(B),{value:`anthropic`},{default:b(()=>[...i[15]||=[C(`Anthropic Messages`,-1)]]),_:1}),E(r(B),{value:`openai`},{default:b(()=>[...i[16]||=[C(`OpenAI Chat Completions`,-1)]]),_:1}),E(r(B),{value:`openai-responses`},{default:b(()=>[...i[17]||=[C(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,Ue,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[18]||=[C(`Base URL`,-1)]]),_:1}),E(r(Y),{modelValue:r(se),"onUpdate:modelValue":i[2]||=e=>d(se)?se.value=e:null,placeholder:`https://api.example.com/v1`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])]),h(`div`,We,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[19]||=[C(`Upstream Path`,-1)]]),_:1}),E(r(Y),{modelValue:r(Z),"onUpdate:modelValue":i[3]||=e=>d(Z)?Z.value=e:null,placeholder:`/v1/chat/completions`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])])],64)):(_(),g(o,{key:1},[h(`div`,Ge,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.plan`)),1)]),_:1}),E(r(R),{"model-value":r(v),"onUpdate:modelValue":i[4]||=e=>r(ye)(e)},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U),{placeholder:r(n)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),E(r(z),null,{default:b(()=>[(_(!0),g(o,null,D(r(ae),e=>(_(),f(r(B),{key:e.plan,value:e.plan},{default:b(()=>[C(m(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),h(`div`,Ke,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.format`)),1)]),_:1}),E(r(R),{modelValue:r(y),"onUpdate:modelValue":i[5]||=e=>d(y)?y.value=e:null},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U))]),_:1}),E(r(z),null,{default:b(()=>[E(r(B),{value:`anthropic`},{default:b(()=>[...i[20]||=[C(`Anthropic Messages`,-1)]]),_:1}),E(r(B),{value:`openai`},{default:b(()=>[...i[21]||=[C(`OpenAI Chat Completions`,-1)]]),_:1}),E(r(B),{value:`openai-responses`},{default:b(()=>[...i[22]||=[C(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,qe,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[23]||=[C(`Base URL`,-1)]]),_:1}),E(r(Y),{"model-value":r(ie),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])]),r(ce)?(_(),g(`div`,Je,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[24]||=[C(`Upstream Path`,-1)]]),_:1}),E(r(Y),{"model-value":r(ce),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])])):e(``,!0)],64)),h(`div`,Ye,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.apiKey`)),1)]),_:1}),E(r(Y),{modelValue:r(x),"onUpdate:modelValue":i[6]||=e=>d(x)?x.value=e:null,type:`password`,placeholder:r(n)(`quickSetup.provider.apiKeyPlaceholder`),class:`md:text-xs h-7`},null,8,[`modelValue`,`placeholder`])]),h(`div`,Xe,[E(r(I),{class:`text-xs text-muted-foreground invisible`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.connect`)),1)]),_:1}),E(r(S),{variant:`outline`,size:`sm`,disabled:r(L)===`testing`,onClick:r(Ee)},{default:b(()=>[r(L)===`testing`?(_(),g(o,{key:0},[i[25]||=h(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[h(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),h(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),C(` `+m(r(n)(`quickSetup.provider.testing`)),1)],64)):r(L)===`ok`?(_(),g(o,{key:1},[C(m(r(n)(`quickSetup.provider.connected`)),1)],64)):(_(),g(o,{key:2},[C(m(r(n)(`quickSetup.provider.test`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])]),h(`div`,Ze,[h(`div`,Qe,[h(`span`,$e,m(r(n)(`quickSetup.model.config`)),1),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m($.value)+`/`+m(r(O).length),1)]),_:1})]),r(O).length===0?(_(),g(`p`,et,m(r(n)(`quickSetup.model.selectProviderFirst`)),1)):(_(),g(`div`,tt,[(_(!0),g(o,null,D(r(O),(e,t)=>(_(),f(ee,{key:e.name,model:e,"api-type":r(y),"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":r(oe),capabilities:e.capabilities??[`text`],"stream-timeout-ms":e.stream_timeout_ms??void 0,"onUpdate:model":e=>Me(t,e),onRemove:e=>Ne(t),"onUpdate:streamTimeoutMs":e=>bt(t,e),onToggleCapability:e=>xt(t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`capabilities`,`stream-timeout-ms`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onToggleCapability`]))),128))])),r(X)?(_(),g(`div`,nt,[E(r(Y),{modelValue:Q.value,"onUpdate:modelValue":i[7]||=e=>Q.value=e,placeholder:r(n)(`quickSetup.model.namePlaceholder`),onKeydown:s(w(Ae,[`prevent`]),[`enter`]),class:`flex-1 md:text-xs h-7`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),E(r(S),{type:`button`,variant:`outline`,size:`sm`,onClick:Ae,disabled:!Q.value.trim()},{default:b(()=>[C(m(r(n)(`common.add`)),1)]),_:1},8,[`disabled`])])):e(``,!0)]),h(`div`,rt,[h(`div`,it,[h(`span`,at,m(r(n)(`quickSetup.concurrency.control`)),1)]),E(ne,{mode:r(le),"max-concurrency":r(ue),"queue-timeout-ms":r(de),"max-queue-size":r(fe),"onUpdate:mode":r(Te),"onUpdate:maxConcurrency":i[8]||=e=>ue.value=e,"onUpdate:queueTimeoutMs":i[9]||=e=>de.value=e,"onUpdate:maxQueueSize":i[10]||=e=>fe.value=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`,`onUpdate:mode`])])]),_:1})]),_:1}),h(`div`,ot,[E(r(G),{class:`col-span-3`},{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[h(`div`,st,[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.mapping.title`)),1)]),_:1}),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(r(n)(`quickSetup.mapping.count`,{count:r(k).length})),1)]),_:1})])]),_:1}),E(r(K),null,{default:b(()=>[E(Pe,{entries:r(k),"provider-groups":r(pe),"onUpdate:targets":r(be),onToggleActive:r(xe),onAdd:r(Se),onRemove:r(Ce)},null,8,[`entries`,`provider-groups`,`onUpdate:targets`,`onToggleActive`,`onAdd`,`onRemove`])]),_:1})]),_:1}),h(`div`,ct,[E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[h(`div`,lt,[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.title`)),1)]),_:1}),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.selectedCount`,{count:r(P).size})),1)]),_:1})])]),_:1}),E(r(K),null,{default:b(()=>[r(j).length===0?(_(),g(`div`,ut,[r(A).length===0?(_(),g(o,{key:0},[C(m(r(n)(`quickSetup.retry.allCreated`)),1)],64)):(_(),g(o,{key:1},[C(m(r(n)(`quickSetup.retry.selectProviderFirst`)),1)],64))])):(_(),g(`div`,dt,[(_(!0),g(o,null,D(r(j),e=>(_(),g(`div`,{key:e.name,class:T([`flex items-start gap-2.5 rounded-md transition-colors`,e.exists?`opacity-60 cursor-default p-2`:`hover:bg-muted/50 cursor-pointer p-2`]),onClick:t=>!e.exists&&r(we)(e.name,!r(P).has(e.name))},[E(r(te),{checked:e.exists?!0:r(P).has(e.name),disabled:e.exists,class:`mt-0.5`,"onUpdate:checked":t=>r(we)(e.name,!!t),onClick:i[11]||=w(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),h(`div`,pt,[h(`div`,mt,[h(`span`,ht,m(e.name),1),e.exists?(_(),f(r(W),{key:0,variant:`secondary`,class:`text-[9px] px-1.5 py-0 leading-none bg-muted text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.configured`)),1)]),_:1})):e.providers&&e.providers.length>0?(_(),f(r(W),{key:1,variant:`outline`,class:`text-[9px] px-1 py-0 leading-none`},{default:b(()=>[C(m(e.providers[0]),1)]),_:2},1024)):(_(),f(r(W),{key:2,variant:`secondary`,class:`text-[9px] px-1 py-0 leading-none`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.general`)),1)]),_:1}))]),h(`div`,gt,m(e.status_code)+` · `+m(e.retry_strategy===`fixed`?r(n)(`quickSetup.retry.fixed`):r(n)(`quickSetup.retry.exponential`))+` · `+m(e.retry_delay_ms/1e3)+`s · `+m(e.max_retries)+m(r(n)(`quickSetup.retry.times`)),1)])],10,ft))),128))]))]),_:1})]),_:1}),E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.transform.title`)),1)]),_:1})]),_:1}),E(r(K),null,{default:b(()=>[E(re,{"inject-headers":r(me),"drop-fields":r(he),"request-defaults":r(ge),"onUpdate:injectHeaders":i[12]||=e=>me.value=e,"onUpdate:dropFields":i[13]||=e=>he.value=e,"onUpdate:requestDefaults":i[14]||=e=>ge.value=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])]),_:1})]),_:1})])])]),h(`div`,_t,[h(`div`,vt,[r(u)?(_(),g(o,{key:0},[E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(je.value),1)]),_:1}),i[26]||=h(`span`,{class:`text-muted-foreground/50`},`→`,-1),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(r(X)?r(n)(`quickSetup.provider.custom`):r(u)),1)]),_:1})],64)):e(``,!0),$.value>0?(_(),g(o,{key:1},[i[27]||=h(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),h(`span`,null,m(r(n)(`quickSetup.footer.models`,{count:$.value})),1)],64)):e(``,!0),r(k).length>0?(_(),g(o,{key:2},[i[28]||=h(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),h(`span`,null,m(r(n)(`quickSetup.footer.mappings`,{count:r(k).length})),1)],64)):e(``,!0),r(P).size>0?(_(),g(o,{key:3},[i[29]||=h(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),h(`span`,null,m(r(n)(`quickSetup.footer.rules`,{count:r(P).size})),1)],64)):e(``,!0)]),h(`div`,yt,[E(r(S),{size:`sm`,variant:`outline`,onClick:St},{default:b(()=>[C(m(r(n)(`quickSetup.footer.validate`)),1)]),_:1}),E(r(S),{size:`sm`,disabled:r(F),onClick:r(De)},{default:b(()=>[r(F)?(_(),g(o,{key:0},[i[30]||=h(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[h(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),h(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),C(` `+m(r(n)(`quickSetup.footer.saving`)),1)],64)):(_(),g(o,{key:1},[C(m(r(n)(`quickSetup.footer.saveConfig`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])])],64))}});export{bt as default};
|
|
1
|
+
import{$ as e,A as t,Et as n,Gt as r,H as i,I as a,J as o,K as s,Lt as c,M as l,N as u,Nt as d,Q as f,X as p,Xt as m,Z as h,et as g,gt as _,it as v,k as y,kt as b,mt as x,n as S,nt as C,q as w,qt as T,rt as E,vt as D}from"./button-EcESBjGm.js";import{t as O}from"./MappingEntryEditor-D3KcV5CB.js";import{t as k}from"./CascadingModelSelect-CUl0gGQL.js";import{a as A,i as j,n as ee,o as M,r as N,t as P}from"./model-patches-BKeZXFvS.js";import{t as F}from"./trash-2-Dz0n3WgV.js";import{t as te}from"./Checkbox-uf5QqEJQ.js";import{t as I}from"./Label-B83qJ4ZP.js";import{t as L}from"./Switch-JfjgADP5.js";import{_ as R,g as z,h as B,i as V,m as H,p as U,x as W}from"./index-Dv_nrEfy.js";import{n as G,t as K}from"./CardContent-tdwjLn4i.js";import{n as q,t as J}from"./CardTitle-QnVfhywP.js";import{t as Y}from"./Input-CpDpvdgi.js";import{n as ne,t as re}from"./TransformRulesForm-DA5XjrhO.js";var ie=10,ae=12e4,oe=100,X=800,se=1500,ce={DeepSeek:`deepseek`,百度千帆:`qianfan`,科大讯飞:`iflytek`,硅基流动:`siliconflow`,智谱:`zhipu`,月之暗面:`moonshot`,Minimax:`minimax`,火山引擎:`volcengine`,阿里云:`aliyun`,腾讯云:`tencent`,OpenCode:`opencode`,阶跃星辰:`stepfun`};function Z(e){return ce[e]??e.toLowerCase().replace(/[^a-z0-9]/gi,`-`).replace(/-+/g,`-`)}function le(e,t,n,r){if(!e&&!t&&!n)return;let i={};if(e)try{i.inject_headers=JSON.parse(e)}catch{return r(`injectHeadersJsonError`),!1}if(t&&(i.drop_fields=t.split(`,`).map(e=>e.trim()).filter(Boolean)),n)try{i.request_defaults=JSON.parse(n)}catch{return r(`requestDefaultsJsonError`),!1}return Object.keys(i).length>0?i:void 0}async function ue(e){let t=[];for(let n of e)if(n.existing&&n.existingId&&n.originalActive!==void 0&&n.active!==n.originalActive)try{await y.toggleMappingGroup(n.existingId)}catch{t.push(n.clientModel)}return t}function de(e,t){return e.filter(e=>t.has(e.name)&&!e.exists).map(e=>({name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms}))}function fe(e){return{name:e.isCustom?`custom-${Date.now()}`:`${Z(e.selectedGroup)}-${Z(e.selectedPlan)}`,api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||void 0,api_key:e.apiKey,models:e.models.map(e=>({name:e.name,context_window:e.contextWindow,patches:e.patches.length>0?e.patches:void 0,stream_timeout_ms:e.stream_timeout_ms??void 0,capabilities:e.capabilities&&e.capabilities.length>0?e.capabilities:void 0})),concurrency_mode:e.concurrencyMode,max_concurrency:e.concurrencyMode===`none`?void 0:e.maxConcurrency,queue_timeout_ms:e.concurrencyMode===`none`?void 0:e.queueTimeoutMs,max_queue_size:e.concurrencyMode===`none`?void 0:e.maxQueueSize}}function pe(e,t,n){let r;return r=e===`pi`?t.map(e=>e.name):j[e]??t.map(e=>e.name),r.map(i=>{let a=n.find(e=>e.client_model===i);if(a){let e={};try{e=JSON.parse(a.rule)}catch{e={}}let n=e.targets??[];return{clientModel:i,targets:n.length>0?n.map(e=>({backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})):[{backend_model:t[0]?.name??``,provider_id:`__new__`}],existing:!0,existingId:a.id,tag:`existing`,active:!!a.is_active,originalActive:!!a.is_active}}return{clientModel:i,targets:[{backend_model:t[r.indexOf(i)]?.name??t[t.length-1]?.name??``,provider_id:`__new__`}],existing:!1,tag:e===`pi`?`auto`:`def`,active:!0}})}function me(e,t){return e===`openai-responses`&&(t===`openai`||t===`openai-responses`)?`openai-responses`:t}function he(e){return{provider:fe({isCustom:e.isCustomProvider,selectedGroup:e.selectedGroup,selectedPlan:e.selectedPlan,apiType:e.apiType,baseUrl:e.baseUrl,upstreamPath:e.upstreamPath,apiKey:e.apiKey,models:e.models,concurrencyMode:e.concurrencyMode,maxConcurrency:e.maxConcurrency,queueTimeoutMs:e.queueTimeoutMs,maxQueueSize:e.maxQueueSize}),mappings:e.mappingEntries.filter(e=>e.targets[0]?.backend_model).map(e=>({client_model:e.clientModel,backend_model:e.targets[0]?.backend_model??``})),retry_rules:de(e.recommendedRules,e.selectedRetryRules),transform_rules:e.transformRules}}function ge(e){return p(()=>N.find(t=>t.id===e.value))}function _e(e,t,n){return p(()=>{if(!e.value||!t.value)return;let r=n.value.find(t=>t.group===e.value);if(r)return r.presets.find(e=>e.plan===t.value)})}function ve(e,t,n){return p(()=>e.value?t.value:n.value?.baseUrl??``)}function ye(e,t,n){return p(()=>{if(e.value)return t.value;let r=n.value;if(!r)return``;let i=r.apiType===`anthropic`?`/v1/messages`:r.apiType===`openai-responses`?`/v1/responses`:`/v1/chat/completions`;return r.upstreamPath&&r.upstreamPath!==i?r.upstreamPath:``})}function be(e,t){return p(()=>t.value.find(t=>t.group===e.value)?.presets??[])}function xe(e){return p(()=>!e.value.includes(`openai.com`))}function Se(e,t){return p(()=>{let n=e.value;return t.value.filter(e=>!e.providers||e.providers.length===0?!0:e.providers.includes(n))})}function Ce(e,t,n,r,i,a){let o=p(()=>t.value?{provider:{id:e.value?`__new_custom__`:`__new_${Z(t.value)}_${Z(n.value)}__`,name:e.value?a(`quickSetup.provider.customProvider`):`${t.value} - ${n.value}`},models:r.value.filter(e=>e.enabled).map(e=>({name:e.name,contextWindow:e.contextWindow})),isNew:!0}:null);return{currentProviderGroup:o,allProviderGroups:p(()=>{let e=i.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))}));return o.value&&o.value.models.length>0?[...e,o.value]:e})}}function we(e,t,n){t.value=e.models.map(t=>({name:t,contextWindow:A(t),enabled:!0,patches:P(t,e.apiType,n.value),stream_timeout_ms:u,capabilities:e.modelCapabilities?.[t]}))}function Te(e,t,n,r,i=l){e.value.push({name:t,contextWindow:i,enabled:!0,patches:P(t,n,r.value),stream_timeout_ms:u,capabilities:[`text`]})}async function Ee(e,n,r,i,a,o){try{let[t,o,s,c]=await Promise.allSettled([y.recommended.getProviders(),y.recommended.getRetryRules(),y.getMappingGroups(),y.getProviders()]);t.status===`fulfilled`&&(e.value=t.value),o.status===`fulfilled`&&(n.value=o.value),s.status===`fulfilled`&&(r.value=s.value),c.status===`fulfilled`&&(i.value=c.value),a(`claude-code`)}catch(e){console.error(`quickSetup.load:`,e),o(t(e,``))}}async function De(e,t,n){if(!e.value.trim()){t.value=`error`,n(`quickSetup.messages.fillApiKeyFirst`);return}t.value=`testing`,await new Promise(e=>setTimeout(e,X)),t.value=`ok`}function Oe(){let{t:e}=i(),r=c(`claude-code`),o=c([]),s=c(``),u=c(``),d=c(`anthropic`),f=c(``),m=c([]),h=c([]),g=c([]),_=c(new Set),v=c(!1),b=c(`idle`),S=c(`auto`),C=c(ie),w=c(ae),T=c(oe),E=c(``),D=c(``),O=c(``),k=c([]),A=c([]),j=p(()=>s.value===`__custom__`),ee=ge(r),M=_e(s,u,o),N=c(``),F=c(``),te=ve(j,N,M),I=ye(j,F,M),L=be(s,o),R=xe(te),z=Se(s,g),B=Ce(j,s,u,m,A,e).allProviderGroups;function H(){let e=m.value.filter(e=>e.enabled);h.value=pe(r.value,e,k.value)}function U(){_.value=new Set(z.value.filter(e=>!e.exists).map(e=>e.name))}function W(e){r.value=e,H()}function G(e){if(s.value=e,u.value=``,m.value=[],e===`__custom__`)d.value=`openai`,N.value=``,F.value=``;else{let t=o.value.find(t=>t.group===e);if(t&&t.presets.length>0){let e=ee.value,n=e?.format===`openai-responses`?[`openai-responses`,`openai`]:e?[e.format]:[],r=(e?t.presets.find(e=>n.includes(e.apiType)):null)??t.presets[0];u.value=r.plan,d.value=me(e?.format,r.apiType),we(r,m,R)}}H(),U()}function K(e){u.value=e;let t=o.value.find(e=>e.group===s.value);if(!t)return;let n=t.presets.find(t=>t.plan===e);n&&(d.value=me(ee.value?.format,n.apiType),we(n,m,R),H())}n(d,()=>{for(let e of m.value)e.patches=P(e.name,d.value,R.value)});function q(e,t){let n=new Set(_.value);t?n.add(e):n.delete(e),_.value=n}function J(e,t){let n=[...h.value];n[e]={...n[e],targets:t},h.value=n}function Y(e){let t=[...h.value];t[e]={...t[e],active:!t[e].active},h.value=t}function ne(e,t){let n=h.value.filter(t=>t.clientModel!==e);n.push({clientModel:e,targets:[{backend_model:t,provider_id:`__new__`}],existing:!1,tag:`cust`,active:!0}),h.value=n}function re(t){if(h.value.find(e=>e.clientModel===t)?.existing){V.error(e(`quickSetup.messages.existingMappingDelete`));return}h.value=h.value.filter(e=>e.clientModel!==t)}function X(e){S.value=e,e===`auto`?C.value=ie:e===`manual`&&(C.value=3)}async function ce(){return De(f,b,t=>V.error(e(t)))}function Z(e,t=l){Te(m,e,d.value,R,t)}async function de(){if(!M.value){V.error(e(`quickSetup.messages.selectProviderAndPlan`));return}if(!f.value.trim()){V.error(e(`quickSetup.messages.fillApiKey`));return}v.value=!0;try{let t=le(E.value.trim(),D.value.trim(),O.value.trim(),t=>V.error(e(`quickSetup.messages.${t}`)));if(t===!1)return;let n=he({isCustomProvider:j.value,selectedGroup:s.value,selectedPlan:u.value,apiType:d.value,baseUrl:te.value,upstreamPath:I.value,apiKey:f.value.trim(),models:m.value,concurrencyMode:S.value,maxConcurrency:C.value,queueTimeoutMs:w.value,maxQueueSize:T.value,mappingEntries:h.value,recommendedRules:z.value,selectedRetryRules:_.value,transformRules:t});await y.quickSetup(n);let r=await ue(h.value);r.length>0?V.success(e(`quickSetup.messages.setupCompleteWithErrors`,{count:r.length})):V.success(e(`quickSetup.messages.setupComplete`)),await new Promise(e=>setTimeout(e,se)),a.push(`/`)}catch(n){console.error(`quickSetup.save:`,n),V.error(t(n,e(`quickSetup.messages.setupFailed`)))}finally{v.value=!1}}return x(()=>{Ee(o,g,k,A,W,e=>V.error(e))}),{clientType:r,providerGroups:o,selectedGroup:s,selectedPlan:u,apiType:d,apiKey:f,modelConfigs:m,mappingEntries:h,allRecommendedRules:g,recommendedRules:z,selectedRetryRules:_,saving:v,connectionStatus:b,currentClient:ee,currentPreset:M,baseUrl:te,customBaseUrl:N,upstreamPath:I,customUpstreamPath:F,isCustomProvider:j,availablePlans:L,isNonOpenaiEndpoint:R,concurrencyMode:S,maxConcurrency:C,queueTimeoutMs:w,maxQueueSize:T,transformInjectHeaders:E,transformDropFields:D,transformRequestDefaults:O,existingMappings:k,allProviders:A,allProviderGroups:B,selectClient:W,onProviderChange:G,onPlanChange:K,updateMappings:H,updateMappingTargets:J,toggleMappingActive:Y,addMappingEntry:ne,removeMappingEntry:re,toggleRetryRule:q,onConcurrencyModeChange:X,testConnection:ce,submit:de,addCustomModel:Z}}var ke={class:`space-y-1.5`},Q={class:`flex items-start gap-2 px-3 py-2`},Ae=[`onClick`],$={class:`flex items-center gap-1.5 shrink-0 pt-0.5`},je={key:0,class:`py-3 text-center text-xs text-muted-foreground`},Me={class:`flex items-center gap-2 pt-2 border-t mt-2`},Ne={class:`flex-1`},Pe=v({__name:`QuickSetupMappingList`,props:{entries:{},providerGroups:{}},emits:[`update:targets`,`toggle-active`,`add`,`remove`],setup(t,{emit:n}){let{t:a}=i(),s=n,l=c(new Set);function u(e){let t=new Set(l.value);t.has(e)?t.delete(e):t.add(e),l.value=t}let d=c(``),f=c();function p(){return d.value.trim().length>0&&!!f.value?.model}function v(){let e=d.value.trim(),t=f.value;e&&t&&(s(`add`,e,t.model),d.value=``,f.value=void 0)}function y(e){e.key===`Enter`&&p()&&(e.preventDefault(),v())}return(n,i)=>(_(),g(`div`,ke,[(_(!0),g(o,null,D(t.entries,(e,n)=>(_(),g(`div`,{key:e.clientModel,class:`rounded-md border border-border`},[h(`div`,Q,[h(`div`,{class:T([`flex-1 min-w-0`,{"cursor-pointer":!l.value.has(e.clientModel)}]),onClick:t=>!l.value.has(e.clientModel)&&u(e.clientModel)},[E(O,{entry:e,"provider-groups":t.providerGroups,expanded:l.value.has(e.clientModel),editable:!0,"onUpdate:targets":e=>s(`update:targets`,n,e)},null,8,[`entry`,`provider-groups`,`expanded`,`onUpdate:targets`])],10,Ae),h(`div`,$,[E(r(S),{variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground/40 hover:text-destructive`,onClick:w(t=>s(`remove`,e.clientModel),[`stop`])},{default:b(()=>[E(r(F),{class:`size-3`})]),_:1},8,[`onClick`]),E(r(L),{"model-value":e.active,"onUpdate:modelValue":e=>s(`toggle-active`,n),class:`scale-75`,onClick:i[0]||=w(()=>{},[`stop`])},null,8,[`model-value`,`onUpdate:modelValue`])])])]))),128)),t.entries.length===0?(_(),g(`p`,je,m(r(a)(`providers.shared.noMappings`)),1)):e(``,!0),h(`div`,Me,[E(r(Y),{modelValue:d.value,"onUpdate:modelValue":i[1]||=e=>d.value=e,placeholder:r(a)(`providers.shared.clientModel`),class:`h-8 flex-1 text-xs font-mono`,onKeydown:y},null,8,[`modelValue`,`placeholder`]),h(`div`,Ne,[E(k,{providers:t.providerGroups,"model-value":f.value,compact:``,placeholder:r(a)(`providers.shared.selectModel`),"onUpdate:modelValue":i[2]||=e=>f.value=e},null,8,[`providers`,`model-value`,`placeholder`])]),E(r(S),{size:`sm`,variant:`outline`,class:`h-8 shrink-0`,disabled:!p(),onClick:v},{default:b(()=>[C(m(r(a)(`providers.shared.add`)),1)]),_:1},8,[`disabled`])])]))}}),Fe={class:`p-6 space-y-4 pb-20`},Ie={class:`flex gap-2 flex-wrap`},Le={class:`text-left`},Re={class:`font-medium text-sm leading-tight`},ze={class:`text-[10px] opacity-60 leading-tight`},Be={class:`flex items-end gap-2`},Ve={class:`w-40 space-y-1`},He={class:`w-48 space-y-1`},Ue={class:`w-80 space-y-1`},We={class:`w-48 space-y-1`},Ge={class:`w-28 space-y-1`},Ke={class:`w-48 space-y-1`},qe={class:`w-72 space-y-1`},Je={key:0,class:`w-48 space-y-1`},Ye={class:`w-64 space-y-1`},Xe={class:`shrink-0 space-y-1`},Ze={class:`border-t pt-3`},Qe={class:`flex items-center justify-between mb-2`},$e={class:`text-xs font-medium text-muted-foreground`},et={key:0,class:`py-4 text-center text-xs text-muted-foreground`},tt={key:1,class:`grid grid-cols-4 gap-2`},nt={key:2,class:`flex gap-2 mt-2`},rt={class:`border-t pt-3`},it={class:`flex items-center justify-between mb-2`},at={class:`text-xs font-medium text-muted-foreground`},ot={class:`grid grid-cols-5 gap-4`},st={class:`flex items-center justify-between`},ct={class:`col-span-2 space-y-4`},lt={class:`flex items-center justify-between`},ut={key:0,class:`py-6 text-center text-xs text-muted-foreground`},dt={key:1,class:`space-y-1.5 max-h-[320px] overflow-y-auto`},ft=[`onClick`],pt={class:`flex-1 min-w-0`},mt={class:`flex items-center gap-1.5`},ht={class:`text-xs font-medium`},gt={class:`text-[10px] text-muted-foreground mt-0.5`},_t={class:`fixed bottom-0 right-0 left-56 border-t bg-card/95 backdrop-blur px-6 py-2.5 flex items-center justify-between z-10`},vt={class:`text-xs text-muted-foreground flex items-center gap-1.5`},yt={class:`flex items-center gap-2`},bt=v({__name:`QuickSetup`,setup(t){let{t:n}=i(),{clientType:a,providerGroups:l,selectedGroup:u,selectedPlan:v,apiType:y,apiKey:x,modelConfigs:O,mappingEntries:k,allRecommendedRules:A,recommendedRules:j,selectedRetryRules:P,saving:F,connectionStatus:L,baseUrl:ie,availablePlans:ae,isNonOpenaiEndpoint:oe,isCustomProvider:X,customBaseUrl:se,upstreamPath:ce,customUpstreamPath:Z,concurrencyMode:le,maxConcurrency:ue,queueTimeoutMs:de,maxQueueSize:fe,allProviderGroups:pe,transformInjectHeaders:me,transformDropFields:he,transformRequestDefaults:ge,selectClient:_e,onProviderChange:ve,onPlanChange:ye,updateMappingTargets:be,toggleMappingActive:xe,addMappingEntry:Se,removeMappingEntry:Ce,toggleRetryRule:we,onConcurrencyModeChange:Te,testConnection:Ee,submit:De,addCustomModel:ke}=Oe(),Q=c(``);function Ae(){Q.value.trim()&&(ke(Q.value.trim()),Q.value=``)}let $=p(()=>O.value.filter(e=>e.enabled).length),je=p(()=>N.find(e=>e.id===a.value)?.name??a.value);function Me(e,t){let n=[...O.value];n[e]=t,O.value=n}function Ne(e){O.value=O.value.filter((t,n)=>n!==e)}function bt(e,t){let n=[...O.value];n[e]={...n[e],stream_timeout_ms:t||void 0},O.value=n}function xt(e,t){let n=[...O.value],r={...n[e]},i=r.capabilities??[`text`];i.includes(t)?r.capabilities=i.filter(e=>e!==t):r.capabilities=[...i,t],n[e]=r,O.value=n}function St(){if(!u.value){V.error(n(`quickSetup.messages.selectProvider`));return}if(!x.value.trim()){V.error(n(`quickSetup.messages.fillApiKey`));return}if($.value===0){V.error(n(`quickSetup.messages.enableOneModel`));return}V.success(n(`quickSetup.messages.validationPassed`))}return(t,i)=>(_(),g(o,null,[h(`div`,Fe,[E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.client.selectClient`)),1)]),_:1})]),_:1}),E(r(K),null,{default:b(()=>[h(`div`,Ie,[(_(!0),g(o,null,D(r(N),e=>(_(),f(r(S),{key:e.id,variant:`outline`,class:T([`flex h-auto items-center gap-2.5 px-4 py-2.5 text-sm transition-all cursor-pointer`,r(a)===e.id?`border-primary bg-primary/5 text-primary ring-1 ring-primary/20`:`border-border hover:border-muted-foreground/30 text-muted-foreground hover:text-foreground`]),onClick:t=>r(_e)(e.id)},{default:b(()=>[E(M,{name:e.iconSvg??``,size:24,class:T(r(a)===e.id?`text-primary`:`text-muted-foreground`)},null,8,[`name`,`class`]),h(`div`,Le,[h(`div`,Re,m(e.name),1),h(`div`,ze,m(e.format)+` · `+m(r(n)(e.descriptionKey)),1)])]),_:2},1032,[`class`,`onClick`]))),128))])]),_:1})]),_:1}),E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.config`)),1)]),_:1})]),_:1}),E(r(K),{class:`space-y-4`},{default:b(()=>[h(`div`,Be,[h(`div`,Ve,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.label`)),1)]),_:1}),E(r(R),{"model-value":r(u),"onUpdate:modelValue":i[0]||=e=>r(ve)(e)},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U),{placeholder:r(n)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),E(r(z),null,{default:b(()=>[E(r(B),{value:`__custom__`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.custom`)),1)]),_:1}),(_(!0),g(o,null,D(r(l),e=>(_(),f(r(B),{key:e.group,value:e.group},{default:b(()=>[C(m(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),r(X)?(_(),g(o,{key:0},[h(`div`,He,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.format`)),1)]),_:1}),E(r(R),{modelValue:r(y),"onUpdate:modelValue":i[1]||=e=>d(y)?y.value=e:null},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U))]),_:1}),E(r(z),null,{default:b(()=>[E(r(B),{value:`anthropic`},{default:b(()=>[...i[15]||=[C(`Anthropic Messages`,-1)]]),_:1}),E(r(B),{value:`openai`},{default:b(()=>[...i[16]||=[C(`OpenAI Chat Completions`,-1)]]),_:1}),E(r(B),{value:`openai-responses`},{default:b(()=>[...i[17]||=[C(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,Ue,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[18]||=[C(`Base URL`,-1)]]),_:1}),E(r(Y),{modelValue:r(se),"onUpdate:modelValue":i[2]||=e=>d(se)?se.value=e:null,placeholder:`https://api.example.com/v1`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])]),h(`div`,We,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[19]||=[C(`Upstream Path`,-1)]]),_:1}),E(r(Y),{modelValue:r(Z),"onUpdate:modelValue":i[3]||=e=>d(Z)?Z.value=e:null,placeholder:`/v1/chat/completions`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])])],64)):(_(),g(o,{key:1},[h(`div`,Ge,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.plan`)),1)]),_:1}),E(r(R),{"model-value":r(v),"onUpdate:modelValue":i[4]||=e=>r(ye)(e)},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U),{placeholder:r(n)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),E(r(z),null,{default:b(()=>[(_(!0),g(o,null,D(r(ae),e=>(_(),f(r(B),{key:e.plan,value:e.plan},{default:b(()=>[C(m(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),h(`div`,Ke,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.format`)),1)]),_:1}),E(r(R),{modelValue:r(y),"onUpdate:modelValue":i[5]||=e=>d(y)?y.value=e:null},{default:b(()=>[E(r(H),{class:`w-full text-xs data-[size=default]:h-7`},{default:b(()=>[E(r(U))]),_:1}),E(r(z),null,{default:b(()=>[E(r(B),{value:`anthropic`},{default:b(()=>[...i[20]||=[C(`Anthropic Messages`,-1)]]),_:1}),E(r(B),{value:`openai`},{default:b(()=>[...i[21]||=[C(`OpenAI Chat Completions`,-1)]]),_:1}),E(r(B),{value:`openai-responses`},{default:b(()=>[...i[22]||=[C(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,qe,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[23]||=[C(`Base URL`,-1)]]),_:1}),E(r(Y),{"model-value":r(ie),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])]),r(ce)?(_(),g(`div`,Je,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[...i[24]||=[C(`Upstream Path`,-1)]]),_:1}),E(r(Y),{"model-value":r(ce),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])])):e(``,!0)],64)),h(`div`,Ye,[E(r(I),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.apiKey`)),1)]),_:1}),E(r(Y),{modelValue:r(x),"onUpdate:modelValue":i[6]||=e=>d(x)?x.value=e:null,type:`password`,placeholder:r(n)(`quickSetup.provider.apiKeyPlaceholder`),class:`md:text-xs h-7`},null,8,[`modelValue`,`placeholder`])]),h(`div`,Xe,[E(r(I),{class:`text-xs text-muted-foreground invisible`},{default:b(()=>[C(m(r(n)(`quickSetup.provider.connect`)),1)]),_:1}),E(r(S),{variant:`outline`,size:`sm`,disabled:r(L)===`testing`,onClick:r(Ee)},{default:b(()=>[r(L)===`testing`?(_(),g(o,{key:0},[i[25]||=h(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[h(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),h(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),C(` `+m(r(n)(`quickSetup.provider.testing`)),1)],64)):r(L)===`ok`?(_(),g(o,{key:1},[C(m(r(n)(`quickSetup.provider.connected`)),1)],64)):(_(),g(o,{key:2},[C(m(r(n)(`quickSetup.provider.test`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])]),h(`div`,Ze,[h(`div`,Qe,[h(`span`,$e,m(r(n)(`quickSetup.model.config`)),1),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m($.value)+`/`+m(r(O).length),1)]),_:1})]),r(O).length===0?(_(),g(`p`,et,m(r(n)(`quickSetup.model.selectProviderFirst`)),1)):(_(),g(`div`,tt,[(_(!0),g(o,null,D(r(O),(e,t)=>(_(),f(ee,{key:e.name,model:e,"api-type":r(y),"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":r(oe),capabilities:e.capabilities??[`text`],"stream-timeout-ms":e.stream_timeout_ms??void 0,"onUpdate:model":e=>Me(t,e),onRemove:e=>Ne(t),"onUpdate:streamTimeoutMs":e=>bt(t,e),onToggleCapability:e=>xt(t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`capabilities`,`stream-timeout-ms`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onToggleCapability`]))),128))])),r(X)?(_(),g(`div`,nt,[E(r(Y),{modelValue:Q.value,"onUpdate:modelValue":i[7]||=e=>Q.value=e,placeholder:r(n)(`quickSetup.model.namePlaceholder`),onKeydown:s(w(Ae,[`prevent`]),[`enter`]),class:`flex-1 md:text-xs h-7`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),E(r(S),{type:`button`,variant:`outline`,size:`sm`,onClick:Ae,disabled:!Q.value.trim()},{default:b(()=>[C(m(r(n)(`common.add`)),1)]),_:1},8,[`disabled`])])):e(``,!0)]),h(`div`,rt,[h(`div`,it,[h(`span`,at,m(r(n)(`quickSetup.concurrency.control`)),1)]),E(ne,{mode:r(le),"max-concurrency":r(ue),"queue-timeout-ms":r(de),"max-queue-size":r(fe),"onUpdate:mode":r(Te),"onUpdate:maxConcurrency":i[8]||=e=>ue.value=e,"onUpdate:queueTimeoutMs":i[9]||=e=>de.value=e,"onUpdate:maxQueueSize":i[10]||=e=>fe.value=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`,`onUpdate:mode`])])]),_:1})]),_:1}),h(`div`,ot,[E(r(G),{class:`col-span-3`},{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[h(`div`,st,[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.mapping.title`)),1)]),_:1}),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(r(n)(`quickSetup.mapping.count`,{count:r(k).length})),1)]),_:1})])]),_:1}),E(r(K),null,{default:b(()=>[E(Pe,{entries:r(k),"provider-groups":r(pe),"onUpdate:targets":r(be),onToggleActive:r(xe),onAdd:r(Se),onRemove:r(Ce)},null,8,[`entries`,`provider-groups`,`onUpdate:targets`,`onToggleActive`,`onAdd`,`onRemove`])]),_:1})]),_:1}),h(`div`,ct,[E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[h(`div`,lt,[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.title`)),1)]),_:1}),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.selectedCount`,{count:r(P).size})),1)]),_:1})])]),_:1}),E(r(K),null,{default:b(()=>[r(j).length===0?(_(),g(`div`,ut,[r(A).length===0?(_(),g(o,{key:0},[C(m(r(n)(`quickSetup.retry.allCreated`)),1)],64)):(_(),g(o,{key:1},[C(m(r(n)(`quickSetup.retry.selectProviderFirst`)),1)],64))])):(_(),g(`div`,dt,[(_(!0),g(o,null,D(r(j),e=>(_(),g(`div`,{key:e.name,class:T([`flex items-start gap-2.5 rounded-md transition-colors`,e.exists?`opacity-60 cursor-default p-2`:`hover:bg-muted/50 cursor-pointer p-2`]),onClick:t=>!e.exists&&r(we)(e.name,!r(P).has(e.name))},[E(r(te),{checked:e.exists?!0:r(P).has(e.name),disabled:e.exists,class:`mt-0.5`,"onUpdate:checked":t=>r(we)(e.name,!!t),onClick:i[11]||=w(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),h(`div`,pt,[h(`div`,mt,[h(`span`,ht,m(e.name),1),e.exists?(_(),f(r(W),{key:0,variant:`secondary`,class:`text-[9px] px-1.5 py-0 leading-none bg-muted text-muted-foreground`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.configured`)),1)]),_:1})):e.providers&&e.providers.length>0?(_(),f(r(W),{key:1,variant:`outline`,class:`text-[9px] px-1 py-0 leading-none`},{default:b(()=>[C(m(e.providers[0]),1)]),_:2},1024)):(_(),f(r(W),{key:2,variant:`secondary`,class:`text-[9px] px-1 py-0 leading-none`},{default:b(()=>[C(m(r(n)(`quickSetup.retry.general`)),1)]),_:1}))]),h(`div`,gt,m(e.status_code)+` · `+m(e.retry_strategy===`fixed`?r(n)(`quickSetup.retry.fixed`):r(n)(`quickSetup.retry.exponential`))+` · `+m(e.retry_delay_ms/1e3)+`s · `+m(e.max_retries)+m(r(n)(`quickSetup.retry.times`)),1)])],10,ft))),128))]))]),_:1})]),_:1}),E(r(G),null,{default:b(()=>[E(r(q),{class:`pb-3`},{default:b(()=>[E(r(J),{class:`text-sm font-medium`},{default:b(()=>[C(m(r(n)(`quickSetup.transform.title`)),1)]),_:1})]),_:1}),E(r(K),null,{default:b(()=>[E(re,{"inject-headers":r(me),"drop-fields":r(he),"request-defaults":r(ge),"onUpdate:injectHeaders":i[12]||=e=>me.value=e,"onUpdate:dropFields":i[13]||=e=>he.value=e,"onUpdate:requestDefaults":i[14]||=e=>ge.value=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])]),_:1})]),_:1})])])]),h(`div`,_t,[h(`div`,vt,[r(u)?(_(),g(o,{key:0},[E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(je.value),1)]),_:1}),i[26]||=h(`span`,{class:`text-muted-foreground/50`},`→`,-1),E(r(W),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[C(m(r(X)?r(n)(`quickSetup.provider.custom`):r(u)),1)]),_:1})],64)):e(``,!0),$.value>0?(_(),g(o,{key:1},[i[27]||=h(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),h(`span`,null,m(r(n)(`quickSetup.footer.models`,{count:$.value})),1)],64)):e(``,!0),r(k).length>0?(_(),g(o,{key:2},[i[28]||=h(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),h(`span`,null,m(r(n)(`quickSetup.footer.mappings`,{count:r(k).length})),1)],64)):e(``,!0),r(P).size>0?(_(),g(o,{key:3},[i[29]||=h(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),h(`span`,null,m(r(n)(`quickSetup.footer.rules`,{count:r(P).size})),1)],64)):e(``,!0)]),h(`div`,yt,[E(r(S),{size:`sm`,variant:`outline`,onClick:St},{default:b(()=>[C(m(r(n)(`quickSetup.footer.validate`)),1)]),_:1}),E(r(S),{size:`sm`,disabled:r(F),onClick:r(De)},{default:b(()=>[r(F)?(_(),g(o,{key:0},[i[30]||=h(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[h(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),h(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),C(` `+m(r(n)(`quickSetup.footer.saving`)),1)],64)):(_(),g(o,{key:1},[C(m(r(n)(`quickSetup.footer.saveConfig`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])])],64))}});export{bt as default};
|
|
@@ -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 ee,qt as C,r as w,rt as T,vt as E,x as D,yt as O}from"./button-Dm-cbgS5.js";import{t as k}from"./plus-BkH7yWn-.js";import{t as A}from"./Checkbox-9z_nic4H.js";import{i as te,n as ne,r as re,t as ie}from"./TooltipTrigger-BvHKib2n.js";import{n as ae,t as oe}from"./CollapsibleContent-DRXTjuF_.js";import{a as se,i as ce,n as j,o as M,r as le,s as N,t as P}from"./CollapsibleTrigger-BusSosYR.js";import{a as ue,c as F,d as I,f as L,l as R,n as de,o as fe,r as pe,s as me,t as he,u as z}from"./dialog-Dzy4m58L.js";import{t as B}from"./Label-CumWBzHY.js";import{R as V,_ as H,a as ge,at as _e,c as ve,f as ye,ft as U,g as W,h as G,i as K,l as be,m as q,o as xe,p as J,s as Se,u as Ce,x as Y}from"./index-CTaQHTod.js";import{n as X,t as we}from"./CardContent-1i8E_S3q.js";import{n as Te,t as Ee}from"./CardTitle-9IEYVrNF.js";import{t as Z}from"./Input-BwqUPR8k.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(()=>M(c.baseId,r.value)),d=s(()=>se(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(V),{present:t.forceMount||f.value,"force-mount":``},{default:_(({present:r})=>[T(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?O(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`]))}}),Q=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=D(t,`class`);return(e,i)=>(p(),o(n(De),d({"data-slot":`tabs-content`,class:n(w)(`text-sm flex-1 outline-none`,t.class)},n(r)),{default:_(()=>[O(e.$slots,`default`)]),_:3},16,[`class`]))}}),Oe={class:`flex items-center justify-between`},ke={class:`flex items-center justify-between mb-3`},Ae={class:`flex items-center gap-2`},je={class:`text-sm text-muted-foreground`},Me=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 ee(e){let t=new Set(x.value);t.has(e)?t.delete(e):t.add(e),x.value=t}function w(e){x.value=e===!0?new Set(m.rules.map(e=>e.name)):new Set}async function D(){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});K.success(d(`retryRules.messages.addedCount`,{count:e.length})),x.value=new Set,h(`added`)}return(r,a)=>t.rules.length>0?(p(),o(n(X),{key:0,class:`mt-6`},{default:_(()=>[T(n(ae),{open:v.value,"onUpdate:open":a[0]||=e=>v.value=e},{default:_(()=>[T(n(P),{"as-child":``},{default:_(()=>[T(n(Te),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:_(()=>[u(`div`,Oe,[T(n(Ee),{class:`text-sm font-medium`},{default:_(()=>[b(c(n(d)(`retryRules.recommended.title`,{count:t.rules.length})),1)]),_:1}),T(n(U),{class:C([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":v.value}])},null,8,[`class`])])]),_:1})]),_:1}),T(n(oe),null,{default:_(()=>[T(n(we),null,{default:_(()=>[u(`div`,ke,[u(`div`,Ae,[T(n(A),{"model-value":S.value,"onUpdate:modelValue":w},null,8,[`model-value`]),u(`span`,je,c(n(d)(`retryRules.recommended.selectAll`)),1)]),T(n(y),{size:`sm`,disabled:x.value.size===0,onClick:D},{default:_(()=>[b(c(n(d)(`retryRules.recommended.addSelected`,{count:x.value.size})),1)]),_:1},8,[`disabled`])]),T(n(L),null,{default:_(()=>[T(n(me),null,{default:_(()=>[T(n(R),null,{default:_(()=>[T(n(F),{class:`w-10`}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.name`)),1)]),_:1}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),T(n(I),null,{default:_(()=>[(p(!0),f(i,null,E(t.rules,e=>(p(),o(n(R),{key:e.name},{default:_(()=>[T(n(z),null,{default:_(()=>[T(n(A),{"model-value":x.value.has(e.name),"onUpdate:modelValue":()=>ee(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),T(n(z),null,{default:_(()=>[b(c(e.name),1)]),_:2},1024),T(n(z),null,{default:_(()=>[b(c(e.status_code),1)]),_:2},1024),T(n(z),{class:`font-mono text-xs max-w-[200px] truncate`},{default:_(()=>[b(c(e.body_pattern),1)]),_:2},1024),T(n(z),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)}}),Ne={class:`p-6`},Pe={class:`flex items-center justify-between mb-4`},Fe={class:`text-lg font-semibold text-foreground`},Ie={class:`bg-card rounded-lg border overflow-hidden`},Le={class:`truncate block`},Re={key:1},ze={class:`flex items-center gap-2`},Be={class:`text-xs text-muted-foreground`},Ve={key:0,class:`text-sm text-destructive mt-1`},He={key:0,class:`text-sm text-destructive mt-1`},Ue={class:`font-medium mb-1`},We={key:0,class:`text-sm text-destructive mt-1`},Ge={class:`space-y-2`},Ke={key:0,class:`text-sm text-destructive mt-1`},qe={class:`grid grid-cols-2 gap-3`},Je={key:0,class:`text-sm text-destructive mt-1`},Ye={key:0,class:`text-sm text-destructive mt-1`},Xe={key:0},Ze={key:0,class:`text-sm text-destructive mt-1`},Qe={class:`flex items-center gap-2`},$e=100,et=599,$=100,tt=100,nt=h({__name:`RetryRules`,setup(s){let{t:l}=r(),d={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:[]},m=a([]),h=a([]),x=a(!1),S=a(null),C=a(null),w=a({...d,bodyMatchers:[]}),D=a({}),O=a([]),ae={equals:l(`retryRules.operatorEquals`),contains:l(`retryRules.operatorContains`),exists:l(`retryRules.operatorExists`)};function oe(e){let t=h.value.find(t=>t.id===e);return t?t.name:e}function se(e){if(e.body_matchers)try{return JSON.parse(e.body_matchers).map(e=>{let t=ae[e.operator]??e.operator;return e.operator===`exists`?`${e.path} ${t}`:`${e.path} ${t} "${e.value}"`}).join(`, `)}catch{return e.body_matchers}return e.body_pattern}function M(){w.value.bodyMatchers.push({path:``,operator:`contains`,value:``})}function N(e){w.value.bodyMatchers.splice(e,1)}function P(){let e={};w.value.name.trim()||(e.name=l(`retryRules.validation.nameRequired`));let t=Number(w.value.status_code);if((!Number.isInteger(t)||t<$e||t>et)&&(e.status_code=l(`retryRules.validation.statusCodeRange`,{min:$e,max:et})),w.value.matchMode===`regex`)if(!w.value.body_pattern.trim())e.body_pattern=l(`retryRules.validation.bodyPatternRequired`);else try{new RegExp(w.value.body_pattern)}catch{e.body_pattern=l(`retryRules.validation.bodyPatternInvalid`)}else w.value.bodyMatchers.some(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()))||(e.body_matchers=l(`retryRules.validation.bodyPatternRequired`));let n=Number(w.value.retry_delay_ms);(!n||n<$)&&(e.retry_delay_ms=l(`retryRules.validation.delayMin`,{min:$}));let r=Number(w.value.max_retries);if((!Number.isInteger(r)||r<0||r>tt)&&(e.max_retries=l(`retryRules.validation.retriesRange`,{max:tt})),w.value.retry_strategy===`exponential`){let t=Number(w.value.max_delay_ms);(!t||t<$)&&(e.max_delay_ms=l(`retryRules.validation.delayMin`,{min:$}))}return D.value=e,Object.keys(e).length===0}async function V(){try{m.value=await g.getRetryRules()}catch(e){console.error(`RetryRules.loadData:`,e),K.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function U(){try{h.value=await g.getProviders()}catch(e){console.error(`RetryRules.loadProviders:`,e),K.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function X(){try{O.value=await g.recommended.getRetryRules()}catch{O.value=[]}}function we(){S.value=null,w.value={...d,bodyMatchers:[]},D.value={},x.value=!0}function Te(e){S.value=e.id;let t=`regex`,n=[];if(e.body_matchers){t=`json`;try{n=JSON.parse(e.body_matchers)}catch{n=[]}}w.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:t,bodyMatchers:n},D.value={},x.value=!0}async function Ee(){if(P())try{let e=w.value.matchMode===`json`?JSON.stringify(w.value.bodyMatchers.filter(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()))):null,t={name:w.value.name,status_code:Number(w.value.status_code),body_pattern:w.value.body_pattern,provider_id:w.value.provider_id===`__all__`?null:w.value.provider_id,body_matchers:e,is_active:+!!w.value.is_active,retry_strategy:w.value.retry_strategy,retry_delay_ms:Number(w.value.retry_delay_ms),max_retries:Number(w.value.max_retries),max_delay_ms:Number(w.value.max_delay_ms)};S.value?await g.updateRetryRule(S.value,t):await g.createRetryRule(t),x.value=!1,await V()}catch(e){console.error(`RetryRules.handleSave:`,e),K.error(t(e,l(`retryRules.messages.saveFailed`)))}}function De(e){C.value=e}async function Oe(){let e=C.value;if(e){C.value=null;try{await g.deleteRetryRule(e.id),await V()}catch(e){console.error(`RetryRules.handleDelete:`,e),K.error(t(e,l(`retryRules.messages.deleteFailed`)))}}}async function ke(){await Promise.allSettled([X(),V()])}return v(()=>{V(),X(),U()}),(t,r)=>(p(),f(`div`,Ne,[u(`div`,Pe,[u(`h2`,Fe,c(n(l)(`retryRules.title`)),1),T(n(y),{onClick:we,class:`flex items-center gap-1`},{default:_(()=>[T(n(k),{class:`w-4 h-4`}),b(` `+c(n(l)(`retryRules.addRule`)),1)]),_:1})]),u(`div`,Ie,[T(n(L),{class:`[&_td]:px-4 [&_th]:px-4`},{default:_(()=>[T(n(me),null,{default:_(()=>[T(n(R),{class:`bg-muted`},{default:_(()=>[T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.name`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.provider`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.status`)),1)]),_:1}),T(n(F),{class:`text-right text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),T(n(I),null,{default:_(()=>[(p(!0),f(i,null,E(m.value,t=>(p(),o(n(R),{key:t.id},{default:_(()=>[T(n(z),{class:`font-mono text-sm`},{default:_(()=>[b(c(t.name),1)]),_:2},1024),T(n(z),null,{default:_(()=>[b(c(t.status_code),1)]),_:2},1024),T(n(z),{class:`font-mono text-xs text-muted-foreground max-w-[200px]`},{default:_(()=>[u(`span`,Le,c(se(t)),1)]),_:2},1024),T(n(z),null,{default:_(()=>[t.provider_id?(p(),f(`span`,Re,c(oe(t.provider_id)),1)):(p(),o(n(Y),{key:0,variant:`secondary`},{default:_(()=>[b(c(n(l)(`retryRules.globalBadge`)),1)]),_:1}))]),_:2},1024),T(n(z),null,{default:_(()=>[u(`div`,ze,[T(n(Y),{variant:`outline`},{default:_(()=>[b(c(t.retry_strategy===`fixed`?n(l)(`retryRules.strategy.fixed`):n(l)(`retryRules.strategy.exponential`)),1)]),_:2},1024),u(`span`,Be,[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),T(n(z),null,{default:_(()=>[T(n(Y),{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),T(n(z),{class:`text-right`},{default:_(()=>[T(n(y),{variant:`ghost`,size:`sm`,onClick:e=>Te(t),class:`mr-2`},{default:_(()=>[b(c(n(l)(`common.edit`)),1)]),_:1},8,[`onClick`]),T(n(y),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>De(t)},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),m.value.length===0?(p(),o(n(R),{key:0},{default:_(()=>[T(n(z),{colspan:`7`,class:`text-center text-muted-foreground py-8`},{default:_(()=>[b(c(n(l)(`retryRules.noRules`)),1)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),T(n(fe),{open:x.value,"onUpdate:open":r[17]||=e=>x.value=e},{default:_(()=>[T(n(ue),{class:`max-w-lg`},{default:_(()=>[T(n(de),null,{default:_(()=>[T(n(he),null,{default:_(()=>[b(c(S.value?n(l)(`retryRules.dialog.editRule`):n(l)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:ee(Ee,[`prevent`]),class:`space-y-3`},[u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.name`)),1)]),_:1}),T(n(Z),{modelValue:w.value.name,"onUpdate:modelValue":r[0]||=e=>w.value.name=e,type:`text`,required:``,onInput:r[1]||=e=>delete D.value.name},null,8,[`modelValue`]),D.value.name?(p(),f(`p`,Ve,c(D.value.name),1)):e(``,!0)]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.provider`)),1)]),_:1}),T(n(H),{modelValue:w.value.provider_id,"onUpdate:modelValue":r[2]||=e=>w.value.provider_id=e},{default:_(()=>[T(n(q),{class:`w-full`},{default:_(()=>[T(n(J),{placeholder:n(l)(`retryRules.providerPlaceholder`)},null,8,[`placeholder`])]),_:1}),T(n(W),null,{default:_(()=>[T(n(G),{value:`__all__`},{default:_(()=>[b(c(n(l)(`retryRules.providerAll`)),1)]),_:1}),(p(!0),f(i,null,E(h.value,e=>(p(),o(n(G),{key:e.id,value:e.id},{default:_(()=>[b(c(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.statusCode`)),1)]),_:1}),T(n(Z),{modelValue:w.value.status_code,"onUpdate:modelValue":r[3]||=e=>w.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:r[4]||=e=>delete D.value.status_code},null,8,[`modelValue`]),D.value.status_code?(p(),f(`p`,He,c(D.value.status_code),1)):e(``,!0)]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1 flex items-center gap-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.bodyPattern`))+` `,1),T(n(ne),null,{default:_(()=>[T(n(te),null,{default:_(()=>[T(n(ie),{"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}),T(n(re),{side:`right`,class:`max-w-xs text-xs leading-relaxed`},{default:_(()=>[u(`p`,Ue,c(n(l)(`retryRules.dialog.bodyPattern`)),1),u(`p`,null,c(n(l)(`retryRules.dialog.bodyPatternTooltip`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),T(n(ce),{modelValue:w.value.matchMode,"onUpdate:modelValue":r[7]||=e=>w.value.matchMode=e},{default:_(()=>[T(n(le),{class:`mb-2`},{default:_(()=>[T(n(j),{value:`regex`},{default:_(()=>[b(c(n(l)(`retryRules.regexMatch`)),1)]),_:1}),T(n(j),{value:`json`},{default:_(()=>[b(c(n(l)(`retryRules.jsonMatch`)),1)]),_:1})]),_:1}),T(n(Q),{value:`regex`},{default:_(()=>[T(n(Z),{modelValue:w.value.body_pattern,"onUpdate:modelValue":r[5]||=e=>w.value.body_pattern=e,type:`text`,placeholder:n(l)(`retryRules.dialog.bodyPatternPlaceholder`),onInput:r[6]||=e=>delete D.value.body_pattern},null,8,[`modelValue`,`placeholder`]),D.value.body_pattern?(p(),f(`p`,We,c(D.value.body_pattern),1)):e(``,!0)]),_:1}),T(n(Q),{value:`json`},{default:_(()=>[u(`div`,Ge,[(p(!0),f(i,null,E(w.value.bodyMatchers,(t,r)=>(p(),f(`div`,{key:r,class:`flex items-start gap-2`},[T(n(Z),{modelValue:t.path,"onUpdate:modelValue":e=>t.path=e,placeholder:n(l)(`retryRules.fieldPath`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),T(n(H),{modelValue:t.operator,"onUpdate:modelValue":e=>t.operator=e},{default:_(()=>[T(n(q),{class:`w-28 shrink-0`},{default:_(()=>[T(n(J))]),_:1}),T(n(W),null,{default:_(()=>[T(n(G),{value:`equals`},{default:_(()=>[b(c(n(l)(`retryRules.operatorEquals`)),1)]),_:1}),T(n(G),{value:`contains`},{default:_(()=>[b(c(n(l)(`retryRules.operatorContains`)),1)]),_:1}),T(n(G),{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(Z),{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`])),T(n(y),{type:`button`,variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground`,onClick:e=>N(r)},{default:_(()=>[T(n(_e),{class:`w-4 h-4`})]),_:1},8,[`onClick`])]))),128)),T(n(y),{type:`button`,variant:`outline`,size:`sm`,onClick:M},{default:_(()=>[T(n(k),{class:`w-3 h-3 mr-1`}),b(` `+c(n(l)(`retryRules.addCondition`)),1)]),_:1}),D.value.body_matchers?(p(),f(`p`,Ke,c(D.value.body_matchers),1)):e(``,!0)])]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),T(n(H),{modelValue:w.value.retry_strategy,"onUpdate:modelValue":r[8]||=e=>w.value.retry_strategy=e},{default:_(()=>[T(n(q),{class:`w-full`},{default:_(()=>[T(n(J),{placeholder:n(l)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),T(n(W),null,{default:_(()=>[T(n(G),{value:`exponential`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.exponential`)),1)]),_:1}),T(n(G),{value:`fixed`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,qe,[u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(w.value.retry_strategy===`fixed`?n(l)(`retryRules.dialog.intervalMs`):n(l)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),T(n(Z),{modelValue:w.value.retry_delay_ms,"onUpdate:modelValue":r[9]||=e=>w.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[10]||=e=>delete D.value.retry_delay_ms},null,8,[`modelValue`]),D.value.retry_delay_ms?(p(),f(`p`,Je,c(D.value.retry_delay_ms),1)):e(``,!0)]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxRetries`)),1)]),_:1}),T(n(Z),{modelValue:w.value.max_retries,"onUpdate:modelValue":r[11]||=e=>w.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:r[12]||=e=>delete D.value.max_retries},null,8,[`modelValue`]),D.value.max_retries?(p(),f(`p`,Ye,c(D.value.max_retries),1)):e(``,!0)])]),w.value.retry_strategy===`exponential`?(p(),f(`div`,Xe,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),T(n(Z),{modelValue:w.value.max_delay_ms,"onUpdate:modelValue":r[13]||=e=>w.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[14]||=e=>delete D.value.max_delay_ms},null,8,[`modelValue`]),D.value.max_delay_ms?(p(),f(`p`,Ze,c(D.value.max_delay_ms),1)):e(``,!0)])):e(``,!0),u(`div`,Qe,[T(n(A),{modelValue:w.value.is_active,"onUpdate:modelValue":r[15]||=e=>w.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),T(n(B),{for:`rule-active`,class:`text-sm text-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.enable`)),1)]),_:1})]),T(n(pe),null,{default:_(()=>[T(n(y),{type:`button`,variant:`outline`,onClick:r[16]||=e=>x.value=!1},{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),T(n(y),{type:`submit`},{default:_(()=>[b(c(n(l)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),T(n(ye),{open:!!C.value,"onUpdate:open":r[18]||=e=>{e||(C.value=null)}},{default:_(()=>[T(n(be),null,{default:_(()=>[T(n(xe),null,{default:_(()=>[T(n(ge),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.title`)),1)]),_:1}),T(n(ve),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.description`,{name:C.value?.name})),1)]),_:1})]),_:1}),T(n(Se),null,{default:_(()=>[T(n(Ce),null,{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),T(n(y),{variant:`destructive`,onClick:Oe},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),T(Me,{rules:O.value,onAdded:ke},null,8,[`rules`])]))}});export{nt 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 ee,qt as C,r as w,rt as T,vt as E,x as D,yt as O}from"./button-EcESBjGm.js";import{t as k}from"./plus-CLv_FYiq.js";import{t as A}from"./Checkbox-uf5QqEJQ.js";import{i as te,n as ne,r as re,t as ie}from"./TooltipTrigger-C3Yxt228.js";import{n as ae,t as oe}from"./CollapsibleContent-C0ytCrcq.js";import{a as se,i as ce,n as j,o as M,r as le,s as N,t as P}from"./CollapsibleTrigger-C_6qIDNW.js";import{a as ue,c as F,d as I,f as L,l as R,n as de,o as fe,r as pe,s as me,t as he,u as z}from"./dialog-Is8Ujw3N.js";import{t as B}from"./Label-B83qJ4ZP.js";import{R as V,_ as H,a as ge,at as _e,c as ve,f as ye,ft as U,g as W,h as G,i as K,l as be,m as q,o as xe,p as J,s as Se,u as Ce,x as Y}from"./index-Dv_nrEfy.js";import{n as X,t as we}from"./CardContent-tdwjLn4i.js";import{n as Te,t as Ee}from"./CardTitle-QnVfhywP.js";import{t as Z}from"./Input-CpDpvdgi.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(()=>M(c.baseId,r.value)),d=s(()=>se(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(V),{present:t.forceMount||f.value,"force-mount":``},{default:_(({present:r})=>[T(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?O(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`]))}}),Q=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=D(t,`class`);return(e,i)=>(p(),o(n(De),d({"data-slot":`tabs-content`,class:n(w)(`text-sm flex-1 outline-none`,t.class)},n(r)),{default:_(()=>[O(e.$slots,`default`)]),_:3},16,[`class`]))}}),Oe={class:`flex items-center justify-between`},ke={class:`flex items-center justify-between mb-3`},Ae={class:`flex items-center gap-2`},je={class:`text-sm text-muted-foreground`},Me=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 ee(e){let t=new Set(x.value);t.has(e)?t.delete(e):t.add(e),x.value=t}function w(e){x.value=e===!0?new Set(m.rules.map(e=>e.name)):new Set}async function D(){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});K.success(d(`retryRules.messages.addedCount`,{count:e.length})),x.value=new Set,h(`added`)}return(r,a)=>t.rules.length>0?(p(),o(n(X),{key:0,class:`mt-6`},{default:_(()=>[T(n(ae),{open:v.value,"onUpdate:open":a[0]||=e=>v.value=e},{default:_(()=>[T(n(P),{"as-child":``},{default:_(()=>[T(n(Te),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:_(()=>[u(`div`,Oe,[T(n(Ee),{class:`text-sm font-medium`},{default:_(()=>[b(c(n(d)(`retryRules.recommended.title`,{count:t.rules.length})),1)]),_:1}),T(n(U),{class:C([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":v.value}])},null,8,[`class`])])]),_:1})]),_:1}),T(n(oe),null,{default:_(()=>[T(n(we),null,{default:_(()=>[u(`div`,ke,[u(`div`,Ae,[T(n(A),{"model-value":S.value,"onUpdate:modelValue":w},null,8,[`model-value`]),u(`span`,je,c(n(d)(`retryRules.recommended.selectAll`)),1)]),T(n(y),{size:`sm`,disabled:x.value.size===0,onClick:D},{default:_(()=>[b(c(n(d)(`retryRules.recommended.addSelected`,{count:x.value.size})),1)]),_:1},8,[`disabled`])]),T(n(L),null,{default:_(()=>[T(n(me),null,{default:_(()=>[T(n(R),null,{default:_(()=>[T(n(F),{class:`w-10`}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.name`)),1)]),_:1}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),T(n(F),null,{default:_(()=>[b(c(n(d)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),T(n(I),null,{default:_(()=>[(p(!0),f(i,null,E(t.rules,e=>(p(),o(n(R),{key:e.name},{default:_(()=>[T(n(z),null,{default:_(()=>[T(n(A),{"model-value":x.value.has(e.name),"onUpdate:modelValue":()=>ee(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),T(n(z),null,{default:_(()=>[b(c(e.name),1)]),_:2},1024),T(n(z),null,{default:_(()=>[b(c(e.status_code),1)]),_:2},1024),T(n(z),{class:`font-mono text-xs max-w-[200px] truncate`},{default:_(()=>[b(c(e.body_pattern),1)]),_:2},1024),T(n(z),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)}}),Ne={class:`p-6`},Pe={class:`flex items-center justify-between mb-4`},Fe={class:`text-lg font-semibold text-foreground`},Ie={class:`bg-card rounded-lg border overflow-hidden`},Le={class:`truncate block`},Re={key:1},ze={class:`flex items-center gap-2`},Be={class:`text-xs text-muted-foreground`},Ve={key:0,class:`text-sm text-destructive mt-1`},He={key:0,class:`text-sm text-destructive mt-1`},Ue={class:`font-medium mb-1`},We={key:0,class:`text-sm text-destructive mt-1`},Ge={class:`space-y-2`},Ke={key:0,class:`text-sm text-destructive mt-1`},qe={class:`grid grid-cols-2 gap-3`},Je={key:0,class:`text-sm text-destructive mt-1`},Ye={key:0,class:`text-sm text-destructive mt-1`},Xe={key:0},Ze={key:0,class:`text-sm text-destructive mt-1`},Qe={class:`flex items-center gap-2`},$e=100,et=599,$=100,tt=100,nt=h({__name:`RetryRules`,setup(s){let{t:l}=r(),d={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:[]},m=a([]),h=a([]),x=a(!1),S=a(null),C=a(null),w=a({...d,bodyMatchers:[]}),D=a({}),O=a([]),ae={equals:l(`retryRules.operatorEquals`),contains:l(`retryRules.operatorContains`),exists:l(`retryRules.operatorExists`)};function oe(e){let t=h.value.find(t=>t.id===e);return t?t.name:e}function se(e){if(e.body_matchers)try{return JSON.parse(e.body_matchers).map(e=>{let t=ae[e.operator]??e.operator;return e.operator===`exists`?`${e.path} ${t}`:`${e.path} ${t} "${e.value}"`}).join(`, `)}catch{return e.body_matchers}return e.body_pattern}function M(){w.value.bodyMatchers.push({path:``,operator:`contains`,value:``})}function N(e){w.value.bodyMatchers.splice(e,1)}function P(){let e={};w.value.name.trim()||(e.name=l(`retryRules.validation.nameRequired`));let t=Number(w.value.status_code);if((!Number.isInteger(t)||t<$e||t>et)&&(e.status_code=l(`retryRules.validation.statusCodeRange`,{min:$e,max:et})),w.value.matchMode===`regex`)if(!w.value.body_pattern.trim())e.body_pattern=l(`retryRules.validation.bodyPatternRequired`);else try{new RegExp(w.value.body_pattern)}catch{e.body_pattern=l(`retryRules.validation.bodyPatternInvalid`)}else w.value.bodyMatchers.some(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()))||(e.body_matchers=l(`retryRules.validation.bodyPatternRequired`));let n=Number(w.value.retry_delay_ms);(!n||n<$)&&(e.retry_delay_ms=l(`retryRules.validation.delayMin`,{min:$}));let r=Number(w.value.max_retries);if((!Number.isInteger(r)||r<0||r>tt)&&(e.max_retries=l(`retryRules.validation.retriesRange`,{max:tt})),w.value.retry_strategy===`exponential`){let t=Number(w.value.max_delay_ms);(!t||t<$)&&(e.max_delay_ms=l(`retryRules.validation.delayMin`,{min:$}))}return D.value=e,Object.keys(e).length===0}async function V(){try{m.value=await g.getRetryRules()}catch(e){console.error(`RetryRules.loadData:`,e),K.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function U(){try{h.value=await g.getProviders()}catch(e){console.error(`RetryRules.loadProviders:`,e),K.error(t(e,l(`retryRules.messages.loadFailed`)))}}async function X(){try{O.value=await g.recommended.getRetryRules()}catch{O.value=[]}}function we(){S.value=null,w.value={...d,bodyMatchers:[]},D.value={},x.value=!0}function Te(e){S.value=e.id;let t=`regex`,n=[];if(e.body_matchers){t=`json`;try{n=JSON.parse(e.body_matchers)}catch{n=[]}}w.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:t,bodyMatchers:n},D.value={},x.value=!0}async function Ee(){if(P())try{let e=w.value.matchMode===`json`?JSON.stringify(w.value.bodyMatchers.filter(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()))):null,t={name:w.value.name,status_code:Number(w.value.status_code),body_pattern:w.value.body_pattern,provider_id:w.value.provider_id===`__all__`?null:w.value.provider_id,body_matchers:e,is_active:+!!w.value.is_active,retry_strategy:w.value.retry_strategy,retry_delay_ms:Number(w.value.retry_delay_ms),max_retries:Number(w.value.max_retries),max_delay_ms:Number(w.value.max_delay_ms)};S.value?await g.updateRetryRule(S.value,t):await g.createRetryRule(t),x.value=!1,await V()}catch(e){console.error(`RetryRules.handleSave:`,e),K.error(t(e,l(`retryRules.messages.saveFailed`)))}}function De(e){C.value=e}async function Oe(){let e=C.value;if(e){C.value=null;try{await g.deleteRetryRule(e.id),await V()}catch(e){console.error(`RetryRules.handleDelete:`,e),K.error(t(e,l(`retryRules.messages.deleteFailed`)))}}}async function ke(){await Promise.allSettled([X(),V()])}return v(()=>{V(),X(),U()}),(t,r)=>(p(),f(`div`,Ne,[u(`div`,Pe,[u(`h2`,Fe,c(n(l)(`retryRules.title`)),1),T(n(y),{onClick:we,class:`flex items-center gap-1`},{default:_(()=>[T(n(k),{class:`w-4 h-4`}),b(` `+c(n(l)(`retryRules.addRule`)),1)]),_:1})]),u(`div`,Ie,[T(n(L),{class:`[&_td]:px-4 [&_th]:px-4`},{default:_(()=>[T(n(me),null,{default:_(()=>[T(n(R),{class:`bg-muted`},{default:_(()=>[T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.name`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.provider`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),T(n(F),{class:`text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.status`)),1)]),_:1}),T(n(F),{class:`text-right text-muted-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),T(n(I),null,{default:_(()=>[(p(!0),f(i,null,E(m.value,t=>(p(),o(n(R),{key:t.id},{default:_(()=>[T(n(z),{class:`font-mono text-sm`},{default:_(()=>[b(c(t.name),1)]),_:2},1024),T(n(z),null,{default:_(()=>[b(c(t.status_code),1)]),_:2},1024),T(n(z),{class:`font-mono text-xs text-muted-foreground max-w-[200px]`},{default:_(()=>[u(`span`,Le,c(se(t)),1)]),_:2},1024),T(n(z),null,{default:_(()=>[t.provider_id?(p(),f(`span`,Re,c(oe(t.provider_id)),1)):(p(),o(n(Y),{key:0,variant:`secondary`},{default:_(()=>[b(c(n(l)(`retryRules.globalBadge`)),1)]),_:1}))]),_:2},1024),T(n(z),null,{default:_(()=>[u(`div`,ze,[T(n(Y),{variant:`outline`},{default:_(()=>[b(c(t.retry_strategy===`fixed`?n(l)(`retryRules.strategy.fixed`):n(l)(`retryRules.strategy.exponential`)),1)]),_:2},1024),u(`span`,Be,[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),T(n(z),null,{default:_(()=>[T(n(Y),{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),T(n(z),{class:`text-right`},{default:_(()=>[T(n(y),{variant:`ghost`,size:`sm`,onClick:e=>Te(t),class:`mr-2`},{default:_(()=>[b(c(n(l)(`common.edit`)),1)]),_:1},8,[`onClick`]),T(n(y),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>De(t)},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),m.value.length===0?(p(),o(n(R),{key:0},{default:_(()=>[T(n(z),{colspan:`7`,class:`text-center text-muted-foreground py-8`},{default:_(()=>[b(c(n(l)(`retryRules.noRules`)),1)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),T(n(fe),{open:x.value,"onUpdate:open":r[17]||=e=>x.value=e},{default:_(()=>[T(n(ue),{class:`max-w-lg`},{default:_(()=>[T(n(de),null,{default:_(()=>[T(n(he),null,{default:_(()=>[b(c(S.value?n(l)(`retryRules.dialog.editRule`):n(l)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),u(`form`,{onSubmit:ee(Ee,[`prevent`]),class:`space-y-3`},[u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.name`)),1)]),_:1}),T(n(Z),{modelValue:w.value.name,"onUpdate:modelValue":r[0]||=e=>w.value.name=e,type:`text`,required:``,onInput:r[1]||=e=>delete D.value.name},null,8,[`modelValue`]),D.value.name?(p(),f(`p`,Ve,c(D.value.name),1)):e(``,!0)]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.provider`)),1)]),_:1}),T(n(H),{modelValue:w.value.provider_id,"onUpdate:modelValue":r[2]||=e=>w.value.provider_id=e},{default:_(()=>[T(n(q),{class:`w-full`},{default:_(()=>[T(n(J),{placeholder:n(l)(`retryRules.providerPlaceholder`)},null,8,[`placeholder`])]),_:1}),T(n(W),null,{default:_(()=>[T(n(G),{value:`__all__`},{default:_(()=>[b(c(n(l)(`retryRules.providerAll`)),1)]),_:1}),(p(!0),f(i,null,E(h.value,e=>(p(),o(n(G),{key:e.id,value:e.id},{default:_(()=>[b(c(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.statusCode`)),1)]),_:1}),T(n(Z),{modelValue:w.value.status_code,"onUpdate:modelValue":r[3]||=e=>w.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:r[4]||=e=>delete D.value.status_code},null,8,[`modelValue`]),D.value.status_code?(p(),f(`p`,He,c(D.value.status_code),1)):e(``,!0)]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1 flex items-center gap-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.bodyPattern`))+` `,1),T(n(ne),null,{default:_(()=>[T(n(te),null,{default:_(()=>[T(n(ie),{"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}),T(n(re),{side:`right`,class:`max-w-xs text-xs leading-relaxed`},{default:_(()=>[u(`p`,Ue,c(n(l)(`retryRules.dialog.bodyPattern`)),1),u(`p`,null,c(n(l)(`retryRules.dialog.bodyPatternTooltip`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),T(n(ce),{modelValue:w.value.matchMode,"onUpdate:modelValue":r[7]||=e=>w.value.matchMode=e},{default:_(()=>[T(n(le),{class:`mb-2`},{default:_(()=>[T(n(j),{value:`regex`},{default:_(()=>[b(c(n(l)(`retryRules.regexMatch`)),1)]),_:1}),T(n(j),{value:`json`},{default:_(()=>[b(c(n(l)(`retryRules.jsonMatch`)),1)]),_:1})]),_:1}),T(n(Q),{value:`regex`},{default:_(()=>[T(n(Z),{modelValue:w.value.body_pattern,"onUpdate:modelValue":r[5]||=e=>w.value.body_pattern=e,type:`text`,placeholder:n(l)(`retryRules.dialog.bodyPatternPlaceholder`),onInput:r[6]||=e=>delete D.value.body_pattern},null,8,[`modelValue`,`placeholder`]),D.value.body_pattern?(p(),f(`p`,We,c(D.value.body_pattern),1)):e(``,!0)]),_:1}),T(n(Q),{value:`json`},{default:_(()=>[u(`div`,Ge,[(p(!0),f(i,null,E(w.value.bodyMatchers,(t,r)=>(p(),f(`div`,{key:r,class:`flex items-start gap-2`},[T(n(Z),{modelValue:t.path,"onUpdate:modelValue":e=>t.path=e,placeholder:n(l)(`retryRules.fieldPath`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),T(n(H),{modelValue:t.operator,"onUpdate:modelValue":e=>t.operator=e},{default:_(()=>[T(n(q),{class:`w-28 shrink-0`},{default:_(()=>[T(n(J))]),_:1}),T(n(W),null,{default:_(()=>[T(n(G),{value:`equals`},{default:_(()=>[b(c(n(l)(`retryRules.operatorEquals`)),1)]),_:1}),T(n(G),{value:`contains`},{default:_(()=>[b(c(n(l)(`retryRules.operatorContains`)),1)]),_:1}),T(n(G),{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(Z),{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`])),T(n(y),{type:`button`,variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground`,onClick:e=>N(r)},{default:_(()=>[T(n(_e),{class:`w-4 h-4`})]),_:1},8,[`onClick`])]))),128)),T(n(y),{type:`button`,variant:`outline`,size:`sm`,onClick:M},{default:_(()=>[T(n(k),{class:`w-3 h-3 mr-1`}),b(` `+c(n(l)(`retryRules.addCondition`)),1)]),_:1}),D.value.body_matchers?(p(),f(`p`,Ke,c(D.value.body_matchers),1)):e(``,!0)])]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),T(n(H),{modelValue:w.value.retry_strategy,"onUpdate:modelValue":r[8]||=e=>w.value.retry_strategy=e},{default:_(()=>[T(n(q),{class:`w-full`},{default:_(()=>[T(n(J),{placeholder:n(l)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),T(n(W),null,{default:_(()=>[T(n(G),{value:`exponential`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.exponential`)),1)]),_:1}),T(n(G),{value:`fixed`},{default:_(()=>[b(c(n(l)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,qe,[u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(w.value.retry_strategy===`fixed`?n(l)(`retryRules.dialog.intervalMs`):n(l)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),T(n(Z),{modelValue:w.value.retry_delay_ms,"onUpdate:modelValue":r[9]||=e=>w.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[10]||=e=>delete D.value.retry_delay_ms},null,8,[`modelValue`]),D.value.retry_delay_ms?(p(),f(`p`,Je,c(D.value.retry_delay_ms),1)):e(``,!0)]),u(`div`,null,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxRetries`)),1)]),_:1}),T(n(Z),{modelValue:w.value.max_retries,"onUpdate:modelValue":r[11]||=e=>w.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:r[12]||=e=>delete D.value.max_retries},null,8,[`modelValue`]),D.value.max_retries?(p(),f(`p`,Ye,c(D.value.max_retries),1)):e(``,!0)])]),w.value.retry_strategy===`exponential`?(p(),f(`div`,Xe,[T(n(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),T(n(Z),{modelValue:w.value.max_delay_ms,"onUpdate:modelValue":r[13]||=e=>w.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[14]||=e=>delete D.value.max_delay_ms},null,8,[`modelValue`]),D.value.max_delay_ms?(p(),f(`p`,Ze,c(D.value.max_delay_ms),1)):e(``,!0)])):e(``,!0),u(`div`,Qe,[T(n(A),{modelValue:w.value.is_active,"onUpdate:modelValue":r[15]||=e=>w.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),T(n(B),{for:`rule-active`,class:`text-sm text-foreground`},{default:_(()=>[b(c(n(l)(`retryRules.dialog.enable`)),1)]),_:1})]),T(n(pe),null,{default:_(()=>[T(n(y),{type:`button`,variant:`outline`,onClick:r[16]||=e=>x.value=!1},{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),T(n(y),{type:`submit`},{default:_(()=>[b(c(n(l)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),T(n(ye),{open:!!C.value,"onUpdate:open":r[18]||=e=>{e||(C.value=null)}},{default:_(()=>[T(n(be),null,{default:_(()=>[T(n(xe),null,{default:_(()=>[T(n(ge),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.title`)),1)]),_:1}),T(n(ve),null,{default:_(()=>[b(c(n(l)(`retryRules.deleteConfirm.description`,{name:C.value?.name})),1)]),_:1})]),_:1}),T(n(Se),null,{default:_(()=>[T(n(Ce),null,{default:_(()=>[b(c(n(l)(`common.cancel`)),1)]),_:1}),T(n(y),{variant:`destructive`,onClick:Oe},{default:_(()=>[b(c(n(l)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),T(Me,{rules:O.value,onAdded:ke},null,8,[`rules`])]))}});export{nt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Gt as n,H as r,J as i,Lt as a,Q as o,Xt as s,Z as c,et as l,gt as u,it as ee,k as d,kt as f,mt as te,n as p,nt as m,q as ne,qt as re,rt as h,vt as g}from"./button-
|
|
1
|
+
import{$ as e,A as t,Gt as n,H as r,J as i,Lt as a,Q as o,Xt as s,Z as c,et as l,gt as u,it as ee,k as d,kt as f,mt as te,n as p,nt as m,q as ne,qt as re,rt as h,vt as g}from"./button-EcESBjGm.js";import{t as _}from"./Checkbox-uf5QqEJQ.js";import{a as ie,c as v,d as y,f as ae,l as b,n as oe,o as x,r as S,s as se,t as ce,u as C}from"./dialog-Is8Ujw3N.js";import{t as w}from"./Label-B83qJ4ZP.js";import{a as le,c as ue,f as de,gt as T,i as E,l as D,o as O,s as k,u as A,x as j}from"./index-Dv_nrEfy.js";import{t as M}from"./Input-CpDpvdgi.js";import{t as N}from"./useClipboard-BJ0o_fEC.js";var P={class:`p-6`},F={class:`flex items-center justify-between mb-4`},I={class:`text-lg font-semibold text-foreground`},L={class:`bg-card rounded-lg border overflow-hidden`},R={class:`truncate block`},z={class:`flex items-center gap-1`},B={class:`font-mono text-xs text-muted-foreground`},V={key:0,class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},H={key:1,class:`w-3.5 h-3.5 text-success`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},fe={key:0,class:`flex flex-wrap gap-1`},pe={key:0,class:`text-sm text-destructive mt-1`},me={class:`text-xs text-muted-foreground mb-2`},he={class:`border rounded-md p-3 max-h-48 overflow-y-auto space-y-2 bg-muted`},ge={class:`font-mono text-xs`},_e={key:0,class:`text-muted-foreground text-sm text-center py-2`},ve={key:0,class:`flex flex-wrap gap-1 mt-2`},ye={key:0,class:`flex items-center gap-2`},be=2e3,U=ee({__name:`RouterKeys`,setup(ee){let{t:U}=r(),W={name:``,allowed_models:[],is_active:!0},G=a([]),K=a([]),q=a(!1),J=a(null),Y=a(null),X=a({...W,allowed_models:[]}),Z=a({}),{copy:xe}=N(),Q=a(null);async function Se(e,t){await xe(e)&&(Q.value=t,setTimeout(()=>{Q.value===t&&(Q.value=null)},be))}function Ce(e){return e?e.slice(0,7)+`*`.repeat(7):``}function we(e){return T(e)}function Te(e){let t=X.value.allowed_models.indexOf(e);t>=0&&X.value.allowed_models.splice(t,1)}async function $(){try{let[e,t]=await Promise.allSettled([d.getRouterKeys(),d.getAvailableModels()]);e.status===`fulfilled`&&(G.value=e.value),t.status===`fulfilled`&&(K.value=t.value)}catch(e){console.error(`Failed to load data:`,e),E.error(t(e,U(`routerKeys.loadFailed`)))}}function Ee(){J.value=null,X.value={...W,allowed_models:[]},Z.value={},q.value=!0}function De(e){J.value=e.id,X.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},Z.value={},q.value=!0}function Oe(){return{name:X.value.name,allowed_models:X.value.allowed_models.length>0?X.value.allowed_models:null,is_active:+!!X.value.is_active}}function ke(){return{name:X.value.name,allowed_models:X.value.allowed_models.length>0?X.value.allowed_models:null}}async function Ae(){let e={};if(X.value.name.trim()||(e.name=U(`routerKeys.nameRequired`)),Z.value=e,!(Object.keys(e).length>0))try{J.value?await d.updateRouterKey(J.value,Oe()):await d.createRouterKey(ke()),q.value=!1,await $()}catch(e){console.error(`Failed to save router key:`,e),E.error(t(e,U(`routerKeys.saveFailed`)))}}function je(e){Y.value=e}async function Me(){let e=Y.value;if(e){Y.value=null;try{await d.deleteRouterKey(e.id),await $()}catch(e){console.error(`Failed to delete router key:`,e),E.error(t(e,U(`routerKeys.deleteFailed`)))}}}return te($),(t,r)=>(u(),l(`div`,P,[c(`div`,F,[c(`h2`,I,s(n(U)(`routerKeys.title`)),1),h(n(p),{onClick:Ee,class:`flex items-center gap-1`},{default:f(()=>[r[6]||=c(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),m(` `+s(n(U)(`routerKeys.createKey`)),1)]),_:1})]),c(`div`,L,[h(n(ae),{class:`[&_td]:px-4 [&_th]:px-4`},{default:f(()=>[h(n(se),null,{default:f(()=>[h(n(b),{class:`bg-muted`},{default:f(()=>[h(n(v),{class:`text-muted-foreground`},{default:f(()=>[m(s(n(U)(`routerKeys.tableHeaders.name`)),1)]),_:1}),h(n(v),{class:`text-muted-foreground`},{default:f(()=>[m(s(n(U)(`routerKeys.tableHeaders.key`)),1)]),_:1}),h(n(v),{class:`text-muted-foreground`},{default:f(()=>[m(s(n(U)(`routerKeys.tableHeaders.whitelist`)),1)]),_:1}),h(n(v),{class:`text-muted-foreground`},{default:f(()=>[m(s(n(U)(`routerKeys.tableHeaders.status`)),1)]),_:1}),h(n(v),{class:`text-muted-foreground`},{default:f(()=>[m(s(n(U)(`routerKeys.tableHeaders.createdAt`)),1)]),_:1}),h(n(v),{class:`text-right text-muted-foreground`},{default:f(()=>[m(s(n(U)(`routerKeys.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),h(n(y),null,{default:f(()=>[(u(!0),l(i,null,g(G.value,e=>(u(),o(n(b),{key:e.id,class:re({"opacity-60":!e.is_active})},{default:f(()=>[h(n(C),{class:`font-medium max-w-[200px]`},{default:f(()=>[c(`span`,R,s(e.name),1)]),_:2},1024),h(n(C),null,{default:f(()=>[c(`div`,z,[c(`span`,B,s(Ce(e.key)),1),h(n(p),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>e.key&&Se(e.key,e.id)},{default:f(()=>[Q.value===e.id?(u(),l(`svg`,H,[...r[8]||=[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 13l4 4L19 7`},null,-1)]])):(u(),l(`svg`,V,[...r[7]||=[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z`},null,-1)]]))]),_:2},1032,[`onClick`])])]),_:2},1024),h(n(C),null,{default:f(()=>[e.allowed_models&&e.allowed_models.length>0?(u(),l(`div`,fe,[(u(!0),l(i,null,g(e.allowed_models,e=>(u(),o(n(j),{key:e,variant:`outline`,class:`text-xs`},{default:f(()=>[m(s(e),1)]),_:2},1024))),128))])):(u(),o(n(j),{key:1,variant:`secondary`},{default:f(()=>[m(s(n(U)(`common.allModels`)),1)]),_:1}))]),_:2},1024),h(n(C),null,{default:f(()=>[h(n(j),{variant:e.is_active?`default`:`secondary`},{default:f(()=>[m(s(e.is_active?n(U)(`common.enabled`):n(U)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),h(n(C),{class:`text-muted-foreground text-sm`},{default:f(()=>[m(s(we(e.created_at)),1)]),_:2},1024),h(n(C),{class:`text-right`},{default:f(()=>[h(n(p),{variant:`ghost`,size:`sm`,onClick:t=>De(e),class:`text-muted-foreground hover:text-primary mr-2`},{default:f(()=>[m(s(n(U)(`common.edit`)),1)]),_:1},8,[`onClick`]),h(n(p),{variant:`ghost`,size:`sm`,onClick:t=>je(e),class:`text-muted-foreground hover:text-destructive`},{default:f(()=>[m(s(n(U)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),G.value.length===0?(u(),o(n(b),{key:0},{default:f(()=>[h(n(C),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:f(()=>[m(s(n(U)(`routerKeys.noKeys`)),1)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),h(n(x),{open:q.value,"onUpdate:open":r[4]||=e=>q.value=e},{default:f(()=>[h(n(ie),{class:`sm:max-w-lg`},{default:f(()=>[h(n(oe),null,{default:f(()=>[h(n(ce),null,{default:f(()=>[m(s(J.value?n(U)(`routerKeys.editKey`):n(U)(`routerKeys.createKey`)),1)]),_:1})]),_:1}),c(`form`,{onSubmit:ne(Ae,[`prevent`]),class:`space-y-4`},[c(`div`,null,[h(n(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:f(()=>[m(s(n(U)(`routerKeys.tableHeaders.name`)),1)]),_:1}),h(n(M),{modelValue:X.value.name,"onUpdate:modelValue":r[0]||=e=>X.value.name=e,type:`text`,required:``,placeholder:n(U)(`routerKeys.placeholder.name`),onInput:r[1]||=e=>delete Z.value.name},null,8,[`modelValue`,`placeholder`]),Z.value.name?(u(),l(`p`,pe,s(Z.value.name),1)):e(``,!0)]),c(`div`,null,[h(n(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:f(()=>[m(s(n(U)(`routerKeys.whitelistLabel`)),1)]),_:1}),c(`div`,me,s(n(U)(`routerKeys.whitelistHint`)),1),c(`div`,he,[(u(!0),l(i,null,g(K.value,e=>(u(),o(n(w),{key:e,class:`flex items-center gap-2 cursor-pointer text-sm font-normal`},{default:f(()=>[h(n(_),{"model-value":X.value.allowed_models.includes(e),"onUpdate:modelValue":t=>{if(t&&t!==`indeterminate`&&!X.value.allowed_models.includes(e))X.value.allowed_models.push(e);else if(!t){let t=X.value.allowed_models.indexOf(e);t>=0&&X.value.allowed_models.splice(t,1)}}},null,8,[`model-value`,`onUpdate:modelValue`]),c(`span`,ge,s(e),1)]),_:2},1024))),128)),K.value.length===0?(u(),l(`div`,_e,s(n(U)(`routerKeys.noModels`)),1)):e(``,!0)]),X.value.allowed_models.length>0?(u(),l(`div`,ve,[(u(!0),l(i,null,g(X.value.allowed_models,e=>(u(),o(n(j),{key:e,variant:`outline`,class:`text-xs`},{default:f(()=>[m(s(e)+` `,1),h(n(p),{type:`button`,variant:`ghost`,size:`sm`,class:`ml-1 h-4 w-4 p-0 text-muted-foreground hover:text-destructive`,onClick:t=>Te(e)},{default:f(()=>[...r[9]||=[m(`×`,-1)]]),_:1},8,[`onClick`])]),_:2},1024))),128))])):e(``,!0)]),J.value?(u(),l(`div`,ye,[h(n(_),{modelValue:X.value.is_active,"onUpdate:modelValue":r[2]||=e=>X.value.is_active=e,id:`key-active`},null,8,[`modelValue`]),h(n(w),{for:`key-active`,class:`text-sm text-foreground`},{default:f(()=>[m(s(n(U)(`common.enable`)),1)]),_:1})])):e(``,!0),h(n(S),null,{default:f(()=>[h(n(p),{type:`button`,variant:`outline`,onClick:r[3]||=e=>q.value=!1},{default:f(()=>[m(s(n(U)(`common.cancel`)),1)]),_:1}),h(n(p),{type:`submit`},{default:f(()=>[m(s(n(U)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),h(n(de),{open:!!Y.value,"onUpdate:open":r[5]||=e=>{e||(Y.value=null)}},{default:f(()=>[h(n(D),null,{default:f(()=>[h(n(O),null,{default:f(()=>[h(n(le),null,{default:f(()=>[m(s(n(U)(`routerKeys.confirmDeleteTitle`)),1)]),_:1}),h(n(ue),null,{default:f(()=>[m(s(n(U)(`routerKeys.confirmDeleteDesc`,{name:Y.value?.name})),1)]),_:1})]),_:1}),h(n(k),null,{default:f(()=>[h(n(A),null,{default:f(()=>[m(s(n(U)(`common.cancel`)),1)]),_:1}),h(n(p),{variant:`destructive`,onClick:Me},{default:f(()=>[m(s(n(U)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{U 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-EcESBjGm.js";import{B as h,J as g,O as _,W as v,q as y}from"./index-Dv_nrEfy.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=y();for(let r of e)if(r===n||(r.focus({preventScroll:t}),y()!==n))return}function E(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[D,O]=g(`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:h,orientation:g,dir:y}=t(l),S=v(y),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}=_({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:h,dir:S,orientation:g,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(g),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(),g=i(()=>n.tabStopId||d),v=i(()=>l.currentTabStopId.value===g.value),{getItems:y,CollectionItem:b}=_();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=[...y().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:v.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(g.value):n.preventDefault()},onFocus:n[1]||=t=>e(l).onItemFocus(g.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,Z as l,et as u,gt as d,it as ee,k as f,kt as p,mt as te,n as m,nt as h,q as g,qt as _,rt as v,vt as y}from"./button-Dm-cbgS5.js";import{t as ne}from"./MappingEntryEditor-DX749LDW.js";import{t as re}from"./plus-BkH7yWn-.js";import{a as ie,c as b,d as ae,f as oe,l as x,n as se,o as ce,r as le,s as ue,t as de,u as S}from"./dialog-Dzy4m58L.js";import{t as C}from"./Label-CumWBzHY.js";import{t as fe}from"./Switch-Ce1RNEg2.js";import{_ as w,a as pe,c as me,f as he,ft as ge,g as T,h as E,i as D,l as _e,m as O,o as ve,p as k,s as ye,u as be,x as A}from"./index-CTaQHTod.js";import{t as xe}from"./Input-BwqUPR8k.js";import{n as Se,t as j}from"./TransformRulesForm-BT9zoPTc.js";var Ce={class:`p-6 space-y-3`},we={class:`text-lg font-semibold text-foreground`},Te={class:`text-sm text-muted-foreground mt-1`},Ee={key:0,class:`flex items-center justify-center py-16 text-muted-foreground text-sm`},De={class:`grid grid-cols-3 gap-3`},Oe=[`onClick`],ke={class:`font-mono text-sm font-semibold text-foreground shrink-0`},Ae={class:`flex-1 flex flex-wrap gap-1 min-w-0`},je={class:`ml-1 text-muted-foreground/60 font-mono`},Me={key:0,class:`text-[10px] text-muted-foreground/50 self-center`},Ne={key:0,class:`border-t`},Pe={class:`flex items-center justify-between px-4 py-2 bg-muted/30`},Fe={class:`text-xs font-medium text-muted-foreground`},Ie={class:`flex flex-wrap gap-1`},Le={class:`flex items-center justify-end gap-1`},Re={key:0,class:`py-12 text-center text-xs text-muted-foreground`},ze={key:0,class:`bg-destructive/10 border border-destructive/30 rounded-md px-3 py-2 text-sm text-destructive`},Be={class:`grid grid-cols-2 gap-3`},Ve={key:0,class:`text-xs text-destructive mt-0.5`},He={class:`flex flex-wrap gap-1.5`},Ue={key:0,class:`text-xs text-destructive mt-0.5`},We={class:`flex items-center gap-2 mb-2`},Ge={class:`flex gap-1.5`},Ke={class:`grid grid-cols-2 gap-3`},qe={key:0,class:`text-xs text-destructive mt-0.5`},Je={key:0,class:`text-xs text-destructive mt-0.5`},Ye={class:`grid grid-cols-2 gap-4`},Xe={class:`border rounded-md p-3 space-y-3`},Ze={class:`text-xs font-medium text-muted-foreground`},Qe={class:`border rounded-md p-3 space-y-3`},$e={class:`text-xs font-medium text-muted-foreground`},et=2,M=ee({__name:`Schedules`,setup(ee){let{t:M}=r(),N=s(()=>[M(`schedules.weekDays.sun`),M(`schedules.weekDays.mon`),M(`schedules.weekDays.tue`),M(`schedules.weekDays.wed`),M(`schedules.weekDays.thu`),M(`schedules.weekDays.fri`),M(`schedules.weekDays.sat`)]),P=[1,2,3,4,5],F=()=>({name:``,week:[...P],start_hour:0,end_hour:24,targets:[{backend_model:``,provider_id:``}],concurrency_mode:`auto`,max_concurrency:10,queue_timeout_ms:12e4,max_queue_size:100}),I=a(!1),L=a([]),R=a([]),z=a([]),B=a(null),V=a(!1),H=a(null),U=a(``),W=a(null),G=a(F()),K=a({}),q=a(``),J=a({injectHeadersInput:``,dropFieldsInput:``,requestDefaultsInput:``}),Y=s(()=>{let e={};for(let t of z.value)e[t.mapping_group_id]||(e[t.mapping_group_id]=[]),e[t.mapping_group_id].push(t);return e}),tt=s(()=>({clientModel:L.value.find(e=>e.id===U.value)?.client_model??``,targets:G.value.targets,existing:!1,tag:`cust`,active:!0}));function nt(e){G.value.targets=e}function rt(e){let t=N.value,n=[];try{n=JSON.parse(e)}catch{return[]}return n.map(e=>t[e]??`${e}`)}function X(e){return`${e}`.padStart(et,`0`)+`:00`}function Z(e,t){G.value.start_hour=e,G.value.end_hour=t,delete K.value.time}function it(e){B.value=B.value===e?null:e}async function at(){try{L.value=await f.getMappingGroups()}catch(e){console.error(`schedules.loadGroups:`,e),D.error(t(e,M(`schedules.loadGroupsFailed`)))}}async function Q(){try{R.value=await f.getProviders()}catch(e){console.error(`schedules.loadProviders:`,e),D.error(t(e,M(`schedules.loadProvidersFailed`)))}}async function $(){try{z.value=await f.getSchedules()}catch(e){console.error(`schedules.loadAll:`,e),D.error(t(e,M(`schedules.loadSchedulesFailed`)))}}let ot=s(()=>R.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))})));function st(e){let t=G.value.week.indexOf(e);t>=0?G.value.week.splice(t,1):G.value.week.push(e),delete K.value.week}function ct(e){H.value=null,U.value=e,G.value=F(),J.value={injectHeadersInput:``,dropFieldsInput:``,requestDefaultsInput:``},K.value={},q.value=``,V.value=!0}function lt(e){H.value=e.id,U.value=e.mapping_group_id,K.value={},q.value=``;let t=[{backend_model:``,provider_id:``}];try{let n=JSON.parse(e.mapping_rule);n.targets?.length&&(t=n.targets)}catch(e){console.warn(`Failed to parse mapping_rule:`,e),D.error(M(`schedules.parseRuleFailed`))}let n=[...P];try{n=JSON.parse(e.week)}catch(e){console.warn(`Failed to parse week:`,e),D.error(M(`schedules.parseWeekFailed`))}let r=`auto`,i=10,a=12e4,o=100;if(e.concurrency_rule)try{let t=JSON.parse(e.concurrency_rule);r=t.mode||`auto`,t.max_concurrency&&(i=t.max_concurrency),t.queue_timeout_ms&&(a=t.queue_timeout_ms),t.max_queue_size&&(o=t.max_queue_size)}catch(e){console.warn(`Failed to parse concurrency_rule:`,e),D.error(M(`schedules.parseConcurrencyFailed`))}let s=``,c=``,l=``;if(e.transform_rule)try{let t=JSON.parse(e.transform_rule);c=(t.drop_fields||[]).join(`, `),l=t.request_defaults?JSON.stringify(t.request_defaults):``,s=t.inject_headers?JSON.stringify(t.inject_headers):``}catch(e){console.warn(`Failed to parse transform_rule:`,e),D.error(M(`schedules.parseTransformFailed`))}G.value={name:e.name,week:n,start_hour:e.start_hour,end_hour:e.end_hour,targets:t,concurrency_mode:r,max_concurrency:i,queue_timeout_ms:a,max_queue_size:o},J.value={injectHeadersInput:s,dropFieldsInput:c,requestDefaultsInput:l},V.value=!0}function ut(){let e={};G.value.name.trim()||(e.name=M(`schedules.form.nameRequired`)),G.value.week.length===0&&(e.week=M(`schedules.form.weekRequired`)),G.value.start_hour>=G.value.end_hour&&(e.time=M(`schedules.form.timeInvalid`));for(let t of G.value.targets)if(!t.provider_id||!t.backend_model){e.targets=M(`schedules.form.targetRequired`);break}return K.value=e,Object.keys(e).length===0}function dt(){let{injectHeadersInput:e,dropFieldsInput:t,requestDefaultsInput:n}=J.value;if(!e.trim()&&!t.trim()&&!n.trim())return{rule:null,error:!1};let r=t?t.split(`,`).map(e=>e.trim()).filter(Boolean):null,i=null;if(n.trim())try{i=JSON.parse(n)}catch{return D.error(M(`providers.transform.requestDefaultsJsonError`)),{rule:null,error:!0}}let a=null;if(e.trim())try{a=JSON.parse(e)}catch{return D.error(M(`providers.transform.injectHeadersJsonError`)),{rule:null,error:!0}}return{rule:JSON.stringify({drop_fields:r,request_defaults:i,inject_headers:a}),error:!1}}async function ft(){if(q.value=``,!ut())return;let{rule:e,error:n}=dt();if(!n)try{let t=JSON.stringify({targets:G.value.targets}),n=G.value.concurrency_mode===`none`?null:JSON.stringify({mode:G.value.concurrency_mode,max_concurrency:G.value.max_concurrency,queue_timeout_ms:G.value.queue_timeout_ms,max_queue_size:G.value.max_queue_size}),r={mapping_group_id:U.value,name:G.value.name,week:JSON.stringify(G.value.week),start_hour:G.value.start_hour,end_hour:G.value.end_hour,mapping_rule:t,concurrency_rule:n,transform_rule:e};H.value?await f.updateSchedule(H.value,r):await f.createSchedule(r),V.value=!1,await $()}catch(e){q.value=t(e,M(`schedules.saveFailed`))}}async function pt(e){try{await f.toggleSchedule(e.id),await $()}catch(e){console.error(`schedules.toggle:`,e),D.error(t(e,M(`schedules.toggleFailed`)))}}async function mt(){let e=W.value;if(e){W.value=null;try{await f.deleteSchedule(e.id),await $()}catch(e){console.error(`schedules.delete:`,e),D.error(t(e,M(`schedules.deleteFailed`)))}}}return te(async()=>{I.value=!0,await Promise.allSettled([at(),Q(),$()]),I.value=!1}),(t,r)=>(d(),u(`div`,Ce,[l(`div`,null,[l(`h2`,we,c(n(M)(`schedules.title`)),1),l(`p`,Te,c(n(M)(`schedules.description`)),1)]),I.value?(d(),u(`div`,Ee,c(n(M)(`common.loading`)),1)):e(``,!0),I.value?e(``,!0):(d(),u(i,{key:1},[l(`div`,De,[(d(!0),u(i,null,y(L.value,t=>(d(),u(`div`,{key:t.id,class:_([`rounded-lg border transition-colors`,[B.value===t.id?`col-span-3 border-primary/30 shadow-sm shadow-primary/5`:`border-border hover:border-border/80`]])},[l(`div`,{class:`flex items-center gap-3 px-4 py-3 cursor-pointer`,onClick:e=>it(t.id)},[l(`span`,ke,c(t.client_model),1),Y.value[t.id]?.length?(d(),o(n(A),{key:0,variant:`secondary`,class:`text-[10px]`},{default:p(()=>[h(c(n(M)(`schedules.ruleCount`,{count:Y.value[t.id].length})),1)]),_:2},1024)):(d(),o(n(A),{key:1,variant:`outline`,class:`text-[10px] text-muted-foreground/50`},{default:p(()=>[h(c(n(M)(`schedules.noRules`)),1)]),_:1})),l(`div`,Ae,[(d(!0),u(i,null,y((Y.value[t.id]??[]).slice(0,3),e=>(d(),o(n(A),{key:e.id,variant:e.enabled?`default`:`secondary`,class:`text-[10px] font-normal`},{default:p(()=>[h(c(e.name)+` `,1),l(`span`,je,c(X(e.start_hour))+`-`+c(X(e.end_hour)),1)]),_:2},1032,[`variant`]))),128)),(Y.value[t.id]?.length??0)>3?(d(),u(`span`,Me,` +`+c(Y.value[t.id].length-3),1)):e(``,!0)]),v(n(ge),{class:_([`size-4 text-muted-foreground/40 shrink-0 transition-transform`,{"rotate-180":B.value===t.id}])},null,8,[`class`])],8,Oe),B.value===t.id?(d(),u(`div`,Ne,[l(`div`,Pe,[l(`span`,Fe,c(n(M)(`schedules.scheduleRules`)),1),v(n(m),{size:`sm`,variant:`outline`,class:`h-7 text-xs`,onClick:e=>ct(t.id)},{default:p(()=>[v(n(re),{class:`w-3 h-3 mr-1`}),h(` `+c(n(M)(`schedules.createSchedule`)),1)]),_:1},8,[`onClick`])]),v(n(oe),null,{default:p(()=>[v(n(ue),null,{default:p(()=>[v(n(x),{class:`bg-muted/50`},{default:p(()=>[v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.name`)),1)]),_:1}),v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.status`)),1)]),_:1}),v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.week`)),1)]),_:1}),v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.timeRange`)),1)]),_:1}),v(n(b),{class:`text-right text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),v(n(ae),null,{default:p(()=>[(d(!0),u(i,null,y(Y.value[t.id]??[],e=>(d(),o(n(x),{key:e.id},{default:p(()=>[v(n(S),{class:`font-medium text-sm`},{default:p(()=>[h(c(e.name),1)]),_:2},1024),v(n(S),null,{default:p(()=>[v(n(A),{variant:e.enabled?`default`:`secondary`,class:`text-xs`},{default:p(()=>[h(c(e.enabled?n(M)(`schedules.enabled`):n(M)(`schedules.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),v(n(S),null,{default:p(()=>[l(`div`,Ie,[(d(!0),u(i,null,y(rt(e.week),e=>(d(),o(n(A),{key:e,variant:`outline`,class:`text-xs`},{default:p(()=>[h(c(e),1)]),_:2},1024))),128))])]),_:2},1024),v(n(S),{class:`font-mono text-sm`},{default:p(()=>[h(c(X(e.start_hour))+`-`+c(X(e.end_hour)),1)]),_:2},1024),v(n(S),{class:`text-right`},{default:p(()=>[l(`div`,Le,[v(n(fe),{"model-value":!!e.enabled,class:`scale-75`,onClick:g(t=>pt(e),[`stop`])},null,8,[`model-value`,`onClick`]),v(n(m),{variant:`ghost`,size:`sm`,onClick:t=>lt(e)},{default:p(()=>[h(c(n(M)(`common.edit`)),1)]),_:1},8,[`onClick`]),v(n(m),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>W.value=e},{default:p(()=>[h(c(n(M)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024))),128)),Y.value[t.id]?.length?e(``,!0):(d(),o(n(x),{key:0},{default:p(()=>[v(n(S),{colspan:`5`,class:`text-center text-muted-foreground py-6 text-xs`},{default:p(()=>[h(c(n(M)(`schedules.emptyRules`)),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)])):e(``,!0)],2))),128))]),L.value.length===0?(d(),u(`p`,Re,c(n(M)(`schedules.noGroups`)),1)):e(``,!0)],64)),v(n(ce),{open:V.value,"onUpdate:open":r[17]||=e=>V.value=e},{default:p(()=>[v(n(ie),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:p(()=>[v(n(se),null,{default:p(()=>[v(n(de),null,{default:p(()=>[h(c(H.value?n(M)(`schedules.editSchedule`):n(M)(`schedules.createSchedule`)),1)]),_:1})]),_:1}),l(`form`,{onSubmit:g(ft,[`prevent`]),class:`space-y-4`},[q.value?(d(),u(`div`,ze,c(q.value),1)):e(``,!0),l(`div`,Be,[l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.form.name`)),1)]),_:1}),v(n(xe),{modelValue:G.value.name,"onUpdate:modelValue":r[0]||=e=>G.value.name=e,class:`mt-1`,placeholder:n(M)(`schedules.form.namePlaceholder`),onInput:r[1]||=e=>delete K.value.name},null,8,[`modelValue`,`placeholder`]),K.value.name?(d(),u(`p`,Ve,c(K.value.name),1)):e(``,!0)]),l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground mb-1.5 block`},{default:p(()=>[h(c(n(M)(`schedules.form.week`)),1)]),_:1}),l(`div`,He,[(d(!0),u(i,null,y(N.value,(e,t)=>(d(),o(n(m),{key:t,type:`button`,variant:(G.value.week??[]).includes(t)?`default`:`outline`,size:`sm`,class:`h-7 text-xs`,onClick:e=>st(t)},{default:p(()=>[h(c(e),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),K.value.week?(d(),u(`p`,Ue,c(K.value.week),1)):e(``,!0)])]),l(`div`,null,[l(`div`,We,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.timePresets.label`)),1)]),_:1}),l(`div`,Ge,[v(n(m),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[2]||=e=>Z(9,12)},{default:p(()=>[h(c(n(M)(`schedules.timePresets.morning`)),1)]),_:1}),v(n(m),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[3]||=e=>Z(14,18)},{default:p(()=>[h(c(n(M)(`schedules.timePresets.afternoon`)),1)]),_:1}),v(n(m),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[4]||=e=>Z(19,21)},{default:p(()=>[h(c(n(M)(`schedules.timePresets.evening`)),1)]),_:1})])]),l(`div`,Ke,[l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.form.startTime`)),1)]),_:1}),v(n(w),{modelValue:G.value.start_hour,"onUpdate:modelValue":[r[5]||=e=>G.value.start_hour=e,r[6]||=e=>{G.value.start_hour=Number(e),delete K.value.time}],class:`mt-1`},{default:p(()=>[v(n(O),null,{default:p(()=>[v(n(k),{placeholder:n(M)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),v(n(T),null,{default:p(()=>[(d(),u(i,null,y(24,e=>v(n(E),{key:e-1,value:e-1},{default:p(()=>[h(c(String(e-1).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])]),l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.form.endTime`)),1)]),_:1}),v(n(w),{modelValue:G.value.end_hour,"onUpdate:modelValue":[r[7]||=e=>G.value.end_hour=e,r[8]||=e=>{G.value.end_hour=Number(e),delete K.value.time}],class:`mt-1`},{default:p(()=>[v(n(O),null,{default:p(()=>[v(n(k),{placeholder:n(M)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),v(n(T),null,{default:p(()=>[(d(),u(i,null,y(24,e=>v(n(E),{key:e,value:e},{default:p(()=>[h(c(String(e).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])])]),K.value.time?(d(),u(`p`,qe,c(K.value.time),1)):e(``,!0)]),l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground mb-1 block`},{default:p(()=>[h(c(n(M)(`schedules.form.targets`)),1)]),_:1}),v(ne,{entry:tt.value,"provider-groups":ot.value,expanded:!0,editable:!0,"onUpdate:targets":nt},null,8,[`entry`,`provider-groups`]),K.value.targets?(d(),u(`p`,Je,c(K.value.targets),1)):e(``,!0)]),l(`div`,Ye,[l(`div`,Xe,[l(`div`,Ze,c(n(M)(`schedules.form.concurrencyTitle`)),1),v(Se,{mode:G.value.concurrency_mode,"max-concurrency":G.value.max_concurrency,"queue-timeout-ms":G.value.queue_timeout_ms,"max-queue-size":G.value.max_queue_size,compact:``,"onUpdate:mode":r[9]||=e=>G.value.concurrency_mode=e,"onUpdate:maxConcurrency":r[10]||=e=>G.value.max_concurrency=e,"onUpdate:queueTimeoutMs":r[11]||=e=>G.value.queue_timeout_ms=e,"onUpdate:maxQueueSize":r[12]||=e=>G.value.max_queue_size=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`])]),l(`div`,Qe,[l(`div`,$e,c(n(M)(`providers.transform.title`)),1),v(j,{"inject-headers":J.value.injectHeadersInput,"drop-fields":J.value.dropFieldsInput,"request-defaults":J.value.requestDefaultsInput,compact:``,"onUpdate:injectHeaders":r[13]||=e=>J.value.injectHeadersInput=e,"onUpdate:dropFields":r[14]||=e=>J.value.dropFieldsInput=e,"onUpdate:requestDefaults":r[15]||=e=>J.value.requestDefaultsInput=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])])]),v(n(le),null,{default:p(()=>[v(n(m),{type:`button`,variant:`outline`,onClick:r[16]||=e=>V.value=!1},{default:p(()=>[h(c(n(M)(`common.cancel`)),1)]),_:1}),v(n(m),{type:`submit`},{default:p(()=>[h(c(n(M)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),v(n(he),{open:!!W.value,"onUpdate:open":r[18]||=e=>{e||(W.value=null)}},{default:p(()=>[v(n(_e),null,{default:p(()=>[v(n(ve),null,{default:p(()=>[v(n(pe),null,{default:p(()=>[h(c(n(M)(`schedules.confirmDeleteTitle`)),1)]),_:1}),v(n(me),null,{default:p(()=>[h(c(n(M)(`schedules.confirmDeleteMessage`,{name:W.value?.name??``})),1)]),_:1})]),_:1}),v(n(ye),null,{default:p(()=>[v(n(be),null,{default:p(()=>[h(c(n(M)(`common.cancel`)),1)]),_:1}),v(n(m),{variant:`destructive`,onClick:mt},{default:p(()=>[h(c(n(M)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{M 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,Z as l,et as u,gt as d,it as ee,k as f,kt as p,mt as te,n as m,nt as h,q as g,qt as _,rt as v,vt as y}from"./button-EcESBjGm.js";import{t as ne}from"./MappingEntryEditor-D3KcV5CB.js";import{t as re}from"./plus-CLv_FYiq.js";import{a as ie,c as b,d as ae,f as oe,l as x,n as se,o as ce,r as le,s as ue,t as de,u as S}from"./dialog-Is8Ujw3N.js";import{t as C}from"./Label-B83qJ4ZP.js";import{t as fe}from"./Switch-JfjgADP5.js";import{_ as w,a as pe,c as me,f as he,ft as ge,g as T,h as E,i as D,l as _e,m as O,o as ve,p as k,s as ye,u as be,x as A}from"./index-Dv_nrEfy.js";import{t as xe}from"./Input-CpDpvdgi.js";import{n as Se,t as j}from"./TransformRulesForm-DA5XjrhO.js";var Ce={class:`p-6 space-y-3`},we={class:`text-lg font-semibold text-foreground`},Te={class:`text-sm text-muted-foreground mt-1`},Ee={key:0,class:`flex items-center justify-center py-16 text-muted-foreground text-sm`},De={class:`grid grid-cols-3 gap-3`},Oe=[`onClick`],ke={class:`font-mono text-sm font-semibold text-foreground shrink-0`},Ae={class:`flex-1 flex flex-wrap gap-1 min-w-0`},je={class:`ml-1 text-muted-foreground/60 font-mono`},Me={key:0,class:`text-[10px] text-muted-foreground/50 self-center`},Ne={key:0,class:`border-t`},Pe={class:`flex items-center justify-between px-4 py-2 bg-muted/30`},Fe={class:`text-xs font-medium text-muted-foreground`},Ie={class:`flex flex-wrap gap-1`},Le={class:`flex items-center justify-end gap-1`},Re={key:0,class:`py-12 text-center text-xs text-muted-foreground`},ze={key:0,class:`bg-destructive/10 border border-destructive/30 rounded-md px-3 py-2 text-sm text-destructive`},Be={class:`grid grid-cols-2 gap-3`},Ve={key:0,class:`text-xs text-destructive mt-0.5`},He={class:`flex flex-wrap gap-1.5`},Ue={key:0,class:`text-xs text-destructive mt-0.5`},We={class:`flex items-center gap-2 mb-2`},Ge={class:`flex gap-1.5`},Ke={class:`grid grid-cols-2 gap-3`},qe={key:0,class:`text-xs text-destructive mt-0.5`},Je={key:0,class:`text-xs text-destructive mt-0.5`},Ye={class:`grid grid-cols-2 gap-4`},Xe={class:`border rounded-md p-3 space-y-3`},Ze={class:`text-xs font-medium text-muted-foreground`},Qe={class:`border rounded-md p-3 space-y-3`},$e={class:`text-xs font-medium text-muted-foreground`},et=2,M=ee({__name:`Schedules`,setup(ee){let{t:M}=r(),N=s(()=>[M(`schedules.weekDays.sun`),M(`schedules.weekDays.mon`),M(`schedules.weekDays.tue`),M(`schedules.weekDays.wed`),M(`schedules.weekDays.thu`),M(`schedules.weekDays.fri`),M(`schedules.weekDays.sat`)]),P=[1,2,3,4,5],F=()=>({name:``,week:[...P],start_hour:0,end_hour:24,targets:[{backend_model:``,provider_id:``}],concurrency_mode:`auto`,max_concurrency:10,queue_timeout_ms:12e4,max_queue_size:100}),I=a(!1),L=a([]),R=a([]),z=a([]),B=a(null),V=a(!1),H=a(null),U=a(``),W=a(null),G=a(F()),K=a({}),q=a(``),J=a({injectHeadersInput:``,dropFieldsInput:``,requestDefaultsInput:``}),Y=s(()=>{let e={};for(let t of z.value)e[t.mapping_group_id]||(e[t.mapping_group_id]=[]),e[t.mapping_group_id].push(t);return e}),tt=s(()=>({clientModel:L.value.find(e=>e.id===U.value)?.client_model??``,targets:G.value.targets,existing:!1,tag:`cust`,active:!0}));function nt(e){G.value.targets=e}function rt(e){let t=N.value,n=[];try{n=JSON.parse(e)}catch{return[]}return n.map(e=>t[e]??`${e}`)}function X(e){return`${e}`.padStart(et,`0`)+`:00`}function Z(e,t){G.value.start_hour=e,G.value.end_hour=t,delete K.value.time}function it(e){B.value=B.value===e?null:e}async function at(){try{L.value=await f.getMappingGroups()}catch(e){console.error(`schedules.loadGroups:`,e),D.error(t(e,M(`schedules.loadGroupsFailed`)))}}async function Q(){try{R.value=await f.getProviders()}catch(e){console.error(`schedules.loadProviders:`,e),D.error(t(e,M(`schedules.loadProvidersFailed`)))}}async function $(){try{z.value=await f.getSchedules()}catch(e){console.error(`schedules.loadAll:`,e),D.error(t(e,M(`schedules.loadSchedulesFailed`)))}}let ot=s(()=>R.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))})));function st(e){let t=G.value.week.indexOf(e);t>=0?G.value.week.splice(t,1):G.value.week.push(e),delete K.value.week}function ct(e){H.value=null,U.value=e,G.value=F(),J.value={injectHeadersInput:``,dropFieldsInput:``,requestDefaultsInput:``},K.value={},q.value=``,V.value=!0}function lt(e){H.value=e.id,U.value=e.mapping_group_id,K.value={},q.value=``;let t=[{backend_model:``,provider_id:``}];try{let n=JSON.parse(e.mapping_rule);n.targets?.length&&(t=n.targets)}catch(e){console.warn(`Failed to parse mapping_rule:`,e),D.error(M(`schedules.parseRuleFailed`))}let n=[...P];try{n=JSON.parse(e.week)}catch(e){console.warn(`Failed to parse week:`,e),D.error(M(`schedules.parseWeekFailed`))}let r=`auto`,i=10,a=12e4,o=100;if(e.concurrency_rule)try{let t=JSON.parse(e.concurrency_rule);r=t.mode||`auto`,t.max_concurrency&&(i=t.max_concurrency),t.queue_timeout_ms&&(a=t.queue_timeout_ms),t.max_queue_size&&(o=t.max_queue_size)}catch(e){console.warn(`Failed to parse concurrency_rule:`,e),D.error(M(`schedules.parseConcurrencyFailed`))}let s=``,c=``,l=``;if(e.transform_rule)try{let t=JSON.parse(e.transform_rule);c=(t.drop_fields||[]).join(`, `),l=t.request_defaults?JSON.stringify(t.request_defaults):``,s=t.inject_headers?JSON.stringify(t.inject_headers):``}catch(e){console.warn(`Failed to parse transform_rule:`,e),D.error(M(`schedules.parseTransformFailed`))}G.value={name:e.name,week:n,start_hour:e.start_hour,end_hour:e.end_hour,targets:t,concurrency_mode:r,max_concurrency:i,queue_timeout_ms:a,max_queue_size:o},J.value={injectHeadersInput:s,dropFieldsInput:c,requestDefaultsInput:l},V.value=!0}function ut(){let e={};G.value.name.trim()||(e.name=M(`schedules.form.nameRequired`)),G.value.week.length===0&&(e.week=M(`schedules.form.weekRequired`)),G.value.start_hour>=G.value.end_hour&&(e.time=M(`schedules.form.timeInvalid`));for(let t of G.value.targets)if(!t.provider_id||!t.backend_model){e.targets=M(`schedules.form.targetRequired`);break}return K.value=e,Object.keys(e).length===0}function dt(){let{injectHeadersInput:e,dropFieldsInput:t,requestDefaultsInput:n}=J.value;if(!e.trim()&&!t.trim()&&!n.trim())return{rule:null,error:!1};let r=t?t.split(`,`).map(e=>e.trim()).filter(Boolean):null,i=null;if(n.trim())try{i=JSON.parse(n)}catch{return D.error(M(`providers.transform.requestDefaultsJsonError`)),{rule:null,error:!0}}let a=null;if(e.trim())try{a=JSON.parse(e)}catch{return D.error(M(`providers.transform.injectHeadersJsonError`)),{rule:null,error:!0}}return{rule:JSON.stringify({drop_fields:r,request_defaults:i,inject_headers:a}),error:!1}}async function ft(){if(q.value=``,!ut())return;let{rule:e,error:n}=dt();if(!n)try{let t=JSON.stringify({targets:G.value.targets}),n=G.value.concurrency_mode===`none`?null:JSON.stringify({mode:G.value.concurrency_mode,max_concurrency:G.value.max_concurrency,queue_timeout_ms:G.value.queue_timeout_ms,max_queue_size:G.value.max_queue_size}),r={mapping_group_id:U.value,name:G.value.name,week:JSON.stringify(G.value.week),start_hour:G.value.start_hour,end_hour:G.value.end_hour,mapping_rule:t,concurrency_rule:n,transform_rule:e};H.value?await f.updateSchedule(H.value,r):await f.createSchedule(r),V.value=!1,await $()}catch(e){q.value=t(e,M(`schedules.saveFailed`))}}async function pt(e){try{await f.toggleSchedule(e.id),await $()}catch(e){console.error(`schedules.toggle:`,e),D.error(t(e,M(`schedules.toggleFailed`)))}}async function mt(){let e=W.value;if(e){W.value=null;try{await f.deleteSchedule(e.id),await $()}catch(e){console.error(`schedules.delete:`,e),D.error(t(e,M(`schedules.deleteFailed`)))}}}return te(async()=>{I.value=!0,await Promise.allSettled([at(),Q(),$()]),I.value=!1}),(t,r)=>(d(),u(`div`,Ce,[l(`div`,null,[l(`h2`,we,c(n(M)(`schedules.title`)),1),l(`p`,Te,c(n(M)(`schedules.description`)),1)]),I.value?(d(),u(`div`,Ee,c(n(M)(`common.loading`)),1)):e(``,!0),I.value?e(``,!0):(d(),u(i,{key:1},[l(`div`,De,[(d(!0),u(i,null,y(L.value,t=>(d(),u(`div`,{key:t.id,class:_([`rounded-lg border transition-colors`,[B.value===t.id?`col-span-3 border-primary/30 shadow-sm shadow-primary/5`:`border-border hover:border-border/80`]])},[l(`div`,{class:`flex items-center gap-3 px-4 py-3 cursor-pointer`,onClick:e=>it(t.id)},[l(`span`,ke,c(t.client_model),1),Y.value[t.id]?.length?(d(),o(n(A),{key:0,variant:`secondary`,class:`text-[10px]`},{default:p(()=>[h(c(n(M)(`schedules.ruleCount`,{count:Y.value[t.id].length})),1)]),_:2},1024)):(d(),o(n(A),{key:1,variant:`outline`,class:`text-[10px] text-muted-foreground/50`},{default:p(()=>[h(c(n(M)(`schedules.noRules`)),1)]),_:1})),l(`div`,Ae,[(d(!0),u(i,null,y((Y.value[t.id]??[]).slice(0,3),e=>(d(),o(n(A),{key:e.id,variant:e.enabled?`default`:`secondary`,class:`text-[10px] font-normal`},{default:p(()=>[h(c(e.name)+` `,1),l(`span`,je,c(X(e.start_hour))+`-`+c(X(e.end_hour)),1)]),_:2},1032,[`variant`]))),128)),(Y.value[t.id]?.length??0)>3?(d(),u(`span`,Me,` +`+c(Y.value[t.id].length-3),1)):e(``,!0)]),v(n(ge),{class:_([`size-4 text-muted-foreground/40 shrink-0 transition-transform`,{"rotate-180":B.value===t.id}])},null,8,[`class`])],8,Oe),B.value===t.id?(d(),u(`div`,Ne,[l(`div`,Pe,[l(`span`,Fe,c(n(M)(`schedules.scheduleRules`)),1),v(n(m),{size:`sm`,variant:`outline`,class:`h-7 text-xs`,onClick:e=>ct(t.id)},{default:p(()=>[v(n(re),{class:`w-3 h-3 mr-1`}),h(` `+c(n(M)(`schedules.createSchedule`)),1)]),_:1},8,[`onClick`])]),v(n(oe),null,{default:p(()=>[v(n(ue),null,{default:p(()=>[v(n(x),{class:`bg-muted/50`},{default:p(()=>[v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.name`)),1)]),_:1}),v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.status`)),1)]),_:1}),v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.week`)),1)]),_:1}),v(n(b),{class:`text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.timeRange`)),1)]),_:1}),v(n(b),{class:`text-right text-muted-foreground text-xs h-8`},{default:p(()=>[h(c(n(M)(`schedules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),v(n(ae),null,{default:p(()=>[(d(!0),u(i,null,y(Y.value[t.id]??[],e=>(d(),o(n(x),{key:e.id},{default:p(()=>[v(n(S),{class:`font-medium text-sm`},{default:p(()=>[h(c(e.name),1)]),_:2},1024),v(n(S),null,{default:p(()=>[v(n(A),{variant:e.enabled?`default`:`secondary`,class:`text-xs`},{default:p(()=>[h(c(e.enabled?n(M)(`schedules.enabled`):n(M)(`schedules.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),v(n(S),null,{default:p(()=>[l(`div`,Ie,[(d(!0),u(i,null,y(rt(e.week),e=>(d(),o(n(A),{key:e,variant:`outline`,class:`text-xs`},{default:p(()=>[h(c(e),1)]),_:2},1024))),128))])]),_:2},1024),v(n(S),{class:`font-mono text-sm`},{default:p(()=>[h(c(X(e.start_hour))+`-`+c(X(e.end_hour)),1)]),_:2},1024),v(n(S),{class:`text-right`},{default:p(()=>[l(`div`,Le,[v(n(fe),{"model-value":!!e.enabled,class:`scale-75`,onClick:g(t=>pt(e),[`stop`])},null,8,[`model-value`,`onClick`]),v(n(m),{variant:`ghost`,size:`sm`,onClick:t=>lt(e)},{default:p(()=>[h(c(n(M)(`common.edit`)),1)]),_:1},8,[`onClick`]),v(n(m),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>W.value=e},{default:p(()=>[h(c(n(M)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024))),128)),Y.value[t.id]?.length?e(``,!0):(d(),o(n(x),{key:0},{default:p(()=>[v(n(S),{colspan:`5`,class:`text-center text-muted-foreground py-6 text-xs`},{default:p(()=>[h(c(n(M)(`schedules.emptyRules`)),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)])):e(``,!0)],2))),128))]),L.value.length===0?(d(),u(`p`,Re,c(n(M)(`schedules.noGroups`)),1)):e(``,!0)],64)),v(n(ce),{open:V.value,"onUpdate:open":r[17]||=e=>V.value=e},{default:p(()=>[v(n(ie),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:p(()=>[v(n(se),null,{default:p(()=>[v(n(de),null,{default:p(()=>[h(c(H.value?n(M)(`schedules.editSchedule`):n(M)(`schedules.createSchedule`)),1)]),_:1})]),_:1}),l(`form`,{onSubmit:g(ft,[`prevent`]),class:`space-y-4`},[q.value?(d(),u(`div`,ze,c(q.value),1)):e(``,!0),l(`div`,Be,[l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.form.name`)),1)]),_:1}),v(n(xe),{modelValue:G.value.name,"onUpdate:modelValue":r[0]||=e=>G.value.name=e,class:`mt-1`,placeholder:n(M)(`schedules.form.namePlaceholder`),onInput:r[1]||=e=>delete K.value.name},null,8,[`modelValue`,`placeholder`]),K.value.name?(d(),u(`p`,Ve,c(K.value.name),1)):e(``,!0)]),l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground mb-1.5 block`},{default:p(()=>[h(c(n(M)(`schedules.form.week`)),1)]),_:1}),l(`div`,He,[(d(!0),u(i,null,y(N.value,(e,t)=>(d(),o(n(m),{key:t,type:`button`,variant:(G.value.week??[]).includes(t)?`default`:`outline`,size:`sm`,class:`h-7 text-xs`,onClick:e=>st(t)},{default:p(()=>[h(c(e),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),K.value.week?(d(),u(`p`,Ue,c(K.value.week),1)):e(``,!0)])]),l(`div`,null,[l(`div`,We,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.timePresets.label`)),1)]),_:1}),l(`div`,Ge,[v(n(m),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[2]||=e=>Z(9,12)},{default:p(()=>[h(c(n(M)(`schedules.timePresets.morning`)),1)]),_:1}),v(n(m),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[3]||=e=>Z(14,18)},{default:p(()=>[h(c(n(M)(`schedules.timePresets.afternoon`)),1)]),_:1}),v(n(m),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[4]||=e=>Z(19,21)},{default:p(()=>[h(c(n(M)(`schedules.timePresets.evening`)),1)]),_:1})])]),l(`div`,Ke,[l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.form.startTime`)),1)]),_:1}),v(n(w),{modelValue:G.value.start_hour,"onUpdate:modelValue":[r[5]||=e=>G.value.start_hour=e,r[6]||=e=>{G.value.start_hour=Number(e),delete K.value.time}],class:`mt-1`},{default:p(()=>[v(n(O),null,{default:p(()=>[v(n(k),{placeholder:n(M)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),v(n(T),null,{default:p(()=>[(d(),u(i,null,y(24,e=>v(n(E),{key:e-1,value:e-1},{default:p(()=>[h(c(String(e-1).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])]),l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground`},{default:p(()=>[h(c(n(M)(`schedules.form.endTime`)),1)]),_:1}),v(n(w),{modelValue:G.value.end_hour,"onUpdate:modelValue":[r[7]||=e=>G.value.end_hour=e,r[8]||=e=>{G.value.end_hour=Number(e),delete K.value.time}],class:`mt-1`},{default:p(()=>[v(n(O),null,{default:p(()=>[v(n(k),{placeholder:n(M)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),v(n(T),null,{default:p(()=>[(d(),u(i,null,y(24,e=>v(n(E),{key:e,value:e},{default:p(()=>[h(c(String(e).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])])]),K.value.time?(d(),u(`p`,qe,c(K.value.time),1)):e(``,!0)]),l(`div`,null,[v(n(C),{class:`text-xs text-muted-foreground mb-1 block`},{default:p(()=>[h(c(n(M)(`schedules.form.targets`)),1)]),_:1}),v(ne,{entry:tt.value,"provider-groups":ot.value,expanded:!0,editable:!0,"onUpdate:targets":nt},null,8,[`entry`,`provider-groups`]),K.value.targets?(d(),u(`p`,Je,c(K.value.targets),1)):e(``,!0)]),l(`div`,Ye,[l(`div`,Xe,[l(`div`,Ze,c(n(M)(`schedules.form.concurrencyTitle`)),1),v(Se,{mode:G.value.concurrency_mode,"max-concurrency":G.value.max_concurrency,"queue-timeout-ms":G.value.queue_timeout_ms,"max-queue-size":G.value.max_queue_size,compact:``,"onUpdate:mode":r[9]||=e=>G.value.concurrency_mode=e,"onUpdate:maxConcurrency":r[10]||=e=>G.value.max_concurrency=e,"onUpdate:queueTimeoutMs":r[11]||=e=>G.value.queue_timeout_ms=e,"onUpdate:maxQueueSize":r[12]||=e=>G.value.max_queue_size=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`])]),l(`div`,Qe,[l(`div`,$e,c(n(M)(`providers.transform.title`)),1),v(j,{"inject-headers":J.value.injectHeadersInput,"drop-fields":J.value.dropFieldsInput,"request-defaults":J.value.requestDefaultsInput,compact:``,"onUpdate:injectHeaders":r[13]||=e=>J.value.injectHeadersInput=e,"onUpdate:dropFields":r[14]||=e=>J.value.dropFieldsInput=e,"onUpdate:requestDefaults":r[15]||=e=>J.value.requestDefaultsInput=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])])]),v(n(le),null,{default:p(()=>[v(n(m),{type:`button`,variant:`outline`,onClick:r[16]||=e=>V.value=!1},{default:p(()=>[h(c(n(M)(`common.cancel`)),1)]),_:1}),v(n(m),{type:`submit`},{default:p(()=>[h(c(n(M)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),v(n(he),{open:!!W.value,"onUpdate:open":r[18]||=e=>{e||(W.value=null)}},{default:p(()=>[v(n(_e),null,{default:p(()=>[v(n(ve),null,{default:p(()=>[v(n(pe),null,{default:p(()=>[h(c(n(M)(`schedules.confirmDeleteTitle`)),1)]),_:1}),v(n(me),null,{default:p(()=>[h(c(n(M)(`schedules.confirmDeleteMessage`,{name:W.value?.name??``})),1)]),_:1})]),_:1}),v(n(ye),null,{default:p(()=>[v(n(be),null,{default:p(()=>[h(c(n(M)(`common.cancel`)),1)]),_:1}),v(n(m),{variant:`destructive`,onClick:mt},{default:p(()=>[h(c(n(M)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{M 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,r as T,rt as E,vt as D,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,r as T,rt as E,vt as D,x as O,yt as k}from"./button-EcESBjGm.js";import{t as A}from"./Label-B83qJ4ZP.js";import{$ as j,J as M,K as N,Z as ne,a as re,c as ie,d as ae,f as oe,i as P,l as se,nt as ce,o as le,s as ue,tt as de,u as fe}from"./index-Dv_nrEfy.js";import{t as F}from"./Input-CpDpvdgi.js";import{t as pe}from"./useLogRetention-C05x-s32.js";var me=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`}]]),he=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`}]]),I=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`}]]),L=100,[R,z]=M(`ProgressRoot`),B=e=>typeof e==`number`;function V(e,t){return N(e)||B(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 ${L} 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-EcESBjGm.js";import{t as y}from"./Label-B83qJ4ZP.js";import{ct as b,n as x,st as S}from"./index-Dv_nrEfy.js";import{n as C,t as w}from"./CardContent-tdwjLn4i.js";import{t as T}from"./Input-CpDpvdgi.js";var E={class:`min-h-screen flex items-center justify-center bg-background relative`},D={class:`text-center mb-6`},O={class:`text-sm text-muted-foreground mt-1`},k={key:0,class:`text-destructive text-sm`},A=d({__name:`Setup`,setup(d){let{t:A}=i(),{isDark:j,toggleTheme:M}=x(),N=v(),P=a(``),F=a(``),I=a(``),L=a(!1);async function R(){if(!P.value||!F.value){I.value=A(`setup.pleaseInputPassword`);return}if(P.value!==F.value){I.value=A(`setup.passwordMismatch`);return}if(P.value.length<6){I.value=A(`setup.passwordTooShort`);return}I.value=``,L.value=!0;try{await f.initializeSetup(P.value),n(),N.push({name:`dashboard`})}catch(e){I.value=t(e,A(`setup.setupFailed`))}finally{L.value=!1}}return(t,n)=>(u(),l(`div`,E,[_(r(m),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:r(M)},{default:p(()=>[r(j)?(u(),o(r(S),{key:1,class:`w-4 h-4`})):(u(),o(r(b),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),_(r(C),{class:`w-full max-w-sm shadow-lg`},{default:p(()=>[_(r(w),{class:`pt-6`},{default:p(()=>[c(`div`,D,[n[2]||=c(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[c(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z`})])],-1),n[3]||=c(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`,-1),c(`p`,O,s(r(A)(`setup.subtitle`)),1)]),c(`form`,{onSubmit:g(R,[`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(A)(`setup.password`)),1)]),_:1}),_(r(T),{modelValue:P.value,"onUpdate:modelValue":n[0]||=e=>P.value=e,type:`password`,placeholder:r(A)(`setup.passwordPlaceholder`),disabled:L.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(A)(`setup.confirmPassword`)),1)]),_:1}),_(r(T),{modelValue:F.value,"onUpdate:modelValue":n[1]||=e=>F.value=e,type:`password`,placeholder:r(A)(`setup.confirmPasswordPlaceholder`),disabled:L.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),I.value?(u(),l(`p`,k,s(I.value),1)):e(``,!0),_(r(m),{type:`submit`,class:`w-full`,disabled:L.value},{default:p(()=>[h(s(L.value?r(A)(`setup.settingUp`):r(A)(`setup.setupButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{A as default};
|
|
@@ -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-EcESBjGm.js";import{t as b}from"./VisuallyHiddenInput-1EakFczP.js";import{J as x,U as S,V as C}from"./index-Dv_nrEfy.js";var[w,T]=x(`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=C(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{Dt as e,E as t,Et as n,Gt as r,Ht as i,Jt as a,Lt as o,Q as s,S as c,St as l,X as u,Xt as d,Yt as f,d as p,dt as m,et as h,g,gt as _,i as v,it as y,kt as b,m as x,mt as S,nt as C,o as w,ot as T,q as E,r as D,rt as O,w as ee,x as k,xt as A,yt as j}from"./button-Dm-cbgS5.js";import{A as te,B as ne,C as re,D as ie,E as M,G as N,H as P,J as F,P as I,R as L,T as R,V as z,w as B}from"./index-CTaQHTod.js";function V(t,n){let r=c(!1,300);ee(()=>{r.value=!1});let i=o(null),a=g();function s(){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=U(a,H(a,n.getBoundingClientRect()),1),s=W(t.getBoundingClientRect());i.value=K([...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,o={x:e.clientX,y:e.clientY},c=t.value?.contains(r)||n.value?.contains(r),l=!G(o,i.value),u=!!r.closest(`[data-grace-area-trigger]`);c?s():(l||u)&&(s(),a.trigger())};t.value?.ownerDocument.addEventListener(`pointermove`,r),e(()=>t.value?.ownerDocument.removeEventListener(`pointermove`,r))}}),{isPointerInTransit:r,onPointerExit:a.on}}function H(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 U(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 W(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 G(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 K(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)),q(t)}function q(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 ae={key:0,d:`M0 0L6 6L12 0`},J={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},oe=y({__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 w(),(e,n)=>(_(),s(r(v),m(t,{width:e.width,height:e.height,viewBox:e.asChild?void 0:`0 0 12 6`,preserveAspectRatio:e.asChild?void 0:`none`}),{default:b(()=>[j(e.$slots,`default`,{},()=>[e.rounded?(_(),h(`path`,J)):(_(),h(`path`,ae))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),se={top:`bottom`,right:`left`,bottom:`top`,left:`right`},ce=y({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}=w(),n=B(),i=u(()=>se[n.placedSide.value]);return(e,a)=>(_(),h(`span`,{ref:e=>{r(n).onArrowChange(e??void 0)},style:f({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})},[O(oe,m(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:b(()=>[j(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),le=y({__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 w(),(e,n)=>(_(),s(r(ce),a(T(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),[Y,ue]=F(`TooltipProvider`),de=y({inheritAttrs:!1,__name:`TooltipProvider`,props:{delayDuration:{type:Number,required:!1,default:700},skipDelayDuration:{type:Number,required:!1,default:300},disableHoverableContent:{type:Boolean,required:!1,default:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:!1},content:{type:Object,required:!1}},setup(e){let{delayDuration:n,skipDelayDuration:r,disableHoverableContent:a,disableClosingTrigger:s,ignoreNonKeyboardFocus:c,disabled:l,content:u}=i(e);w();let d=o(!0),f=o(!1),{start:p,stop:m}=t(()=>{d.value=!0},r,{immediate:!1});return ue({isOpenDelayed:d,delayDuration:n,onOpen(){m(),d.value=!1},onClose(){p()},isPointerInTransitRef:f,disableHoverableContent:a,disableClosingTrigger:s,disabled:l,ignoreNonKeyboardFocus:c,content:u}),(e,t)=>j(e.$slots,`default`)}}),X=`tooltip.open`,[Z,fe]=F(`TooltipRoot`),pe=y({__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 a=e,c=i;w();let l=Y(),d=u(()=>a.disableHoverableContent??l.disableHoverableContent.value),f=u(()=>a.disableClosingTrigger??l.disableClosingTrigger.value),p=u(()=>a.disabled??l.disabled.value),m=u(()=>a.delayDuration??l.delayDuration.value),h=u(()=>a.ignoreNonKeyboardFocus??l.ignoreNonKeyboardFocus.value),g=x(a,`open`,c,{defaultValue:a.defaultOpen,passive:a.open===void 0});n(g,e=>{l.onClose&&(e?(l.onOpen(),document.dispatchEvent(new CustomEvent(X))):l.onClose())});let v=o(!1),y=o(),S=u(()=>g.value?v.value?`delayed-open`:`instant-open`:`closed`),{start:C,stop:T}=t(()=>{v.value=!0,g.value=!0},m,{immediate:!1});function E(){T(),v.value=!1,g.value=!0}function D(){T(),g.value=!1}function O(){C()}return fe({contentId:``,open:g,stateAttribute:S,trigger:y,onTriggerChange(e){y.value=e},onTriggerEnter(){l.isOpenDelayed.value?O():E()},onTriggerLeave(){d.value?D():T()},onOpen:E,onClose:D,disableHoverableContent:d,disableClosingTrigger:f,disabled:p,ignoreNonKeyboardFocus:h}),(e,t)=>(_(),s(r(M),null,{default:b(()=>[j(e.$slots,`default`,{open:r(g)})]),_:3}))}}),Q=y({__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=Z(),o=Y(),{forwardRef:c,currentElement:l}=w(),f=u(()=>n.ariaLabel||l.value?.textContent),h=u(()=>{let{ariaLabel:e,...t}=n;return N(t,o.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return S(()=>{p(window,`scroll`,e=>{e.target?.contains(a.trigger.value)&&a.onClose()},{capture:!0}),p(window,X,a.onClose)}),(e,t)=>(_(),s(r(I),{"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]||=E(()=>{},[`prevent`]),onDismiss:t[3]||=e=>r(a).onClose()},{default:b(()=>[O(r(re),m({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:b(()=>[j(e.$slots,`default`),O(r(ie),{id:r(a).contentId,role:`tooltip`},{default:b(()=>[C(d(f.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),me=y({__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=P(e),{forwardRef:n,currentElement:i}=w(),{trigger:a,onClose:o}=Z(),c=Y(),{isPointerInTransit:l,onPointerExit:u}=V(a,i);return c.isPointerInTransitRef=l,u(()=>{o()}),(e,i)=>(_(),s(Q,m({ref:r(n)},r(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),he=y({__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=Z(),o=z(n,i),{forwardRef:c}=w();return(e,t)=>(_(),s(r(L),{present:e.forceMount||r(a).open.value},{default:b(()=>[(_(),s(A(r(a).disableHoverableContent.value?Q:me),m({ref:r(c)},r(o)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ge=y({__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)=>(_(),s(r(te),a(T(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),$=y({__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=Z(),i=Y();n.contentId||=ne(void 0,`reka-tooltip-content`);let{forwardRef:a,currentElement:c}=w(),d=o(!1),f=o(!1),p=u(()=>n.disabled.value?{}:{click:E,focus:C,pointermove:y,pointerleave:x,pointerdown:g,blur:T});S(()=>{n.onTriggerChange(c.value)});function h(){setTimeout(()=>{d.value=!1},1)}function g(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),d.value=!0,document.addEventListener(`pointerup`,h,{once:!0})}function y(e){e.pointerType!==`touch`&&!f.value&&!i.isPointerInTransitRef.value&&(n.onTriggerEnter(),f.value=!0)}function x(){n.onTriggerLeave(),f.value=!1}function C(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)=>(_(),s(r(R),{"as-child":``,reference:e.reference},{default:b(()=>[O(r(v),m({ref:r(a),"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":``},l(p.value)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),_e=y({__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=z(e,t);return(e,t)=>(_(),s(r(pe),m({"data-slot":`tooltip`},r(n)),{default:b(t=>[j(e.$slots,`default`,a(T(t)))]),_:3},16))}}),ve=y({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=z(k(n,`class`),i);return(e,t)=>(_(),s(r(ge),null,{default:b(()=>[O(r(he),m({"data-slot":`tooltip-content`},{...r(a),...e.$attrs},{class:r(D)(`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:b(()=>[j(e.$slots,`default`),O(r(le),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),ye=y({__name:`TooltipProvider`,props:{delayDuration:{default:0},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean},content:{}},setup(e){let t=e;return(e,n)=>(_(),s(r(de),a(T(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),be=y({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(_(),s(r($),m({"data-slot":`tooltip-trigger`},t),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}});export{_e as i,ye as n,ve as r,be as t};
|
|
1
|
+
import{Dt as e,E as t,Et as n,Gt as r,Ht as i,Jt as a,Lt as o,Q as s,S as c,St as l,X as u,Xt as d,Yt as f,d as p,dt as m,et as h,g,gt as _,i as v,it as y,kt as b,m as x,mt as S,nt as C,o as w,ot as T,q as E,r as D,rt as O,w as ee,x as k,xt as A,yt as j}from"./button-EcESBjGm.js";import{A as te,B as ne,C as re,D as ie,E as M,G as N,H as P,J as F,P as I,R as L,T as R,V as z,w as B}from"./index-Dv_nrEfy.js";function V(t,n){let r=c(!1,300);ee(()=>{r.value=!1});let i=o(null),a=g();function s(){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=U(a,H(a,n.getBoundingClientRect()),1),s=W(t.getBoundingClientRect());i.value=K([...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,o={x:e.clientX,y:e.clientY},c=t.value?.contains(r)||n.value?.contains(r),l=!G(o,i.value),u=!!r.closest(`[data-grace-area-trigger]`);c?s():(l||u)&&(s(),a.trigger())};t.value?.ownerDocument.addEventListener(`pointermove`,r),e(()=>t.value?.ownerDocument.removeEventListener(`pointermove`,r))}}),{isPointerInTransit:r,onPointerExit:a.on}}function H(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 U(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 W(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 G(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 K(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)),q(t)}function q(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 ae={key:0,d:`M0 0L6 6L12 0`},J={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},oe=y({__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 w(),(e,n)=>(_(),s(r(v),m(t,{width:e.width,height:e.height,viewBox:e.asChild?void 0:`0 0 12 6`,preserveAspectRatio:e.asChild?void 0:`none`}),{default:b(()=>[j(e.$slots,`default`,{},()=>[e.rounded?(_(),h(`path`,J)):(_(),h(`path`,ae))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),se={top:`bottom`,right:`left`,bottom:`top`,left:`right`},ce=y({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}=w(),n=B(),i=u(()=>se[n.placedSide.value]);return(e,a)=>(_(),h(`span`,{ref:e=>{r(n).onArrowChange(e??void 0)},style:f({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})},[O(oe,m(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:b(()=>[j(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),le=y({__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 w(),(e,n)=>(_(),s(r(ce),a(T(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),[Y,ue]=F(`TooltipProvider`),de=y({inheritAttrs:!1,__name:`TooltipProvider`,props:{delayDuration:{type:Number,required:!1,default:700},skipDelayDuration:{type:Number,required:!1,default:300},disableHoverableContent:{type:Boolean,required:!1,default:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:!1},content:{type:Object,required:!1}},setup(e){let{delayDuration:n,skipDelayDuration:r,disableHoverableContent:a,disableClosingTrigger:s,ignoreNonKeyboardFocus:c,disabled:l,content:u}=i(e);w();let d=o(!0),f=o(!1),{start:p,stop:m}=t(()=>{d.value=!0},r,{immediate:!1});return ue({isOpenDelayed:d,delayDuration:n,onOpen(){m(),d.value=!1},onClose(){p()},isPointerInTransitRef:f,disableHoverableContent:a,disableClosingTrigger:s,disabled:l,ignoreNonKeyboardFocus:c,content:u}),(e,t)=>j(e.$slots,`default`)}}),X=`tooltip.open`,[Z,fe]=F(`TooltipRoot`),pe=y({__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 a=e,c=i;w();let l=Y(),d=u(()=>a.disableHoverableContent??l.disableHoverableContent.value),f=u(()=>a.disableClosingTrigger??l.disableClosingTrigger.value),p=u(()=>a.disabled??l.disabled.value),m=u(()=>a.delayDuration??l.delayDuration.value),h=u(()=>a.ignoreNonKeyboardFocus??l.ignoreNonKeyboardFocus.value),g=x(a,`open`,c,{defaultValue:a.defaultOpen,passive:a.open===void 0});n(g,e=>{l.onClose&&(e?(l.onOpen(),document.dispatchEvent(new CustomEvent(X))):l.onClose())});let v=o(!1),y=o(),S=u(()=>g.value?v.value?`delayed-open`:`instant-open`:`closed`),{start:C,stop:T}=t(()=>{v.value=!0,g.value=!0},m,{immediate:!1});function E(){T(),v.value=!1,g.value=!0}function D(){T(),g.value=!1}function O(){C()}return fe({contentId:``,open:g,stateAttribute:S,trigger:y,onTriggerChange(e){y.value=e},onTriggerEnter(){l.isOpenDelayed.value?O():E()},onTriggerLeave(){d.value?D():T()},onOpen:E,onClose:D,disableHoverableContent:d,disableClosingTrigger:f,disabled:p,ignoreNonKeyboardFocus:h}),(e,t)=>(_(),s(r(M),null,{default:b(()=>[j(e.$slots,`default`,{open:r(g)})]),_:3}))}}),Q=y({__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=Z(),o=Y(),{forwardRef:c,currentElement:l}=w(),f=u(()=>n.ariaLabel||l.value?.textContent),h=u(()=>{let{ariaLabel:e,...t}=n;return N(t,o.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return S(()=>{p(window,`scroll`,e=>{e.target?.contains(a.trigger.value)&&a.onClose()},{capture:!0}),p(window,X,a.onClose)}),(e,t)=>(_(),s(r(I),{"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]||=E(()=>{},[`prevent`]),onDismiss:t[3]||=e=>r(a).onClose()},{default:b(()=>[O(r(re),m({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:b(()=>[j(e.$slots,`default`),O(r(ie),{id:r(a).contentId,role:`tooltip`},{default:b(()=>[C(d(f.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),me=y({__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=P(e),{forwardRef:n,currentElement:i}=w(),{trigger:a,onClose:o}=Z(),c=Y(),{isPointerInTransit:l,onPointerExit:u}=V(a,i);return c.isPointerInTransitRef=l,u(()=>{o()}),(e,i)=>(_(),s(Q,m({ref:r(n)},r(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),he=y({__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=Z(),o=z(n,i),{forwardRef:c}=w();return(e,t)=>(_(),s(r(L),{present:e.forceMount||r(a).open.value},{default:b(()=>[(_(),s(A(r(a).disableHoverableContent.value?Q:me),m({ref:r(c)},r(o)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ge=y({__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)=>(_(),s(r(te),a(T(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),$=y({__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=Z(),i=Y();n.contentId||=ne(void 0,`reka-tooltip-content`);let{forwardRef:a,currentElement:c}=w(),d=o(!1),f=o(!1),p=u(()=>n.disabled.value?{}:{click:E,focus:C,pointermove:y,pointerleave:x,pointerdown:g,blur:T});S(()=>{n.onTriggerChange(c.value)});function h(){setTimeout(()=>{d.value=!1},1)}function g(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),d.value=!0,document.addEventListener(`pointerup`,h,{once:!0})}function y(e){e.pointerType!==`touch`&&!f.value&&!i.isPointerInTransitRef.value&&(n.onTriggerEnter(),f.value=!0)}function x(){n.onTriggerLeave(),f.value=!1}function C(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)=>(_(),s(r(R),{"as-child":``,reference:e.reference},{default:b(()=>[O(r(v),m({ref:r(a),"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":``},l(p.value)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),_e=y({__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=z(e,t);return(e,t)=>(_(),s(r(pe),m({"data-slot":`tooltip`},r(n)),{default:b(t=>[j(e.$slots,`default`,a(T(t)))]),_:3},16))}}),ve=y({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=z(k(n,`class`),i);return(e,t)=>(_(),s(r(ge),null,{default:b(()=>[O(r(he),m({"data-slot":`tooltip-content`},{...r(a),...e.$attrs},{class:r(D)(`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:b(()=>[j(e.$slots,`default`),O(r(le),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),ye=y({__name:`TooltipProvider`,props:{delayDuration:{default:0},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean},content:{}},setup(e){let t=e;return(e,n)=>(_(),s(r(de),a(T(t)),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}}),be=y({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(_(),s(r($),m({"data-slot":`tooltip-trigger`},t),{default:b(()=>[j(e.$slots,`default`)]),_:3},16))}});export{_e as i,ye as n,ve as r,be as t};
|
package/frontend-dist/assets/{TransformRulesForm-BT9zoPTc.js → TransformRulesForm-DA5XjrhO.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Gt as t,H as n,J as r,Xt as i,Z as a,et as o,gt as s,it as c,kt as l,nt as u,qt as d,rt as f}from"./button-
|
|
1
|
+
import{$ as e,Gt as t,H as n,J as r,Xt as i,Z as a,et as o,gt as s,it as c,kt as l,nt as u,qt as d,rt as f}from"./button-EcESBjGm.js";import{t as p}from"./Label-B83qJ4ZP.js";import{_ as m,g as h,h as g,m as _,p as v}from"./index-Dv_nrEfy.js";import{t as y}from"./Input-CpDpvdgi.js";var b={key:1,class:`text-[10px] text-muted-foreground leading-snug`},x=c({__name:`ConcurrencyControl`,props:{mode:{},maxConcurrency:{default:10},queueTimeoutMs:{default:12e4},maxQueueSize:{default:100},compact:{type:Boolean,default:!1}},emits:[`update:mode`,`update:maxConcurrency`,`update:queueTimeoutMs`,`update:maxQueueSize`],setup(c,{emit:x}){let{t:S}=n(),C=x;return(n,x)=>(s(),o(`div`,{class:d(c.compact?`space-y-2`:`flex items-end gap-2 flex-wrap`)},[a(`div`,{class:d([c.compact?``:`w-36`,`space-y-1`])},[f(t(p),{class:`text-xs text-muted-foreground`},{default:l(()=>[u(i(t(S)(`providers.concurrency.mode`)),1)]),_:1}),f(t(m),{"model-value":c.mode,"onUpdate:modelValue":x[0]||=e=>C(`update:mode`,e)},{default:l(()=>[f(t(_),{class:`w-full text-xs data-[size=default]:h-7`},{default:l(()=>[f(t(v))]),_:1}),f(t(h),null,{default:l(()=>[f(t(g),{value:`auto`},{default:l(()=>[u(i(t(S)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),f(t(g),{value:`manual`},{default:l(()=>[u(i(t(S)(`providers.concurrency.manual`)),1)]),_:1}),f(t(g),{value:`none`},{default:l(()=>[u(i(t(S)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])],2),c.mode===`none`?e(``,!0):(s(),o(r,{key:0},[a(`div`,{class:d([c.compact?``:`w-28`,`space-y-1`])},[f(t(p),{class:`text-xs text-muted-foreground`},{default:l(()=>[u(i(t(S)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),f(t(y),{"model-value":c.maxConcurrency,type:`number`,min:`1`,max:`100`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":x[1]||=e=>C(`update:maxConcurrency`,Number(e))},null,8,[`model-value`])],2),a(`div`,{class:d([c.compact?``:`w-32`,`space-y-1`])},[f(t(p),{class:`text-xs text-muted-foreground`},{default:l(()=>[u(i(t(S)(`providers.concurrency.queueTimeout`)),1)]),_:1}),f(t(y),{"model-value":c.queueTimeoutMs,type:`number`,min:`0`,placeholder:t(S)(`providers.shared.queueTimeoutPlaceholder`),class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":x[2]||=e=>C(`update:queueTimeoutMs`,Number(e))},null,8,[`model-value`,`placeholder`])],2),a(`div`,{class:d([c.compact?``:`w-32`,`space-y-1`])},[f(t(p),{class:`text-xs text-muted-foreground`},{default:l(()=>[u(i(t(S)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),f(t(y),{"model-value":c.maxQueueSize,type:`number`,min:`1`,max:`1000`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":x[3]||=e=>C(`update:maxQueueSize`,Number(e))},null,8,[`model-value`])],2)],64)),c.mode===`auto`&&!c.compact?(s(),o(`div`,b,i(t(S)(`providers.shared.autoHint`)),1)):e(``,!0)],2))}}),S=c({__name:`TransformRulesForm`,props:{injectHeaders:{},dropFields:{},requestDefaults:{},compact:{type:Boolean}},emits:[`update:injectHeaders`,`update:dropFields`,`update:requestDefaults`],setup(e,{emit:r}){let c=r,{t:m}=n();return(n,r)=>(s(),o(`div`,{class:d(e.compact?`space-y-2`:`space-y-3`)},[a(`div`,null,[f(t(p),{class:`text-[11px] text-muted-foreground`},{default:l(()=>[u(i(t(m)(`providers.transform.injectHeaders`)),1)]),_:1}),f(t(y),{"model-value":e.injectHeaders,placeholder:`{"x-custom": "value"}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":r[0]||=e=>c(`update:injectHeaders`,e)},null,8,[`model-value`])]),a(`div`,null,[f(t(p),{class:`text-[11px] text-muted-foreground`},{default:l(()=>[u(i(t(m)(`providers.transform.dropFields`)),1)]),_:1}),f(t(y),{"model-value":e.dropFields,placeholder:`logprobs, frequency_penalty`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":r[1]||=e=>c(`update:dropFields`,e)},null,8,[`model-value`])]),a(`div`,null,[f(t(p),{class:`text-[11px] text-muted-foreground`},{default:l(()=>[u(i(t(m)(`providers.transform.requestDefaults`)),1)]),_:1}),f(t(y),{"model-value":e.requestDefaults,placeholder:`{"max_tokens": 4096}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":r[2]||=e=>c(`update:requestDefaults`,e)},null,8,[`model-value`])])],2))}});export{x as n,S as t};
|