ezllm 0.0.27 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/README.md +12 -0
  2. package/dist/server.js +63 -5
  3. package/dist/web-ui/assets/{DashboardView-DTF4RzgZ.js → DashboardView-ChJpgKis.js} +1 -1
  4. package/dist/web-ui/assets/{LayoutView-CkUPhcPQ.js → LayoutView-C8YPw0x2.js} +1 -1
  5. package/dist/web-ui/assets/{LoginView-CzfNjlvz.js → LoginView-C4hkT-3T.js} +1 -1
  6. package/dist/web-ui/assets/{LogsView-BYA6dgGO.js → LogsView-DdS8qKEs.js} +1 -1
  7. package/dist/web-ui/assets/ProvidersView-BD33caY8.js +14 -0
  8. package/dist/web-ui/assets/ProvidersView-DNqX_AWw.css +1 -0
  9. package/dist/web-ui/assets/{ServiceStatusView-c0jJPnb2.js → ServiceStatusView-BtF40E0V.js} +1 -1
  10. package/dist/web-ui/assets/{SettingsView-BZsuqac5.js → SettingsView-SdL8ednl.js} +1 -1
  11. package/dist/web-ui/assets/{SetupView-DpD5okpe.js → SetupView-BZFBBRSd.js} +1 -1
  12. package/dist/web-ui/assets/{config-C6eC0CWg.js → config-Dbms19Et.js} +1 -1
  13. package/dist/web-ui/assets/{index-DRdS47Vm.js → index-C6wv4UB9.js} +1 -1
  14. package/dist/web-ui/assets/{message-D5w4qfHY.js → message-CEBSyhlN.js} +1 -1
  15. package/dist/web-ui/assets/{providers-BM4fqFJi.js → providers-DkujdEZ8.js} +1 -1
  16. package/dist/web-ui/assets/{router-DjNMXIJT.js → router-BqkHX02I.js} +2 -2
  17. package/dist/web-ui/assets/{useLoadError-qYTOtUW0.js → useLoadError-Yu7YH4ZH.js} +1 -1
  18. package/dist/web-ui/assets/{useManagerApi-COiXXii9.js → useManagerApi-fVrRDZkc.js} +1 -1
  19. package/dist/web-ui/assets/useToast-DJwG-33L.js +1 -0
  20. package/dist/web-ui/index.html +3 -3
  21. package/docs/DESIGN.md +2 -2
  22. package/hook.example.js +176 -0
  23. package/package.json +2 -1
  24. package/dist/web-ui/assets/ProvidersView-DYUaYhO-.js +0 -14
  25. package/dist/web-ui/assets/ProvidersView-ufXnqFGi.css +0 -1
  26. package/dist/web-ui/assets/useToast-DKg4wBxA.js +0 -1
@@ -0,0 +1 @@
1
+ .quota-block[data-v-654b578d]{background:#fafbfc;border:1px solid #f0f2f5;border-radius:6px;margin-bottom:4px;padding:8px 10px}.quota-header[data-v-654b578d]{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.quota-block-title[data-v-654b578d]{color:#303133;flex-shrink:0;font-size:13px;font-weight:600}.quota-header-stats[data-v-654b578d]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.quota-hint[data-v-654b578d]{color:#c0c4cc;font-size:12px}.quota-error[data-v-654b578d]{color:#f56c6c;word-break:break-all;margin-bottom:4px;font-size:12px}.quota-row[data-v-654b578d]{align-items:flex-start;gap:8px;padding:3px 0;display:flex}.quota-label[data-v-654b578d]{color:#909399;flex-shrink:0;width:72px;font-size:12px;line-height:18px}.quota-main[data-v-654b578d]{flex:1;min-width:0}.quota-main[data-v-654b578d] .el-progress{width:100%}.quota-main[data-v-654b578d] .el-progress-bar__outer{background-color:#f2f2f2}.quota-main[data-v-654b578d] .el-progress-bar__inner{align-items:center;display:flex}.quota-main[data-v-654b578d] .el-progress-bar__innerText{color:#303133;white-space:nowrap;margin:0 5px;font-size:12px;line-height:1}.quota-cap-null[data-v-654b578d]{color:#606266;font-size:12px}.provider-card[data-v-44bd817a]{cursor:grab;min-width:0;transition:box-shadow .2s,border-color .2s}.provider-card[data-v-44bd817a] .el-card__header{padding-bottom:10px}.provider-card[data-v-44bd817a] .el-card__body{padding-top:12px}.provider-card[data-v-44bd817a]:hover{border-color:#b1d2ff;box-shadow:0 4px 16px #3b82f61a}.provider-card.dragging[data-v-44bd817a]{cursor:grabbing}.provider-card.is-disabled[data-v-44bd817a]{background:#fafafa}.provider-card.is-disabled .provider-name[data-v-44bd817a]{color:#a8abb2}.provider-card.is-disabled[data-v-44bd817a] .el-card__header{background:#fafafa}.card-header-right[data-v-44bd817a]{flex-shrink:0;align-items:center;gap:10px;display:flex}.header-switch[data-v-44bd817a]{cursor:auto;align-items:center;display:flex}.header-switch[data-v-44bd817a] .el-switch{cursor:pointer}.card-header[data-v-44bd817a]{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-title[data-v-44bd817a]{align-items:center;gap:8px;min-width:0;display:flex}.provider-name[data-v-44bd817a]{color:#303133;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.card-actions[data-v-44bd817a]{cursor:auto;flex-shrink:0;gap:0;display:flex}.model-tags[data-v-44bd817a]{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.model-tag[data-v-44bd817a]{color:#606266;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#f5f7fa;border:1px solid #0000;border-radius:999px;align-items:center;max-width:100%;padding:3px 10px;font-size:12px;line-height:18px;transition:color .15s,background .15s;display:inline-flex;overflow:hidden}.model-tag[data-v-44bd817a]:hover{color:#3b82f6;background:#eff6ff}.model-tag.ok[data-v-44bd817a]{color:#16a34a;background:#f0fdf4}.model-tag.error[data-v-44bd817a]{color:#dc2626;background:#fef2f2}.badge-mark[data-v-44bd817a]{margin-left:3px}.card-footer[data-v-44bd817a]{border-top:1px solid #f0f2f5;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;display:flex}.model-count[data-v-44bd817a]{color:#16a34a;cursor:pointer;border-radius:4px;font-size:13px;font-weight:500}.model-count[data-v-44bd817a]:hover{text-decoration:underline}.drag-hint-icon[data-v-44bd817a]{color:#c0c4cc;cursor:grab;flex-shrink:0}.drag-hint-icon[data-v-44bd817a]:hover{color:#909399}.detail-body[data-v-08dfa117]{max-height:70vh;overflow-y:auto}.detail-head[data-v-08dfa117]{align-items:center;gap:12px;margin-bottom:12px;display:flex}.detail-name[data-v-08dfa117]{font-size:14px;font-weight:600}.detail-pre[data-v-08dfa117]{color:#303133;white-space:pre-wrap;word-break:break-all;background:#f5f7fa;border:1px solid #e4e7ed;border-radius:6px;max-height:300px;margin:0;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.protocol-help .help-intro[data-v-2248b61a]{color:#606266;margin-bottom:14px;font-size:13px}.protocol-help .help-item[data-v-2248b61a]{margin-bottom:12px}.protocol-help .help-title[data-v-2248b61a]{color:#303133;align-items:center;gap:8px;margin-bottom:4px;font-size:14px;font-weight:600;display:flex}.protocol-help .help-item p[data-v-2248b61a]{color:#606266;margin:0;font-size:13px;line-height:1.7}.protocol-help .help-table-note[data-v-2248b61a]{margin-bottom:8px}.protocol-help .help-table[data-v-2248b61a]{width:100%}.model-select-wrap[data-v-ff3f761b]{flex-shrink:0;width:400px}.test-result-link[data-v-ff3f761b]{font-size:12px}.col-help[data-v-ff3f761b]{margin-right:4px}.col-help-icon[data-v-ff3f761b]{color:#c0c4cc;cursor:help;vertical-align:-2px}.col-help-icon[data-v-ff3f761b]:hover{color:#909399}.dialog-body[data-v-cc9f2dd1]{max-height:80vh;padding-bottom:100px;overflow:hidden auto}.test-ok-text[data-v-cc9f2dd1]{color:#16a34a;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:140px;font-size:12px;display:inline-block;overflow:hidden}.test-fail-text[data-v-cc9f2dd1]{color:#dc2626;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:140px;font-size:12px;display:inline-block;overflow:hidden}.model-select-wrap[data-v-cc9f2dd1]{flex-shrink:0;width:400px}.protocol-hint[data-v-cc9f2dd1]{line-height:1.8}.label-action-btn[data-v-cc9f2dd1]{height:auto;margin-left:8px;font-size:12px}.label-inline-toggle[data-v-cc9f2dd1]{align-items:center;gap:6px;margin-left:8px;display:inline-flex}.test-result-link[data-v-cc9f2dd1]{font-size:12px}.col-help[data-v-cc9f2dd1]{margin-right:4px}.col-help-icon[data-v-cc9f2dd1]{color:#c0c4cc;cursor:help;vertical-align:-2px}.col-help-icon[data-v-cc9f2dd1]:hover{color:#909399}.models-dialog-body[data-v-7b39dd25]{flex-direction:column;height:calc(94vh - 100px);display:flex}.models-dialog-body .models-table[data-v-7b39dd25]{flex:1;min-height:0}.error-tag[data-v-7b39dd25]{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.quota-help[data-v-7bec5b3a]{background:#fff;height:70vh;overflow:hidden auto}.quota-help .help-intro[data-v-7bec5b3a]{color:#606266;margin-bottom:14px;font-size:13px;line-height:1.7}.quota-help .help-item[data-v-7bec5b3a]{margin-bottom:12px}.quota-help .help-title[data-v-7bec5b3a]{color:#303133;margin-bottom:4px;font-size:14px;font-weight:600}.quota-help .help-item p[data-v-7bec5b3a]{color:#606266;margin:0;font-size:13px;line-height:1.7}.quota-help .help-tip[data-v-7bec5b3a]{color:#909399!important;margin-top:4px!important}.quota-help .help-shot[data-v-7bec5b3a]{border:1px solid #dcdfe6;border-radius:6px;width:100%;margin:8px 0;display:block}.quota-help code[data-v-7bec5b3a]{background:#f5f7fa;border-radius:3px;padding:1px 4px;font-size:12px}.quota-help .help-table[data-v-7bec5b3a]{width:100%}.footer[data-v-7bec5b3a]{place-content:center;display:flex}.dialog-body[data-v-39c58b29]{min-height:70vh;overflow-y:auto}.muted-sm[data-v-39c58b29]{color:#909399;font-size:12px;line-height:1.6}.status-row[data-v-39c58b29]{margin-top:4px}.test-ok-text-full[data-v-39c58b29]{color:#16a34a;font-size:12px}.test-fail-text-full[data-v-39c58b29]{color:#dc2626;word-break:break-all;font-size:12px}.label-action-btn[data-v-39c58b29]{height:auto;margin-left:8px;font-size:12px}.col-help-icon[data-v-39c58b29]{color:#c0c4cc;cursor:help;vertical-align:-2px;margin-left:4px}.col-help-icon[data-v-39c58b29]:hover{color:#909399}.ghost[data-v-a49f316c]{opacity:.4}.provider-grid[data-v-a49f316c]{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (width<=992px){.provider-grid[data-v-a49f316c]{grid-template-columns:1fr}}
@@ -1,2 +1,2 @@
1
- import{$ as e,A as t,Et as n,F as r,Ft as i,Gt as a,H as o,I as s,L as c,M as l,N as u,Q as d,T as f,a as p,at as m,cn as ee,d as h,gt as g,ht as _,j as v,k as y,ot as b,pn as x,rt as S,tt as C,un as w,yt as T}from"./router-DjNMXIJT.js";import{t as E}from"./useToast-DKg4wBxA.js";import{t as D}from"./useLoadError-qYTOtUW0.js";import{t as te}from"./clipboard-CorU9X8e.js";import{c as ne,i as O}from"./format-DrbP4_cY.js";o(),T(),a();var re={class:`service-status-page`},ie={class:`flex-between`},ae={class:`flex-gap-8`},oe={class:`flex-gap-8`},se={class:`gantt-wrap`},ce={key:0,class:`gantt`},le={class:`gantt-row gantt-head`},ue={class:`col-cells`},de=[`title`],fe={class:`cell-head-date`},pe={class:`col-name`},k=[`title`,`onClick`],A=[`title`],j={class:`col-cells`},M=[`title`],N={key:1,class:`gantt-empty`},P=36e5,F=24,I=`#909399`,L=h(c({__name:`ServiceStatusView`,setup(a){let{toast:o}=E(),{loadError:c,run:h}=D(`延迟数据加载失败,请重试`),T=n([]),L=n(!0),R=n(!1),z=n(null),B=n(!1),V=n(!1),H,U,W=n(K()),G=n(new Map);function K(){let e=new Date,t=new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()).getTime();return Array.from({length:F},(e,n)=>t-(23-n)*P)}let q=e=>{let t=new Date(e);if(Number.isNaN(t.getTime()))return`-`;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:00`},me=y(()=>W.value.map(e=>{let t=new Date(e),n=e=>String(e).padStart(2,`0`),r=n(t.getHours());return{start:e,dateLabel:`${n(t.getMonth()+1)}-${n(t.getDate())}`,hourLabel:r,fullLabel:`${q(e)} - ${r}:59`}})),he=[103,194,58],J=[230,162,60],ge=[245,108,108],_e=y(()=>{let e=[];for(let t of G.value.values())for(let n of t.values())n.avgLatencyMs!==null&&e.push(n.avgLatencyMs);if(e.length===0)return{min:0,max:0};let t=e[0],n=e[0];for(let r of e)r<t&&(t=r),r>n&&(n=r);return{min:t,max:n}}),Y=e=>{let{min:t,max:n}=_e.value,r=n===t?0:(e-t)/(n-t),[i,a]=r<=.5?[he,J]:[J,ge],o=r<=.5?r*2:(r-.5)*2,s=i.map((e,t)=>Math.round(e+(a[t]-e)*o));return`rgba(${String(s[0])}, ${String(s[1])}, ${String(s[2])}, 0.9)`},X=(e,t)=>{let n=`${q(t)} - ${String(new Date(t+P).getHours()).padStart(2,`0`)}:00`;return e===void 0||e.total===0?`${n}\n无探测数据`:`${n}\n平均延迟 ${O(e.avgLatencyMs)}\n成功 ${String(e.success)} / 失败 ${String(e.failed)}`},Z=y(()=>ye.value.map(e=>{let t=G.value.get(e.model),n=W.value.map(e=>{let n=t?.get(e);return n!==void 0&&n.failed>0?{start:e,className:`cell--down`,style:{backgroundColor:I},title:X(n,e)}:n===void 0||n.avgLatencyMs===null?{start:e,className:`cell--empty`,style:{},title:X(n,e)}:{start:e,className:``,style:{backgroundColor:Y(n.avgLatencyMs)},title:X(n,e)}});return{model:e.model,avg24h:e.avg24h,statusTitle:[e.avg24h===null?`最近 24 小时无成功探测记录`:`最近 24 小时成功探测平均延迟 ${O(e.avg24h)}`,e.lastLatencyMs==null?`最近一次探测:无成功延迟记录`:`最近一次探测延迟 ${O(e.lastLatencyMs)}`].join(`
1
+ import{$ as e,A as t,Et as n,F as r,Ft as i,Gt as a,H as o,I as s,L as c,M as l,N as u,Q as d,T as f,a as p,at as m,cn as ee,d as h,gt as g,ht as _,j as v,k as y,ot as b,pn as x,rt as S,tt as C,un as w,yt as T}from"./router-BqkHX02I.js";import{t as E}from"./useToast-DJwG-33L.js";import{t as D}from"./useLoadError-Yu7YH4ZH.js";import{t as te}from"./clipboard-CorU9X8e.js";import{c as ne,i as O}from"./format-DrbP4_cY.js";o(),T(),a();var re={class:`service-status-page`},ie={class:`flex-between`},ae={class:`flex-gap-8`},oe={class:`flex-gap-8`},se={class:`gantt-wrap`},ce={key:0,class:`gantt`},le={class:`gantt-row gantt-head`},ue={class:`col-cells`},de=[`title`],fe={class:`cell-head-date`},pe={class:`col-name`},k=[`title`,`onClick`],A=[`title`],j={class:`col-cells`},M=[`title`],N={key:1,class:`gantt-empty`},P=36e5,F=24,I=`#909399`,L=h(c({__name:`ServiceStatusView`,setup(a){let{toast:o}=E(),{loadError:c,run:h}=D(`延迟数据加载失败,请重试`),T=n([]),L=n(!0),R=n(!1),z=n(null),B=n(!1),V=n(!1),H,U,W=n(K()),G=n(new Map);function K(){let e=new Date,t=new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()).getTime();return Array.from({length:F},(e,n)=>t-(23-n)*P)}let q=e=>{let t=new Date(e);if(Number.isNaN(t.getTime()))return`-`;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:00`},me=y(()=>W.value.map(e=>{let t=new Date(e),n=e=>String(e).padStart(2,`0`),r=n(t.getHours());return{start:e,dateLabel:`${n(t.getMonth()+1)}-${n(t.getDate())}`,hourLabel:r,fullLabel:`${q(e)} - ${r}:59`}})),he=[103,194,58],J=[230,162,60],ge=[245,108,108],_e=y(()=>{let e=[];for(let t of G.value.values())for(let n of t.values())n.avgLatencyMs!==null&&e.push(n.avgLatencyMs);if(e.length===0)return{min:0,max:0};let t=e[0],n=e[0];for(let r of e)r<t&&(t=r),r>n&&(n=r);return{min:t,max:n}}),Y=e=>{let{min:t,max:n}=_e.value,r=n===t?0:(e-t)/(n-t),[i,a]=r<=.5?[he,J]:[J,ge],o=r<=.5?r*2:(r-.5)*2,s=i.map((e,t)=>Math.round(e+(a[t]-e)*o));return`rgba(${String(s[0])}, ${String(s[1])}, ${String(s[2])}, 0.9)`},X=(e,t)=>{let n=`${q(t)} - ${String(new Date(t+P).getHours()).padStart(2,`0`)}:00`;return e===void 0||e.total===0?`${n}\n无探测数据`:`${n}\n平均延迟 ${O(e.avgLatencyMs)}\n成功 ${String(e.success)} / 失败 ${String(e.failed)}`},Z=y(()=>ye.value.map(e=>{let t=G.value.get(e.model),n=W.value.map(e=>{let n=t?.get(e);return n!==void 0&&n.failed>0?{start:e,className:`cell--down`,style:{backgroundColor:I},title:X(n,e)}:n===void 0||n.avgLatencyMs===null?{start:e,className:`cell--empty`,style:{},title:X(n,e)}:{start:e,className:``,style:{backgroundColor:Y(n.avgLatencyMs)},title:X(n,e)}});return{model:e.model,avg24h:e.avg24h,statusTitle:[e.avg24h===null?`最近 24 小时无成功探测记录`:`最近 24 小时成功探测平均延迟 ${O(e.avg24h)}`,e.lastLatencyMs==null?`最近一次探测:无成功延迟记录`:`最近一次探测延迟 ${O(e.lastLatencyMs)}`].join(`
2
2
  `),cells:n}})),ve=(e,t)=>e===null&&t===null?0:e===null?1:t===null?-1:e-t,ye=y(()=>[...T.value].sort((e,t)=>{let n=e.lastOk===!1;if(n!==(t.lastOk===!1))return n?1:-1;let r=ve(e.avg24h,t.avg24h);return r===0?e.model.localeCompare(t.model):r})),Q=async e=>{if(e.length===0){G.value=new Map;return}let t=await Promise.all(e.map(async e=>{try{let t=await p.get(`/api/latency/trend?model=${encodeURIComponent(e)}&granularity=hour`);return[e,new Map((t.buckets??[]).map(e=>[e.bucketStart,e]))]}catch{return[e,new Map]}}));G.value=new Map(t)},$=()=>h(async()=>{try{let e=await p.get(`/api/latency/history`);T.value=e.models??[],R.value=e.running,z.value=e.lastRunAt,W.value=K(),await Q(T.value.map(e=>e.model))}finally{L.value=!1}}),be=()=>$(),xe=()=>{V.value?H=window.setInterval(()=>void $(),5e3):H!==void 0&&(window.clearInterval(H),H=void 0)},Se=async()=>{B.value=!0;try{await p.post(`/api/latency/run`)}catch(e){o(e.message,`error`),B.value=!1;return}U=window.setInterval(async()=>{try{let e=await p.get(`/api/latency/history`);T.value=e.models??[],R.value=e.running,z.value=e.lastRunAt,e.running||(window.clearInterval(U),U=void 0,B.value=!1,W.value=K(),await Q(T.value.map(e=>e.model)))}catch{}},2e3)},Ce=async e=>{await te(e)?o(`已复制到剪贴板`,`success`):o(`复制失败`,`error`)};return d(()=>{$()}),e(()=>{H!==void 0&&window.clearInterval(H),U!==void 0&&window.clearInterval(U)}),(e,n)=>{let a=m(`el-button`),o=m(`el-alert`),d=m(`el-tag`),p=m(`el-checkbox`),h=m(`el-card`),y=b(`loading`);return C(),u(`div`,re,[i(c)?(C(),v(o,{key:0,title:i(c),type:`error`,"show-icon":``,closable:!1,class:`mb-16`},{default:_(()=>[s(a,{size:`small`,onClick:be},{default:_(()=>[...n[1]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`title`])):l(``,!0),s(h,{shadow:`never`,class:`main-card`},{header:_(()=>[t(`div`,ie,[t(`div`,ae,[n[3]||=t(`span`,{class:`fw-600`},`服务状态`,-1),R.value?(C(),v(d,{key:0,type:`warning`,size:`small`},{default:_(()=>[...n[2]||=[r(`测试进行中`,-1)]]),_:1})):z.value?(C(),v(d,{key:1,type:`info`,size:`small`},{default:_(()=>[r(` 上次测试 `+x(i(ne)(z.value)),1)]),_:1})):l(``,!0)]),t(`div`,oe,[s(p,{modelValue:V.value,"onUpdate:modelValue":n[0]||=e=>V.value=e,onChange:xe},{default:_(()=>[...n[4]||=[r(` 自动刷新(5s) `,-1)]]),_:1},8,[`modelValue`]),s(a,{loading:B.value,onClick:Se},{default:_(()=>[...n[5]||=[r(` 延迟测试 `,-1)]]),_:1},8,[`loading`])])])]),default:_(()=>[n[9]||=t(`div`,{class:`legend`},[t(`span`,{class:`legend-text`},`延迟`),t(`span`,{class:`legend-text`},`低`),t(`span`,{class:`legend-gradient`}),t(`span`,{class:`legend-text`},`高`),t(`span`,{class:`legend-swatch legend-swatch--down`}),t(`span`,{class:`legend-text`},`该小时有失败探测`),t(`span`,{class:`legend-swatch legend-swatch--empty`}),t(`span`,{class:`legend-text`},`无探测数据`)],-1),g((C(),u(`div`,se,[n[8]||=t(`div`,{class:`muted-sm hint`},` 右侧 24 格为最近 24 小时(每格 1 小时,本地整点对齐,最右格为当前小时)。 格子底色为当小时成功探测的平均延迟,全表统一色标(本期最快→最慢 绿→红); 当小时存在失败探测即视为不可用,显示灰色。 行按 24h 平均延迟升序,最近一次探测失败的模型沉底。 `,-1),Z.value.length>0?(C(),u(`div`,ce,[t(`div`,le,[n[6]||=t(`div`,{class:`col-name`},`模型名称`,-1),n[7]||=t(`div`,{class:`col-status`},`状态`,-1),t(`div`,ue,[(C(!0),u(f,null,S(me.value,e=>(C(),u(`div`,{key:e.start,class:`cell cell--head`,title:e.fullLabel},[t(`span`,fe,x(e.dateLabel),1),t(`span`,null,x(e.hourLabel),1)],8,de))),128))])]),(C(!0),u(f,null,S(Z.value,e=>(C(),u(`div`,{key:e.model,class:`gantt-row`},[t(`div`,pe,[t(`span`,{class:`copy-text model-name`,title:e.model,onClick:t=>Ce(e.model)},x(e.model),9,k)]),t(`div`,{class:`col-status`,title:e.statusTitle},x(i(O)(e.avg24h)),9,A),t(`div`,j,[(C(!0),u(f,null,S(e.cells,e=>(C(),u(`div`,{key:e.start,class:ee([`cell`,e.className]),style:w(e.style),title:e.title},null,14,M))),128))])]))),128))])):(C(),u(`div`,N,`暂无延迟数据,点击「延迟测试」开始`))])),[[y,L.value]])]),_:1})])}}}),[[`__scopeId`,`data-v-0be6fcd8`]]);export{L as default};
@@ -1 +1 @@
1
- import{$ as e,A as t,Et as n,F as r,Ft as i,Gt as a,H as o,I as s,L as c,M as l,N as u,Q as d,T as f,a as p,at as m,d as h,gt as g,ht as _,j as v,k as y,n as b,ot as x,pn as S,rt as C,tt as w,yt as T}from"./router-DjNMXIJT.js";import{t as E}from"./index-DRdS47Vm.js";import{n as D,t as O}from"./useManagerApi-COiXXii9.js";import{t as k}from"./config-C6eC0CWg.js";import{t as A}from"./useToast-DKg4wBxA.js";import{t as j}from"./useLoadError-qYTOtUW0.js";import{t as M}from"./clipboard-CorU9X8e.js";import{n as N,t as P}from"./version-quqH5oMc.js";o(),a(),T();var F={class:`flex-between`},I={class:`muted-sm mb-8`},L={class:`switch-row`},R={class:`switch-info`},z={class:`switch-title`},B={class:`switch-row`},V={class:`switch-info`},H={class:`switch-title`},U={class:`switch-row`},W={class:`switch-info`},G={class:`switch-title`},K=h(c({__name:`HarnessSwitches`,setup(e){let{toast:i}=A(),a=n(!0),o=n(!1),c=n(null),p=n(null),h=n(null),y=n(null),b=n(`success`),C=async e=>{e||(c.value?o.value=!0:a.value=!0);try{c.value=await O.harness(),p.value=null}catch(t){e||(p.value=t.message)}finally{e||(a.value=!1,o.value=!1)}};d(()=>C(!1));let T={claudeCode:{label:`Claude Code`,file:`~/.claude/settings.json`,toggle:O.setClaudeCode},codex:{label:`Codex CLI`,file:`~/.codex/config.toml`,toggle:O.setCodex},dsh:{label:`DeepSeek Harness`,file:`~/.dsh/settings.yaml`,toggle:O.setDsh}},D=async(e,t)=>{if(!c.value||h.value)return;let n=T[e],r=t?`确定开启 ${n.label} 代理?将改写 ${n.file}(开启前自动备份,关闭时从备份还原)。`:`确定关闭 ${n.label} 代理?将从备份还原 ${n.file}(无备份时移除代理相关配置)。`;try{await E.confirm(r,t?`开启确认`:`关闭确认`,{confirmButtonText:t?`开启`:`关闭`,cancelButtonText:`取消`,type:`warning`})}catch{return}h.value=e;try{let e=await n.toggle(t);y.value=e.note??null,b.value=t?`success`:`info`,i(t?`已开启代理`:`已关闭代理`,`success`)}catch(e){i(e.message||`操作失败`,`error`)}finally{h.value=null,await C(!0)}};return(e,n)=>{let i=m(`el-button`),d=m(`el-alert`),T=m(`el-tag`),E=m(`el-switch`),O=m(`el-divider`),k=m(`el-empty`),A=m(`el-card`),j=x(`loading`);return g((w(),v(A,{shadow:`never`},{header:_(()=>[t(`div`,F,[n[7]||=t(`span`,{class:`fw-600`},`代理开关`,-1),s(i,{loading:o.value,onClick:n[0]||=e=>C(!1)},{default:_(()=>[...n[6]||=[r(`刷新`,-1)]]),_:1},8,[`loading`])])]),default:_(()=>[c.value?(w(),u(f,{key:0},[t(`div`,I,` 将本机 CLI 工具的流量一键指向本机网关(`+S(c.value.gatewayBase)+`)。 开启前自动备份原配置为 *.ellm-bak(保留最早的原始备份),关闭时从备份还原。 `,1),y.value?(w(),v(d,{key:0,title:y.value,type:b.value,"show-icon":``,class:`mb-8`,onClose:n[1]||=e=>y.value=null},null,8,[`title`,`type`])):l(``,!0),t(`div`,L,[t(`div`,R,[t(`div`,z,[n[8]||=r(` Claude Code `,-1),s(T,{type:c.value.claudeCode?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(c.value.claudeCode?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[9]||=t(`div`,{class:`switch-desc`},[r(` 写入 `),t(`code`,null,`~/.claude/settings.json`),r(` 的 env.ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN, 鉴权取网关配置的 masterKey(未设置将开启失败);其余字段原样保留,重启 Claude Code 会话后生效。 `)],-1)]),s(E,{"model-value":c.value.claudeCode,loading:h.value===`claudeCode`,onChange:n[2]||=e=>D(`claudeCode`,!!e)},null,8,[`model-value`,`loading`])]),s(O,{class:`switch-divider`}),t(`div`,B,[t(`div`,V,[t(`div`,H,[n[10]||=r(` Codex CLI `,-1),s(T,{type:c.value.codex?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(c.value.codex?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[11]||=t(`div`,{class:`switch-desc`},[r(` 写入 `),t(`code`,null,`~/.codex/config.toml`),r(` 的 model_provider 与 [model_providers.ellm-proxy] 段 (保留用户注释与排版);开启后需按提示设置环境变量 ELLM_PROXY_API_KEY 供 Codex 鉴权。 `)],-1)]),s(E,{"model-value":c.value.codex,loading:h.value===`codex`,onChange:n[3]||=e=>D(`codex`,!!e)},null,8,[`model-value`,`loading`])]),s(O,{class:`switch-divider`}),t(`div`,U,[t(`div`,W,[t(`div`,G,[n[12]||=r(` DeepSeek Harness `,-1),s(T,{type:c.value.dsh?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(c.value.dsh?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[13]||=t(`div`,{class:`switch-desc`},[r(` 写入 `),t(`code`,null,`~/.dsh/settings.yaml`),r(` 的 llm-deepseek.baseURL 与 `),t(`code`,null,`~/.dsh/.credentials.yaml`),r(` 的 DEEPSEEK_API_KEY(取网关 masterKey,未设置则写占位值);模型请在 dsh 内选择与网关部署名一致的模型。 dsh 为 developer preview,配置格式可能随版本变化。 `)],-1)]),s(E,{"model-value":c.value.dsh,loading:h.value===`dsh`,onChange:n[4]||=e=>D(`dsh`,!!e)},null,8,[`model-value`,`loading`])])],64)):(w(),v(k,{key:1,description:p.value||`暂无开关状态`},{default:_(()=>[s(i,{type:`primary`,onClick:n[5]||=e=>C(!1)},{default:_(()=>[...n[14]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`description`]))]),_:1})),[[j,a.value]])}}}),[[`__scopeId`,`data-v-5084d579`]]);o(),a(),T();var q={class:`service-settings`},J={class:`flex-between`},Y={key:0,class:`switch-row`},X={class:`switch-info`},Z={class:`switch-title`},Q={key:0,class:`switch-row`},ee={class:`switch-info`},te={class:`switch-title`},ne={class:`switch-desc`},re={key:0,class:`version-block`},ie={class:`version-row`},ae={class:`muted-sm`},oe={key:0,class:`muted-sm`},se={key:1,class:`muted-sm`},ce={class:`muted-sm`},le={class:`version-actions`},$=h(c({__name:`ServiceUpdateSettings`,setup(i){let{toast:a}=A(),o=n(!0),c=n(!1),p=n(null),h=n(null),b=n(null),C=n(null),T=n(null),k=n(!1),j=n(!1),M=n(null),F=null;e(()=>F?.abort());let I=async e=>{if(!e){if(c.value)return;c.value=!0}try{let[e,t]=await Promise.allSettled([O.autostart(),O.update()]);p.value=e.status===`fulfilled`?e.value:null,h.value=e.status===`rejected`?e.reason?.message:null,b.value=t.status===`fulfilled`?t.value:null,C.value=t.status===`rejected`?t.reason?.message:null}finally{o.value=!1,c.value=!1}};d(()=>I(!1));let L=y(()=>b.value?.lastCheck?.currentVersion??null),R=y(()=>P(L.value)),z=y(()=>b.value?.lastCheck?.latestVersion??null),B=y(()=>b.value?.lastCheck?.hasUpdate===!0),V=y(()=>{let e=b.value?.lastCheck?.checkedAt;return e?new Date(e).toLocaleString():null}),H=y(()=>{let e=b.value?.lastApply;if(!e)return null;let t=e.appliedAt?new Date(e.appliedAt).toLocaleString():``;return`${e.fromVersion} → ${e.toVersion}${t?`(${t})`:``}`}),U=e=>e?new Date(e).toLocaleString():``,W=async e=>{if(!p.value||T.value)return;let t=e?`确定开启开机自启?将注册登录触发的自启项(登录时自动恢复服务)。`:`确定关闭开机自启?将移除自启项,且此后首次启动不再自动注册。`;try{await E.confirm(t,e?`开启确认`:`关闭确认`,{confirmButtonText:e?`开启`:`关闭`,cancelButtonText:`取消`,type:`warning`})}catch{return}T.value=`autostart`;try{let t=await O.setAutostart(e);t.note?a(t.note,`success`):a(e?`开机自启已开启`:`开机自启已关闭`,`success`)}catch(e){a(e.message||`操作失败`,`error`)}finally{T.value=null,await I(!0)}},G=async e=>{if(!b.value||T.value)return;let t=e?`确定开启自动更新?将每小时检查 npm 源,发现新版本自动安装并重启服务。`:`确定关闭自动更新?不再自动检查(手动检查更新不受影响)。`;try{await E.confirm(t,e?`开启确认`:`关闭确认`,{confirmButtonText:e?`开启`:`关闭`,cancelButtonText:`取消`,type:`warning`})}catch{return}T.value=`updateEnabled`;try{let t=await O.setUpdateEnabled(e);t.note&&a(t.note,`success`)}catch(e){a(e.message||`操作失败`,`error`)}finally{T.value=null,await I(!0)}},K=async()=>{k.value=!0;try{let e=await O.checkUpdate();M.value=e.hasUpdate?`发现新版本 ${e.latestVersion}(当前 ${e.currentVersion}):点击「立即更新」即可安装(服务自动重启,期间管理台短暂不可访问)`:`已是最新版本 ${e.currentVersion}(检查于 ${U(e.checkedAt)})`,await I(!0)}catch(e){a(e.message||`检查更新失败`,`error`)}finally{k.value=!1}},$=async()=>{try{await E.confirm(`确定更新到 ${z.value}?服务会自动重启并在启动时安装新版本:重启期间管理台短暂不可访问(预计 1~3 分钟),更新完成后自动恢复。`,`更新确认`,{confirmButtonText:`立即更新`,cancelButtonText:`取消`,type:`warning`})}catch{return}j.value=!0;let e=new AbortController;F=e;try{let t=await O.update(),n=await O.applyUpdate();if(!n.updated){M.value=`已是最新版本 ${n.toVersion}`;return}M.value=`正在重启服务并安装 ${n.toVersion}(预计 1~3 分钟):重启期间管理台短暂不可访问,完成后这里会自动显示结果。`;let r=await D({targetVersion:n.toVersion,sinceAppliedAt:t.lastApply?.appliedAt??null,signal:e.signal});if(e.signal.aborted)return;r&&!r.error?(a(`已更新到 ${r.toVersion}`,`success`),M.value=`已更新 ${r.fromVersion} → ${r.toVersion},服务已在新版本上运行。`):r?.error?(a(`更新失败:${r.error}`,`error`),M.value=N(r.error)):M.value=`更新仍在进行(安装耗时较长):稍后刷新页面查看最新状态。`}catch(e){a(e.message||`更新失败`,`error`)}finally{j.value=!1,F===e&&(F=null),e.signal.aborted||await I(!0)}};return(e,n)=>{let i=m(`el-button`),a=m(`el-tag`),d=m(`el-switch`),y=m(`el-empty`),E=m(`el-card`),D=m(`el-link`),O=m(`el-alert`),A=x(`loading`);return g((w(),u(`div`,q,[s(E,{shadow:`never`,class:`mb-16`},{header:_(()=>[t(`div`,J,[n[7]||=t(`span`,{class:`fw-600`},`开机自启`,-1),s(i,{loading:c.value,onClick:n[0]||=e=>I(!1)},{default:_(()=>[...n[6]||=[r(`刷新`,-1)]]),_:1},8,[`loading`])])]),default:_(()=>[p.value?(w(),u(`div`,Y,[t(`div`,X,[t(`div`,Z,[n[8]||=r(` 登录时自动启动服务 `,-1),s(a,{type:p.value.enabled?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(p.value.enabled?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[9]||=t(`div`,{class:`switch-desc`},[r(` 登录操作系统时自动启动服务(无需管理员权限)。 关闭后首次启动 `),t(`code`,null,`ezllm`),r(` 也不会再自动注册,重新开启即可解除。 `)],-1)]),s(d,{"model-value":p.value.enabled,loading:T.value===`autostart`,onChange:n[1]||=e=>W(!!e)},null,8,[`model-value`,`loading`])])):(w(),v(y,{key:1,description:h.value||`暂无自启状态`},{default:_(()=>[s(i,{type:`primary`,onClick:n[2]||=e=>I(!1)},{default:_(()=>[...n[10]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`description`]))]),_:1}),s(E,{shadow:`never`,class:`mb-16`},{header:_(()=>[...n[11]||=[t(`div`,{class:`flex-between`},[t(`span`,{class:`fw-600`},`自动更新`)],-1)]]),default:_(()=>[b.value?(w(),u(`div`,Q,[t(`div`,ee,[t(`div`,te,[n[12]||=r(` 自动检查并安装新版本 `,-1),s(a,{type:b.value.enabled?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(b.value.enabled?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),t(`div`,ne,[b.value.supported?(w(),u(f,{key:1},[r(` 每小时检查 npm 源,发现新版本自动重启服务并在启动时安装(更新期间服务短暂中断); 关闭后仍可在下方手动检查与更新。 `)],64)):(w(),u(f,{key:0},[r(` 当前为源码运行模式,更新功能不可用(仅 npm 全局安装的包支持自动更新)。 `)],64))])]),b.value.supported?(w(),v(d,{key:0,"model-value":b.value.enabled,loading:T.value===`updateEnabled`,onChange:n[3]||=e=>G(!!e)},null,8,[`model-value`,`loading`])):l(``,!0)])):(w(),v(y,{key:1,description:C.value||`暂无更新状态`},{default:_(()=>[s(i,{type:`primary`,onClick:n[4]||=e=>I(!1)},{default:_(()=>[...n[13]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`description`]))]),_:1}),s(E,{shadow:`never`},{header:_(()=>[...n[14]||=[t(`div`,{class:`flex-between`},[t(`span`,{class:`fw-600`},`版本信息`)],-1)]]),default:_(()=>[b.value?(w(),u(`div`,re,[t(`div`,ie,[n[18]||=t(`span`,{class:`version-label`},`当前版本`,-1),s(a,{size:`small`},{default:_(()=>[r(S(L.value||`未知`),1)]),_:1}),R.value?(w(),v(a,{key:0,type:`warning`,size:`small`,"disable-transitions":``},{default:_(()=>[...n[15]||=[r(`本地构建`,-1)]]),_:1})):l(``,!0),z.value?(w(),u(f,{key:1},[n[17]||=t(`span`,{class:`version-label`},`最新版本`,-1),s(a,{type:B.value?`warning`:`success`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(z.value),1)]),_:1},8,[`type`]),B.value?(w(),v(a,{key:0,type:`warning`,size:`small`,"disable-transitions":``},{default:_(()=>[...n[16]||=[r(`发现新版本`,-1)]]),_:1})):l(``,!0)],64)):l(``,!0)]),t(`div`,ae,[r(` 上次检查:`+S(V.value||`尚未检查`)+` `,1),b.value.updating?(w(),u(f,{key:0},[r(` · 更新执行中...`)],64)):l(``,!0)]),b.value.supported?l(``,!0):(w(),u(`div`,oe,` 源码运行模式:手动检查与更新不可用。 `)),H.value?(w(),u(`div`,se,` 上次更新:`+S(H.value),1)):l(``,!0),t(`div`,ce,[n[20]||=r(` npm 包主页:`,-1),s(D,{type:`primary`,href:`https://www.npmjs.com/package/ezllm`,target:`_blank`},{default:_(()=>[...n[19]||=[r(`npmjs.com/package/ezllm`,-1)]]),_:1})]),t(`div`,le,[s(i,{loading:k.value,disabled:!b.value.supported||b.value.updating,onClick:K},{default:_(()=>[r(S(k.value?`检查中...`:`检查更新`),1)]),_:1},8,[`loading`,`disabled`]),B.value&&b.value.supported?(w(),v(i,{key:0,type:`primary`,loading:j.value,disabled:b.value.updating,onClick:$},{default:_(()=>[r(S(j.value?`更新中...`:`立即更新到 ${z.value}`),1)]),_:1},8,[`loading`,`disabled`])):l(``,!0)]),M.value?(w(),v(O,{key:2,title:M.value,type:`info`,"show-icon":``,class:`mt-8`,onClose:n[5]||=e=>M.value=null},null,8,[`title`])):l(``,!0)])):(w(),v(y,{key:1,description:`更新状态不可用`}))]),_:1})])),[[A,o.value]])}}}),[[`__scopeId`,`data-v-d51cfdf5`]]);o(),T(),a();var ue={class:`flex-col-gap`},de={class:`flex-between`},fe={class:`muted-sm`},pe={class:`login-row`},me={class:`muted-sm`},he={class:`flex-between`},ge={class:`monitor-row`},_e={class:`save-bar`},ve=h(c({__name:`SettingsView`,setup(e){let{toast:a}=A(),o=k(),c=n(`basic`),h=n(!0),T=n(!1),E=n(``),D=async()=>{E.value&&(await M(E.value)?a(`已复制到剪贴板`,`success`):a(`复制失败`,`error`))},O=n(29770),N=n(null),P=n(!0),F=n(null),I=n(null),L=n(``),R=n(``),z=y(()=>E.value.trim()!==``||L.value!==``&&R.value!==``),B=n(!1),V=n(60),H=[{label:`10分钟`,value:10},{label:`30分钟`,value:30},{label:`1小时`,value:60},{label:`2小时`,value:120},{label:`5小时`,value:300},{label:`8小时`,value:480},{label:`12小时`,value:720},{label:`24小时`,value:1440}],{loadError:U,run:W}=j(`设置加载失败,请重试`),G=()=>W(async()=>{try{await o.load(),E.value=o.config.masterKey||``,O.value=o.config.port??29770;let e=o.config[`web-ui`]?.[`login-account`];L.value=e?.username||``,R.value=e?.password||``,P.value=o.config.allowLan!==!1;let t=o.config.latencyTest;B.value=t?.enabled===!0,V.value=t?.intervalMinutes??60;try{let e=await p.get(`/api/status`);N.value=e.listenPort,F.value=e.listenHost??null,I.value=e.listenSource??null}catch{N.value=null,F.value=null,I.value=null}}finally{h.value=!1}}),q=async()=>{if(L.value.trim()!==``||R.value!==``){if(L.value.trim()===``||R.value===``){a(`用户名和密码需同时填写`,`error`);return}if(R.value.length<6){a(`密码至少 6 位`,`error`);return}}T.value=!0;let e=B.value&&o.config.latencyTest?.enabled!==!0;try{let t=await o.update(e=>{e.masterKey=E.value.trim(),e.port=O.value,e.allowLan=P.value,e.latencyTest={enabled:B.value,intervalMinutes:V.value},e[`web-ui`]??={},e[`web-ui`][`login-account`]??={},e[`web-ui`][`login-account`].username=L.value.trim(),e[`web-ui`][`login-account`].password=R.value});await b(!0),a(`设置已保存并生效`,`success`),e&&a(`已开启自动测试:服务将定期直连所有上游发送探测请求,有少量 token 消耗`,`warning`),t.restartHint&&a(t.restartHint,`warning`)}catch(e){a(e.message,`error`)}finally{T.value=!1}};return d(G),(e,n)=>{let a=m(`el-button`),o=m(`el-alert`),d=m(`el-tag`),p=m(`el-input`),y=m(`el-form-item`),b=m(`el-input-number`),k=m(`el-form`),A=m(`el-card`),j=m(`el-switch`),M=m(`el-divider`),W=m(`el-option`),J=m(`el-select`),Y=m(`el-tab-pane`),X=m(`el-tabs`),Z=x(`loading`);return w(),v(X,{modelValue:c.value,"onUpdate:modelValue":n[7]||=e=>c.value=e,class:`settings-tabs`},{default:_(()=>[s(Y,{label:`基本设置`,name:`basic`},{default:_(()=>[g((w(),u(`div`,ue,[i(U)?(w(),v(o,{key:0,title:i(U),type:`error`,"show-icon":``,closable:!1},{default:_(()=>[s(a,{size:`small`,onClick:G},{default:_(()=>[...n[8]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`title`])):l(``,!0),s(A,{shadow:`never`},{header:_(()=>[t(`div`,de,[n[10]||=t(`span`,{class:`fw-600`},`网关访问`,-1),s(d,{type:`success`},{default:_(()=>[...n[9]||=[r(`运行中`,-1)]]),_:1})])]),default:_(()=>[s(k,{"label-position":`top`},{default:_(()=>[s(y,{label:`API 密钥 (masterKey)`},{default:_(()=>[s(p,{modelValue:E.value,"onUpdate:modelValue":n[0]||=e=>E.value=e,placeholder:`sk-1234`,clearable:``},{append:_(()=>[s(a,{onClick:D},{default:_(()=>[...n[11]||=[r(`复制`,-1)]]),_:1})]),_:1},8,[`modelValue`]),n[12]||=t(`div`,{class:`muted-sm`},` 客户端请求 /v1/* 时的认证密钥(Bearer <masterKey>;留空 = 本地放行) `,-1)]),_:1}),s(y,{label:`监听端口 (port)`},{default:_(()=>[s(b,{modelValue:O.value,"onUpdate:modelValue":n[1]||=e=>O.value=e,min:1,max:65535,step:1,style:{width:`220px`}},null,8,[`modelValue`]),t(`div`,fe,[n[14]||=r(` 网关与管理台 API 的监听端口,保存后重启生效 `,-1),N.value===null?l(``,!0):(w(),u(f,{key:0},[n[13]||=r(` ;服务上报的端口 `,-1),t(`b`,null,S(N.value),1),I.value===`env`?(w(),u(f,{key:0},[r(`(监听配置由环境变量覆盖,此配置值不生效)`)],64)):l(``,!0)],64))])]),_:1})]),_:1})]),_:1}),s(A,{shadow:`never`},{header:_(()=>[...n[15]||=[t(`span`,{class:`fw-600`},`安全与登录`,-1)]]),default:_(()=>[s(k,{"label-position":`top`},{default:_(()=>[s(y,{label:`管理台登录账号`},{default:_(()=>[t(`div`,pe,[s(p,{modelValue:L.value,"onUpdate:modelValue":n[2]||=e=>L.value=e,placeholder:`用户名`,style:{width:`200px`}},null,8,[`modelValue`]),s(p,{modelValue:R.value,"onUpdate:modelValue":n[3]||=e=>R.value=e,type:`password`,placeholder:`密码(至少 6 位)`,"show-password":``,style:{width:`200px`}},null,8,[`modelValue`])]),n[16]||=t(`div`,{class:`muted-sm`},` 管理台登录凭证;留空 = 免登录直接访问(仅本机使用时推荐)。 修改后立即生效,需用新账号重新登录 `,-1)]),_:1}),s(y,{label:`允许局域网访问 (allowLan)`},{default:_(()=>[s(j,{modelValue:P.value,"onUpdate:modelValue":n[4]||=e=>P.value=e},null,8,[`modelValue`]),t(`div`,me,[n[19]||=r(` 开启 = 绑定全部网卡,局域网内设备可访问;关闭 = 仅本机 127.0.0.1。保存后需重启生效 `,-1),I.value===`env`?(w(),u(f,{key:0},[n[17]||=r(` ;当前实际监听 `,-1),t(`b`,null,S(F.value),1),n[18]||=r(`(由 HOST 环境变量覆盖,此开关不生效) `,-1)],64)):z.value?l(``,!0):(w(),u(f,{key:1},[r(` ;未设置任何凭据(密钥与登录账号皆无)时始终仅绑本机 `)],64))])]),_:1})]),_:1})]),_:1}),s(A,{shadow:`never`},{header:_(()=>[t(`div`,he,[n[20]||=t(`span`,{class:`fw-600`},`模型服务监控`,-1),s(d,{type:B.value?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(B.value?`已开启`:`未开启`),1)]),_:1},8,[`type`])])]),default:_(()=>[t(`div`,ge,[n[21]||=t(`div`,{class:`monitor-info`},[t(`div`,{class:`monitor-title`},`自动测试模型服务状态`),t(`div`,{class:`muted-sm`},` 按设定间隔自动直连所有上游模型发送极小探测请求(max_tokens: 1,有少量 token 消耗); 测试结果展示在「服务状态」页面 `)],-1),s(j,{modelValue:B.value,"onUpdate:modelValue":n[5]||=e=>B.value=e},null,8,[`modelValue`])]),B.value?(w(),u(f,{key:0},[s(M,{style:{margin:`12px 0`}}),s(k,{"label-position":`top`},{default:_(()=>[s(y,{label:`测试间隔`,style:{"margin-bottom":`0`}},{default:_(()=>[s(J,{modelValue:V.value,"onUpdate:modelValue":n[6]||=e=>V.value=e,style:{width:`220px`}},{default:_(()=>[(w(),u(f,null,C(H,e=>s(W,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),n[22]||=t(`div`,{class:`muted-sm`},` 自动测试的执行间隔,保存后即时生效(无需重启) `,-1)]),_:1})]),_:1})],64)):l(``,!0)]),_:1}),t(`div`,_e,[s(a,{type:`primary`,size:`large`,loading:T.value,disabled:T.value||i(U)!==null,onClick:q},{default:_(()=>[r(S(T.value?`保存中...`:`保存设置`),1)]),_:1},8,[`loading`,`disabled`])])])),[[Z,h.value]])]),_:1}),s(Y,{label:`代理开关`,name:`harness`,lazy:``},{default:_(()=>[s(K)]),_:1}),s(Y,{label:`服务与更新`,name:`service`,lazy:``},{default:_(()=>[s($)]),_:1})]),_:1},8,[`modelValue`])}}}),[[`__scopeId`,`data-v-e1ea3ddd`]]);export{ve as default};
1
+ import{$ as e,A as t,Et as n,F as r,Ft as i,Gt as a,H as o,I as s,L as c,M as l,N as u,Q as d,T as f,a as p,at as m,d as h,gt as g,ht as _,j as v,k as y,n as b,ot as x,pn as S,rt as C,tt as w,yt as T}from"./router-BqkHX02I.js";import{t as E}from"./index-C6wv4UB9.js";import{n as D,t as O}from"./useManagerApi-fVrRDZkc.js";import{t as k}from"./config-Dbms19Et.js";import{t as A}from"./useToast-DJwG-33L.js";import{t as j}from"./useLoadError-Yu7YH4ZH.js";import{t as M}from"./clipboard-CorU9X8e.js";import{n as N,t as P}from"./version-quqH5oMc.js";o(),a(),T();var F={class:`flex-between`},I={class:`muted-sm mb-8`},L={class:`switch-row`},R={class:`switch-info`},z={class:`switch-title`},B={class:`switch-row`},V={class:`switch-info`},H={class:`switch-title`},U={class:`switch-row`},W={class:`switch-info`},G={class:`switch-title`},K=h(c({__name:`HarnessSwitches`,setup(e){let{toast:i}=A(),a=n(!0),o=n(!1),c=n(null),p=n(null),h=n(null),y=n(null),b=n(`success`),C=async e=>{e||(c.value?o.value=!0:a.value=!0);try{c.value=await O.harness(),p.value=null}catch(t){e||(p.value=t.message)}finally{e||(a.value=!1,o.value=!1)}};d(()=>C(!1));let T={claudeCode:{label:`Claude Code`,file:`~/.claude/settings.json`,toggle:O.setClaudeCode},codex:{label:`Codex CLI`,file:`~/.codex/config.toml`,toggle:O.setCodex},dsh:{label:`DeepSeek Harness`,file:`~/.dsh/settings.yaml`,toggle:O.setDsh}},D=async(e,t)=>{if(!c.value||h.value)return;let n=T[e],r=t?`确定开启 ${n.label} 代理?将改写 ${n.file}(开启前自动备份,关闭时从备份还原)。`:`确定关闭 ${n.label} 代理?将从备份还原 ${n.file}(无备份时移除代理相关配置)。`;try{await E.confirm(r,t?`开启确认`:`关闭确认`,{confirmButtonText:t?`开启`:`关闭`,cancelButtonText:`取消`,type:`warning`})}catch{return}h.value=e;try{let e=await n.toggle(t);y.value=e.note??null,b.value=t?`success`:`info`,i(t?`已开启代理`:`已关闭代理`,`success`)}catch(e){i(e.message||`操作失败`,`error`)}finally{h.value=null,await C(!0)}};return(e,n)=>{let i=m(`el-button`),d=m(`el-alert`),T=m(`el-tag`),E=m(`el-switch`),O=m(`el-divider`),k=m(`el-empty`),A=m(`el-card`),j=x(`loading`);return g((w(),v(A,{shadow:`never`},{header:_(()=>[t(`div`,F,[n[7]||=t(`span`,{class:`fw-600`},`代理开关`,-1),s(i,{loading:o.value,onClick:n[0]||=e=>C(!1)},{default:_(()=>[...n[6]||=[r(`刷新`,-1)]]),_:1},8,[`loading`])])]),default:_(()=>[c.value?(w(),u(f,{key:0},[t(`div`,I,` 将本机 CLI 工具的流量一键指向本机网关(`+S(c.value.gatewayBase)+`)。 开启前自动备份原配置为 *.ellm-bak(保留最早的原始备份),关闭时从备份还原。 `,1),y.value?(w(),v(d,{key:0,title:y.value,type:b.value,"show-icon":``,class:`mb-8`,onClose:n[1]||=e=>y.value=null},null,8,[`title`,`type`])):l(``,!0),t(`div`,L,[t(`div`,R,[t(`div`,z,[n[8]||=r(` Claude Code `,-1),s(T,{type:c.value.claudeCode?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(c.value.claudeCode?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[9]||=t(`div`,{class:`switch-desc`},[r(` 写入 `),t(`code`,null,`~/.claude/settings.json`),r(` 的 env.ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN, 鉴权取网关配置的 masterKey(未设置将开启失败);其余字段原样保留,重启 Claude Code 会话后生效。 `)],-1)]),s(E,{"model-value":c.value.claudeCode,loading:h.value===`claudeCode`,onChange:n[2]||=e=>D(`claudeCode`,!!e)},null,8,[`model-value`,`loading`])]),s(O,{class:`switch-divider`}),t(`div`,B,[t(`div`,V,[t(`div`,H,[n[10]||=r(` Codex CLI `,-1),s(T,{type:c.value.codex?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(c.value.codex?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[11]||=t(`div`,{class:`switch-desc`},[r(` 写入 `),t(`code`,null,`~/.codex/config.toml`),r(` 的 model_provider 与 [model_providers.ellm-proxy] 段 (保留用户注释与排版);开启后需按提示设置环境变量 ELLM_PROXY_API_KEY 供 Codex 鉴权。 `)],-1)]),s(E,{"model-value":c.value.codex,loading:h.value===`codex`,onChange:n[3]||=e=>D(`codex`,!!e)},null,8,[`model-value`,`loading`])]),s(O,{class:`switch-divider`}),t(`div`,U,[t(`div`,W,[t(`div`,G,[n[12]||=r(` DeepSeek Harness `,-1),s(T,{type:c.value.dsh?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(c.value.dsh?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[13]||=t(`div`,{class:`switch-desc`},[r(` 写入 `),t(`code`,null,`~/.dsh/settings.yaml`),r(` 的 llm-deepseek.baseURL 与 `),t(`code`,null,`~/.dsh/.credentials.yaml`),r(` 的 DEEPSEEK_API_KEY(取网关 masterKey,未设置则写占位值);模型请在 dsh 内选择与网关部署名一致的模型。 dsh 为 developer preview,配置格式可能随版本变化。 `)],-1)]),s(E,{"model-value":c.value.dsh,loading:h.value===`dsh`,onChange:n[4]||=e=>D(`dsh`,!!e)},null,8,[`model-value`,`loading`])])],64)):(w(),v(k,{key:1,description:p.value||`暂无开关状态`},{default:_(()=>[s(i,{type:`primary`,onClick:n[5]||=e=>C(!1)},{default:_(()=>[...n[14]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`description`]))]),_:1})),[[j,a.value]])}}}),[[`__scopeId`,`data-v-5084d579`]]);o(),a(),T();var q={class:`service-settings`},J={class:`flex-between`},Y={key:0,class:`switch-row`},X={class:`switch-info`},Z={class:`switch-title`},Q={key:0,class:`switch-row`},ee={class:`switch-info`},te={class:`switch-title`},ne={class:`switch-desc`},re={key:0,class:`version-block`},ie={class:`version-row`},ae={class:`muted-sm`},oe={key:0,class:`muted-sm`},se={key:1,class:`muted-sm`},ce={class:`muted-sm`},le={class:`version-actions`},$=h(c({__name:`ServiceUpdateSettings`,setup(i){let{toast:a}=A(),o=n(!0),c=n(!1),p=n(null),h=n(null),b=n(null),C=n(null),T=n(null),k=n(!1),j=n(!1),M=n(null),F=null;e(()=>F?.abort());let I=async e=>{if(!e){if(c.value)return;c.value=!0}try{let[e,t]=await Promise.allSettled([O.autostart(),O.update()]);p.value=e.status===`fulfilled`?e.value:null,h.value=e.status===`rejected`?e.reason?.message:null,b.value=t.status===`fulfilled`?t.value:null,C.value=t.status===`rejected`?t.reason?.message:null}finally{o.value=!1,c.value=!1}};d(()=>I(!1));let L=y(()=>b.value?.lastCheck?.currentVersion??null),R=y(()=>P(L.value)),z=y(()=>b.value?.lastCheck?.latestVersion??null),B=y(()=>b.value?.lastCheck?.hasUpdate===!0),V=y(()=>{let e=b.value?.lastCheck?.checkedAt;return e?new Date(e).toLocaleString():null}),H=y(()=>{let e=b.value?.lastApply;if(!e)return null;let t=e.appliedAt?new Date(e.appliedAt).toLocaleString():``;return`${e.fromVersion} → ${e.toVersion}${t?`(${t})`:``}`}),U=e=>e?new Date(e).toLocaleString():``,W=async e=>{if(!p.value||T.value)return;let t=e?`确定开启开机自启?将注册登录触发的自启项(登录时自动恢复服务)。`:`确定关闭开机自启?将移除自启项,且此后首次启动不再自动注册。`;try{await E.confirm(t,e?`开启确认`:`关闭确认`,{confirmButtonText:e?`开启`:`关闭`,cancelButtonText:`取消`,type:`warning`})}catch{return}T.value=`autostart`;try{let t=await O.setAutostart(e);t.note?a(t.note,`success`):a(e?`开机自启已开启`:`开机自启已关闭`,`success`)}catch(e){a(e.message||`操作失败`,`error`)}finally{T.value=null,await I(!0)}},G=async e=>{if(!b.value||T.value)return;let t=e?`确定开启自动更新?将每小时检查 npm 源,发现新版本自动安装并重启服务。`:`确定关闭自动更新?不再自动检查(手动检查更新不受影响)。`;try{await E.confirm(t,e?`开启确认`:`关闭确认`,{confirmButtonText:e?`开启`:`关闭`,cancelButtonText:`取消`,type:`warning`})}catch{return}T.value=`updateEnabled`;try{let t=await O.setUpdateEnabled(e);t.note&&a(t.note,`success`)}catch(e){a(e.message||`操作失败`,`error`)}finally{T.value=null,await I(!0)}},K=async()=>{k.value=!0;try{let e=await O.checkUpdate();M.value=e.hasUpdate?`发现新版本 ${e.latestVersion}(当前 ${e.currentVersion}):点击「立即更新」即可安装(服务自动重启,期间管理台短暂不可访问)`:`已是最新版本 ${e.currentVersion}(检查于 ${U(e.checkedAt)})`,await I(!0)}catch(e){a(e.message||`检查更新失败`,`error`)}finally{k.value=!1}},$=async()=>{try{await E.confirm(`确定更新到 ${z.value}?服务会自动重启并在启动时安装新版本:重启期间管理台短暂不可访问(预计 1~3 分钟),更新完成后自动恢复。`,`更新确认`,{confirmButtonText:`立即更新`,cancelButtonText:`取消`,type:`warning`})}catch{return}j.value=!0;let e=new AbortController;F=e;try{let t=await O.update(),n=await O.applyUpdate();if(!n.updated){M.value=`已是最新版本 ${n.toVersion}`;return}M.value=`正在重启服务并安装 ${n.toVersion}(预计 1~3 分钟):重启期间管理台短暂不可访问,完成后这里会自动显示结果。`;let r=await D({targetVersion:n.toVersion,sinceAppliedAt:t.lastApply?.appliedAt??null,signal:e.signal});if(e.signal.aborted)return;r&&!r.error?(a(`已更新到 ${r.toVersion}`,`success`),M.value=`已更新 ${r.fromVersion} → ${r.toVersion},服务已在新版本上运行。`):r?.error?(a(`更新失败:${r.error}`,`error`),M.value=N(r.error)):M.value=`更新仍在进行(安装耗时较长):稍后刷新页面查看最新状态。`}catch(e){a(e.message||`更新失败`,`error`)}finally{j.value=!1,F===e&&(F=null),e.signal.aborted||await I(!0)}};return(e,n)=>{let i=m(`el-button`),a=m(`el-tag`),d=m(`el-switch`),y=m(`el-empty`),E=m(`el-card`),D=m(`el-link`),O=m(`el-alert`),A=x(`loading`);return g((w(),u(`div`,q,[s(E,{shadow:`never`,class:`mb-16`},{header:_(()=>[t(`div`,J,[n[7]||=t(`span`,{class:`fw-600`},`开机自启`,-1),s(i,{loading:c.value,onClick:n[0]||=e=>I(!1)},{default:_(()=>[...n[6]||=[r(`刷新`,-1)]]),_:1},8,[`loading`])])]),default:_(()=>[p.value?(w(),u(`div`,Y,[t(`div`,X,[t(`div`,Z,[n[8]||=r(` 登录时自动启动服务 `,-1),s(a,{type:p.value.enabled?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(p.value.enabled?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),n[9]||=t(`div`,{class:`switch-desc`},[r(` 登录操作系统时自动启动服务(无需管理员权限)。 关闭后首次启动 `),t(`code`,null,`ezllm`),r(` 也不会再自动注册,重新开启即可解除。 `)],-1)]),s(d,{"model-value":p.value.enabled,loading:T.value===`autostart`,onChange:n[1]||=e=>W(!!e)},null,8,[`model-value`,`loading`])])):(w(),v(y,{key:1,description:h.value||`暂无自启状态`},{default:_(()=>[s(i,{type:`primary`,onClick:n[2]||=e=>I(!1)},{default:_(()=>[...n[10]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`description`]))]),_:1}),s(E,{shadow:`never`,class:`mb-16`},{header:_(()=>[...n[11]||=[t(`div`,{class:`flex-between`},[t(`span`,{class:`fw-600`},`自动更新`)],-1)]]),default:_(()=>[b.value?(w(),u(`div`,Q,[t(`div`,ee,[t(`div`,te,[n[12]||=r(` 自动检查并安装新版本 `,-1),s(a,{type:b.value.enabled?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(b.value.enabled?`已开启`:`未开启`),1)]),_:1},8,[`type`])]),t(`div`,ne,[b.value.supported?(w(),u(f,{key:1},[r(` 每小时检查 npm 源,发现新版本自动重启服务并在启动时安装(更新期间服务短暂中断); 关闭后仍可在下方手动检查与更新。 `)],64)):(w(),u(f,{key:0},[r(` 当前为源码运行模式,更新功能不可用(仅 npm 全局安装的包支持自动更新)。 `)],64))])]),b.value.supported?(w(),v(d,{key:0,"model-value":b.value.enabled,loading:T.value===`updateEnabled`,onChange:n[3]||=e=>G(!!e)},null,8,[`model-value`,`loading`])):l(``,!0)])):(w(),v(y,{key:1,description:C.value||`暂无更新状态`},{default:_(()=>[s(i,{type:`primary`,onClick:n[4]||=e=>I(!1)},{default:_(()=>[...n[13]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`description`]))]),_:1}),s(E,{shadow:`never`},{header:_(()=>[...n[14]||=[t(`div`,{class:`flex-between`},[t(`span`,{class:`fw-600`},`版本信息`)],-1)]]),default:_(()=>[b.value?(w(),u(`div`,re,[t(`div`,ie,[n[18]||=t(`span`,{class:`version-label`},`当前版本`,-1),s(a,{size:`small`},{default:_(()=>[r(S(L.value||`未知`),1)]),_:1}),R.value?(w(),v(a,{key:0,type:`warning`,size:`small`,"disable-transitions":``},{default:_(()=>[...n[15]||=[r(`本地构建`,-1)]]),_:1})):l(``,!0),z.value?(w(),u(f,{key:1},[n[17]||=t(`span`,{class:`version-label`},`最新版本`,-1),s(a,{type:B.value?`warning`:`success`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(z.value),1)]),_:1},8,[`type`]),B.value?(w(),v(a,{key:0,type:`warning`,size:`small`,"disable-transitions":``},{default:_(()=>[...n[16]||=[r(`发现新版本`,-1)]]),_:1})):l(``,!0)],64)):l(``,!0)]),t(`div`,ae,[r(` 上次检查:`+S(V.value||`尚未检查`)+` `,1),b.value.updating?(w(),u(f,{key:0},[r(` · 更新执行中...`)],64)):l(``,!0)]),b.value.supported?l(``,!0):(w(),u(`div`,oe,` 源码运行模式:手动检查与更新不可用。 `)),H.value?(w(),u(`div`,se,` 上次更新:`+S(H.value),1)):l(``,!0),t(`div`,ce,[n[20]||=r(` npm 包主页:`,-1),s(D,{type:`primary`,href:`https://www.npmjs.com/package/ezllm`,target:`_blank`},{default:_(()=>[...n[19]||=[r(`npmjs.com/package/ezllm`,-1)]]),_:1})]),t(`div`,le,[s(i,{loading:k.value,disabled:!b.value.supported||b.value.updating,onClick:K},{default:_(()=>[r(S(k.value?`检查中...`:`检查更新`),1)]),_:1},8,[`loading`,`disabled`]),B.value&&b.value.supported?(w(),v(i,{key:0,type:`primary`,loading:j.value,disabled:b.value.updating,onClick:$},{default:_(()=>[r(S(j.value?`更新中...`:`立即更新到 ${z.value}`),1)]),_:1},8,[`loading`,`disabled`])):l(``,!0)]),M.value?(w(),v(O,{key:2,title:M.value,type:`info`,"show-icon":``,class:`mt-8`,onClose:n[5]||=e=>M.value=null},null,8,[`title`])):l(``,!0)])):(w(),v(y,{key:1,description:`更新状态不可用`}))]),_:1})])),[[A,o.value]])}}}),[[`__scopeId`,`data-v-d51cfdf5`]]);o(),T(),a();var ue={class:`flex-col-gap`},de={class:`flex-between`},fe={class:`muted-sm`},pe={class:`login-row`},me={class:`muted-sm`},he={class:`flex-between`},ge={class:`monitor-row`},_e={class:`save-bar`},ve=h(c({__name:`SettingsView`,setup(e){let{toast:a}=A(),o=k(),c=n(`basic`),h=n(!0),T=n(!1),E=n(``),D=async()=>{E.value&&(await M(E.value)?a(`已复制到剪贴板`,`success`):a(`复制失败`,`error`))},O=n(29770),N=n(null),P=n(!0),F=n(null),I=n(null),L=n(``),R=n(``),z=y(()=>E.value.trim()!==``||L.value!==``&&R.value!==``),B=n(!1),V=n(60),H=[{label:`10分钟`,value:10},{label:`30分钟`,value:30},{label:`1小时`,value:60},{label:`2小时`,value:120},{label:`5小时`,value:300},{label:`8小时`,value:480},{label:`12小时`,value:720},{label:`24小时`,value:1440}],{loadError:U,run:W}=j(`设置加载失败,请重试`),G=()=>W(async()=>{try{await o.load(),E.value=o.config.masterKey||``,O.value=o.config.port??29770;let e=o.config[`web-ui`]?.[`login-account`];L.value=e?.username||``,R.value=e?.password||``,P.value=o.config.allowLan!==!1;let t=o.config.latencyTest;B.value=t?.enabled===!0,V.value=t?.intervalMinutes??60;try{let e=await p.get(`/api/status`);N.value=e.listenPort,F.value=e.listenHost??null,I.value=e.listenSource??null}catch{N.value=null,F.value=null,I.value=null}}finally{h.value=!1}}),q=async()=>{if(L.value.trim()!==``||R.value!==``){if(L.value.trim()===``||R.value===``){a(`用户名和密码需同时填写`,`error`);return}if(R.value.length<6){a(`密码至少 6 位`,`error`);return}}T.value=!0;let e=B.value&&o.config.latencyTest?.enabled!==!0;try{let t=await o.update(e=>{e.masterKey=E.value.trim(),e.port=O.value,e.allowLan=P.value,e.latencyTest={enabled:B.value,intervalMinutes:V.value},e[`web-ui`]??={},e[`web-ui`][`login-account`]??={},e[`web-ui`][`login-account`].username=L.value.trim(),e[`web-ui`][`login-account`].password=R.value});await b(!0),a(`设置已保存并生效`,`success`),e&&a(`已开启自动测试:服务将定期直连所有上游发送探测请求,有少量 token 消耗`,`warning`),t.restartHint&&a(t.restartHint,`warning`)}catch(e){a(e.message,`error`)}finally{T.value=!1}};return d(G),(e,n)=>{let a=m(`el-button`),o=m(`el-alert`),d=m(`el-tag`),p=m(`el-input`),y=m(`el-form-item`),b=m(`el-input-number`),k=m(`el-form`),A=m(`el-card`),j=m(`el-switch`),M=m(`el-divider`),W=m(`el-option`),J=m(`el-select`),Y=m(`el-tab-pane`),X=m(`el-tabs`),Z=x(`loading`);return w(),v(X,{modelValue:c.value,"onUpdate:modelValue":n[7]||=e=>c.value=e,class:`settings-tabs`},{default:_(()=>[s(Y,{label:`基本设置`,name:`basic`},{default:_(()=>[g((w(),u(`div`,ue,[i(U)?(w(),v(o,{key:0,title:i(U),type:`error`,"show-icon":``,closable:!1},{default:_(()=>[s(a,{size:`small`,onClick:G},{default:_(()=>[...n[8]||=[r(`重试`,-1)]]),_:1})]),_:1},8,[`title`])):l(``,!0),s(A,{shadow:`never`},{header:_(()=>[t(`div`,de,[n[10]||=t(`span`,{class:`fw-600`},`网关访问`,-1),s(d,{type:`success`},{default:_(()=>[...n[9]||=[r(`运行中`,-1)]]),_:1})])]),default:_(()=>[s(k,{"label-position":`top`},{default:_(()=>[s(y,{label:`API 密钥 (masterKey)`},{default:_(()=>[s(p,{modelValue:E.value,"onUpdate:modelValue":n[0]||=e=>E.value=e,placeholder:`sk-1234`,clearable:``},{append:_(()=>[s(a,{onClick:D},{default:_(()=>[...n[11]||=[r(`复制`,-1)]]),_:1})]),_:1},8,[`modelValue`]),n[12]||=t(`div`,{class:`muted-sm`},` 客户端请求 /v1/* 时的认证密钥(Bearer <masterKey>;留空 = 本地放行) `,-1)]),_:1}),s(y,{label:`监听端口 (port)`},{default:_(()=>[s(b,{modelValue:O.value,"onUpdate:modelValue":n[1]||=e=>O.value=e,min:1,max:65535,step:1,style:{width:`220px`}},null,8,[`modelValue`]),t(`div`,fe,[n[14]||=r(` 网关与管理台 API 的监听端口,保存后重启生效 `,-1),N.value===null?l(``,!0):(w(),u(f,{key:0},[n[13]||=r(` ;服务上报的端口 `,-1),t(`b`,null,S(N.value),1),I.value===`env`?(w(),u(f,{key:0},[r(`(监听配置由环境变量覆盖,此配置值不生效)`)],64)):l(``,!0)],64))])]),_:1})]),_:1})]),_:1}),s(A,{shadow:`never`},{header:_(()=>[...n[15]||=[t(`span`,{class:`fw-600`},`安全与登录`,-1)]]),default:_(()=>[s(k,{"label-position":`top`},{default:_(()=>[s(y,{label:`管理台登录账号`},{default:_(()=>[t(`div`,pe,[s(p,{modelValue:L.value,"onUpdate:modelValue":n[2]||=e=>L.value=e,placeholder:`用户名`,style:{width:`200px`}},null,8,[`modelValue`]),s(p,{modelValue:R.value,"onUpdate:modelValue":n[3]||=e=>R.value=e,type:`password`,placeholder:`密码(至少 6 位)`,"show-password":``,style:{width:`200px`}},null,8,[`modelValue`])]),n[16]||=t(`div`,{class:`muted-sm`},` 管理台登录凭证;留空 = 免登录直接访问(仅本机使用时推荐)。 修改后立即生效,需用新账号重新登录 `,-1)]),_:1}),s(y,{label:`允许局域网访问 (allowLan)`},{default:_(()=>[s(j,{modelValue:P.value,"onUpdate:modelValue":n[4]||=e=>P.value=e},null,8,[`modelValue`]),t(`div`,me,[n[19]||=r(` 开启 = 绑定全部网卡,局域网内设备可访问;关闭 = 仅本机 127.0.0.1。保存后需重启生效 `,-1),I.value===`env`?(w(),u(f,{key:0},[n[17]||=r(` ;当前实际监听 `,-1),t(`b`,null,S(F.value),1),n[18]||=r(`(由 HOST 环境变量覆盖,此开关不生效) `,-1)],64)):z.value?l(``,!0):(w(),u(f,{key:1},[r(` ;未设置任何凭据(密钥与登录账号皆无)时始终仅绑本机 `)],64))])]),_:1})]),_:1})]),_:1}),s(A,{shadow:`never`},{header:_(()=>[t(`div`,he,[n[20]||=t(`span`,{class:`fw-600`},`模型服务监控`,-1),s(d,{type:B.value?`success`:`info`,size:`small`,"disable-transitions":``},{default:_(()=>[r(S(B.value?`已开启`:`未开启`),1)]),_:1},8,[`type`])])]),default:_(()=>[t(`div`,ge,[n[21]||=t(`div`,{class:`monitor-info`},[t(`div`,{class:`monitor-title`},`自动测试模型服务状态`),t(`div`,{class:`muted-sm`},` 按设定间隔自动直连所有上游模型发送极小探测请求(max_tokens: 1,有少量 token 消耗); 测试结果展示在「服务状态」页面 `)],-1),s(j,{modelValue:B.value,"onUpdate:modelValue":n[5]||=e=>B.value=e},null,8,[`modelValue`])]),B.value?(w(),u(f,{key:0},[s(M,{style:{margin:`12px 0`}}),s(k,{"label-position":`top`},{default:_(()=>[s(y,{label:`测试间隔`,style:{"margin-bottom":`0`}},{default:_(()=>[s(J,{modelValue:V.value,"onUpdate:modelValue":n[6]||=e=>V.value=e,style:{width:`220px`}},{default:_(()=>[(w(),u(f,null,C(H,e=>s(W,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),n[22]||=t(`div`,{class:`muted-sm`},` 自动测试的执行间隔,保存后即时生效(无需重启) `,-1)]),_:1})]),_:1})],64)):l(``,!0)]),_:1}),t(`div`,_e,[s(a,{type:`primary`,size:`large`,loading:T.value,disabled:T.value||i(U)!==null,onClick:q},{default:_(()=>[r(S(T.value?`保存中...`:`保存设置`),1)]),_:1},8,[`loading`,`disabled`])])])),[[Z,h.value]])]),_:1}),s(Y,{label:`代理开关`,name:`harness`,lazy:``},{default:_(()=>[s(K)]),_:1}),s(Y,{label:`服务与更新`,name:`service`,lazy:``},{default:_(()=>[s($)]),_:1})]),_:1},8,[`modelValue`])}}}),[[`__scopeId`,`data-v-e1ea3ddd`]]);export{ve as default};
@@ -1 +1 @@
1
- import{A as e,C as t,Et as n,F as r,H as i,I as a,L as o,M as s,N as c,Q as l,a as u,at as d,d as f,h as p,ht as m,j as h,n as g,pt as _,r as v,tt as y,u as b,yt as x}from"./router-DjNMXIJT.js";import{t as S}from"./message-D5w4qfHY.js";import{t as C}from"./clipboard-CorU9X8e.js";i(),p(),x();var w={class:`setup-wrap`},T={class:`account-row`},E=f(o({__name:`SetupView`,setup(i){let o=b(),f=n(!1),p=n(``),x=!1,E=n(``),D=n(``),O=n(!1),k=n(``);l(async()=>{!(await g()).masterKeySet&&f.value&&A()});function A(){p.value=j(),x=!0}_(f,e=>{e?p.value.trim()===``&&A():x&&=(p.value=``,!1)});function j(){let e=new Uint8Array(32);crypto.getRandomValues(e);let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function M(){await C(p.value)?S.success(`已复制到剪贴板`):S.error(`复制失败,请手动选择复制`)}async function N(){k.value=``;let e=f.value?`server`:`local`,t=p.value.trim(),n=E.value.trim()!==``||D.value!==``;if(f.value&&t===``){k.value=`服务器部署必须设置主密钥,防止 /v1 网关被他人盗用`;return}if(f.value&&!n){k.value=`服务器部署必须设置登录账号密码,防止管理台被陌生人登录`;return}if(n){if(E.value.trim()===``||D.value===``){k.value=`用户名和密码需同时填写`;return}if(D.value.length<6){k.value=`密码至少 6 位`;return}}O.value=!0;try{let r=t===``?null:await u.post(`/api/setup/master-key`,{mode:`custom`,masterKey:t}),i=await u.post(`/api/setup/finish`,{deployment:e,...n?{username:E.value.trim(),password:D.value}:{}});v(e,n),S.success(n?`初始化完成,请使用新账号登录`:`初始化完成,免登录进入管理台`);let a=r?.restartHint??i.restartHint;a&&S({message:a,type:`warning`,duration:8e3}),await o.push(n?`/login`:`/`)}catch(e){k.value=e.message||`保存失败`}finally{O.value=!1}}return(n,i)=>{let o=d(`el-checkbox`),l=d(`el-alert`),u=d(`el-button`),g=d(`el-input`),_=d(`el-form-item`),v=d(`el-form`),b=d(`el-card`);return y(),c(`div`,w,[a(b,{shadow:`hover`,class:`setup-card`},{default:m(()=>[i[10]||=e(`h2`,{class:`setup-title`},`初始化 EZLLM`,-1),a(o,{modelValue:f.value,"onUpdate:modelValue":i[0]||=e=>f.value=e,class:`mb-16`},{default:m(()=>[...i[4]||=[r(` 允许其他设备访问本服务(局域网 / 公网部署) `,-1)]]),_:1},8,[`modelValue`]),f.value?(y(),h(l,{key:0,type:`warning`,"show-icon":``,closable:!1,title:`服务将对网络中的其他设备可见,请务必保留主密钥并修改默认账号`,class:`mb-16`})):s(``,!0),a(v,{"label-position":`top`,onSubmit:t(N,[`prevent`])},{default:m(()=>[a(_,null,{label:m(()=>[...i[5]||=[r(` API 主密钥(本地部署可留空) `,-1),e(`span`,{class:`label-hint`},`调用 /v1/* 时的 Bearer Token;留空 = 不启用鉴权,且未设登录账号时服务仅本机可访问`,-1)]]),default:m(()=>[a(g,{modelValue:p.value,"onUpdate:modelValue":i[1]||=e=>p.value=e,placeholder:`已设置主密钥,留空保持不变`,clearable:``},{append:m(()=>[a(u,{onClick:A},{default:m(()=>[...i[6]||=[r(`生成`,-1)]]),_:1}),a(u,{disabled:!p.value,onClick:M},{default:m(()=>[...i[7]||=[r(`复制`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`modelValue`])]),_:1}),a(_,null,{label:m(()=>[...i[8]||=[r(` 管理台登录(可选) `,-1),e(`span`,{class:`label-hint`},`不填 = 免登录直接进管理台(纯本机使用);勾选上方后必须填写`,-1)]]),default:m(()=>[e(`div`,T,[a(g,{modelValue:E.value,"onUpdate:modelValue":i[2]||=e=>E.value=e,placeholder:`用户名`,clearable:``},null,8,[`modelValue`]),a(g,{modelValue:D.value,"onUpdate:modelValue":i[3]||=e=>D.value=e,type:`password`,"show-password":``,placeholder:`密码(至少 6 位)`},null,8,[`modelValue`])])]),_:1}),k.value?(y(),h(l,{key:0,title:k.value,type:`error`,"show-icon":``,closable:!1,class:`mb-16`},null,8,[`title`])):s(``,!0),a(u,{type:`primary`,class:`full-width`,loading:O.value,onClick:N},{default:m(()=>[...i[9]||=[r(` 完成初始化 `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-52af652f`]]);export{E as default};
1
+ import{A as e,C as t,Et as n,F as r,H as i,I as a,L as o,M as s,N as c,Q as l,a as u,at as d,d as f,h as p,ht as m,j as h,n as g,pt as _,r as v,tt as y,u as b,yt as x}from"./router-BqkHX02I.js";import{t as S}from"./message-CEBSyhlN.js";import{t as C}from"./clipboard-CorU9X8e.js";i(),p(),x();var w={class:`setup-wrap`},T={class:`account-row`},E=f(o({__name:`SetupView`,setup(i){let o=b(),f=n(!1),p=n(``),x=!1,E=n(``),D=n(``),O=n(!1),k=n(``);l(async()=>{!(await g()).masterKeySet&&f.value&&A()});function A(){p.value=j(),x=!0}_(f,e=>{e?p.value.trim()===``&&A():x&&=(p.value=``,!1)});function j(){let e=new Uint8Array(32);crypto.getRandomValues(e);let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function M(){await C(p.value)?S.success(`已复制到剪贴板`):S.error(`复制失败,请手动选择复制`)}async function N(){k.value=``;let e=f.value?`server`:`local`,t=p.value.trim(),n=E.value.trim()!==``||D.value!==``;if(f.value&&t===``){k.value=`服务器部署必须设置主密钥,防止 /v1 网关被他人盗用`;return}if(f.value&&!n){k.value=`服务器部署必须设置登录账号密码,防止管理台被陌生人登录`;return}if(n){if(E.value.trim()===``||D.value===``){k.value=`用户名和密码需同时填写`;return}if(D.value.length<6){k.value=`密码至少 6 位`;return}}O.value=!0;try{let r=t===``?null:await u.post(`/api/setup/master-key`,{mode:`custom`,masterKey:t}),i=await u.post(`/api/setup/finish`,{deployment:e,...n?{username:E.value.trim(),password:D.value}:{}});v(e,n),S.success(n?`初始化完成,请使用新账号登录`:`初始化完成,免登录进入管理台`);let a=r?.restartHint??i.restartHint;a&&S({message:a,type:`warning`,duration:8e3}),await o.push(n?`/login`:`/`)}catch(e){k.value=e.message||`保存失败`}finally{O.value=!1}}return(n,i)=>{let o=d(`el-checkbox`),l=d(`el-alert`),u=d(`el-button`),g=d(`el-input`),_=d(`el-form-item`),v=d(`el-form`),b=d(`el-card`);return y(),c(`div`,w,[a(b,{shadow:`hover`,class:`setup-card`},{default:m(()=>[i[10]||=e(`h2`,{class:`setup-title`},`初始化 EZLLM`,-1),a(o,{modelValue:f.value,"onUpdate:modelValue":i[0]||=e=>f.value=e,class:`mb-16`},{default:m(()=>[...i[4]||=[r(` 允许其他设备访问本服务(局域网 / 公网部署) `,-1)]]),_:1},8,[`modelValue`]),f.value?(y(),h(l,{key:0,type:`warning`,"show-icon":``,closable:!1,title:`服务将对网络中的其他设备可见,请务必保留主密钥并修改默认账号`,class:`mb-16`})):s(``,!0),a(v,{"label-position":`top`,onSubmit:t(N,[`prevent`])},{default:m(()=>[a(_,null,{label:m(()=>[...i[5]||=[r(` API 主密钥(本地部署可留空) `,-1),e(`span`,{class:`label-hint`},`调用 /v1/* 时的 Bearer Token;留空 = 不启用鉴权,且未设登录账号时服务仅本机可访问`,-1)]]),default:m(()=>[a(g,{modelValue:p.value,"onUpdate:modelValue":i[1]||=e=>p.value=e,placeholder:`已设置主密钥,留空保持不变`,clearable:``},{append:m(()=>[a(u,{onClick:A},{default:m(()=>[...i[6]||=[r(`生成`,-1)]]),_:1}),a(u,{disabled:!p.value,onClick:M},{default:m(()=>[...i[7]||=[r(`复制`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`modelValue`])]),_:1}),a(_,null,{label:m(()=>[...i[8]||=[r(` 管理台登录(可选) `,-1),e(`span`,{class:`label-hint`},`不填 = 免登录直接进管理台(纯本机使用);勾选上方后必须填写`,-1)]]),default:m(()=>[e(`div`,T,[a(g,{modelValue:E.value,"onUpdate:modelValue":i[2]||=e=>E.value=e,placeholder:`用户名`,clearable:``},null,8,[`modelValue`]),a(g,{modelValue:D.value,"onUpdate:modelValue":i[3]||=e=>D.value=e,type:`password`,"show-password":``,placeholder:`密码(至少 6 位)`},null,8,[`modelValue`])])]),_:1}),k.value?(y(),h(l,{key:0,title:k.value,type:`error`,"show-icon":``,closable:!1,class:`mb-16`},null,8,[`title`])):s(``,!0),a(u,{type:`primary`,class:`full-width`,loading:O.value,onClick:N},{default:m(()=>[...i[9]||=[r(` 完成初始化 `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-52af652f`]]);export{E as default};
@@ -1 +1 @@
1
- import{Et as e,H as t,a as n,k as r,yt as i}from"./router-DjNMXIJT.js";import{n as a}from"./index-DRdS47Vm.js";i(),t();var o=a(`config`,()=>{let t=e({}),i=e(!1),a=r(()=>Array.isArray(t.value.providers)?t.value.providers:[]),o=r(()=>a.value.length),s=r(()=>a.value.reduce((e,t)=>e+(t.models?.length??0),0));async function c(){i.value=!0;try{t.value=await n.get(`/api/config`)}finally{i.value=!1}}async function l(){return await n.put(`/api/config`,t.value)}async function u(e){return e(t.value),await l()}return{config:t,loading:i,providers:a,providerCount:o,totalModelCount:s,load:c,save:l,update:u}});export{o as t};
1
+ import{Et as e,H as t,a as n,k as r,yt as i}from"./router-BqkHX02I.js";import{n as a}from"./index-C6wv4UB9.js";i(),t();var o=a(`config`,()=>{let t=e({}),i=e(!1),a=r(()=>Array.isArray(t.value.providers)?t.value.providers:[]),o=r(()=>a.value.length),s=r(()=>a.value.reduce((e,t)=>e+(t.models?.length??0),0));async function c(){i.value=!0;try{t.value=await n.get(`/api/config`)}finally{i.value=!1}}async function l(){return await n.put(`/api/config`,t.value)}async function u(e){return e(t.value),await l()}return{config:t,loading:i,providers:a,providerCount:o,totalModelCount:s,load:c,save:l,update:u}});export{o as t};
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,At as n,B as r,Bt as i,C as a,Ct as o,D as s,E as c,Et as l,F as u,Ft as d,G as f,Gt as p,H as m,I as h,J as g,Jt as _,K as v,Kt as y,L as b,M as x,Mt as S,N as C,Nt as w,O as T,P as E,Pt as D,Q as O,Qt as k,R as A,Rt as j,S as M,St as N,T as P,Tt as ee,U as F,Ut as te,V as ne,W as I,Wt as re,X as ie,Y as ae,Yt as L,Z as oe,_t as se,at as R,b as ce,bt as le,cn as z,ct as ue,d as de,dt as fe,en as pe,et as me,f as he,g as ge,gt as _e,h as ve,hn as ye,ht as B,in as V,it as H,j as U,jt as be,k as W,kt as xe,ln as Se,lt as Ce,m as we,mn as Te,mt as Ee,nt as De,ot as Oe,p as ke,pn as G,pt as K,q as Ae,rt as je,st as Me,t as Ne,tn as Pe,tt as q,un as Fe,v as Ie,vt as Le,w as Re,wt as ze,x as Be,xt as Ve,y as He,yn as Ue,yt as J,z as We,zt as Ge}from"./router-DjNMXIJT.js";import{$ as Ke,$n as qe,$t as Je,A as Ye,An as Xe,At as Ze,B as Qe,Bn as $e,Bt as et,C as tt,Cn as nt,Ct as rt,D as it,Dn as at,Dt as Y,E as ot,En as st,Et as X,F as ct,Fn as lt,Ft as ut,Gn as dt,Gt as ft,H as pt,Hn as mt,Ht as ht,I as gt,In as _t,It as vt,J as yt,Jn as bt,Jt as xt,K as St,Kn as Ct,Kt as wt,L as Tt,Ln as Et,Lt as Dt,M as Ot,Mn as kt,Mt as At,N as jt,Nn as Mt,Nt,O as Pt,On as Ft,Ot as It,Pn as Lt,Pt as Rt,Q as zt,Qn as Bt,Qt as Vt,R as Ht,Rn as Ut,Rt as Wt,S as Gt,Sn as Kt,St as qt,T as Jt,Tn as Yt,Tt as Xt,U as Zt,Un as Qt,Ut as $t,V as en,Vn as tn,Vt as nn,W as rn,Wn as an,Wt as on,X as sn,Xn as cn,Xt as ln,Y as un,Yn as dn,Yt as fn,Z as pn,Zn as mn,Zt as hn,_ as gn,_n,_r as vn,_t as yn,a as bn,an as xn,ar as Sn,at as Cn,b as wn,bn as Tn,bt as En,c as Z,cn as Dn,cr as On,ct as kn,d as An,dn as jn,dr as Mn,dt as Nn,en as Pn,er as Fn,f as In,fn as Ln,fr as Rn,ft as zn,g as Bn,gn as Vn,gr as Hn,gt as Un,h as Wn,hn as Gn,hr as Kn,ht as Q,i as qn,in as Jn,ir as Yn,it as Xn,j as Zn,jn as Qn,jt as $n,k as er,kn as tr,kt as nr,l as rr,ln as ir,lr as ar,lt as or,m as sr,mn as cr,mr as lr,mt as ur,n as dr,nn as fr,nr as pr,nt as mr,o as hr,on as gr,or as _r,ot as vr,p as yr,pn as br,pr as xr,pt as Sr,q as Cr,qn as wr,qt as Tr,r as Er,rn as Dr,rr as Or,rt as kr,s as Ar,sn as jr,sr as Mr,st as Nr,t as Pr,tn as Fr,tr as Ir,tt as Lr,u as Rr,un as zr,ur as Br,ut as Vr,v as Hr,vn as Ur,vr as $,vt as Wr,w as Gr,wn as Kr,wt as qr,x as Jr,xn as Yr,xt as Xr,y as Zr,yn as Qr,yt as $r,z as ei,zn as ti,zt as ni}from"./message-D5w4qfHY.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),m(),J();var ri=typeof window<`u`,ii,ai=e=>ii=e,oi=Symbol();function si(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var ci=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function li(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function ui(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){hi(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function di(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function fi(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var pi=typeof navigator==`object`?navigator:{userAgent:``},mi=/Macintosh/.test(pi.userAgent)&&/AppleWebKit/.test(pi.userAgent)&&!/Safari/.test(pi.userAgent),hi=ri?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!mi?gi:`msSaveOrOpenBlob`in pi?_i:vi:()=>{};function gi(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?fi(r):di(r.href)?ui(e,t,n):(r.target=`_blank`,fi(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){fi(r)},0))}function _i(e,t=`download`,n){if(typeof e==`string`){if(di(e))ui(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){fi(t)})}}else navigator.msSaveOrOpenBlob(li(e,n),t)}function vi(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return ui(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(ci.HTMLElement))||`safari`in ci,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||mi)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:yi}=Object;function bi(){let e=se(!0),t=e.run(()=>l({})),n=[],r=[],i=N({install(e){ai(i),i._a=e,e.provide(oi,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var xi=()=>{};function Si(e,t,n,r=xi){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Le()&&o(i),i}function Ci(e,...t){e.forEach(e=>{e(...t)})}var wi=e=>e(),Ti=Symbol(),Ei=Symbol();function Di(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=si(i)&&si(r)&&Object.hasOwn(e,n)&&!Ve(r)&&!le(r)?Di(i,r):r}return e}var Oi=Symbol();function ki(e){return!e||typeof e!=`object`||!Object.hasOwn(e,Oi)}var{assign:Ai}=Object;function ji(e){return!!(Ve(e)&&e.effect)}function Mi(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),Ai(S(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=N(W(()=>{ai(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Ni(e,l,t,n,r,!0),c}function Ni(e,t,r={},i,a,o){let s,c=Ai({actions:{}},r),l={deep:!0},u,d,f=new Set,p=new Set,m,h=i.state.value[e];!o&&!h&&(i.state.value[e]={});let g;function _(t){let n;u=d=!1,typeof t==`function`?(t(i.state.value[e]),n={type:`patch function`,storeId:e,events:m}):(Di(i.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:m});let r=g=Symbol();v().then(()=>{g===r&&(u=!0)}),d=!0,Ci(f,n,i.state.value[e])}let y=o?function(){let{state:e}=r,t=e?e():{};this.$patch(e=>{Ai(e,t)})}:xi;function b(){s.stop(),f.clear(),p.clear(),i._s.delete(e)}let x=(t,n=``)=>{if(Ti in t)return t[Ei]=n,t;let r=function(){ai(i);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Ci(p,{args:n,name:r[Ei],store:C,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:C,n)}catch(e){throw Ci(o,e),e}return l instanceof Promise?l.then(e=>(Ci(a,e),e)).catch(e=>(Ci(o,e),Promise.reject(e))):(Ci(a,l),l)};return r[Ti]=!0,r[Ei]=n,r},S={_p:i,$id:e,$onAction:Si.bind(null,p),$patch:_,$reset:y,$subscribe(t,n={}){if(f.has(t))return xi;let r=Si(f,t,n.detached,()=>a()),a=s.run(()=>K(()=>i.state.value[e],r=>{(n.flush===`sync`?d:u)&&t({storeId:e,type:`direct`,events:m},r)},Ai({},l,n)));return r},$dispose:b},C=ze(S);i._s.set(e,C);let w=(i._a&&i._a.runWithContext||wi)(()=>i._e.run(()=>(s=se()).run(()=>t({action:x}))));for(let t in w){let n=w[t];Ve(n)&&!ji(n)||le(n)?o||(h&&ki(n)&&(Ve(n)?n.value=h[t]:((n instanceof Set||n instanceof Map)&&n.clear(),Di(n,h[t]))),i.state.value[e][t]=n):typeof n==`function`&&(w[t]=x(n,t),c.actions[t]=n)}return Ai(C,w),Ai(n(C),w),Object.defineProperty(C,"$state",{get:()=>i.state.value[e],set:e=>{_(t=>{Ai(t,e)})}}),i._p.forEach(e=>{let t=s.run(()=>e({store:C,app:i._a,pinia:i,options:c}));Ai(C,t)}),h&&o&&r.hydrate&&r.hydrate(C.$state,h),u=!0,d=!0,C}function Pi(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=ne();return n||=o?F(oi,null):null,n&&ai(n),n=ii,n._s.has(e)||(i?Ni(e,t,r,n):Mi(e,r,n)),n._s.get(e)}return a.$id=e,a}var Fi=[`left`,`center`,`right`],Ii=[`year`,`years`,`month`,`months`,`date`,`dates`,`week`,`quarter`,`quarters`,`datetime`,`datetimerange`,`daterange`,`monthrange`,`yearrange`,`quarterrange`],Li=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`],Ri=`update:modelValue`,zi=`change`,Bi=`input`,Vi=Symbol(`INSTALLED_KEY`),Hi=/\s/;function Ui(e){for(var t=e.length;t--&&Hi.test(e.charAt(t)););return t}var Wi=/^\s+/;function Gi(e){return e&&e.slice(0,Ui(e)+1).replace(Wi,``)}var Ki=NaN,qi=/^[-+]0x[0-9a-f]+$/i,Ji=/^0b[01]+$/i,Yi=/^0o[0-7]+$/i,Xi=parseInt;function Zi(e){if(typeof e==`number`)return e;if($e(e))return Ki;if(Et(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=Et(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Gi(e);var n=Ji.test(e);return n||Yi.test(e)?Xi(e.slice(2),n?2:8):qi.test(e)?Ki:+e}var Qi=1/0,$i=17976931348623157e292;function ea(e){return e?(e=Zi(e),e===Qi||e===-Qi?(e<0?-1:1)*$i:e===e?e:0):e===0?e:0}function ta(e){var t=ea(e),n=t%1;return t===t?n?t-n:t:0}function na(e){return e}var ra=Object.create,ia=function(){function e(){}return function(t){if(!Et(t))return{};if(ra)return ra(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function aa(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function oa(){}function sa(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}var ca=800,la=16,ua=Date.now;function da(e){var t=0,n=0;return function(){var r=ua(),i=la-(r-n);if(n=r,i>0){if(++t>=ca)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function fa(e){return function(){return e}}var pa=da(lt?function(e,t){return lt(e,`toString`,{configurable:!0,enumerable:!1,value:fa(t),writable:!0})}:na);function ma(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function ha(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function ga(e){return e!==e}function _a(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function va(e,t,n){return t===t?_a(e,t,n):ha(e,ga,n)}function ya(e,t){return!!(e!=null&&e.length)&&va(e,t,0)>-1}function ba(e,t,n,r){var i=!n;n||={};for(var a=-1,o=t.length;++a<o;){var s=t[a],c=r?r(n[s],e[s],s,n,e):void 0;c===void 0&&(c=e[s]),i?Mt(n,s,c):Qn(n,s,c)}return n}var xa=Math.max;function Sa(e,t,n){return t=xa(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=xa(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=r[i];return s[t]=n(o),aa(e,this,s)}}function Ca(e,t){return pa(Sa(e,t,na),e+``)}function wa(e,t,n){if(!Et(n))return!1;var r=typeof t;return(r==`number`?tr(n)&&Lt(t,n.length):r==`string`&&t in n)?kt(n[t],e):!1}function Ta(e){return Ca(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&typeof a==`function`?(i--,a):void 0,o&&wa(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var s=n[r];s&&e(t,s,r,a)}return t})}function Ea(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var Da=Object.prototype.hasOwnProperty;function Oa(e){if(!Et(e))return Ea(e);var t=Ft(e),n=[];for(var r in e)(r!=`constructor`||!t&&Da.call(e,r))&&n.push(r);return n}function ka(e){return tr(e)?Kt(e,!0):Oa(e)}var Aa=mt?mt.isConcatSpreadable:void 0;function ja(e){return Ut(e)||at(e)||!!(Aa&&e&&e[Aa])}function Ma(e,t,n,r,i){var a=-1,o=e.length;for(n||=ja,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?Ma(s,t-1,n,r,i):cr(i,s):r||(i[i.length]=s)}return i}function Na(e){return e!=null&&e.length?Ma(e,1):[]}function Pa(e){return pa(Sa(e,void 0,Na),e+``)}function Fa(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}function Ia(){if(!arguments.length)return[];var e=arguments[0];return Ut(e)?e:[e]}function La(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function Ra(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=Zi(n),n=n===n?n:0),t!==void 0&&(t=Zi(t),t=t===t?t:0),La(Zi(e),t,n)}function za(e,t){return e&&ba(t,Yr(t),e)}function Ba(e,t){return e&&ba(t,ka(t),e)}var Va=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Ha=Va&&typeof module==`object`&&module&&!module.nodeType&&module,Ua=Ha&&Ha.exports===Va?Qt.Buffer:void 0,Wa=Ua?Ua.allocUnsafe:void 0;function Ga(e,t){if(t)return e.slice();var n=e.length,r=Wa?Wa(n):new e.constructor(n);return e.copy(r),r}function Ka(e,t){return ba(e,ir(e),t)}var qa=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)cr(t,ir(e)),e=br(e);return t}:zr;function Ja(e,t){return ba(e,qa(e),t)}function Ya(e){return Dn(e,ka,qa)}var Xa=Object.prototype.hasOwnProperty;function Za(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Xa.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function Qa(e){var t=new e.constructor(e.byteLength);return new Jn(t).set(new Jn(e)),t}function $a(e,t){var n=t?Qa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var eo=/\w*$/;function to(e){var t=new e.constructor(e.source,eo.exec(e));return t.lastIndex=e.lastIndex,t}var no=mt?mt.prototype:void 0,ro=no?no.valueOf:void 0;function io(e){return ro?Object(ro.call(e)):{}}function ao(e,t){var n=t?Qa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var oo=`[object Boolean]`,so=`[object Date]`,co=`[object Map]`,lo=`[object Number]`,uo=`[object RegExp]`,fo=`[object Set]`,po=`[object String]`,mo=`[object Symbol]`,ho=`[object ArrayBuffer]`,go=`[object DataView]`,_o=`[object Float32Array]`,vo=`[object Float64Array]`,yo=`[object Int8Array]`,bo=`[object Int16Array]`,xo=`[object Int32Array]`,So=`[object Uint8Array]`,Co=`[object Uint8ClampedArray]`,wo=`[object Uint16Array]`,To=`[object Uint32Array]`;function Eo(e,t,n){var r=e.constructor;switch(t){case ho:return Qa(e);case oo:case so:return new r(+e);case go:return $a(e,n);case _o:case vo:case yo:case bo:case xo:case So:case Co:case wo:case To:return ao(e,n);case co:return new r;case lo:case po:return new r(e);case uo:return to(e);case fo:return new r;case mo:return io(e)}}function Do(e){return typeof e.constructor==`function`&&!Ft(e)?ia(br(e)):{}}var Oo=`[object Map]`;function ko(e){return tn(e)&&xn(e)==Oo}var Ao=Kr&&Kr.isMap,jo=Ao?Yt(Ao):ko,Mo=`[object Set]`;function No(e){return tn(e)&&xn(e)==Mo}var Po=Kr&&Kr.isSet,Fo=Po?Yt(Po):No,Io=1,Lo=2,Ro=4,zo=`[object Arguments]`,Bo=`[object Array]`,Vo=`[object Boolean]`,Ho=`[object Date]`,Uo=`[object Error]`,Wo=`[object Function]`,Go=`[object GeneratorFunction]`,Ko=`[object Map]`,qo=`[object Number]`,Jo=`[object Object]`,Yo=`[object RegExp]`,Xo=`[object Set]`,Zo=`[object String]`,Qo=`[object Symbol]`,$o=`[object WeakMap]`,es=`[object ArrayBuffer]`,ts=`[object DataView]`,ns=`[object Float32Array]`,rs=`[object Float64Array]`,is=`[object Int8Array]`,as=`[object Int16Array]`,os=`[object Int32Array]`,ss=`[object Uint8Array]`,cs=`[object Uint8ClampedArray]`,ls=`[object Uint16Array]`,us=`[object Uint32Array]`,ds={};ds[zo]=ds[Bo]=ds[es]=ds[ts]=ds[Vo]=ds[Ho]=ds[ns]=ds[rs]=ds[is]=ds[as]=ds[os]=ds[Ko]=ds[qo]=ds[Jo]=ds[Yo]=ds[Xo]=ds[Zo]=ds[Qo]=ds[ss]=ds[cs]=ds[ls]=ds[us]=!0,ds[Uo]=ds[Wo]=ds[$o]=!1;function fs(e,t,n,r,i,a){var o,s=t&Io,c=t&Lo,l=t&Ro;if(n&&(o=i?n(e,r,i,a):n(e)),o!==void 0)return o;if(!Et(e))return e;var u=Ut(e);if(u){if(o=Za(e),!s)return sa(e,o)}else{var d=xn(e),f=d==Wo||d==Go;if(st(e))return Ga(e,s);if(d==Jo||d==zo||f&&!i){if(o=c||f?{}:Do(e),!s)return c?Ja(e,Ba(o,e)):Ka(e,za(o,e))}else{if(!ds[d])return i?e:{};o=Eo(e,d,s)}}a||=new jn;var p=a.get(e);if(p)return p;a.set(e,o),Fo(e)?e.forEach(function(r){o.add(fs(r,t,n,r,e,a))}):jo(e)&&e.forEach(function(r,i){o.set(i,fs(r,t,n,i,e,a))});var m=u?void 0:(l?c?Ya:jr:c?ka:Yr)(e);return ma(m||e,function(r,i){m&&(i=r,r=e[i]),Qn(o,i,fs(r,t,n,i,e,a))}),o}var ps=1,ms=4;function hs(e){return fs(e,ps|ms)}var gs=1,_s=2;function vs(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new jn;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?Pn(u,l,gs|_s,r,d):f))return!1}}return!0}function ys(e){return e===e&&!Et(e)}function bs(e){for(var t=Yr(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,ys(i)]}return t}function xs(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}function Ss(e){var t=bs(e);return t.length==1&&t[0][2]?xs(t[0][0],t[0][1]):function(n){return n===e||vs(n,e,t)}}function Cs(e,t){return e!=null&&t in Object(e)}function ws(e,t,n){t=Ur(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=_n(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&Xe(i)&&Lt(o,i)&&(Ut(e)||at(e)))}function Ts(e,t){return e!=null&&ws(e,t,Cs)}var Es=1,Ds=2;function Os(e,t){return Tn(e)&&ys(t)?xs(_n(e),t):function(n){var r=Gn(n,e);return r===void 0&&r===t?Ts(n,e):Pn(t,r,Es|Ds)}}function ks(e){return function(t){return t?.[e]}}function As(e){return function(t){return Vn(t,e)}}function js(e){return Tn(e)?ks(_n(e)):As(e)}function Ms(e){return typeof e==`function`?e:e==null?na:typeof e==`object`?Ut(e)?Os(e[0],e[1]):Ss(e):js(e)}function Ns(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var Ps=Ns();function Fs(e,t){return e&&Ps(e,t,Yr)}function Is(e,t){return function(n,r){if(n==null)return n;if(!tr(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var Ls=Is(Fs),Rs=function(){return Qt.Date.now()},zs=`Expected a function`,Bs=Math.max,Vs=Math.min;function Hs(e,t,n){var r,i,a,o,s,c,l=0,u=!1,d=!1,f=!0;if(typeof e!=`function`)throw TypeError(zs);t=Zi(t)||0,Et(n)&&(u=!!n.leading,d=`maxWait`in n,a=d?Bs(Zi(n.maxWait)||0,t):a,f=`trailing`in n?!!n.trailing:f);function p(t){var n=r,a=i;return r=i=void 0,l=t,o=e.apply(a,n),o}function m(e){return l=e,s=setTimeout(_,t),u?p(e):o}function h(e){var n=e-c,r=e-l,i=t-n;return d?Vs(i,a-r):i}function g(e){var n=e-c,r=e-l;return c===void 0||n>=t||n<0||d&&r>=a}function _(){var e=Rs();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(Rs())}function x(){var e=Rs(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function Us(e,t,n){(n!==void 0&&!kt(e[t],n)||n===void 0&&!(t in e))&&Mt(e,t,n)}function Ws(e){return tn(e)&&tr(e)}function Gs(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}function Ks(e){return ba(e,ka(e))}function qs(e,t,n,r,i,a,o){var s=Gs(e,n),c=Gs(t,n),l=o.get(c);if(l){Us(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=Ut(c),p=!f&&st(c),m=!f&&!p&&nt(c);u=c,f||p||m?Ut(s)?u=s:Ws(s)?u=sa(s):p?(d=!1,u=Ga(c,!0)):m?(d=!1,u=ao(c,!0)):u=[]:Ln(c)||at(c)?(u=s,at(s)?u=Ks(s):(!Et(s)||_t(s))&&(u=Do(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),Us(e,n,u)}function Js(e,t,n,r,i){e!==t&&Ps(t,function(a,o){if(i||=new jn,Et(a))qs(e,t,o,n,Js,r,i);else{var s=r?r(Gs(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),Us(e,o,s)}},ka)}function Ys(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function Xs(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var Zs=Math.max,Qs=Math.min;function $s(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=ta(n),i=n<0?Zs(r+i,0):Qs(i,r-1)),ha(e,Ms(t,3),i,!0)}function ec(e,t){var n=-1,r=tr(e)?Array(e.length):[];return Ls(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function tc(e,t){return(Ut(e)?ti:ec)(e,Ms(t,3))}function nc(e,t){return Ma(tc(e,t),1)}var rc=1/0;function ic(e){return e!=null&&e.length?Ma(e,rc):[]}function ac(e,t){return t.length<2?e:Vn(e,Fa(t,0,-1))}function oc(e){return e===null}function sc(e){return e===void 0}var cc=Ta(function(e,t,n){Js(e,t,n)}),lc=Object.prototype.hasOwnProperty;function uc(e,t){t=Ur(t,e);var n=-1,r=t.length;if(!r)return!0;for(;++n<r;){var i=_n(t[n]);if(i===`__proto__`&&!lc.call(e,`__proto__`)||(i===`constructor`||i===`prototype`)&&n<r-1)return!1}var a=ac(e,t);return a==null||delete a[_n(Xs(t))]}function dc(e){return Ln(e)?void 0:e}var fc=1,pc=2,mc=4,hc=Pa(function(e,t){var n={};if(e==null)return n;var r=!1;t=ti(t,function(t){return t=Ur(t,e),r||=t.length>1,t}),ba(e,Ya(e),n),r&&(n=fs(n,fc|pc|mc,dc));for(var i=t.length;i--;)uc(n,t[i]);return n});function gc(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=Vn(e,o);n(s,o)&&ln(a,Ur(o,e),s)}return a}function _c(e,t){return gc(e,t,function(t,n){return Ts(e,n)})}var vc=Pa(function(e,t){return e==null?{}:_c(e,t)}),yc=`Expected a function`;function bc(e,t,n){var r=!0,i=!0;if(typeof e!=`function`)throw TypeError(yc);return Et(n)&&(r=`leading`in n?!!n.leading:r,i=`trailing`in n?!!n.trailing:i),Hs(e,t,{leading:r,maxWait:t,trailing:i})}var xc=gr&&1/Fr(new gr([,-0]))[1]==1/0?function(e){return new gr(e)}:oa,Sc=200;function Cc(e,t,n){var r=-1,i=ya,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=Ys;else if(a>=Sc){var l=t?null:xc(e);if(l)return Fr(l);o=!1,i=fr,c=new Dr}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}var wc=Ca(function(e){return Cc(Ma(e,1,Ws,!0))});p();var Tc=new Map;if(On){let e;document.addEventListener(`mousedown`,t=>e=t),document.addEventListener(`mouseup`,t=>{if(e){for(let n of Tc.values())for(let{documentHandler:r}of n)r(t,e);e=void 0}})}function Ec(e,t){let n=[];return y(t.arg)?n=t.arg:on(t.arg)&&n.push(t.arg),function(r,i){let a=t.instance.popperRef,o=r.target,s=i?.target,c=!t||!t.instance,l=!o||!s,u=e.contains(o)||e.contains(s),d=e===o,f=n.length&&n.some(e=>e?.contains(o))||n.length&&n.includes(s),p=a&&(a.contains(o)||a.contains(s));c||l||u||d||f||p||t.value(r,i)}}var Dc={beforeMount(e,t){Tc.has(e)||Tc.set(e,[]),Tc.get(e).push({documentHandler:Ec(e,t),bindingFn:t.value})},updated(e,t){Tc.has(e)||Tc.set(e,[]);let n=Tc.get(e),r=n.findIndex(e=>e.bindingFn===t.oldValue),i={documentHandler:Ec(e,t),bindingFn:t.value};r>=0?n.splice(r,1,i):n.push(i)},unmounted(e){Tc.delete(e)}};p();var Oc=`_RepeatClick`,kc={beforeMount(e,t){let n=t.value,{interval:r=100,delay:i=600}=L(n)?{}:n,a,o,s=()=>L(n)?n():n.handler(),c=()=>{o&&=(clearTimeout(o),void 0),a&&=(clearInterval(a),void 0)},l=e=>{e.button===0&&(c(),s(),document.addEventListener(`mouseup`,c,{once:!0,capture:!0}),o=setTimeout(()=>{a=setInterval(()=>{s()},r)},i))};e[Oc]={start:l,clear:c},e.addEventListener(`mousedown`,l)},unmounted(e){if(!e[Oc])return;let{start:t,clear:n}=e[Oc];t&&e.removeEventListener(`mousedown`,t),n&&(n(),document.removeEventListener(`mouseup`,n,!0)),e[Oc]=null}};m();var Ac=`_trap-focus-children`,jc=[],Mc=e=>{if(jc.length===0)return;let t=At(e),n=jc[jc.length-1][Ac];if(n.length>0&&t===$.tab){if(n.length===1){e.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}let t=e.shiftKey,r=e.target===n[0],i=e.target===n[n.length-1];r&&t&&(e.preventDefault(),n[n.length-1].focus()),i&&!t&&(e.preventDefault(),n[0].focus())}},Nc={beforeMount(e){e[Ac]=nn(e),jc.push(e),jc.length<=1&&document.addEventListener(`keydown`,Mc)},updated(e){v(()=>{e[Ac]=nn(e)})},unmounted(){jc.shift(),jc.length===0&&document.removeEventListener(`keydown`,Mc)}},Pc=!1,Fc,Ic,Lc,Rc,zc,Bc,Vc,Hc,Uc,Wc,Gc,Kc,qc,Jc,Yc;function Xc(){if(!Pc){Pc=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Kc=/\b(iPhone|iP[ao]d)/.exec(e),qc=/\b(iP[ao]d)/.exec(e),Wc=/Android/i.exec(e),Jc=/FBAN\/\w+;/i.exec(e),Yc=/Mobile/i.exec(e),Gc=!!/Win64/.exec(e),t){Fc=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,Fc&&document&&document.documentMode&&(Fc=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(e);Bc=r?parseFloat(r[1])+4:Fc,Ic=t[2]?parseFloat(t[2]):NaN,Lc=t[3]?parseFloat(t[3]):NaN,Rc=t[4]?parseFloat(t[4]):NaN,Rc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),zc=t&&t[1]?parseFloat(t[1]):NaN):zc=NaN}else Fc=Ic=Lc=zc=Rc=NaN;if(n){if(n[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Vc=!i||parseFloat(i[1].replace(`_`,`.`))}else Vc=!1;Hc=!!n[2],Uc=!!n[3]}else Vc=Hc=Uc=!1}}var Zc={ie:function(){return Xc()||Fc},ieCompatibilityMode:function(){return Xc()||Bc>Fc},ie64:function(){return Zc.ie()&&Gc},firefox:function(){return Xc()||Ic},opera:function(){return Xc()||Lc},webkit:function(){return Xc()||Rc},safari:function(){return Zc.webkit()},chrome:function(){return Xc()||zc},windows:function(){return Xc()||Hc},osx:function(){return Xc()||Vc},linux:function(){return Xc()||Uc},iphone:function(){return Xc()||Kc},mobile:function(){return Xc()||Kc||qc||Wc||Yc},nativeApp:function(){return Xc()||Jc},android:function(){return Xc()||Wc},ipad:function(){return Xc()||qc}},Qc=Zc,$c=!!(typeof window<`u`&&window.document&&window.document.createElement),el={canUseDOM:$c,canUseWorkers:typeof Worker<`u`,canUseEventListeners:$c&&!!(window.addEventListener||window.attachEvent),canUseViewport:$c&&!!window.screen,isInWorker:!$c},tl;el.canUseDOM&&(tl=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(``,``)!==!0);function nl(e,t){if(!el.canUseDOM||t&&!(`addEventListener`in document))return!1;var n=`on`+e,r=n in document;if(!r){var i=document.createElement(`div`);i.setAttribute(n,`return;`),r=typeof i[n]==`function`}return!r&&tl&&e===`wheel`&&(r=document.implementation.hasFeature(`Events.wheel`,`3.0`)),r}var rl=nl,il=10,al=40,ol=800;function sl(e){var t=0,n=0,r=0,i=0;return`detail`in e&&(n=e.detail),`wheelDelta`in e&&(n=-e.wheelDelta/120),`wheelDeltaY`in e&&(n=-e.wheelDeltaY/120),`wheelDeltaX`in e&&(t=-e.wheelDeltaX/120),`axis`in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*il,i=n*il,`deltaY`in e&&(i=e.deltaY),`deltaX`in e&&(r=e.deltaX),(r||i)&&e.deltaMode&&(e.deltaMode==1?(r*=al,i*=al):(r*=ol,i*=ol)),r&&!t&&(t=r<1?-1:1),i&&!n&&(n=i<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:i}}sl.getEventType=function(){return Qc.firefox()?`DOMMouseScroll`:rl(`wheel`)?`wheel`:`mousewheel`};var cl=sl,ll=`_Mousewheel`,ul=function(e,t){if(e&&e.addEventListener){dl(e);let n=function(e){let n=cl(e);t&&Reflect.apply(t,this,[e,n])};e[ll]={wheelHandler:n},e.addEventListener(`wheel`,n,{passive:!0})}},dl=e=>{e._Mousewheel?.wheelHandler&&(e.removeEventListener(`wheel`,e[ll].wheelHandler),e[ll]=null)},fl={beforeMount(e,t){ul(e,t.value)},unmounted(e){dl(e)},updated(e,t){t.value!==t.oldValue&&ul(e,t.value)}},pl=X({zIndex:{type:Y([Number,String]),default:100},target:{type:String,default:``},offset:{type:Number,default:0},position:{type:String,values:[`top`,`bottom`],default:`top`},teleported:Boolean,appendTo:{type:Y([String,Object]),default:`body`}}),ml={scroll:({scrollTop:e,fixed:t})=>wt(e)&&$t(t),[zi]:e=>$t(e)};m();var hl=[`class`,`style`],gl=/^on[A-Z]/,_l=(e={})=>{let{excludeListeners:t=!1,excludeKeys:n}=e,r=W(()=>(n?.value||[]).concat(hl)),i=A();return i?W(()=>Je(Object.entries(i.proxy?.$attrs).filter(([e])=>!r.value.includes(e)&&!(t&&gl.test(e))))):(rt(`use-attrs`,`getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function`),W(()=>({})))};m(),J();function vl(){let e=xe(),t=l(0),n=W(()=>({minWidth:`${Math.max(t.value,11)}px`}));return pr(e,()=>{t.value=e.value?.getBoundingClientRect().width??0}),{calculatorRef:e,calculatorWidth:t,inputStyle:n}}J(),m();var yl=({from:e,replacement:t,scope:n,version:r,ref:i,type:a=`API`},o)=>{K(()=>d(o),o=>{o&&rt(n,`[${a}] ${e} is about to be deprecated in version ${r}, please use ${t} instead.
1
+ import{$ as e,A as t,At as n,B as r,Bt as i,C as a,Ct as o,D as s,E as c,Et as l,F as u,Ft as d,G as f,Gt as p,H as m,I as h,J as g,Jt as _,K as v,Kt as y,L as b,M as x,Mt as S,N as C,Nt as w,O as T,P as E,Pt as D,Q as O,Qt as k,R as A,Rt as j,S as M,St as N,T as P,Tt as ee,U as F,Ut as te,V as ne,W as I,Wt as re,X as ie,Y as ae,Yt as L,Z as oe,_t as se,at as R,b as ce,bt as le,cn as z,ct as ue,d as de,dt as fe,en as pe,et as me,f as he,g as ge,gt as _e,h as ve,hn as ye,ht as B,in as V,it as H,j as U,jt as be,k as W,kt as xe,ln as Se,lt as Ce,m as we,mn as Te,mt as Ee,nt as De,ot as Oe,p as ke,pn as G,pt as K,q as Ae,rt as je,st as Me,t as Ne,tn as Pe,tt as q,un as Fe,v as Ie,vt as Le,w as Re,wt as ze,x as Be,xt as Ve,y as He,yn as Ue,yt as J,z as We,zt as Ge}from"./router-BqkHX02I.js";import{$ as Ke,$n as qe,$t as Je,A as Ye,An as Xe,At as Ze,B as Qe,Bn as $e,Bt as et,C as tt,Cn as nt,Ct as rt,D as it,Dn as at,Dt as Y,E as ot,En as st,Et as X,F as ct,Fn as lt,Ft as ut,Gn as dt,Gt as ft,H as pt,Hn as mt,Ht as ht,I as gt,In as _t,It as vt,J as yt,Jn as bt,Jt as xt,K as St,Kn as Ct,Kt as wt,L as Tt,Ln as Et,Lt as Dt,M as Ot,Mn as kt,Mt as At,N as jt,Nn as Mt,Nt,O as Pt,On as Ft,Ot as It,Pn as Lt,Pt as Rt,Q as zt,Qn as Bt,Qt as Vt,R as Ht,Rn as Ut,Rt as Wt,S as Gt,Sn as Kt,St as qt,T as Jt,Tn as Yt,Tt as Xt,U as Zt,Un as Qt,Ut as $t,V as en,Vn as tn,Vt as nn,W as rn,Wn as an,Wt as on,X as sn,Xn as cn,Xt as ln,Y as un,Yn as dn,Yt as fn,Z as pn,Zn as mn,Zt as hn,_ as gn,_n,_r as vn,_t as yn,a as bn,an as xn,ar as Sn,at as Cn,b as wn,bn as Tn,bt as En,c as Z,cn as Dn,cr as On,ct as kn,d as An,dn as jn,dr as Mn,dt as Nn,en as Pn,er as Fn,f as In,fn as Ln,fr as Rn,ft as zn,g as Bn,gn as Vn,gr as Hn,gt as Un,h as Wn,hn as Gn,hr as Kn,ht as Q,i as qn,in as Jn,ir as Yn,it as Xn,j as Zn,jn as Qn,jt as $n,k as er,kn as tr,kt as nr,l as rr,ln as ir,lr as ar,lt as or,m as sr,mn as cr,mr as lr,mt as ur,n as dr,nn as fr,nr as pr,nt as mr,o as hr,on as gr,or as _r,ot as vr,p as yr,pn as br,pr as xr,pt as Sr,q as Cr,qn as wr,qt as Tr,r as Er,rn as Dr,rr as Or,rt as kr,s as Ar,sn as jr,sr as Mr,st as Nr,t as Pr,tn as Fr,tr as Ir,tt as Lr,u as Rr,un as zr,ur as Br,ut as Vr,v as Hr,vn as Ur,vr as $,vt as Wr,w as Gr,wn as Kr,wt as qr,x as Jr,xn as Yr,xt as Xr,y as Zr,yn as Qr,yt as $r,z as ei,zn as ti,zt as ni}from"./message-CEBSyhlN.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),m(),J();var ri=typeof window<`u`,ii,ai=e=>ii=e,oi=Symbol();function si(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var ci=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function li(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function ui(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){hi(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function di(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function fi(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var pi=typeof navigator==`object`?navigator:{userAgent:``},mi=/Macintosh/.test(pi.userAgent)&&/AppleWebKit/.test(pi.userAgent)&&!/Safari/.test(pi.userAgent),hi=ri?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!mi?gi:`msSaveOrOpenBlob`in pi?_i:vi:()=>{};function gi(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?fi(r):di(r.href)?ui(e,t,n):(r.target=`_blank`,fi(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){fi(r)},0))}function _i(e,t=`download`,n){if(typeof e==`string`){if(di(e))ui(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){fi(t)})}}else navigator.msSaveOrOpenBlob(li(e,n),t)}function vi(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return ui(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(ci.HTMLElement))||`safari`in ci,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||mi)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:yi}=Object;function bi(){let e=se(!0),t=e.run(()=>l({})),n=[],r=[],i=N({install(e){ai(i),i._a=e,e.provide(oi,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var xi=()=>{};function Si(e,t,n,r=xi){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Le()&&o(i),i}function Ci(e,...t){e.forEach(e=>{e(...t)})}var wi=e=>e(),Ti=Symbol(),Ei=Symbol();function Di(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=si(i)&&si(r)&&Object.hasOwn(e,n)&&!Ve(r)&&!le(r)?Di(i,r):r}return e}var Oi=Symbol();function ki(e){return!e||typeof e!=`object`||!Object.hasOwn(e,Oi)}var{assign:Ai}=Object;function ji(e){return!!(Ve(e)&&e.effect)}function Mi(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),Ai(S(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=N(W(()=>{ai(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Ni(e,l,t,n,r,!0),c}function Ni(e,t,r={},i,a,o){let s,c=Ai({actions:{}},r),l={deep:!0},u,d,f=new Set,p=new Set,m,h=i.state.value[e];!o&&!h&&(i.state.value[e]={});let g;function _(t){let n;u=d=!1,typeof t==`function`?(t(i.state.value[e]),n={type:`patch function`,storeId:e,events:m}):(Di(i.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:m});let r=g=Symbol();v().then(()=>{g===r&&(u=!0)}),d=!0,Ci(f,n,i.state.value[e])}let y=o?function(){let{state:e}=r,t=e?e():{};this.$patch(e=>{Ai(e,t)})}:xi;function b(){s.stop(),f.clear(),p.clear(),i._s.delete(e)}let x=(t,n=``)=>{if(Ti in t)return t[Ei]=n,t;let r=function(){ai(i);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Ci(p,{args:n,name:r[Ei],store:C,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:C,n)}catch(e){throw Ci(o,e),e}return l instanceof Promise?l.then(e=>(Ci(a,e),e)).catch(e=>(Ci(o,e),Promise.reject(e))):(Ci(a,l),l)};return r[Ti]=!0,r[Ei]=n,r},S={_p:i,$id:e,$onAction:Si.bind(null,p),$patch:_,$reset:y,$subscribe(t,n={}){if(f.has(t))return xi;let r=Si(f,t,n.detached,()=>a()),a=s.run(()=>K(()=>i.state.value[e],r=>{(n.flush===`sync`?d:u)&&t({storeId:e,type:`direct`,events:m},r)},Ai({},l,n)));return r},$dispose:b},C=ze(S);i._s.set(e,C);let w=(i._a&&i._a.runWithContext||wi)(()=>i._e.run(()=>(s=se()).run(()=>t({action:x}))));for(let t in w){let n=w[t];Ve(n)&&!ji(n)||le(n)?o||(h&&ki(n)&&(Ve(n)?n.value=h[t]:((n instanceof Set||n instanceof Map)&&n.clear(),Di(n,h[t]))),i.state.value[e][t]=n):typeof n==`function`&&(w[t]=x(n,t),c.actions[t]=n)}return Ai(C,w),Ai(n(C),w),Object.defineProperty(C,"$state",{get:()=>i.state.value[e],set:e=>{_(t=>{Ai(t,e)})}}),i._p.forEach(e=>{let t=s.run(()=>e({store:C,app:i._a,pinia:i,options:c}));Ai(C,t)}),h&&o&&r.hydrate&&r.hydrate(C.$state,h),u=!0,d=!0,C}function Pi(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=ne();return n||=o?F(oi,null):null,n&&ai(n),n=ii,n._s.has(e)||(i?Ni(e,t,r,n):Mi(e,r,n)),n._s.get(e)}return a.$id=e,a}var Fi=[`left`,`center`,`right`],Ii=[`year`,`years`,`month`,`months`,`date`,`dates`,`week`,`quarter`,`quarters`,`datetime`,`datetimerange`,`daterange`,`monthrange`,`yearrange`,`quarterrange`],Li=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`],Ri=`update:modelValue`,zi=`change`,Bi=`input`,Vi=Symbol(`INSTALLED_KEY`),Hi=/\s/;function Ui(e){for(var t=e.length;t--&&Hi.test(e.charAt(t)););return t}var Wi=/^\s+/;function Gi(e){return e&&e.slice(0,Ui(e)+1).replace(Wi,``)}var Ki=NaN,qi=/^[-+]0x[0-9a-f]+$/i,Ji=/^0b[01]+$/i,Yi=/^0o[0-7]+$/i,Xi=parseInt;function Zi(e){if(typeof e==`number`)return e;if($e(e))return Ki;if(Et(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=Et(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Gi(e);var n=Ji.test(e);return n||Yi.test(e)?Xi(e.slice(2),n?2:8):qi.test(e)?Ki:+e}var Qi=1/0,$i=17976931348623157e292;function ea(e){return e?(e=Zi(e),e===Qi||e===-Qi?(e<0?-1:1)*$i:e===e?e:0):e===0?e:0}function ta(e){var t=ea(e),n=t%1;return t===t?n?t-n:t:0}function na(e){return e}var ra=Object.create,ia=function(){function e(){}return function(t){if(!Et(t))return{};if(ra)return ra(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function aa(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function oa(){}function sa(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}var ca=800,la=16,ua=Date.now;function da(e){var t=0,n=0;return function(){var r=ua(),i=la-(r-n);if(n=r,i>0){if(++t>=ca)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function fa(e){return function(){return e}}var pa=da(lt?function(e,t){return lt(e,`toString`,{configurable:!0,enumerable:!1,value:fa(t),writable:!0})}:na);function ma(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function ha(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function ga(e){return e!==e}function _a(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function va(e,t,n){return t===t?_a(e,t,n):ha(e,ga,n)}function ya(e,t){return!!(e!=null&&e.length)&&va(e,t,0)>-1}function ba(e,t,n,r){var i=!n;n||={};for(var a=-1,o=t.length;++a<o;){var s=t[a],c=r?r(n[s],e[s],s,n,e):void 0;c===void 0&&(c=e[s]),i?Mt(n,s,c):Qn(n,s,c)}return n}var xa=Math.max;function Sa(e,t,n){return t=xa(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=xa(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=r[i];return s[t]=n(o),aa(e,this,s)}}function Ca(e,t){return pa(Sa(e,t,na),e+``)}function wa(e,t,n){if(!Et(n))return!1;var r=typeof t;return(r==`number`?tr(n)&&Lt(t,n.length):r==`string`&&t in n)?kt(n[t],e):!1}function Ta(e){return Ca(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&typeof a==`function`?(i--,a):void 0,o&&wa(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var s=n[r];s&&e(t,s,r,a)}return t})}function Ea(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var Da=Object.prototype.hasOwnProperty;function Oa(e){if(!Et(e))return Ea(e);var t=Ft(e),n=[];for(var r in e)(r!=`constructor`||!t&&Da.call(e,r))&&n.push(r);return n}function ka(e){return tr(e)?Kt(e,!0):Oa(e)}var Aa=mt?mt.isConcatSpreadable:void 0;function ja(e){return Ut(e)||at(e)||!!(Aa&&e&&e[Aa])}function Ma(e,t,n,r,i){var a=-1,o=e.length;for(n||=ja,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?Ma(s,t-1,n,r,i):cr(i,s):r||(i[i.length]=s)}return i}function Na(e){return e!=null&&e.length?Ma(e,1):[]}function Pa(e){return pa(Sa(e,void 0,Na),e+``)}function Fa(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}function Ia(){if(!arguments.length)return[];var e=arguments[0];return Ut(e)?e:[e]}function La(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function Ra(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=Zi(n),n=n===n?n:0),t!==void 0&&(t=Zi(t),t=t===t?t:0),La(Zi(e),t,n)}function za(e,t){return e&&ba(t,Yr(t),e)}function Ba(e,t){return e&&ba(t,ka(t),e)}var Va=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Ha=Va&&typeof module==`object`&&module&&!module.nodeType&&module,Ua=Ha&&Ha.exports===Va?Qt.Buffer:void 0,Wa=Ua?Ua.allocUnsafe:void 0;function Ga(e,t){if(t)return e.slice();var n=e.length,r=Wa?Wa(n):new e.constructor(n);return e.copy(r),r}function Ka(e,t){return ba(e,ir(e),t)}var qa=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)cr(t,ir(e)),e=br(e);return t}:zr;function Ja(e,t){return ba(e,qa(e),t)}function Ya(e){return Dn(e,ka,qa)}var Xa=Object.prototype.hasOwnProperty;function Za(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Xa.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function Qa(e){var t=new e.constructor(e.byteLength);return new Jn(t).set(new Jn(e)),t}function $a(e,t){var n=t?Qa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var eo=/\w*$/;function to(e){var t=new e.constructor(e.source,eo.exec(e));return t.lastIndex=e.lastIndex,t}var no=mt?mt.prototype:void 0,ro=no?no.valueOf:void 0;function io(e){return ro?Object(ro.call(e)):{}}function ao(e,t){var n=t?Qa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var oo=`[object Boolean]`,so=`[object Date]`,co=`[object Map]`,lo=`[object Number]`,uo=`[object RegExp]`,fo=`[object Set]`,po=`[object String]`,mo=`[object Symbol]`,ho=`[object ArrayBuffer]`,go=`[object DataView]`,_o=`[object Float32Array]`,vo=`[object Float64Array]`,yo=`[object Int8Array]`,bo=`[object Int16Array]`,xo=`[object Int32Array]`,So=`[object Uint8Array]`,Co=`[object Uint8ClampedArray]`,wo=`[object Uint16Array]`,To=`[object Uint32Array]`;function Eo(e,t,n){var r=e.constructor;switch(t){case ho:return Qa(e);case oo:case so:return new r(+e);case go:return $a(e,n);case _o:case vo:case yo:case bo:case xo:case So:case Co:case wo:case To:return ao(e,n);case co:return new r;case lo:case po:return new r(e);case uo:return to(e);case fo:return new r;case mo:return io(e)}}function Do(e){return typeof e.constructor==`function`&&!Ft(e)?ia(br(e)):{}}var Oo=`[object Map]`;function ko(e){return tn(e)&&xn(e)==Oo}var Ao=Kr&&Kr.isMap,jo=Ao?Yt(Ao):ko,Mo=`[object Set]`;function No(e){return tn(e)&&xn(e)==Mo}var Po=Kr&&Kr.isSet,Fo=Po?Yt(Po):No,Io=1,Lo=2,Ro=4,zo=`[object Arguments]`,Bo=`[object Array]`,Vo=`[object Boolean]`,Ho=`[object Date]`,Uo=`[object Error]`,Wo=`[object Function]`,Go=`[object GeneratorFunction]`,Ko=`[object Map]`,qo=`[object Number]`,Jo=`[object Object]`,Yo=`[object RegExp]`,Xo=`[object Set]`,Zo=`[object String]`,Qo=`[object Symbol]`,$o=`[object WeakMap]`,es=`[object ArrayBuffer]`,ts=`[object DataView]`,ns=`[object Float32Array]`,rs=`[object Float64Array]`,is=`[object Int8Array]`,as=`[object Int16Array]`,os=`[object Int32Array]`,ss=`[object Uint8Array]`,cs=`[object Uint8ClampedArray]`,ls=`[object Uint16Array]`,us=`[object Uint32Array]`,ds={};ds[zo]=ds[Bo]=ds[es]=ds[ts]=ds[Vo]=ds[Ho]=ds[ns]=ds[rs]=ds[is]=ds[as]=ds[os]=ds[Ko]=ds[qo]=ds[Jo]=ds[Yo]=ds[Xo]=ds[Zo]=ds[Qo]=ds[ss]=ds[cs]=ds[ls]=ds[us]=!0,ds[Uo]=ds[Wo]=ds[$o]=!1;function fs(e,t,n,r,i,a){var o,s=t&Io,c=t&Lo,l=t&Ro;if(n&&(o=i?n(e,r,i,a):n(e)),o!==void 0)return o;if(!Et(e))return e;var u=Ut(e);if(u){if(o=Za(e),!s)return sa(e,o)}else{var d=xn(e),f=d==Wo||d==Go;if(st(e))return Ga(e,s);if(d==Jo||d==zo||f&&!i){if(o=c||f?{}:Do(e),!s)return c?Ja(e,Ba(o,e)):Ka(e,za(o,e))}else{if(!ds[d])return i?e:{};o=Eo(e,d,s)}}a||=new jn;var p=a.get(e);if(p)return p;a.set(e,o),Fo(e)?e.forEach(function(r){o.add(fs(r,t,n,r,e,a))}):jo(e)&&e.forEach(function(r,i){o.set(i,fs(r,t,n,i,e,a))});var m=u?void 0:(l?c?Ya:jr:c?ka:Yr)(e);return ma(m||e,function(r,i){m&&(i=r,r=e[i]),Qn(o,i,fs(r,t,n,i,e,a))}),o}var ps=1,ms=4;function hs(e){return fs(e,ps|ms)}var gs=1,_s=2;function vs(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new jn;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?Pn(u,l,gs|_s,r,d):f))return!1}}return!0}function ys(e){return e===e&&!Et(e)}function bs(e){for(var t=Yr(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,ys(i)]}return t}function xs(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}function Ss(e){var t=bs(e);return t.length==1&&t[0][2]?xs(t[0][0],t[0][1]):function(n){return n===e||vs(n,e,t)}}function Cs(e,t){return e!=null&&t in Object(e)}function ws(e,t,n){t=Ur(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=_n(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&Xe(i)&&Lt(o,i)&&(Ut(e)||at(e)))}function Ts(e,t){return e!=null&&ws(e,t,Cs)}var Es=1,Ds=2;function Os(e,t){return Tn(e)&&ys(t)?xs(_n(e),t):function(n){var r=Gn(n,e);return r===void 0&&r===t?Ts(n,e):Pn(t,r,Es|Ds)}}function ks(e){return function(t){return t?.[e]}}function As(e){return function(t){return Vn(t,e)}}function js(e){return Tn(e)?ks(_n(e)):As(e)}function Ms(e){return typeof e==`function`?e:e==null?na:typeof e==`object`?Ut(e)?Os(e[0],e[1]):Ss(e):js(e)}function Ns(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var Ps=Ns();function Fs(e,t){return e&&Ps(e,t,Yr)}function Is(e,t){return function(n,r){if(n==null)return n;if(!tr(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var Ls=Is(Fs),Rs=function(){return Qt.Date.now()},zs=`Expected a function`,Bs=Math.max,Vs=Math.min;function Hs(e,t,n){var r,i,a,o,s,c,l=0,u=!1,d=!1,f=!0;if(typeof e!=`function`)throw TypeError(zs);t=Zi(t)||0,Et(n)&&(u=!!n.leading,d=`maxWait`in n,a=d?Bs(Zi(n.maxWait)||0,t):a,f=`trailing`in n?!!n.trailing:f);function p(t){var n=r,a=i;return r=i=void 0,l=t,o=e.apply(a,n),o}function m(e){return l=e,s=setTimeout(_,t),u?p(e):o}function h(e){var n=e-c,r=e-l,i=t-n;return d?Vs(i,a-r):i}function g(e){var n=e-c,r=e-l;return c===void 0||n>=t||n<0||d&&r>=a}function _(){var e=Rs();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(Rs())}function x(){var e=Rs(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function Us(e,t,n){(n!==void 0&&!kt(e[t],n)||n===void 0&&!(t in e))&&Mt(e,t,n)}function Ws(e){return tn(e)&&tr(e)}function Gs(e,t){if((t!==`constructor`||typeof e[t]!=`function`)&&t!=`__proto__`)return e[t]}function Ks(e){return ba(e,ka(e))}function qs(e,t,n,r,i,a,o){var s=Gs(e,n),c=Gs(t,n),l=o.get(c);if(l){Us(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=Ut(c),p=!f&&st(c),m=!f&&!p&&nt(c);u=c,f||p||m?Ut(s)?u=s:Ws(s)?u=sa(s):p?(d=!1,u=Ga(c,!0)):m?(d=!1,u=ao(c,!0)):u=[]:Ln(c)||at(c)?(u=s,at(s)?u=Ks(s):(!Et(s)||_t(s))&&(u=Do(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),Us(e,n,u)}function Js(e,t,n,r,i){e!==t&&Ps(t,function(a,o){if(i||=new jn,Et(a))qs(e,t,o,n,Js,r,i);else{var s=r?r(Gs(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),Us(e,o,s)}},ka)}function Ys(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function Xs(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var Zs=Math.max,Qs=Math.min;function $s(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=ta(n),i=n<0?Zs(r+i,0):Qs(i,r-1)),ha(e,Ms(t,3),i,!0)}function ec(e,t){var n=-1,r=tr(e)?Array(e.length):[];return Ls(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function tc(e,t){return(Ut(e)?ti:ec)(e,Ms(t,3))}function nc(e,t){return Ma(tc(e,t),1)}var rc=1/0;function ic(e){return e!=null&&e.length?Ma(e,rc):[]}function ac(e,t){return t.length<2?e:Vn(e,Fa(t,0,-1))}function oc(e){return e===null}function sc(e){return e===void 0}var cc=Ta(function(e,t,n){Js(e,t,n)}),lc=Object.prototype.hasOwnProperty;function uc(e,t){t=Ur(t,e);var n=-1,r=t.length;if(!r)return!0;for(;++n<r;){var i=_n(t[n]);if(i===`__proto__`&&!lc.call(e,`__proto__`)||(i===`constructor`||i===`prototype`)&&n<r-1)return!1}var a=ac(e,t);return a==null||delete a[_n(Xs(t))]}function dc(e){return Ln(e)?void 0:e}var fc=1,pc=2,mc=4,hc=Pa(function(e,t){var n={};if(e==null)return n;var r=!1;t=ti(t,function(t){return t=Ur(t,e),r||=t.length>1,t}),ba(e,Ya(e),n),r&&(n=fs(n,fc|pc|mc,dc));for(var i=t.length;i--;)uc(n,t[i]);return n});function gc(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=Vn(e,o);n(s,o)&&ln(a,Ur(o,e),s)}return a}function _c(e,t){return gc(e,t,function(t,n){return Ts(e,n)})}var vc=Pa(function(e,t){return e==null?{}:_c(e,t)}),yc=`Expected a function`;function bc(e,t,n){var r=!0,i=!0;if(typeof e!=`function`)throw TypeError(yc);return Et(n)&&(r=`leading`in n?!!n.leading:r,i=`trailing`in n?!!n.trailing:i),Hs(e,t,{leading:r,maxWait:t,trailing:i})}var xc=gr&&1/Fr(new gr([,-0]))[1]==1/0?function(e){return new gr(e)}:oa,Sc=200;function Cc(e,t,n){var r=-1,i=ya,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=Ys;else if(a>=Sc){var l=t?null:xc(e);if(l)return Fr(l);o=!1,i=fr,c=new Dr}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}var wc=Ca(function(e){return Cc(Ma(e,1,Ws,!0))});p();var Tc=new Map;if(On){let e;document.addEventListener(`mousedown`,t=>e=t),document.addEventListener(`mouseup`,t=>{if(e){for(let n of Tc.values())for(let{documentHandler:r}of n)r(t,e);e=void 0}})}function Ec(e,t){let n=[];return y(t.arg)?n=t.arg:on(t.arg)&&n.push(t.arg),function(r,i){let a=t.instance.popperRef,o=r.target,s=i?.target,c=!t||!t.instance,l=!o||!s,u=e.contains(o)||e.contains(s),d=e===o,f=n.length&&n.some(e=>e?.contains(o))||n.length&&n.includes(s),p=a&&(a.contains(o)||a.contains(s));c||l||u||d||f||p||t.value(r,i)}}var Dc={beforeMount(e,t){Tc.has(e)||Tc.set(e,[]),Tc.get(e).push({documentHandler:Ec(e,t),bindingFn:t.value})},updated(e,t){Tc.has(e)||Tc.set(e,[]);let n=Tc.get(e),r=n.findIndex(e=>e.bindingFn===t.oldValue),i={documentHandler:Ec(e,t),bindingFn:t.value};r>=0?n.splice(r,1,i):n.push(i)},unmounted(e){Tc.delete(e)}};p();var Oc=`_RepeatClick`,kc={beforeMount(e,t){let n=t.value,{interval:r=100,delay:i=600}=L(n)?{}:n,a,o,s=()=>L(n)?n():n.handler(),c=()=>{o&&=(clearTimeout(o),void 0),a&&=(clearInterval(a),void 0)},l=e=>{e.button===0&&(c(),s(),document.addEventListener(`mouseup`,c,{once:!0,capture:!0}),o=setTimeout(()=>{a=setInterval(()=>{s()},r)},i))};e[Oc]={start:l,clear:c},e.addEventListener(`mousedown`,l)},unmounted(e){if(!e[Oc])return;let{start:t,clear:n}=e[Oc];t&&e.removeEventListener(`mousedown`,t),n&&(n(),document.removeEventListener(`mouseup`,n,!0)),e[Oc]=null}};m();var Ac=`_trap-focus-children`,jc=[],Mc=e=>{if(jc.length===0)return;let t=At(e),n=jc[jc.length-1][Ac];if(n.length>0&&t===$.tab){if(n.length===1){e.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}let t=e.shiftKey,r=e.target===n[0],i=e.target===n[n.length-1];r&&t&&(e.preventDefault(),n[n.length-1].focus()),i&&!t&&(e.preventDefault(),n[0].focus())}},Nc={beforeMount(e){e[Ac]=nn(e),jc.push(e),jc.length<=1&&document.addEventListener(`keydown`,Mc)},updated(e){v(()=>{e[Ac]=nn(e)})},unmounted(){jc.shift(),jc.length===0&&document.removeEventListener(`keydown`,Mc)}},Pc=!1,Fc,Ic,Lc,Rc,zc,Bc,Vc,Hc,Uc,Wc,Gc,Kc,qc,Jc,Yc;function Xc(){if(!Pc){Pc=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(Kc=/\b(iPhone|iP[ao]d)/.exec(e),qc=/\b(iP[ao]d)/.exec(e),Wc=/Android/i.exec(e),Jc=/FBAN\/\w+;/i.exec(e),Yc=/Mobile/i.exec(e),Gc=!!/Win64/.exec(e),t){Fc=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,Fc&&document&&document.documentMode&&(Fc=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(e);Bc=r?parseFloat(r[1])+4:Fc,Ic=t[2]?parseFloat(t[2]):NaN,Lc=t[3]?parseFloat(t[3]):NaN,Rc=t[4]?parseFloat(t[4]):NaN,Rc?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),zc=t&&t[1]?parseFloat(t[1]):NaN):zc=NaN}else Fc=Ic=Lc=zc=Rc=NaN;if(n){if(n[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Vc=!i||parseFloat(i[1].replace(`_`,`.`))}else Vc=!1;Hc=!!n[2],Uc=!!n[3]}else Vc=Hc=Uc=!1}}var Zc={ie:function(){return Xc()||Fc},ieCompatibilityMode:function(){return Xc()||Bc>Fc},ie64:function(){return Zc.ie()&&Gc},firefox:function(){return Xc()||Ic},opera:function(){return Xc()||Lc},webkit:function(){return Xc()||Rc},safari:function(){return Zc.webkit()},chrome:function(){return Xc()||zc},windows:function(){return Xc()||Hc},osx:function(){return Xc()||Vc},linux:function(){return Xc()||Uc},iphone:function(){return Xc()||Kc},mobile:function(){return Xc()||Kc||qc||Wc||Yc},nativeApp:function(){return Xc()||Jc},android:function(){return Xc()||Wc},ipad:function(){return Xc()||qc}},Qc=Zc,$c=!!(typeof window<`u`&&window.document&&window.document.createElement),el={canUseDOM:$c,canUseWorkers:typeof Worker<`u`,canUseEventListeners:$c&&!!(window.addEventListener||window.attachEvent),canUseViewport:$c&&!!window.screen,isInWorker:!$c},tl;el.canUseDOM&&(tl=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(``,``)!==!0);function nl(e,t){if(!el.canUseDOM||t&&!(`addEventListener`in document))return!1;var n=`on`+e,r=n in document;if(!r){var i=document.createElement(`div`);i.setAttribute(n,`return;`),r=typeof i[n]==`function`}return!r&&tl&&e===`wheel`&&(r=document.implementation.hasFeature(`Events.wheel`,`3.0`)),r}var rl=nl,il=10,al=40,ol=800;function sl(e){var t=0,n=0,r=0,i=0;return`detail`in e&&(n=e.detail),`wheelDelta`in e&&(n=-e.wheelDelta/120),`wheelDeltaY`in e&&(n=-e.wheelDeltaY/120),`wheelDeltaX`in e&&(t=-e.wheelDeltaX/120),`axis`in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*il,i=n*il,`deltaY`in e&&(i=e.deltaY),`deltaX`in e&&(r=e.deltaX),(r||i)&&e.deltaMode&&(e.deltaMode==1?(r*=al,i*=al):(r*=ol,i*=ol)),r&&!t&&(t=r<1?-1:1),i&&!n&&(n=i<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:i}}sl.getEventType=function(){return Qc.firefox()?`DOMMouseScroll`:rl(`wheel`)?`wheel`:`mousewheel`};var cl=sl,ll=`_Mousewheel`,ul=function(e,t){if(e&&e.addEventListener){dl(e);let n=function(e){let n=cl(e);t&&Reflect.apply(t,this,[e,n])};e[ll]={wheelHandler:n},e.addEventListener(`wheel`,n,{passive:!0})}},dl=e=>{e._Mousewheel?.wheelHandler&&(e.removeEventListener(`wheel`,e[ll].wheelHandler),e[ll]=null)},fl={beforeMount(e,t){ul(e,t.value)},unmounted(e){dl(e)},updated(e,t){t.value!==t.oldValue&&ul(e,t.value)}},pl=X({zIndex:{type:Y([Number,String]),default:100},target:{type:String,default:``},offset:{type:Number,default:0},position:{type:String,values:[`top`,`bottom`],default:`top`},teleported:Boolean,appendTo:{type:Y([String,Object]),default:`body`}}),ml={scroll:({scrollTop:e,fixed:t})=>wt(e)&&$t(t),[zi]:e=>$t(e)};m();var hl=[`class`,`style`],gl=/^on[A-Z]/,_l=(e={})=>{let{excludeListeners:t=!1,excludeKeys:n}=e,r=W(()=>(n?.value||[]).concat(hl)),i=A();return i?W(()=>Je(Object.entries(i.proxy?.$attrs).filter(([e])=>!r.value.includes(e)&&!(t&&gl.test(e))))):(rt(`use-attrs`,`getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function`),W(()=>({})))};m(),J();function vl(){let e=xe(),t=l(0),n=W(()=>({minWidth:`${Math.max(t.value,11)}px`}));return pr(e,()=>{t.value=e.value?.getBoundingClientRect().width??0}),{calculatorRef:e,calculatorWidth:t,inputStyle:n}}J(),m();var yl=({from:e,replacement:t,scope:n,version:r,ref:i,type:a=`API`},o)=>{K(()=>d(o),o=>{o&&rt(n,`[${a}] ${e} is about to be deprecated in version ${r}, please use ${t} instead.
2
2
  For more detail, please visit: ${i}
3
3
  `)},{immediate:!0})};p();var bl=(e=``)=>e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`),xl=e=>i(e);m(),J();var Sl=(e,t,n,r)=>{let i={offsetX:0,offsetY:0},a=l(!1),o=(t,n)=>{if(e.value){let{offsetX:a,offsetY:o}=i,s=e.value.getBoundingClientRect(),c=Math.max(s.left,0),l=Math.max(s.top,0),u=s.width,d=s.height,f=document.documentElement.clientWidth,p=document.documentElement.clientHeight,m=-c+a,h=-l+o,g=f-c-u+a,_=p-l-(d<p?d:0)+o;r?.value||(t=Ra(t,m,g),n=Ra(n,h,_)),i.offsetX=t,i.offsetY=n,e.value.style.transform=`translate(${Wr(t)}, ${Wr(n)})`}},s=e=>{let t=e.clientX,n=e.clientY,{offsetX:r,offsetY:s}=i,c=e=>{a.value||=!0,o(r+e.clientX-t,s+e.clientY-n)},l=()=>{a.value=!1,document.removeEventListener(`mousemove`,c),document.removeEventListener(`mouseup`,l)};document.addEventListener(`mousemove`,c),document.addEventListener(`mouseup`,l)},c=()=>{t.value&&e.value&&(t.value.addEventListener(`mousedown`,s),window.addEventListener(`resize`,f))},u=()=>{t.value&&e.value&&(t.value.removeEventListener(`mousedown`,s),window.removeEventListener(`resize`,f))},d=()=>{i.offsetX=0,i.offsetY=0,e.value&&(e.value.style.transform=``)},f=()=>{let{offsetX:e,offsetY:t}=i;o(e,t)};return O(()=>{Ee(()=>{n.value?c():u()})}),ae(()=>{u()}),{isDragging:a,resetPosition:d,updatePosition:f}};function Cl(e,t,n,r){let i=n-t;return e/=r/2,e<1?i/2*e*e*e+t:i/2*((e-=2)*e*e+2)+t}var wl=e=>On?window.requestAnimationFrame(e):setTimeout(e,16),Tl=e=>On?window.cancelAnimationFrame(e):clearTimeout(e);p();var El=(e,t)=>{if(!On)return!1;let n={undefined:`overflow`,true:`overflow-y`,false:`overflow-x`}[String(t)],r=$r(e,n);return[`scroll`,`auto`,`overlay`].some(e=>r.includes(e))},Dl=(e,t)=>{if(!On)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(El(n,t))return n;n=et(n)?n.host:n.parentNode}return n},Ol,kl=e=>{if(!On)return 0;if(Ol!==void 0)return Ol;let t=document.createElement(`div`);t.className=`${e}-scrollbar__wrap`,t.style.visibility=`hidden`,t.style.width=`100px`,t.style.position=`absolute`,t.style.top=`-9999px`,document.body.appendChild(t);let n=t.offsetWidth;t.style.overflow=`scroll`;let r=document.createElement(`div`);r.style.width=`100%`,t.appendChild(r);let i=r.offsetWidth;return t.parentNode?.removeChild(t),Ol=n-i,Ol};function Al(e,t){if(!On)return;if(!t){e.scrollTop=0;return}let n=[],r=t.offsetParent;for(;r!==null&&e!==r&&e.contains(r);)n.push(r),r=r.offsetParent;let i=t.offsetTop+n.reduce((e,t)=>e+t.offsetTop,0),a=i+t.offsetHeight,o=e.scrollTop,s=o+e.clientHeight;i<o?e.scrollTop=i:a>s&&(e.scrollTop=a-e.clientHeight)}function jl(e,t,n,r,i){let a=Date.now(),o,s=()=>{let c=Date.now()-a,l=Cl(c>r?r:c,t,n,r);fn(e)?e.scrollTo(window.pageXOffset,l):e.scrollTop=l,c<r?o=wl(s):L(i)&&i()};return s(),()=>{o&&Tl(o)}}var Ml=(e,t)=>fn(t)?e.ownerDocument.documentElement:t,Nl=e=>fn(e)?window.scrollY:e.scrollTop;m(),J();var Pl=(e,t={})=>{Ve(e)||qr(`[useLockscreen]`,`You need to pass a ref param to this function`);let n=t.ns||Q(`popup`),r=W(()=>n.bm(`parent`,`hidden`)),i=0,a=!1,s=`0`,c=!1,l=()=>{c||(c=!0,setTimeout(()=>{typeof document<`u`&&a&&document&&(document.body.style.width=s,Xr(document.body,r.value))},200))};K(e,e=>{if(!e){l();return}c=!1,a=!En(document.body,r.value),a&&(s=document.body.style.width,yn(document.body,r.value)),i=kl(n.namespace.value);let t=document.documentElement.clientHeight<document.body.scrollHeight,o=$r(document.body,`overflowY`);i>0&&(t||o===`scroll`)&&a&&(document.body.style.width=`calc(100% - ${i}px)`)}),o(()=>l())};p(),m();var Fl=Xt({type:Y(Boolean),default:null}),Il=Xt({type:Y(Function)}),Ll=e=>{let t=`update:${e}`,n=`onUpdate:${e}`,r=[t];return{useModelToggle:({indicator:r,toggleReason:i,shouldHideWhenRouteChanges:a,shouldProceed:o,onShow:s,onHide:c})=>{let l=A(),{emit:u}=l,d=l.props,f=W(()=>L(d[n])),p=W(()=>d[e]===null),m=e=>{r.value!==!0&&(r.value=!0,i&&(i.value=e),L(s)&&s(e))},h=e=>{r.value!==!1&&(r.value=!1,i&&(i.value=e),L(c)&&c(e))},g=e=>{if(d.disabled===!0||L(o)&&!o())return;let n=f.value&&On;n&&u(t,!0),(p.value||!n)&&m(e)},_=e=>{if(d.disabled===!0||!On)return;let n=f.value&&On;n&&u(t,!1),(p.value||!n)&&h(e)},v=e=>{$t(e)&&(d.disabled&&e?f.value&&u(t,!1):r.value!==e&&(e?m():h()))};return K(()=>d[e],v),a&&l.appContext.config.globalProperties.$route!==void 0&&K(()=>({...l.proxy.$route}),()=>{a.value&&r.value&&_()}),O(()=>{v(d[e])}),{hide:_,show:g,toggle:()=>{r.value?_():g()},hasUpdateHandler:f}},useModelToggleProps:{[e]:Fl,[n]:Il},useModelToggleEmits:r}},{useModelToggle:Rl,useModelToggleProps:zl,useModelToggleEmits:Bl}=Ll(`modelValue`);m();var Vl=e=>{let t=A();return W(()=>t?.proxy?.$props?.[e])},Hl=`bottom`,Ul=`right`,Wl=`left`,Gl=`auto`,Kl=[`top`,Hl,Ul,Wl],ql=`start`,Jl=`clippingParents`,Yl=`viewport`,Xl=`popper`,Zl=`reference`,Ql=Kl.reduce(function(e,t){return e.concat([t+`-`+ql,t+`-end`])},[]),$l=[].concat(Kl,[Gl]).reduce(function(e,t){return e.concat([t,t+`-`+ql,t+`-end`])},[]),eu=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function tu(e){return e?(e.nodeName||``).toLowerCase():null}function nu(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ru(e){return e instanceof nu(e).Element||e instanceof Element}function iu(e){return e instanceof nu(e).HTMLElement||e instanceof HTMLElement}function au(e){return typeof ShadowRoot>`u`?!1:e instanceof nu(e).ShadowRoot||e instanceof ShadowRoot}function ou(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];!iu(i)||!tu(i)||(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function su(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});!iu(r)||!tu(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var cu={name:`applyStyles`,enabled:!0,phase:`write`,fn:ou,effect:su,requires:[`computeStyles`]};function lu(e){return e.split(`-`)[0]}var uu=Math.max,du=Math.min,fu=Math.round;function pu(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function mu(){return!/^((?!chrome|android).)*safari/i.test(pu())}function hu(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&iu(e)&&(i=e.offsetWidth>0&&fu(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&fu(r.height)/e.offsetHeight||1);var o=(ru(e)?nu(e):window).visualViewport,s=!mu()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function gu(e){var t=hu(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function _u(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&au(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function vu(e){return nu(e).getComputedStyle(e)}function yu(e){return[`table`,`td`,`th`].indexOf(tu(e))>=0}function bu(e){return((ru(e)?e.ownerDocument:e.document)||window.document).documentElement}function xu(e){return tu(e)===`html`?e:e.assignedSlot||e.parentNode||(au(e)?e.host:null)||bu(e)}function Su(e){return!iu(e)||vu(e).position===`fixed`?null:e.offsetParent}function Cu(e){var t=/firefox/i.test(pu());if(/Trident/i.test(pu())&&iu(e)&&vu(e).position===`fixed`)return null;var n=xu(e);for(au(n)&&(n=n.host);iu(n)&&[`html`,`body`].indexOf(tu(n))<0;){var r=vu(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function wu(e){for(var t=nu(e),n=Su(e);n&&yu(n)&&vu(n).position===`static`;)n=Su(n);return n&&(tu(n)===`html`||tu(n)===`body`&&vu(n).position===`static`)?t:n||Cu(e)||t}function Tu(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function Eu(e,t,n){return uu(e,du(t,n))}function Du(e,t,n){var r=Eu(e,t,n);return r>n?n:r}function Ou(){return{top:0,right:0,bottom:0,left:0}}function ku(e){return Object.assign({},Ou(),e)}function Au(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var ju=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,ku(typeof e==`number`?Au(e,Kl):e)};function Mu(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=lu(n.placement),c=Tu(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(a&&o){var u=ju(i.padding,n),d=gu(a),f=c===`y`?`top`:Wl,p=c===`y`?Hl:Ul,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=wu(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=Eu(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function Nu(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||_u(t.elements.popper,r)&&(t.elements.arrow=r))}var Pu={name:`arrow`,enabled:!0,phase:`main`,fn:Mu,effect:Nu,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function Fu(e){return e.split(`-`)[1]}var Iu={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function Lu(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:fu(n*i)/i||0,y:fu(r*i)/i||0}}function Ru(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=Wl,b=`top`,x=window;if(l){var S=wu(n),C=`clientHeight`,w=`clientWidth`;if(S===nu(n)&&(S=bu(n),vu(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=Hl;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=Ul;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&Iu),O=u===!0?Lu({x:p,y:h},nu(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function zu(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0||r,a=n.adaptive,o=a===void 0||a,s=n.roundOffsets,c=s===void 0||s,l={placement:lu(t.placement),variation:Fu(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Ru(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Ru(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Bu={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:zu,data:{}},Vu={passive:!0};function Hu(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0||i,o=r.resize,s=o===void 0||o,c=nu(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,Vu)}),s&&c.addEventListener(`resize`,n.update,Vu),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,Vu)}),s&&c.removeEventListener(`resize`,n.update,Vu)}}var Uu={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:Hu,data:{}},Wu={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Gu(e){return e.replace(/left|right|bottom|top/g,function(e){return Wu[e]})}var Ku={start:`end`,end:`start`};function qu(e){return e.replace(/start|end/g,function(e){return Ku[e]})}function Ju(e){var t=nu(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Yu(e){return hu(bu(e)).left+Ju(e).scrollLeft}function Xu(e,t){var n=nu(e),r=bu(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=mu();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+Yu(e),y:c}}function Zu(e){var t=bu(e),n=Ju(e),r=e.ownerDocument?.body,i=uu(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=uu(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+Yu(e),s=-n.scrollTop;return vu(r||t).direction===`rtl`&&(o+=uu(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function Qu(e){var t=vu(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function $u(e){return[`html`,`body`,`#document`].indexOf(tu(e))>=0?e.ownerDocument.body:iu(e)&&Qu(e)?e:$u(xu(e))}function ed(e,t){t===void 0&&(t=[]);var n=$u(e),r=n===e.ownerDocument?.body,i=nu(n),a=r?[i].concat(i.visualViewport||[],Qu(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(ed(xu(a)))}function td(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function nd(e,t){var n=hu(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function rd(e,t,n){return t===`viewport`?td(Xu(e,n)):ru(t)?nd(t,n):td(Zu(bu(e)))}function id(e){var t=ed(xu(e)),n=[`absolute`,`fixed`].indexOf(vu(e).position)>=0&&iu(e)?wu(e):e;return ru(n)?t.filter(function(e){return ru(e)&&_u(e,n)&&tu(e)!==`body`}):[]}function ad(e,t,n,r){var i=t===`clippingParents`?id(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=rd(e,n,r);return t.top=uu(i.top,t.top),t.right=du(i.right,t.right),t.bottom=du(i.bottom,t.bottom),t.left=uu(i.left,t.left),t},rd(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function od(e){var t=e.reference,n=e.element,r=e.placement,i=r?lu(r):null,a=r?Fu(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case Hl:c={x:o,y:t.y+t.height};break;case Ul:c={x:t.x+t.width,y:s};break;case Wl:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Tu(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case ql:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2)}}return c}function sd(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?Jl:s,l=n.rootBoundary,u=l===void 0?Yl:l,d=n.elementContext,f=d===void 0?Xl:d,p=n.altBoundary,m=p!==void 0&&p,h=n.padding,g=h===void 0?0:h,_=ku(typeof g==`number`?Au(g,Kl):g),v=f===`popper`?Zl:Xl,y=e.rects.popper,b=e.elements[m?v:f],x=ad(ru(b)?b:b.contextElement||bu(e.elements.popper),c,u,o),S=hu(e.elements.reference),C=od({reference:S,element:y,placement:i}),w=td(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function cd(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?$l:c,u=Fu(r),d=u?s?Ql:Ql.filter(function(e){return Fu(e)===u}):Kl,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=sd(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[lu(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function ld(e){if(lu(e)===`auto`)return[];var t=Gu(e);return[qu(e),t,qu(t)]}function ud(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o===void 0||o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0||p,h=n.allowedAutoPlacements,g=t.options.placement,_=lu(g)===g,v=c||(_||!m?[Gu(g)]:ld(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(lu(n)===`auto`?cd(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T<y.length;T++){var E=y[T],D=lu(E),O=Fu(E)===ql,k=[`top`,Hl].indexOf(D)>=0,A=k?`width`:`height`,j=sd(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?Ul:Wl:O?Hl:`top`;b[A]>x[A]&&(M=Gu(M));var N=Gu(M),P=[];if(a&&P.push(j[D]<=0),s&&P.push(j[M]<=0,j[N]<=0),P.every(function(e){return e})){w=E,C=!1;break}S.set(E,P)}if(C)for(var ee=m?3:1,F=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},te=ee;te>0&&F(te)!==`break`;te--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var dd={name:`flip`,enabled:!0,phase:`main`,fn:ud,requiresIfExists:[`offset`],data:{_skip:!1}};function fd(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function pd(e){return[`top`,Ul,Hl,Wl].some(function(t){return e[t]>=0})}function md(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=sd(t,{elementContext:`reference`}),s=sd(t,{altBoundary:!0}),c=fd(o,r),l=fd(s,i,a),u=pd(c),d=pd(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var hd={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:md};function gd(e,t,n){var r=lu(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function _d(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=$l.reduce(function(e,n){return e[n]=gd(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var vd={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:_d};function yd(e){var t=e.state,n=e.name;t.modifiersData[n]=od({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}var bd={name:`popperOffsets`,enabled:!0,phase:`read`,fn:yd,data:{}};function xd(e){return e===`x`?`y`:`x`}function Sd(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o!==void 0&&o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0||f,m=n.tetherOffset,h=m===void 0?0:m,g=sd(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=lu(t.placement),v=Fu(t.placement),y=!v,b=Tu(_),x=xd(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:Wl,A=b===`y`?Hl:Ul,j=b===`y`?`height`:`width`,M=S[b],N=M+g[k],P=M-g[A],ee=p?-w[j]/2:0,F=v===`start`?C[j]:w[j],te=v===`start`?-w[j]:-C[j],ne=t.elements.arrow,I=p&&ne?gu(ne):{width:0,height:0},re=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Ou(),ie=re[k],ae=re[A],L=Eu(0,C[j],I[j]),oe=y?C[j]/2-ee-L-ie-E.mainAxis:F-L-ie-E.mainAxis,se=y?-C[j]/2+ee+L+ae+E.mainAxis:te+L+ae+E.mainAxis,R=t.elements.arrow&&wu(t.elements.arrow),ce=R?b===`y`?R.clientTop||0:R.clientLeft||0:0,le=D?.[b]??0,z=M+oe-le-ce,ue=M+se-le,de=Eu(p?du(N,z):N,M,p?uu(P,ue):P);S[b]=de,O[b]=de-M}if(s){var fe=b===`x`?`top`:Wl,pe=b===`x`?Hl:Ul,me=S[x],he=x===`y`?`height`:`width`,ge=me+g[fe],_e=me-g[pe],ve=[`top`,Wl].indexOf(_)!==-1,ye=D?.[x]??0,B=ve?ge:me-C[he]-w[he]-ye+E.altAxis,V=ve?me+C[he]+w[he]-ye-E.altAxis:_e,H=p&&ve?Du(B,me,V):Eu(p?B:ge,me,p?V:_e);S[x]=H,O[x]=H-me}t.modifiersData[r]=O}}var Cd={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Sd,requiresIfExists:[`offset`]};function wd(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Td(e){return e===nu(e)||!iu(e)?Ju(e):wd(e)}function Ed(e){var t=e.getBoundingClientRect(),n=fu(t.width)/e.offsetWidth||1,r=fu(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Dd(e,t,n){n===void 0&&(n=!1);var r=iu(t),i=iu(t)&&Ed(t),a=bu(t),o=hu(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((tu(t)!==`body`||Qu(a))&&(s=Td(t)),iu(t)?(c=hu(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=Yu(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function Od(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function kd(e){var t=Od(e);return eu.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function Ad(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function jd(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var Md={placement:`bottom`,modifiers:[],strategy:`absolute`};function Nd(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function Pd(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?Md:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},Md,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:ru(e)?ed(e):e.contextElement?ed(e.contextElement):[],popper:ed(t)};var s=kd(jd([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(Nd(t,n)){i.rects={reference:Dd(t,wu(n),i.options.strategy===`fixed`),popper:gu(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r<i.orderedModifiers.length;r++){if(i.reset===!0){i.reset=!1,r=-1;continue}var a=i.orderedModifiers[r],o=a.fn,l=a.options,u=l===void 0?{}:l,d=a.name;typeof o==`function`&&(i=o({state:i,options:u,name:d,instance:c})||i)}}}},update:Ad(function(){return new Promise(function(e){c.forceUpdate(),e(i)})}),destroy:function(){u(),s=!0}};if(!Nd(e,t))return c;c.setOptions(n).then(function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)});function l(){i.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,r=n===void 0?{}:n,a=e.effect;if(typeof a==`function`){var s=a({state:i,name:t,instance:c,options:r});o.push(s||function(){})}})}function u(){o.forEach(function(e){return e()}),o=[]}return c}}Pd(),Pd({defaultModifiers:[Uu,bd,Bu,cu]});var Fd=Pd({defaultModifiers:[Uu,bd,Bu,cu,vd,dd,Cd,Pu,hd]});m(),J();var Id=(e,t,n={})=>{let r={name:`updateState`,enabled:!0,phase:`write`,fn:({state:e})=>{let t=Ld(e);Object.assign(o.value,t)},requires:[`computeStyles`]},i=W(()=>{let{onFirstUpdate:e,placement:t,strategy:i,modifiers:a}=d(n);return{onFirstUpdate:e,placement:t||`bottom`,strategy:i||`absolute`,modifiers:[...a||[],r,{name:`applyStyles`,enabled:!1}]}}),a=xe(),o=l({styles:{popper:{position:d(i).strategy,left:`0`,top:`0`},arrow:{position:`absolute`}},attributes:{}}),s=()=>{a.value&&=(a.value.destroy(),void 0)};return K(i,e=>{let t=d(a);t&&t.setOptions(e)},{deep:!0}),K([e,t],([e,t])=>{s(),e&&t&&(a.value=Fd(e,t,d(i)))}),ae(()=>{s()}),{state:W(()=>({...d(a)?.state||{}})),styles:W(()=>d(o).styles),attributes:W(()=>d(o).attributes),update:()=>d(a)?.update(),forceUpdate:()=>d(a)?.forceUpdate(),instanceRef:W(()=>d(a))}};function Ld(e){let t=Object.keys(e.elements);return{styles:Je(t.map(t=>[t,e.styles[t]||{}])),attributes:Je(t.map(t=>[t,e.attributes[t]]))}}p();var Rd=e=>{if(!e)return{onClick:j,onMousedown:j,onMouseup:j};let t=!1,n=!1;return{onClick:r=>{t&&n&&e(r),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}};p(),m(),J();var zd=(e,t=0)=>{if(t===0)return e;let n=l(k(t)&&!!t.initVal),r=null,i=t=>{if(xt(t)){n.value=e.value;return}r&&clearTimeout(r),r=setTimeout(()=>{n.value=e.value},t)},a=e=>{e===`leading`?wt(t)?i(t):i(t.leading):k(t)?i(t.trailing):n.value=!1};return O(()=>a(`leading`)),K(()=>e.value,e=>{a(e?`leading`:`trailing`)}),n};function Bd(){let e,t=(t,r)=>{n(),e=globalThis.setTimeout(t,r)},n=()=>{e!==void 0&&(globalThis.clearTimeout(e),e=void 0)};return Rn(()=>n()),{registerTimeout:t,cancelTimeout:n}}m(),J();var Vd={prefix:Math.floor(Math.random()*1e4),current:0},Hd=Symbol(`elIdInjection`),Ud=()=>A()?F(Hd,Vd):Vd,Wd=e=>{let t=Ud();!On&&t===Vd&&rt(`IdInjection`,`Looks like you are using server rendering, you must provide a id provider to ensure the hydration process to be succeed
4
4
  usage: app.provide(ID_INJECTION_KEY, {