scrum-skills 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/assets/board/200.html +1 -1
- package/assets/board/404.html +1 -1
- package/assets/board/_nuxt/S08nFESZ.js +3 -0
- package/assets/board/_nuxt/builds/latest.json +1 -1
- package/assets/board/_nuxt/builds/meta/4a212bd2-438f-4b26-b8f3-57db47ca0799.json +1 -0
- package/assets/board/_nuxt/last-change.1Su4GrCN.css +1 -0
- package/assets/board/_nuxt/{CkF353aX.js → pIF8vEtK.js} +2 -2
- package/assets/board/burndown/index.html +1 -1
- package/assets/board/epics/index.html +1 -1
- package/assets/board/gantt/index.html +1 -1
- package/assets/board/index.html +1 -1
- package/assets/board/last-change/index.html +1 -1
- package/assets/board/milestones/index.html +1 -1
- package/package.json +1 -1
- package/tools/git-commit.mjs +216 -0
- package/tools/projects.mjs +16 -1
- package/assets/board/_nuxt/DrprggWq.js +0 -3
- package/assets/board/_nuxt/builds/meta/d7f0931f-32b3-4c23-b05f-7cbf5851b226.json +0 -1
- package/assets/board/_nuxt/last-change.8FndoiOt.css +0 -1
package/README.md
CHANGED
|
@@ -101,7 +101,7 @@ npx scrum-skills serve # → http://localhost:4173
|
|
|
101
101
|
| 页面 | 内容 |
|
|
102
102
|
|---|---|
|
|
103
103
|
| `/` 看板 | 六列(草稿/就绪/进行中/评审/完成/已取消),按史诗/里程碑筛选,按优先级或 WSJF 重排;卡片带类型、阻塞、范围变更标记 |
|
|
104
|
-
| `/last-change` 最后更新 | 渲染 `agile/last-change.json
|
|
104
|
+
| `/last-change` 最后更新 | 渲染 `agile/last-change.json`:故事/任务变更清单、额外做的事、验证结果、调试入口与账号、测试前准备、逐条测试场景、说明与遗留;变更清单抬头可「复制变更信息」(生成 Conventional Commits 提交信息)或「自动提交」(看清信息与文件清单后 `git add -A` + `git commit`,只提交到本地、不 push);点「查看历史」按 git 提交翻看任一版本(只读,顶部页签可在最新/历史间切换);没有该文件时给空状态 |
|
|
105
105
|
| `/epics` 史诗与目标 | 每个史诗的关键结果(KR)进度、故事完成度、阻塞与缺陷统计 |
|
|
106
106
|
| `/gantt` 甘特图 | 迭代分带,浅色条=计划、实心条=journal 推出的实际执行区间,菱形=里程碑,依赖与阻塞清单 |
|
|
107
107
|
| `/milestones` 里程碑 / MVP | 按 kind 分组,显示达成口径、挂的故事、剩余天数 |
|
|
@@ -186,7 +186,7 @@ AGILE_DIR=/别的项目 pnpm dev # 看别的项目的数据
|
|
|
186
186
|
|
|
187
187
|
pnpm build # 构建看板静态产物 → assets/board
|
|
188
188
|
pnpm validate # 只校验数据
|
|
189
|
-
pnpm test # 回归测试(校验器 / 看板皮肤与配色 / 布局回归 / 卡片操作 / 项目目录 / 最后更新页与历史版本 / 交付说明写入策略 / AI 服务与面板,
|
|
189
|
+
pnpm test # 回归测试(校验器 / 看板皮肤与配色 / 布局回归 / 卡片操作 / 项目目录 / 最后更新页与历史版本 / 交付说明写入策略 / 提交信息与自动提交 / AI 服务与面板,179 个用例)
|
|
190
190
|
pnpm serve # 起看板(读目标目录的 agile/,同时提供 /api/ai)
|
|
191
191
|
```
|
|
192
192
|
|
package/assets/board/200.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
|
package/assets/board/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{D as e,E as t,Ht as n,On as r,T as i,Zn as a,_ as o,b as s,bt as c,ct as l,er as ee,g as u,it as d,k as te,mt as f,o as p,qt as ne,tr as m,tt as re,u as ie,v as h,vn as g,y as _}from"./DZo3dYLJ.js";import{w as v}from"./51OWHj8c.js";import{t as ae}from"./CJ2mz0WY.js";import{t as oe}from"./rlePnzpc.js";import{O as y,i as se,s as ce}from"#entry";var le={added:`新增`,updated:`状态变更`,removed:`移除`},ue=`更新交付记录`,b=`变更`,x=e=>typeof e==`string`?e.replace(/\s+/g,` `).trim():``;function de(e){let t=Array.isArray(e?.changes)?e.changes:[],n=x(e?.title)||ue,r=t.some(e=>e?.action===`added`)?`feat`:`chore`,i=[];for(let e of t){let t=x(e?.id);if(!t)continue;let n=x(e.title)||x(e.note),r=le[e.action]||x(e.action)||b;e.action===`updated`&&(x(e.from)||x(e.to))&&(r+=` ${x(e.from)||`—`} → ${x(e.to)||`—`}`),i.push(`- ${t}${n?` ${n}`:``}(${r})`)}return i.length?`${r}: ${n}\n\n${i.join(`
|
|
2
|
+
`)}`:`${r}: ${n}`}var fe={class:`rule-top`},pe={class:`rule-ic`},me={class:`rule-state`},he={class:`mono`},ge={key:0},_e={class:`rule-cases`},ve={class:`case-when`},ye={class:`case-then`},be={key:1,class:`lc-hist-bar`},xe={class:`hist-badge`},Se={class:`hist-readonly mono`},Ce=[`title`,`disabled`,`onClick`],we={key:2,class:`card lc-empty`},Te={class:`em-ic`},Ee={key:3,class:`lc`},De={class:`lc-hero`},Oe={class:`hero-body`},ke={class:`hero-kicker`},Ae={class:`k-date mono`},je={key:0,class:`k-time mono`},Me={key:1,class:`k-today`},Ne=[`title`],Pe={class:`hero-title`},Fe={key:0,class:`hero-sum`},Ie={class:`hero-meta`},Le={class:`hero-aside`},Re={class:`ring-in`},ze={class:`lc-nav`,"aria-label":`分区导航`},Be=[`href`,`onClick`],Ve={class:`lc-nav-lb`},He={class:`lc-nav-ct`},Ue={id:`lc-changes`,class:`card sec`},We={class:`s-hd`},Ge={class:`s-ic`},Ke={class:`s-count`},qe={key:0,class:`sec-empty dim`},Je={key:1,class:`tbl-wrap`},Ye={class:`tbl lc-tbl`},Xe={class:`ent`},Ze={class:`ent-top`},Qe={key:0,class:`ent-title`},$e={key:0,class:`flow mono`},et={class:`fl`},tt={class:`fl`},nt={class:`cell-note`},rt={class:`chips`},it=[`title`],at={key:0,class:`dim`},ot={class:`two`},st={id:`lc-extras`,class:`card sec`},ct={class:`s-hd`},lt={class:`s-ic`},ut={class:`s-count`},dt={class:`sec-bd lc-extras`},ft={key:0,class:`dim`},pt={class:`x-body`},mt={class:`x-title`},ht={key:0,class:`x-detail`},gt={key:1,class:`chips x-files`},_t=[`title`],vt={id:`lc-checks`,class:`card sec`},yt={class:`s-hd`},bt={class:`s-ic tone-mint`},xt={class:`s-count`},St={class:`sec-bd lc-checks`},Ct={key:0,class:`dim`},wt={class:`v-body`},Tt={class:`v-what`},Et={key:0,class:`v-detail`},Dt={key:0,id:`lc-access`,class:`card sec lc-access`},Ot={class:`s-hd`},kt={class:`s-ic tone-sky`},At={class:`s-count`},jt={class:`sec-bd acc-grid`},Mt={key:0,class:`acc-col`},Nt={class:`u-head`},Pt=[`href`],Ft={class:`u-label`},It=[`onClick`],Lt={class:`u-url mono`},Rt={key:0,class:`u-note`},zt={key:1,class:`acc-col`},Bt={class:`a-head`},Vt={key:0,class:`a-role`},Ht={class:`a-user mono`},Ut=[`onClick`],Wt={class:`a-line`},Gt={key:0,class:`a-pass mono`},Kt={key:1,class:`a-none dim`},qt={key:0,class:`a-note`},Jt={key:1,id:`lc-prep`,class:`card sec lc-prep`},Yt={class:`s-hd`},Xt={class:`s-ic tone-amber`},Zt={class:`s-count`},Qt={class:`steps`},$t={class:`step-bd`},en={class:`step-text`},tn={key:0,class:`cmd-row`},nn={class:`cmd mono`},rn=[`onClick`],an={key:1,class:`step-note`},on={id:`lc-scenarios`,class:`lc-sc-sec`},sn={class:`s-hd solo`},cn={class:`s-ic tone-mint`},ln={class:`s-count`},un={key:0,class:`dim sec-empty`},dn={key:1,class:`lc-sc-grid`},fn={class:`sc-hd`},pn={class:`sc-id mono`},mn={class:`sc-title`},hn={key:0,class:`sc-body`},gn={class:`lc-sc-steps`},_n={class:`sc-acc`},vn={class:`sc-acc-h`},yn={class:`sc-acc-t`},bn={key:0,class:`sc-foot`},xn={key:0},Sn={key:1,class:`sc-ids`},Cn={class:`two`},wn={id:`lc-notes`,class:`card sec`},Tn={class:`s-hd`},En={class:`s-ic`},Dn={class:`s-count`},On={class:`sec-bd`},kn={key:0,class:`dim`},An={key:1,class:`lc-notes`},jn={key:0,id:`lc-open`,class:`card sec sec-warn`},Mn={class:`s-hd`},Nn={class:`s-ic`},Pn={class:`s-count`},Fn={class:`sec-bd`},In={class:`lc-notes warn`},Ln={class:`lc-hist`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-hist-title`},Rn={class:`lc-hist-hd`},zn={class:`lc-hist-hd-txt`},Bn={class:`lc-hist-sub`},Vn={key:0,class:`lc-hist-err`},Hn={key:1,class:`lc-hist-hint dim`},Un={key:2,class:`lc-hist-list`},Wn=[`disabled`,`onClick`],Gn={class:`hist-item-main`},Kn={class:`mono`},qn={class:`mono hist-item-hash`},Jn={key:0,class:`lc-hist-hint dim`},Yn={class:`lc-hist-ft`},Xn={class:`lc-hist lc-commit`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-commit-title`},Zn={class:`lc-hist-hd`},Qn=[`disabled`],$n={key:0,class:`cm-done`},er={class:`cm-done-ic`},tr={class:`cm-done-bd`},nr={class:`cm-done-t`},rr={class:`mono`},ir={class:`cm-done-s`},ar={class:`cm-done-n`},or={key:1,class:`cm-body`},sr={class:`cm-msg mono`},cr={class:`micro`},lr={key:0,class:`cm-hint dim`},ur={key:1,class:`cm-hint warn`},dr={key:2,class:`cm-hint warn`},fr={key:3,class:`cm-hint dim`},pr={key:4,class:`cm-files`},mr=[`title`],hr={key:2,class:`lc-hist-err`},gr={class:`lc-hist-ft`},_r={class:`dim`},vr={class:`cm-acts`},yr=[`disabled`],br=[`disabled`],S=se(te({__name:`last-change`,setup(te){let{lastChange:se,lastChangeGit:le,refresh:ue}=ce(),b=g(null),x=u(()=>b.value?.doc?.lastChange??se.value),S=u(()=>le.value),C=g([]),w=g(!1),T=g(!1),E=g(``),D=g(!1),xr=u(()=>b.value?[b.value]:[]);async function Sr(){if(!T.value){T.value=!0,E.value=``;try{let e=await y(`/api/agile/last-change/history`);C.value=e.entries??[]}catch(e){E.value=e?.data?.error||e?.message||`读不到 git 历史`}finally{T.value=!1}}}async function O(){w.value=!0,C.value.length||await Sr()}async function k(e){if(!D.value){D.value=!0,E.value=``;try{b.value=await y(`/api/agile/last-change/revision`,{query:{hash:e.hash}}),w.value=!1,window.scrollTo({top:0,behavior:`smooth`})}catch(e){E.value=e?.data?.error||e?.message||`取不到这个版本`}finally{D.value=!1}}}function Cr(){b.value=null,window.scrollTo({top:0,behavior:`smooth`})}let A=g(null);n(b,async()=>{await re(),A.value?.querySelector(`.hist-tab.on`)?.scrollIntoView({inline:`nearest`,block:`nearest`})});function j(e){e.key===`Escape`&&(J.value?$():w.value&&=!1)}l(()=>window.addEventListener(`keydown`,j)),d(()=>window.removeEventListener(`keydown`,j));let wr={committed:{text:`已提交`,tone:`ok`},dirty:{text:`未提交改动`,tone:`warn`},untracked:{text:`未纳入版本库`,tone:`warn`},"no-git":{text:`非 git 仓库`,tone:`neutral`},missing:{text:`尚未生成`,tone:`neutral`}},M=u(()=>wr[S.value?.state??`missing`]??wr.missing),Tr=[{key:`committed`,when:`已提交`,then:`下次写入整份覆盖;上一版留在 git 历史里,点「查看历史」随时翻回来`},{key:`pending`,when:`未提交`,then:`下次写入合并:新交付接在旧记录后面,不冲掉还没入库的内容`}],Er=u(()=>{let e=S.value?.state;return e===`committed`?`committed`:e===`dirty`||e===`untracked`||e===`no-git`?`pending`:``}),Dr=u(()=>(x.value?.mergedFrom?.length??0)+1),Or=u(()=>(x.value?.mergedFrom??[]).map(e=>`${e.at??``} ${e.title??``}`.trim()).filter(Boolean).join(`
|
|
3
|
+
`)),kr={added:`新增`,updated:`状态变更`,removed:`移除`},Ar={story:`故事`,task:`任务`},jr={pass:`通过`,fail:`失败`,partial:`部分`,skipped:`未跑`},Mr={pass:`i-lucide-check`,fail:`i-lucide-x`,partial:`i-lucide-minus`,skipped:`i-lucide-minus`},N=u(()=>x.value?.changes??[]),P=u(()=>de(x.value??{})),F=u(()=>x.value?.extras??[]),I=u(()=>x.value?.verification??[]),L=u(()=>x.value?.scenarios??[]),R=u(()=>x.value?.preparation??[]),z=u(()=>x.value?.notes??[]),B=u(()=>x.value?.open??[]),V=u(()=>x.value?.access?.urls??[]),H=u(()=>x.value?.access?.accounts??[]),U=u(()=>I.value.filter(e=>e.result===`pass`).length),Nr=u(()=>I.value.length>0&&U.value===I.value.length),Pr=u(()=>I.value.length?Math.round(U.value/I.value.length*100):0),Fr=u(()=>[...new Set([...N.value.flatMap(e=>e.files??[]),...F.value.flatMap(e=>e.files??[])])]),Ir=e=>e.kind===`story`?e.id:e.id.replace(/-T\d+$/,``),Lr=u(()=>[{id:`lc-changes`,label:`变更清单`,icon:`i-lucide-git-commit-horizontal`,count:`${N.value.length}`,tone:`violet`},{id:`lc-extras`,label:`额外做的事`,icon:`i-lucide-sparkles`,count:`${F.value.length}`,tone:`peach`},{id:`lc-checks`,label:`验证结果`,icon:`i-lucide-badge-check`,count:`${U.value}/${I.value.length}`,tone:`mint`},...V.value.length||H.value.length?[{id:`lc-access`,label:`调试入口与账号`,icon:`i-lucide-key-round`,count:`${V.value.length+H.value.length}`,tone:`sky`}]:[],...R.value.length?[{id:`lc-prep`,label:`测试前准备`,icon:`i-lucide-terminal-square`,count:`${R.value.length}`,tone:`amber`}]:[],{id:`lc-scenarios`,label:`测试场景`,icon:`i-lucide-flask-conical`,count:`${L.value.length}`,tone:`teal`},{id:`lc-notes`,label:`说明`,icon:`i-lucide-message-square-more`,count:`${z.value.length}`,tone:`slate`},...B.value.length?[{id:`lc-open`,label:`还没做的`,icon:`i-lucide-list-todo`,count:`${B.value.length}`,tone:`rose`}]:[]]);function Rr(e){let t=document.getElementById(e);t&&(t.scrollIntoView({behavior:`smooth`,block:`start`}),history.replaceState(null,``,`#${e}`))}let W=new Date,zr=`${W.getFullYear()}-${String(W.getMonth()+1).padStart(2,`0`)}-${String(W.getDate()).padStart(2,`0`)}`,G=u(()=>(x.value?.at??``).slice(0,10)),Br=u(()=>{let e=(x.value?.at??``).slice(10).replace(/^[T ]/,``);return/^\d{2}:\d{2}/.test(e)?e:``}),Vr=u(()=>!!G.value&&G.value===zr),K=g(``);async function q(e,t){try{await navigator.clipboard.writeText(e),K.value=t,setTimeout(()=>{K.value===t&&(K.value=``)},1600)}catch{K.value=``}}let J=g(!1),Y=g(!1),X=g(``),Z=g(null),Q=g(null),Hr=u(()=>!!Z.value?.isRepo&&!Z.value?.blocked&&(Z.value?.files.length??0)>0&&!Y.value);async function Ur(){if(!Y.value){J.value=!0,X.value=``,Q.value=null,Z.value=null;try{Z.value=await y(`/api/agile/git/status`)}catch(e){X.value=e?.data?.error||e?.message||`读不到 git 状态`}}}function $(){Y.value||(J.value=!1,X.value=``,Q.value=null,Z.value=null)}async function Wr(){if(Hr.value){Y.value=!0,X.value=``;try{let{token:e}=await y(`/api/projects`);Q.value=await y(`/api/agile/git/commit`,{method:`POST`,headers:{"x-project-token":e},body:{message:P.value}}),await ue()}catch(e){X.value=e?.data?.error||e?.message||`提交失败`}finally{Y.value=!1}}}return(n,l)=>{let u=oe,d=ae;return f(),s(p,null,[r(b)?(f(),s(`div`,be,[o(`span`,xe,[e(u,{name:`i-lucide-history`,class:`hist-badge-ic`}),l[8]||=t(`历史版本`,-1)]),o(`span`,Se,[t(`只读 · `+m(r(b).short),1),r(b).date?(f(),s(p,{key:0},[t(` · `+m(r(b).date),1)],64)):_(``,!0)]),o(`div`,{ref_key:`tabsRef`,ref:A,class:`lc-hist-tabs`},[o(`button`,{class:`hist-tab`,onClick:Cr},`最新`),(f(!0),s(p,null,c(r(xr),e=>(f(),s(`button`,{key:e.hash,class:a([`hist-tab`,{on:r(b)?.hash===e.hash}]),title:`${e.date} ${e.subject??``}`,disabled:r(D),onClick:t=>k(e)},[t(m(e.short),1),o(`i`,null,m(e.date.slice(5,16)),1)],10,Ce))),128))],512),o(`button`,{class:`rule-btn`,onClick:O},[e(u,{name:`i-lucide-list`,class:`rule-btn-ic`}),l[9]||=t(`选择历史…`,-1)])])):(f(),s(`div`,{key:0,class:a([`lc-rule`,`is-${r(M).tone}`])},[o(`div`,fe,[o(`span`,pe,[e(u,{name:`i-lucide-git-branch`,class:`rule-svg`})]),l[6]||=o(`b`,{class:`rule-title`},`写入规则`,-1),l[7]||=o(`span`,{class:`rule-file mono`},`agile/last-change.json`,-1),o(`span`,me,[o(`i`,{class:a([`rule-dot`,`tone-${r(M).tone}`])},null,2),t(` 当前 `+m(r(M).text),1),r(S)?.state===`committed`&&r(S).hash?(f(),s(p,{key:0},[l[4]||=t(` · `,-1),o(`span`,he,m(r(S).hash),1)],64)):_(``,!0)]),o(`button`,{class:`rule-btn`,onClick:O},[e(u,{name:`i-lucide-history`,class:`rule-btn-ic`}),l[5]||=t(`查看历史 `,-1),r(C).length?(f(),s(`i`,ge,m(r(C).length),1)):_(``,!0)])]),o(`ul`,_e,[(f(),s(p,null,c(Tr,t=>o(`li`,{key:t.key,class:a([`rule-case`,{on:r(Er)===t.key}])},[o(`span`,ve,m(t.when),1),e(u,{name:`i-lucide-arrow-right`,class:`case-arrow`}),o(`span`,ye,m(t.then),1)],2)),64))])],2)),r(x)?(f(),s(`div`,Ee,[o(`header`,De,[o(`div`,Oe,[o(`p`,ke,[l[11]||=o(`span`,{class:`k-dot`},null,-1),l[12]||=t(`最近一次交付 `,-1),l[13]||=o(`span`,{class:`k-sep`},null,-1),o(`span`,Ae,m(r(G)),1),r(Br)?(f(),s(`span`,je,m(r(Br)),1)):_(``,!0),r(Vr)?(f(),s(`span`,Me,`今天`)):_(``,!0),r(x).merged?(f(),s(`span`,{key:2,class:`k-merged`,title:r(Or)},`合并记录 · `+m(r(Dr))+` 次交付`,9,Ne)):_(``,!0)]),o(`h2`,Pe,m(r(x).title),1),r(x).summary?(f(),s(`p`,Fe,m(r(x).summary),1)):_(``,!0),o(`div`,Ie,[o(`span`,null,[o(`b`,null,m(r(N).length),1),l[14]||=t(` 处变更`,-1)]),l[19]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,m(r(Fr).length),1),l[15]||=t(` 个文件`,-1)]),l[20]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,m(r(L).length),1),l[16]||=t(` 条测试场景`,-1)]),r(F).length?(f(),s(p,{key:0},[l[18]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,m(r(F).length),1),l[17]||=t(` 项额外工作`,-1)])],64)):_(``,!0)])]),o(`div`,Le,[o(`div`,{class:a([`ring`,{warn:r(I).length&&!r(Nr)}]),style:ee({"--pct":r(Pr)})},[o(`div`,Re,[o(`b`,null,[t(m(r(U)),1),o(`small`,null,`/`+m(r(I).length||0),1)]),o(`span`,null,m(r(I).length?r(Nr)?`验证全通过`:`有未通过项`:`无验证记录`),1)])],6)])]),o(`nav`,ze,[(f(!0),s(p,null,c(r(Lr),t=>(f(),s(`a`,{key:t.id,class:a([`lc-nav-link`,`tone-${t.tone}`]),href:`#${t.id}`,onClick:v(e=>Rr(t.id),[`prevent`])},[e(u,{name:t.icon,class:`lc-nav-ic`},null,8,[`name`]),o(`span`,Ve,m(t.label),1),o(`b`,He,m(t.count),1)],10,Be))),128))]),o(`section`,Ue,[o(`div`,We,[o(`span`,Ge,[e(u,{name:`i-lucide-git-commit-horizontal`,class:`s-svg`})]),l[22]||=o(`h2`,{class:`s-title`},`变更清单`,-1),o(`span`,Ke,m(r(N).length),1),l[23]||=o(`span`,{class:`s-hint`},`故事与任务各自是新增还是状态变更、动过哪些文件`,-1),r(N).length?(f(),s(`button`,{key:0,class:a([`rule-btn s-copy`,{ok:r(K)===`commit`}]),title:`按 Conventional Commits 生成:首行是标题,正文每条变更带编号与名称`,onClick:l[0]||=e=>q(r(P),`commit`)},[e(u,{name:r(K)===`commit`?`i-lucide-check`:`i-lucide-clipboard-copy`,class:`rule-btn-ic`},null,8,[`name`]),t(` `+m(r(K)===`commit`?`已复制`:`复制变更信息`),1)],2)):_(``,!0),!r(b)&&r(N).length?(f(),s(`button`,{key:1,class:`rule-btn s-commit`,title:`把这次交付整份提交进本地仓库:git add -A + git commit,不 push`,onClick:Ur},[e(u,{name:`i-lucide-git-commit-vertical`,class:`rule-btn-ic`}),l[21]||=t(`自动提交 `,-1)])):_(``,!0)]),r(N).length?(f(),s(`div`,Je,[o(`table`,Ye,[l[25]||=o(`colgroup`,null,[o(`col`,{class:`c-ent`}),o(`col`,{class:`c-act`}),o(`col`),o(`col`,{class:`c-file`})],-1),l[26]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`条目`),o(`th`,null,`变更`),o(`th`,null,`变更内容`),o(`th`,null,`涉及文件`)])],-1),o(`tbody`,null,[(f(!0),s(p,null,c(r(N),(n,r)=>(f(),s(`tr`,{key:`${n.kind}-${n.id}-${r}`},[o(`td`,null,[o(`div`,Xe,[o(`div`,Ze,[o(`span`,{class:a([`kind`,`kind-${n.kind}`])},m(Ar[n.kind]??n.kind),3),e(d,{to:`/story/${Ir(n)}`,class:`ent-id mono`},{default:ne(()=>[t(m(n.id),1)]),_:2},1032,[`to`])]),n.title?(f(),s(`p`,Qe,m(n.title),1)):_(``,!0)])]),o(`td`,null,[o(`span`,{class:a([`act`,`act-${n.action}`])},m(kr[n.action]??n.action),3),n.from||n.to?(f(),s(`p`,$e,[o(`span`,et,m(n.from??`—`),1),l[24]||=o(`i`,null,`→`,-1),o(`span`,tt,m(n.to??`—`),1)])):_(``,!0)]),o(`td`,nt,m(n.note??`—`),1),o(`td`,null,[o(`div`,rt,[(f(!0),s(p,null,c(n.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},m(e),9,it))),128)),n.files?.length?_(``,!0):(f(),s(`span`,at,`—`))])])]))),128))])])])):(f(),s(`p`,qe,`这次没有涉及任何故事或任务。`))]),o(`div`,ot,[o(`section`,st,[o(`div`,ct,[o(`span`,lt,[e(u,{name:`i-lucide-sparkles`,class:`s-svg`})]),l[27]||=o(`h2`,{class:`s-title`},`额外做的事`,-1),o(`span`,ut,m(r(F).length),1)]),o(`div`,dt,[r(F).length?_(``,!0):(f(),s(`p`,ft,`没有计划外的改动。`)),(f(!0),s(p,null,c(r(F),(e,t)=>(f(),s(`article`,{key:t,class:`x-item`},[l[28]||=o(`span`,{class:`x-mark`},null,-1),o(`div`,pt,[o(`p`,mt,m(e.title),1),e.detail?(f(),s(`p`,ht,m(e.detail),1)):_(``,!0),e.files?.length?(f(),s(`div`,gt,[(f(!0),s(p,null,c(e.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},m(e),9,_t))),128))])):_(``,!0)])]))),128))])]),o(`section`,vt,[o(`div`,yt,[o(`span`,bt,[e(u,{name:`i-lucide-badge-check`,class:`s-svg`})]),l[29]||=o(`h2`,{class:`s-title`},`验证结果`,-1),o(`span`,xt,m(r(U))+`/`+m(r(I).length),1)]),o(`div`,St,[r(I).length?_(``,!0):(f(),s(`p`,Ct,`这次没有留下验证记录。`)),(f(!0),s(p,null,c(r(I),(t,n)=>(f(),s(`div`,{key:n,class:`v-item`},[o(`span`,{class:a([`v-ic`,`v-${t.result}`])},[e(u,{name:Mr[t.result]??`i-lucide-circle`,class:`v-svg`},null,8,[`name`])],2),o(`div`,wt,[o(`p`,Tt,m(t.what),1),t.detail?(f(),s(`p`,Et,m(t.detail),1)):_(``,!0)]),o(`span`,{class:a([`v-res`,`v-${t.result}`])},m(jr[t.result]??t.result),3)]))),128))])])]),r(V).length||r(H).length?(f(),s(`section`,Dt,[o(`div`,Ot,[o(`span`,kt,[e(u,{name:`i-lucide-key-round`,class:`s-svg`})]),l[30]||=o(`h2`,{class:`s-title`},`调试入口与账号`,-1),o(`span`,At,m(r(V).length+r(H).length),1),l[31]||=o(`span`,{class:`s-hint`},`照着这一栏就能自己跑起来点一遍`,-1)]),o(`div`,jt,[r(V).length?(f(),s(`div`,Mt,[l[32]||=o(`p`,{class:`micro`},`访问地址`,-1),(f(!0),s(p,null,c(r(V),(n,i)=>(f(),s(`div`,{key:i,class:`u-item`},[o(`div`,Nt,[o(`a`,{href:n.url,target:`_blank`,rel:`noreferrer`,class:`u-link`},[o(`span`,Ft,m(n.label??`入口`),1),e(u,{name:`i-lucide-arrow-up-right`,class:`u-go`})],8,Pt),o(`button`,{class:a([`cpy`,{ok:r(K)===`url-${i}`}]),onClick:e=>q(n.url,`url-${i}`)},[e(u,{name:r(K)===`url-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+m(r(K)===`url-${i}`?`已复制`:`复制`),1)],10,It)]),o(`p`,Lt,m(n.url),1),n.note?(f(),s(`p`,Rt,m(n.note),1)):_(``,!0)]))),128))])):_(``,!0),r(H).length?(f(),s(`div`,zt,[l[34]||=o(`p`,{class:`micro`},`账号密码`,-1),(f(!0),s(p,null,c(r(H),(n,i)=>(f(),s(`div`,{key:i,class:`a-item`},[o(`div`,Bt,[n.role?(f(),s(`span`,Vt,m(n.role),1)):_(``,!0),o(`span`,Ht,m(n.username),1),o(`button`,{class:a([`cpy`,{ok:r(K)===`acc-${i}`}]),onClick:e=>q(n.password?`账号:${n.username}\n密码:${n.password}`:n.username,`acc-${i}`)},[e(u,{name:r(K)===`acc-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+m(r(K)===`acc-${i}`?`已复制`:`复制`),1)],10,Ut)]),o(`div`,Wt,[l[33]||=o(`span`,{class:`a-key`},`密码`,-1),n.password?(f(),s(`span`,Gt,m(n.password),1)):(f(),s(`span`,Kt,`无密码 / 走单点登录`))]),n.note?(f(),s(`p`,qt,m(n.note),1)):_(``,!0)]))),128))])):_(``,!0)])])):_(``,!0),r(R).length?(f(),s(`section`,Jt,[o(`div`,Yt,[o(`span`,Xt,[e(u,{name:`i-lucide-terminal-square`,class:`s-svg`})]),l[35]||=o(`h2`,{class:`s-title`},`测试前准备`,-1),o(`span`,Zt,m(r(R).length),1),l[36]||=o(`span`,{class:`s-hint`},`按顺序做完这些再开始点,命令可直接复制`,-1)]),o(`ol`,Qt,[(f(!0),s(p,null,c(r(R),(n,i)=>(f(),s(`li`,{key:i},[o(`div`,$t,[o(`p`,en,m(n.step),1),n.command?(f(),s(`div`,tn,[o(`code`,nn,m(n.command),1),o(`button`,{class:a([`cpy`,{ok:r(K)===`cmd-${i}`}]),onClick:e=>q(n.command??``,`cmd-${i}`)},[e(u,{name:r(K)===`cmd-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+m(r(K)===`cmd-${i}`?`已复制`:`复制`),1)],10,rn)])):_(``,!0),n.note?(f(),s(`p`,an,m(n.note),1)):_(``,!0)])]))),128))])])):_(``,!0),o(`section`,on,[o(`div`,sn,[o(`span`,cn,[e(u,{name:`i-lucide-flask-conical`,class:`s-svg`})]),l[37]||=o(`h2`,{class:`s-title`},`测试场景`,-1),o(`span`,ln,m(r(L).length),1),l[38]||=o(`span`,{class:`s-hint`},`一条一段:照着步骤走,末尾那句就是验收标准`,-1)]),r(L).length?(f(),s(`div`,dn,[(f(!0),s(p,null,c(r(L),(n,r)=>(f(),s(`article`,{key:n.id??r,class:`sc lc-sc`},[o(`header`,fn,[o(`span`,pn,m(n.id??`TC-${r+1}`),1),o(`h3`,mn,m(n.title),1)]),n.steps?.length?(f(),s(`div`,hn,[l[39]||=o(`p`,{class:`micro`},`测试步骤`,-1),o(`ol`,gn,[(f(!0),s(p,null,c(n.steps,(e,t)=>(f(),s(`li`,{key:t},m(e),1))),128))])])):_(``,!0),o(`div`,_n,[o(`p`,vn,[e(u,{name:`i-lucide-badge-check`,class:`sc-acc-ic`}),l[40]||=t(`验收标准`,-1)]),o(`p`,yn,m(n.expect),1),n.acceptance||n.storyIds?.length?(f(),s(`div`,bn,[n.acceptance?(f(),s(`span`,xn,`对应验收:`+m(n.acceptance),1)):_(``,!0),n.storyIds?.length?(f(),s(`span`,Sn,[(f(!0),s(p,null,c(n.storyIds,e=>(f(),h(d,{key:e,to:`/story/${e}`,class:`ent-id mono`},{default:ne(()=>[t(m(e),1)]),_:2},1032,[`to`]))),128))])):_(``,!0)])):_(``,!0)])]))),128))])):(f(),s(`p`,un,`这次没有单独列测试场景。`))]),o(`div`,Cn,[o(`section`,wn,[o(`div`,Tn,[o(`span`,En,[e(u,{name:`i-lucide-message-square-more`,class:`s-svg`})]),l[41]||=o(`h2`,{class:`s-title`},`说明`,-1),o(`span`,Dn,m(r(z).length),1)]),o(`div`,On,[r(z).length?(f(),s(`ul`,An,[(f(!0),s(p,null,c(r(z),(e,t)=>(f(),s(`li`,{key:t},m(e),1))),128))])):(f(),s(`p`,kn,`没有额外说明。`))])]),r(B).length?(f(),s(`section`,jn,[o(`div`,Mn,[o(`span`,Nn,[e(u,{name:`i-lucide-list-todo`,class:`s-svg`})]),l[42]||=o(`h2`,{class:`s-title`},`还没做的`,-1),o(`span`,Pn,m(r(B).length),1)]),o(`div`,Fn,[o(`ul`,In,[(f(!0),s(p,null,c(r(B),(e,t)=>(f(),s(`li`,{key:t},m(e),1))),128))])])])):_(``,!0)])])):(f(),s(`div`,we,[o(`span`,Te,[e(u,{name:`i-lucide-clipboard-list`,class:`em-svg`})]),l[10]||=i(`<h2 class="em-title" data-v-0c6b2b03>还没有交付记录</h2><p class="em-sub" data-v-0c6b2b03> 每完成一项功能,AI 都要把「改了哪些故事与任务、额外做了什么、验了什么、怎么测」 写进下面这个文件,这一页就会自动排出来。 </p><p class="em-path mono" data-v-0c6b2b03>agile/last-change.json</p><p class="em-note" data-v-0c6b2b03> 每次只保留最近一次(覆盖写,不追加)· 格式见 <span class="mono" data-v-0c6b2b03>.agents/skills/scrum-planning/references/schema.md</span> 第 4 节 </p>`,4)])),(f(),h(ie,{to:`body`},[r(w)?(f(),s(`div`,{key:0,class:`lc-hist-mask`,onClick:l[3]||=v(e=>w.value=!1,[`self`])},[o(`div`,Ln,[o(`header`,Rn,[o(`div`,zn,[l[46]||=o(`h3`,{id:`lc-hist-title`,class:`lc-hist-title`},`历史版本`,-1),o(`p`,Bn,[l[43]||=t(` 从 git 里读 `,-1),l[44]||=o(`span`,{class:`mono`},`agile/last-change.json`,-1),l[45]||=t(` 的提交记录 `,-1),r(C).length?(f(),s(p,{key:0},[t(`· 共 `+m(r(C).length)+` 版`,1)],64)):_(``,!0)])]),o(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,onClick:l[1]||=e=>w.value=!1},[e(u,{name:`i-lucide-x`,class:`lc-hist-x-ic`})])]),r(E)?(f(),s(`p`,Vn,m(r(E)),1)):r(T)?(f(),s(`div`,Hn,`正在读 git 历史…`)):(f(),s(`div`,Un,[(f(!0),s(p,null,c(r(C),(e,t)=>(f(),s(`button`,{key:e.hash,class:a([`hist-item`,{on:r(b)?.hash===e.hash}]),disabled:r(D),onClick:t=>k(e)},[o(`span`,{class:a([`hist-item-dot`,{live:t===0}])},null,2),o(`span`,Gn,[o(`b`,null,m(e.subject||`(没有提交说明)`),1),o(`i`,Kn,m(e.date),1)]),o(`span`,qn,m(e.short),1)],10,Wn))),128)),r(C).length?_(``,!0):(f(),s(`p`,Jn,` 这个文件还没有提交记录 —— 先 commit 一次,历史里才会出现版本。 `))])),o(`footer`,Yn,[l[47]||=o(`span`,{class:`dim`},`选一个版本即可在页面上只读查看,不会改动文件。`,-1),o(`button`,{class:`hist-close`,onClick:l[2]||=e=>w.value=!1},`关闭`)])])])):_(``,!0)])),(f(),h(ie,{to:`body`},[r(J)?(f(),s(`div`,{key:0,class:`lc-hist-mask`,onClick:v($,[`self`])},[o(`div`,Xn,[o(`header`,Zn,[l[48]||=o(`div`,{class:`lc-hist-hd-txt`},[o(`h3`,{id:`lc-commit-title`,class:`lc-hist-title`},`提交这次交付`),o(`p`,{class:`lc-hist-sub`},[t(` 将执行 `),o(`span`,{class:`mono`},`git add -A`),t(` + `),o(`span`,{class:`mono`},`git commit`),t(`,只提交到本地,不 push `)])],-1),o(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,disabled:r(Y),onClick:$},[e(u,{name:`i-lucide-x`,class:`lc-hist-x-ic`})],8,Qn)]),r(Q)?(f(),s(`div`,$n,[o(`span`,er,[e(u,{name:`i-lucide-check`,class:`cm-done-svg`})]),o(`div`,tr,[o(`p`,nr,[l[49]||=t(`已提交 `,-1),o(`span`,rr,m(r(Q).hash),1)]),o(`p`,ir,m(r(Q).subject),1),o(`p`,ar,m(r(Q).files)+` 个文件 · 分支 `+m(r(Q).branch??`分离头指针`),1)])])):(f(),s(`div`,or,[l[51]||=o(`p`,{class:`micro`},`提交信息`,-1),o(`pre`,sr,m(r(P)),1),o(`p`,cr,[l[50]||=t(` 将提交的文件`,-1),r(Z)?(f(),s(p,{key:0},[t(` · `+m(r(Z).files.length),1)],64)):_(``,!0)]),!r(Z)&&!r(X)?(f(),s(`p`,lr,`正在读 git 状态…`)):r(Z)&&!r(Z).isRepo?(f(),s(`p`,ur,`这个目录不是 git 仓库,没法自动提交。`)):r(Z)?.blocked?(f(),s(`p`,dr,m(r(Z).blocked),1)):r(Z)?.files.length?(f(),s(`ul`,pr,[(f(!0),s(p,null,c(r(Z).files,e=>(f(),s(`li`,{key:e.path,class:`cm-file`},[o(`span`,{class:a([`cm-code`,e.code===`??`?`cm-new`:`cm-mod`])},m(e.code),3),o(`span`,{class:`mono cm-path`,title:e.path},m(e.path),9,mr)]))),128))])):(f(),s(`p`,fr,`没有未提交的改动,不需要提交。`))])),r(X)?(f(),s(`p`,hr,m(r(X)),1)):_(``,!0),o(`footer`,gr,[o(`span`,_r,m(r(Z)?.branch?`当前分支 ${r(Z).branch}`:`提交后工作区应当是干净的`),1),o(`span`,vr,[o(`button`,{class:`hist-close`,disabled:r(Y),onClick:$},m(r(Q)?`关闭`:`取消`),9,yr),r(Q)?_(``,!0):(f(),s(`button`,{key:0,class:`cm-go`,disabled:!r(Hr),onClick:Wr},m(r(Y)?`提交中…`:`确认提交`),9,br))])])])])):_(``,!0)]))],64)}}}),[[`__scopeId`,`data-v-0c6b2b03`]]);export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"4a212bd2-438f-4b26-b8f3-57db47ca0799","timestamp":1793371116856}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"4a212bd2-438f-4b26-b8f3-57db47ca0799","timestamp":1793371116856,"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.lc[data-v-0c6b2b03]{gap:14px;display:grid}.lc [id^=lc-][data-v-0c6b2b03]{scroll-margin-top:14px}.lc-nav[data-v-0c6b2b03]{flex-wrap:wrap;gap:6px;padding:0 2px;display:flex}.lc-nav-link[data-v-0c6b2b03]{border:1px solid var(--nv-line,var(--line));background:var(--nv-bg,#fff);height:28px;color:var(--nv-ink,var(--ink-3));border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:11.4px;font-weight:580;transition:box-shadow .16s,transform .16s;display:inline-flex}.lc-nav-link.tone-violet[data-v-0c6b2b03]{--nv-bg:var(--violet-soft);--nv-line:var(--violet-line);--nv-ink:var(--violet-ink)}.lc-nav-link.tone-peach[data-v-0c6b2b03]{--nv-bg:var(--peach);--nv-line:var(--peach-line);--nv-ink:#a5382f}.lc-nav-link.tone-mint[data-v-0c6b2b03]{--nv-bg:#f0fbdf;--nv-line:#dcf0bb;--nv-ink:#4f6f24}.lc-nav-link.tone-sky[data-v-0c6b2b03]{--nv-bg:#eef5fd;--nv-line:var(--sky-line);--nv-ink:#2c5f96}.lc-nav-link.tone-amber[data-v-0c6b2b03]{--nv-bg:#fdf4e2;--nv-line:var(--amber-line);--nv-ink:#8a6116}.lc-nav-link.tone-teal[data-v-0c6b2b03]{--nv-bg:#e4f6f3;--nv-line:#bce5de;--nv-ink:#1f6f63}.lc-nav-link.tone-slate[data-v-0c6b2b03]{--nv-bg:var(--sunken);--nv-line:var(--line-2);--nv-ink:var(--ink-2)}.lc-nav-link.tone-rose[data-v-0c6b2b03]{--nv-bg:#fdeceb;--nv-line:var(--rose-line);--nv-ink:#b23a4b}.lc-nav-link[data-v-0c6b2b03]:hover{box-shadow:0 7px 16px -12px var(--nv-ink,#8a8a8a);transform:translateY(-1px)}.lc-nav-ic[data-v-0c6b2b03]{opacity:.72;flex:none;width:13px;height:13px}.act[data-v-0c6b2b03],.ent-id[data-v-0c6b2b03],.fchip[data-v-0c6b2b03],.fl[data-v-0c6b2b03],.lc-nav-lb[data-v-0c6b2b03],.ring-in span[data-v-0c6b2b03],.rule-state[data-v-0c6b2b03],.s-title[data-v-0c6b2b03],.u-url[data-v-0c6b2b03]{white-space:nowrap}.lc-nav-ct[data-v-0c6b2b03]{min-width:16px;color:inherit;text-align:center;font-variant-numeric:tabular-nums;background:#ffffffd1;border-radius:999px;flex:none;padding:0 5px;font-size:9.6px;font-weight:700;line-height:15px}.lc-nav-link:hover .lc-nav-ct[data-v-0c6b2b03]{background:#fff}.lc-rule[data-v-0c6b2b03]{border:1px solid var(--line);box-shadow:var(--shadow-1);background:linear-gradient(#fbfaff,#fff);border-radius:14px;gap:7px;margin-bottom:14px;padding:10px 13px 11px;display:grid}.rule-top[data-v-0c6b2b03]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rule-ic[data-v-0c6b2b03]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.rule-svg[data-v-0c6b2b03]{width:14px;height:14px}.rule-title[data-v-0c6b2b03]{letter-spacing:.01em;color:var(--ink);font-size:12px;font-weight:680}.rule-file[data-v-0c6b2b03]{color:var(--ink-4);font-size:10px}.rule-state[data-v-0c6b2b03]{border:1px solid var(--line-2);height:22px;color:var(--ink-2);background:#fff;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:0 9px;font-size:10.4px;font-weight:640;display:inline-flex}.rule-state .mono[data-v-0c6b2b03]{color:var(--ink-3);font-size:9.8px;font-weight:560}.rule-dot[data-v-0c6b2b03]{background:var(--ink-4);border-radius:999px;flex:none;width:6px;height:6px}.rule-dot.tone-ok[data-v-0c6b2b03]{background:#74a53c;box-shadow:0 0 0 3px #74a53c24}.rule-dot.tone-warn[data-v-0c6b2b03]{background:#d79a2b;box-shadow:0 0 0 3px #d79a2b24}.rule-dot.tone-neutral[data-v-0c6b2b03]{background:#b3b1aa;box-shadow:0 0 0 3px #b3b1aa24}.rule-cases[data-v-0c6b2b03]{gap:3px;margin:0;padding:0;list-style:none;display:grid}.rule-case[data-v-0c6b2b03]{color:var(--ink-3);border:1px solid #0000;border-radius:9px;align-items:baseline;gap:7px;padding:4px 9px;font-size:11.2px;line-height:1.55;display:flex}.rule-case.on[data-v-0c6b2b03]{color:var(--ink-2);background:var(--sunken)}.case-when[data-v-0c6b2b03]{flex:none;min-width:40px;font-weight:680}.rule-case.on .case-when[data-v-0c6b2b03]{color:var(--ink)}.case-arrow[data-v-0c6b2b03]{width:11px;height:11px;color:var(--ink-4);flex:none;align-self:center}.rule-case.on .case-arrow[data-v-0c6b2b03]{color:var(--ink-3)}.case-then[data-v-0c6b2b03],.hero-body[data-v-0c6b2b03],.two[data-v-0c6b2b03]>*{min-width:0}.is-ok .rule-ic[data-v-0c6b2b03]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.is-ok .rule-case.on[data-v-0c6b2b03]{background:#f4fbea;border-color:#dcf0bb}.is-warn .rule-ic[data-v-0c6b2b03]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.is-warn .rule-case.on[data-v-0c6b2b03]{background:#fdf6e8;border-color:#f3e2b8}.sec[data-v-0c6b2b03]{border-radius:20px;overflow:hidden}.two[data-v-0c6b2b03]{flex-wrap:wrap;align-items:stretch;gap:14px;display:flex}.two[data-v-0c6b2b03]>*{flex:336px}.s-hd[data-v-0c6b2b03]{align-items:center;gap:9px;padding:13px 18px 12px;display:flex}.s-hd.solo[data-v-0c6b2b03]{padding:2px 2px 0}.s-ic[data-v-0c6b2b03]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.s-ic.tone-mint[data-v-0c6b2b03]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.s-ic.tone-amber[data-v-0c6b2b03]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.s-ic.tone-sky[data-v-0c6b2b03]{color:#2c5f96;background:#eef5fd;border-color:#d7e6f9}.s-svg[data-v-0c6b2b03]{width:14px;height:14px}.s-title[data-v-0c6b2b03]{letter-spacing:-.012em;font-size:14px;font-weight:650}.s-count[data-v-0c6b2b03]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:999px;flex:none;padding:0 6px;font-size:10px;font-weight:660;line-height:16px}.s-hint[data-v-0c6b2b03]{color:var(--ink-4);text-align:right;margin-left:auto;font-size:11px}.s-copy[data-v-0c6b2b03]{margin-left:2px}.s-copy.ok[data-v-0c6b2b03]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.rule-btn.s-commit[data-v-0c6b2b03]{border-color:var(--ink-card);background:var(--ink-card);color:#fff}.rule-btn.s-commit[data-v-0c6b2b03]:hover{color:#fff;background:#000;border-color:#000}.s-commit .rule-btn-ic[data-v-0c6b2b03]{color:#fff;opacity:.88}.sec-bd[data-v-0c6b2b03],.sec-empty[data-v-0c6b2b03]{padding:0 18px 16px}.sec-empty[data-v-0c6b2b03]{font-size:12px}.micro[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.6px;font-weight:660}.lc-hero[data-v-0c6b2b03]{isolation:isolate;background:radial-gradient(120% 150% at 0 0,#fdfbff,#fff0 52%),radial-gradient(100% 140% at 100% 110%,#ece1ff,#ece1ff00 60%),linear-gradient(152deg,#f8f4ff,#f1eaff 64%,#faf7ff);border:1px solid #e6dcfb;border-radius:24px;align-items:center;gap:26px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.lc-hero[data-v-0c6b2b03]:after{content:"";filter:blur(6px);z-index:-1;background:radial-gradient(circle,#8b68f229,#8b68f200 70%);border-radius:50%;width:240px;height:240px;position:absolute;bottom:-90px;right:-70px}.hero-body[data-v-0c6b2b03]{flex:1}.hero-kicker[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:#7a63b8;align-items:center;gap:8px;font-size:10px;font-weight:680;display:flex}.k-dot[data-v-0c6b2b03]{background:var(--violet);border-radius:999px;width:6px;height:6px;box-shadow:0 0 0 3px #6d4ff024}.k-sep[data-v-0c6b2b03]{background:#dbd0f6;width:1px;height:10px}.k-date[data-v-0c6b2b03]{text-transform:none;color:#6f5aa8;font-size:10.6px;font-weight:600}.k-date[data-v-0c6b2b03],.k-time[data-v-0c6b2b03]{letter-spacing:.02em}.k-time[data-v-0c6b2b03]{color:var(--ink-3);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:10.4px;font-weight:620;display:inline-flex}.k-time[data-v-0c6b2b03]:before{content:"";background:#c9bce6;border-radius:999px;width:3px;height:3px}.k-today[data-v-0c6b2b03]{border:1px solid var(--violet-line);letter-spacing:.06em;color:var(--violet-ink);background:#fff}.k-merged[data-v-0c6b2b03],.k-today[data-v-0c6b2b03]{border-radius:999px;padding:0 6px;font-size:9.4px;line-height:15px}.k-merged[data-v-0c6b2b03]{color:#8a6116;letter-spacing:.03em;text-transform:none;cursor:help;background:#fdf4e2;border:1px solid #f3e2b8}.hero-title[data-v-0c6b2b03]{letter-spacing:-.026em;color:#241b3f;margin:9px 0 0;font-size:21px;font-weight:665;line-height:1.34}.hero-sum[data-v-0c6b2b03]{color:#574c72;max-width:92ch;margin-top:7px;font-size:12.8px;line-height:1.68}.hero-meta[data-v-0c6b2b03]{color:#6b5f85;flex-wrap:wrap;align-items:center;gap:11px;margin-top:13px;font-size:11.4px;display:flex}.hero-meta b[data-v-0c6b2b03]{color:#2c2246;margin-right:2px;font-weight:690}.meta-sep[data-v-0c6b2b03]{background:#c3b4e2;border-radius:999px;width:3px;height:3px}.hero-aside[data-v-0c6b2b03]{flex:none;justify-items:center;display:grid}.ring[data-v-0c6b2b03]{--pct:0;background:conic-gradient(from -90deg,#7f5cf2 calc(var(--pct) * 1%),#e7dffa 0);border-radius:50%;place-items:center;width:98px;height:98px;display:grid;box-shadow:0 10px 26px -18px #5836ba8c}.ring.warn[data-v-0c6b2b03]{background:conic-gradient(from -90deg,#dfa437 calc(var(--pct) * 1%),#f4e8d2 0)}.ring-in[data-v-0c6b2b03]{text-align:center;background:#fff;border-radius:50%;place-content:center;gap:1px;width:78px;height:78px;display:grid}.ring-in b[data-v-0c6b2b03]{letter-spacing:-.03em;color:#2a1f47;font-size:17px;font-weight:680;line-height:1.15}.ring-in b small[data-v-0c6b2b03]{letter-spacing:0;color:var(--ink-4);font-size:10.5px;font-weight:600}.ring-in span[data-v-0c6b2b03]{letter-spacing:.04em;color:var(--ink-3);font-size:9.2px}.tbl-wrap[data-v-0c6b2b03]{padding:0 8px 8px;overflow-x:auto}.lc-tbl[data-v-0c6b2b03]{min-width:640px}.lc-tbl .c-ent[data-v-0c6b2b03]{width:246px}.lc-tbl .c-act[data-v-0c6b2b03]{width:92px}.lc-tbl .c-file[data-v-0c6b2b03]{width:218px}.lc-tbl thead th[data-v-0c6b2b03]{border-bottom:1px solid var(--line);letter-spacing:.1em;padding:6px 12px 8px;font-size:9.4px;font-weight:660}.lc-tbl tbody tr[data-v-0c6b2b03]{cursor:default}.lc-tbl tbody td[data-v-0c6b2b03]{border-top:0;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 12px 12px}.lc-tbl tbody tr:last-child td[data-v-0c6b2b03]{border-bottom:0}.lc-tbl tbody tr:hover td[data-v-0c6b2b03]{background:#fbfaff}.ent-top[data-v-0c6b2b03]{align-items:center;gap:6px;display:flex}.kind[data-v-0c6b2b03]{letter-spacing:.03em;border-radius:5px;flex:none;padding:0 5px;font-size:9.4px;font-weight:680;line-height:15px}.kind-story[data-v-0c6b2b03]{color:#5433cf;background:#efe9fe}.kind-task[data-v-0c6b2b03]{color:#6b6f77;background:#f1f1ee}.ent-id[data-v-0c6b2b03]{color:#6d5aa8;font-size:10.6px}.ent-id[data-v-0c6b2b03]:hover{color:var(--violet-ink);text-underline-offset:2px;text-decoration:underline}.ent-title[data-v-0c6b2b03]{color:var(--ink);margin-top:4px;font-size:12.5px;font-weight:590;line-height:1.5}.act[data-v-0c6b2b03]{border-radius:999px;padding:0 7px;font-size:10px;font-weight:660;line-height:17px;display:inline-block}.act-added[data-v-0c6b2b03]{color:#46742a;background:#e9f8dd}.act-updated[data-v-0c6b2b03]{color:#2a5f9e;background:#e8f1fd}.act-removed[data-v-0c6b2b03]{color:#a83a32;background:#fdeae9}.flow[data-v-0c6b2b03]{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:3px;margin-top:5px;font-size:10px;line-height:1.4;display:flex}.flow i[data-v-0c6b2b03]{color:var(--ink-4);font-style:normal}.cell-note[data-v-0c6b2b03]{color:var(--ink-2);font-size:12.1px;line-height:1.62}.chips[data-v-0c6b2b03]{flex-wrap:wrap;gap:4px;display:flex}.fchip[data-v-0c6b2b03]{border:1px solid var(--line-2);background:var(--sunken);max-width:100%;color:var(--ink-2);text-overflow:ellipsis;border-radius:5px;padding:0 5px;font-size:9.9px;line-height:16px;overflow:hidden}.lc-extras[data-v-0c6b2b03]{display:grid}.x-item[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);gap:9px;padding:11px 0;display:flex}.x-item[data-v-0c6b2b03]:first-child{border-top:0;padding-top:0}.x-mark[data-v-0c6b2b03]{background:#b9a5f5;border-radius:999px;flex:none;width:5px;height:5px;margin-top:7px;box-shadow:0 0 0 3px #b9a5f529}.step-bd[data-v-0c6b2b03],.u-link[data-v-0c6b2b03],.v-body[data-v-0c6b2b03],.x-body[data-v-0c6b2b03]{min-width:0}.x-title[data-v-0c6b2b03]{font-size:12.4px;font-weight:600;line-height:1.55}.x-detail[data-v-0c6b2b03]{color:var(--ink-2);margin-top:3px;font-size:11.8px;line-height:1.62}.x-files[data-v-0c6b2b03]{margin-top:6px}.lc-checks[data-v-0c6b2b03]{display:grid}.v-item[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);align-items:flex-start;gap:9px;padding:10px 0;display:flex}.v-item[data-v-0c6b2b03]:first-child{border-top:0;padding-top:0}.v-ic[data-v-0c6b2b03]{border-radius:7px;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;display:grid}.u-go[data-v-0c6b2b03],.v-svg[data-v-0c6b2b03]{width:12px;height:12px}.v-ic.v-pass[data-v-0c6b2b03]{color:#4b7a2c;background:#e9f8dd}.v-ic.v-fail[data-v-0c6b2b03]{color:#ab3a32;background:#fdeae9}.v-ic.v-partial[data-v-0c6b2b03]{color:#8a6116;background:#fdf3dd}.v-ic.v-skipped[data-v-0c6b2b03]{color:#82868e;background:#f1f1ee}.v-body[data-v-0c6b2b03]{flex:1}.v-what[data-v-0c6b2b03]{word-break:break-word;font-size:12.2px;font-weight:590;line-height:1.5}.v-detail[data-v-0c6b2b03]{color:var(--ink-3);margin-top:2px;font-size:11.4px;line-height:1.55}.v-res[data-v-0c6b2b03]{letter-spacing:.02em;flex:none;margin-top:2px;font-size:10.2px;font-weight:660}.v-res.v-pass[data-v-0c6b2b03]{color:#4b7a2c}.v-res.v-fail[data-v-0c6b2b03]{color:#ab3a32}.v-res.v-partial[data-v-0c6b2b03]{color:#8a6116}.v-res.v-skipped[data-v-0c6b2b03]{color:#82868e}.acc-grid[data-v-0c6b2b03]{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px 22px;display:grid}.acc-col[data-v-0c6b2b03]{align-content:start;gap:9px;display:grid}.a-item[data-v-0c6b2b03],.u-item[data-v-0c6b2b03]{border-radius:var(--r-md);border:1px solid var(--line);background:var(--sunken-2);padding:10px 12px;transition:border-color .14s,background .14s}.a-item[data-v-0c6b2b03]:hover,.u-item[data-v-0c6b2b03]:hover{border-color:var(--line-3);background:#fff}.a-head[data-v-0c6b2b03],.u-head[data-v-0c6b2b03]{align-items:center;gap:6px;display:flex}.u-link[data-v-0c6b2b03]{align-items:center;gap:4px;display:inline-flex}.u-label[data-v-0c6b2b03]{font-size:12.2px;font-weight:640}.u-go[data-v-0c6b2b03]{color:var(--violet);flex:none;transition:transform .14s}.u-link:hover .u-go[data-v-0c6b2b03]{transform:translate(1px,-1px)}.u-link:hover .u-label[data-v-0c6b2b03]{color:var(--violet-ink)}.u-url[data-v-0c6b2b03]{color:var(--sky);text-overflow:ellipsis;margin-top:3px;font-size:11.3px;overflow:hidden}.u-note[data-v-0c6b2b03]{color:var(--ink-3);margin-top:3px;font-size:10.9px;line-height:1.5}.a-role[data-v-0c6b2b03]{border:1px solid var(--violet-line);background:var(--violet-soft);color:var(--violet-ink);letter-spacing:.03em;border-radius:999px;padding:0 6px;font-size:9.6px;font-weight:680;line-height:16px}.a-user[data-v-0c6b2b03]{color:var(--ink);font-size:11.8px}.a-line[data-v-0c6b2b03]{align-items:center;gap:8px;margin-top:6px;display:flex}.a-key[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.4px;font-weight:660}.a-pass[data-v-0c6b2b03]{border:1px solid var(--line-2);color:var(--ink);background:#fff;border-radius:6px;padding:1px 7px;font-size:11.4px}.a-none[data-v-0c6b2b03]{font-size:11.2px}.a-note[data-v-0c6b2b03]{margin-top:5px;font-size:10.9px}.a-note[data-v-0c6b2b03],.cpy[data-v-0c6b2b03]{color:var(--ink-3)}.cpy[data-v-0c6b2b03]{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:none;align-items:center;gap:4px;height:23px;margin-left:auto;padding:0 8px;font-size:10.6px;font-weight:600;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.cpy[data-v-0c6b2b03]:hover{border-color:var(--line-2);color:var(--ink);background:#fff}.cpy.ok[data-v-0c6b2b03]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.cpy-ic[data-v-0c6b2b03]{width:11px;height:11px}.steps[data-v-0c6b2b03]{counter-reset:st;gap:13px;margin:0;padding:2px 18px 16px;list-style:none;display:grid}.steps>li[data-v-0c6b2b03]{counter-increment:st;padding-left:33px;position:relative}.steps>li[data-v-0c6b2b03]:before{content:counter(st);border:1px solid var(--violet-line);width:22px;height:22px;color:var(--violet-ink);background:#fff;border-radius:999px;place-items:center;font-size:10.4px;font-weight:700;display:grid;position:absolute;top:0;left:0}.steps>li[data-v-0c6b2b03]:not(:last-child):after{content:"";background:linear-gradient(#ded2fb,#efeaf9);width:1px;position:absolute;top:26px;bottom:-13px;left:10.5px}.step-text[data-v-0c6b2b03]{padding-top:1px;font-size:12.5px;font-weight:590;line-height:1.5}.cmd-row[data-v-0c6b2b03]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.cmd[data-v-0c6b2b03]{color:#f4f3ef;white-space:pre-wrap;word-break:break-all;background:#1b1c20;border-radius:7px;padding:4px 9px;font-size:11.1px;line-height:1.5}.cmd-row .cpy[data-v-0c6b2b03]{margin-left:0}.step-note[data-v-0c6b2b03]{color:var(--ink-3);margin-top:4px;font-size:11.2px;line-height:1.55}.lc-sc-sec[data-v-0c6b2b03]{gap:11px;display:grid}.lc-sc-grid[data-v-0c6b2b03]{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.lc-sc-grid[data-v-0c6b2b03]>*{flex:330px;min-width:0}.sc[data-v-0c6b2b03]{border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1);background:#fff;flex-direction:column;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;overflow:hidden}.sc[data-v-0c6b2b03]:hover{border-color:#e3d9f8;transform:translateY(-1px);box-shadow:0 16px 34px -26px #231a3d73}.sc-hd[data-v-0c6b2b03]{align-items:flex-start;gap:8px;padding:12px 14px 9px;display:flex}.sc-id[data-v-0c6b2b03]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:5px;flex:none;margin-top:1px;padding:0 5px;font-size:9.6px;font-weight:660;line-height:16px}.sc-title[data-v-0c6b2b03]{letter-spacing:-.008em;font-size:12.9px;font-weight:630;line-height:1.45}.sc-body[data-v-0c6b2b03]{padding:0 14px 10px}.lc-sc-steps[data-v-0c6b2b03]{counter-reset:ss;gap:5px;margin:6px 0 0;padding:0;list-style:none;display:grid}.lc-sc-steps li[data-v-0c6b2b03]{counter-increment:ss;color:var(--ink-2);padding-left:19px;font-size:12px;line-height:1.55;position:relative}.lc-sc-steps li[data-v-0c6b2b03]:before{content:counter(ss) ".";color:#a58cf8;font-variant-numeric:tabular-nums;font-size:10.6px;font-weight:680;position:absolute;top:0;left:0}.sc-acc[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);background:linear-gradient(#fbfdf6,#fff);margin-top:auto;padding:10px 14px 12px}.sc-acc-h[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:#6b7a45;align-items:center;gap:4px;font-size:9.4px;font-weight:700;display:flex}.sc-acc-ic[data-v-0c6b2b03]{flex:none;width:11px;height:11px}.sc-acc-t[data-v-0c6b2b03]{color:#33401c;margin-top:4px;font-size:12px;line-height:1.62}.sc-foot[data-v-0c6b2b03]{color:var(--ink-4);flex-wrap:wrap;align-items:center;gap:10px;margin-top:7px;font-size:10.6px;display:flex}.sc-ids[data-v-0c6b2b03]{gap:6px;display:flex}.lc-notes[data-v-0c6b2b03]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lc-notes li[data-v-0c6b2b03]{color:var(--ink-2);padding-left:13px;font-size:12.1px;line-height:1.66;position:relative}.lc-notes li[data-v-0c6b2b03]:before{content:"";background:#c3b2f7;border-radius:999px;width:4.5px;height:4.5px;position:absolute;top:7.5px;left:1px}.lc-notes.warn li[data-v-0c6b2b03]:before{background:#e8bb5e}.sec-warn .s-ic[data-v-0c6b2b03]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.lc-empty[data-v-0c6b2b03]{text-align:center;border-radius:24px;justify-items:center;gap:9px;padding:52px 24px 46px;display:grid}.em-ic[data-v-0c6b2b03]{background:var(--grad-lilac);width:48px;height:48px;color:var(--violet-ink);border:1px solid #dbcdfb;border-radius:16px;place-items:center;display:grid}.em-svg[data-v-0c6b2b03]{width:21px;height:21px}.em-title[data-v-0c6b2b03]{letter-spacing:-.02em;margin-top:2px;font-size:16px;font-weight:660}.em-sub[data-v-0c6b2b03]{max-width:54ch;font-size:12.6px;line-height:1.7}.em-path[data-v-0c6b2b03],.em-sub[data-v-0c6b2b03]{color:var(--ink-2)}.em-path[data-v-0c6b2b03]{border:1px dashed var(--line-3);background:var(--sunken);border-radius:999px;margin-top:3px;padding:4px 12px;font-size:11.4px}.em-note[data-v-0c6b2b03]{color:var(--ink-4);font-size:11px}.rule-btn[data-v-0c6b2b03]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.8px;font-weight:620;transition:border-color .14s,color .14s,background .14s;display:inline-flex}.rule-btn[data-v-0c6b2b03]:hover{border-color:var(--violet-line);background:var(--violet-soft);color:var(--violet-ink)}.rule-btn i[data-v-0c6b2b03]{background:var(--sunken);color:var(--ink-3);border-radius:999px;padding:0 4px;font-size:9.4px;font-style:normal;line-height:15px}.hist-badge-ic[data-v-0c6b2b03],.rule-btn-ic[data-v-0c6b2b03]{width:12px;height:12px}.lc-hist-bar[data-v-0c6b2b03]{box-shadow:var(--shadow-1);background:linear-gradient(#faf7ff,#fff);border-radius:14px;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:9px 12px;display:flex}.hist-badge[data-v-0c6b2b03],.lc-hist-bar[data-v-0c6b2b03]{border:1px solid var(--violet-line);align-items:center}.hist-badge[data-v-0c6b2b03]{background:var(--violet-soft);color:var(--violet-ink);border-radius:999px;flex:none;gap:4px;padding:1px 8px;font-size:10.4px;font-weight:680;line-height:18px;display:inline-flex}.hist-readonly[data-v-0c6b2b03]{color:var(--ink-4);flex:none;font-size:10.2px}.lc-hist-tabs[data-v-0c6b2b03]{flex:1;align-items:center;gap:4px;min-width:0;padding:1px 0;display:flex;overflow-x:auto}.lc-hist-tabs[data-v-0c6b2b03]::-webkit-scrollbar{height:3px}.lc-hist-tabs[data-v-0c6b2b03]::-webkit-scrollbar-thumb{background:#dcd8ef;border-radius:999px}.hist-tab[data-v-0c6b2b03]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.6px;font-weight:620;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.hist-tab[data-v-0c6b2b03]:hover{border-color:var(--violet-line);color:var(--violet-ink)}.hist-tab.on[data-v-0c6b2b03]{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-ink);font-weight:680}.hist-tab i[data-v-0c6b2b03]{color:var(--ink-4);font-size:9.2px;font-style:normal;font-weight:560}.hist-tab.on i[data-v-0c6b2b03]{color:#7a63b8}.lc-hist-mask[data-v-0c6b2b03]{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14121e6b;place-items:center;padding:24px;animation:.14s lc-fade-0c6b2b03;display:grid;position:fixed;inset:0}.lc-hist[data-v-0c6b2b03]{border:1px solid var(--line);background:#fff;border-radius:20px;flex-direction:column;width:min(680px,100%);max-height:calc(min(76vh,720px));animation:.16s lc-pop-0c6b2b03;display:flex;overflow:hidden;box-shadow:0 40px 80px -40px #14121e8c}@keyframes lc-fade-0c6b2b03{0%{opacity:0}to{opacity:1}}@keyframes lc-pop-0c6b2b03{0%{opacity:0;transform:translateY(6px)scale(.99)}to{opacity:1;transform:none}}.lc-hist-hd[data-v-0c6b2b03]{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 18px 12px;display:flex}.lc-hist-hd-txt[data-v-0c6b2b03]{min-width:0}.lc-hist-title[data-v-0c6b2b03]{letter-spacing:-.015em;font-size:15px;font-weight:660}.lc-hist-sub[data-v-0c6b2b03]{color:var(--ink-3);margin-top:3px;font-size:11.2px}.lc-hist-x[data-v-0c6b2b03]{width:26px;height:26px;color:var(--ink-3);cursor:pointer;border-radius:9px;flex:none;place-items:center;margin-left:auto;transition:background .14s,color .14s;display:grid}.lc-hist-x[data-v-0c6b2b03]:hover{background:var(--sunken);color:var(--ink)}.lc-hist-x-ic[data-v-0c6b2b03]{width:14px;height:14px}.lc-hist-list[data-v-0c6b2b03]{gap:2px;padding:8px;display:grid;overflow-y:auto}.hist-item[data-v-0c6b2b03]{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 11px;transition:background .14s,border-color .14s;display:flex}.hist-item[data-v-0c6b2b03]:hover{background:var(--sunken-2);border-color:var(--line)}.hist-item.on[data-v-0c6b2b03]{background:var(--violet-soft);border-color:var(--violet-line)}.hist-item[data-v-0c6b2b03]:disabled{opacity:.6;cursor:wait}.hist-item-dot[data-v-0c6b2b03]{background:#d3cfe6;border-radius:999px;flex:none;width:6px;height:6px}.hist-item-dot.live[data-v-0c6b2b03]{background:#6aa844;box-shadow:0 0 0 3px #6aa84429}.hist-item-main[data-v-0c6b2b03]{flex:1;gap:2px;min-width:0;display:grid}.hist-item-main b[data-v-0c6b2b03]{text-overflow:ellipsis;white-space:nowrap;font-size:12.4px;font-weight:600;overflow:hidden}.hist-item-main i[data-v-0c6b2b03]{color:var(--ink-4);font-size:10.2px;font-style:normal}.hist-item-hash[data-v-0c6b2b03]{border:1px solid var(--line-2);color:var(--ink-3);background:#fff;border-radius:6px;flex:none;padding:0 6px;font-size:9.8px;line-height:16px}.lc-hist-hint[data-v-0c6b2b03]{text-align:center;padding:18px 12px;font-size:12px}.lc-hist-err[data-v-0c6b2b03]{border-radius:var(--r-md);color:#a5382f;background:#fdeae7;border:1px solid #f6d2cb;margin:12px 18px;padding:9px 11px;font-size:11.8px}.lc-hist-ft[data-v-0c6b2b03]{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:11px 18px;font-size:10.8px;display:flex}.hist-close[data-v-0c6b2b03]{border:1px solid var(--ink-card);background:var(--ink-card);color:#fff;cursor:pointer;border-radius:999px;flex:none;height:26px;padding:0 12px;font-size:11px;font-weight:620}.hist-close[data-v-0c6b2b03]:hover{background:#000}.lc-commit[data-v-0c6b2b03]{width:min(640px,100%)}.cm-body[data-v-0c6b2b03]{gap:7px;padding:12px 18px 14px;display:grid;overflow-y:auto}.cm-msg[data-v-0c6b2b03]{background:var(--sunken);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;padding:10px 12px;font-size:11.4px;line-height:1.68;overflow:auto}.cm-files[data-v-0c6b2b03],.cm-msg[data-v-0c6b2b03]{border-radius:var(--r-md);border:1px solid var(--line-2);max-height:168px;margin:0}.cm-files[data-v-0c6b2b03]{background:#fff;gap:0;padding:0;list-style:none;display:grid;overflow-y:auto}.cm-file[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);align-items:baseline;gap:7px;padding:5px 10px;display:flex}.cm-file[data-v-0c6b2b03]:first-child{border-top:0}.cm-code[data-v-0c6b2b03]{text-align:center;border-radius:4px;flex:none;min-width:20px;padding:0 4px;font-size:9.4px;font-weight:700;line-height:15px}.cm-new[data-v-0c6b2b03]{color:#46742a;background:#e9f8dd}.cm-mod[data-v-0c6b2b03]{color:#2a5f9e;background:#e8f1fd}.cm-path[data-v-0c6b2b03]{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:10.9px;overflow:hidden}.cm-hint[data-v-0c6b2b03]{margin:0;font-size:11.6px;line-height:1.55}.cm-hint.warn[data-v-0c6b2b03]{color:#a5382f}.cm-done[data-v-0c6b2b03]{gap:10px;padding:16px 18px 18px;display:flex}.cm-done-ic[data-v-0c6b2b03]{color:#4b7a2c;background:#e9f8dd;border:1px solid #d5efc2;border-radius:10px;flex:none;place-items:center;width:30px;height:30px;display:grid}.cm-done-svg[data-v-0c6b2b03]{width:16px;height:16px}.cm-done-bd[data-v-0c6b2b03]{min-width:0}.cm-done-t[data-v-0c6b2b03]{font-size:13.4px;font-weight:660}.cm-done-s[data-v-0c6b2b03]{color:var(--ink-2);margin-top:3px;font-size:12.2px;line-height:1.55}.cm-done-n[data-v-0c6b2b03]{color:var(--ink-4);margin-top:4px;font-size:10.8px}.cm-acts[data-v-0c6b2b03]{align-items:center;gap:8px;display:inline-flex}.cm-go[data-v-0c6b2b03]{border:1px solid var(--violet);background:var(--violet);color:#fff;cursor:pointer;border-radius:999px;flex:none;height:26px;padding:0 14px;font-size:11.4px;font-weight:620;transition:filter .14s}.cm-go[data-v-0c6b2b03]:hover:not(:disabled){filter:brightness(1.08)}.cm-go[data-v-0c6b2b03]:disabled{opacity:.45;cursor:not-allowed}.hist-close[data-v-0c6b2b03]:disabled{opacity:.5;cursor:not-allowed}@media (width<=900px){.lc-hero[data-v-0c6b2b03]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 14px;padding:18px;display:grid}.hero-body[data-v-0c6b2b03]{grid-column:1}.hero-aside[data-v-0c6b2b03]{grid-area:1/2}.ring[data-v-0c6b2b03]{width:72px;height:72px}.ring-in[data-v-0c6b2b03]{width:58px;height:58px}.ring-in b[data-v-0c6b2b03]{font-size:14px}.ring-in span[data-v-0c6b2b03]{font-size:8.2px}.s-hint[data-v-0c6b2b03]{display:none}.s-copy[data-v-0c6b2b03]{margin-left:auto}.s-hd[data-v-0c6b2b03]{padding:12px 14px 10px}.sec-bd[data-v-0c6b2b03],.sec-empty[data-v-0c6b2b03],.steps[data-v-0c6b2b03]{padding-left:14px;padding-right:14px}}@media (width<=700px){.hist-readonly[data-v-0c6b2b03]{display:none}.lc-hist-bar .rule-btn[data-v-0c6b2b03]{order:2;margin-left:auto}.lc-hist-tabs[data-v-0c6b2b03]{flex-basis:100%;order:3}}@media (width<=560px){.lc-rule[data-v-0c6b2b03]{padding:10px 12px}.ring-in span[data-v-0c6b2b03],.rule-file[data-v-0c6b2b03]{display:none}.lc-hero[data-v-0c6b2b03]{gap:4px 10px;padding:15px}.hero-title[data-v-0c6b2b03]{letter-spacing:-.02em;font-size:17.5px}.hero-sum[data-v-0c6b2b03]{font-size:12.2px;line-height:1.62}.hero-meta[data-v-0c6b2b03]{gap:8px;margin-top:10px;font-size:10.8px}.ring[data-v-0c6b2b03]{width:56px;height:56px}.ring-in[data-v-0c6b2b03]{width:46px;height:46px}.ring-in b[data-v-0c6b2b03]{font-size:12.5px}.s-title[data-v-0c6b2b03]{font-size:13.2px}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DRlQgul3.js","./DZo3dYLJ.js","./CJ2mz0WY.js","./D2O8Q8x9.js","./DSaWoFHS.js","./C7K0R7F-.js","./51OWHj8c.js","./rlePnzpc.js","./DEfLc7p3.js","./DK3Fl9T5.js","./ChG76uh9.js","./Csqgy925.js","./CuJUHLl8.js","./B_SlFcWp.js","./_id_.B2NDKSlX.css","./CvLiA4_O.js","./BDcnzXHq.js","./B3jkABw9.js","./6gFtTBwm.js","./Cm9lkUvP.js","./DLkAKotw.js","./Vo4wMbnS.js","./CK9_veoz.js","./Bb3Limos.js","./Dtsa-1NS.js","./Ci0qbkgh.js","./BuOKDFiJ.js","./D3YCAmfu.js","./Bi9Axj3V.js","./DfR3IZN_.js","./EYTShbt4.js","./BgLeKwx0.js","./C9StZL3D.js","./BPTrRhcw.js","./burndown.Do6IbM6o.css","./COf6E6h4.js","./epics.Dmessplu.css","./DRPlYvb3.js","./gantt.Dmp00GUo.css","./
|
|
2
|
-
import{t as e}from"./DK3Fl9T5.js";import{_ as t,b as n,c as r,f as i,h as a,i as o,m as s,n as c,o as l,s as u,t as d,u as f,v as p,y as m}from"./D2O8Q8x9.js";import{$ as h,$n as g,B as _,Cn as v,D as y,E as b,En as x,Ft as S,Gt as C,Ht as w,J as T,L as E,Lt as ee,Nt as te,O as D,On as O,Pt as ne,Q as re,Rt as ie,Tn as ae,Un as oe,Ut as se,Yt as ce,Z as le,Zn as k,_ as A,b as j,bt as M,ct as ue,er as de,et as N,fn as fe,ft as pe,g as P,gn as me,gt as he,it as ge,jt as _e,k as F,l as ve,ln as ye,mt as I,o as L,pn as be,qt as R,rt as xe,s as Se,st as Ce,tr as z,tt as we,u as Te,un as Ee,v as B,vn as V,w as De,wn as Oe,wt as ke,xn as Ae,xt as H,y as U,yn as je,z as W}from"./DZo3dYLJ.js";import{C as Me,S as Ne,a as Pe,i as Fe,t as Ie,w as Le}from"./51OWHj8c.js";import{n as Re,r as ze,t as Be}from"./B3jkABw9.js";import{a as Ve,c as He,d as Ue,h as We,i as Ge,o as Ke,p as qe,s as Je,t as Ye}from"./DSaWoFHS.js";import{$ as Xe,A as Ze,B as Qe,C as $e,D as et,E as tt,F as nt,G as rt,H as it,I as at,J as ot,K as st,L as ct,M as lt,N as ut,O as dt,P as ft,Q as pt,R as mt,S as ht,T as gt,U as _t,V as vt,W as yt,X as bt,Y as xt,Z as St,_ as Ct,_t as wt,a as Tt,b as Et,ct as Dt,d as Ot,dt as kt,et as At,f as jt,ft as Mt,g as Nt,h as Pt,i as Ft,it as It,j as Lt,k as Rt,lt as zt,m as Bt,mt as Vt,nt as Ht,o as Ut,ot as Wt,p as Gt,pt as Kt,q as qt,r as Jt,rt as Yt,s as Xt,t as Zt,tt as Qt,ut as $t,v as en,vt as tn,w as nn,x as rn,y as an,z as on}from"./C7K0R7F-.js";import{a as sn,c as cn,d as ln,f as un,i as dn,l as fn,n as pn,o as mn,r as hn,s as gn,t as _n,u as vn}from"./ChG76uh9.js";import{a as yn,o as bn,r as xn,s as Sn,t as Cn}from"./CJ2mz0WY.js";import{r as wn}from"./Csqgy925.js";import{a as Tn,c as En,i as Dn,o as On,r as kn,s as An}from"./DEfLc7p3.js";import{c as jn,d as Mn,h as Nn,i as Pn,l as Fn,m as In,n as Ln,s as Rn,t as zn}from"./6gFtTBwm.js";import{n as Bn,r as Vn,t as Hn}from"./DLkAKotw.js";import{n as Un}from"./Bb3Limos.js";import{C as Wn,T as Gn,a as Kn,b as qn,g as Jn,h as Yn,m as Xn,p as Zn,r as Qn}from"./CuJUHLl8.js";import{c as $n,i as er,l as tr,o as nr,p as rr,r as ir,s as ar,t as or}from"./Vo4wMbnS.js";import{t as sr}from"./CK9_veoz.js";import{S as cr,_ as lr,a as ur,c as dr,d as fr,f as pr,g as mr,h as hr,i as gr,l as _r,m as vr,n as yr,o as br,p as xr,r as Sr,s as Cr,t as wr,u as Tr,v as Er,x as Dr,y as Or}from"./Dtsa-1NS.js";import{t as kr}from"./Ci0qbkgh.js";import{n as Ar,t as jr}from"./BuOKDFiJ.js";import{t as G}from"./D3YCAmfu.js";import{t as Mr}from"./B_SlFcWp.js";import{t as Nr}from"./C9StZL3D.js";import{t as Pr}from"./Bi9Axj3V.js";import{i as Fr,n as Ir,t as Lr}from"./BPTrRhcw.js";import{t as Rr}from"./rlePnzpc.js";import{a as zr,i as Br,n as Vr,r as Hr,t as Ur}from"./BgLeKwx0.js";import{i as Wr,n as Gr,t as Kr}from"./DfR3IZN_.js";import{n as qr,t as Jr}from"./EYTShbt4.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)}})();var Yr=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Xr=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Zr=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Qr(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)$r(e);else return t}function $r(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function ei(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Zr.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(Yr.test(e)||Xr.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,Qr)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}var ti=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function ni(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new ti(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:`<no response>`}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var ri=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function ii(e=`GET`){return ri.has(e.toUpperCase())}function ai(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var oi=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),si=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function ci(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return si.test(t)?`json`:t===`text/event-stream`?`stream`:oi.has(t)||t.startsWith(`text/`)?`text`:`blob`}function li(e,t,n,r){let i=ui(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function ui(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function di(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var fi=new Set([408,409,425,429,500,502,503,504]),pi=new Set([101,204,205,304]);function mi(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!ii(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):fi.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=ni(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:li(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await di(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=Ue(s.request,s.options.baseURL)),s.options.query&&(s.request=qe(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&ii(s.options.method)){if(ai(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await di(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!pi.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||ci(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||ei;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await di(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await di(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>mi({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var hi=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),gi=hi.fetch?(...e)=>hi.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),_i=hi.Headers,vi=hi.AbortController,yi=mi({fetch:gi,Headers:_i,AbortController:vi}),bi=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,xi=()=>bi().app,Si=()=>xi().baseURL,Ci=()=>xi().buildAssetsDir,wi=(...e)=>Je(Ti(),Ci(),...e),Ti=(...e)=>{let t=xi(),n=t.cdnURL||t.baseURL;return e.length?Je(n,...e):n};globalThis.__buildAssetsURL=wi,globalThis.__publicAssetsURL=Ti,globalThis.$fetch||(globalThis.$fetch=yi.create({baseURL:Si()}));var Ei=globalThis.$fetch;`global`in globalThis||(globalThis.global=globalThis);function Di(e,t){t.push(r),e.vueApp.use(t);let n=!0,i=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||i()}),e.hooks.hook(`app:error`,i),e.hooks.hook(`app:suspense:resolve`,i);let a=t.push.bind(t);t.push=((t,n)=>{let r=a(t,n),i=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(i):i()},r})}function Oi(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function ki(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>Oi(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}function Ai(e,t,n){let r=e.push,i=e;i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>Oi(i,e),i.render=()=>n(i);function a(){t.callHook(`entries:updated`,i),i._b||i.render()}return i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,a()},i.push=(n,o)=>{let s=o?.onRendered?t.hook(`dom:rendered`,o.onRendered):void 0,c=r(n,o),l=e.entries.get(c._i);return l&&(l._o=n),i.dirty=!0,a(),{_i:c._i,patch(e){c.patch(e),i.dirty=!0,a()},dispose(){s?.(),e.entries.has(c._i)&&(c.dispose(),i.invalidate())}}},i}var ji=/\s+/;function Mi(e={}){return t=>Fi(t,e)}function Ni(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function Pi(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(ji))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function Fi(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom;if(!n||e._du||r&&r._d===n&&!e.dirty&&!Ni(e))return!1;let i=n.defaultView;e._du=!0;let a=!1;try{let o=function(e,t,n){d._s[e]=!n&&f[e]||t,delete f[e]},s=function(e,t,n,r,i,a){let s=`${e}:event:${t}`,c=d._l.get(s);if(c&&c[0]===a&&c[1]===n&&c[2]===r){o(s,c[4]);return}c?.[4]();let l=`data-${t}`,u=(e=>r.call(i,e)),f=()=>{a.removeEventListener(n,u),i.getAttribute(l)===``&&i.removeAttribute(l),d._l.get(s)?.[3]===u&&d._l.delete(s)};a.addEventListener(n,u),d._l.set(s,[a,n,r,u,f]),i.setAttribute(l,``),o(s,f,!0)},c=function({id:e,$el:t,tag:n}){if(d._e.set(e,t),!n.tag.endsWith(`Attrs`)){let r=n.textContent;r!=null&&r!==``&&(r!==t.textContent&&(t.textContent=r),o(`${e}:text`,()=>{t.textContent===r&&(t.textContent=``)},!0));let i=n.innerHTML;i!=null&&i!==``&&(i!==t.innerHTML&&(t.innerHTML=i),o(`${e}:html`,()=>{t.innerHTML===i&&(t.innerHTML=``)},!0));let a=`${e}:el`;o(a,f[a]||(()=>{t?.remove(),d._e.delete(e)}))}for(let r in n.props){let a=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof a==`function`){let o=r.slice(2);t?.dataset?.[`${r}fired`]&&a.call(t,new((i?.Event)||Event)(o)),s(e,r,o,a,t,n.tag===`bodyAttrs`&&i?i:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&a)for(let e of a){let n=`${c}:${e}`;o(n,f[n]||(()=>t.classList.remove(e))),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&a)for(let[e,n]of a){let r=`${c}:${e}`;o(r,f[r]||(()=>t.style.removeProperty(e))),t.style.setProperty(e,n)}else a!==!1&&a!==null&&(t.getAttribute(r)!==a&&t.setAttribute(r,a===!0?``:String(a)),o(c,f[c]||(()=>t.removeAttribute(r))))}},l={shouldRender:!0,tags:[]};if(fn(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=r;if(u?._d!==n){if(u){for(let e in u._s)u._s[e]();for(let e in u._p)u._p[e]();u._s=u._p={},u._e.clear(),u._l.clear()}u=void 0}u?u._p=u._s:u=Pi(e,n),u._s={};let d=u,f=d._p,p=[],m={};e.dirty=!1;let h=cn(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),g=[],_={};for(let e of h){let t=_[e._d]||0,r=(t?`${e._d}:${t}`:e._d)||e._h,i={tag:e,id:r,shouldRender:!0};e.tag===`meta`&&e._d&&mn(e._d)&&(_[e._d]=t+1),g.push(i),e.tag===`title`?(n.title=e.textContent,o(`title:`,()=>n.title=d._t)):(i.$el=d._e.get(r),i.$el?c(i):ln.has(e.tag)&&p.push(i))}if(p.length){let e=new Set(d._e.values());for(let t of[...n.body.children,...n.head.children]){let n=t.tagName.toLowerCase();if(!ln.has(n)||e.has(t))continue;let r={innerHTML:t.innerHTML};for(let e of t.getAttributeNames())r[e]=t.getAttribute(e);let i=gn({tag:n,props:{}},r);i.key=t.getAttribute(`data-hid`)||void 0;let a=dn(i)||sn(i),o=a,s=1;for(;d._e.has(o);)o=`${a}:${s++}`;d._e.set(o,t)}}for(let e of p){let t=d._e.get(e.id);e.$el=t||n.createElement(e.tag.tag),c(e),t||(m[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el)}m.head&&n.head.appendChild(m.head),m.bodyOpen&&n.body.insertBefore(m.bodyOpen,n.body.firstChild),m.bodyClose&&n.body.appendChild(m.bodyClose);for(let e in f)f[e]();e._dom=d,a=!0,fn(e,`dom:rendered`,{renders:g})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return a&&(e.dirty||Ni(e))&&Fi(e,t),a}var Ii=e=>typeof e.tagPriority==`number`?e.tagPriority:100+(un[e.tagPriority]||0);function Li(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||Mi({document:e.document}),n=Ai(ki(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:Ii,init:[]}),vn(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}function Ri(e,t){return t&&typeof e==`function`&&(e.key=t),e}var zi=/\\/g,Bi=/</g,Vi=/"/g,Hi=/%\w+(?:\.\w+)?/g,Ui=`%separator`;function Wi(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0){let e=String(typeof r==`number`?r:r||``);return n?e.replace(zi,`\\\\`).replace(Bi,`\\u003C`).replace(Vi,`\\"`):e}}function Gi(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(Hi);if(!a)return e;let o=e.includes(Ui);return e=e.replace(Hi,e=>{if(e===Ui||!a.includes(e))return e;let n=Wi(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(Ui).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var Ki=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,qi=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),Ji=Ri({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=qi(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=qi(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(Ki))}}}),Yi=Ri({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function Xi(e){return typeof e?.then==`function`}var Zi=256;function Qi(e,t){if(t===e.length)return;if(t===Zi){let n=Array(e.length),r=!1;for(;t<e.length;t++){let i=ea(e[t]);n[t]=i,r||=Xi(i)}return r?n:void 0}let n=ea(e[t]);if(Xi(n)){let r=Array(e.length);r[t]=n;for(let n=t+1;n<e.length;n++)r[n]=ea(e[n]);return r}let r=Qi(e,t+1);return r&&(r[t]=n),r}function $i(e,t,n){if(n===t.length)return;if(n===Zi){let r=Array(t.length),i=!1;for(;n<t.length;n++){let a=ea(e[t[n]]);r[n]=a,i||=Xi(a)}return i?r:void 0}let r=ea(e[t[n]]);if(Xi(r)){let i=Array(t.length);i[n]=r;for(let r=n+1;r<t.length;r++)i[r]=ea(e[t[r]]);return i}let i=$i(e,t,n+1);return i&&(i[n]=r),i}function ea(e){if(typeof e==`function`)return e;if(Xi(e))return Promise.resolve(e).then(ea);if(Array.isArray(e)){let t=Qi(e,0);return t?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=$i(e,t,0);if(n)return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var ta=Ri(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=ea(a);Xi(o)?(t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})):t.delete(i)}}}}},`promises`),na={meta:`content`,link:`href`,htmlAttrs:`lang`},ra=[`innerHTML`,`textContent`];function ia(e,t,n,r=!1){return typeof e==`string`&&e.includes(`%`)?Gi(e,t,n,r):e}var aa=Ri(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=ia(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=na[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=ia(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of ra)typeof e[t]==`string`&&(e[t]=ia(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=ia(n.textContent,e._templateParams,e._separator))}}}),`template-params`);function oa(e={}){let t=Mi(),n,r=0;return n=Li({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=hn(n),n}var sa={disableDefaults:!0,plugins:[Yi,ta,aa,Ji]},ca=o({name:`nuxt:head`,enforce:`pre`,setup(e){Di(e,oa(sa))}}),la=/(:\w+)\([^)]+\)/g,ua=/(:\w+)[?+*]/g,da=/:\w+/g,fa=(e,t)=>t.path.replace(la,`$1`).replace(ua,`$1`).replace(da,t=>e.params[t.slice(1)]?.toString()||``),pa=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&fa(e.route,n));return typeof r==`function`?r(e.route):r},ma=(e,t)=>({default:()=>e?_(Se,e===!0?{}:e,t):t});function ha(e){return Array.isArray(e)?e:[e]}var ga=()=>({}),_a=()=>location.protocol+`//`+location.host;function va(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),bt(n,``)}return bt(n,e)+r+i}function ya(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=va(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Bt.pop,direction:u?u>0?jt.forward:jt.back:jt.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(Ct({},e.state,{scroll:en()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function ba(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?en():null}}function xa(e){let{history:t,location:n}=window,r={value:va(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:_a()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,Ct({},t.state,ba(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Ct({},i.value,t.state,{forward:e,scroll:en()});a(o.current,o,!0),a(e,Ct({},ba(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Sa(e){e=on(e);let t=xa(e),n=ya(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Ct({location:``,base:e,go:r,createHref:an.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Ca=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),wa=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(wa||{}),Ta={type:Ca.Static,value:``},Ea=/[a-zA-Z0-9_]/;function Da(e){if(!e)return[[]];if(e===`/`)return[[Ta]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=wa.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===wa.Static?a.push({type:Ca.Static,value:l}):n===wa.Param||n===wa.ParamRegExp||n===wa.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Ca.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)if(c=e[s++],c===`\\`&&n!==wa.ParamRegExp)r=n,n=wa.EscapeNext;else switch(n){case wa.Static:c===`/`?(l&&d(),o()):c===`:`?(d(),n=wa.Param):f();break;case wa.EscapeNext:f(),n=r;break;case wa.Param:c===`(`?n=wa.ParamRegExp:Ea.test(c)?f():(d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case wa.ParamRegExp:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=wa.ParamRegExpEnd:u+=c;break;case wa.ParamRegExpEnd:d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`)}return n===wa.ParamRegExp&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Oa=`[^/]+?`,ka={sensitive:!1,strict:!1,start:!0,end:!0},Aa=function(e){return e[e._multiplier=10]=`_multiplier`,e[e.Root=90]=`Root`,e[e.Segment=40]=`Segment`,e[e.SubSegment=30]=`SubSegment`,e[e.Static=40]=`Static`,e[e.Dynamic=20]=`Dynamic`,e[e.BonusCustomRegExp=10]=`BonusCustomRegExp`,e[e.BonusWildcard=-50]=`BonusWildcard`,e[e.BonusRepeatable=-20]=`BonusRepeatable`,e[e.BonusOptional=-8]=`BonusOptional`,e[e.BonusStrict=.7000000000000001]=`BonusStrict`,e[e.BonusCaseSensitive=.25]=`BonusCaseSensitive`,e}(Aa||{}),ja=/[.+*?^${}()[\]/\\]/g;function Ma(e,t){let n=Ct({},ka,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[Aa.Root];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=Aa.Segment+(n.sensitive?Aa.BonusCaseSensitive:0);if(o.type===Ca.Static)r||(i+=`/`),i+=o.value.replace(ja,`\\$&`),s+=Aa.Static;else if(o.type===Ca.Param){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Oa;if(u!==Oa){s+=Aa.BonusCustomRegExp;try{`${u}`}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=Aa.Dynamic,c&&(s+=Aa.BonusOptional),n&&(s+=Aa.BonusRepeatable),u===`.*`&&(s+=Aa.BonusWildcard)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=Aa.BonusStrict}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){r&&n.endsWith(`/`)||(n+=`/`),r=!1;for(let e of i)if(e.type===Ca.Static)n+=e.value;else if(e.type===Ca.Param){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(Rt(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=Rt(c)?c.join(`/`):c;if(!l){if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`)}n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Na(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===Aa.Static+Aa.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Aa.Static+Aa.Segment?1:-1:0}function Pa(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Na(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Fa(r))return 1;if(Fa(i))return-1}return i.length-r.length}function Fa(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ia={strict:!1,end:!0,sensitive:!1};function La(e,t,n){let r=Ma(Da(e.path),n),i=Ct(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Ra(e,t){let n=[],r=new Map;t=ct(Ia,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ba(e);s.aliasOf=r&&r.record;let l=ct(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ba(Ct({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=La(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Ha(d)&&o(e.name)),Ka(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:mt}function o(e){if(lt(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Wa(e,n);n.splice(t,0,e),e.record.name&&!Ha(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=Ct(za(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&za(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=Ct({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Ua(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function za(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ba(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Va(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Va(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Ha(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ua(e){return e.reduce((e,t)=>Ct(e,t.meta),{})}function Wa(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Pa(e,t[i])<0?r=i:n=i+1}let i=Ga(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ga(e){let t=e;for(;t=t.parent;)if(Ka(t)&&Pa(e,t)===0)return t}function Ka({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function qa(e){let t=T(yt),n=T(_t),r=P(()=>{let n=O(e.to);return t.resolve(n)}),i=P(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(nt.bind(null,i));if(o>-1)return o;let s=Qa(e[t-2]);return t>1&&Qa(i)===s&&a[a.length-1].path!==s?a.findIndex(nt.bind(null,e[t-2])):o}),a=P(()=>i.value>-1&&Za(n.params,r.value.params)),o=P(()=>i.value>-1&&i.value===n.matched.length-1&&ft(n.params,r.value.params));function s(n={}){if(Xa(n)){let n=t[O(e.replace)?`replace`:`push`](O(e.to)).catch(mt);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:P(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Ja(e){return e.length===1?e[0]:e}var Ya=F({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:qa,setup(e,{slots:t}){let n=me(qa(e)),{options:r}=T(yt),i=P(()=>({[$a(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[$a(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ja(t.default(n));return e.custom?r:_(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Xa(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Za(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Rt(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Qa(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var $a=(e,t,n)=>e??t??n,eo=F({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=T(rt),i=P(()=>e.route||r.value),a=T(pt,0),o=P(()=>{let e=O(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=P(()=>i.value.matched[o.value]);he(pt,P(()=>o.value+1)),he(at,s),he(rt,i);let c=V();return w(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),!e||!t||i&&nt(t,i)&&r||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return to(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=_(l,Ct({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return to(n.default,{Component:f,route:r})||f}}});function to(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var no=eo;function ro(e){let t=Ra(e.routes,e),n=e.parseQuery||vt,r=e.stringifyQuery||ot,i=e.history,a=St(),o=St(),s=St(),c=Ae(Pt),l=Pt;Ze&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Nt.bind(null,e=>``+e),d=Nt.bind(null,$e),f=Nt.bind(null,rn);function p(e,n){let r,i;return lt(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=Ct({},a||c.value),typeof e==`string`){let r=it(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Ct(r,o,{params:f(o.params),hash:rn(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Ct({},e,{path:it(n,e.path,a.path).path});else{let t=Ct({},e.params);for(let e in t)t[e]??delete t[e];o=Ct({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=xt(r,Ct({},e,{hash:ht(l),path:s.path})),m=i.createHref(p);return Ct({fullPath:p,hash:l,query:r===ot?Qe(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?it(n,e,c.value.path):Ct({},e)}function y(e,t){if(l!==e)return Et(Ot.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Ct(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),Ct({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(Ct(v(u),{state:typeof u==`object`?Ct({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&ut(r,i,n)&&(f=Et(Ot.NAVIGATION_DUPLICATED,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>Lt(e)?Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if(Lt(e,Ot.NAVIGATION_GUARD_REDIRECT))return C(Ct({replace:s},v(e.to),{state:typeof e.to==`object`?Ct({},a,e.to.state):a,force:o}),t||d)}else e=te(d,i,!0,s,a);return ee(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=j.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=nn(e,t);n=gt(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(dt(r,e,t))});let c=w.bind(null,e,t);return n.push(c),ue(n).then(()=>{n=[];for(let r of a.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).then(()=>{n=gt(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(dt(r,e,t))});return n.push(c),ue(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Rt(r.beforeEnter))for(let i of r.beforeEnter)n.push(dt(i,e,t));else n.push(dt(r.beforeEnter,e,t))}return n.push(c),ue(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=gt(s,`beforeRouteEnter`,e,t,T),n.push(c),ue(n))).then(()=>{n=[];for(let r of o.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).catch(e=>Lt(e,Ot.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ee(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function te(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===Pt,l=Ze?history.state:{};n&&(r||s?i.replace(e.fullPath,Ct({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let D;function ne(){D||=i.listen((e,t,n)=>{if(!M.listening)return;let r=_(e),a=S(r,M.currentRoute.value);if(a){C(Ct(a,{replace:!0,force:!0}),r).catch(mt);return}l=r;let o=c.value;Ze&&st(et(o.fullPath,n.delta),en()),E(r,o).catch(e=>Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_CANCELLED)?e:Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?(C(Ct(v(e.to),{force:!0}),r).then(e=>{Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Bt.pop&&i.go(-1,!1)}).catch(mt),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=te(r,o,!1),e&&(n.delta&&!Lt(e,Ot.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Bt.pop&&Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ee(r,o,e)}).catch(mt)})}let re=St(),ie=St(),ae;function oe(e,t,n){ce(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return ae&&c.value!==Pt?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function ce(e){return ae||(ae=!e,ne(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!Ze||!a)return Promise.resolve();let o=!r&&tt(et(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return we().then(()=>a(t,n,o)).then(e=>e&&qt(e)).catch(e=>oe(e,t,n))}let k=e=>i.go(e),A,j=new Set,M={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:k,back:()=>k(-1),forward:()=>k(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:se,install(e){e.component(`RouterLink`,Ya),e.component(`RouterView`,no),e.config.globalProperties.$router=M,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>O(c)}),Ze&&!A&&c.value===Pt&&(A=!0,b(i.location).catch(e=>{}));let t={};for(let e in Pt)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(yt,M),e.provide(_t,je(t)),e.provide(rt,c);let n=e.unmount;j.add(e),e.unmount=function(){j.delete(e),j.size<1&&(l=Pt,D&&D(),D=null,c.value=Pt,A=!1,ae=!1),n()}}};function ue(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return M}var io=It(async e=>{if(!e.meta?.validate)return;let t=await Promise.resolve(e.meta.validate(e));if(t!==!0)return wt({fatal:!0,status:t&&(t.status||t.statusCode)||404,statusText:t&&(t.statusText||t.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})}),ao=n({docsBase:p,reporters:m}),oo=`modulepreload`,so=function(e,t){return new URL(e,t).href},co={},lo=function(e){return e.pathname.endsWith(`.css`)},uo=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},K=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=so(t,n);let r=s(t),i=lo(r);return uo(co,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:oo,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},fo=Ei;function po(e){return ga(e)}var mo;function ho(){let e;return e=fo(wi(`builds/meta/${u().app.buildId}.json`),{responseType:`json`}).then(e=>{if(!e||typeof e!=`object`||!Array.isArray(e.prerendered))throw ao.NUXT_E5004();return e}),mo=e,e.catch(t=>{mo===e&&(mo=void 0),ao.NUXT_E5002({cause:t})}),e}function go(){return mo||ho()}function _o(e){let t=typeof e==`string`?e:e.path;try{return po(t)}catch(e){return ao.NUXT_E5003({path:t,cause:e}),{}}}var vo=[io,It(e=>{let t=_o({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return Kt(n)?(window.location.href=n,!1):n}})],yo={},bo=[{name:`story-id`,path:`/story/:id()`,component:()=>K(()=>import(`./DRlQgul3.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)},{name:`burndown`,path:`/burndown`,component:()=>K(()=>import(`./CvLiA4_O.js`),__vite__mapDeps([15,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,34]),import.meta.url)},{name:`epics`,path:`/epics`,component:()=>K(()=>import(`./COf6E6h4.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,36]),import.meta.url)},{name:`gantt`,path:`/gantt`,component:()=>K(()=>import(`./DRPlYvb3.js`),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,38]),import.meta.url)},{name:`last-change`,path:`/last-change`,component:()=>K(()=>import(`./DrprggWq.js`),__vite__mapDeps([39,1,6,2,3,4,5,7,8,9,10,11,12,13,40]),import.meta.url)},{name:`milestones`,path:`/milestones`,component:()=>K(()=>import(`./P9x67aq2.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10,11,12,13,42]),import.meta.url)},{name:`index`,path:`/`,component:()=>K(()=>import(`./BodFvto3.js`),__vite__mapDeps([43,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,44]),import.meta.url)}],xo=/\/(?=$|[?#])/;function So(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),We(n,``)}let s=We(r,e),c=!n||Ve(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var Co=o({name:`nuxt:router`,enforce:`pre`,async setup(e){let t=u().app.baseURL,n=Sn.history?.(t)??Sa(t),r=Sn.routes?await Sn.routes(bo)??bo:bo,i,a=ro({...Sn,scrollBehavior:(e,t,n)=>{if(t===Pt)i=n;else if(Sn.scrollBehavior){if(a.options.scrollBehavior=Sn.scrollBehavior,`scrollRestoration`in window.history){let e=a.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return Sn.scrollBehavior(e,Pt,i||n)}},history:n,routes:r});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(a);let o=Ae(a.currentRoute.value);a.afterEach((e,t)=>{o.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>o.value});let s=So(t,window.location,e.payload.path),c=We(window.location.pathname,t),l=Ae(a.currentRoute.value),d=()=>{l.value=a.currentRoute.value};a.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;n===r?pa({route:e,Component:{type:n}})===pa({route:t,Component:{type:r}})&&d():e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&d()});let f={sync:d};for(let e in l.value)Object.defineProperty(f,e,{get:()=>l.value[e],enumerable:!0});e._route=je(f),e._middleware||={global:[],named:{}};let p=Yt();a.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&p.value&&!Lt(r,Gt.aborted|Gt.cancelled)&&await e.runWithContext(Qt),r&&await e.callHook(`page:loading:end`)}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)});try{await a.isReady()}catch(t){await At(e,t)}let m=s===a.currentRoute.value.fullPath?a.currentRoute.value:a.resolve(s),h=a.currentRoute.value.fullPath,g=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&s.replace(xo,``)!==e.payload.path.replace(xo,``)&&Ve(a.currentRoute.value.path,e.payload.path);d();function _(r){!e.isHydrating&&r.fullPath!==So(t,window.location)&&n.push(r.fullPath)}a.beforeEach(t=>{if(!e.isHydrating&&ga(t.path).noScripts)return window.location.assign(a.resolve(t.fullPath).href),!1}),a.beforeResolve(e=>{if(e.matched.length||Ve(e.path,c))return;let n=new URL(Ue(e.fullPath,t),window.location.href);if(n.origin===window.location.origin)return window.location.assign(n),!1});let v=e.payload.state._layout;return a.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=me(t.meta),e.isHydrating&&v&&!ye(t.meta.layout)&&(t.meta.layout=v),e._processingMiddleware=!0;{let r=new Set([...vo,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of ha(t))r.add(e)}let i=_o({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await yo[i]?.().then(e=>e.default||e):i;if(!r)throw $t.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||wt({status:404,statusText:`Page Not Found: ${s}`});return await e.runWithContext(()=>Ht(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return tn(i)&&i.fatal&&(await e.runWithContext(()=>Ht(i)),_(t)),i}catch(n){let r=wt(n);return r.fatal&&(await e.runWithContext(()=>Ht(r)),_(t)),r}}}}),a.afterEach((t,n,r)=>{if(t.matched.length===0&&!p.value&&!Lt(r,Gt.aborted|Gt.cancelled))return e.runWithContext(()=>Ht(wt({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in m&&(m.name=void 0),a.currentRoute.value.fullPath===h){if(g){let t=a.resolve(e.payload.path);`name`in t&&(t.name=void 0),await a.replace({...t,force:!0});let n=()=>{if(!e[`~restoreDeferredRoute`])return;e[`~restoreDeferredRoute`]=void 0;let t=a.currentRoute,n=a.resolve(s);n.matched.at(-1)===t.value.matched.at(-1)&&(n.meta=t.value.meta),t.value=n,d(),a.replace({...m,force:!0}).catch(()=>{})};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await a.replace({...m,force:!0})}a.options.scrollBehavior=Sn.scrollBehavior}catch(t){await At(e,t)}}),{provide:{router:a}}}}),wo=o(()=>{let e=zt();Zt(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),To=o(e=>{let t;async function n(){let r;try{r=await go()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,s);try{let n=await Ei(wi(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}Zt(()=>{t=setTimeout(n,s)})});function Eo(e={}){let t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw $t.NUXT_E2010({path:t});if(n.protocol&&Ke(n.protocol))throw $t.NUXT_E2002({toPath:t,protocol:n.protocol});let r={};try{r=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||r?.path!==t||r?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:t,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:l().payload.state}))}catch{}window.location.pathname===t?window.location.reload():window.location.href=t}}var Do=o({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&Vt(navigator.userAgent)&&Eo()})}}),Oo=o({name:`nuxt:chunk-reload`,setup(e){let t=zt(),n=u(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){Eo({path:He(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),ko=o({name:`nuxt:island-link-navigation`,setup(e){}}),Ao=Ei;function jo(){return Ao}function Mo(e,t){return typeof e==`object`?e?.[t]:e}var No=o({name:`@nuxt/icon`,setup(){let e=u(),t=wn().icon,n=jo(),r=n.native;On.setFetch((e,t)=>{let n=globalThis.$fetch?.native;return(r||n||globalThis.fetch)(e,t)});let i=Mo(t.provider,`client`),a=[];if(i===`server`){let n=e.app?.baseURL?.replace(/\/$/,``)??``;a.push(n+(t.localApiEndpoint||`/api/_nuxt_icon`)),(t.fallbackToApi===!0||t.fallbackToApi===`client-only`)&&a.push(t.iconifyApiEndpoint)}else i===`none`?On.setFetch(()=>Promise.resolve(new Response)):a.push(t.iconifyApiEndpoint);async function o(e,t){try{let r=await n(a[0]+`/`+t+`.json`,{query:{icons:e.join(`,`)}});if(!r||r.prefix!==t||!r.icons)throw Error(`Invalid data`+JSON.stringify(r));return r}catch(e){return console.error(`Failed to load custom icons`,e),null}}async function s(e,t){let n=[[]],r=0;for(let t of e){let e=encodeURIComponent(t).length;r+e>2e3&&n.at(-1).length&&(n.push([]),r=0),n.at(-1).push(t),r+=e+1}let i=(await Promise.all(n.map(e=>o(e,t)))).filter(e=>!!e);return i.length?i.reduce((e,t)=>({...e,...t,icons:{...e.icons,...t.icons},aliases:{...e.aliases,...t.aliases}})):null}An(``,{resources:a});for(let e of t.customCollections||[])e&&En(s,e)}}),Po=D(()=>K(()=>import(`./C8vL692X.js`).then(e=>e.default||e.default||e),__vite__mapDeps([45,1,11,3,4,18,31,5,6,2,12,22,13]),import.meta.url)),Fo=D(()=>K(()=>import(`./DnDHGSYI.js`).then(e=>e.default||e.default||e),__vite__mapDeps([46,1,6,17,9,18,4,11,3,47,12,21,22,25,26,27,7,8,5,10,13]),import.meta.url)),Io=D(()=>K(()=>import(`./Cz6rZcLK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([48,1,11,3,4,18]),import.meta.url)),Lo=D(()=>K(()=>import(`./1eqboJxR.js`).then(e=>e.default||e.default||e),__vite__mapDeps([49,1,11,3,4,18,50,51,22,7,8,9,5,6,10,12,13,29]),import.meta.url)),Ro=D(()=>K(()=>import(`./DqZgF3hU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([52,1,11,3,4,18]),import.meta.url)),zo=D(()=>K(()=>import(`./vwxaNGfc.js`).then(e=>e.default||e.default||e),__vite__mapDeps([53,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Bo=D(()=>K(()=>import(`./2K7ag6ES.js`).then(e=>e.default||e.default||e),__vite__mapDeps([54,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Vo=D(()=>K(()=>import(`./BaG8y0Wt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([55,1,11,3,4,18]),import.meta.url)),Ho=D(()=>K(()=>import(`./CqoQ__I_.js`).then(e=>e.default||e.default||e),__vite__mapDeps([56,1,11,3,4,18]),import.meta.url)),Uo=D(()=>K(()=>import(`./BpWeHLuN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([57,1,11,3,4,18,30,12,26,7,8,9,5,6,10,13,31,2,22,29]),import.meta.url)),Wo=D(()=>K(()=>import(`./D2FhHl1o.js`).then(e=>e.default||e.default||e),__vite__mapDeps([58,1,11,3,4,18,59,6,17,9,21,12,22,25,27,32,60,20,33,61,7,8,5,10,13]),import.meta.url)),Go=D(()=>K(()=>import(`./CJMBJQuf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([61,1,4,11,3,7,8,9,5,6,10,12,13]),import.meta.url)),Ko=D(()=>K(()=>import(`./DbHiyab-.js`).then(e=>e.default||e.default||e),__vite__mapDeps([62,1,11,3,4,18]),import.meta.url)),qo=D(()=>K(()=>import(`./Cvs12oA0.js`).then(e=>e.default||e.default||e),__vite__mapDeps([63,1,6,11,3,4,19,18,20,21,12,22,23,25,17,9,33,60,27,7,8,5,10,13,61]),import.meta.url)),Jo=D(()=>K(()=>import(`./CMUi2-Lj.js`).then(e=>e.default||e.default||e),__vite__mapDeps([64,1,11,3,4,18,12,26,7,8,9,5,6,10,13]),import.meta.url)),Yo=D(()=>K(()=>import(`./CK-lOYG9.js`).then(e=>e.default||e.default||e),__vite__mapDeps([65,1,11,3,4,18]),import.meta.url)),Xo=D(()=>K(()=>import(`./DIc8yx98.js`).then(e=>e.default||e.default||e),__vite__mapDeps([66,1,11,3,4,18,22,50]),import.meta.url)),Zo=D(()=>K(()=>import(`./DSLbmoWa.js`).then(e=>e.default||e.default||e),__vite__mapDeps([67,1,11,3,4,18,22]),import.meta.url)),Qo=D(()=>K(()=>import(`./CLBcBrYf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([68,3,1,11,4,18]),import.meta.url)),$o=D(()=>K(()=>import(`./BDK2Hj7B.js`).then(e=>e.default||e.default||e),__vite__mapDeps([69,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),es=D(()=>K(()=>import(`./D75vbfSb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([70,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),ts=D(()=>K(()=>import(`./uKzCKCTq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([71,3,1,11,4,18]),import.meta.url)),ns=D(()=>K(()=>import(`./CgDTd7jS.js`).then(e=>e.default||e.default||e),__vite__mapDeps([72,1,11,3,4,18]),import.meta.url)),rs=D(()=>K(()=>import(`./CPCUMJnF.js`).then(e=>e.default||e.default||e),__vite__mapDeps([73,1,11,3,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),is=D(()=>K(()=>import(`./D99LbGfb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([74,3,1,6,17,9,18,4,11,21,12,22,27]),import.meta.url)),as=D(()=>K(()=>import(`./DajA-Tkt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([75,1,11,3,4,18]),import.meta.url)),os=D(()=>K(()=>import(`./Dg2LiqmN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([76,1,11,3,4,18]),import.meta.url)),ss=D(()=>K(()=>import(`./yh6sf_D5.js`).then(e=>e.default||e.default||e),__vite__mapDeps([77,1,11,3,4,18]),import.meta.url)),cs=D(()=>K(()=>import(`./DqcxvfbD.js`).then(e=>e.default||e.default||e),__vite__mapDeps([78,1,11,3,4,18]),import.meta.url)),ls=D(()=>K(()=>import(`./CyEXFe3V.js`).then(e=>e.default||e.default||e),__vite__mapDeps([79,1,11,3,4,18,21,12,30,26,7,8,9,5,6,10,13,31,2,22,29,61]),import.meta.url)),us=D(()=>K(()=>import(`./assMu_Wn.js`).then(e=>e.default||e.default||e),__vite__mapDeps([80,1,11,3,4,18,21,12,7,8,9,5,6,10,13,30,26,31,2,22,29]),import.meta.url)),ds=D(()=>K(()=>import(`./DpXJ_tCU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([81,1]),import.meta.url)),fs=D(()=>K(()=>import(`./Du91iq0p.js`).then(e=>e.default||e.default||e),__vite__mapDeps([82,1,11,3,4,18]),import.meta.url)),ps=D(()=>K(()=>import(`./DsA2lVci.js`).then(e=>e.default||e.default||e),__vite__mapDeps([83,1,11,3,4,18]),import.meta.url)),ms=D(()=>K(()=>import(`./D5CE81jK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([84,1,11,3,4,18]),import.meta.url)),hs=D(()=>K(()=>import(`./DhuleNnm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([85,1,11,3,4,18,12,26,59,6,17,9,21,22,25,27,32,60,20,33,7,8,5,10,13,29,51]),import.meta.url)),gs=D(()=>K(()=>import(`./BmxvtaMq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([86,1,11,3,4,18]),import.meta.url)),_s=D(()=>K(()=>import(`./DF-nsa1Z.js`).then(e=>e.default||e.default||e),__vite__mapDeps([87,1,11,3,4,18]),import.meta.url)),vs=D(()=>K(()=>import(`./Dc7Ql6eE.js`).then(e=>e.default||e.default||e),__vite__mapDeps([88,1,11,3,4,18]),import.meta.url)),ys=D(()=>K(()=>import(`./ZngEd3HB.js`).then(e=>e.default||e.default||e),__vite__mapDeps([89,1,11,3,4,18]),import.meta.url)),bs=D(()=>K(()=>import(`./MaXJprwN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([90,1,11,3,4,18]),import.meta.url)),xs=D(()=>K(()=>import(`./Dd9ZukPU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([91,1,11,3,4,18]),import.meta.url)),Ss=D(()=>K(()=>import(`./CSEEUF8S.js`).then(e=>e.default||e.default||e),__vite__mapDeps([92,1,11,3,4,18]),import.meta.url)),Cs=D(()=>K(()=>import(`./D_S6N7_b.js`).then(e=>e.default||e.default||e),__vite__mapDeps([93,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),ws=D(()=>K(()=>import(`./CPcKlmSm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([94,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ts=D(()=>K(()=>import(`./CGI_ZV79.js`).then(e=>e.default||e.default||e),__vite__mapDeps([95,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Es=D(()=>K(()=>import(`./C40iTe-x.js`).then(e=>e.default||e.default||e),__vite__mapDeps([96,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ds=D(()=>K(()=>import(`./DEfLc7p3.js`).then(e=>e.n).then(e=>e.default||e.default||e),__vite__mapDeps([8,9,3,1,5,6,4,10,11]),import.meta.url)),Os=[[`ProseA`,Po],[`ProseAccordion`,Fo],[`ProseAccordionItem`,Io],[`ProseBadge`,Lo],[`ProseBlockquote`,Ro],[`ProseCallout`,zo],[`ProseCard`,Bo],[`ProseCardGroup`,Vo],[`ProseCode`,Ho],[`ProseCodeCollapse`,Uo],[`ProseCodeGroup`,Wo],[`ProseCodeIcon`,Go],[`ProseCodePreview`,Ko],[`ProseCodeTree`,qo],[`ProseCollapsible`,Jo],[`ProseEm`,Yo],[`ProseField`,Xo],[`ProseFieldGroup`,Zo],[`ProseH1`,Qo],[`ProseH2`,$o],[`ProseH3`,es],[`ProseH4`,ts],[`ProseHr`,ns],[`ProseIcon`,rs],[`ProseImg`,is],[`ProseKbd`,as],[`ProseLi`,os],[`ProseOl`,ss],[`ProseP`,cs],[`ProsePre`,ls],[`ProsePrompt`,us],[`ProseScript`,ds],[`ProseSteps`,fs],[`ProseStrong`,ps],[`ProseTable`,ms],[`ProseTabs`,hs],[`ProseTabsItem`,gs],[`ProseTbody`,_s],[`ProseTd`,vs],[`ProseTh`,ys],[`ProseThead`,bs],[`ProseTr`,xs],[`ProseUl`,Ss],[`ProseCaution`,Cs],[`ProseNote`,ws],[`ProseTip`,Ts],[`ProseWarning`,Es],[`Icon`,Ds]],ks=o({name:`nuxt:global-components`,setup(e){for(let[t,n]of Os)e.vueApp.component(t,n),e.vueApp.component(`Lazy`+t,n)}}),As={},js=[`route`,`payload`,`island`,`hint`],Ms=12,Ns={route:8,payload:8,island:4,hint:8};function Ps(e={}){let t={...Ns,...e.concurrency},n=e.total??Ms,r=e.canPrefetch,i=e.defer,a={route:[],payload:[],island:[],hint:[]},o=js.map(e=>a[e]),s=new WeakSet,c=new Map,l={route:0,payload:0,island:0,hint:0},u=0,d=new Map,f=new AbortController,p=new AbortController;p.abort();function m(e){c.get(e.key)===e&&c.delete(e.key)}function h(e){m(e),Promise.resolve().then(()=>e.run(p.signal,!1)).catch(()=>{})}function g(){if(!r||r())for(;u<n;){let e=js.find(e=>a[e].length&&l[e]<t[e]);if(!e)return;let n=a[e].shift();_(n,s.delete(n))}}function _(e,t){let n=e.scope===`app`?f:new AbortController;e.scope===`navigation`&&d.set(e,n),l[e.priority]++,u++;let r=!1,a=()=>{r||(r=!0,l[e.priority]--,u--,d.delete(e),m(e),g())};n.signal.addEventListener(`abort`,a,{once:!0});let o=()=>Promise.resolve().then(()=>e.run(n.signal,t)).then(a,a);i?i(o,t,e.priority):o()}let v=(e,t)=>t!==void 0&&e.group===t&&e.priority!==`hint`;return{schedule(e){let t=[];for(let n of Array.isArray(e)?e:[e])c.has(n.key)?h(n):(c.set(n.key,n),t.push(n));for(let e=t.length-1;e>=0;e--)a[t[e].priority].unshift(t[e]);g()},promote(e){for(let t of o){let n=[],r=[];for(let i of t)i.group===e&&s.add(i),(i.group===e?n:r).push(i);t.length=0,t.push(...n,...r)}g()},reset(e){for(let t of o)for(let n=t.length-1;n>=0;n--){let r=t[n];r.scope===`navigation`&&!v(r,e)&&(t.splice(n,1),h(r))}for(let[t,n]of[...d])v(t,e)||n.abort();g()},resume:g}}var Fs=1e3;function Is(e,t,n){if(t||n===`route`)return e();let r=globalThis.scheduler;r?.postTask?r.postTask(e,{priority:`background`}).catch(()=>{}):Jt(e,{timeout:Fs})}function Ls(e=l()){if(e._prefetch)return e._prefetch;let t=!1,n=Ps({canPrefetch:()=>yn()&&!t&&document.visibilityState!==`hidden`,defer:Is});e._prefetch=n,navigator.connection?.addEventListener?.(`change`,()=>n.resume()),document.addEventListener(`visibilitychange`,()=>n.resume());let r=e.$router;return r.beforeEach(()=>{t=!0}),r.afterEach(e=>{t=!1,n.reset(bn(e.fullPath))}),r.onError(()=>{t=!1,n.resume()}),n}var Rs=o({name:`nuxt:prefetch`,setup(e){let t=zt();e.hooks.hook(`app:mounted`,()=>{t.beforeEach(async e=>{let t=e?.meta?.layout;typeof t==`string`&&t in As&&await xn(As[t])})});let{schedule:n}=Ls(e);e.hooks.hook(`link:prefetch`,async e=>{if(Ge(e))return;let r=t.resolve(e);if(!r)return;let i=r.meta.layout,a=ha(r.meta.middleware).filter(e=>typeof e==`string`);n({key:`route:chunks:${e}`,priority:`route`,scope:`navigation`,group:bn(e),run:e=>{if(e.aborted)return;let t=[];for(let e of a){let n=yo[e];typeof n==`function`&&t.push(n())}return typeof i==`string`&&i in As&&t.push(xn(As[i])),Promise.all(t).catch(()=>{})}})})}}),zs={inherit:`inherit`,current:`currentcolor`,transparent:`transparent`,black:`#000`,white:`#fff`,slate:{50:`oklch(98.4% 0.003 247.858)`,100:`oklch(96.8% 0.007 247.896)`,200:`oklch(92.9% 0.013 255.508)`,300:`oklch(86.9% 0.022 252.894)`,400:`oklch(70.4% 0.04 256.788)`,500:`oklch(55.4% 0.046 257.417)`,600:`oklch(44.6% 0.043 257.281)`,700:`oklch(37.2% 0.044 257.287)`,800:`oklch(27.9% 0.041 260.031)`,900:`oklch(20.8% 0.042 265.755)`,950:`oklch(12.9% 0.042 264.695)`},gray:{50:`oklch(98.5% 0.002 247.839)`,100:`oklch(96.7% 0.003 264.542)`,200:`oklch(92.8% 0.006 264.531)`,300:`oklch(87.2% 0.01 258.338)`,400:`oklch(70.7% 0.022 261.325)`,500:`oklch(55.1% 0.027 264.364)`,600:`oklch(44.6% 0.03 256.802)`,700:`oklch(37.3% 0.034 259.733)`,800:`oklch(27.8% 0.033 256.848)`,900:`oklch(21% 0.034 264.665)`,950:`oklch(13% 0.028 261.692)`},zinc:{50:`oklch(98.5% 0 none)`,100:`oklch(96.7% 0.001 286.375)`,200:`oklch(92% 0.004 286.32)`,300:`oklch(87.1% 0.006 286.286)`,400:`oklch(70.5% 0.015 286.067)`,500:`oklch(55.2% 0.016 285.938)`,600:`oklch(44.2% 0.017 285.786)`,700:`oklch(37% 0.013 285.805)`,800:`oklch(27.4% 0.006 286.033)`,900:`oklch(21% 0.006 285.885)`,950:`oklch(14.1% 0.005 285.823)`},neutral:{50:`oklch(98.5% 0 none)`,100:`oklch(97% 0 none)`,200:`oklch(92.2% 0 none)`,300:`oklch(87% 0 none)`,400:`oklch(70.8% 0 none)`,500:`oklch(55.6% 0 none)`,600:`oklch(43.9% 0 none)`,700:`oklch(37.1% 0 none)`,800:`oklch(26.9% 0 none)`,900:`oklch(20.5% 0 none)`,950:`oklch(14.5% 0 none)`},stone:{50:`oklch(98.5% 0.001 106.423)`,100:`oklch(97% 0.001 106.424)`,200:`oklch(92.3% 0.003 48.717)`,300:`oklch(86.9% 0.005 56.366)`,400:`oklch(70.9% 0.01 56.259)`,500:`oklch(55.3% 0.013 58.071)`,600:`oklch(44.4% 0.011 73.639)`,700:`oklch(37.4% 0.01 67.558)`,800:`oklch(26.8% 0.007 34.298)`,900:`oklch(21.6% 0.006 56.043)`,950:`oklch(14.7% 0.004 49.25)`},mauve:{50:`oklch(98.5% 0 none)`,100:`oklch(96% 0.003 325.6)`,200:`oklch(92.2% 0.005 325.62)`,300:`oklch(86.5% 0.012 325.68)`,400:`oklch(71.1% 0.019 323.02)`,500:`oklch(54.2% 0.034 322.5)`,600:`oklch(43.5% 0.029 321.78)`,700:`oklch(36.4% 0.029 323.89)`,800:`oklch(26.3% 0.024 320.12)`,900:`oklch(21.2% 0.019 322.12)`,950:`oklch(14.5% 0.008 326)`},olive:{50:`oklch(98.8% 0.003 106.5)`,100:`oklch(96.6% 0.005 106.5)`,200:`oklch(93% 0.007 106.5)`,300:`oklch(88% 0.011 106.6)`,400:`oklch(73.7% 0.021 106.9)`,500:`oklch(58% 0.031 107.3)`,600:`oklch(46.6% 0.025 107.3)`,700:`oklch(39.4% 0.023 107.4)`,800:`oklch(28.6% 0.016 107.4)`,900:`oklch(22.8% 0.013 107.4)`,950:`oklch(15.3% 0.006 107.1)`},mist:{50:`oklch(98.7% 0.002 197.1)`,100:`oklch(96.3% 0.002 197.1)`,200:`oklch(92.5% 0.005 214.3)`,300:`oklch(87.2% 0.007 219.6)`,400:`oklch(72.3% 0.014 214.4)`,500:`oklch(56% 0.021 213.5)`,600:`oklch(45% 0.017 213.2)`,700:`oklch(37.8% 0.015 216)`,800:`oklch(27.5% 0.011 216.9)`,900:`oklch(21.8% 0.008 223.9)`,950:`oklch(14.8% 0.004 228.8)`},taupe:{50:`oklch(98.6% 0.002 67.8)`,100:`oklch(96% 0.002 17.2)`,200:`oklch(92.2% 0.005 34.3)`,300:`oklch(86.8% 0.007 39.5)`,400:`oklch(71.4% 0.014 41.2)`,500:`oklch(54.7% 0.021 43.1)`,600:`oklch(43.8% 0.017 39.3)`,700:`oklch(36.7% 0.016 35.7)`,800:`oklch(26.8% 0.011 36.5)`,900:`oklch(21.4% 0.009 43.1)`,950:`oklch(14.7% 0.004 49.3)`},red:{50:`oklch(97.1% 0.013 17.38)`,100:`oklch(93.6% 0.032 17.717)`,200:`oklch(88.5% 0.062 18.334)`,300:`oklch(80.8% 0.114 19.571)`,400:`oklch(70.4% 0.191 22.216)`,500:`oklch(63.7% 0.237 25.331)`,600:`oklch(57.7% 0.245 27.325)`,700:`oklch(50.5% 0.213 27.518)`,800:`oklch(44.4% 0.177 26.899)`,900:`oklch(39.6% 0.141 25.723)`,950:`oklch(25.8% 0.092 26.042)`},orange:{50:`oklch(98% 0.016 73.684)`,100:`oklch(95.4% 0.038 75.164)`,200:`oklch(90.1% 0.076 70.697)`,300:`oklch(83.7% 0.128 66.29)`,400:`oklch(75% 0.183 55.934)`,500:`oklch(70.5% 0.213 47.604)`,600:`oklch(64.6% 0.222 41.116)`,700:`oklch(55.3% 0.195 38.402)`,800:`oklch(47% 0.157 37.304)`,900:`oklch(40.8% 0.123 38.172)`,950:`oklch(26.6% 0.079 36.259)`},amber:{50:`oklch(98.7% 0.022 95.277)`,100:`oklch(96.2% 0.059 95.617)`,200:`oklch(92.4% 0.12 95.746)`,300:`oklch(87.9% 0.169 91.605)`,400:`oklch(82.8% 0.189 84.429)`,500:`oklch(76.9% 0.188 70.08)`,600:`oklch(66.6% 0.179 58.318)`,700:`oklch(55.5% 0.163 48.998)`,800:`oklch(47.3% 0.137 46.201)`,900:`oklch(41.4% 0.112 45.904)`,950:`oklch(27.9% 0.077 45.635)`},yellow:{50:`oklch(98.7% 0.026 102.212)`,100:`oklch(97.3% 0.071 103.193)`,200:`oklch(94.5% 0.129 101.54)`,300:`oklch(90.5% 0.182 98.111)`,400:`oklch(85.2% 0.199 91.936)`,500:`oklch(79.5% 0.184 86.047)`,600:`oklch(68.1% 0.162 75.834)`,700:`oklch(55.4% 0.135 66.442)`,800:`oklch(47.6% 0.114 61.907)`,900:`oklch(42.1% 0.095 57.708)`,950:`oklch(28.6% 0.066 53.813)`},lime:{50:`oklch(98.6% 0.031 120.757)`,100:`oklch(96.7% 0.067 122.328)`,200:`oklch(93.8% 0.127 124.321)`,300:`oklch(89.7% 0.196 126.665)`,400:`oklch(84.1% 0.238 128.85)`,500:`oklch(76.8% 0.233 130.85)`,600:`oklch(64.8% 0.2 131.684)`,700:`oklch(53.2% 0.157 131.589)`,800:`oklch(45.3% 0.124 130.933)`,900:`oklch(40.5% 0.101 131.063)`,950:`oklch(27.4% 0.072 132.109)`},green:{50:`oklch(98.2% 0.018 155.826)`,100:`oklch(96.2% 0.044 156.743)`,200:`oklch(92.5% 0.084 155.995)`,300:`oklch(87.1% 0.15 154.449)`,400:`oklch(79.2% 0.209 151.711)`,500:`oklch(72.3% 0.219 149.579)`,600:`oklch(62.7% 0.194 149.214)`,700:`oklch(52.7% 0.154 150.069)`,800:`oklch(44.8% 0.119 151.328)`,900:`oklch(39.3% 0.095 152.535)`,950:`oklch(26.6% 0.065 152.934)`},emerald:{50:`oklch(97.9% 0.021 166.113)`,100:`oklch(95% 0.052 163.051)`,200:`oklch(90.5% 0.093 164.15)`,300:`oklch(84.5% 0.143 164.978)`,400:`oklch(76.5% 0.177 163.223)`,500:`oklch(69.6% 0.17 162.48)`,600:`oklch(59.6% 0.145 163.225)`,700:`oklch(50.8% 0.118 165.612)`,800:`oklch(43.2% 0.095 166.913)`,900:`oklch(37.8% 0.077 168.94)`,950:`oklch(26.2% 0.051 172.552)`},teal:{50:`oklch(98.4% 0.014 180.72)`,100:`oklch(95.3% 0.051 180.801)`,200:`oklch(91% 0.096 180.426)`,300:`oklch(85.5% 0.138 181.071)`,400:`oklch(77.7% 0.152 181.912)`,500:`oklch(70.4% 0.14 182.503)`,600:`oklch(60% 0.118 184.704)`,700:`oklch(51.1% 0.096 186.391)`,800:`oklch(43.7% 0.078 188.216)`,900:`oklch(38.6% 0.063 188.416)`,950:`oklch(27.7% 0.046 192.524)`},cyan:{50:`oklch(98.4% 0.019 200.873)`,100:`oklch(95.6% 0.045 203.388)`,200:`oklch(91.7% 0.08 205.041)`,300:`oklch(86.5% 0.127 207.078)`,400:`oklch(78.9% 0.154 211.53)`,500:`oklch(71.5% 0.143 215.221)`,600:`oklch(60.9% 0.126 221.723)`,700:`oklch(52% 0.105 223.128)`,800:`oklch(45% 0.085 224.283)`,900:`oklch(39.8% 0.07 227.392)`,950:`oklch(30.2% 0.056 229.695)`},sky:{50:`oklch(97.7% 0.013 236.62)`,100:`oklch(95.1% 0.026 236.824)`,200:`oklch(90.1% 0.058 230.902)`,300:`oklch(82.8% 0.111 230.318)`,400:`oklch(74.6% 0.16 232.661)`,500:`oklch(68.5% 0.169 237.323)`,600:`oklch(58.8% 0.158 241.966)`,700:`oklch(50% 0.134 242.749)`,800:`oklch(44.3% 0.11 240.79)`,900:`oklch(39.1% 0.09 240.876)`,950:`oklch(29.3% 0.066 243.157)`},blue:{50:`oklch(97% 0.014 254.604)`,100:`oklch(93.2% 0.032 255.585)`,200:`oklch(88.2% 0.059 254.128)`,300:`oklch(80.9% 0.105 251.813)`,400:`oklch(70.7% 0.165 254.624)`,500:`oklch(62.3% 0.214 259.815)`,600:`oklch(54.6% 0.245 262.881)`,700:`oklch(48.8% 0.243 264.376)`,800:`oklch(42.4% 0.199 265.638)`,900:`oklch(37.9% 0.146 265.522)`,950:`oklch(28.2% 0.091 267.935)`},indigo:{50:`oklch(96.2% 0.018 272.314)`,100:`oklch(93% 0.034 272.788)`,200:`oklch(87% 0.065 274.039)`,300:`oklch(78.5% 0.115 274.713)`,400:`oklch(67.3% 0.182 276.935)`,500:`oklch(58.5% 0.233 277.117)`,600:`oklch(51.1% 0.262 276.966)`,700:`oklch(45.7% 0.24 277.023)`,800:`oklch(39.8% 0.195 277.366)`,900:`oklch(35.9% 0.144 278.697)`,950:`oklch(25.7% 0.09 281.288)`},violet:{50:`oklch(96.9% 0.016 293.756)`,100:`oklch(94.3% 0.029 294.588)`,200:`oklch(89.4% 0.057 293.283)`,300:`oklch(81.1% 0.111 293.571)`,400:`oklch(70.2% 0.183 293.541)`,500:`oklch(60.6% 0.25 292.717)`,600:`oklch(54.1% 0.281 293.009)`,700:`oklch(49.1% 0.27 292.581)`,800:`oklch(43.2% 0.232 292.759)`,900:`oklch(38% 0.189 293.745)`,950:`oklch(28.3% 0.141 291.089)`},purple:{50:`oklch(97.7% 0.014 308.299)`,100:`oklch(94.6% 0.033 307.174)`,200:`oklch(90.2% 0.063 306.703)`,300:`oklch(82.7% 0.119 306.383)`,400:`oklch(71.4% 0.203 305.504)`,500:`oklch(62.7% 0.265 303.9)`,600:`oklch(55.8% 0.288 302.321)`,700:`oklch(49.6% 0.265 301.924)`,800:`oklch(43.8% 0.218 303.724)`,900:`oklch(38.1% 0.176 304.987)`,950:`oklch(29.1% 0.149 302.717)`},fuchsia:{50:`oklch(97.7% 0.017 320.058)`,100:`oklch(95.2% 0.037 318.852)`,200:`oklch(90.3% 0.076 319.62)`,300:`oklch(83.3% 0.145 321.434)`,400:`oklch(74% 0.238 322.16)`,500:`oklch(66.7% 0.295 322.15)`,600:`oklch(59.1% 0.293 322.896)`,700:`oklch(51.8% 0.253 323.949)`,800:`oklch(45.2% 0.211 324.591)`,900:`oklch(40.1% 0.17 325.612)`,950:`oklch(29.3% 0.136 325.661)`},pink:{50:`oklch(97.1% 0.014 343.198)`,100:`oklch(94.8% 0.028 342.258)`,200:`oklch(89.9% 0.061 343.231)`,300:`oklch(82.3% 0.12 346.018)`,400:`oklch(71.8% 0.202 349.761)`,500:`oklch(65.6% 0.241 354.308)`,600:`oklch(59.2% 0.249 0.584)`,700:`oklch(52.5% 0.223 3.958)`,800:`oklch(45.9% 0.187 3.815)`,900:`oklch(40.8% 0.153 2.432)`,950:`oklch(28.4% 0.109 3.907)`},rose:{50:`oklch(96.9% 0.015 12.422)`,100:`oklch(94.1% 0.03 12.58)`,200:`oklch(89.2% 0.058 10.001)`,300:`oklch(81% 0.117 11.638)`,400:`oklch(71.2% 0.194 13.428)`,500:`oklch(64.5% 0.246 16.439)`,600:`oklch(58.6% 0.253 17.585)`,700:`oklch(51.4% 0.222 16.935)`,800:`oklch(45.5% 0.188 13.697)`,900:`oklch(41% 0.159 10.272)`,950:`oklch(27.1% 0.105 12.094)`}},Bs=[50,100,200,300,400,500,600,700,800,900,950];function Vs(e,t){return e in zs&&typeof zs[e]==`object`&&t in zs[e]?zs[e][t]:``}function Hs(e,t,n){let r=n?`${n}-`:``;return`${Bs.map(n=>`--ui-color-${e}-${n}: var(--${r}color-${t===`neutral`?`old-neutral`:t}-${n}, ${Vs(t,n)});`).join(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DRlQgul3.js","./DZo3dYLJ.js","./CJ2mz0WY.js","./D2O8Q8x9.js","./DSaWoFHS.js","./C7K0R7F-.js","./51OWHj8c.js","./rlePnzpc.js","./DEfLc7p3.js","./DK3Fl9T5.js","./ChG76uh9.js","./Csqgy925.js","./CuJUHLl8.js","./B_SlFcWp.js","./_id_.B2NDKSlX.css","./CvLiA4_O.js","./BDcnzXHq.js","./B3jkABw9.js","./6gFtTBwm.js","./Cm9lkUvP.js","./DLkAKotw.js","./Vo4wMbnS.js","./CK9_veoz.js","./Bb3Limos.js","./Dtsa-1NS.js","./Ci0qbkgh.js","./BuOKDFiJ.js","./D3YCAmfu.js","./Bi9Axj3V.js","./DfR3IZN_.js","./EYTShbt4.js","./BgLeKwx0.js","./C9StZL3D.js","./BPTrRhcw.js","./burndown.Do6IbM6o.css","./COf6E6h4.js","./epics.Dmessplu.css","./DRPlYvb3.js","./gantt.Dmp00GUo.css","./S08nFESZ.js","./last-change.1Su4GrCN.css","./P9x67aq2.js","./milestones.U0xKCsEo.css","./BodFvto3.js","./pages.Dbj2IVk8.css","./C8vL692X.js","./DnDHGSYI.js","./DHihWhf5.js","./Cz6rZcLK.js","./1eqboJxR.js","./CQTvWh4i.js","./Dx1wcYFo.js","./DqZgF3hU.js","./vwxaNGfc.js","./2K7ag6ES.js","./BaG8y0Wt.js","./CqoQ__I_.js","./BpWeHLuN.js","./D2FhHl1o.js","./DWO9c9yp.js","./V0uynWE2.js","./CJMBJQuf.js","./DbHiyab-.js","./Cvs12oA0.js","./CMUi2-Lj.js","./CK-lOYG9.js","./DIc8yx98.js","./DSLbmoWa.js","./CLBcBrYf.js","./BDK2Hj7B.js","./D75vbfSb.js","./uKzCKCTq.js","./CgDTd7jS.js","./CPCUMJnF.js","./D99LbGfb.js","./DajA-Tkt.js","./Dg2LiqmN.js","./yh6sf_D5.js","./DqcxvfbD.js","./CyEXFe3V.js","./assMu_Wn.js","./DpXJ_tCU.js","./Du91iq0p.js","./DsA2lVci.js","./D5CE81jK.js","./DhuleNnm.js","./BmxvtaMq.js","./DF-nsa1Z.js","./Dc7Ql6eE.js","./ZngEd3HB.js","./MaXJprwN.js","./Dd9ZukPU.js","./CSEEUF8S.js","./D_S6N7_b.js","./CPcKlmSm.js","./CGI_ZV79.js","./C40iTe-x.js","./CSSb154I.js","./B5n2_jZN.js","./error-404.BFmXOnCT.css","./ZVTqot-_.js","./error-500.BZ-DdjQ6.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./DK3Fl9T5.js";import{_ as t,b as n,c as r,f as i,h as a,i as o,m as s,n as c,o as l,s as u,t as d,u as f,v as p,y as m}from"./D2O8Q8x9.js";import{$ as h,$n as g,B as _,Cn as v,D as y,E as b,En as x,Ft as S,Gt as C,Ht as w,J as T,L as E,Lt as ee,Nt as te,O as D,On as O,Pt as ne,Q as re,Rt as ie,Tn as ae,Un as oe,Ut as se,Yt as ce,Z as le,Zn as k,_ as A,b as j,bt as M,ct as ue,er as de,et as N,fn as fe,ft as pe,g as P,gn as me,gt as he,it as ge,jt as _e,k as F,l as ve,ln as ye,mt as I,o as L,pn as be,qt as R,rt as xe,s as Se,st as Ce,tr as z,tt as we,u as Te,un as Ee,v as B,vn as V,w as De,wn as Oe,wt as ke,xn as Ae,xt as H,y as U,yn as je,z as W}from"./DZo3dYLJ.js";import{C as Me,S as Ne,a as Pe,i as Fe,t as Ie,w as Le}from"./51OWHj8c.js";import{n as Re,r as ze,t as Be}from"./B3jkABw9.js";import{a as Ve,c as He,d as Ue,h as We,i as Ge,o as Ke,p as qe,s as Je,t as Ye}from"./DSaWoFHS.js";import{$ as Xe,A as Ze,B as Qe,C as $e,D as et,E as tt,F as nt,G as rt,H as it,I as at,J as ot,K as st,L as ct,M as lt,N as ut,O as dt,P as ft,Q as pt,R as mt,S as ht,T as gt,U as _t,V as vt,W as yt,X as bt,Y as xt,Z as St,_ as Ct,_t as wt,a as Tt,b as Et,ct as Dt,d as Ot,dt as kt,et as At,f as jt,ft as Mt,g as Nt,h as Pt,i as Ft,it as It,j as Lt,k as Rt,lt as zt,m as Bt,mt as Vt,nt as Ht,o as Ut,ot as Wt,p as Gt,pt as Kt,q as qt,r as Jt,rt as Yt,s as Xt,t as Zt,tt as Qt,ut as $t,v as en,vt as tn,w as nn,x as rn,y as an,z as on}from"./C7K0R7F-.js";import{a as sn,c as cn,d as ln,f as un,i as dn,l as fn,n as pn,o as mn,r as hn,s as gn,t as _n,u as vn}from"./ChG76uh9.js";import{a as yn,o as bn,r as xn,s as Sn,t as Cn}from"./CJ2mz0WY.js";import{r as wn}from"./Csqgy925.js";import{a as Tn,c as En,i as Dn,o as On,r as kn,s as An}from"./DEfLc7p3.js";import{c as jn,d as Mn,h as Nn,i as Pn,l as Fn,m as In,n as Ln,s as Rn,t as zn}from"./6gFtTBwm.js";import{n as Bn,r as Vn,t as Hn}from"./DLkAKotw.js";import{n as Un}from"./Bb3Limos.js";import{C as Wn,T as Gn,a as Kn,b as qn,g as Jn,h as Yn,m as Xn,p as Zn,r as Qn}from"./CuJUHLl8.js";import{c as $n,i as er,l as tr,o as nr,p as rr,r as ir,s as ar,t as or}from"./Vo4wMbnS.js";import{t as sr}from"./CK9_veoz.js";import{S as cr,_ as lr,a as ur,c as dr,d as fr,f as pr,g as mr,h as hr,i as gr,l as _r,m as vr,n as yr,o as br,p as xr,r as Sr,s as Cr,t as wr,u as Tr,v as Er,x as Dr,y as Or}from"./Dtsa-1NS.js";import{t as kr}from"./Ci0qbkgh.js";import{n as Ar,t as jr}from"./BuOKDFiJ.js";import{t as G}from"./D3YCAmfu.js";import{t as Mr}from"./B_SlFcWp.js";import{t as Nr}from"./C9StZL3D.js";import{t as Pr}from"./Bi9Axj3V.js";import{i as Fr,n as Ir,t as Lr}from"./BPTrRhcw.js";import{t as Rr}from"./rlePnzpc.js";import{a as zr,i as Br,n as Vr,r as Hr,t as Ur}from"./BgLeKwx0.js";import{i as Wr,n as Gr,t as Kr}from"./DfR3IZN_.js";import{n as qr,t as Jr}from"./EYTShbt4.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)}})();var Yr=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Xr=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Zr=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Qr(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)$r(e);else return t}function $r(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function ei(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Zr.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(Yr.test(e)||Xr.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,Qr)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}var ti=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function ni(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new ti(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:`<no response>`}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var ri=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function ii(e=`GET`){return ri.has(e.toUpperCase())}function ai(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var oi=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),si=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function ci(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return si.test(t)?`json`:t===`text/event-stream`?`stream`:oi.has(t)||t.startsWith(`text/`)?`text`:`blob`}function li(e,t,n,r){let i=ui(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function ui(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function di(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var fi=new Set([408,409,425,429,500,502,503,504]),pi=new Set([101,204,205,304]);function mi(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!ii(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):fi.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=ni(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:li(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await di(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=Ue(s.request,s.options.baseURL)),s.options.query&&(s.request=qe(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&ii(s.options.method)){if(ai(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await di(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!pi.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||ci(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||ei;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await di(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await di(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>mi({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var hi=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),gi=hi.fetch?(...e)=>hi.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),_i=hi.Headers,vi=hi.AbortController,yi=mi({fetch:gi,Headers:_i,AbortController:vi}),bi=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,xi=()=>bi().app,Si=()=>xi().baseURL,Ci=()=>xi().buildAssetsDir,wi=(...e)=>Je(Ti(),Ci(),...e),Ti=(...e)=>{let t=xi(),n=t.cdnURL||t.baseURL;return e.length?Je(n,...e):n};globalThis.__buildAssetsURL=wi,globalThis.__publicAssetsURL=Ti,globalThis.$fetch||(globalThis.$fetch=yi.create({baseURL:Si()}));var Ei=globalThis.$fetch;`global`in globalThis||(globalThis.global=globalThis);function Di(e,t){t.push(r),e.vueApp.use(t);let n=!0,i=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||i()}),e.hooks.hook(`app:error`,i),e.hooks.hook(`app:suspense:resolve`,i);let a=t.push.bind(t);t.push=((t,n)=>{let r=a(t,n),i=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(i):i()},r})}function Oi(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function ki(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>Oi(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}function Ai(e,t,n){let r=e.push,i=e;i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>Oi(i,e),i.render=()=>n(i);function a(){t.callHook(`entries:updated`,i),i._b||i.render()}return i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,a()},i.push=(n,o)=>{let s=o?.onRendered?t.hook(`dom:rendered`,o.onRendered):void 0,c=r(n,o),l=e.entries.get(c._i);return l&&(l._o=n),i.dirty=!0,a(),{_i:c._i,patch(e){c.patch(e),i.dirty=!0,a()},dispose(){s?.(),e.entries.has(c._i)&&(c.dispose(),i.invalidate())}}},i}var ji=/\s+/;function Mi(e={}){return t=>Fi(t,e)}function Ni(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function Pi(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(ji))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function Fi(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom;if(!n||e._du||r&&r._d===n&&!e.dirty&&!Ni(e))return!1;let i=n.defaultView;e._du=!0;let a=!1;try{let o=function(e,t,n){d._s[e]=!n&&f[e]||t,delete f[e]},s=function(e,t,n,r,i,a){let s=`${e}:event:${t}`,c=d._l.get(s);if(c&&c[0]===a&&c[1]===n&&c[2]===r){o(s,c[4]);return}c?.[4]();let l=`data-${t}`,u=(e=>r.call(i,e)),f=()=>{a.removeEventListener(n,u),i.getAttribute(l)===``&&i.removeAttribute(l),d._l.get(s)?.[3]===u&&d._l.delete(s)};a.addEventListener(n,u),d._l.set(s,[a,n,r,u,f]),i.setAttribute(l,``),o(s,f,!0)},c=function({id:e,$el:t,tag:n}){if(d._e.set(e,t),!n.tag.endsWith(`Attrs`)){let r=n.textContent;r!=null&&r!==``&&(r!==t.textContent&&(t.textContent=r),o(`${e}:text`,()=>{t.textContent===r&&(t.textContent=``)},!0));let i=n.innerHTML;i!=null&&i!==``&&(i!==t.innerHTML&&(t.innerHTML=i),o(`${e}:html`,()=>{t.innerHTML===i&&(t.innerHTML=``)},!0));let a=`${e}:el`;o(a,f[a]||(()=>{t?.remove(),d._e.delete(e)}))}for(let r in n.props){let a=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof a==`function`){let o=r.slice(2);t?.dataset?.[`${r}fired`]&&a.call(t,new((i?.Event)||Event)(o)),s(e,r,o,a,t,n.tag===`bodyAttrs`&&i?i:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&a)for(let e of a){let n=`${c}:${e}`;o(n,f[n]||(()=>t.classList.remove(e))),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&a)for(let[e,n]of a){let r=`${c}:${e}`;o(r,f[r]||(()=>t.style.removeProperty(e))),t.style.setProperty(e,n)}else a!==!1&&a!==null&&(t.getAttribute(r)!==a&&t.setAttribute(r,a===!0?``:String(a)),o(c,f[c]||(()=>t.removeAttribute(r))))}},l={shouldRender:!0,tags:[]};if(fn(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=r;if(u?._d!==n){if(u){for(let e in u._s)u._s[e]();for(let e in u._p)u._p[e]();u._s=u._p={},u._e.clear(),u._l.clear()}u=void 0}u?u._p=u._s:u=Pi(e,n),u._s={};let d=u,f=d._p,p=[],m={};e.dirty=!1;let h=cn(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),g=[],_={};for(let e of h){let t=_[e._d]||0,r=(t?`${e._d}:${t}`:e._d)||e._h,i={tag:e,id:r,shouldRender:!0};e.tag===`meta`&&e._d&&mn(e._d)&&(_[e._d]=t+1),g.push(i),e.tag===`title`?(n.title=e.textContent,o(`title:`,()=>n.title=d._t)):(i.$el=d._e.get(r),i.$el?c(i):ln.has(e.tag)&&p.push(i))}if(p.length){let e=new Set(d._e.values());for(let t of[...n.body.children,...n.head.children]){let n=t.tagName.toLowerCase();if(!ln.has(n)||e.has(t))continue;let r={innerHTML:t.innerHTML};for(let e of t.getAttributeNames())r[e]=t.getAttribute(e);let i=gn({tag:n,props:{}},r);i.key=t.getAttribute(`data-hid`)||void 0;let a=dn(i)||sn(i),o=a,s=1;for(;d._e.has(o);)o=`${a}:${s++}`;d._e.set(o,t)}}for(let e of p){let t=d._e.get(e.id);e.$el=t||n.createElement(e.tag.tag),c(e),t||(m[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el)}m.head&&n.head.appendChild(m.head),m.bodyOpen&&n.body.insertBefore(m.bodyOpen,n.body.firstChild),m.bodyClose&&n.body.appendChild(m.bodyClose);for(let e in f)f[e]();e._dom=d,a=!0,fn(e,`dom:rendered`,{renders:g})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return a&&(e.dirty||Ni(e))&&Fi(e,t),a}var Ii=e=>typeof e.tagPriority==`number`?e.tagPriority:100+(un[e.tagPriority]||0);function Li(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||Mi({document:e.document}),n=Ai(ki(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:Ii,init:[]}),vn(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}function Ri(e,t){return t&&typeof e==`function`&&(e.key=t),e}var zi=/\\/g,Bi=/</g,Vi=/"/g,Hi=/%\w+(?:\.\w+)?/g,Ui=`%separator`;function Wi(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0){let e=String(typeof r==`number`?r:r||``);return n?e.replace(zi,`\\\\`).replace(Bi,`\\u003C`).replace(Vi,`\\"`):e}}function Gi(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(Hi);if(!a)return e;let o=e.includes(Ui);return e=e.replace(Hi,e=>{if(e===Ui||!a.includes(e))return e;let n=Wi(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(Ui).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var Ki=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,qi=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),Ji=Ri({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=qi(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=qi(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(Ki))}}}),Yi=Ri({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function Xi(e){return typeof e?.then==`function`}var Zi=256;function Qi(e,t){if(t===e.length)return;if(t===Zi){let n=Array(e.length),r=!1;for(;t<e.length;t++){let i=ea(e[t]);n[t]=i,r||=Xi(i)}return r?n:void 0}let n=ea(e[t]);if(Xi(n)){let r=Array(e.length);r[t]=n;for(let n=t+1;n<e.length;n++)r[n]=ea(e[n]);return r}let r=Qi(e,t+1);return r&&(r[t]=n),r}function $i(e,t,n){if(n===t.length)return;if(n===Zi){let r=Array(t.length),i=!1;for(;n<t.length;n++){let a=ea(e[t[n]]);r[n]=a,i||=Xi(a)}return i?r:void 0}let r=ea(e[t[n]]);if(Xi(r)){let i=Array(t.length);i[n]=r;for(let r=n+1;r<t.length;r++)i[r]=ea(e[t[r]]);return i}let i=$i(e,t,n+1);return i&&(i[n]=r),i}function ea(e){if(typeof e==`function`)return e;if(Xi(e))return Promise.resolve(e).then(ea);if(Array.isArray(e)){let t=Qi(e,0);return t?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=$i(e,t,0);if(n)return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var ta=Ri(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=ea(a);Xi(o)?(t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})):t.delete(i)}}}}},`promises`),na={meta:`content`,link:`href`,htmlAttrs:`lang`},ra=[`innerHTML`,`textContent`];function ia(e,t,n,r=!1){return typeof e==`string`&&e.includes(`%`)?Gi(e,t,n,r):e}var aa=Ri(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=ia(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=na[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=ia(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of ra)typeof e[t]==`string`&&(e[t]=ia(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=ia(n.textContent,e._templateParams,e._separator))}}}),`template-params`);function oa(e={}){let t=Mi(),n,r=0;return n=Li({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=hn(n),n}var sa={disableDefaults:!0,plugins:[Yi,ta,aa,Ji]},ca=o({name:`nuxt:head`,enforce:`pre`,setup(e){Di(e,oa(sa))}}),la=/(:\w+)\([^)]+\)/g,ua=/(:\w+)[?+*]/g,da=/:\w+/g,fa=(e,t)=>t.path.replace(la,`$1`).replace(ua,`$1`).replace(da,t=>e.params[t.slice(1)]?.toString()||``),pa=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&fa(e.route,n));return typeof r==`function`?r(e.route):r},ma=(e,t)=>({default:()=>e?_(Se,e===!0?{}:e,t):t});function ha(e){return Array.isArray(e)?e:[e]}var ga=()=>({}),_a=()=>location.protocol+`//`+location.host;function va(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),bt(n,``)}return bt(n,e)+r+i}function ya(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=va(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Bt.pop,direction:u?u>0?jt.forward:jt.back:jt.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(Ct({},e.state,{scroll:en()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function ba(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?en():null}}function xa(e){let{history:t,location:n}=window,r={value:va(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:_a()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,Ct({},t.state,ba(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Ct({},i.value,t.state,{forward:e,scroll:en()});a(o.current,o,!0),a(e,Ct({},ba(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Sa(e){e=on(e);let t=xa(e),n=ya(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Ct({location:``,base:e,go:r,createHref:an.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Ca=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),wa=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(wa||{}),Ta={type:Ca.Static,value:``},Ea=/[a-zA-Z0-9_]/;function Da(e){if(!e)return[[]];if(e===`/`)return[[Ta]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=wa.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===wa.Static?a.push({type:Ca.Static,value:l}):n===wa.Param||n===wa.ParamRegExp||n===wa.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Ca.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)if(c=e[s++],c===`\\`&&n!==wa.ParamRegExp)r=n,n=wa.EscapeNext;else switch(n){case wa.Static:c===`/`?(l&&d(),o()):c===`:`?(d(),n=wa.Param):f();break;case wa.EscapeNext:f(),n=r;break;case wa.Param:c===`(`?n=wa.ParamRegExp:Ea.test(c)?f():(d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case wa.ParamRegExp:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=wa.ParamRegExpEnd:u+=c;break;case wa.ParamRegExpEnd:d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`)}return n===wa.ParamRegExp&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Oa=`[^/]+?`,ka={sensitive:!1,strict:!1,start:!0,end:!0},Aa=function(e){return e[e._multiplier=10]=`_multiplier`,e[e.Root=90]=`Root`,e[e.Segment=40]=`Segment`,e[e.SubSegment=30]=`SubSegment`,e[e.Static=40]=`Static`,e[e.Dynamic=20]=`Dynamic`,e[e.BonusCustomRegExp=10]=`BonusCustomRegExp`,e[e.BonusWildcard=-50]=`BonusWildcard`,e[e.BonusRepeatable=-20]=`BonusRepeatable`,e[e.BonusOptional=-8]=`BonusOptional`,e[e.BonusStrict=.7000000000000001]=`BonusStrict`,e[e.BonusCaseSensitive=.25]=`BonusCaseSensitive`,e}(Aa||{}),ja=/[.+*?^${}()[\]/\\]/g;function Ma(e,t){let n=Ct({},ka,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[Aa.Root];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=Aa.Segment+(n.sensitive?Aa.BonusCaseSensitive:0);if(o.type===Ca.Static)r||(i+=`/`),i+=o.value.replace(ja,`\\$&`),s+=Aa.Static;else if(o.type===Ca.Param){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Oa;if(u!==Oa){s+=Aa.BonusCustomRegExp;try{`${u}`}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=Aa.Dynamic,c&&(s+=Aa.BonusOptional),n&&(s+=Aa.BonusRepeatable),u===`.*`&&(s+=Aa.BonusWildcard)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=Aa.BonusStrict}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){r&&n.endsWith(`/`)||(n+=`/`),r=!1;for(let e of i)if(e.type===Ca.Static)n+=e.value;else if(e.type===Ca.Param){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(Rt(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=Rt(c)?c.join(`/`):c;if(!l){if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`)}n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Na(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===Aa.Static+Aa.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Aa.Static+Aa.Segment?1:-1:0}function Pa(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Na(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Fa(r))return 1;if(Fa(i))return-1}return i.length-r.length}function Fa(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ia={strict:!1,end:!0,sensitive:!1};function La(e,t,n){let r=Ma(Da(e.path),n),i=Ct(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Ra(e,t){let n=[],r=new Map;t=ct(Ia,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ba(e);s.aliasOf=r&&r.record;let l=ct(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ba(Ct({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=La(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Ha(d)&&o(e.name)),Ka(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:mt}function o(e){if(lt(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Wa(e,n);n.splice(t,0,e),e.record.name&&!Ha(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=Ct(za(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&za(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=Ct({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Ua(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function za(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ba(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Va(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Va(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Ha(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ua(e){return e.reduce((e,t)=>Ct(e,t.meta),{})}function Wa(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Pa(e,t[i])<0?r=i:n=i+1}let i=Ga(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ga(e){let t=e;for(;t=t.parent;)if(Ka(t)&&Pa(e,t)===0)return t}function Ka({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function qa(e){let t=T(yt),n=T(_t),r=P(()=>{let n=O(e.to);return t.resolve(n)}),i=P(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(nt.bind(null,i));if(o>-1)return o;let s=Qa(e[t-2]);return t>1&&Qa(i)===s&&a[a.length-1].path!==s?a.findIndex(nt.bind(null,e[t-2])):o}),a=P(()=>i.value>-1&&Za(n.params,r.value.params)),o=P(()=>i.value>-1&&i.value===n.matched.length-1&&ft(n.params,r.value.params));function s(n={}){if(Xa(n)){let n=t[O(e.replace)?`replace`:`push`](O(e.to)).catch(mt);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:P(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Ja(e){return e.length===1?e[0]:e}var Ya=F({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:qa,setup(e,{slots:t}){let n=me(qa(e)),{options:r}=T(yt),i=P(()=>({[$a(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[$a(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ja(t.default(n));return e.custom?r:_(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Xa(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Za(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Rt(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Qa(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var $a=(e,t,n)=>e??t??n,eo=F({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=T(rt),i=P(()=>e.route||r.value),a=T(pt,0),o=P(()=>{let e=O(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=P(()=>i.value.matched[o.value]);he(pt,P(()=>o.value+1)),he(at,s),he(rt,i);let c=V();return w(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),!e||!t||i&&nt(t,i)&&r||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return to(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=_(l,Ct({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return to(n.default,{Component:f,route:r})||f}}});function to(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var no=eo;function ro(e){let t=Ra(e.routes,e),n=e.parseQuery||vt,r=e.stringifyQuery||ot,i=e.history,a=St(),o=St(),s=St(),c=Ae(Pt),l=Pt;Ze&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Nt.bind(null,e=>``+e),d=Nt.bind(null,$e),f=Nt.bind(null,rn);function p(e,n){let r,i;return lt(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=Ct({},a||c.value),typeof e==`string`){let r=it(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Ct(r,o,{params:f(o.params),hash:rn(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Ct({},e,{path:it(n,e.path,a.path).path});else{let t=Ct({},e.params);for(let e in t)t[e]??delete t[e];o=Ct({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=xt(r,Ct({},e,{hash:ht(l),path:s.path})),m=i.createHref(p);return Ct({fullPath:p,hash:l,query:r===ot?Qe(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?it(n,e,c.value.path):Ct({},e)}function y(e,t){if(l!==e)return Et(Ot.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Ct(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),Ct({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(Ct(v(u),{state:typeof u==`object`?Ct({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&ut(r,i,n)&&(f=Et(Ot.NAVIGATION_DUPLICATED,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>Lt(e)?Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if(Lt(e,Ot.NAVIGATION_GUARD_REDIRECT))return C(Ct({replace:s},v(e.to),{state:typeof e.to==`object`?Ct({},a,e.to.state):a,force:o}),t||d)}else e=te(d,i,!0,s,a);return ee(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=j.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=nn(e,t);n=gt(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(dt(r,e,t))});let c=w.bind(null,e,t);return n.push(c),ue(n).then(()=>{n=[];for(let r of a.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).then(()=>{n=gt(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(dt(r,e,t))});return n.push(c),ue(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Rt(r.beforeEnter))for(let i of r.beforeEnter)n.push(dt(i,e,t));else n.push(dt(r.beforeEnter,e,t))}return n.push(c),ue(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=gt(s,`beforeRouteEnter`,e,t,T),n.push(c),ue(n))).then(()=>{n=[];for(let r of o.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).catch(e=>Lt(e,Ot.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ee(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function te(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===Pt,l=Ze?history.state:{};n&&(r||s?i.replace(e.fullPath,Ct({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let D;function ne(){D||=i.listen((e,t,n)=>{if(!M.listening)return;let r=_(e),a=S(r,M.currentRoute.value);if(a){C(Ct(a,{replace:!0,force:!0}),r).catch(mt);return}l=r;let o=c.value;Ze&&st(et(o.fullPath,n.delta),en()),E(r,o).catch(e=>Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_CANCELLED)?e:Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?(C(Ct(v(e.to),{force:!0}),r).then(e=>{Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Bt.pop&&i.go(-1,!1)}).catch(mt),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=te(r,o,!1),e&&(n.delta&&!Lt(e,Ot.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Bt.pop&&Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ee(r,o,e)}).catch(mt)})}let re=St(),ie=St(),ae;function oe(e,t,n){ce(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return ae&&c.value!==Pt?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function ce(e){return ae||(ae=!e,ne(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!Ze||!a)return Promise.resolve();let o=!r&&tt(et(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return we().then(()=>a(t,n,o)).then(e=>e&&qt(e)).catch(e=>oe(e,t,n))}let k=e=>i.go(e),A,j=new Set,M={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:k,back:()=>k(-1),forward:()=>k(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:se,install(e){e.component(`RouterLink`,Ya),e.component(`RouterView`,no),e.config.globalProperties.$router=M,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>O(c)}),Ze&&!A&&c.value===Pt&&(A=!0,b(i.location).catch(e=>{}));let t={};for(let e in Pt)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(yt,M),e.provide(_t,je(t)),e.provide(rt,c);let n=e.unmount;j.add(e),e.unmount=function(){j.delete(e),j.size<1&&(l=Pt,D&&D(),D=null,c.value=Pt,A=!1,ae=!1),n()}}};function ue(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return M}var io=It(async e=>{if(!e.meta?.validate)return;let t=await Promise.resolve(e.meta.validate(e));if(t!==!0)return wt({fatal:!0,status:t&&(t.status||t.statusCode)||404,statusText:t&&(t.statusText||t.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})}),ao=n({docsBase:p,reporters:m}),oo=`modulepreload`,so=function(e,t){return new URL(e,t).href},co={},lo=function(e){return e.pathname.endsWith(`.css`)},uo=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},K=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=so(t,n);let r=s(t),i=lo(r);return uo(co,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:oo,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},fo=Ei;function po(e){return ga(e)}var mo;function ho(){let e;return e=fo(wi(`builds/meta/${u().app.buildId}.json`),{responseType:`json`}).then(e=>{if(!e||typeof e!=`object`||!Array.isArray(e.prerendered))throw ao.NUXT_E5004();return e}),mo=e,e.catch(t=>{mo===e&&(mo=void 0),ao.NUXT_E5002({cause:t})}),e}function go(){return mo||ho()}function _o(e){let t=typeof e==`string`?e:e.path;try{return po(t)}catch(e){return ao.NUXT_E5003({path:t,cause:e}),{}}}var vo=[io,It(e=>{let t=_o({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return Kt(n)?(window.location.href=n,!1):n}})],yo={},bo=[{name:`story-id`,path:`/story/:id()`,component:()=>K(()=>import(`./DRlQgul3.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)},{name:`burndown`,path:`/burndown`,component:()=>K(()=>import(`./CvLiA4_O.js`),__vite__mapDeps([15,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,34]),import.meta.url)},{name:`epics`,path:`/epics`,component:()=>K(()=>import(`./COf6E6h4.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,36]),import.meta.url)},{name:`gantt`,path:`/gantt`,component:()=>K(()=>import(`./DRPlYvb3.js`),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,38]),import.meta.url)},{name:`last-change`,path:`/last-change`,component:()=>K(()=>import(`./S08nFESZ.js`),__vite__mapDeps([39,1,6,2,3,4,5,7,8,9,10,11,12,13,40]),import.meta.url)},{name:`milestones`,path:`/milestones`,component:()=>K(()=>import(`./P9x67aq2.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10,11,12,13,42]),import.meta.url)},{name:`index`,path:`/`,component:()=>K(()=>import(`./BodFvto3.js`),__vite__mapDeps([43,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,44]),import.meta.url)}],xo=/\/(?=$|[?#])/;function So(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),We(n,``)}let s=We(r,e),c=!n||Ve(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var Co=o({name:`nuxt:router`,enforce:`pre`,async setup(e){let t=u().app.baseURL,n=Sn.history?.(t)??Sa(t),r=Sn.routes?await Sn.routes(bo)??bo:bo,i,a=ro({...Sn,scrollBehavior:(e,t,n)=>{if(t===Pt)i=n;else if(Sn.scrollBehavior){if(a.options.scrollBehavior=Sn.scrollBehavior,`scrollRestoration`in window.history){let e=a.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return Sn.scrollBehavior(e,Pt,i||n)}},history:n,routes:r});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(a);let o=Ae(a.currentRoute.value);a.afterEach((e,t)=>{o.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>o.value});let s=So(t,window.location,e.payload.path),c=We(window.location.pathname,t),l=Ae(a.currentRoute.value),d=()=>{l.value=a.currentRoute.value};a.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;n===r?pa({route:e,Component:{type:n}})===pa({route:t,Component:{type:r}})&&d():e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&d()});let f={sync:d};for(let e in l.value)Object.defineProperty(f,e,{get:()=>l.value[e],enumerable:!0});e._route=je(f),e._middleware||={global:[],named:{}};let p=Yt();a.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&p.value&&!Lt(r,Gt.aborted|Gt.cancelled)&&await e.runWithContext(Qt),r&&await e.callHook(`page:loading:end`)}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)});try{await a.isReady()}catch(t){await At(e,t)}let m=s===a.currentRoute.value.fullPath?a.currentRoute.value:a.resolve(s),h=a.currentRoute.value.fullPath,g=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&s.replace(xo,``)!==e.payload.path.replace(xo,``)&&Ve(a.currentRoute.value.path,e.payload.path);d();function _(r){!e.isHydrating&&r.fullPath!==So(t,window.location)&&n.push(r.fullPath)}a.beforeEach(t=>{if(!e.isHydrating&&ga(t.path).noScripts)return window.location.assign(a.resolve(t.fullPath).href),!1}),a.beforeResolve(e=>{if(e.matched.length||Ve(e.path,c))return;let n=new URL(Ue(e.fullPath,t),window.location.href);if(n.origin===window.location.origin)return window.location.assign(n),!1});let v=e.payload.state._layout;return a.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=me(t.meta),e.isHydrating&&v&&!ye(t.meta.layout)&&(t.meta.layout=v),e._processingMiddleware=!0;{let r=new Set([...vo,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of ha(t))r.add(e)}let i=_o({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await yo[i]?.().then(e=>e.default||e):i;if(!r)throw $t.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||wt({status:404,statusText:`Page Not Found: ${s}`});return await e.runWithContext(()=>Ht(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return tn(i)&&i.fatal&&(await e.runWithContext(()=>Ht(i)),_(t)),i}catch(n){let r=wt(n);return r.fatal&&(await e.runWithContext(()=>Ht(r)),_(t)),r}}}}),a.afterEach((t,n,r)=>{if(t.matched.length===0&&!p.value&&!Lt(r,Gt.aborted|Gt.cancelled))return e.runWithContext(()=>Ht(wt({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in m&&(m.name=void 0),a.currentRoute.value.fullPath===h){if(g){let t=a.resolve(e.payload.path);`name`in t&&(t.name=void 0),await a.replace({...t,force:!0});let n=()=>{if(!e[`~restoreDeferredRoute`])return;e[`~restoreDeferredRoute`]=void 0;let t=a.currentRoute,n=a.resolve(s);n.matched.at(-1)===t.value.matched.at(-1)&&(n.meta=t.value.meta),t.value=n,d(),a.replace({...m,force:!0}).catch(()=>{})};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await a.replace({...m,force:!0})}a.options.scrollBehavior=Sn.scrollBehavior}catch(t){await At(e,t)}}),{provide:{router:a}}}}),wo=o(()=>{let e=zt();Zt(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),To=o(e=>{let t;async function n(){let r;try{r=await go()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,s);try{let n=await Ei(wi(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}Zt(()=>{t=setTimeout(n,s)})});function Eo(e={}){let t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw $t.NUXT_E2010({path:t});if(n.protocol&&Ke(n.protocol))throw $t.NUXT_E2002({toPath:t,protocol:n.protocol});let r={};try{r=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||r?.path!==t||r?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:t,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:l().payload.state}))}catch{}window.location.pathname===t?window.location.reload():window.location.href=t}}var Do=o({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&Vt(navigator.userAgent)&&Eo()})}}),Oo=o({name:`nuxt:chunk-reload`,setup(e){let t=zt(),n=u(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){Eo({path:He(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),ko=o({name:`nuxt:island-link-navigation`,setup(e){}}),Ao=Ei;function jo(){return Ao}function Mo(e,t){return typeof e==`object`?e?.[t]:e}var No=o({name:`@nuxt/icon`,setup(){let e=u(),t=wn().icon,n=jo(),r=n.native;On.setFetch((e,t)=>{let n=globalThis.$fetch?.native;return(r||n||globalThis.fetch)(e,t)});let i=Mo(t.provider,`client`),a=[];if(i===`server`){let n=e.app?.baseURL?.replace(/\/$/,``)??``;a.push(n+(t.localApiEndpoint||`/api/_nuxt_icon`)),(t.fallbackToApi===!0||t.fallbackToApi===`client-only`)&&a.push(t.iconifyApiEndpoint)}else i===`none`?On.setFetch(()=>Promise.resolve(new Response)):a.push(t.iconifyApiEndpoint);async function o(e,t){try{let r=await n(a[0]+`/`+t+`.json`,{query:{icons:e.join(`,`)}});if(!r||r.prefix!==t||!r.icons)throw Error(`Invalid data`+JSON.stringify(r));return r}catch(e){return console.error(`Failed to load custom icons`,e),null}}async function s(e,t){let n=[[]],r=0;for(let t of e){let e=encodeURIComponent(t).length;r+e>2e3&&n.at(-1).length&&(n.push([]),r=0),n.at(-1).push(t),r+=e+1}let i=(await Promise.all(n.map(e=>o(e,t)))).filter(e=>!!e);return i.length?i.reduce((e,t)=>({...e,...t,icons:{...e.icons,...t.icons},aliases:{...e.aliases,...t.aliases}})):null}An(``,{resources:a});for(let e of t.customCollections||[])e&&En(s,e)}}),Po=D(()=>K(()=>import(`./C8vL692X.js`).then(e=>e.default||e.default||e),__vite__mapDeps([45,1,11,3,4,18,31,5,6,2,12,22,13]),import.meta.url)),Fo=D(()=>K(()=>import(`./DnDHGSYI.js`).then(e=>e.default||e.default||e),__vite__mapDeps([46,1,6,17,9,18,4,11,3,47,12,21,22,25,26,27,7,8,5,10,13]),import.meta.url)),Io=D(()=>K(()=>import(`./Cz6rZcLK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([48,1,11,3,4,18]),import.meta.url)),Lo=D(()=>K(()=>import(`./1eqboJxR.js`).then(e=>e.default||e.default||e),__vite__mapDeps([49,1,11,3,4,18,50,51,22,7,8,9,5,6,10,12,13,29]),import.meta.url)),Ro=D(()=>K(()=>import(`./DqZgF3hU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([52,1,11,3,4,18]),import.meta.url)),zo=D(()=>K(()=>import(`./vwxaNGfc.js`).then(e=>e.default||e.default||e),__vite__mapDeps([53,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Bo=D(()=>K(()=>import(`./2K7ag6ES.js`).then(e=>e.default||e.default||e),__vite__mapDeps([54,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Vo=D(()=>K(()=>import(`./BaG8y0Wt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([55,1,11,3,4,18]),import.meta.url)),Ho=D(()=>K(()=>import(`./CqoQ__I_.js`).then(e=>e.default||e.default||e),__vite__mapDeps([56,1,11,3,4,18]),import.meta.url)),Uo=D(()=>K(()=>import(`./BpWeHLuN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([57,1,11,3,4,18,30,12,26,7,8,9,5,6,10,13,31,2,22,29]),import.meta.url)),Wo=D(()=>K(()=>import(`./D2FhHl1o.js`).then(e=>e.default||e.default||e),__vite__mapDeps([58,1,11,3,4,18,59,6,17,9,21,12,22,25,27,32,60,20,33,61,7,8,5,10,13]),import.meta.url)),Go=D(()=>K(()=>import(`./CJMBJQuf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([61,1,4,11,3,7,8,9,5,6,10,12,13]),import.meta.url)),Ko=D(()=>K(()=>import(`./DbHiyab-.js`).then(e=>e.default||e.default||e),__vite__mapDeps([62,1,11,3,4,18]),import.meta.url)),qo=D(()=>K(()=>import(`./Cvs12oA0.js`).then(e=>e.default||e.default||e),__vite__mapDeps([63,1,6,11,3,4,19,18,20,21,12,22,23,25,17,9,33,60,27,7,8,5,10,13,61]),import.meta.url)),Jo=D(()=>K(()=>import(`./CMUi2-Lj.js`).then(e=>e.default||e.default||e),__vite__mapDeps([64,1,11,3,4,18,12,26,7,8,9,5,6,10,13]),import.meta.url)),Yo=D(()=>K(()=>import(`./CK-lOYG9.js`).then(e=>e.default||e.default||e),__vite__mapDeps([65,1,11,3,4,18]),import.meta.url)),Xo=D(()=>K(()=>import(`./DIc8yx98.js`).then(e=>e.default||e.default||e),__vite__mapDeps([66,1,11,3,4,18,22,50]),import.meta.url)),Zo=D(()=>K(()=>import(`./DSLbmoWa.js`).then(e=>e.default||e.default||e),__vite__mapDeps([67,1,11,3,4,18,22]),import.meta.url)),Qo=D(()=>K(()=>import(`./CLBcBrYf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([68,3,1,11,4,18]),import.meta.url)),$o=D(()=>K(()=>import(`./BDK2Hj7B.js`).then(e=>e.default||e.default||e),__vite__mapDeps([69,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),es=D(()=>K(()=>import(`./D75vbfSb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([70,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),ts=D(()=>K(()=>import(`./uKzCKCTq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([71,3,1,11,4,18]),import.meta.url)),ns=D(()=>K(()=>import(`./CgDTd7jS.js`).then(e=>e.default||e.default||e),__vite__mapDeps([72,1,11,3,4,18]),import.meta.url)),rs=D(()=>K(()=>import(`./CPCUMJnF.js`).then(e=>e.default||e.default||e),__vite__mapDeps([73,1,11,3,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),is=D(()=>K(()=>import(`./D99LbGfb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([74,3,1,6,17,9,18,4,11,21,12,22,27]),import.meta.url)),as=D(()=>K(()=>import(`./DajA-Tkt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([75,1,11,3,4,18]),import.meta.url)),os=D(()=>K(()=>import(`./Dg2LiqmN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([76,1,11,3,4,18]),import.meta.url)),ss=D(()=>K(()=>import(`./yh6sf_D5.js`).then(e=>e.default||e.default||e),__vite__mapDeps([77,1,11,3,4,18]),import.meta.url)),cs=D(()=>K(()=>import(`./DqcxvfbD.js`).then(e=>e.default||e.default||e),__vite__mapDeps([78,1,11,3,4,18]),import.meta.url)),ls=D(()=>K(()=>import(`./CyEXFe3V.js`).then(e=>e.default||e.default||e),__vite__mapDeps([79,1,11,3,4,18,21,12,30,26,7,8,9,5,6,10,13,31,2,22,29,61]),import.meta.url)),us=D(()=>K(()=>import(`./assMu_Wn.js`).then(e=>e.default||e.default||e),__vite__mapDeps([80,1,11,3,4,18,21,12,7,8,9,5,6,10,13,30,26,31,2,22,29]),import.meta.url)),ds=D(()=>K(()=>import(`./DpXJ_tCU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([81,1]),import.meta.url)),fs=D(()=>K(()=>import(`./Du91iq0p.js`).then(e=>e.default||e.default||e),__vite__mapDeps([82,1,11,3,4,18]),import.meta.url)),ps=D(()=>K(()=>import(`./DsA2lVci.js`).then(e=>e.default||e.default||e),__vite__mapDeps([83,1,11,3,4,18]),import.meta.url)),ms=D(()=>K(()=>import(`./D5CE81jK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([84,1,11,3,4,18]),import.meta.url)),hs=D(()=>K(()=>import(`./DhuleNnm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([85,1,11,3,4,18,12,26,59,6,17,9,21,22,25,27,32,60,20,33,7,8,5,10,13,29,51]),import.meta.url)),gs=D(()=>K(()=>import(`./BmxvtaMq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([86,1,11,3,4,18]),import.meta.url)),_s=D(()=>K(()=>import(`./DF-nsa1Z.js`).then(e=>e.default||e.default||e),__vite__mapDeps([87,1,11,3,4,18]),import.meta.url)),vs=D(()=>K(()=>import(`./Dc7Ql6eE.js`).then(e=>e.default||e.default||e),__vite__mapDeps([88,1,11,3,4,18]),import.meta.url)),ys=D(()=>K(()=>import(`./ZngEd3HB.js`).then(e=>e.default||e.default||e),__vite__mapDeps([89,1,11,3,4,18]),import.meta.url)),bs=D(()=>K(()=>import(`./MaXJprwN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([90,1,11,3,4,18]),import.meta.url)),xs=D(()=>K(()=>import(`./Dd9ZukPU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([91,1,11,3,4,18]),import.meta.url)),Ss=D(()=>K(()=>import(`./CSEEUF8S.js`).then(e=>e.default||e.default||e),__vite__mapDeps([92,1,11,3,4,18]),import.meta.url)),Cs=D(()=>K(()=>import(`./D_S6N7_b.js`).then(e=>e.default||e.default||e),__vite__mapDeps([93,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),ws=D(()=>K(()=>import(`./CPcKlmSm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([94,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ts=D(()=>K(()=>import(`./CGI_ZV79.js`).then(e=>e.default||e.default||e),__vite__mapDeps([95,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Es=D(()=>K(()=>import(`./C40iTe-x.js`).then(e=>e.default||e.default||e),__vite__mapDeps([96,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ds=D(()=>K(()=>import(`./DEfLc7p3.js`).then(e=>e.n).then(e=>e.default||e.default||e),__vite__mapDeps([8,9,3,1,5,6,4,10,11]),import.meta.url)),Os=[[`ProseA`,Po],[`ProseAccordion`,Fo],[`ProseAccordionItem`,Io],[`ProseBadge`,Lo],[`ProseBlockquote`,Ro],[`ProseCallout`,zo],[`ProseCard`,Bo],[`ProseCardGroup`,Vo],[`ProseCode`,Ho],[`ProseCodeCollapse`,Uo],[`ProseCodeGroup`,Wo],[`ProseCodeIcon`,Go],[`ProseCodePreview`,Ko],[`ProseCodeTree`,qo],[`ProseCollapsible`,Jo],[`ProseEm`,Yo],[`ProseField`,Xo],[`ProseFieldGroup`,Zo],[`ProseH1`,Qo],[`ProseH2`,$o],[`ProseH3`,es],[`ProseH4`,ts],[`ProseHr`,ns],[`ProseIcon`,rs],[`ProseImg`,is],[`ProseKbd`,as],[`ProseLi`,os],[`ProseOl`,ss],[`ProseP`,cs],[`ProsePre`,ls],[`ProsePrompt`,us],[`ProseScript`,ds],[`ProseSteps`,fs],[`ProseStrong`,ps],[`ProseTable`,ms],[`ProseTabs`,hs],[`ProseTabsItem`,gs],[`ProseTbody`,_s],[`ProseTd`,vs],[`ProseTh`,ys],[`ProseThead`,bs],[`ProseTr`,xs],[`ProseUl`,Ss],[`ProseCaution`,Cs],[`ProseNote`,ws],[`ProseTip`,Ts],[`ProseWarning`,Es],[`Icon`,Ds]],ks=o({name:`nuxt:global-components`,setup(e){for(let[t,n]of Os)e.vueApp.component(t,n),e.vueApp.component(`Lazy`+t,n)}}),As={},js=[`route`,`payload`,`island`,`hint`],Ms=12,Ns={route:8,payload:8,island:4,hint:8};function Ps(e={}){let t={...Ns,...e.concurrency},n=e.total??Ms,r=e.canPrefetch,i=e.defer,a={route:[],payload:[],island:[],hint:[]},o=js.map(e=>a[e]),s=new WeakSet,c=new Map,l={route:0,payload:0,island:0,hint:0},u=0,d=new Map,f=new AbortController,p=new AbortController;p.abort();function m(e){c.get(e.key)===e&&c.delete(e.key)}function h(e){m(e),Promise.resolve().then(()=>e.run(p.signal,!1)).catch(()=>{})}function g(){if(!r||r())for(;u<n;){let e=js.find(e=>a[e].length&&l[e]<t[e]);if(!e)return;let n=a[e].shift();_(n,s.delete(n))}}function _(e,t){let n=e.scope===`app`?f:new AbortController;e.scope===`navigation`&&d.set(e,n),l[e.priority]++,u++;let r=!1,a=()=>{r||(r=!0,l[e.priority]--,u--,d.delete(e),m(e),g())};n.signal.addEventListener(`abort`,a,{once:!0});let o=()=>Promise.resolve().then(()=>e.run(n.signal,t)).then(a,a);i?i(o,t,e.priority):o()}let v=(e,t)=>t!==void 0&&e.group===t&&e.priority!==`hint`;return{schedule(e){let t=[];for(let n of Array.isArray(e)?e:[e])c.has(n.key)?h(n):(c.set(n.key,n),t.push(n));for(let e=t.length-1;e>=0;e--)a[t[e].priority].unshift(t[e]);g()},promote(e){for(let t of o){let n=[],r=[];for(let i of t)i.group===e&&s.add(i),(i.group===e?n:r).push(i);t.length=0,t.push(...n,...r)}g()},reset(e){for(let t of o)for(let n=t.length-1;n>=0;n--){let r=t[n];r.scope===`navigation`&&!v(r,e)&&(t.splice(n,1),h(r))}for(let[t,n]of[...d])v(t,e)||n.abort();g()},resume:g}}var Fs=1e3;function Is(e,t,n){if(t||n===`route`)return e();let r=globalThis.scheduler;r?.postTask?r.postTask(e,{priority:`background`}).catch(()=>{}):Jt(e,{timeout:Fs})}function Ls(e=l()){if(e._prefetch)return e._prefetch;let t=!1,n=Ps({canPrefetch:()=>yn()&&!t&&document.visibilityState!==`hidden`,defer:Is});e._prefetch=n,navigator.connection?.addEventListener?.(`change`,()=>n.resume()),document.addEventListener(`visibilitychange`,()=>n.resume());let r=e.$router;return r.beforeEach(()=>{t=!0}),r.afterEach(e=>{t=!1,n.reset(bn(e.fullPath))}),r.onError(()=>{t=!1,n.resume()}),n}var Rs=o({name:`nuxt:prefetch`,setup(e){let t=zt();e.hooks.hook(`app:mounted`,()=>{t.beforeEach(async e=>{let t=e?.meta?.layout;typeof t==`string`&&t in As&&await xn(As[t])})});let{schedule:n}=Ls(e);e.hooks.hook(`link:prefetch`,async e=>{if(Ge(e))return;let r=t.resolve(e);if(!r)return;let i=r.meta.layout,a=ha(r.meta.middleware).filter(e=>typeof e==`string`);n({key:`route:chunks:${e}`,priority:`route`,scope:`navigation`,group:bn(e),run:e=>{if(e.aborted)return;let t=[];for(let e of a){let n=yo[e];typeof n==`function`&&t.push(n())}return typeof i==`string`&&i in As&&t.push(xn(As[i])),Promise.all(t).catch(()=>{})}})})}}),zs={inherit:`inherit`,current:`currentcolor`,transparent:`transparent`,black:`#000`,white:`#fff`,slate:{50:`oklch(98.4% 0.003 247.858)`,100:`oklch(96.8% 0.007 247.896)`,200:`oklch(92.9% 0.013 255.508)`,300:`oklch(86.9% 0.022 252.894)`,400:`oklch(70.4% 0.04 256.788)`,500:`oklch(55.4% 0.046 257.417)`,600:`oklch(44.6% 0.043 257.281)`,700:`oklch(37.2% 0.044 257.287)`,800:`oklch(27.9% 0.041 260.031)`,900:`oklch(20.8% 0.042 265.755)`,950:`oklch(12.9% 0.042 264.695)`},gray:{50:`oklch(98.5% 0.002 247.839)`,100:`oklch(96.7% 0.003 264.542)`,200:`oklch(92.8% 0.006 264.531)`,300:`oklch(87.2% 0.01 258.338)`,400:`oklch(70.7% 0.022 261.325)`,500:`oklch(55.1% 0.027 264.364)`,600:`oklch(44.6% 0.03 256.802)`,700:`oklch(37.3% 0.034 259.733)`,800:`oklch(27.8% 0.033 256.848)`,900:`oklch(21% 0.034 264.665)`,950:`oklch(13% 0.028 261.692)`},zinc:{50:`oklch(98.5% 0 none)`,100:`oklch(96.7% 0.001 286.375)`,200:`oklch(92% 0.004 286.32)`,300:`oklch(87.1% 0.006 286.286)`,400:`oklch(70.5% 0.015 286.067)`,500:`oklch(55.2% 0.016 285.938)`,600:`oklch(44.2% 0.017 285.786)`,700:`oklch(37% 0.013 285.805)`,800:`oklch(27.4% 0.006 286.033)`,900:`oklch(21% 0.006 285.885)`,950:`oklch(14.1% 0.005 285.823)`},neutral:{50:`oklch(98.5% 0 none)`,100:`oklch(97% 0 none)`,200:`oklch(92.2% 0 none)`,300:`oklch(87% 0 none)`,400:`oklch(70.8% 0 none)`,500:`oklch(55.6% 0 none)`,600:`oklch(43.9% 0 none)`,700:`oklch(37.1% 0 none)`,800:`oklch(26.9% 0 none)`,900:`oklch(20.5% 0 none)`,950:`oklch(14.5% 0 none)`},stone:{50:`oklch(98.5% 0.001 106.423)`,100:`oklch(97% 0.001 106.424)`,200:`oklch(92.3% 0.003 48.717)`,300:`oklch(86.9% 0.005 56.366)`,400:`oklch(70.9% 0.01 56.259)`,500:`oklch(55.3% 0.013 58.071)`,600:`oklch(44.4% 0.011 73.639)`,700:`oklch(37.4% 0.01 67.558)`,800:`oklch(26.8% 0.007 34.298)`,900:`oklch(21.6% 0.006 56.043)`,950:`oklch(14.7% 0.004 49.25)`},mauve:{50:`oklch(98.5% 0 none)`,100:`oklch(96% 0.003 325.6)`,200:`oklch(92.2% 0.005 325.62)`,300:`oklch(86.5% 0.012 325.68)`,400:`oklch(71.1% 0.019 323.02)`,500:`oklch(54.2% 0.034 322.5)`,600:`oklch(43.5% 0.029 321.78)`,700:`oklch(36.4% 0.029 323.89)`,800:`oklch(26.3% 0.024 320.12)`,900:`oklch(21.2% 0.019 322.12)`,950:`oklch(14.5% 0.008 326)`},olive:{50:`oklch(98.8% 0.003 106.5)`,100:`oklch(96.6% 0.005 106.5)`,200:`oklch(93% 0.007 106.5)`,300:`oklch(88% 0.011 106.6)`,400:`oklch(73.7% 0.021 106.9)`,500:`oklch(58% 0.031 107.3)`,600:`oklch(46.6% 0.025 107.3)`,700:`oklch(39.4% 0.023 107.4)`,800:`oklch(28.6% 0.016 107.4)`,900:`oklch(22.8% 0.013 107.4)`,950:`oklch(15.3% 0.006 107.1)`},mist:{50:`oklch(98.7% 0.002 197.1)`,100:`oklch(96.3% 0.002 197.1)`,200:`oklch(92.5% 0.005 214.3)`,300:`oklch(87.2% 0.007 219.6)`,400:`oklch(72.3% 0.014 214.4)`,500:`oklch(56% 0.021 213.5)`,600:`oklch(45% 0.017 213.2)`,700:`oklch(37.8% 0.015 216)`,800:`oklch(27.5% 0.011 216.9)`,900:`oklch(21.8% 0.008 223.9)`,950:`oklch(14.8% 0.004 228.8)`},taupe:{50:`oklch(98.6% 0.002 67.8)`,100:`oklch(96% 0.002 17.2)`,200:`oklch(92.2% 0.005 34.3)`,300:`oklch(86.8% 0.007 39.5)`,400:`oklch(71.4% 0.014 41.2)`,500:`oklch(54.7% 0.021 43.1)`,600:`oklch(43.8% 0.017 39.3)`,700:`oklch(36.7% 0.016 35.7)`,800:`oklch(26.8% 0.011 36.5)`,900:`oklch(21.4% 0.009 43.1)`,950:`oklch(14.7% 0.004 49.3)`},red:{50:`oklch(97.1% 0.013 17.38)`,100:`oklch(93.6% 0.032 17.717)`,200:`oklch(88.5% 0.062 18.334)`,300:`oklch(80.8% 0.114 19.571)`,400:`oklch(70.4% 0.191 22.216)`,500:`oklch(63.7% 0.237 25.331)`,600:`oklch(57.7% 0.245 27.325)`,700:`oklch(50.5% 0.213 27.518)`,800:`oklch(44.4% 0.177 26.899)`,900:`oklch(39.6% 0.141 25.723)`,950:`oklch(25.8% 0.092 26.042)`},orange:{50:`oklch(98% 0.016 73.684)`,100:`oklch(95.4% 0.038 75.164)`,200:`oklch(90.1% 0.076 70.697)`,300:`oklch(83.7% 0.128 66.29)`,400:`oklch(75% 0.183 55.934)`,500:`oklch(70.5% 0.213 47.604)`,600:`oklch(64.6% 0.222 41.116)`,700:`oklch(55.3% 0.195 38.402)`,800:`oklch(47% 0.157 37.304)`,900:`oklch(40.8% 0.123 38.172)`,950:`oklch(26.6% 0.079 36.259)`},amber:{50:`oklch(98.7% 0.022 95.277)`,100:`oklch(96.2% 0.059 95.617)`,200:`oklch(92.4% 0.12 95.746)`,300:`oklch(87.9% 0.169 91.605)`,400:`oklch(82.8% 0.189 84.429)`,500:`oklch(76.9% 0.188 70.08)`,600:`oklch(66.6% 0.179 58.318)`,700:`oklch(55.5% 0.163 48.998)`,800:`oklch(47.3% 0.137 46.201)`,900:`oklch(41.4% 0.112 45.904)`,950:`oklch(27.9% 0.077 45.635)`},yellow:{50:`oklch(98.7% 0.026 102.212)`,100:`oklch(97.3% 0.071 103.193)`,200:`oklch(94.5% 0.129 101.54)`,300:`oklch(90.5% 0.182 98.111)`,400:`oklch(85.2% 0.199 91.936)`,500:`oklch(79.5% 0.184 86.047)`,600:`oklch(68.1% 0.162 75.834)`,700:`oklch(55.4% 0.135 66.442)`,800:`oklch(47.6% 0.114 61.907)`,900:`oklch(42.1% 0.095 57.708)`,950:`oklch(28.6% 0.066 53.813)`},lime:{50:`oklch(98.6% 0.031 120.757)`,100:`oklch(96.7% 0.067 122.328)`,200:`oklch(93.8% 0.127 124.321)`,300:`oklch(89.7% 0.196 126.665)`,400:`oklch(84.1% 0.238 128.85)`,500:`oklch(76.8% 0.233 130.85)`,600:`oklch(64.8% 0.2 131.684)`,700:`oklch(53.2% 0.157 131.589)`,800:`oklch(45.3% 0.124 130.933)`,900:`oklch(40.5% 0.101 131.063)`,950:`oklch(27.4% 0.072 132.109)`},green:{50:`oklch(98.2% 0.018 155.826)`,100:`oklch(96.2% 0.044 156.743)`,200:`oklch(92.5% 0.084 155.995)`,300:`oklch(87.1% 0.15 154.449)`,400:`oklch(79.2% 0.209 151.711)`,500:`oklch(72.3% 0.219 149.579)`,600:`oklch(62.7% 0.194 149.214)`,700:`oklch(52.7% 0.154 150.069)`,800:`oklch(44.8% 0.119 151.328)`,900:`oklch(39.3% 0.095 152.535)`,950:`oklch(26.6% 0.065 152.934)`},emerald:{50:`oklch(97.9% 0.021 166.113)`,100:`oklch(95% 0.052 163.051)`,200:`oklch(90.5% 0.093 164.15)`,300:`oklch(84.5% 0.143 164.978)`,400:`oklch(76.5% 0.177 163.223)`,500:`oklch(69.6% 0.17 162.48)`,600:`oklch(59.6% 0.145 163.225)`,700:`oklch(50.8% 0.118 165.612)`,800:`oklch(43.2% 0.095 166.913)`,900:`oklch(37.8% 0.077 168.94)`,950:`oklch(26.2% 0.051 172.552)`},teal:{50:`oklch(98.4% 0.014 180.72)`,100:`oklch(95.3% 0.051 180.801)`,200:`oklch(91% 0.096 180.426)`,300:`oklch(85.5% 0.138 181.071)`,400:`oklch(77.7% 0.152 181.912)`,500:`oklch(70.4% 0.14 182.503)`,600:`oklch(60% 0.118 184.704)`,700:`oklch(51.1% 0.096 186.391)`,800:`oklch(43.7% 0.078 188.216)`,900:`oklch(38.6% 0.063 188.416)`,950:`oklch(27.7% 0.046 192.524)`},cyan:{50:`oklch(98.4% 0.019 200.873)`,100:`oklch(95.6% 0.045 203.388)`,200:`oklch(91.7% 0.08 205.041)`,300:`oklch(86.5% 0.127 207.078)`,400:`oklch(78.9% 0.154 211.53)`,500:`oklch(71.5% 0.143 215.221)`,600:`oklch(60.9% 0.126 221.723)`,700:`oklch(52% 0.105 223.128)`,800:`oklch(45% 0.085 224.283)`,900:`oklch(39.8% 0.07 227.392)`,950:`oklch(30.2% 0.056 229.695)`},sky:{50:`oklch(97.7% 0.013 236.62)`,100:`oklch(95.1% 0.026 236.824)`,200:`oklch(90.1% 0.058 230.902)`,300:`oklch(82.8% 0.111 230.318)`,400:`oklch(74.6% 0.16 232.661)`,500:`oklch(68.5% 0.169 237.323)`,600:`oklch(58.8% 0.158 241.966)`,700:`oklch(50% 0.134 242.749)`,800:`oklch(44.3% 0.11 240.79)`,900:`oklch(39.1% 0.09 240.876)`,950:`oklch(29.3% 0.066 243.157)`},blue:{50:`oklch(97% 0.014 254.604)`,100:`oklch(93.2% 0.032 255.585)`,200:`oklch(88.2% 0.059 254.128)`,300:`oklch(80.9% 0.105 251.813)`,400:`oklch(70.7% 0.165 254.624)`,500:`oklch(62.3% 0.214 259.815)`,600:`oklch(54.6% 0.245 262.881)`,700:`oklch(48.8% 0.243 264.376)`,800:`oklch(42.4% 0.199 265.638)`,900:`oklch(37.9% 0.146 265.522)`,950:`oklch(28.2% 0.091 267.935)`},indigo:{50:`oklch(96.2% 0.018 272.314)`,100:`oklch(93% 0.034 272.788)`,200:`oklch(87% 0.065 274.039)`,300:`oklch(78.5% 0.115 274.713)`,400:`oklch(67.3% 0.182 276.935)`,500:`oklch(58.5% 0.233 277.117)`,600:`oklch(51.1% 0.262 276.966)`,700:`oklch(45.7% 0.24 277.023)`,800:`oklch(39.8% 0.195 277.366)`,900:`oklch(35.9% 0.144 278.697)`,950:`oklch(25.7% 0.09 281.288)`},violet:{50:`oklch(96.9% 0.016 293.756)`,100:`oklch(94.3% 0.029 294.588)`,200:`oklch(89.4% 0.057 293.283)`,300:`oklch(81.1% 0.111 293.571)`,400:`oklch(70.2% 0.183 293.541)`,500:`oklch(60.6% 0.25 292.717)`,600:`oklch(54.1% 0.281 293.009)`,700:`oklch(49.1% 0.27 292.581)`,800:`oklch(43.2% 0.232 292.759)`,900:`oklch(38% 0.189 293.745)`,950:`oklch(28.3% 0.141 291.089)`},purple:{50:`oklch(97.7% 0.014 308.299)`,100:`oklch(94.6% 0.033 307.174)`,200:`oklch(90.2% 0.063 306.703)`,300:`oklch(82.7% 0.119 306.383)`,400:`oklch(71.4% 0.203 305.504)`,500:`oklch(62.7% 0.265 303.9)`,600:`oklch(55.8% 0.288 302.321)`,700:`oklch(49.6% 0.265 301.924)`,800:`oklch(43.8% 0.218 303.724)`,900:`oklch(38.1% 0.176 304.987)`,950:`oklch(29.1% 0.149 302.717)`},fuchsia:{50:`oklch(97.7% 0.017 320.058)`,100:`oklch(95.2% 0.037 318.852)`,200:`oklch(90.3% 0.076 319.62)`,300:`oklch(83.3% 0.145 321.434)`,400:`oklch(74% 0.238 322.16)`,500:`oklch(66.7% 0.295 322.15)`,600:`oklch(59.1% 0.293 322.896)`,700:`oklch(51.8% 0.253 323.949)`,800:`oklch(45.2% 0.211 324.591)`,900:`oklch(40.1% 0.17 325.612)`,950:`oklch(29.3% 0.136 325.661)`},pink:{50:`oklch(97.1% 0.014 343.198)`,100:`oklch(94.8% 0.028 342.258)`,200:`oklch(89.9% 0.061 343.231)`,300:`oklch(82.3% 0.12 346.018)`,400:`oklch(71.8% 0.202 349.761)`,500:`oklch(65.6% 0.241 354.308)`,600:`oklch(59.2% 0.249 0.584)`,700:`oklch(52.5% 0.223 3.958)`,800:`oklch(45.9% 0.187 3.815)`,900:`oklch(40.8% 0.153 2.432)`,950:`oklch(28.4% 0.109 3.907)`},rose:{50:`oklch(96.9% 0.015 12.422)`,100:`oklch(94.1% 0.03 12.58)`,200:`oklch(89.2% 0.058 10.001)`,300:`oklch(81% 0.117 11.638)`,400:`oklch(71.2% 0.194 13.428)`,500:`oklch(64.5% 0.246 16.439)`,600:`oklch(58.6% 0.253 17.585)`,700:`oklch(51.4% 0.222 16.935)`,800:`oklch(45.5% 0.188 13.697)`,900:`oklch(41% 0.159 10.272)`,950:`oklch(27.1% 0.105 12.094)`}},Bs=[50,100,200,300,400,500,600,700,800,900,950];function Vs(e,t){return e in zs&&typeof zs[e]==`object`&&t in zs[e]?zs[e][t]:``}function Hs(e,t,n){let r=n?`${n}-`:``;return`${Bs.map(n=>`--ui-color-${e}-${n}: var(--${r}color-${t===`neutral`?`old-neutral`:t}-${n}, ${Vs(t,n)});`).join(`
|
|
3
3
|
`)}`}function Us(e,t){return`--ui-${e}: var(--ui-color-${e}-${t});`}function Ws(){document.querySelector(`[data-nuxt-ui-colors]`)?.remove()}var Gs=[ca,Co,wo,To,Do,Oo,ko,No,ks,Rs,o(()=>{let e=wn(),t=l(),n=P(()=>{let{neutral:t,...n}=e.ui.colors,r=e.ui.prefix;return`@layer theme {
|
|
4
4
|
:root, :host {
|
|
5
5
|
${Object.entries(e.ui.colors).map(([e,t])=>Hs(e,t,r)).join(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120775,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120776,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
|
package/assets/board/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120778,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
|
package/package.json
CHANGED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 「自动提交」:把这次交付整份提交进本地仓库(git add -A + git commit)。
|
|
4
|
+
*
|
|
5
|
+
* 只提交,不 push、不改任何文件内容。所以这里的全部力气都花在「别在错误的时机动手」:
|
|
6
|
+
* · 不是 git 仓库 / 分离头指针 / 正在合并、摘取、回滚、变基 / 工作区有冲突 → 拒绝并说清原因;
|
|
7
|
+
* · 工作区干净 → 拒绝,不造空提交;
|
|
8
|
+
* · 提交信息首行必须是 Conventional Commits(feat: / fix: / chore: …),非法时连 git add 都不做。
|
|
9
|
+
*
|
|
10
|
+
* 用法(CLI 调试;看板走 /api/agile/git/* 两个接口):
|
|
11
|
+
* node tools/git-commit.mjs status [目录]
|
|
12
|
+
* node tools/git-commit.mjs commit <信息文件|-> [目录]
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
15
|
+
import { resolve } from 'node:path';
|
|
16
|
+
import { execFileSync } from 'node:child_process';
|
|
17
|
+
import { pathToFileURL } from 'node:url';
|
|
18
|
+
|
|
19
|
+
const TIMEOUT = 30000;
|
|
20
|
+
const MAX_MESSAGE = 8000;
|
|
21
|
+
|
|
22
|
+
/** 首行:type(scope)!: 内容。`!` 留给破坏性变更 */
|
|
23
|
+
export const CONVENTIONAL_RE =
|
|
24
|
+
/^(feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)(\([^()\n]{1,32}\))?!?: \S/;
|
|
25
|
+
|
|
26
|
+
/** 这些文件还在,说明仓库卡在某个多步操作中间,这时候提交会把半截状态钉进历史 */
|
|
27
|
+
const IN_PROGRESS = [
|
|
28
|
+
['MERGE_HEAD', '正在合并(MERGE_HEAD 还在),先把冲突处理完再提交'],
|
|
29
|
+
['CHERRY_PICK_HEAD', '正在摘取提交(CHERRY_PICK_HEAD 还在),先处理完再提交'],
|
|
30
|
+
['REVERT_HEAD', '正在回滚提交(REVERT_HEAD 还在),先处理完再提交'],
|
|
31
|
+
['rebase-merge', '正在变基(rebase-merge 还在),先处理完再提交'],
|
|
32
|
+
['rebase-apply', '正在变基或应用补丁(rebase-apply 还在),先处理完再提交'],
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const CONFLICT_CODES = new Set(['DD', 'AU', 'UD', 'UA', 'DU', 'AA', 'UU']);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 统一走 execFileSync:参数按数组传,不经过 shell,中文路径也不被转义。
|
|
39
|
+
* (git 默认会把非 ASCII 路径写成 "\346\226\207" 这种转义,看板上读不了)
|
|
40
|
+
*/
|
|
41
|
+
const git = (root, args, opts = {}) =>
|
|
42
|
+
execFileSync('git', ['-c', 'core.quotepath=false', '-C', root, ...args], {
|
|
43
|
+
encoding: 'utf8',
|
|
44
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
45
|
+
timeout: TIMEOUT,
|
|
46
|
+
windowsHide: true,
|
|
47
|
+
...opts,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const stderrOf = e => String(e?.stderr ?? e?.message ?? '').trim();
|
|
51
|
+
|
|
52
|
+
const parseStatusLine = line => ({
|
|
53
|
+
code: line.slice(0, 2).trim(),
|
|
54
|
+
path: line.slice(3).replace(/^"(.*)"$/, '$1'),
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 提交前预览:这个目录能不能提交、提交了会带走哪些文件。
|
|
59
|
+
* 永远不抛错——看板要把它整个显示出来,包括「不是仓库」这种情况。
|
|
60
|
+
*/
|
|
61
|
+
export function commitPreview(root = process.cwd()) {
|
|
62
|
+
const dir = resolve(root);
|
|
63
|
+
const base = { root: dir, isRepo: false, branch: null, blocked: null, files: [], clean: true, conflicted: false };
|
|
64
|
+
|
|
65
|
+
let inside = '';
|
|
66
|
+
try {
|
|
67
|
+
inside = git(dir, ['rev-parse', '--is-inside-work-tree']).trim();
|
|
68
|
+
} catch {
|
|
69
|
+
return base;
|
|
70
|
+
}
|
|
71
|
+
if (inside !== 'true') return base;
|
|
72
|
+
|
|
73
|
+
let branch = null;
|
|
74
|
+
try {
|
|
75
|
+
branch = git(dir, ['rev-parse', '--abbrev-ref', 'HEAD']).trim() || null;
|
|
76
|
+
} catch {
|
|
77
|
+
// 空仓库还没有 HEAD:不算错误,首次提交照样能做
|
|
78
|
+
}
|
|
79
|
+
const detached = branch === 'HEAD';
|
|
80
|
+
|
|
81
|
+
let gitDir = '';
|
|
82
|
+
try {
|
|
83
|
+
gitDir = git(dir, ['rev-parse', '--absolute-git-dir']).trim();
|
|
84
|
+
} catch {}
|
|
85
|
+
|
|
86
|
+
let files = [];
|
|
87
|
+
try {
|
|
88
|
+
files = git(dir, ['status', '--porcelain=v1', '-uall'])
|
|
89
|
+
.split('\n')
|
|
90
|
+
.filter(Boolean)
|
|
91
|
+
.map(parseStatusLine);
|
|
92
|
+
} catch {
|
|
93
|
+
files = [];
|
|
94
|
+
}
|
|
95
|
+
const conflicted = files.some(f => CONFLICT_CODES.has(f.code));
|
|
96
|
+
|
|
97
|
+
const inProgress = gitDir ? IN_PROGRESS.find(([name]) => existsSync(resolve(gitDir, name))) : null;
|
|
98
|
+
let blocked = null;
|
|
99
|
+
if (inProgress) blocked = inProgress[1];
|
|
100
|
+
else if (detached) blocked = '当前是分离头指针(detached HEAD),在这里提交会丢,先切回分支';
|
|
101
|
+
else if (conflicted) blocked = '工作区里还有冲突(UU / AA / DD),先把冲突解决完再提交';
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
...base,
|
|
105
|
+
isRepo: true,
|
|
106
|
+
branch: detached ? null : branch,
|
|
107
|
+
blocked,
|
|
108
|
+
files,
|
|
109
|
+
clean: files.length === 0,
|
|
110
|
+
conflicted,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* 提交信息归一:CRLF → LF、去掉行尾空白、压掉连续空行。
|
|
116
|
+
* 首行必须符合 Conventional Commits,空信息直接拒——不然会写出一个没意义的提交。
|
|
117
|
+
*/
|
|
118
|
+
export function normalizeCommitMessage(message) {
|
|
119
|
+
const text = String(message ?? '')
|
|
120
|
+
.replace(/\r\n?/g, '\n')
|
|
121
|
+
.replace(/[ \t]+$/gm, '')
|
|
122
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
123
|
+
.trim();
|
|
124
|
+
if (!text) throw new Error('提交信息是空的:先在弹窗里看清这次改了什么');
|
|
125
|
+
const subject = text.split('\n')[0];
|
|
126
|
+
if (!CONVENTIONAL_RE.test(subject)) {
|
|
127
|
+
throw new Error(`提交信息首行要符合 Conventional Commits(形如 "feat: 一句话"),现在是「${subject.slice(0, 40)}」`);
|
|
128
|
+
}
|
|
129
|
+
if (text.length > MAX_MESSAGE) throw new Error(`提交信息太长了(${text.length} 字符,上限 ${MAX_MESSAGE}),删掉一些再提交`);
|
|
130
|
+
return text;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* 真提交:add -A → commit -F -(多行信息走 stdin,避开 shell 引号)→ 回短 hash。
|
|
135
|
+
* 任何一步失败都抛出人话,看板原样显示。
|
|
136
|
+
*/
|
|
137
|
+
export function commitAll(root = process.cwd(), message = '') {
|
|
138
|
+
const dir = resolve(root);
|
|
139
|
+
const text = normalizeCommitMessage(message);
|
|
140
|
+
|
|
141
|
+
const preview = commitPreview(dir);
|
|
142
|
+
if (!preview.isRepo) throw new Error('这个目录不是 git 仓库,没法自动提交(先 git init)');
|
|
143
|
+
if (preview.blocked) throw new Error(preview.blocked);
|
|
144
|
+
if (preview.clean) throw new Error('没有未提交的改动,不需要提交');
|
|
145
|
+
|
|
146
|
+
try {
|
|
147
|
+
git(dir, ['add', '-A']);
|
|
148
|
+
} catch (e) {
|
|
149
|
+
throw new Error(`git add 失败:${stderrOf(e) || '未知原因'}`);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
try {
|
|
153
|
+
git(dir, ['commit', '-F', '-'], { stdio: ['pipe', 'pipe', 'pipe'], input: text });
|
|
154
|
+
} catch (e) {
|
|
155
|
+
const err = stderrOf(e);
|
|
156
|
+
if (/who are you|auto-detect email|user\.name|user\.email/i.test(err)) {
|
|
157
|
+
throw new Error('git 还没配提交身份,先跑:git config user.name "你的名字"、git config user.email "你的邮箱"');
|
|
158
|
+
}
|
|
159
|
+
throw new Error(`git commit 失败:${err || '未知原因'}`);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const hash = git(dir, ['rev-parse', '--short', 'HEAD']).trim();
|
|
163
|
+
return {
|
|
164
|
+
hash,
|
|
165
|
+
subject: text.split('\n')[0],
|
|
166
|
+
branch: preview.branch,
|
|
167
|
+
files: preview.files.length,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function main() {
|
|
172
|
+
const [cmd, ...rest] = process.argv.slice(2);
|
|
173
|
+
const positional = rest.filter(a => !a.startsWith('--'));
|
|
174
|
+
|
|
175
|
+
if (cmd === 'status') {
|
|
176
|
+
const p = commitPreview(positional[0] ?? process.cwd());
|
|
177
|
+
if (!p.isRepo) {
|
|
178
|
+
console.log('· 不是 git 仓库(没法自动提交)');
|
|
179
|
+
process.exit(2);
|
|
180
|
+
}
|
|
181
|
+
console.log(`· 分支: ${p.branch ?? '(分离头指针)'}`);
|
|
182
|
+
console.log(`· 待提交: ${p.files.length} 个文件`);
|
|
183
|
+
for (const f of p.files) console.log(` ${f.code.padEnd(2)} ${f.path}`);
|
|
184
|
+
if (p.blocked) console.log(`· 现在不能提交: ${p.blocked}`);
|
|
185
|
+
process.exit(p.blocked ? 3 : 0);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (cmd === 'commit') {
|
|
189
|
+
const src = positional[0];
|
|
190
|
+
if (!src) {
|
|
191
|
+
console.error('用法: node tools/git-commit.mjs commit <信息文件|-> [目录]');
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
let message;
|
|
195
|
+
try {
|
|
196
|
+
message = src === '-' ? readFileSync(0, 'utf8') : readFileSync(resolve(src), 'utf8');
|
|
197
|
+
} catch (e) {
|
|
198
|
+
console.error(`✘ 读不到提交信息文件: ${e.message}`);
|
|
199
|
+
process.exit(3);
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
const r = commitAll(positional[1] ?? process.cwd(), message);
|
|
203
|
+
console.log(`✔ 已提交 ${r.hash} · ${r.files} 个文件 · 分支 ${r.branch ?? '(分离头指针)'}`);
|
|
204
|
+
return;
|
|
205
|
+
} catch (e) {
|
|
206
|
+
console.error(`✘ ${e.message}`);
|
|
207
|
+
process.exit(4);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
console.error('用法:\n node tools/git-commit.mjs status [目录]\n node tools/git-commit.mjs commit <信息文件|-> [目录]');
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const entry = process.argv[1] ? pathToFileURL(resolve(process.argv[1])).href : '';
|
|
216
|
+
if (entry && entry === import.meta.url) main();
|
package/tools/projects.mjs
CHANGED
|
@@ -7,6 +7,7 @@ import { randomBytes } from 'node:crypto';
|
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
8
|
import { createAgileTools } from './agile-tools.mjs';
|
|
9
9
|
import { checkLastChange, listLastChangeHistory, readLastChangeAt } from './last-change.mjs';
|
|
10
|
+
import { commitAll, commitPreview } from './git-commit.mjs';
|
|
10
11
|
|
|
11
12
|
const exec = promisify(execFile);
|
|
12
13
|
const validator = fileURLToPath(new URL('./validate.mjs', import.meta.url));
|
|
@@ -158,7 +159,13 @@ export function createProjects({ root, store = defaultStore, pick = pickDirector
|
|
|
158
159
|
tools.patch({ file: 'backlog', patches, reason: `看板卡片操作:${from} → ${to}` });
|
|
159
160
|
return { id, from, to };
|
|
160
161
|
};
|
|
161
|
-
|
|
162
|
+
/**
|
|
163
|
+
* 「自动提交」:提交信息由看板按交付记录生成后整份带上来,这里只负责执行。
|
|
164
|
+
* 生成器只有一份(apps/board/app/utils/commit-message.js)——复制按钮与自动提交用的是同一段文本,
|
|
165
|
+
* 不会出现「复制的和提交的不一样」。tools/ 不 import 看板源码,发布包里也就不用带 apps/。
|
|
166
|
+
*/
|
|
167
|
+
const commit = ({ message } = {}) => commitAll(current, message);
|
|
168
|
+
return { list, read, open, select, setStoryStatus, commit };
|
|
162
169
|
}
|
|
163
170
|
|
|
164
171
|
export async function handleProjectApi(projects, { method, path, headers, body }) {
|
|
@@ -178,12 +185,20 @@ export async function handleProjectApi(projects, { method, path, headers, body }
|
|
|
178
185
|
if (method === 'GET' && url.pathname === '/api/agile/last-change/revision') {
|
|
179
186
|
return { status: 200, body: readLastChangeAt(projects.list().root, url.searchParams.get('hash')) };
|
|
180
187
|
}
|
|
188
|
+
// 自动提交前的预览(能不能提交、会带走哪些文件):只读,同样不要 token
|
|
189
|
+
if (method === 'GET' && url.pathname === '/api/agile/git/status') {
|
|
190
|
+
return { status: 200, body: commitPreview(projects.list().root) };
|
|
191
|
+
}
|
|
181
192
|
if (method !== 'POST') return { status: 405, body: { error: '不支持的请求方法。' } };
|
|
182
193
|
if (headers['x-project-token'] !== projects.list().token) return denied();
|
|
183
194
|
// 看板卡片的退回 / 下一步 / 取消:改的是当前打开项目的 backlog.json
|
|
184
195
|
if (url.pathname === '/api/agile/story-status') {
|
|
185
196
|
return { status: 200, body: projects.setStoryStatus({ id: body?.id, action: body?.action }) };
|
|
186
197
|
}
|
|
198
|
+
// 自动提交:真跑 git add -A + git commit(不 push)
|
|
199
|
+
if (url.pathname === '/api/agile/git/commit') {
|
|
200
|
+
return { status: 200, body: projects.commit({ message: body?.message }) };
|
|
201
|
+
}
|
|
187
202
|
if (url.pathname === '/api/projects/select') return { status: 200, body: await projects.select() };
|
|
188
203
|
if (url.pathname === '/api/projects/open') {
|
|
189
204
|
if (!projects.list().recent.includes(body?.root)) throw new Error('该项目不在最近列表中,请选择文件夹。');
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{D as e,E as t,Ht as n,On as r,T as i,Zn as a,_ as o,b as s,bt as c,ct as l,er as ee,g as u,it as d,k as te,mt as f,o as p,qt as m,tr as h,tt as ne,u as re,v as g,vn as _,y as v}from"./DZo3dYLJ.js";import{w as y}from"./51OWHj8c.js";import{t as ie}from"./CJ2mz0WY.js";import{t as ae}from"./rlePnzpc.js";import{O as b,i as x,s as oe}from"#entry";var S={added:`新增`,updated:`状态变更`,removed:`移除`},C=`更新交付记录`,w=`变更`,T=e=>typeof e==`string`?e.replace(/\s+/g,` `).trim():``;function se(e){let t=Array.isArray(e?.changes)?e.changes:[],n=T(e?.title)||C,r=t.some(e=>e?.action===`added`)?`feat`:`chore`,i=[];for(let e of t){let t=T(e?.id);if(!t)continue;let n=T(e.title)||T(e.note),r=S[e.action]||T(e.action)||w;e.action===`updated`&&(T(e.from)||T(e.to))&&(r+=` ${T(e.from)||`—`} → ${T(e.to)||`—`}`),i.push(`- ${t}${n?` ${n}`:``}(${r})`)}return i.length?`${r}: ${n}\n\n${i.join(`
|
|
2
|
-
`)}`:`${r}: ${n}`}var ce={class:`rule-top`},le={class:`rule-ic`},ue={class:`rule-state`},de={class:`mono`},fe={key:0},pe={class:`rule-cases`},me={class:`case-when`},he={class:`case-then`},ge={key:1,class:`lc-hist-bar`},_e={class:`hist-badge`},ve={class:`hist-readonly mono`},ye=[`title`,`disabled`,`onClick`],be={key:2,class:`card lc-empty`},xe={class:`em-ic`},Se={key:3,class:`lc`},Ce={class:`lc-hero`},we={class:`hero-body`},Te={class:`hero-kicker`},Ee={class:`k-date mono`},De={key:0,class:`k-time mono`},Oe={key:1,class:`k-today`},ke=[`title`],Ae={class:`hero-title`},je={key:0,class:`hero-sum`},Me={class:`hero-meta`},Ne={class:`hero-aside`},Pe={class:`ring-in`},Fe={class:`lc-nav`,"aria-label":`分区导航`},Ie=[`href`,`onClick`],Le={class:`lc-nav-lb`},Re={class:`lc-nav-ct`},ze={id:`lc-changes`,class:`card sec`},Be={class:`s-hd`},Ve={class:`s-ic`},He={class:`s-count`},Ue={key:0,class:`sec-empty dim`},We={key:1,class:`tbl-wrap`},Ge={class:`tbl lc-tbl`},Ke={class:`ent`},qe={class:`ent-top`},Je={key:0,class:`ent-title`},Ye={key:0,class:`flow mono`},Xe={class:`fl`},Ze={class:`fl`},Qe={class:`cell-note`},$e={class:`chips`},et=[`title`],tt={key:0,class:`dim`},nt={class:`two`},rt={id:`lc-extras`,class:`card sec`},it={class:`s-hd`},at={class:`s-ic`},ot={class:`s-count`},st={class:`sec-bd lc-extras`},ct={key:0,class:`dim`},lt={class:`x-body`},ut={class:`x-title`},dt={key:0,class:`x-detail`},ft={key:1,class:`chips x-files`},pt=[`title`],mt={id:`lc-checks`,class:`card sec`},ht={class:`s-hd`},gt={class:`s-ic tone-mint`},_t={class:`s-count`},vt={class:`sec-bd lc-checks`},yt={key:0,class:`dim`},bt={class:`v-body`},xt={class:`v-what`},St={key:0,class:`v-detail`},Ct={key:0,id:`lc-access`,class:`card sec lc-access`},wt={class:`s-hd`},Tt={class:`s-ic tone-sky`},Et={class:`s-count`},Dt={class:`sec-bd acc-grid`},Ot={key:0,class:`acc-col`},kt={class:`u-head`},At=[`href`],jt={class:`u-label`},Mt=[`onClick`],Nt={class:`u-url mono`},Pt={key:0,class:`u-note`},Ft={key:1,class:`acc-col`},It={class:`a-head`},Lt={key:0,class:`a-role`},Rt={class:`a-user mono`},zt=[`onClick`],Bt={class:`a-line`},Vt={key:0,class:`a-pass mono`},Ht={key:1,class:`a-none dim`},Ut={key:0,class:`a-note`},Wt={key:1,id:`lc-prep`,class:`card sec lc-prep`},Gt={class:`s-hd`},Kt={class:`s-ic tone-amber`},qt={class:`s-count`},Jt={class:`steps`},Yt={class:`step-bd`},Xt={class:`step-text`},Zt={key:0,class:`cmd-row`},Qt={class:`cmd mono`},$t=[`onClick`],en={key:1,class:`step-note`},tn={id:`lc-scenarios`,class:`lc-sc-sec`},nn={class:`s-hd solo`},rn={class:`s-ic tone-mint`},an={class:`s-count`},on={key:0,class:`dim sec-empty`},sn={key:1,class:`lc-sc-grid`},cn={class:`sc-hd`},ln={class:`sc-id mono`},un={class:`sc-title`},dn={key:0,class:`sc-body`},fn={class:`lc-sc-steps`},pn={class:`sc-acc`},mn={class:`sc-acc-h`},hn={class:`sc-acc-t`},gn={key:0,class:`sc-foot`},_n={key:0},vn={key:1,class:`sc-ids`},yn={class:`two`},bn={id:`lc-notes`,class:`card sec`},xn={class:`s-hd`},Sn={class:`s-ic`},Cn={class:`s-count`},wn={class:`sec-bd`},Tn={key:0,class:`dim`},En={key:1,class:`lc-notes`},Dn={key:0,id:`lc-open`,class:`card sec sec-warn`},On={class:`s-hd`},kn={class:`s-ic`},An={class:`s-count`},jn={class:`sec-bd`},Mn={class:`lc-notes warn`},Nn={class:`lc-hist`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-hist-title`},Pn={class:`lc-hist-hd`},Fn={class:`lc-hist-hd-txt`},In={class:`lc-hist-sub`},Ln={key:0,class:`lc-hist-err`},Rn={key:1,class:`lc-hist-hint dim`},zn={key:2,class:`lc-hist-list`},Bn=[`disabled`,`onClick`],Vn={class:`hist-item-main`},Hn={class:`mono`},Un={class:`mono hist-item-hash`},Wn={key:0,class:`lc-hist-hint dim`},Gn={class:`lc-hist-ft`},E=x(te({__name:`last-change`,setup(te){let{lastChange:x,lastChangeGit:S}=oe(),C=_(null),w=u(()=>C.value?.doc?.lastChange??x.value),T=u(()=>S.value),E=_([]),D=_(!1),O=_(!1),k=_(``),A=_(!1),Kn=u(()=>C.value?[C.value]:[]);async function qn(){if(!O.value){O.value=!0,k.value=``;try{let e=await b(`/api/agile/last-change/history`);E.value=e.entries??[]}catch(e){k.value=e?.data?.error||e?.message||`读不到 git 历史`}finally{O.value=!1}}}async function j(){D.value=!0,E.value.length||await qn()}async function M(e){if(!A.value){A.value=!0,k.value=``;try{C.value=await b(`/api/agile/last-change/revision`,{query:{hash:e.hash}}),D.value=!1,window.scrollTo({top:0,behavior:`smooth`})}catch(e){k.value=e?.data?.error||e?.message||`取不到这个版本`}finally{A.value=!1}}}function Jn(){C.value=null,window.scrollTo({top:0,behavior:`smooth`})}let N=_(null);n(C,async()=>{await ne(),N.value?.querySelector(`.hist-tab.on`)?.scrollIntoView({inline:`nearest`,block:`nearest`})});function P(e){e.key===`Escape`&&D.value&&(D.value=!1)}l(()=>window.addEventListener(`keydown`,P)),d(()=>window.removeEventListener(`keydown`,P));let F={committed:{text:`已提交`,tone:`ok`},dirty:{text:`未提交改动`,tone:`warn`},untracked:{text:`未纳入版本库`,tone:`warn`},"no-git":{text:`非 git 仓库`,tone:`neutral`},missing:{text:`尚未生成`,tone:`neutral`}},I=u(()=>F[T.value?.state??`missing`]??F.missing),Yn=[{key:`committed`,when:`已提交`,then:`下次写入整份覆盖;上一版留在 git 历史里,点「查看历史」随时翻回来`},{key:`pending`,when:`未提交`,then:`下次写入合并:新交付接在旧记录后面,不冲掉还没入库的内容`}],Xn=u(()=>{let e=T.value?.state;return e===`committed`?`committed`:e===`dirty`||e===`untracked`||e===`no-git`?`pending`:``}),Zn=u(()=>(w.value?.mergedFrom?.length??0)+1),Qn=u(()=>(w.value?.mergedFrom??[]).map(e=>`${e.at??``} ${e.title??``}`.trim()).filter(Boolean).join(`
|
|
3
|
-
`)),$n={added:`新增`,updated:`状态变更`,removed:`移除`},er={story:`故事`,task:`任务`},tr={pass:`通过`,fail:`失败`,partial:`部分`,skipped:`未跑`},nr={pass:`i-lucide-check`,fail:`i-lucide-x`,partial:`i-lucide-minus`,skipped:`i-lucide-minus`},L=u(()=>w.value?.changes??[]),rr=u(()=>se(w.value??{})),R=u(()=>w.value?.extras??[]),z=u(()=>w.value?.verification??[]),B=u(()=>w.value?.scenarios??[]),V=u(()=>w.value?.preparation??[]),H=u(()=>w.value?.notes??[]),U=u(()=>w.value?.open??[]),W=u(()=>w.value?.access?.urls??[]),G=u(()=>w.value?.access?.accounts??[]),K=u(()=>z.value.filter(e=>e.result===`pass`).length),q=u(()=>z.value.length>0&&K.value===z.value.length),ir=u(()=>z.value.length?Math.round(K.value/z.value.length*100):0),ar=u(()=>[...new Set([...L.value.flatMap(e=>e.files??[]),...R.value.flatMap(e=>e.files??[])])]),or=e=>e.kind===`story`?e.id:e.id.replace(/-T\d+$/,``),sr=u(()=>[{id:`lc-changes`,label:`变更清单`,icon:`i-lucide-git-commit-horizontal`,count:`${L.value.length}`,tone:`violet`},{id:`lc-extras`,label:`额外做的事`,icon:`i-lucide-sparkles`,count:`${R.value.length}`,tone:`peach`},{id:`lc-checks`,label:`验证结果`,icon:`i-lucide-badge-check`,count:`${K.value}/${z.value.length}`,tone:`mint`},...W.value.length||G.value.length?[{id:`lc-access`,label:`调试入口与账号`,icon:`i-lucide-key-round`,count:`${W.value.length+G.value.length}`,tone:`sky`}]:[],...V.value.length?[{id:`lc-prep`,label:`测试前准备`,icon:`i-lucide-terminal-square`,count:`${V.value.length}`,tone:`amber`}]:[],{id:`lc-scenarios`,label:`测试场景`,icon:`i-lucide-flask-conical`,count:`${B.value.length}`,tone:`teal`},{id:`lc-notes`,label:`说明`,icon:`i-lucide-message-square-more`,count:`${H.value.length}`,tone:`slate`},...U.value.length?[{id:`lc-open`,label:`还没做的`,icon:`i-lucide-list-todo`,count:`${U.value.length}`,tone:`rose`}]:[]]);function J(e){let t=document.getElementById(e);t&&(t.scrollIntoView({behavior:`smooth`,block:`start`}),history.replaceState(null,``,`#${e}`))}let Y=new Date,cr=`${Y.getFullYear()}-${String(Y.getMonth()+1).padStart(2,`0`)}-${String(Y.getDate()).padStart(2,`0`)}`,X=u(()=>(w.value?.at??``).slice(0,10)),Z=u(()=>{let e=(w.value?.at??``).slice(10).replace(/^[T ]/,``);return/^\d{2}:\d{2}/.test(e)?e:``}),lr=u(()=>!!X.value&&X.value===cr),Q=_(``);async function $(e,t){try{await navigator.clipboard.writeText(e),Q.value=t,setTimeout(()=>{Q.value===t&&(Q.value=``)},1600)}catch{Q.value=``}}return(n,l)=>{let u=ae,d=ie;return f(),s(p,null,[r(C)?(f(),s(`div`,ge,[o(`span`,_e,[e(u,{name:`i-lucide-history`,class:`hist-badge-ic`}),l[8]||=t(`历史版本`,-1)]),o(`span`,ve,[t(`只读 · `+h(r(C).short),1),r(C).date?(f(),s(p,{key:0},[t(` · `+h(r(C).date),1)],64)):v(``,!0)]),o(`div`,{ref_key:`tabsRef`,ref:N,class:`lc-hist-tabs`},[o(`button`,{class:`hist-tab`,onClick:Jn},`最新`),(f(!0),s(p,null,c(r(Kn),e=>(f(),s(`button`,{key:e.hash,class:a([`hist-tab`,{on:r(C)?.hash===e.hash}]),title:`${e.date} ${e.subject??``}`,disabled:r(A),onClick:t=>M(e)},[t(h(e.short),1),o(`i`,null,h(e.date.slice(5,16)),1)],10,ye))),128))],512),o(`button`,{class:`rule-btn`,onClick:j},[e(u,{name:`i-lucide-list`,class:`rule-btn-ic`}),l[9]||=t(`选择历史…`,-1)])])):(f(),s(`div`,{key:0,class:a([`lc-rule`,`is-${r(I).tone}`])},[o(`div`,ce,[o(`span`,le,[e(u,{name:`i-lucide-git-branch`,class:`rule-svg`})]),l[6]||=o(`b`,{class:`rule-title`},`写入规则`,-1),l[7]||=o(`span`,{class:`rule-file mono`},`agile/last-change.json`,-1),o(`span`,ue,[o(`i`,{class:a([`rule-dot`,`tone-${r(I).tone}`])},null,2),t(` 当前 `+h(r(I).text),1),r(T)?.state===`committed`&&r(T).hash?(f(),s(p,{key:0},[l[4]||=t(` · `,-1),o(`span`,de,h(r(T).hash),1)],64)):v(``,!0)]),o(`button`,{class:`rule-btn`,onClick:j},[e(u,{name:`i-lucide-history`,class:`rule-btn-ic`}),l[5]||=t(`查看历史 `,-1),r(E).length?(f(),s(`i`,fe,h(r(E).length),1)):v(``,!0)])]),o(`ul`,pe,[(f(),s(p,null,c(Yn,t=>o(`li`,{key:t.key,class:a([`rule-case`,{on:r(Xn)===t.key}])},[o(`span`,me,h(t.when),1),e(u,{name:`i-lucide-arrow-right`,class:`case-arrow`}),o(`span`,he,h(t.then),1)],2)),64))])],2)),r(w)?(f(),s(`div`,Se,[o(`header`,Ce,[o(`div`,we,[o(`p`,Te,[l[11]||=o(`span`,{class:`k-dot`},null,-1),l[12]||=t(`最近一次交付 `,-1),l[13]||=o(`span`,{class:`k-sep`},null,-1),o(`span`,Ee,h(r(X)),1),r(Z)?(f(),s(`span`,De,h(r(Z)),1)):v(``,!0),r(lr)?(f(),s(`span`,Oe,`今天`)):v(``,!0),r(w).merged?(f(),s(`span`,{key:2,class:`k-merged`,title:r(Qn)},`合并记录 · `+h(r(Zn))+` 次交付`,9,ke)):v(``,!0)]),o(`h2`,Ae,h(r(w).title),1),r(w).summary?(f(),s(`p`,je,h(r(w).summary),1)):v(``,!0),o(`div`,Me,[o(`span`,null,[o(`b`,null,h(r(L).length),1),l[14]||=t(` 处变更`,-1)]),l[19]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(ar).length),1),l[15]||=t(` 个文件`,-1)]),l[20]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(B).length),1),l[16]||=t(` 条测试场景`,-1)]),r(R).length?(f(),s(p,{key:0},[l[18]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(R).length),1),l[17]||=t(` 项额外工作`,-1)])],64)):v(``,!0)])]),o(`div`,Ne,[o(`div`,{class:a([`ring`,{warn:r(z).length&&!r(q)}]),style:ee({"--pct":r(ir)})},[o(`div`,Pe,[o(`b`,null,[t(h(r(K)),1),o(`small`,null,`/`+h(r(z).length||0),1)]),o(`span`,null,h(r(z).length?r(q)?`验证全通过`:`有未通过项`:`无验证记录`),1)])],6)])]),o(`nav`,Fe,[(f(!0),s(p,null,c(r(sr),t=>(f(),s(`a`,{key:t.id,class:a([`lc-nav-link`,`tone-${t.tone}`]),href:`#${t.id}`,onClick:y(e=>J(t.id),[`prevent`])},[e(u,{name:t.icon,class:`lc-nav-ic`},null,8,[`name`]),o(`span`,Le,h(t.label),1),o(`b`,Re,h(t.count),1)],10,Ie))),128))]),o(`section`,ze,[o(`div`,Be,[o(`span`,Ve,[e(u,{name:`i-lucide-git-commit-horizontal`,class:`s-svg`})]),l[21]||=o(`h2`,{class:`s-title`},`变更清单`,-1),o(`span`,He,h(r(L).length),1),l[22]||=o(`span`,{class:`s-hint`},`故事与任务各自是新增还是状态变更、动过哪些文件`,-1),r(L).length?(f(),s(`button`,{key:0,class:a([`rule-btn s-copy`,{ok:r(Q)===`commit`}]),title:`按 Conventional Commits 生成:首行是标题,正文每条变更带编号与名称`,onClick:l[0]||=e=>$(r(rr),`commit`)},[e(u,{name:r(Q)===`commit`?`i-lucide-check`:`i-lucide-clipboard-copy`,class:`rule-btn-ic`},null,8,[`name`]),t(` `+h(r(Q)===`commit`?`已复制`:`复制变更信息`),1)],2)):v(``,!0)]),r(L).length?(f(),s(`div`,We,[o(`table`,Ge,[l[24]||=o(`colgroup`,null,[o(`col`,{class:`c-ent`}),o(`col`,{class:`c-act`}),o(`col`),o(`col`,{class:`c-file`})],-1),l[25]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`条目`),o(`th`,null,`变更`),o(`th`,null,`变更内容`),o(`th`,null,`涉及文件`)])],-1),o(`tbody`,null,[(f(!0),s(p,null,c(r(L),(n,r)=>(f(),s(`tr`,{key:`${n.kind}-${n.id}-${r}`},[o(`td`,null,[o(`div`,Ke,[o(`div`,qe,[o(`span`,{class:a([`kind`,`kind-${n.kind}`])},h(er[n.kind]??n.kind),3),e(d,{to:`/story/${or(n)}`,class:`ent-id mono`},{default:m(()=>[t(h(n.id),1)]),_:2},1032,[`to`])]),n.title?(f(),s(`p`,Je,h(n.title),1)):v(``,!0)])]),o(`td`,null,[o(`span`,{class:a([`act`,`act-${n.action}`])},h($n[n.action]??n.action),3),n.from||n.to?(f(),s(`p`,Ye,[o(`span`,Xe,h(n.from??`—`),1),l[23]||=o(`i`,null,`→`,-1),o(`span`,Ze,h(n.to??`—`),1)])):v(``,!0)]),o(`td`,Qe,h(n.note??`—`),1),o(`td`,null,[o(`div`,$e,[(f(!0),s(p,null,c(n.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},h(e),9,et))),128)),n.files?.length?v(``,!0):(f(),s(`span`,tt,`—`))])])]))),128))])])])):(f(),s(`p`,Ue,`这次没有涉及任何故事或任务。`))]),o(`div`,nt,[o(`section`,rt,[o(`div`,it,[o(`span`,at,[e(u,{name:`i-lucide-sparkles`,class:`s-svg`})]),l[26]||=o(`h2`,{class:`s-title`},`额外做的事`,-1),o(`span`,ot,h(r(R).length),1)]),o(`div`,st,[r(R).length?v(``,!0):(f(),s(`p`,ct,`没有计划外的改动。`)),(f(!0),s(p,null,c(r(R),(e,t)=>(f(),s(`article`,{key:t,class:`x-item`},[l[27]||=o(`span`,{class:`x-mark`},null,-1),o(`div`,lt,[o(`p`,ut,h(e.title),1),e.detail?(f(),s(`p`,dt,h(e.detail),1)):v(``,!0),e.files?.length?(f(),s(`div`,ft,[(f(!0),s(p,null,c(e.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},h(e),9,pt))),128))])):v(``,!0)])]))),128))])]),o(`section`,mt,[o(`div`,ht,[o(`span`,gt,[e(u,{name:`i-lucide-badge-check`,class:`s-svg`})]),l[28]||=o(`h2`,{class:`s-title`},`验证结果`,-1),o(`span`,_t,h(r(K))+`/`+h(r(z).length),1)]),o(`div`,vt,[r(z).length?v(``,!0):(f(),s(`p`,yt,`这次没有留下验证记录。`)),(f(!0),s(p,null,c(r(z),(t,n)=>(f(),s(`div`,{key:n,class:`v-item`},[o(`span`,{class:a([`v-ic`,`v-${t.result}`])},[e(u,{name:nr[t.result]??`i-lucide-circle`,class:`v-svg`},null,8,[`name`])],2),o(`div`,bt,[o(`p`,xt,h(t.what),1),t.detail?(f(),s(`p`,St,h(t.detail),1)):v(``,!0)]),o(`span`,{class:a([`v-res`,`v-${t.result}`])},h(tr[t.result]??t.result),3)]))),128))])])]),r(W).length||r(G).length?(f(),s(`section`,Ct,[o(`div`,wt,[o(`span`,Tt,[e(u,{name:`i-lucide-key-round`,class:`s-svg`})]),l[29]||=o(`h2`,{class:`s-title`},`调试入口与账号`,-1),o(`span`,Et,h(r(W).length+r(G).length),1),l[30]||=o(`span`,{class:`s-hint`},`照着这一栏就能自己跑起来点一遍`,-1)]),o(`div`,Dt,[r(W).length?(f(),s(`div`,Ot,[l[31]||=o(`p`,{class:`micro`},`访问地址`,-1),(f(!0),s(p,null,c(r(W),(n,i)=>(f(),s(`div`,{key:i,class:`u-item`},[o(`div`,kt,[o(`a`,{href:n.url,target:`_blank`,rel:`noreferrer`,class:`u-link`},[o(`span`,jt,h(n.label??`入口`),1),e(u,{name:`i-lucide-arrow-up-right`,class:`u-go`})],8,At),o(`button`,{class:a([`cpy`,{ok:r(Q)===`url-${i}`}]),onClick:e=>$(n.url,`url-${i}`)},[e(u,{name:r(Q)===`url-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+h(r(Q)===`url-${i}`?`已复制`:`复制`),1)],10,Mt)]),o(`p`,Nt,h(n.url),1),n.note?(f(),s(`p`,Pt,h(n.note),1)):v(``,!0)]))),128))])):v(``,!0),r(G).length?(f(),s(`div`,Ft,[l[33]||=o(`p`,{class:`micro`},`账号密码`,-1),(f(!0),s(p,null,c(r(G),(n,i)=>(f(),s(`div`,{key:i,class:`a-item`},[o(`div`,It,[n.role?(f(),s(`span`,Lt,h(n.role),1)):v(``,!0),o(`span`,Rt,h(n.username),1),o(`button`,{class:a([`cpy`,{ok:r(Q)===`acc-${i}`}]),onClick:e=>$(n.password?`账号:${n.username}\n密码:${n.password}`:n.username,`acc-${i}`)},[e(u,{name:r(Q)===`acc-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+h(r(Q)===`acc-${i}`?`已复制`:`复制`),1)],10,zt)]),o(`div`,Bt,[l[32]||=o(`span`,{class:`a-key`},`密码`,-1),n.password?(f(),s(`span`,Vt,h(n.password),1)):(f(),s(`span`,Ht,`无密码 / 走单点登录`))]),n.note?(f(),s(`p`,Ut,h(n.note),1)):v(``,!0)]))),128))])):v(``,!0)])])):v(``,!0),r(V).length?(f(),s(`section`,Wt,[o(`div`,Gt,[o(`span`,Kt,[e(u,{name:`i-lucide-terminal-square`,class:`s-svg`})]),l[34]||=o(`h2`,{class:`s-title`},`测试前准备`,-1),o(`span`,qt,h(r(V).length),1),l[35]||=o(`span`,{class:`s-hint`},`按顺序做完这些再开始点,命令可直接复制`,-1)]),o(`ol`,Jt,[(f(!0),s(p,null,c(r(V),(n,i)=>(f(),s(`li`,{key:i},[o(`div`,Yt,[o(`p`,Xt,h(n.step),1),n.command?(f(),s(`div`,Zt,[o(`code`,Qt,h(n.command),1),o(`button`,{class:a([`cpy`,{ok:r(Q)===`cmd-${i}`}]),onClick:e=>$(n.command??``,`cmd-${i}`)},[e(u,{name:r(Q)===`cmd-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+h(r(Q)===`cmd-${i}`?`已复制`:`复制`),1)],10,$t)])):v(``,!0),n.note?(f(),s(`p`,en,h(n.note),1)):v(``,!0)])]))),128))])])):v(``,!0),o(`section`,tn,[o(`div`,nn,[o(`span`,rn,[e(u,{name:`i-lucide-flask-conical`,class:`s-svg`})]),l[36]||=o(`h2`,{class:`s-title`},`测试场景`,-1),o(`span`,an,h(r(B).length),1),l[37]||=o(`span`,{class:`s-hint`},`一条一段:照着步骤走,末尾那句就是验收标准`,-1)]),r(B).length?(f(),s(`div`,sn,[(f(!0),s(p,null,c(r(B),(n,r)=>(f(),s(`article`,{key:n.id??r,class:`sc lc-sc`},[o(`header`,cn,[o(`span`,ln,h(n.id??`TC-${r+1}`),1),o(`h3`,un,h(n.title),1)]),n.steps?.length?(f(),s(`div`,dn,[l[38]||=o(`p`,{class:`micro`},`测试步骤`,-1),o(`ol`,fn,[(f(!0),s(p,null,c(n.steps,(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])])):v(``,!0),o(`div`,pn,[o(`p`,mn,[e(u,{name:`i-lucide-badge-check`,class:`sc-acc-ic`}),l[39]||=t(`验收标准`,-1)]),o(`p`,hn,h(n.expect),1),n.acceptance||n.storyIds?.length?(f(),s(`div`,gn,[n.acceptance?(f(),s(`span`,_n,`对应验收:`+h(n.acceptance),1)):v(``,!0),n.storyIds?.length?(f(),s(`span`,vn,[(f(!0),s(p,null,c(n.storyIds,e=>(f(),g(d,{key:e,to:`/story/${e}`,class:`ent-id mono`},{default:m(()=>[t(h(e),1)]),_:2},1032,[`to`]))),128))])):v(``,!0)])):v(``,!0)])]))),128))])):(f(),s(`p`,on,`这次没有单独列测试场景。`))]),o(`div`,yn,[o(`section`,bn,[o(`div`,xn,[o(`span`,Sn,[e(u,{name:`i-lucide-message-square-more`,class:`s-svg`})]),l[40]||=o(`h2`,{class:`s-title`},`说明`,-1),o(`span`,Cn,h(r(H).length),1)]),o(`div`,wn,[r(H).length?(f(),s(`ul`,En,[(f(!0),s(p,null,c(r(H),(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])):(f(),s(`p`,Tn,`没有额外说明。`))])]),r(U).length?(f(),s(`section`,Dn,[o(`div`,On,[o(`span`,kn,[e(u,{name:`i-lucide-list-todo`,class:`s-svg`})]),l[41]||=o(`h2`,{class:`s-title`},`还没做的`,-1),o(`span`,An,h(r(U).length),1)]),o(`div`,jn,[o(`ul`,Mn,[(f(!0),s(p,null,c(r(U),(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])])])):v(``,!0)])])):(f(),s(`div`,be,[o(`span`,xe,[e(u,{name:`i-lucide-clipboard-list`,class:`em-svg`})]),l[10]||=i(`<h2 class="em-title" data-v-0bbfea97>还没有交付记录</h2><p class="em-sub" data-v-0bbfea97> 每完成一项功能,AI 都要把「改了哪些故事与任务、额外做了什么、验了什么、怎么测」 写进下面这个文件,这一页就会自动排出来。 </p><p class="em-path mono" data-v-0bbfea97>agile/last-change.json</p><p class="em-note" data-v-0bbfea97> 每次只保留最近一次(覆盖写,不追加)· 格式见 <span class="mono" data-v-0bbfea97>.agents/skills/scrum-planning/references/schema.md</span> 第 4 节 </p>`,4)])),(f(),g(re,{to:`body`},[r(D)?(f(),s(`div`,{key:0,class:`lc-hist-mask`,onClick:l[3]||=y(e=>D.value=!1,[`self`])},[o(`div`,Nn,[o(`header`,Pn,[o(`div`,Fn,[l[45]||=o(`h3`,{id:`lc-hist-title`,class:`lc-hist-title`},`历史版本`,-1),o(`p`,In,[l[42]||=t(` 从 git 里读 `,-1),l[43]||=o(`span`,{class:`mono`},`agile/last-change.json`,-1),l[44]||=t(` 的提交记录 `,-1),r(E).length?(f(),s(p,{key:0},[t(`· 共 `+h(r(E).length)+` 版`,1)],64)):v(``,!0)])]),o(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,onClick:l[1]||=e=>D.value=!1},[e(u,{name:`i-lucide-x`,class:`lc-hist-x-ic`})])]),r(k)?(f(),s(`p`,Ln,h(r(k)),1)):r(O)?(f(),s(`div`,Rn,`正在读 git 历史…`)):(f(),s(`div`,zn,[(f(!0),s(p,null,c(r(E),(e,t)=>(f(),s(`button`,{key:e.hash,class:a([`hist-item`,{on:r(C)?.hash===e.hash}]),disabled:r(A),onClick:t=>M(e)},[o(`span`,{class:a([`hist-item-dot`,{live:t===0}])},null,2),o(`span`,Vn,[o(`b`,null,h(e.subject||`(没有提交说明)`),1),o(`i`,Hn,h(e.date),1)]),o(`span`,Un,h(e.short),1)],10,Bn))),128)),r(E).length?v(``,!0):(f(),s(`p`,Wn,` 这个文件还没有提交记录 —— 先 commit 一次,历史里才会出现版本。 `))])),o(`footer`,Gn,[l[46]||=o(`span`,{class:`dim`},`选一个版本即可在页面上只读查看,不会改动文件。`,-1),o(`button`,{class:`hist-close`,onClick:l[2]||=e=>D.value=!1},`关闭`)])])])):v(``,!0)]))],64)}}}),[[`__scopeId`,`data-v-0bbfea97`]]);export{E as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"d7f0931f-32b3-4c23-b05f-7cbf5851b226","timestamp":1793369473533,"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.lc[data-v-0bbfea97]{gap:14px;display:grid}.lc [id^=lc-][data-v-0bbfea97]{scroll-margin-top:14px}.lc-nav[data-v-0bbfea97]{flex-wrap:wrap;gap:6px;padding:0 2px;display:flex}.lc-nav-link[data-v-0bbfea97]{border:1px solid var(--nv-line,var(--line));background:var(--nv-bg,#fff);height:28px;color:var(--nv-ink,var(--ink-3));border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:11.4px;font-weight:580;transition:box-shadow .16s,transform .16s;display:inline-flex}.lc-nav-link.tone-violet[data-v-0bbfea97]{--nv-bg:var(--violet-soft);--nv-line:var(--violet-line);--nv-ink:var(--violet-ink)}.lc-nav-link.tone-peach[data-v-0bbfea97]{--nv-bg:var(--peach);--nv-line:var(--peach-line);--nv-ink:#a5382f}.lc-nav-link.tone-mint[data-v-0bbfea97]{--nv-bg:#f0fbdf;--nv-line:#dcf0bb;--nv-ink:#4f6f24}.lc-nav-link.tone-sky[data-v-0bbfea97]{--nv-bg:#eef5fd;--nv-line:var(--sky-line);--nv-ink:#2c5f96}.lc-nav-link.tone-amber[data-v-0bbfea97]{--nv-bg:#fdf4e2;--nv-line:var(--amber-line);--nv-ink:#8a6116}.lc-nav-link.tone-teal[data-v-0bbfea97]{--nv-bg:#e4f6f3;--nv-line:#bce5de;--nv-ink:#1f6f63}.lc-nav-link.tone-slate[data-v-0bbfea97]{--nv-bg:var(--sunken);--nv-line:var(--line-2);--nv-ink:var(--ink-2)}.lc-nav-link.tone-rose[data-v-0bbfea97]{--nv-bg:#fdeceb;--nv-line:var(--rose-line);--nv-ink:#b23a4b}.lc-nav-link[data-v-0bbfea97]:hover{box-shadow:0 7px 16px -12px var(--nv-ink,#8a8a8a);transform:translateY(-1px)}.lc-nav-ic[data-v-0bbfea97]{opacity:.72;flex:none;width:13px;height:13px}.act[data-v-0bbfea97],.ent-id[data-v-0bbfea97],.fchip[data-v-0bbfea97],.fl[data-v-0bbfea97],.lc-nav-lb[data-v-0bbfea97],.ring-in span[data-v-0bbfea97],.rule-state[data-v-0bbfea97],.s-title[data-v-0bbfea97],.u-url[data-v-0bbfea97]{white-space:nowrap}.lc-nav-ct[data-v-0bbfea97]{min-width:16px;color:inherit;text-align:center;font-variant-numeric:tabular-nums;background:#ffffffd1;border-radius:999px;flex:none;padding:0 5px;font-size:9.6px;font-weight:700;line-height:15px}.lc-nav-link:hover .lc-nav-ct[data-v-0bbfea97]{background:#fff}.lc-rule[data-v-0bbfea97]{border:1px solid var(--line);box-shadow:var(--shadow-1);background:linear-gradient(#fbfaff,#fff);border-radius:14px;gap:7px;margin-bottom:14px;padding:10px 13px 11px;display:grid}.rule-top[data-v-0bbfea97]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rule-ic[data-v-0bbfea97]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.rule-svg[data-v-0bbfea97]{width:14px;height:14px}.rule-title[data-v-0bbfea97]{letter-spacing:.01em;color:var(--ink);font-size:12px;font-weight:680}.rule-file[data-v-0bbfea97]{color:var(--ink-4);font-size:10px}.rule-state[data-v-0bbfea97]{border:1px solid var(--line-2);height:22px;color:var(--ink-2);background:#fff;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:0 9px;font-size:10.4px;font-weight:640;display:inline-flex}.rule-state .mono[data-v-0bbfea97]{color:var(--ink-3);font-size:9.8px;font-weight:560}.rule-dot[data-v-0bbfea97]{background:var(--ink-4);border-radius:999px;flex:none;width:6px;height:6px}.rule-dot.tone-ok[data-v-0bbfea97]{background:#74a53c;box-shadow:0 0 0 3px #74a53c24}.rule-dot.tone-warn[data-v-0bbfea97]{background:#d79a2b;box-shadow:0 0 0 3px #d79a2b24}.rule-dot.tone-neutral[data-v-0bbfea97]{background:#b3b1aa;box-shadow:0 0 0 3px #b3b1aa24}.rule-cases[data-v-0bbfea97]{gap:3px;margin:0;padding:0;list-style:none;display:grid}.rule-case[data-v-0bbfea97]{color:var(--ink-3);border:1px solid #0000;border-radius:9px;align-items:baseline;gap:7px;padding:4px 9px;font-size:11.2px;line-height:1.55;display:flex}.rule-case.on[data-v-0bbfea97]{color:var(--ink-2);background:var(--sunken)}.case-when[data-v-0bbfea97]{flex:none;min-width:40px;font-weight:680}.rule-case.on .case-when[data-v-0bbfea97]{color:var(--ink)}.case-arrow[data-v-0bbfea97]{width:11px;height:11px;color:var(--ink-4);flex:none;align-self:center}.rule-case.on .case-arrow[data-v-0bbfea97]{color:var(--ink-3)}.case-then[data-v-0bbfea97],.hero-body[data-v-0bbfea97],.two[data-v-0bbfea97]>*{min-width:0}.is-ok .rule-ic[data-v-0bbfea97]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.is-ok .rule-case.on[data-v-0bbfea97]{background:#f4fbea;border-color:#dcf0bb}.is-warn .rule-ic[data-v-0bbfea97]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.is-warn .rule-case.on[data-v-0bbfea97]{background:#fdf6e8;border-color:#f3e2b8}.sec[data-v-0bbfea97]{border-radius:20px;overflow:hidden}.two[data-v-0bbfea97]{flex-wrap:wrap;align-items:stretch;gap:14px;display:flex}.two[data-v-0bbfea97]>*{flex:336px}.s-hd[data-v-0bbfea97]{align-items:center;gap:9px;padding:13px 18px 12px;display:flex}.s-hd.solo[data-v-0bbfea97]{padding:2px 2px 0}.s-ic[data-v-0bbfea97]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.s-ic.tone-mint[data-v-0bbfea97]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.s-ic.tone-amber[data-v-0bbfea97]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.s-ic.tone-sky[data-v-0bbfea97]{color:#2c5f96;background:#eef5fd;border-color:#d7e6f9}.s-svg[data-v-0bbfea97]{width:14px;height:14px}.s-title[data-v-0bbfea97]{letter-spacing:-.012em;font-size:14px;font-weight:650}.s-count[data-v-0bbfea97]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:999px;flex:none;padding:0 6px;font-size:10px;font-weight:660;line-height:16px}.s-hint[data-v-0bbfea97]{color:var(--ink-4);text-align:right;margin-left:auto;font-size:11px}.s-copy[data-v-0bbfea97]{margin-left:2px}.s-copy.ok[data-v-0bbfea97]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.sec-bd[data-v-0bbfea97],.sec-empty[data-v-0bbfea97]{padding:0 18px 16px}.sec-empty[data-v-0bbfea97]{font-size:12px}.micro[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.6px;font-weight:660}.lc-hero[data-v-0bbfea97]{isolation:isolate;background:radial-gradient(120% 150% at 0 0,#fdfbff,#fff0 52%),radial-gradient(100% 140% at 100% 110%,#ece1ff,#ece1ff00 60%),linear-gradient(152deg,#f8f4ff,#f1eaff 64%,#faf7ff);border:1px solid #e6dcfb;border-radius:24px;align-items:center;gap:26px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.lc-hero[data-v-0bbfea97]:after{content:"";filter:blur(6px);z-index:-1;background:radial-gradient(circle,#8b68f229,#8b68f200 70%);border-radius:50%;width:240px;height:240px;position:absolute;bottom:-90px;right:-70px}.hero-body[data-v-0bbfea97]{flex:1}.hero-kicker[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:#7a63b8;align-items:center;gap:8px;font-size:10px;font-weight:680;display:flex}.k-dot[data-v-0bbfea97]{background:var(--violet);border-radius:999px;width:6px;height:6px;box-shadow:0 0 0 3px #6d4ff024}.k-sep[data-v-0bbfea97]{background:#dbd0f6;width:1px;height:10px}.k-date[data-v-0bbfea97]{text-transform:none;color:#6f5aa8;font-size:10.6px;font-weight:600}.k-date[data-v-0bbfea97],.k-time[data-v-0bbfea97]{letter-spacing:.02em}.k-time[data-v-0bbfea97]{color:var(--ink-3);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:10.4px;font-weight:620;display:inline-flex}.k-time[data-v-0bbfea97]:before{content:"";background:#c9bce6;border-radius:999px;width:3px;height:3px}.k-today[data-v-0bbfea97]{border:1px solid var(--violet-line);letter-spacing:.06em;color:var(--violet-ink);background:#fff}.k-merged[data-v-0bbfea97],.k-today[data-v-0bbfea97]{border-radius:999px;padding:0 6px;font-size:9.4px;line-height:15px}.k-merged[data-v-0bbfea97]{color:#8a6116;letter-spacing:.03em;text-transform:none;cursor:help;background:#fdf4e2;border:1px solid #f3e2b8}.hero-title[data-v-0bbfea97]{letter-spacing:-.026em;color:#241b3f;margin:9px 0 0;font-size:21px;font-weight:665;line-height:1.34}.hero-sum[data-v-0bbfea97]{color:#574c72;max-width:92ch;margin-top:7px;font-size:12.8px;line-height:1.68}.hero-meta[data-v-0bbfea97]{color:#6b5f85;flex-wrap:wrap;align-items:center;gap:11px;margin-top:13px;font-size:11.4px;display:flex}.hero-meta b[data-v-0bbfea97]{color:#2c2246;margin-right:2px;font-weight:690}.meta-sep[data-v-0bbfea97]{background:#c3b4e2;border-radius:999px;width:3px;height:3px}.hero-aside[data-v-0bbfea97]{flex:none;justify-items:center;display:grid}.ring[data-v-0bbfea97]{--pct:0;background:conic-gradient(from -90deg,#7f5cf2 calc(var(--pct) * 1%),#e7dffa 0);border-radius:50%;place-items:center;width:98px;height:98px;display:grid;box-shadow:0 10px 26px -18px #5836ba8c}.ring.warn[data-v-0bbfea97]{background:conic-gradient(from -90deg,#dfa437 calc(var(--pct) * 1%),#f4e8d2 0)}.ring-in[data-v-0bbfea97]{text-align:center;background:#fff;border-radius:50%;place-content:center;gap:1px;width:78px;height:78px;display:grid}.ring-in b[data-v-0bbfea97]{letter-spacing:-.03em;color:#2a1f47;font-size:17px;font-weight:680;line-height:1.15}.ring-in b small[data-v-0bbfea97]{letter-spacing:0;color:var(--ink-4);font-size:10.5px;font-weight:600}.ring-in span[data-v-0bbfea97]{letter-spacing:.04em;color:var(--ink-3);font-size:9.2px}.tbl-wrap[data-v-0bbfea97]{padding:0 8px 8px;overflow-x:auto}.lc-tbl[data-v-0bbfea97]{min-width:640px}.lc-tbl .c-ent[data-v-0bbfea97]{width:246px}.lc-tbl .c-act[data-v-0bbfea97]{width:92px}.lc-tbl .c-file[data-v-0bbfea97]{width:218px}.lc-tbl thead th[data-v-0bbfea97]{border-bottom:1px solid var(--line);letter-spacing:.1em;padding:6px 12px 8px;font-size:9.4px;font-weight:660}.lc-tbl tbody tr[data-v-0bbfea97]{cursor:default}.lc-tbl tbody td[data-v-0bbfea97]{border-top:0;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 12px 12px}.lc-tbl tbody tr:last-child td[data-v-0bbfea97]{border-bottom:0}.lc-tbl tbody tr:hover td[data-v-0bbfea97]{background:#fbfaff}.ent-top[data-v-0bbfea97]{align-items:center;gap:6px;display:flex}.kind[data-v-0bbfea97]{letter-spacing:.03em;border-radius:5px;flex:none;padding:0 5px;font-size:9.4px;font-weight:680;line-height:15px}.kind-story[data-v-0bbfea97]{color:#5433cf;background:#efe9fe}.kind-task[data-v-0bbfea97]{color:#6b6f77;background:#f1f1ee}.ent-id[data-v-0bbfea97]{color:#6d5aa8;font-size:10.6px}.ent-id[data-v-0bbfea97]:hover{color:var(--violet-ink);text-underline-offset:2px;text-decoration:underline}.ent-title[data-v-0bbfea97]{color:var(--ink);margin-top:4px;font-size:12.5px;font-weight:590;line-height:1.5}.act[data-v-0bbfea97]{border-radius:999px;padding:0 7px;font-size:10px;font-weight:660;line-height:17px;display:inline-block}.act-added[data-v-0bbfea97]{color:#46742a;background:#e9f8dd}.act-updated[data-v-0bbfea97]{color:#2a5f9e;background:#e8f1fd}.act-removed[data-v-0bbfea97]{color:#a83a32;background:#fdeae9}.flow[data-v-0bbfea97]{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:3px;margin-top:5px;font-size:10px;line-height:1.4;display:flex}.flow i[data-v-0bbfea97]{color:var(--ink-4);font-style:normal}.cell-note[data-v-0bbfea97]{color:var(--ink-2);font-size:12.1px;line-height:1.62}.chips[data-v-0bbfea97]{flex-wrap:wrap;gap:4px;display:flex}.fchip[data-v-0bbfea97]{border:1px solid var(--line-2);background:var(--sunken);max-width:100%;color:var(--ink-2);text-overflow:ellipsis;border-radius:5px;padding:0 5px;font-size:9.9px;line-height:16px;overflow:hidden}.lc-extras[data-v-0bbfea97]{display:grid}.x-item[data-v-0bbfea97]{border-top:1px dashed var(--line-2);gap:9px;padding:11px 0;display:flex}.x-item[data-v-0bbfea97]:first-child{border-top:0;padding-top:0}.x-mark[data-v-0bbfea97]{background:#b9a5f5;border-radius:999px;flex:none;width:5px;height:5px;margin-top:7px;box-shadow:0 0 0 3px #b9a5f529}.step-bd[data-v-0bbfea97],.u-link[data-v-0bbfea97],.v-body[data-v-0bbfea97],.x-body[data-v-0bbfea97]{min-width:0}.x-title[data-v-0bbfea97]{font-size:12.4px;font-weight:600;line-height:1.55}.x-detail[data-v-0bbfea97]{color:var(--ink-2);margin-top:3px;font-size:11.8px;line-height:1.62}.x-files[data-v-0bbfea97]{margin-top:6px}.lc-checks[data-v-0bbfea97]{display:grid}.v-item[data-v-0bbfea97]{border-top:1px dashed var(--line-2);align-items:flex-start;gap:9px;padding:10px 0;display:flex}.v-item[data-v-0bbfea97]:first-child{border-top:0;padding-top:0}.v-ic[data-v-0bbfea97]{border-radius:7px;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;display:grid}.u-go[data-v-0bbfea97],.v-svg[data-v-0bbfea97]{width:12px;height:12px}.v-ic.v-pass[data-v-0bbfea97]{color:#4b7a2c;background:#e9f8dd}.v-ic.v-fail[data-v-0bbfea97]{color:#ab3a32;background:#fdeae9}.v-ic.v-partial[data-v-0bbfea97]{color:#8a6116;background:#fdf3dd}.v-ic.v-skipped[data-v-0bbfea97]{color:#82868e;background:#f1f1ee}.v-body[data-v-0bbfea97]{flex:1}.v-what[data-v-0bbfea97]{word-break:break-word;font-size:12.2px;font-weight:590;line-height:1.5}.v-detail[data-v-0bbfea97]{color:var(--ink-3);margin-top:2px;font-size:11.4px;line-height:1.55}.v-res[data-v-0bbfea97]{letter-spacing:.02em;flex:none;margin-top:2px;font-size:10.2px;font-weight:660}.v-res.v-pass[data-v-0bbfea97]{color:#4b7a2c}.v-res.v-fail[data-v-0bbfea97]{color:#ab3a32}.v-res.v-partial[data-v-0bbfea97]{color:#8a6116}.v-res.v-skipped[data-v-0bbfea97]{color:#82868e}.acc-grid[data-v-0bbfea97]{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px 22px;display:grid}.acc-col[data-v-0bbfea97]{align-content:start;gap:9px;display:grid}.a-item[data-v-0bbfea97],.u-item[data-v-0bbfea97]{border-radius:var(--r-md);border:1px solid var(--line);background:var(--sunken-2);padding:10px 12px;transition:border-color .14s,background .14s}.a-item[data-v-0bbfea97]:hover,.u-item[data-v-0bbfea97]:hover{border-color:var(--line-3);background:#fff}.a-head[data-v-0bbfea97],.u-head[data-v-0bbfea97]{align-items:center;gap:6px;display:flex}.u-link[data-v-0bbfea97]{align-items:center;gap:4px;display:inline-flex}.u-label[data-v-0bbfea97]{font-size:12.2px;font-weight:640}.u-go[data-v-0bbfea97]{color:var(--violet);flex:none;transition:transform .14s}.u-link:hover .u-go[data-v-0bbfea97]{transform:translate(1px,-1px)}.u-link:hover .u-label[data-v-0bbfea97]{color:var(--violet-ink)}.u-url[data-v-0bbfea97]{color:var(--sky);text-overflow:ellipsis;margin-top:3px;font-size:11.3px;overflow:hidden}.u-note[data-v-0bbfea97]{color:var(--ink-3);margin-top:3px;font-size:10.9px;line-height:1.5}.a-role[data-v-0bbfea97]{border:1px solid var(--violet-line);background:var(--violet-soft);color:var(--violet-ink);letter-spacing:.03em;border-radius:999px;padding:0 6px;font-size:9.6px;font-weight:680;line-height:16px}.a-user[data-v-0bbfea97]{color:var(--ink);font-size:11.8px}.a-line[data-v-0bbfea97]{align-items:center;gap:8px;margin-top:6px;display:flex}.a-key[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.4px;font-weight:660}.a-pass[data-v-0bbfea97]{border:1px solid var(--line-2);color:var(--ink);background:#fff;border-radius:6px;padding:1px 7px;font-size:11.4px}.a-none[data-v-0bbfea97]{font-size:11.2px}.a-note[data-v-0bbfea97]{margin-top:5px;font-size:10.9px}.a-note[data-v-0bbfea97],.cpy[data-v-0bbfea97]{color:var(--ink-3)}.cpy[data-v-0bbfea97]{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:none;align-items:center;gap:4px;height:23px;margin-left:auto;padding:0 8px;font-size:10.6px;font-weight:600;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.cpy[data-v-0bbfea97]:hover{border-color:var(--line-2);color:var(--ink);background:#fff}.cpy.ok[data-v-0bbfea97]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.cpy-ic[data-v-0bbfea97]{width:11px;height:11px}.steps[data-v-0bbfea97]{counter-reset:st;gap:13px;margin:0;padding:2px 18px 16px;list-style:none;display:grid}.steps>li[data-v-0bbfea97]{counter-increment:st;padding-left:33px;position:relative}.steps>li[data-v-0bbfea97]:before{content:counter(st);border:1px solid var(--violet-line);width:22px;height:22px;color:var(--violet-ink);background:#fff;border-radius:999px;place-items:center;font-size:10.4px;font-weight:700;display:grid;position:absolute;top:0;left:0}.steps>li[data-v-0bbfea97]:not(:last-child):after{content:"";background:linear-gradient(#ded2fb,#efeaf9);width:1px;position:absolute;top:26px;bottom:-13px;left:10.5px}.step-text[data-v-0bbfea97]{padding-top:1px;font-size:12.5px;font-weight:590;line-height:1.5}.cmd-row[data-v-0bbfea97]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.cmd[data-v-0bbfea97]{color:#f4f3ef;white-space:pre-wrap;word-break:break-all;background:#1b1c20;border-radius:7px;padding:4px 9px;font-size:11.1px;line-height:1.5}.cmd-row .cpy[data-v-0bbfea97]{margin-left:0}.step-note[data-v-0bbfea97]{color:var(--ink-3);margin-top:4px;font-size:11.2px;line-height:1.55}.lc-sc-sec[data-v-0bbfea97]{gap:11px;display:grid}.lc-sc-grid[data-v-0bbfea97]{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.lc-sc-grid[data-v-0bbfea97]>*{flex:330px;min-width:0}.sc[data-v-0bbfea97]{border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1);background:#fff;flex-direction:column;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;overflow:hidden}.sc[data-v-0bbfea97]:hover{border-color:#e3d9f8;transform:translateY(-1px);box-shadow:0 16px 34px -26px #231a3d73}.sc-hd[data-v-0bbfea97]{align-items:flex-start;gap:8px;padding:12px 14px 9px;display:flex}.sc-id[data-v-0bbfea97]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:5px;flex:none;margin-top:1px;padding:0 5px;font-size:9.6px;font-weight:660;line-height:16px}.sc-title[data-v-0bbfea97]{letter-spacing:-.008em;font-size:12.9px;font-weight:630;line-height:1.45}.sc-body[data-v-0bbfea97]{padding:0 14px 10px}.lc-sc-steps[data-v-0bbfea97]{counter-reset:ss;gap:5px;margin:6px 0 0;padding:0;list-style:none;display:grid}.lc-sc-steps li[data-v-0bbfea97]{counter-increment:ss;color:var(--ink-2);padding-left:19px;font-size:12px;line-height:1.55;position:relative}.lc-sc-steps li[data-v-0bbfea97]:before{content:counter(ss) ".";color:#a58cf8;font-variant-numeric:tabular-nums;font-size:10.6px;font-weight:680;position:absolute;top:0;left:0}.sc-acc[data-v-0bbfea97]{border-top:1px dashed var(--line-2);background:linear-gradient(#fbfdf6,#fff);margin-top:auto;padding:10px 14px 12px}.sc-acc-h[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:#6b7a45;align-items:center;gap:4px;font-size:9.4px;font-weight:700;display:flex}.sc-acc-ic[data-v-0bbfea97]{flex:none;width:11px;height:11px}.sc-acc-t[data-v-0bbfea97]{color:#33401c;margin-top:4px;font-size:12px;line-height:1.62}.sc-foot[data-v-0bbfea97]{color:var(--ink-4);flex-wrap:wrap;align-items:center;gap:10px;margin-top:7px;font-size:10.6px;display:flex}.sc-ids[data-v-0bbfea97]{gap:6px;display:flex}.lc-notes[data-v-0bbfea97]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lc-notes li[data-v-0bbfea97]{color:var(--ink-2);padding-left:13px;font-size:12.1px;line-height:1.66;position:relative}.lc-notes li[data-v-0bbfea97]:before{content:"";background:#c3b2f7;border-radius:999px;width:4.5px;height:4.5px;position:absolute;top:7.5px;left:1px}.lc-notes.warn li[data-v-0bbfea97]:before{background:#e8bb5e}.sec-warn .s-ic[data-v-0bbfea97]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.lc-empty[data-v-0bbfea97]{text-align:center;border-radius:24px;justify-items:center;gap:9px;padding:52px 24px 46px;display:grid}.em-ic[data-v-0bbfea97]{background:var(--grad-lilac);width:48px;height:48px;color:var(--violet-ink);border:1px solid #dbcdfb;border-radius:16px;place-items:center;display:grid}.em-svg[data-v-0bbfea97]{width:21px;height:21px}.em-title[data-v-0bbfea97]{letter-spacing:-.02em;margin-top:2px;font-size:16px;font-weight:660}.em-sub[data-v-0bbfea97]{max-width:54ch;font-size:12.6px;line-height:1.7}.em-path[data-v-0bbfea97],.em-sub[data-v-0bbfea97]{color:var(--ink-2)}.em-path[data-v-0bbfea97]{border:1px dashed var(--line-3);background:var(--sunken);border-radius:999px;margin-top:3px;padding:4px 12px;font-size:11.4px}.em-note[data-v-0bbfea97]{color:var(--ink-4);font-size:11px}.rule-btn[data-v-0bbfea97]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.8px;font-weight:620;transition:border-color .14s,color .14s,background .14s;display:inline-flex}.rule-btn[data-v-0bbfea97]:hover{border-color:var(--violet-line);background:var(--violet-soft);color:var(--violet-ink)}.rule-btn i[data-v-0bbfea97]{background:var(--sunken);color:var(--ink-3);border-radius:999px;padding:0 4px;font-size:9.4px;font-style:normal;line-height:15px}.hist-badge-ic[data-v-0bbfea97],.rule-btn-ic[data-v-0bbfea97]{width:12px;height:12px}.lc-hist-bar[data-v-0bbfea97]{box-shadow:var(--shadow-1);background:linear-gradient(#faf7ff,#fff);border-radius:14px;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:9px 12px;display:flex}.hist-badge[data-v-0bbfea97],.lc-hist-bar[data-v-0bbfea97]{border:1px solid var(--violet-line);align-items:center}.hist-badge[data-v-0bbfea97]{background:var(--violet-soft);color:var(--violet-ink);border-radius:999px;flex:none;gap:4px;padding:1px 8px;font-size:10.4px;font-weight:680;line-height:18px;display:inline-flex}.hist-readonly[data-v-0bbfea97]{color:var(--ink-4);flex:none;font-size:10.2px}.lc-hist-tabs[data-v-0bbfea97]{flex:1;align-items:center;gap:4px;min-width:0;padding:1px 0;display:flex;overflow-x:auto}.lc-hist-tabs[data-v-0bbfea97]::-webkit-scrollbar{height:3px}.lc-hist-tabs[data-v-0bbfea97]::-webkit-scrollbar-thumb{background:#dcd8ef;border-radius:999px}.hist-tab[data-v-0bbfea97]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.6px;font-weight:620;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.hist-tab[data-v-0bbfea97]:hover{border-color:var(--violet-line);color:var(--violet-ink)}.hist-tab.on[data-v-0bbfea97]{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-ink);font-weight:680}.hist-tab i[data-v-0bbfea97]{color:var(--ink-4);font-size:9.2px;font-style:normal;font-weight:560}.hist-tab.on i[data-v-0bbfea97]{color:#7a63b8}.lc-hist-mask[data-v-0bbfea97]{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14121e6b;place-items:center;padding:24px;animation:.14s lc-fade-0bbfea97;display:grid;position:fixed;inset:0}.lc-hist[data-v-0bbfea97]{border:1px solid var(--line);background:#fff;border-radius:20px;flex-direction:column;width:min(680px,100%);max-height:calc(min(76vh,720px));animation:.16s lc-pop-0bbfea97;display:flex;overflow:hidden;box-shadow:0 40px 80px -40px #14121e8c}@keyframes lc-fade-0bbfea97{0%{opacity:0}to{opacity:1}}@keyframes lc-pop-0bbfea97{0%{opacity:0;transform:translateY(6px)scale(.99)}to{opacity:1;transform:none}}.lc-hist-hd[data-v-0bbfea97]{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 18px 12px;display:flex}.lc-hist-hd-txt[data-v-0bbfea97]{min-width:0}.lc-hist-title[data-v-0bbfea97]{letter-spacing:-.015em;font-size:15px;font-weight:660}.lc-hist-sub[data-v-0bbfea97]{color:var(--ink-3);margin-top:3px;font-size:11.2px}.lc-hist-x[data-v-0bbfea97]{width:26px;height:26px;color:var(--ink-3);cursor:pointer;border-radius:9px;flex:none;place-items:center;margin-left:auto;transition:background .14s,color .14s;display:grid}.lc-hist-x[data-v-0bbfea97]:hover{background:var(--sunken);color:var(--ink)}.lc-hist-x-ic[data-v-0bbfea97]{width:14px;height:14px}.lc-hist-list[data-v-0bbfea97]{gap:2px;padding:8px;display:grid;overflow-y:auto}.hist-item[data-v-0bbfea97]{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 11px;transition:background .14s,border-color .14s;display:flex}.hist-item[data-v-0bbfea97]:hover{background:var(--sunken-2);border-color:var(--line)}.hist-item.on[data-v-0bbfea97]{background:var(--violet-soft);border-color:var(--violet-line)}.hist-item[data-v-0bbfea97]:disabled{opacity:.6;cursor:wait}.hist-item-dot[data-v-0bbfea97]{background:#d3cfe6;border-radius:999px;flex:none;width:6px;height:6px}.hist-item-dot.live[data-v-0bbfea97]{background:#6aa844;box-shadow:0 0 0 3px #6aa84429}.hist-item-main[data-v-0bbfea97]{flex:1;gap:2px;min-width:0;display:grid}.hist-item-main b[data-v-0bbfea97]{text-overflow:ellipsis;white-space:nowrap;font-size:12.4px;font-weight:600;overflow:hidden}.hist-item-main i[data-v-0bbfea97]{color:var(--ink-4);font-size:10.2px;font-style:normal}.hist-item-hash[data-v-0bbfea97]{border:1px solid var(--line-2);color:var(--ink-3);background:#fff;border-radius:6px;flex:none;padding:0 6px;font-size:9.8px;line-height:16px}.lc-hist-hint[data-v-0bbfea97]{text-align:center;padding:18px 12px;font-size:12px}.lc-hist-err[data-v-0bbfea97]{border-radius:var(--r-md);color:#a5382f;background:#fdeae7;border:1px solid #f6d2cb;margin:12px 18px;padding:9px 11px;font-size:11.8px}.lc-hist-ft[data-v-0bbfea97]{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:11px 18px;font-size:10.8px;display:flex}.hist-close[data-v-0bbfea97]{border:1px solid var(--ink-card);background:var(--ink-card);color:#fff;cursor:pointer;border-radius:999px;flex:none;height:26px;padding:0 12px;font-size:11px;font-weight:620}.hist-close[data-v-0bbfea97]:hover{background:#000}@media (width<=900px){.lc-hero[data-v-0bbfea97]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 14px;padding:18px;display:grid}.hero-body[data-v-0bbfea97]{grid-column:1}.hero-aside[data-v-0bbfea97]{grid-area:1/2}.ring[data-v-0bbfea97]{width:72px;height:72px}.ring-in[data-v-0bbfea97]{width:58px;height:58px}.ring-in b[data-v-0bbfea97]{font-size:14px}.ring-in span[data-v-0bbfea97]{font-size:8.2px}.s-hint[data-v-0bbfea97]{display:none}.s-copy[data-v-0bbfea97]{margin-left:auto}.s-hd[data-v-0bbfea97]{padding:12px 14px 10px}.sec-bd[data-v-0bbfea97],.sec-empty[data-v-0bbfea97],.steps[data-v-0bbfea97]{padding-left:14px;padding-right:14px}}@media (width<=700px){.hist-readonly[data-v-0bbfea97]{display:none}.lc-hist-bar .rule-btn[data-v-0bbfea97]{order:2;margin-left:auto}.lc-hist-tabs[data-v-0bbfea97]{flex-basis:100%;order:3}}@media (width<=560px){.lc-rule[data-v-0bbfea97]{padding:10px 12px}.ring-in span[data-v-0bbfea97],.rule-file[data-v-0bbfea97]{display:none}.lc-hero[data-v-0bbfea97]{gap:4px 10px;padding:15px}.hero-title[data-v-0bbfea97]{letter-spacing:-.02em;font-size:17.5px}.hero-sum[data-v-0bbfea97]{font-size:12.2px;line-height:1.62}.hero-meta[data-v-0bbfea97]{gap:8px;margin-top:10px;font-size:10.8px}.ring[data-v-0bbfea97]{width:56px;height:56px}.ring-in[data-v-0bbfea97]{width:46px;height:46px}.ring-in b[data-v-0bbfea97]{font-size:12.5px}.s-title[data-v-0bbfea97]{font-size:13.2px}}
|