scrum-skills 0.2.6 → 0.2.7
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 +6 -3
- package/assets/board/200.html +1 -1
- package/assets/board/404.html +1 -1
- package/assets/board/_nuxt/{Baq-Hrpf.js → 6gFtTBwm.js} +1 -1
- package/assets/board/_nuxt/{CsyY7ot8.js → B3jkABw9.js} +1 -1
- package/assets/board/_nuxt/{CoPhTDCT.js → B5n2_jZN.js} +1 -1
- package/assets/board/_nuxt/{7DnHvJyr.js → BC0YsiYy.js} +1 -1
- package/assets/board/_nuxt/{DDF25zwT.js → BWgbICJ-.js} +1 -1
- package/assets/board/_nuxt/{CmvybFI5.js → BaG8y0Wt.js} +1 -1
- package/assets/board/_nuxt/{B8d-LQbt.js → BaqGLZhY.js} +1 -1
- package/assets/board/_nuxt/{BMRYIH0I.js → BbaAxZ2N.js} +1 -1
- package/assets/board/_nuxt/{FxbXzpZ6.js → BetRVCu6.js} +1 -1
- package/assets/board/_nuxt/{C8xxmt66.js → BfBP16Im.js} +1 -1
- package/assets/board/_nuxt/{ChJuu-Ky.js → BgLeKwx0.js} +1 -1
- package/assets/board/_nuxt/{DtVfI_h9.js → BmxvtaMq.js} +1 -1
- package/assets/board/_nuxt/{CNCQ_RRC.js → BscJTep0.js} +1 -1
- package/assets/board/_nuxt/{Dp5MbiLe.js → C5MtlISK.js} +1 -1
- package/assets/board/_nuxt/{BuBpFHLu.js → C7K0R7F-.js} +1 -1
- package/assets/board/_nuxt/{MTucdeiW.js → C8vL692X.js} +1 -1
- package/assets/board/_nuxt/{BJW3UkS7.js → CJ2mz0WY.js} +1 -1
- package/assets/board/_nuxt/{Cu_-fa7D.js → CK-lOYG9.js} +1 -1
- package/assets/board/_nuxt/{rV_oonhV.js → CKtAvtay.js} +1 -1
- package/assets/board/_nuxt/{B5oiGeHN.js → CLBcBrYf.js} +1 -1
- package/assets/board/_nuxt/{CqT7Crsj.js → CMt3SL3m.js} +3 -3
- package/assets/board/_nuxt/{Bhg7noz0.js → CSEEUF8S.js} +1 -1
- package/assets/board/_nuxt/{D_dkfQp-.js → CTK2Sysu.js} +1 -1
- package/assets/board/_nuxt/{CSF_x8S0.js → CXCIZbbz.js} +1 -1
- package/assets/board/_nuxt/{Bk5o5EMW.js → CcYp6rwI.js} +1 -1
- package/assets/board/_nuxt/{ZuoAH0hh.js → CgDTd7jS.js} +1 -1
- package/assets/board/_nuxt/{DsF2J4jZ.js → ChG76uh9.js} +1 -1
- package/assets/board/_nuxt/Ci0qbkgh.js +1 -0
- package/assets/board/_nuxt/Cj8KbSzE.js +2 -0
- package/assets/board/_nuxt/{8QIcohze.js → Cm9lkUvP.js} +1 -1
- package/assets/board/_nuxt/{CcCIS_4Q.js → CmyOKc3S.js} +1 -1
- package/assets/board/_nuxt/{CnWxhsmi.js → Cplt7ZnK.js} +1 -1
- package/assets/board/_nuxt/{CB66hjP7.js → CqTxogVu.js} +1 -1
- package/assets/board/_nuxt/{B3oUyqcV.js → CqoQ__I_.js} +1 -1
- package/assets/board/_nuxt/{oXSDGTSr.js → Csqgy925.js} +1 -1
- package/assets/board/_nuxt/{4G46xON2.js → Cti_rGPY.js} +1 -1
- package/assets/board/_nuxt/{x-PrcVk4.js → CyG4hsVv.js} +1 -1
- package/assets/board/_nuxt/{5qqsfNvn.js → Cz6rZcLK.js} +1 -1
- package/assets/board/_nuxt/{u88eXCXy.js → D2O8Q8x9.js} +1 -1
- package/assets/board/_nuxt/{Cq4Q0czX.js → D5CE81jK.js} +1 -1
- package/assets/board/_nuxt/{CqhzGRpQ.js → D7ufz00d.js} +1 -1
- package/assets/board/_nuxt/{C7wdFLdw.js → D99LbGfb.js} +1 -1
- package/assets/board/_nuxt/{D1_aWe_t.js → DF-nsa1Z.js} +1 -1
- package/assets/board/_nuxt/{B0YDpoC7.js → DIc8yx98.js} +1 -1
- package/assets/board/_nuxt/{BvwhGSdZ.js → DNtz8Ent.js} +1 -1
- package/assets/board/_nuxt/{BGRxZnwm.js → DOdi2wDw.js} +1 -1
- package/assets/board/_nuxt/{BJcBC4jN.js → DSLbmoWa.js} +1 -1
- package/assets/board/_nuxt/{DZXukN7r.js → DUhdM-rb.js} +1 -1
- package/assets/board/_nuxt/{C7AVymkF.js → DWO9c9yp.js} +1 -1
- package/assets/board/_nuxt/{J9NS0_M_.js → DajA-Tkt.js} +1 -1
- package/assets/board/_nuxt/{HclZy1k7.js → DbHiyab-.js} +1 -1
- package/assets/board/_nuxt/{BtzBJuQU.js → Dc4dIyTM.js} +1 -1
- package/assets/board/_nuxt/{D13eMNHe.js → Dc7Ql6eE.js} +1 -1
- package/assets/board/_nuxt/{CkDrD28D.js → Dd9ZukPU.js} +1 -1
- package/assets/board/_nuxt/{BGssl5Ao.js → Dg2LiqmN.js} +1 -1
- package/assets/board/_nuxt/{DMZvQhvU.js → DgbDcd9I.js} +1 -1
- package/assets/board/_nuxt/{Oe3jsM_c.js → DqZgF3hU.js} +1 -1
- package/assets/board/_nuxt/{Dwd1XRDX.js → DqcxvfbD.js} +1 -1
- package/assets/board/_nuxt/{D2zrOcWn.js → DrZpfjBq.js} +1 -1
- package/assets/board/_nuxt/{DdjjthKs.js → DsA2lVci.js} +1 -1
- package/assets/board/_nuxt/{CoBNWjS2.js → Du91iq0p.js} +1 -1
- package/assets/board/_nuxt/{DNJ5OliG.js → KxQggkNX.js} +1 -1
- package/assets/board/_nuxt/{C4MZsmn0.js → M6ZOYZ8R.js} +1 -1
- package/assets/board/_nuxt/{C_uy5_kh.js → MaXJprwN.js} +1 -1
- package/assets/board/_nuxt/{CurAl_-I.js → V0uynWE2.js} +1 -1
- package/assets/board/_nuxt/{3G_ZLrk2.js → ZVTqot-_.js} +1 -1
- package/assets/board/_nuxt/{Ck3md8pL.js → ZngEd3HB.js} +1 -1
- package/assets/board/_nuxt/{Cp9-r9Yz.js → b2JYbYKt.js} +1 -1
- package/assets/board/_nuxt/builds/latest.json +1 -1
- package/assets/board/_nuxt/builds/meta/88de87b9-e62d-4466-a908-66ef1b011538.json +1 -0
- package/assets/board/_nuxt/{entry.DUA8YVRM.css → entry.CqnxzTAU.css} +1 -1
- package/assets/board/_nuxt/{DPeEWyPC.js → f1ditBVp.js} +1 -1
- package/assets/board/_nuxt/{HUproyl7.js → jtompfyX.js} +1 -1
- package/assets/board/_nuxt/last-change.B59xu_sV.css +1 -0
- package/assets/board/_nuxt/{BsNk4K6P.js → o_84IzFk.js} +1 -1
- package/assets/board/_nuxt/{13F3FZJq.js → q6p4rsh_.js} +1 -1
- package/assets/board/_nuxt/{HvSJjbUd.js → uKzCKCTq.js} +1 -1
- package/assets/board/_nuxt/{dI2CahwK.js → wRPvhAJz.js} +1 -1
- package/assets/board/_nuxt/{C6wyeu66.js → yh6sf_D5.js} +1 -1
- package/assets/board/_nuxt/{DCRsKQUZ.js → z40PaBW1.js} +1 -1
- package/assets/board/burndown/index.html +1 -1
- package/assets/board/epics/index.html +1 -1
- package/assets/board/favicon.svg +16 -0
- 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/bin/scrum-skills.mjs +24 -17
- package/package.json +1 -1
- package/assets/board/_nuxt/B43-KCi6.js +0 -1
- package/assets/board/_nuxt/DIAPFfZA.js +0 -2
- package/assets/board/_nuxt/builds/meta/ceebd758-b616-48d8-872b-0de05659de19.json +0 -1
- package/assets/board/_nuxt/last-change.CaSxA-Z0.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{On as e,Zn as t,b as n,g as r,mt as i,xt as a}from"./DZo3dYLJ.js";import{r as o}from"./
|
|
1
|
+
import{On as e,Zn as t,b as n,g as r,mt as i,xt as a}from"./DZo3dYLJ.js";import{r as o}from"./Csqgy925.js";import{n as s,t as c}from"./6gFtTBwm.js";var l={base:`list-disc ps-6 my-5 marker:text-(--ui-border-accented)`},u={__name:`ProseUl`,props:{class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(u){let d=s(`prose.ul`,u),f=o(),p=r(()=>c({extend:l,...f.ui?.prose?.ul||{}}));return(r,o)=>(i(),n(`ul`,{class:t(p.value({class:[e(d).ui?.base,e(d).class]}))},[a(r.$slots,`default`)],2))}};export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{E as e,Lt as t,On as n,Zn as r,_ as i,b as a,et as o,g as s,mt as c,qt as l,tr as u,v as d,xt as f,y as p}from"./DZo3dYLJ.js";import{r as m}from"./
|
|
1
|
+
import{E as e,Lt as t,On as n,Zn as r,_ as i,b as a,et as o,g as s,mt as c,qt as l,tr as u,v as d,xt as f,y as p}from"./DZo3dYLJ.js";import{r as m}from"./Csqgy925.js";import{n as h,t as g}from"./6gFtTBwm.js";import{t as _}from"./DrZpfjBq.js";import{t as v}from"./BgLeKwx0.js";import{t as y}from"./CQTvWh4i.js";var b={slots:{base:[`group relative block my-5 p-4 sm:p-6 border border-default rounded-md bg-default`,`transition-colors`],icon:`size-6 mb-2 block`,title:`text-highlighted font-semibold`,description:`text-[15px] text-muted *:first:mt-0 *:last:mb-0 *:my-1`,externalIcon:[`size-4 align-top absolute end-2 top-2 text-dimmed pointer-events-none`,`transition-colors`]},variants:{color:{primary:{icon:`text-primary`},secondary:{icon:`text-secondary`},success:{icon:`text-success`},info:{icon:`text-info`},warning:{icon:`text-warning`},error:{icon:`text-error`},neutral:{icon:`text-highlighted`}},to:{true:``},title:{true:{description:`mt-1`}}},compoundVariants:[{color:`primary`,to:!0,class:{base:`hover:bg-primary/10 hover:border-primary outline-primary/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-primary`,externalIcon:`group-hover:text-primary`}},{color:`secondary`,to:!0,class:{base:`hover:bg-secondary/10 hover:border-secondary outline-secondary/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-secondary`,externalIcon:`group-hover:text-secondary`}},{color:`success`,to:!0,class:{base:`hover:bg-success/10 hover:border-success outline-success/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-success`,externalIcon:`group-hover:text-success`}},{color:`info`,to:!0,class:{base:`hover:bg-info/10 hover:border-info outline-info/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-info`,externalIcon:`group-hover:text-info`}},{color:`warning`,to:!0,class:{base:`hover:bg-warning/10 hover:border-warning outline-warning/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-warning`,externalIcon:`group-hover:text-warning`}},{color:`error`,to:!0,class:{base:`hover:bg-error/10 hover:border-error outline-error/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-error`,externalIcon:`group-hover:text-error`}},{color:`neutral`,to:!0,class:{base:`hover:bg-elevated/50 hover:border-inverted outline-inverted/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-inverted`,externalIcon:`group-hover:text-highlighted`}}],defaultVariants:{color:`primary`}},x=Object.assign({inheritAttrs:!1},{__name:`ProseCard`,props:{to:{type:null,required:!1},target:{type:[String,Object,null],required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},color:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(x){let S=x,C=t(),w=h(`prose.card`,S),T=m(),E=s(()=>g({extend:b,...T.ui?.prose?.card||{}})({color:w.color,to:!!w.to,title:!!w.title})),D=s(()=>w.target||(w.to&&typeof w.to==`string`&&w.to.startsWith(`http`)?`_blank`:void 0)),O=s(()=>(w.title||`Card link`).trim());return(t,s)=>(c(),a(`div`,o(n(w).to?{}:t.$attrs,{class:E.value.base({class:[n(w).ui?.base,n(w).class]})}),[n(w).to?(c(),d(v,o({key:0,"aria-label":O.value},{to:n(w).to,target:D.value,...t.$attrs},{class:`focus:outline-none`,raw:``}),{default:l(()=>[...s[0]||=[i(`span`,{class:`absolute inset-0`,"aria-hidden":`true`},null,-1)]]),_:1},16,[`aria-label`])):p(``,!0),n(w).icon?(c(),d(_,{key:1,name:n(w).icon,class:r(E.value.icon({class:n(w).ui?.icon}))},null,8,[`name`,`class`])):p(``,!0),n(w).to&&D.value===`_blank`?(c(),d(_,{key:2,name:n(T).ui.icons.external,class:r(E.value.externalIcon({class:n(w).ui?.externalIcon}))},null,8,[`name`,`class`])):p(``,!0),n(w).title||C.title?(c(),a(`p`,{key:3,class:r(E.value.title({class:n(w).ui?.title}))},[y(t.$slots,`title`,{mdcUnwrap:`p`},()=>[e(u(n(w).title),1)])],2)):p(``,!0),C.default?(c(),a(`div`,{key:4,class:r(E.value.description({class:n(w).ui?.description}))},[f(t.$slots,`default`,{},()=>[e(u(n(w).description),1)])],2)):p(``,!0)],16))}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,E as t,On as n,Zn as r,_ as i,b as a,bt as o,er as s,g as c,k as l,mt as u,o as d,qt as ee,tr as f,y as p}from"./DZo3dYLJ.js";import{t as m}from"./
|
|
1
|
+
import{D as e,E as t,On as n,Zn as r,_ as i,b as a,bt as o,er as s,g as c,k as l,mt as u,o as d,qt as ee,tr as f,y as p}from"./DZo3dYLJ.js";import{t as m}from"./CJ2mz0WY.js";import{t as h}from"./DrZpfjBq.js";import{a as g,i as _,o as v,r as te,s as y}from"#entry";var b={class:`kpis`},x={class:`v`},S={class:`v`},C={class:`v`},w={class:`v`},T={class:`v`},E={class:`grid`},D={class:`hero`},O={class:`hero-top`},k={class:`tag tag-ghost`},A={class:`tag tag-neutral`},j={key:0,class:`tag tag-error`},M={key:1,class:`tag tag-warning`},N={class:`hero-pct`},P={class:`epic-title`},F={class:`goal`},I={class:`bar ink hero-bar`},L={class:`hero-foot`},R={class:`bd`},z={class:`h3`},ne={key:0,class:`dim empty`},B={class:`kr-top`},V={class:`kr-text`},H={class:`kr-num mono`},U={class:`h3 stories-hd`},W={class:`stlist`},G={class:`st-id mono`},K={class:`st-title`},q={class:`st-pts dim`},J={class:`st-state dim`},Y=_(l({__name:`epics`,setup(l){let{epics:_,storyById:Y,STATE_LABEL:X,STATE_DOT:Z,TYPE_LABEL:re,TYPE_COLOR:ie,TYPE_ICON:ae,PRIORITY_COLOR:oe}=y(),se={draft:`neutral`,active:`primary`,done:`success`,cancelled:`error`},ce={draft:`草稿`,active:`进行中`,done:`已完成`,cancelled:`已取消`},Q=c(()=>_.value.map(e=>{let t=(e.stories??[]).map(e=>Y.value.get(e)).filter(Boolean),n=t.filter(e=>e.status===`done`),r=t.reduce((e,t)=>e+t.points,0),i=n.reduce((e,t)=>e+t.points,0),a=(e.keyResults??[]).map(e=>{let t=e.target>0?Math.min(100,Math.round((e.current??0)/e.target*100)):(e.current??0)<=0?100:0;return{...e,pct:t,ok:t>=100}});return{...e,list:t,done:n,points:r,donePoints:i,pct:r?Math.round(i/r*100):0,krs:a,krOk:a.filter(e=>e.ok).length,blocked:t.filter(e=>e.blocked),bugs:t.filter(e=>e.type===`bug`)}})),$=c(()=>({epics:Q.value.length,stories:Q.value.reduce((e,t)=>e+t.list.length,0),points:Q.value.reduce((e,t)=>e+t.points,0),donePoints:Q.value.reduce((e,t)=>e+t.donePoints,0),kr:Q.value.reduce((e,t)=>e+t.krs.length,0),krOk:Q.value.reduce((e,t)=>e+t.krOk,0),blocked:Q.value.reduce((e,t)=>e+t.blocked.length,0)}));return(c,l)=>{let _=te,y=h,Y=m;return u(),a(`div`,null,[i(`div`,b,[i(`div`,{class:r([`kpi`,(`cardToneClass`in c?c.cardToneClass:n(v))(0)])},[e(_,{tone:(`cardTone`in c?c.cardTone:n(g))(0),size:`sm`},null,8,[`tone`]),l[1]||=i(`p`,{class:`k`},`史诗`,-1),i(`p`,x,[t(f(n($).epics),1),l[0]||=i(`small`,null,`个`,-1)])],2),i(`div`,{class:r([`kpi`,(`cardToneClass`in c?c.cardToneClass:n(v))(1)])},[e(_,{tone:(`cardTone`in c?c.cardTone:n(g))(1),size:`sm`},null,8,[`tone`]),l[2]||=i(`p`,{class:`k`},`关键结果达成`,-1),i(`p`,S,[t(f(n($).krOk),1),i(`small`,null,`/ `+f(n($).kr),1)])],2),i(`div`,{class:r([`kpi`,(`cardToneClass`in c?c.cardToneClass:n(v))(2)])},[e(_,{tone:(`cardTone`in c?c.cardTone:n(g))(2),size:`sm`},null,8,[`tone`]),l[3]||=i(`p`,{class:`k`},`故事点交付`,-1),i(`p`,C,[t(f(n($).donePoints),1),i(`small`,null,`/ `+f(n($).points),1)])],2),i(`div`,{class:r([`kpi`,(`cardToneClass`in c?c.cardToneClass:n(v))(3)])},[e(_,{tone:(`cardTone`in c?c.cardTone:n(g))(3),size:`sm`},null,8,[`tone`]),l[5]||=i(`p`,{class:`k`},`覆盖故事`,-1),i(`p`,w,[t(f(n($).stories),1),l[4]||=i(`small`,null,`个`,-1)])],2),i(`div`,{class:r([`kpi`,(`cardToneClass`in c?c.cardToneClass:n(v))(4)])},[e(_,{tone:(`cardTone`in c?c.cardTone:n(g))(4),size:`sm`},null,8,[`tone`]),l[7]||=i(`p`,{class:`k`},`阻塞`,-1),i(`p`,T,[t(f(n($).blocked),1),l[6]||=i(`small`,null,`个故事`,-1)])],2)]),i(`div`,E,[(u(!0),a(d,null,o(n(Q),c=>(u(),a(`article`,{key:c.id,class:`card epic`},[i(`div`,D,[i(`div`,O,[i(`span`,k,f(c.id),1),i(`span`,{class:r([`tag`,`tag-${se[c.status]}`])},f(ce[c.status]),3),i(`span`,A,f(c.list.length)+` 个故事`,1),c.bugs.length?(u(),a(`span`,j,[e(y,{name:`i-lucide-bug`,class:`size-3`}),t(f(c.bugs.length),1)])):p(``,!0),c.blocked.length?(u(),a(`span`,M,[e(y,{name:`i-lucide-octagon-alert`,class:`size-3`}),t(f(c.blocked.length),1)])):p(``,!0),i(`span`,N,[t(f(c.pct),1),l[8]||=i(`small`,null,`%`,-1)])]),i(`h2`,P,f(c.title),1),i(`p`,F,f(c.goal),1),i(`div`,I,[i(`i`,{style:s({width:c.pct+`%`})},null,4)]),i(`div`,L,[i(`span`,null,[i(`b`,null,f(c.donePoints),1),t(`/`+f(c.points)+` 点`,1)]),l[9]||=i(`i`,{class:`sep`},null,-1),i(`span`,null,`关键结果 `+f(c.krOk)+`/`+f(c.krs.length)+` 达成`,1),l[10]||=i(`i`,{class:`sep`},null,-1),i(`span`,null,f(c.done.length)+`/`+f(c.list.length)+` 个故事完成`,1)])]),i(`div`,R,[i(`p`,z,[e(y,{name:`i-lucide-target`,class:`size-3`}),l[11]||=t(`关键结果`,-1)]),c.krs.length?p(``,!0):(u(),a(`p`,ne,`这个史诗还没写 keyResults。`)),(u(!0),a(d,null,o(c.krs,e=>(u(),a(`div`,{key:e.id,class:`kr`},[i(`div`,B,[i(`span`,V,f(e.text),1),i(`span`,H,f(e.current??`—`)+` / `+f(e.target)+` `+f(e.unit??``),1),i(`span`,{class:r([`tag`,e.ok?`tag-success`:`tag-warning`])},f(e.pct)+`%`,3)]),i(`div`,{class:r([`bar slim`,e.ok?`mint`:`lilac`])},[i(`i`,{style:s({width:e.pct+`%`})},null,4)],2)]))),128)),i(`p`,U,[e(y,{name:`i-lucide-list-checks`,class:`size-3`}),l[12]||=t(`故事`,-1)]),i(`ul`,W,[(u(!0),a(d,null,o(c.list,o=>(u(),a(`li`,{key:o.id},[e(Y,{to:`/story/${o.id}`,class:`strow`},{default:ee(()=>[i(`i`,{class:`sdot`,style:s({background:n(Z)[o.status]})},null,4),i(`span`,G,f(o.id),1),i(`span`,K,f(o.title),1),i(`span`,{class:r([`tag`,`tag-${n(ie)[o.type]}`])},[e(y,{name:n(ae)[o.type],class:`size-3`},null,8,[`name`]),t(f(n(re)[o.type]),1)],2),i(`span`,{class:r([`tag`,`tag-${n(oe)[o.priority]}`])},f(o.priority),3),i(`span`,q,f(o.points)+` 点`,1),i(`span`,J,f(n(X)[o.status]),1),e(y,{name:`i-lucide-chevron-right`,class:`st-chev`})]),_:2},1032,[`to`])]))),128))])])]))),128))])])}}}),[[`__scopeId`,`data-v-4bf98db6`]]);export{Y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,E as t,On as n,T as r,Zn as i,_ as a,b as o,bt as s,er as c,g as l,k as u,mt as d,o as f,qt as ee,tr as p,v as te,y as m}from"./DZo3dYLJ.js";import{t as h}from"./
|
|
1
|
+
import{D as e,E as t,On as n,T as r,Zn as i,_ as a,b as o,bt as s,er as c,g as l,k as u,mt as d,o as f,qt as ee,tr as p,v as te,y as m}from"./DZo3dYLJ.js";import{t as h}from"./CJ2mz0WY.js";import{t as ne}from"./DrZpfjBq.js";import{a as g,i as _,o as v,r as re,s as y}from"#entry";var b={class:`kpis`},x={class:`v`},ie={class:`v`},ae={class:`v`},oe={class:`v`},se={class:`v`},S={class:`card tl-wrap`},C={class:`card-hd tl-hd`},w={class:`h2`},T={class:`timeline`},E={key:0,class:`tl-today`},D={class:`tl-item`},O={class:`when`},k={class:`when-date mono`},A={class:`when-year`},j={class:`axis`},M={class:`node-top`},N={class:`tag tag-ghost`},P={key:0,class:`tag tag-neutral mono`},F={class:`node-title`},I={class:`criteria`},L={class:`nums`},R={class:`dim`},z={class:`mpct`},B={class:`mss`},ce={class:`st-id mono`},V={class:`st-title`},H={class:`st-state dim`},U={class:`st-pts dim`},W={key:0,class:`tl-today`},G=_(u({__name:`milestones`,setup(u){let{milestones:_,milestoneProgress:G,now:K,md:le,MS_LABEL:ue,MS_COLOR:de,KIND_LABEL:fe,KIND_ICON:pe,STATE_DOT:me,STATE_LABEL:he,diffDays:q}=y(),J=l(()=>[..._.value].sort((e,t)=>e.due<t.due?-1:+(e.due>t.due))),Y=e=>q(K,e),X=e=>{let t=G(e);return t.total?Math.round(t.done/t.total*100):0},Z=e=>e===`mvp`?`mint`:e===`release`?`lilac`:`ink`,ge=e=>({reached:`ok`,"at-risk":`risk`,planned:`plan`,missed:`miss`})[e]??`plan`,_e=[`日`,`一`,`二`,`三`,`四`,`五`,`六`],ve=e=>`周${_e[new Date(`${e}T00:00:00Z`).getUTCDay()]}`,ye=e=>{let t=Y(e);return t>0?`还剩 ${t} 天`:t===0?`今天到期`:`已过 ${-t} 天`},Q=l(()=>{let e=J.value.findIndex(e=>e.due>=K);return e<0?J.value.length:e}),$=l(()=>({mvp:_.value.filter(e=>e.kind===`mvp`).length,release:_.value.filter(e=>e.kind===`release`).length,checkpoint:_.value.filter(e=>e.kind===`checkpoint`).length,risk:_.value.filter(e=>e.status===`at-risk`||e.status===`missed`).length,reached:_.value.filter(e=>e.status===`reached`).length}));return(l,u)=>{let y=re,K=ne,q=h;return d(),o(`div`,null,[a(`div`,b,[a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(0)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(0),size:`sm`},null,8,[`tone`]),u[1]||=a(`p`,{class:`k`},`MVP 节点`,-1),a(`p`,x,[t(p(n($).mvp),1),u[0]||=a(`small`,null,`个`,-1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(1)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(1),size:`sm`},null,8,[`tone`]),u[3]||=a(`p`,{class:`k`},`发布节点`,-1),a(`p`,ie,[t(p(n($).release),1),u[2]||=a(`small`,null,`个`,-1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(2)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(2),size:`sm`},null,8,[`tone`]),u[5]||=a(`p`,{class:`k`},`检查点`,-1),a(`p`,ae,[t(p(n($).checkpoint),1),u[4]||=a(`small`,null,`个`,-1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(3)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(3),size:`sm`},null,8,[`tone`]),u[6]||=a(`p`,{class:`k`},`已达成`,-1),a(`p`,oe,[t(p(n($).reached),1),a(`small`,null,`/ `+p(n(_).length),1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(4)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(4),size:`sm`},null,8,[`tone`]),u[8]||=a(`p`,{class:`k`},`有风险 / 错过`,-1),a(`p`,se,[t(p(n($).risk),1),u[7]||=a(`small`,null,`个`,-1)])],2)]),a(`div`,S,[a(`div`,C,[a(`h2`,w,[e(K,{name:`i-lucide-git-commit-vertical`,class:`size-3.5`}),u[9]||=t(`时间线`,-1)]),u[10]||=r(`<span class="dim tip" data-v-fcd79590>按到期日从早到晚 · 节点达成口径是「挂的故事全部完成」</span><div class="legend" data-v-fcd79590><span class="lg" data-v-fcd79590><i class="sw mint" data-v-fcd79590></i>MVP</span><span class="lg" data-v-fcd79590><i class="sw lilac" data-v-fcd79590></i>发布</span><span class="lg" data-v-fcd79590><i class="sw white" data-v-fcd79590></i>检查点</span><i class="sep" data-v-fcd79590></i><span class="lg" data-v-fcd79590><i class="dot ok" data-v-fcd79590></i>已达成</span><span class="lg" data-v-fcd79590><i class="dot risk" data-v-fcd79590></i>有风险</span><span class="lg" data-v-fcd79590><i class="dot plan" data-v-fcd79590></i>计划中</span></div>`,2)]),a(`div`,T,[(d(!0),o(f,null,s(n(J),(r,l)=>(d(),o(f,{key:r.id},[l===n(Q)?(d(),o(`div`,E,[...u[11]||=[a(`span`,{class:`today-when`},`今天`,-1),a(`span`,{class:`today-axis`},[a(`i`)],-1),a(`span`,{class:`today-line`},null,-1)]])):m(``,!0),a(`article`,D,[a(`div`,O,[a(`p`,k,p(n(le)(r.due)),1),a(`p`,A,p(ve(r.due)),1)]),a(`div`,j,[a(`span`,{class:i([`dot-lg`,ge(r.status)])},[r.status===`reached`?(d(),te(K,{key:0,name:`i-lucide-check`,class:`size-2.5`})):m(``,!0)],2)]),a(`div`,{class:i([`node`,`node-${Z(r.kind)}`])},[e(y,{tone:Z(r.kind),size:`xl`,min:3,max:5},null,8,[`tone`]),a(`div`,M,[a(`span`,N,p(r.id),1),a(`span`,{class:i([`tag`,`tag-${n(de)[r.status]}`])},p(n(ue)[r.status]),3),a(`span`,{class:i([`tag`,r.kind===`mvp`?`tag-mint`:r.kind===`release`?`tag-primary`:`tag-neutral`])},[e(K,{name:n(pe)[r.kind],class:`size-3`},null,8,[`name`]),t(p(n(fe)[r.kind]),1)],2),r.sprintId?(d(),o(`span`,P,p(r.sprintId),1)):m(``,!0),a(`span`,{class:i([`days`,{over:Y(r.due)<0,soon:Y(r.due)>=0&&Y(r.due)<=7}])},p(ye(r.due)),3)]),a(`h3`,F,p(r.title),1),a(`p`,I,p(r.criteria),1),a(`div`,L,[a(`span`,null,[a(`b`,null,p(n(G)(r).done)+`/`+p(n(G)(r).total),1),u[12]||=t(` 个故事`,-1)]),n(G)(r).cancelled?(d(),o(f,{key:0},[u[13]||=a(`span`,{class:`dim`},`·`,-1),a(`span`,R,p(n(G)(r).cancelled)+` 个已取消`,1)],64)):m(``,!0),u[14]||=a(`span`,{class:`dim`},`·`,-1),a(`span`,null,p(n(G)(r).points)+` 点`,1),a(`span`,z,p(X(r))+`%`,1)]),a(`div`,{class:i([`bar`,r.kind===`checkpoint`?``:Z(r.kind)])},[a(`i`,{style:c({width:X(r)+`%`})},null,4)],2),a(`ul`,B,[(d(!0),o(f,null,s(n(G)(r).list,t=>(d(),o(`li`,{key:t.id},[e(q,{to:`/story/${t.id}`,class:`srow`},{default:ee(()=>[a(`i`,{class:`sdot`,style:c({background:n(me)[t.status]})},null,4),a(`span`,ce,p(t.id),1),a(`span`,V,p(t.title),1),a(`span`,H,p(n(he)[t.status]),1),a(`span`,U,p(t.points),1)]),_:2},1032,[`to`])]))),128))])],2)])],64))),128)),n(Q)===n(J).length?(d(),o(`div`,W,[...u[15]||=[a(`span`,{class:`today-when`},`今天`,-1),a(`span`,{class:`today-axis`},[a(`i`)],-1),a(`span`,{class:`today-line`},null,-1)]])):m(``,!0)])])])}}}),[[`__scopeId`,`data-v-fcd79590`]]);export{G as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{On as e,Zn as t,b as n,g as r,mt as i}from"./DZo3dYLJ.js";import{r as a}from"./
|
|
1
|
+
import{On as e,Zn as t,b as n,g as r,mt as i}from"./DZo3dYLJ.js";import{r as a}from"./Csqgy925.js";import{n as o,t as s}from"./6gFtTBwm.js";var c={base:`border-t border-default my-12`},l={__name:`ProseHr`,props:{class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(l){let u=o(`prose.hr`,l),d=a(),f=r(()=>s({extend:c,...d.ui?.prose?.hr||{}}));return(r,a)=>(i(),n(`hr`,{class:t(f.value({class:[e(u).ui?.base,e(u).class]}))},null,2))}};export{l as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as e,g as t,o as n,v as r,y as i}from"./
|
|
1
|
+
import{b as e,g as t,o as n,v as r,y as i}from"./D2O8Q8x9.js";import{En as a,H as o,J as s,L as ee,Ut as c,an as l,it as u,nt as d,ot as f,pn as te,un as p,vn as m}from"./DZo3dYLJ.js";var h=new Set([`link`,`style`,`script`,`noscript`]),g=new Set([`title`,`titleTemplate`,`script`,`style`,`noscript`]),_=new Set([`base`,`meta`,`link`,`style`,`script`,`noscript`]),v=new Set([`title`,`base`,`htmlAttrs`,`bodyAttrs`,`meta`,`link`,`style`,`script`,`noscript`]),y=new Set([`base`,`title`,`titleTemplate`,`bodyAttrs`,`htmlAttrs`,`templateParams`]),b=new Set([`key`,`tagPosition`,`tagPriority`,`tagDuplicateStrategy`,`innerHTML`,`textContent`,`processTemplateParams`]),x=new Set([`templateParams`,`htmlAttrs`,`bodyAttrs`]),S=new Set([`theme-color`,`google-site-verification`,`author`,`og:locale:alternate`,`og:image`,`og:video`,`og:audio`,`article:author`,`article:tag`,`book:author`,`book:tag`,`twitter:image`]),C={critical:-8,high:-1,low:2},w=e=>typeof e==`number`?Number.isFinite(e):e;function T(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function E(e){let n=new t;for(let t in e||{})n.hook(t,e[t]);return n}function D(e,t,n){if(e.hooks?._hooks?.[t]?.length)return e.hooks?.callHook(t,n)}var O=/^(?:viewport|description|keywords|robots)$/,k=[`name`,`property`,`http-equiv`];function A(e){let t=e.indexOf(`:`);if(t===-1)return!1;let n=e.slice(t+1);return S.has(n)||n.startsWith(`og:image:`)||n.startsWith(`og:video:`)||n.startsWith(`og:audio:`)||n.startsWith(`twitter:image:`)}function j(e){let{props:t,tag:n,key:r}=e;if(y.has(n))return n;if(n===`link`){if(t.rel===`canonical`)return`canonical`;if(t.rel===`alternate`&&t.hreflang)return`alternate:${t.hreflang}`}if(t.charset)return`charset`;if(n===`meta`)for(let e of k){let n=t[e];if(n!==void 0)return`meta:${n}${(typeof n!=`string`||!n.includes(`:`))&&!O.test(n)&&r?`:key:${r}`:``}`}return r?`${n}:key:${r}`:t.id?`${n}:id:${t.id}`:n===`link`&&t.rel&&t.href?`link:${t.rel}:${t.href}`:g.has(n)&&(e.textContent||e.innerHTML)?`${n}:content:${e.textContent||e.innerHTML}`:void 0}function M(e){let t=e._h||e._d||e.textContent||e.innerHTML;if(t)return String(t);let n=Object.keys(e.props).sort(),r=`${e.tag}:`,i=``;for(let t of n)r+=`${i}${t}:${String(e.props[t])}`,i=`,`;return r}function N(e,t,n){if(n===`_resolver`)return e;typeof e==`function`&&(!n||n!==`titleTemplate`&&!n.startsWith(`on`))&&(e=e());let r=t?t(n,e):e;if(Array.isArray(r)){let e;for(let n=0;n<r.length;n++){let i=N(r[n],t);e?e[n]=i:i!==r[n]&&(e=r.slice(0,n),e[n]=i)}return e||r}if(r?.constructor===Object){let e;for(let n in r){let i=T(n),a=i?void 0:N(r[n],t,n);if(!e&&(i||a!==r[n])){e={};for(let t in r){if(t===n)break;e[t]=r[t]}}e&&!i&&(e[n]=a)}return e||r}return r}var P=/[\s"'<>/=\x00-\x1F\x7F]/;function F(e,t){let n=e===`style`,r=n?new Map:new Set,i=e=>{if(e){if(n){let t=e.indexOf(`:`);t>0&&r.set(e.slice(0,t).trim(),e.slice(t+1).trim())}else e.split(` `).forEach(e=>e&&r.add(e))}};if(typeof t==`string`)(n?t.split(`;`):[t]).forEach(i);else if(Array.isArray(t))t.forEach(i);else if(t&&typeof t==`object`)for(let e in t){let a=t[e];a&&a!==`false`&&(n?r.set(e.trim(),String(a)):i(e))}return r}function I(e,t){if(e.props=e.props||{},!t)return e;if(e.tag===`templateParams`)return e.props=t,e;let n=_.has(e.tag)||e.tag===`htmlAttrs`||e.tag===`bodyAttrs`;for(let r in t){if(T(r))continue;let i=r.startsWith(`data-`),a=n&&!b.has(r),o=a&&!i?r.toLowerCase():r;if(a&&(!o||P.test(o)))continue;let s=t[r];if(s===null)e.props[o]=null;else if(r===`class`||r===`style`)e.props[r]=F(r,s);else if(b.has(r)){if((r===`textContent`||r===`innerHTML`)&&typeof s==`object`){let n=t.type||`application/json`;(n.endsWith(`json`)||n===`speculationrules`||n===`importmap`)&&(e.props.type=n,e[r]=JSON.stringify(s))}else e[r]=s}else if(s!==void 0){let t=String(s),n=e.tag===`meta`&&o===`content`;e.props[o]=t===`true`||t===``?i||n?t:!0:!s&&i&&t===`false`?`false`:s}}return e}function L(e,t){let n;return t.length&&(n=(e,n)=>{for(let r=0;r<t.length;r++)n=t[r](e,n);return n},e=n(void 0,e)),N(e,n)}function R(e,t){let n=I({tag:e,props:{}},typeof t==`object`&&typeof t!=`function`?t:{[e===`script`||e===`noscript`||e===`style`?`innerHTML`:`textContent`]:t});if(n.key&&h.has(n.tag)&&(n.props[`data-hid`]=n._h=n.key),n.tag===`script`&&typeof n.innerHTML==`object`&&(n.innerHTML=JSON.stringify(n.innerHTML),n.props.type=n.props.type||`application/json`),Array.isArray(n.props.content)){let e=[];for(let t of n.props.content)e.push({...n,props:{...n.props,content:t}});return e}return n}function z(e,t){if(Array.isArray(t))for(let n of t)e.push(n);else e.push(t)}function ne(e,t){if(!e)return[];typeof e==`function`&&(e=e()),e=L(e,t);let n=[];for(let t in e){let r=e[t];if(r!==void 0){if(Array.isArray(r))for(let e of r)z(n,R(t,e));else z(n,R(t,r))}}return n}var B=/</g,V=/<\/script/g,H=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,U=()=>100;function W(e){for(let t in e)return!1;return!0}var G=/^tags:|:render/;function K(e,t){let n=(t[`entries:resolve`]?.length||0)+(t[`entries:normalize`]?.length||0);if(e._h!==n){e._h=n;for(let t of e.entries.values())delete t._tags}}function q(e){for(let t=0;t<e.length;t++){let n=e[t],r={...n.props};r.class instanceof Set&&(r.class=new Set(r.class)),r.style instanceof Map&&(r.style=new Map(r.style)),e[t]={...n,props:r}}}function J(e,t){let n=e.tags,r=0;for(let t of e.tagMap.values())if(Array.isArray(t))for(let e of t)n[r++]=e;else n[r++]=t;n.length=r,t&&n.sort(H)}function Y(e){let t=!1;for(let n of e.tags.sort(H)){let r=n._d||M(n);if(!r)continue;let i=e.tagMap.get(r);if(!i)e.tagMap.set(r,n);else if((n.tagDuplicateStrategy||(x.has(n.tag)?`merge`:null)||(n.key&&n.key===i.key?`merge`:null))===`merge`){let t={...i.props};for(let e in n.props)t[e]=e===`style`?new Map([...i.props.style||new Map,...n.props[e]]):e===`class`?new Set([...i.props.class||[],...n.props[e]]):n.props[e];e.tagMap.set(r,{...n,props:t})}else n._p>>10==i._p>>10&&n.tag===`meta`&&A(r)?(e.tagMap.set(r,Object.assign([...Array.isArray(i)?i:[i],n],n)),t=!0):(n._w===i._w?n._p>i._p:n._w<i._w)&&e.tagMap.set(r,n)}return t}function X(e,t){let n=e.tagMap.get(`title`),r=e.tagMap.get(`titleTemplate`);if(t._title=n?.textContent,!r)return;let i=r.textContent;if(t._titleTemplate=i,!i)return;let a=typeof i==`function`?i(n?.textContent):i;typeof a==`string`&&!t.plugins.has(`template-params`)&&(a=a.replace(`%s`,n?.textContent||``)),n?a===null?e.tagMap.delete(`title`):e.tagMap.set(`title`,{...n,textContent:a}):e.tagMap.set(`titleTemplate`,{...r,tag:`title`,textContent:a})}function Z(e){let t=0;for(let n of e){let{innerHTML:r,tag:i,props:a}=n;if(v.has(i)&&(!W(a)||w(r)||w(n.textContent))&&(i!==`meta`||w(a.content)||a[`http-equiv`]||a.charset)){if(i===`script`&&(r||n.textContent)){let e=String(a.type),t=e.endsWith(`json`)||e===`importmap`||e===`speculationrules`,i=e=>t?(typeof e==`string`?e:JSON.stringify(e)).replace(B,`\\u003C`):typeof e==`string`?e.replace(V,`<\\/script`):e;n={...n},r&&(n.innerHTML=i(r)),n.textContent&&(n.textContent=i(n.textContent)),n._d=j(n)}e[t++]=n}}return e.length=t,e}function re(e,t){let n=t?.tagWeight??e.resolvedOptions._tagWeight??U,r={tagMap:new Map,tags:[]},i=e.hooks?._hooks||{};K(e,i);for(let t of e.entries.values())t._pending!==void 0&&(t.input=t._pending,delete t._pending,delete t._tags,delete t._precomputedTags);let a;(i[`entries:resolve`]?.length||i[`entries:normalize`]?.length)&&(a=[...e.entries.values()],i[`entries:resolve`]?.length&&D(e,`entries:resolve`,{entries:a,...r})),K(e,i);for(let t of a||e.entries.values()){let a=t._tags;if(!a){if(t._precomputedTags&&n===e.resolvedOptions._tagWeight&&!i[`entries:normalize`]?.length&&!i[`entries:resolve`]?.length&&(!t.options||W(t.options)))a=t._precomputedTags;else{if(a=ne(t.input,e.resolvedOptions.propResolvers||[]),t.options&&!W(t.options))for(let e of a)Object.assign(e,t.options);if(i[`entries:normalize`]?.length){let n={tags:a,entry:t};D(e,`entries:normalize`,n),a=n.tags}for(let e=0;e<a.length;e++){let r=a[e];r._w=n(r),r._p=(t._i<<10)+e,r._d=j(r),r._d||(r._h=M(r))}t._tags=a}}r.tags.push(...a)}for(let e in i)if(i[e]?.length&&G.test(e)){q(r.tags);break}let o=Y(r);return X(r,e),J(r,o),D(e,`tags:beforeResolve`,r),D(e,`tags:resolve`,r),D(e,`tags:afterResolve`,r),Z(r.tags)}var Q=`usehead`;function ie(){if(o()){let e=s(Q);if(e)return e}throw Error(`useHead() was called without provide context, ensure you call it through the setup() function.`)}function ae(e){return{install(t){t.config.globalProperties.$unhead=e,t.config.globalProperties.$head=e,t.provide(Q,e)}}.install}var oe=Object.assign((e,t)=>p(t)?a(t):t,{_static:!0});function se(e,t={}){let n=t.head||ie();return n.ssr?n.push(e||{},t):ce(n,e,t)}function ce(e,t,n={}){let r=l();if(r&&!r.active)return{patch(){},dispose(){},_i:-1};let i=m(!1);if(n.onRendered&&r){let e=n.onRendered;n={...n,onRendered:t=>r.run(()=>e(t))}}let a;return c(()=>{let r=i.value?{}:N(t,oe);a?a.patch(r):a=e.push(r,n)}),ee()?(u(()=>{a.dispose()}),f(()=>{i.value=!0}),d(()=>{i.value=!1})):r&&te(()=>a.dispose()),a}var le=e({docsBase:r,reporters:i});function $(e){let t=e||n();return t.ssrContext?.head||t.runWithContext(()=>{if(o()){let e=s(`usehead`);if(!e)throw le.NUXT_E6001();return e}})}function ue(e,t={}){return se(e,{head:t.head||$(t.nuxt),...t})}export{M as a,re as c,_ as d,C as f,j as i,D as l,ue as n,A as o,ae as r,I as s,$ as t,E as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as e,vn as t}from"./DZo3dYLJ.js";import{r as n}from"./B3jkABw9.js";function r(r){let i=n({dir:t(`ltr`)});return e(()=>r?.value||i.dir?.value||`ltr`)}export{r as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
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 ie}from"./51OWHj8c.js";import{t as ae}from"./CJ2mz0WY.js";import{t as oe}from"./DrZpfjBq.js";import{O as y,i as b,s as se}from"#entry";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`},x={class:`hero-aside`},Ne={class:`ring-in`},Pe={class:`card sec`},Fe={class:`s-hd`},Ie={class:`s-ic`},Le={class:`s-count`},Re={key:0,class:`sec-empty dim`},ze={key:1,class:`tbl-wrap`},Be={class:`tbl lc-tbl`},Ve={class:`ent`},He={class:`ent-top`},Ue={key:0,class:`ent-title`},We={key:0,class:`flow mono`},Ge={class:`fl`},Ke={class:`fl`},qe={class:`cell-note`},Je={class:`chips`},Ye=[`title`],Xe={key:0,class:`dim`},Ze={class:`two`},Qe={class:`card sec`},$e={class:`s-hd`},et={class:`s-ic`},tt={class:`s-count`},nt={class:`sec-bd lc-extras`},rt={key:0,class:`dim`},it={class:`x-body`},at={class:`x-title`},ot={key:0,class:`x-detail`},st={key:1,class:`chips x-files`},ct=[`title`],lt={class:`card sec`},ut={class:`s-hd`},dt={class:`s-ic tone-mint`},ft={class:`s-count`},pt={class:`sec-bd lc-checks`},mt={key:0,class:`dim`},ht={class:`v-body`},gt={class:`v-what`},_t={key:0,class:`v-detail`},vt={key:0,class:`card sec lc-access`},yt={class:`s-hd`},bt={class:`s-ic tone-sky`},xt={class:`sec-bd acc-grid`},St={key:0,class:`acc-col`},Ct={class:`u-head`},wt=[`href`],Tt={class:`u-label`},Et=[`onClick`],Dt={class:`u-url mono`},Ot={key:0,class:`u-note`},kt={key:1,class:`acc-col`},At={class:`a-head`},jt={key:0,class:`a-role`},Mt={class:`a-user mono`},Nt=[`onClick`],Pt={class:`a-line`},Ft={key:0,class:`a-pass mono`},It={key:1,class:`a-none dim`},Lt={key:0,class:`a-note`},Rt={key:1,class:`card sec lc-prep`},zt={class:`s-hd`},Bt={class:`s-ic tone-amber`},Vt={class:`s-count`},Ht={class:`steps`},Ut={class:`step-bd`},Wt={class:`step-text`},Gt={key:0,class:`cmd-row`},Kt={class:`cmd mono`},qt=[`onClick`],Jt={key:1,class:`step-note`},Yt={class:`lc-sc-sec`},Xt={class:`s-hd solo`},Zt={class:`s-ic tone-mint`},S={class:`s-count`},Qt={key:0,class:`dim sec-empty`},$t={key:1,class:`lc-sc-grid`},en={class:`sc-hd`},tn={class:`sc-id mono`},nn={class:`sc-title`},rn={key:0,class:`sc-body`},an={class:`lc-sc-steps`},on={class:`sc-acc`},sn={class:`sc-acc-h`},cn={class:`sc-acc-t`},ln={key:0,class:`sc-foot`},un={key:0},dn={key:1,class:`sc-ids`},fn={class:`two`},pn={class:`card sec`},mn={class:`s-hd`},hn={class:`s-ic`},gn={class:`sec-bd`},_n={key:0,class:`dim`},vn={key:1,class:`lc-notes`},yn={key:0,class:`card sec sec-warn`},bn={class:`s-hd`},xn={class:`s-ic`},Sn={class:`s-count`},Cn={class:`sec-bd`},wn={class:`lc-notes warn`},Tn={class:`lc-hist`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-hist-title`},En={class:`lc-hist-hd`},Dn={class:`lc-hist-hd-txt`},On={class:`lc-hist-sub`},kn={key:0,class:`lc-hist-err`},An={key:1,class:`lc-hist-hint dim`},jn={key:2,class:`lc-hist-list`},Mn=[`disabled`,`onClick`],Nn={class:`hist-item-main`},Pn={class:`mono`},Fn={class:`mono hist-item-hash`},In={key:0,class:`lc-hist-hint dim`},Ln={class:`lc-hist-ft`},C=b(te({__name:`last-change`,setup(te){let{lastChange:b,lastChangeGit:C}=se(),w=_(null),T=u(()=>w.value?.doc?.lastChange??b.value),E=u(()=>C.value),D=_([]),O=_(!1),k=_(!1),A=_(``),j=_(!1),Rn=u(()=>w.value?[w.value]:[]);async function zn(){if(!k.value){k.value=!0,A.value=``;try{let e=await y(`/api/agile/last-change/history`);D.value=e.entries??[]}catch(e){A.value=e?.data?.error||e?.message||`读不到 git 历史`}finally{k.value=!1}}}async function M(){O.value=!0,D.value.length||await zn()}async function N(e){if(!j.value){j.value=!0,A.value=``;try{w.value=await y(`/api/agile/last-change/revision`,{query:{hash:e.hash}}),O.value=!1,window.scrollTo({top:0,behavior:`smooth`})}catch(e){A.value=e?.data?.error||e?.message||`取不到这个版本`}finally{j.value=!1}}}function Bn(){w.value=null,window.scrollTo({top:0,behavior:`smooth`})}let P=_(null);n(w,async()=>{await ne(),P.value?.querySelector(`.hist-tab.on`)?.scrollIntoView({inline:`nearest`,block:`nearest`})});function F(e){e.key===`Escape`&&O.value&&(O.value=!1)}l(()=>window.addEventListener(`keydown`,F)),d(()=>window.removeEventListener(`keydown`,F));let I={committed:{text:`已提交`,tone:`ok`},dirty:{text:`未提交改动`,tone:`warn`},untracked:{text:`未纳入版本库`,tone:`warn`},"no-git":{text:`非 git 仓库`,tone:`neutral`},missing:{text:`尚未生成`,tone:`neutral`}},L=u(()=>I[E.value?.state??`missing`]??I.missing),Vn=[{key:`committed`,when:`已提交`,then:`下次写入整份覆盖;上一版留在 git 历史里,点「查看历史」随时翻回来`},{key:`pending`,when:`未提交`,then:`下次写入合并:新交付接在旧记录后面,不冲掉还没入库的内容`}],Hn=u(()=>{let e=E.value?.state;return e===`committed`?`committed`:e===`dirty`||e===`untracked`||e===`no-git`?`pending`:``}),Un=u(()=>(T.value?.mergedFrom?.length??0)+1),Wn=u(()=>(T.value?.mergedFrom??[]).map(e=>`${e.at??``} ${e.title??``}`.trim()).filter(Boolean).join(`
|
|
2
|
+
`)),Gn={added:`新增`,updated:`状态变更`,removed:`移除`},Kn={story:`故事`,task:`任务`},qn={pass:`通过`,fail:`失败`,partial:`部分`,skipped:`未跑`},Jn={pass:`i-lucide-check`,fail:`i-lucide-x`,partial:`i-lucide-minus`,skipped:`i-lucide-minus`},R=u(()=>T.value?.changes??[]),z=u(()=>T.value?.extras??[]),B=u(()=>T.value?.verification??[]),V=u(()=>T.value?.scenarios??[]),H=u(()=>T.value?.preparation??[]),U=u(()=>T.value?.notes??[]),W=u(()=>T.value?.open??[]),G=u(()=>T.value?.access?.urls??[]),K=u(()=>T.value?.access?.accounts??[]),q=u(()=>B.value.filter(e=>e.result===`pass`).length),J=u(()=>B.value.length>0&&q.value===B.value.length),Yn=u(()=>B.value.length?Math.round(q.value/B.value.length*100):0),Xn=u(()=>[...new Set([...R.value.flatMap(e=>e.files??[]),...z.value.flatMap(e=>e.files??[])])]),Zn=e=>e.kind===`story`?e.id:e.id.replace(/-T\d+$/,``),Y=new Date,Qn=`${Y.getFullYear()}-${String(Y.getMonth()+1).padStart(2,`0`)}-${String(Y.getDate()).padStart(2,`0`)}`,X=u(()=>(T.value?.at??``).slice(0,10)),Z=u(()=>{let e=(T.value?.at??``).slice(10).replace(/^[T ]/,``);return/^\d{2}:\d{2}/.test(e)?e:``}),$n=u(()=>!!X.value&&X.value===Qn),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=oe,d=ae;return f(),s(p,null,[r(w)?(f(),s(`div`,ge,[o(`span`,_e,[e(u,{name:`i-lucide-history`,class:`hist-badge-ic`}),l[7]||=t(`历史版本`,-1)]),o(`span`,ve,[t(`只读 · `+h(r(w).short),1),r(w).date?(f(),s(p,{key:0},[t(` · `+h(r(w).date),1)],64)):v(``,!0)]),o(`div`,{ref_key:`tabsRef`,ref:P,class:`lc-hist-tabs`},[o(`button`,{class:`hist-tab`,onClick:Bn},`最新`),(f(!0),s(p,null,c(r(Rn),e=>(f(),s(`button`,{key:e.hash,class:a([`hist-tab`,{on:r(w)?.hash===e.hash}]),title:`${e.date} ${e.subject??``}`,disabled:r(j),onClick:t=>N(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:M},[e(u,{name:`i-lucide-list`,class:`rule-btn-ic`}),l[8]||=t(`选择历史…`,-1)])])):(f(),s(`div`,{key:0,class:a([`lc-rule`,`is-${r(L).tone}`])},[o(`div`,ce,[o(`span`,le,[e(u,{name:`i-lucide-git-branch`,class:`rule-svg`})]),l[5]||=o(`b`,{class:`rule-title`},`写入规则`,-1),l[6]||=o(`span`,{class:`rule-file mono`},`agile/last-change.json`,-1),o(`span`,ue,[o(`i`,{class:a([`rule-dot`,`tone-${r(L).tone}`])},null,2),t(` 当前 `+h(r(L).text),1),r(E)?.state===`committed`&&r(E).hash?(f(),s(p,{key:0},[l[3]||=t(` · `,-1),o(`span`,de,h(r(E).hash),1)],64)):v(``,!0)]),o(`button`,{class:`rule-btn`,onClick:M},[e(u,{name:`i-lucide-history`,class:`rule-btn-ic`}),l[4]||=t(`查看历史 `,-1),r(D).length?(f(),s(`i`,fe,h(r(D).length),1)):v(``,!0)])]),o(`ul`,pe,[(f(),s(p,null,c(Vn,t=>o(`li`,{key:t.key,class:a([`rule-case`,{on:r(Hn)===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(T)?(f(),s(`div`,Se,[o(`header`,Ce,[o(`div`,we,[o(`p`,Te,[l[10]||=o(`span`,{class:`k-dot`},null,-1),l[11]||=t(`最近一次交付 `,-1),l[12]||=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($n)?(f(),s(`span`,Oe,`今天`)):v(``,!0),r(T).merged?(f(),s(`span`,{key:2,class:`k-merged`,title:r(Wn)},`合并记录 · `+h(r(Un))+` 次交付`,9,ke)):v(``,!0)]),o(`h2`,Ae,h(r(T).title),1),r(T).summary?(f(),s(`p`,je,h(r(T).summary),1)):v(``,!0),o(`div`,Me,[o(`span`,null,[o(`b`,null,h(r(R).length),1),l[13]||=t(` 处变更`,-1)]),l[18]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(Xn).length),1),l[14]||=t(` 个文件`,-1)]),l[19]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(V).length),1),l[15]||=t(` 条测试场景`,-1)]),r(z).length?(f(),s(p,{key:0},[l[17]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(z).length),1),l[16]||=t(` 项额外工作`,-1)])],64)):v(``,!0)])]),o(`div`,x,[o(`div`,{class:a([`ring`,{warn:r(B).length&&!r(J)}]),style:ee({"--pct":r(Yn)})},[o(`div`,Ne,[o(`b`,null,[t(h(r(q)),1),o(`small`,null,`/`+h(r(B).length||0),1)]),o(`span`,null,h(r(B).length?r(J)?`验证全通过`:`有未通过项`:`无验证记录`),1)])],6)])]),o(`section`,Pe,[o(`div`,Fe,[o(`span`,Ie,[e(u,{name:`i-lucide-git-commit-horizontal`,class:`s-svg`})]),l[20]||=o(`h2`,{class:`s-title`},`变更清单`,-1),o(`span`,Le,h(r(R).length),1),l[21]||=o(`span`,{class:`s-hint`},`故事与任务各自是新增还是状态变更、动过哪些文件`,-1)]),r(R).length?(f(),s(`div`,ze,[o(`table`,Be,[l[23]||=o(`colgroup`,null,[o(`col`,{class:`c-ent`}),o(`col`,{class:`c-act`}),o(`col`),o(`col`,{class:`c-file`})],-1),l[24]||=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(R),(n,r)=>(f(),s(`tr`,{key:`${n.kind}-${n.id}-${r}`},[o(`td`,null,[o(`div`,Ve,[o(`div`,He,[o(`span`,{class:a([`kind`,`kind-${n.kind}`])},h(Kn[n.kind]??n.kind),3),e(d,{to:`/story/${Zn(n)}`,class:`ent-id mono`},{default:m(()=>[t(h(n.id),1)]),_:2},1032,[`to`])]),n.title?(f(),s(`p`,Ue,h(n.title),1)):v(``,!0)])]),o(`td`,null,[o(`span`,{class:a([`act`,`act-${n.action}`])},h(Gn[n.action]??n.action),3),n.from||n.to?(f(),s(`p`,We,[o(`span`,Ge,h(n.from??`—`),1),l[22]||=o(`i`,null,`→`,-1),o(`span`,Ke,h(n.to??`—`),1)])):v(``,!0)]),o(`td`,qe,h(n.note??`—`),1),o(`td`,null,[o(`div`,Je,[(f(!0),s(p,null,c(n.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},h(e),9,Ye))),128)),n.files?.length?v(``,!0):(f(),s(`span`,Xe,`—`))])])]))),128))])])])):(f(),s(`p`,Re,`这次没有涉及任何故事或任务。`))]),o(`div`,Ze,[o(`section`,Qe,[o(`div`,$e,[o(`span`,et,[e(u,{name:`i-lucide-sparkles`,class:`s-svg`})]),l[25]||=o(`h2`,{class:`s-title`},`额外做的事`,-1),o(`span`,tt,h(r(z).length),1)]),o(`div`,nt,[r(z).length?v(``,!0):(f(),s(`p`,rt,`没有计划外的改动。`)),(f(!0),s(p,null,c(r(z),(e,t)=>(f(),s(`article`,{key:t,class:`x-item`},[l[26]||=o(`span`,{class:`x-mark`},null,-1),o(`div`,it,[o(`p`,at,h(e.title),1),e.detail?(f(),s(`p`,ot,h(e.detail),1)):v(``,!0),e.files?.length?(f(),s(`div`,st,[(f(!0),s(p,null,c(e.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},h(e),9,ct))),128))])):v(``,!0)])]))),128))])]),o(`section`,lt,[o(`div`,ut,[o(`span`,dt,[e(u,{name:`i-lucide-badge-check`,class:`s-svg`})]),l[27]||=o(`h2`,{class:`s-title`},`验证结果`,-1),o(`span`,ft,h(r(q))+`/`+h(r(B).length),1)]),o(`div`,pt,[r(B).length?v(``,!0):(f(),s(`p`,mt,`这次没有留下验证记录。`)),(f(!0),s(p,null,c(r(B),(t,n)=>(f(),s(`div`,{key:n,class:`v-item`},[o(`span`,{class:a([`v-ic`,`v-${t.result}`])},[e(u,{name:Jn[t.result]??`i-lucide-circle`,class:`v-svg`},null,8,[`name`])],2),o(`div`,ht,[o(`p`,gt,h(t.what),1),t.detail?(f(),s(`p`,_t,h(t.detail),1)):v(``,!0)]),o(`span`,{class:a([`v-res`,`v-${t.result}`])},h(qn[t.result]??t.result),3)]))),128))])])]),r(G).length||r(K).length?(f(),s(`section`,vt,[o(`div`,yt,[o(`span`,bt,[e(u,{name:`i-lucide-key-round`,class:`s-svg`})]),l[28]||=o(`h2`,{class:`s-title`},`调试入口与账号`,-1),l[29]||=o(`span`,{class:`s-hint`},`照着这一栏就能自己跑起来点一遍`,-1)]),o(`div`,xt,[r(G).length?(f(),s(`div`,St,[l[30]||=o(`p`,{class:`micro`},`访问地址`,-1),(f(!0),s(p,null,c(r(G),(n,i)=>(f(),s(`div`,{key:i,class:`u-item`},[o(`div`,Ct,[o(`a`,{href:n.url,target:`_blank`,rel:`noreferrer`,class:`u-link`},[o(`span`,Tt,h(n.label??`入口`),1),e(u,{name:`i-lucide-arrow-up-right`,class:`u-go`})],8,wt),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,Et)]),o(`p`,Dt,h(n.url),1),n.note?(f(),s(`p`,Ot,h(n.note),1)):v(``,!0)]))),128))])):v(``,!0),r(K).length?(f(),s(`div`,kt,[l[32]||=o(`p`,{class:`micro`},`账号密码`,-1),(f(!0),s(p,null,c(r(K),(n,i)=>(f(),s(`div`,{key:i,class:`a-item`},[o(`div`,At,[n.role?(f(),s(`span`,jt,h(n.role),1)):v(``,!0),o(`span`,Mt,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,Nt)]),o(`div`,Pt,[l[31]||=o(`span`,{class:`a-key`},`密码`,-1),n.password?(f(),s(`span`,Ft,h(n.password),1)):(f(),s(`span`,It,`无密码 / 走单点登录`))]),n.note?(f(),s(`p`,Lt,h(n.note),1)):v(``,!0)]))),128))])):v(``,!0)])])):v(``,!0),r(H).length?(f(),s(`section`,Rt,[o(`div`,zt,[o(`span`,Bt,[e(u,{name:`i-lucide-terminal-square`,class:`s-svg`})]),l[33]||=o(`h2`,{class:`s-title`},`测试前准备`,-1),o(`span`,Vt,h(r(H).length),1),l[34]||=o(`span`,{class:`s-hint`},`按顺序做完这些再开始点,命令可直接复制`,-1)]),o(`ol`,Ht,[(f(!0),s(p,null,c(r(H),(n,i)=>(f(),s(`li`,{key:i},[o(`div`,Ut,[o(`p`,Wt,h(n.step),1),n.command?(f(),s(`div`,Gt,[o(`code`,Kt,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,qt)])):v(``,!0),n.note?(f(),s(`p`,Jt,h(n.note),1)):v(``,!0)])]))),128))])])):v(``,!0),o(`section`,Yt,[o(`div`,Xt,[o(`span`,Zt,[e(u,{name:`i-lucide-flask-conical`,class:`s-svg`})]),l[35]||=o(`h2`,{class:`s-title`},`测试场景`,-1),o(`span`,S,h(r(V).length),1),l[36]||=o(`span`,{class:`s-hint`},`一条一段:照着步骤走,末尾那句就是验收标准`,-1)]),r(V).length?(f(),s(`div`,$t,[(f(!0),s(p,null,c(r(V),(n,r)=>(f(),s(`article`,{key:n.id??r,class:`sc lc-sc`},[o(`header`,en,[o(`span`,tn,h(n.id??`TC-${r+1}`),1),o(`h3`,nn,h(n.title),1)]),n.steps?.length?(f(),s(`div`,rn,[l[37]||=o(`p`,{class:`micro`},`测试步骤`,-1),o(`ol`,an,[(f(!0),s(p,null,c(n.steps,(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])])):v(``,!0),o(`div`,on,[o(`p`,sn,[e(u,{name:`i-lucide-badge-check`,class:`sc-acc-ic`}),l[38]||=t(`验收标准`,-1)]),o(`p`,cn,h(n.expect),1),n.acceptance||n.storyIds?.length?(f(),s(`div`,ln,[n.acceptance?(f(),s(`span`,un,`对应验收:`+h(n.acceptance),1)):v(``,!0),n.storyIds?.length?(f(),s(`span`,dn,[(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`,Qt,`这次没有单独列测试场景。`))]),o(`div`,fn,[o(`section`,pn,[o(`div`,mn,[o(`span`,hn,[e(u,{name:`i-lucide-message-square-more`,class:`s-svg`})]),l[39]||=o(`h2`,{class:`s-title`},`说明`,-1)]),o(`div`,gn,[r(U).length?(f(),s(`ul`,vn,[(f(!0),s(p,null,c(r(U),(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])):(f(),s(`p`,_n,`没有额外说明。`))])]),r(W).length?(f(),s(`section`,yn,[o(`div`,bn,[o(`span`,xn,[e(u,{name:`i-lucide-list-todo`,class:`s-svg`})]),l[40]||=o(`h2`,{class:`s-title`},`还没做的`,-1),o(`span`,Sn,h(r(W).length),1)]),o(`div`,Cn,[o(`ul`,wn,[(f(!0),s(p,null,c(r(W),(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[9]||=i(`<h2 class="em-title" data-v-777e3d28>还没有交付记录</h2><p class="em-sub" data-v-777e3d28> 每完成一项功能,AI 都要把「改了哪些故事与任务、额外做了什么、验了什么、怎么测」 写进下面这个文件,这一页就会自动排出来。 </p><p class="em-path mono" data-v-777e3d28>agile/last-change.json</p><p class="em-note" data-v-777e3d28> 每次只保留最近一次(覆盖写,不追加)· 格式见 <span class="mono" data-v-777e3d28>.agents/skills/scrum-planning/references/schema.md</span> 第 4 节 </p>`,4)])),(f(),g(re,{to:`body`},[r(O)?(f(),s(`div`,{key:0,class:`lc-hist-mask`,onClick:l[2]||=ie(e=>O.value=!1,[`self`])},[o(`div`,Tn,[o(`header`,En,[o(`div`,Dn,[l[44]||=o(`h3`,{id:`lc-hist-title`,class:`lc-hist-title`},`历史版本`,-1),o(`p`,On,[l[41]||=t(` 从 git 里读 `,-1),l[42]||=o(`span`,{class:`mono`},`agile/last-change.json`,-1),l[43]||=t(` 的提交记录 `,-1),r(D).length?(f(),s(p,{key:0},[t(`· 共 `+h(r(D).length)+` 版`,1)],64)):v(``,!0)])]),o(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,onClick:l[0]||=e=>O.value=!1},[e(u,{name:`i-lucide-x`,class:`lc-hist-x-ic`})])]),r(A)?(f(),s(`p`,kn,h(r(A)),1)):r(k)?(f(),s(`div`,An,`正在读 git 历史…`)):(f(),s(`div`,jn,[(f(!0),s(p,null,c(r(D),(e,t)=>(f(),s(`button`,{key:e.hash,class:a([`hist-item`,{on:r(w)?.hash===e.hash}]),disabled:r(j),onClick:t=>N(e)},[o(`span`,{class:a([`hist-item-dot`,{live:t===0}])},null,2),o(`span`,Nn,[o(`b`,null,h(e.subject||`(没有提交说明)`),1),o(`i`,Pn,h(e.date),1)]),o(`span`,Fn,h(e.short),1)],10,Mn))),128)),r(D).length?v(``,!0):(f(),s(`p`,In,` 这个文件还没有提交记录 —— 先 commit 一次,历史里才会出现版本。 `))])),o(`footer`,Ln,[l[45]||=o(`span`,{class:`dim`},`选一个版本即可在页面上只读查看,不会改动文件。`,-1),o(`button`,{class:`hist-close`,onClick:l[1]||=e=>O.value=!1},`关闭`)])])])):v(``,!0)]))],64)}}}),[[`__scopeId`,`data-v-777e3d28`]]);export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./
|
|
1
|
+
import{t as e}from"./Csqgy925.js";function t(t,n,r){let i=t.findIndex(t=>e(t,n)),a=t.findIndex(t=>e(t,r));if(i===-1||a===-1)return[];let[o,s]=[i,a].sort((e,t)=>e-t);return t.slice(o,s+1)}export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,E as t,On as n,T as r,Zn as i,_ as a,b as o,bt as s,er as c,g as l,k as u,mt as d,o as f,qt as p,tr as m,y as h}from"./DZo3dYLJ.js";import{t as ee}from"./
|
|
1
|
+
import{D as e,E as t,On as n,T as r,Zn as i,_ as a,b as o,bt as s,er as c,g as l,k as u,mt as d,o as f,qt as p,tr as m,y as h}from"./DZo3dYLJ.js";import{t as ee}from"./CJ2mz0WY.js";import{t as te}from"./DrZpfjBq.js";import{a as g,i as _,o as v,r as ne,s as y}from"#entry";var re={class:`kpis`},ie={class:`v`},ae={class:`v`},oe={class:`v`},se={class:`v`},ce={class:`v mono`},le={class:`card gantt`},ue={class:`ticks`},de={class:`track`},fe={class:`label`},pe={class:`lane`},me={class:`grid-lines`},he=[`title`],ge={class:`track-hd`},_e={class:`tag tag-neutral mono`},ve={class:`dim`},ye={class:`grow-row`},b={class:`label`},x={class:`tag tag-ghost`},S={class:`lane`},C={class:`grid-lines`},w={class:`label`},T=[`title`],E=[`title`],D={class:`pts mono dim`},O={class:`lane`},k={class:`grid-lines`},A={class:`track last`},j={class:`label`},M={class:`dim pts mono`},N={class:`tag tag-neutral`},P={class:`lane`},be={class:`grid-lines`},xe={class:`extra`},Se={key:0,class:`card`},Ce={class:`card-hd`},we={class:`h2`},Te={class:`tag tag-neutral`},Ee={class:`card-bd`},De={class:`list`},Oe={class:`dep-txt`},ke={class:`dep-txt dim`},F={key:1,class:`card`},Ae={class:`card-hd`},je={class:`h2`},Me={class:`tag tag-error`},Ne={class:`card-bd`},Pe={class:`list`},Fe={class:`dep-txt`},Ie={class:`dim`},I=_(u({__name:`gantt`,setup(u){let{sprints:_,stories:I,milestones:L,storyById:R,actualRange:z,progress:B,addDays:Le,diffDays:V,md:H,now:U,MS_COLOR:Re,MS_LABEL:ze,KIND_LABEL:Be,KIND_ICON:Ve,STATE_LABEL:He,STATE_DOT:W,dependencyPairs:G,blockedStories:K}=y(),Ue=l(()=>_.value.map(e=>({id:e.id,name:e.name,start:e.start,end:e.end,rows:(e.stories??[]).map(e=>R.value.get(e)).filter(Boolean).map(e=>({...e,actual:z(e),prog:B(e)}))}))),q=l(()=>I.value.filter(e=>e.schedule)),We=l(()=>I.value.filter(e=>!e.schedule)),J=l(()=>[..._.value.map(e=>e.start),...q.value.map(e=>e.schedule.start),...L.value.map(e=>e.due)].sort()[0]??U),Ge=l(()=>{let e=[..._.value.map(e=>e.end),...q.value.map(e=>e.schedule.end),...L.value.map(e=>e.due)].sort();return e[e.length-1]??U}),Y=l(()=>Math.max(1,V(J.value,Ge.value)+1)),X=e=>V(J.value,e)/Y.value*100,Z=(e,t)=>({left:`${X(e)}%`,width:`${Math.max(1.1,(V(e,t)+1)/Y.value*100)}%`}),Q=l(()=>{let e=Y.value>90?14:Y.value>45?7:4,t=[];for(let n=0;n<=Y.value;n+=e)t.push({date:Le(J.value,n),x:n/Y.value*100});return t}),$=l(()=>X(U));return(l,u)=>{let y=ne,z=te,B=ee;return d(),o(`div`,null,[a(`div`,re,[a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(0)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(0),size:`sm`},null,8,[`tone`]),u[1]||=a(`p`,{class:`k`},`迭代窗口`,-1),a(`p`,ie,[t(m(n(_).length),1),u[0]||=a(`small`,null,`个`,-1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(1)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(1),size:`sm`},null,8,[`tone`]),u[3]||=a(`p`,{class:`k`},`里程碑`,-1),a(`p`,ae,[t(m(n(L).length),1),u[2]||=a(`small`,null,`个`,-1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(2)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(2),size:`sm`},null,8,[`tone`]),u[4]||=a(`p`,{class:`k`},`已排期故事`,-1),a(`p`,oe,[t(m(n(q).length),1),a(`small`,null,`/ `+m(n(I).length),1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(3)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(3),size:`sm`},null,8,[`tone`]),u[6]||=a(`p`,{class:`k`},`时间跨度`,-1),a(`p`,se,[t(m(n(Y)),1),u[5]||=a(`small`,null,`天`,-1)])],2),a(`div`,{class:i([`kpi`,(`cardToneClass`in l?l.cardToneClass:n(v))(4)])},[e(y,{tone:(`cardTone`in l?l.cardTone:n(g))(4),size:`sm`},null,8,[`tone`]),u[7]||=a(`p`,{class:`k`},`今天`,-1),a(`p`,ce,m(n(U)),1)],2)]),a(`div`,le,[u[11]||=r(`<div class="gantt-hd" data-v-719eb5d7><h2 class="h2" data-v-719eb5d7>时间轴</h2><div class="legend" data-v-719eb5d7><span class="lg" data-v-719eb5d7><i class="sw plan" data-v-719eb5d7></i>计划</span><span class="lg" data-v-719eb5d7><i class="sw real" data-v-719eb5d7></i>实际</span><span class="lg" data-v-719eb5d7><i class="sw ms" data-v-719eb5d7></i>里程碑</span><span class="lg" data-v-719eb5d7><i class="sw mvp" data-v-719eb5d7></i>MVP 节点</span><span class="lg" data-v-719eb5d7><i class="sw today" data-v-719eb5d7></i>今天</span></div></div>`,1),a(`div`,ue,[(d(!0),o(f,null,s(n(Q),e=>(d(),o(`div`,{key:e.date,class:`tick`,style:c({left:e.x+`%`})},[a(`span`,null,m(n(H)(e.date)),1)],4))),128)),a(`div`,{class:`today-line`,style:c({left:n($)+`%`})},null,4),a(`div`,{class:`today-flag`,style:c({left:n($)+`%`})},`今天 `+m(n(H)(n(U))),5)]),a(`section`,de,[u[8]||=a(`header`,{class:`track-hd`},`里程碑`,-1),(d(!0),o(f,null,s(n(L),r=>(d(),o(`div`,{key:r.id,class:`grow-row`},[a(`div`,fe,[a(`span`,{class:i([`tag`,r.kind===`mvp`?`tag-mint`:`tag-primary`])},[e(z,{name:n(Ve)[r.kind],class:`size-3`},null,8,[`name`]),t(m(n(Be)[r.kind]),1)],2),e(B,{to:`/milestones`,class:`lbl-txt`},{default:p(()=>[t(m(r.title),1)]),_:2},1024),a(`span`,{class:i([`tag`,`tag-${n(Re)[r.status]}`])},m(n(ze)[r.status]),3)]),a(`div`,pe,[a(`div`,me,[(d(!0),o(f,null,s(n(Q),e=>(d(),o(`span`,{key:e.date,style:c({left:e.x+`%`})},null,4))),128))]),a(`span`,{class:i([`diamond`,{mvp:r.kind===`mvp`}]),style:c({left:X(r.due)+`%`}),title:`${r.id} · ${r.due} · ${r.criteria}`},null,14,he)])]))),128))]),(d(!0),o(f,null,s(n(Ue),r=>(d(),o(`section`,{key:r.id,class:`track`},[a(`header`,ge,[a(`span`,_e,m(r.id),1),t(` `+m(r.name)+` `,1),a(`span`,ve,m(n(H)(r.start))+` ~ `+m(n(H)(r.end)),1)]),a(`div`,ye,[a(`div`,b,[a(`span`,x,[e(z,{name:`i-lucide-calendar-range`,class:`size-3`}),u[9]||=t(`迭代窗口`,-1)])]),a(`div`,S,[a(`div`,C,[(d(!0),o(f,null,s(n(Q),e=>(d(),o(`span`,{key:e.date,style:c({left:e.x+`%`})},null,4))),128))]),a(`div`,{class:`band`,style:c(Z(r.start,r.end))},null,4)])]),(d(!0),o(f,null,s(r.rows,r=>(d(),o(`div`,{key:r.id,class:`grow-row`},[a(`div`,w,[a(`i`,{class:`sdot`,style:c({background:n(W)[r.status]})},null,4),e(B,{to:`/story/${r.id}`,class:`lbl-txt`},{default:p(()=>[t(m(r.title),1)]),_:2},1032,[`to`]),r.dependsOn?.length?(d(),o(`span`,{key:0,class:`tag tag-secondary`,title:`依赖:${r.dependsOn.join(`、`)}`},m(r.dependsOn.length),9,T)):h(``,!0),r.blocked?(d(),o(`span`,{key:1,class:`tag tag-error`,title:`阻塞:${r.blocked.reason}(自 ${r.blocked.since})`},`!`,8,E)):h(``,!0),a(`span`,D,m(r.points)+` 点 · `+m(r.prog.done)+`/`+m(r.prog.total),1)]),a(`div`,O,[a(`div`,k,[(d(!0),o(f,null,s(n(Q),e=>(d(),o(`span`,{key:e.date,style:c({left:e.x+`%`})},null,4))),128))]),r.schedule?(d(),o(`div`,{key:0,class:`g-plan`,style:c(Z(r.schedule.start,r.schedule.end))},null,4)):h(``,!0),r.actual?(d(),o(`div`,{key:1,class:`g-real`,style:c(Z(r.actual.start,r.actual.end))},null,4)):h(``,!0)])]))),128))]))),128)),a(`section`,A,[u[10]||=a(`header`,{class:`track-hd`},`未排期(backlog)`,-1),(d(!0),o(f,null,s(n(We),r=>(d(),o(`div`,{key:r.id,class:`grow-row`},[a(`div`,j,[a(`i`,{class:`sdot`,style:c({background:n(W)[r.status]})},null,4),e(B,{to:`/story/${r.id}`,class:`lbl-txt`},{default:p(()=>[t(m(r.title),1)]),_:2},1032,[`to`]),a(`span`,M,m(r.points)+` 点`,1),a(`span`,N,m(n(He)[r.status]),1)]),a(`div`,P,[a(`div`,be,[(d(!0),o(f,null,s(n(Q),e=>(d(),o(`span`,{key:e.date,style:c({left:e.x+`%`})},null,4))),128))])])]))),128))])]),a(`div`,xe,[n(G).length?(d(),o(`div`,Se,[a(`div`,Ce,[a(`h2`,we,[e(z,{name:`i-lucide-git-branch`,class:`size-3.5`}),u[12]||=t(`依赖链`,-1)]),a(`span`,Te,m(n(G).length),1)]),a(`div`,Ee,[a(`ul`,De,[(d(!0),o(f,null,s(n(G),r=>(d(),o(`li`,{key:`${r.from}-${r.to}`},[e(B,{to:`/story/${r.to}`,class:`mono link`},{default:p(()=>[t(m(r.to),1)]),_:2},1032,[`to`]),a(`span`,Oe,m(n(R).get(r.to)?.title),1),e(z,{name:`i-lucide-arrow-left`,class:`size-3 dim`}),u[13]||=a(`span`,{class:`dim`},`依赖`,-1),e(B,{to:`/story/${r.from}`,class:`mono link`},{default:p(()=>[t(m(r.from),1)]),_:2},1032,[`to`]),a(`span`,ke,m(n(R).get(r.from)?.title),1)]))),128))])])])):h(``,!0),n(K).length?(d(),o(`div`,F,[a(`div`,Ae,[a(`h2`,je,[e(z,{name:`i-lucide-octagon-alert`,class:`size-3.5`}),u[14]||=t(`阻塞中`,-1)]),a(`span`,Me,m(n(K).length),1)]),a(`div`,Ne,[a(`ul`,Pe,[(d(!0),o(f,null,s(n(K),n=>(d(),o(`li`,{key:n.id},[u[15]||=a(`span`,{class:`tag tag-error tag-dot`},`阻塞`,-1),e(B,{to:`/story/${n.id}`,class:`mono link`},{default:p(()=>[t(m(n.id),1)]),_:2},1032,[`to`]),a(`span`,Fe,m(n.title),1),a(`span`,Ie,`· `+m(n.blocked.reason)+`(自 `+m(n.blocked.since)+`)`,1)]))),128))])])])):h(``,!0)])])}}}),[[`__scopeId`,`data-v-719eb5d7`]]);export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,E as t,Lt as n,On as r,Tn as i,Zn as a,_ as o,at as s,b as c,bt as l,et as u,g as d,k as f,mt as p,o as m,qt as h,tr as g,v as _,vn as v,wt as y,xt as b,y as x}from"./DZo3dYLJ.js";import{C as S}from"./51OWHj8c.js";import{t as C}from"./CsyY7ot8.js";import{r as w,t as T}from"./oXSDGTSr.js";import{h as E,i as D,m as O,n as k,t as A}from"./Baq-Hrpf.js";import{t as j}from"./DHihWhf5.js";import{m as M}from"./CuJUHLl8.js";import{p as N}from"./Vo4wMbnS.js";import{t as P}from"./CK9_veoz.js";import{t as F}from"./B43-KCi6.js";import{t as I}from"./BuOKDFiJ.js";import{t as L}from"./D3YCAmfu.js";import{t as R}from"./D2zrOcWn.js";import{D as z,E as B,T as V,w as H}from"#entry";function U(e,t){return j(e)?!1:Array.isArray(e)?e.some(e=>T(e,t)):T(e,t)}function W({type:e,defaultValue:t,modelValue:n}){let r=n||t;return n!==void 0||t!==void 0?Array.isArray(r)?`multiple`:`single`:e??`single`}function G({type:e,defaultValue:t,modelValue:n}){return e||W({type:e,defaultValue:t,modelValue:n})}function K({type:e,defaultValue:t}){return t===void 0?e===`single`?void 0:[]:t}function q(e,t){let n=d(()=>G(e)),r=N(e,`modelValue`,t,{defaultValue:K(e),passive:e.modelValue===void 0,deep:!0});function i(e){if(n.value===`single`)r.value=T(e,r.value)?void 0:e;else{let t=Array.isArray(r.value)?[...r.value||[]]:[r.value].filter(Boolean);if(U(t,e)){let n=t.findIndex(t=>T(t,e));t.splice(n,1)}else t.push(e);r.value=t}}return{modelValue:r,changeModelValue:i,isSingle:d(()=>n.value===`single`)}}var[J,Y]=E(`AccordionRoot`),X=f({__name:`AccordionRoot`,props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:`vertical`},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,a=t,{dir:o,disabled:s,unmountOnHide:c}=i(n),l=F(o),{modelValue:u,changeModelValue:d,isSingle:f}=q(n,a),{forwardRef:m,currentElement:g}=L();return Y({disabled:s,direction:l,orientation:n.orientation,parentElement:g,isSingle:f,collapsible:n.collapsible,modelValue:u,changeModelValue:d,unmountOnHide:c}),(t,n)=>(p(),_(r(P),{ref:r(m),"as-child":e.asChild,as:e.as},{default:h(()=>[b(t.$slots,`default`,{modelValue:r(u)})]),_:3},8,[`as-child`,`as`]))}}),Z=function(e){return e.Open=`open`,e.Closed=`closed`,e}(Z||{}),[Q,$]=E(`AccordionItem`),ee=f({__name:`AccordionItem`,props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:t}){let n=e,i=J(),a=d(()=>i.isSingle.value?n.value===i.modelValue.value:Array.isArray(i.modelValue.value)&&i.modelValue.value.includes(n.value)),o=d(()=>i.disabled.value||n.disabled),s=d(()=>o.value?``:void 0),c=d(()=>a.value?Z.Open:Z.Closed);t({open:a,dataDisabled:s});let{currentRef:l,currentElement:u}=L();$({open:a,dataState:c,disabled:o,dataDisabled:s,triggerId:``,currentRef:l,currentElement:u,value:d(()=>n.value)});function f(e){let t=e.target;if(Array.from(i.parentElement.value?.querySelectorAll(`[data-reka-collection-item]`)??[]).findIndex(e=>e===t)===-1)return null;z(e,t,i.parentElement.value,{arrowKeyOptions:i.orientation,dir:i.direction.value,focus:!0})}return(e,t)=>(p(),_(r(B),{"data-orientation":r(i).orientation,"data-disabled":s.value,"data-state":c.value,disabled:o.value,open:a.value,as:n.as,"as-child":n.asChild,"unmount-on-hide":n.unmountOnHide??r(i).unmountOnHide.value,onKeydown:S(f,[`up`,`down`,`left`,`right`,`home`,`end`])},{default:h(()=>[b(e.$slots,`default`,{open:a.value})]),_:3},8,[`data-orientation`,`data-disabled`,`data-state`,`disabled`,`open`,`as`,`as-child`,`unmount-on-hide`]))}}),te=f({__name:`AccordionContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=J(),i=Q();return L(),(a,o)=>(p(),_(r(V),{role:`region`,"as-child":t.asChild,as:e.as,"force-mount":t.forceMount,"aria-labelledby":r(i).triggerId,"data-state":r(i).dataState.value,"data-disabled":r(i).dataDisabled.value,"data-orientation":r(n).orientation,style:{"--reka-accordion-content-width":`var(--reka-collapsible-content-width)`,"--reka-accordion-content-height":`var(--reka-collapsible-content-height)`},onContentFound:o[0]||=e=>r(n).changeModelValue(r(i).value.value)},{default:h(()=>[b(a.$slots,`default`)]),_:3},8,[`as-child`,`as`,`force-mount`,`aria-labelledby`,`data-state`,`data-disabled`,`data-orientation`]))}}),ne=f({__name:`AccordionHeader`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h3`}},setup(e){let t=e,n=J(),i=Q();return L(),(e,a)=>(p(),_(r(P),{as:t.as,"as-child":t.asChild,"data-orientation":r(n).orientation,"data-state":r(i).dataState.value,"data-disabled":r(i).dataDisabled.value},{default:h(()=>[b(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-orientation`,`data-state`,`data-disabled`]))}}),re=f({__name:`AccordionTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=J(),i=Q();i.triggerId||=C(void 0,`reka-accordion-trigger`);function a(){let e=n.isSingle.value&&i.open.value&&!n.collapsible;i.disabled.value||e||n.changeModelValue(i.value.value)}return(e,o)=>(p(),_(r(H),{id:r(i).triggerId,ref:r(i).currentRef,"data-reka-collection-item":``,as:t.as,"as-child":t.asChild,"aria-disabled":r(i).disabled.value||void 0,"aria-expanded":r(i).open.value||!1,"data-disabled":r(i).dataDisabled.value,"data-orientation":r(n).orientation,"data-state":r(i).dataState.value,disabled:r(i).disabled.value,onClick:a},{default:h(()=>[b(e.$slots,`default`)]),_:3},8,[`id`,`as`,`as-child`,`aria-disabled`,`aria-expanded`,`data-disabled`,`data-orientation`,`data-state`,`disabled`]))}}),ie={slots:{root:`w-full`,item:`border-b border-default last:border-b-0`,header:`flex`,trigger:`group flex-1 flex items-center gap-1.5 font-medium text-sm py-3.5 outline-primary/25 focus-visible:outline-3 min-w-0 rounded-md`,content:`data-[state=open]:animate-[accordion-down_200ms_var(--ease-out)] data-[state=closed]:animate-[accordion-up_200ms_var(--ease-out)] data-[state=closed]:overflow-hidden focus:outline-none`,body:`text-sm pb-3.5`,leadingIcon:`shrink-0 size-5`,trailingIcon:`shrink-0 size-5 ms-auto group-data-[state=open]:rotate-180 transition-transform duration-200 ease-out motion-reduce:transition-none`,label:`text-start break-words`},variants:{disabled:{true:{trigger:`cursor-not-allowed opacity-75`}}}},ae={__name:`UAccordion`,props:{as:{type:null,required:!1},items:{type:Array,required:!1},trailingIcon:{type:null,required:!1},valueKey:{type:null,required:!1,default:`value`},labelKey:{type:null,required:!1,default:`label`},class:{type:null,required:!1},ui:{type:Object,required:!1},collapsible:{type:Boolean,required:!1,default:!0},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},type:{type:String,required:!1,default:`single`},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:[`update:modelValue`],setup(i,{emit:s}){let f=i,v=s,y=n(),S=k(`accordion`,f),C=w(),T=I(M(S,`as`,`collapsible`,`defaultValue`,`disabled`,`modelValue`,`unmountOnHide`),v),E=d(()=>A({extend:ie,...C.ui?.accordion||{}})({disabled:S.disabled}));return(n,i)=>(p(),_(r(X),u(r(T),{type:r(S).type,"data-slot":`root`,class:E.value.root({class:[r(S).ui?.root,r(S).class]})}),{default:h(()=>[(p(!0),c(m,null,l(r(S).items,(i,s)=>(p(),_(r(ee),{key:r(D)(i,r(S).valueKey)??s,value:r(D)(i,r(S).valueKey)??String(s),disabled:i.disabled,"data-slot":`item`,class:a(E.value.item({class:[r(S).ui?.item,i.ui?.item,i.class]}))},{default:h(({open:l})=>[e(r(ne),{as:`div`,"data-slot":`header`,class:a(E.value.header({class:[r(S).ui?.header,i.ui?.header]}))},{default:h(()=>[e(r(re),{"data-slot":`trigger`,class:a(E.value.trigger({class:[r(S).ui?.trigger,i.ui?.trigger],disabled:i.disabled}))},{default:h(()=>[b(n.$slots,`leading`,{item:i,index:s,open:l,ui:E.value},()=>[i.icon?(p(),_(R,{key:0,name:i.icon,"data-slot":`leadingIcon`,class:a(E.value.leadingIcon({class:[r(S).ui?.leadingIcon,i?.ui?.leadingIcon]}))},null,8,[`name`,`class`])):x(``,!0)]),r(D)(i,r(S).labelKey)||y.default?(p(),c(`span`,{key:0,"data-slot":`label`,class:a(E.value.label({class:[r(S).ui?.label,i.ui?.label]}))},[b(n.$slots,`default`,{item:i,index:s,open:l},()=>[t(g(r(D)(i,r(S).labelKey)),1)])],2)):x(``,!0),b(n.$slots,`trailing`,{item:i,index:s,open:l,ui:E.value},()=>[e(R,{name:i.trailingIcon||r(S).trailingIcon||r(C).ui.icons.chevronDown,"data-slot":`trailingIcon`,class:a(E.value.trailingIcon({class:[r(S).ui?.trailingIcon,i.ui?.trailingIcon]}))},null,8,[`name`,`class`])])]),_:2},1032,[`class`])]),_:2},1032,[`class`]),i.content||y.content||i.slot&&y[i.slot]||y.body||i.slot&&y[`${i.slot}-body`]?(p(),_(r(te),{key:0,"data-slot":`content`,class:a(E.value.content({class:[r(S).ui?.content,i.ui?.content]}))},{default:h(()=>[b(n.$slots,i.slot||`content`,{item:i,index:s,open:l,ui:E.value},()=>[o(`div`,{"data-slot":`body`,class:a(E.value.body({class:[r(S).ui?.body,i.ui?.body]}))},[b(n.$slots,i.slot?`${i.slot}-body`:`body`,{item:i,index:s,open:l,ui:E.value},()=>[t(g(i.content),1)])],2)])]),_:2},1032,[`class`])):x(``,!0)]),_:2},1032,[`value`,`disabled`,`class`]))),128))]),_:3},16,[`type`,`class`]))}},oe={slots:{root:`my-5`,trigger:`text-base`}},se={__name:`ProseAccordion`,props:{type:{type:String,required:!1,default:`multiple`},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(e){let t=e,i=n(),o=k(`prose.accordion`,t),c=w(),l=d(()=>A({extend:oe,...c.ui?.prose?.accordion||{}})),u=v(1),f=d(()=>(u.value,i.default?.()?.flatMap(m).filter(Boolean)||[]));function m(e,t){return typeof e.type==`symbol`?e.children?.map(m):{index:t,label:e.props?.label||`${t}`,description:e.props?.description,icon:e.props?.icon,component:e}}return s(()=>u.value++),(e,t)=>(p(),_(ae,{type:r(o).type,items:f.value,"unmount-on-hide":!1,class:a(r(o).class),ui:r(O)(l.value(),r(o).ui)},{content:h(({item:e})=>[(p(),_(y(e.component)))]),_:1},8,[`type`,`items`,`class`,`ui`]))}};export{se as default};
|
|
1
|
+
import{D as e,E as t,Lt as n,On as r,Tn as i,Zn as a,_ as o,at as s,b as c,bt as l,et as u,g as d,k as f,mt as p,o as m,qt as h,tr as g,v as _,vn as v,wt as y,xt as b,y as x}from"./DZo3dYLJ.js";import{C as S}from"./51OWHj8c.js";import{t as C}from"./B3jkABw9.js";import{r as w,t as T}from"./Csqgy925.js";import{h as E,i as D,m as O,n as k,t as A}from"./6gFtTBwm.js";import{t as j}from"./DHihWhf5.js";import{m as M}from"./CuJUHLl8.js";import{p as N}from"./Vo4wMbnS.js";import{t as P}from"./CK9_veoz.js";import{t as F}from"./Ci0qbkgh.js";import{t as I}from"./BuOKDFiJ.js";import{t as L}from"./D3YCAmfu.js";import{t as R}from"./DrZpfjBq.js";import{D as z,E as B,T as V,w as H}from"#entry";function U(e,t){return j(e)?!1:Array.isArray(e)?e.some(e=>T(e,t)):T(e,t)}function W({type:e,defaultValue:t,modelValue:n}){let r=n||t;return n!==void 0||t!==void 0?Array.isArray(r)?`multiple`:`single`:e??`single`}function G({type:e,defaultValue:t,modelValue:n}){return e||W({type:e,defaultValue:t,modelValue:n})}function K({type:e,defaultValue:t}){return t===void 0?e===`single`?void 0:[]:t}function q(e,t){let n=d(()=>G(e)),r=N(e,`modelValue`,t,{defaultValue:K(e),passive:e.modelValue===void 0,deep:!0});function i(e){if(n.value===`single`)r.value=T(e,r.value)?void 0:e;else{let t=Array.isArray(r.value)?[...r.value||[]]:[r.value].filter(Boolean);if(U(t,e)){let n=t.findIndex(t=>T(t,e));t.splice(n,1)}else t.push(e);r.value=t}}return{modelValue:r,changeModelValue:i,isSingle:d(()=>n.value===`single`)}}var[J,Y]=E(`AccordionRoot`),X=f({__name:`AccordionRoot`,props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:`vertical`},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,a=t,{dir:o,disabled:s,unmountOnHide:c}=i(n),l=F(o),{modelValue:u,changeModelValue:d,isSingle:f}=q(n,a),{forwardRef:m,currentElement:g}=L();return Y({disabled:s,direction:l,orientation:n.orientation,parentElement:g,isSingle:f,collapsible:n.collapsible,modelValue:u,changeModelValue:d,unmountOnHide:c}),(t,n)=>(p(),_(r(P),{ref:r(m),"as-child":e.asChild,as:e.as},{default:h(()=>[b(t.$slots,`default`,{modelValue:r(u)})]),_:3},8,[`as-child`,`as`]))}}),Z=function(e){return e.Open=`open`,e.Closed=`closed`,e}(Z||{}),[Q,$]=E(`AccordionItem`),ee=f({__name:`AccordionItem`,props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:t}){let n=e,i=J(),a=d(()=>i.isSingle.value?n.value===i.modelValue.value:Array.isArray(i.modelValue.value)&&i.modelValue.value.includes(n.value)),o=d(()=>i.disabled.value||n.disabled),s=d(()=>o.value?``:void 0),c=d(()=>a.value?Z.Open:Z.Closed);t({open:a,dataDisabled:s});let{currentRef:l,currentElement:u}=L();$({open:a,dataState:c,disabled:o,dataDisabled:s,triggerId:``,currentRef:l,currentElement:u,value:d(()=>n.value)});function f(e){let t=e.target;if(Array.from(i.parentElement.value?.querySelectorAll(`[data-reka-collection-item]`)??[]).findIndex(e=>e===t)===-1)return null;z(e,t,i.parentElement.value,{arrowKeyOptions:i.orientation,dir:i.direction.value,focus:!0})}return(e,t)=>(p(),_(r(B),{"data-orientation":r(i).orientation,"data-disabled":s.value,"data-state":c.value,disabled:o.value,open:a.value,as:n.as,"as-child":n.asChild,"unmount-on-hide":n.unmountOnHide??r(i).unmountOnHide.value,onKeydown:S(f,[`up`,`down`,`left`,`right`,`home`,`end`])},{default:h(()=>[b(e.$slots,`default`,{open:a.value})]),_:3},8,[`data-orientation`,`data-disabled`,`data-state`,`disabled`,`open`,`as`,`as-child`,`unmount-on-hide`]))}}),te=f({__name:`AccordionContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=J(),i=Q();return L(),(a,o)=>(p(),_(r(V),{role:`region`,"as-child":t.asChild,as:e.as,"force-mount":t.forceMount,"aria-labelledby":r(i).triggerId,"data-state":r(i).dataState.value,"data-disabled":r(i).dataDisabled.value,"data-orientation":r(n).orientation,style:{"--reka-accordion-content-width":`var(--reka-collapsible-content-width)`,"--reka-accordion-content-height":`var(--reka-collapsible-content-height)`},onContentFound:o[0]||=e=>r(n).changeModelValue(r(i).value.value)},{default:h(()=>[b(a.$slots,`default`)]),_:3},8,[`as-child`,`as`,`force-mount`,`aria-labelledby`,`data-state`,`data-disabled`,`data-orientation`]))}}),ne=f({__name:`AccordionHeader`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h3`}},setup(e){let t=e,n=J(),i=Q();return L(),(e,a)=>(p(),_(r(P),{as:t.as,"as-child":t.asChild,"data-orientation":r(n).orientation,"data-state":r(i).dataState.value,"data-disabled":r(i).dataDisabled.value},{default:h(()=>[b(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-orientation`,`data-state`,`data-disabled`]))}}),re=f({__name:`AccordionTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=J(),i=Q();i.triggerId||=C(void 0,`reka-accordion-trigger`);function a(){let e=n.isSingle.value&&i.open.value&&!n.collapsible;i.disabled.value||e||n.changeModelValue(i.value.value)}return(e,o)=>(p(),_(r(H),{id:r(i).triggerId,ref:r(i).currentRef,"data-reka-collection-item":``,as:t.as,"as-child":t.asChild,"aria-disabled":r(i).disabled.value||void 0,"aria-expanded":r(i).open.value||!1,"data-disabled":r(i).dataDisabled.value,"data-orientation":r(n).orientation,"data-state":r(i).dataState.value,disabled:r(i).disabled.value,onClick:a},{default:h(()=>[b(e.$slots,`default`)]),_:3},8,[`id`,`as`,`as-child`,`aria-disabled`,`aria-expanded`,`data-disabled`,`data-orientation`,`data-state`,`disabled`]))}}),ie={slots:{root:`w-full`,item:`border-b border-default last:border-b-0`,header:`flex`,trigger:`group flex-1 flex items-center gap-1.5 font-medium text-sm py-3.5 outline-primary/25 focus-visible:outline-3 min-w-0 rounded-md`,content:`data-[state=open]:animate-[accordion-down_200ms_var(--ease-out)] data-[state=closed]:animate-[accordion-up_200ms_var(--ease-out)] data-[state=closed]:overflow-hidden focus:outline-none`,body:`text-sm pb-3.5`,leadingIcon:`shrink-0 size-5`,trailingIcon:`shrink-0 size-5 ms-auto group-data-[state=open]:rotate-180 transition-transform duration-200 ease-out motion-reduce:transition-none`,label:`text-start break-words`},variants:{disabled:{true:{trigger:`cursor-not-allowed opacity-75`}}}},ae={__name:`UAccordion`,props:{as:{type:null,required:!1},items:{type:Array,required:!1},trailingIcon:{type:null,required:!1},valueKey:{type:null,required:!1,default:`value`},labelKey:{type:null,required:!1,default:`label`},class:{type:null,required:!1},ui:{type:Object,required:!1},collapsible:{type:Boolean,required:!1,default:!0},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},type:{type:String,required:!1,default:`single`},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:[`update:modelValue`],setup(i,{emit:s}){let f=i,v=s,y=n(),S=k(`accordion`,f),C=w(),T=I(M(S,`as`,`collapsible`,`defaultValue`,`disabled`,`modelValue`,`unmountOnHide`),v),E=d(()=>A({extend:ie,...C.ui?.accordion||{}})({disabled:S.disabled}));return(n,i)=>(p(),_(r(X),u(r(T),{type:r(S).type,"data-slot":`root`,class:E.value.root({class:[r(S).ui?.root,r(S).class]})}),{default:h(()=>[(p(!0),c(m,null,l(r(S).items,(i,s)=>(p(),_(r(ee),{key:r(D)(i,r(S).valueKey)??s,value:r(D)(i,r(S).valueKey)??String(s),disabled:i.disabled,"data-slot":`item`,class:a(E.value.item({class:[r(S).ui?.item,i.ui?.item,i.class]}))},{default:h(({open:l})=>[e(r(ne),{as:`div`,"data-slot":`header`,class:a(E.value.header({class:[r(S).ui?.header,i.ui?.header]}))},{default:h(()=>[e(r(re),{"data-slot":`trigger`,class:a(E.value.trigger({class:[r(S).ui?.trigger,i.ui?.trigger],disabled:i.disabled}))},{default:h(()=>[b(n.$slots,`leading`,{item:i,index:s,open:l,ui:E.value},()=>[i.icon?(p(),_(R,{key:0,name:i.icon,"data-slot":`leadingIcon`,class:a(E.value.leadingIcon({class:[r(S).ui?.leadingIcon,i?.ui?.leadingIcon]}))},null,8,[`name`,`class`])):x(``,!0)]),r(D)(i,r(S).labelKey)||y.default?(p(),c(`span`,{key:0,"data-slot":`label`,class:a(E.value.label({class:[r(S).ui?.label,i.ui?.label]}))},[b(n.$slots,`default`,{item:i,index:s,open:l},()=>[t(g(r(D)(i,r(S).labelKey)),1)])],2)):x(``,!0),b(n.$slots,`trailing`,{item:i,index:s,open:l,ui:E.value},()=>[e(R,{name:i.trailingIcon||r(S).trailingIcon||r(C).ui.icons.chevronDown,"data-slot":`trailingIcon`,class:a(E.value.trailingIcon({class:[r(S).ui?.trailingIcon,i.ui?.trailingIcon]}))},null,8,[`name`,`class`])])]),_:2},1032,[`class`])]),_:2},1032,[`class`]),i.content||y.content||i.slot&&y[i.slot]||y.body||i.slot&&y[`${i.slot}-body`]?(p(),_(r(te),{key:0,"data-slot":`content`,class:a(E.value.content({class:[r(S).ui?.content,i.ui?.content]}))},{default:h(()=>[b(n.$slots,i.slot||`content`,{item:i,index:s,open:l,ui:E.value},()=>[o(`div`,{"data-slot":`body`,class:a(E.value.body({class:[r(S).ui?.body,i.ui?.body]}))},[b(n.$slots,i.slot?`${i.slot}-body`:`body`,{item:i,index:s,open:l,ui:E.value},()=>[t(g(i.content),1)])],2)])]),_:2},1032,[`class`])):x(``,!0)]),_:2},1032,[`value`,`disabled`,`class`]))),128))]),_:3},16,[`type`,`class`]))}},oe={slots:{root:`my-5`,trigger:`text-base`}},se={__name:`ProseAccordion`,props:{type:{type:String,required:!1,default:`multiple`},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(e){let t=e,i=n(),o=k(`prose.accordion`,t),c=w(),l=d(()=>A({extend:oe,...c.ui?.prose?.accordion||{}})),u=v(1),f=d(()=>(u.value,i.default?.()?.flatMap(m).filter(Boolean)||[]));function m(e,t){return typeof e.type==`symbol`?e.children?.map(m):{index:t,label:e.props?.label||`${t}`,description:e.props?.description,icon:e.props?.icon,component:e}}return s(()=>u.value++),(e,t)=>(p(),_(ae,{type:r(o).type,items:f.value,"unmount-on-hide":!1,class:a(r(o).class),ui:r(O)(l.value(),r(o).ui)},{content:h(({item:e})=>[(p(),_(y(e.component)))]),_:1},8,[`type`,`items`,`class`,`ui`]))}};export{se as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{On as e,mt as t,qt as n,v as r}from"./DZo3dYLJ.js";import{r as i}from"./
|
|
1
|
+
import{On as e,mt as t,qt as n,v as r}from"./DZo3dYLJ.js";import{r as i}from"./Csqgy925.js";import{t as a}from"./CQTvWh4i.js";import o from"./Cti_rGPY.js";var s={__name:`ProseTip`,setup(s){let c=i();return(i,s)=>(t(),r(o,{color:`success`,icon:e(c).ui.icons.tip},{default:n(()=>[a(i.$slots,`default`,{mdcUnwrap:`p`})]),_:3},8,[`icon`]))}};export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{On as e,Zn as t,b as n,g as r,mt as i,xt as a}from"./DZo3dYLJ.js";import{r as o}from"./
|
|
1
|
+
import{On as e,Zn as t,b as n,g as r,mt as i,xt as a}from"./DZo3dYLJ.js";import{r as o}from"./Csqgy925.js";import{n as s,t as c}from"./6gFtTBwm.js";var l={base:`px-1.5 py-0.5 text-sm font-mono font-medium rounded-md inline-block`,variants:{color:{primary:`border border-primary/25 bg-primary/10 text-primary`,secondary:`border border-secondary/25 bg-secondary/10 text-secondary`,success:`border border-success/25 bg-success/10 text-success`,info:`border border-info/25 bg-info/10 text-info`,warning:`border border-warning/25 bg-warning/10 text-warning`,error:`border border-error/25 bg-error/10 text-error`,neutral:`border border-muted text-highlighted bg-muted`}},defaultVariants:{color:`neutral`}},u={__name:`ProseCode`,props:{lang:{type:String,required:!1},color:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(u){let d=s(`prose.code`,u),f=o(),p=r(()=>c({extend:l,...f.ui?.prose?.code||{}}));return(r,o)=>(i(),n(`code`,{class:t(p.value({class:[e(d).ui?.base,(e(d).class||``).split(`,`).join(` `)],color:e(d).color}))},[a(r.$slots,`default`)],2))}};export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,r as t}from"./
|
|
1
|
+
import{o as e,r as t}from"./D2O8Q8x9.js";import{gn as n}from"./DZo3dYLJ.js";import{n as r}from"./DSaWoFHS.js";var i=t({ui:{colors:{primary:`violet`,secondary:`indigo`,success:`lime`,info:`sky`,warning:`amber`,error:`rose`,neutral:`stone`}}}),a=r(i,{nuxt:{},ui:{colors:{primary:`green`,secondary:`blue`,success:`green`,info:`blue`,warning:`yellow`,error:`red`,neutral:`slate`},icons:{arrowDown:`i-lucide-arrow-down`,arrowLeft:`i-lucide-arrow-left`,arrowRight:`i-lucide-arrow-right`,arrowUp:`i-lucide-arrow-up`,caution:`i-lucide-circle-alert`,check:`i-lucide-check`,chevronDoubleLeft:`i-lucide-chevrons-left`,chevronDoubleRight:`i-lucide-chevrons-right`,chevronDown:`i-lucide-chevron-down`,chevronLeft:`i-lucide-chevron-left`,chevronRight:`i-lucide-chevron-right`,chevronUp:`i-lucide-chevron-up`,close:`i-lucide-x`,copy:`i-lucide-copy`,copyCheck:`i-lucide-copy-check`,dark:`i-lucide-moon`,drag:`i-lucide-grip-vertical`,ellipsis:`i-lucide-ellipsis`,error:`i-lucide-circle-x`,external:`i-lucide-arrow-up-right`,eye:`i-lucide-eye`,eyeOff:`i-lucide-eye-off`,file:`i-lucide-file`,folder:`i-lucide-folder`,folderOpen:`i-lucide-folder-open`,hash:`i-lucide-hash`,info:`i-lucide-info`,light:`i-lucide-sun`,loading:`i-lucide-loader-circle`,menu:`i-lucide-menu`,minus:`i-lucide-minus`,panelClose:`i-lucide-panel-left-close`,panelOpen:`i-lucide-panel-left-open`,plus:`i-lucide-plus`,reload:`i-lucide-rotate-ccw`,search:`i-lucide-search`,stop:`i-lucide-square`,star:`i-lucide-star`,success:`i-lucide-circle-check`,system:`i-lucide-monitor`,tip:`i-lucide-lightbulb`,upload:`i-lucide-upload`,warning:`i-lucide-triangle-alert`},tv:{twMergeConfig:{}}},icon:{provider:`iconify`,class:``,aliases:{},iconifyApiEndpoint:`https://api.iconify.design`,localApiEndpoint:`/api/_nuxt_icon`,fallbackToApi:!0,cssSelectorPrefix:`i-`,cssWherePseudo:!0,cssLayer:`base`,mode:`css`,attrs:{"aria-hidden":!0},collections:`academicons.akar-icons.ant-design.arcticons.basil.bi.bitcoin-icons.bpmn.brandico.bx.bxl.bxs.bytesize.carbon.catppuccin.cbi.charm.ci.cib.cif.cil.circle-flags.circum.clarity.codex.codicon.covid.cryptocurrency.cryptocurrency-color.cuida.dashicons.devicon.devicon-plain.dinkie-icons.duo-icons.ei.el.emojione.emojione-monotone.emojione-v1.entypo.entypo-social.eos-icons.ep.et.eva.f7.fa.fa-brands.fa-regular.fa-solid.fa6-brands.fa6-regular.fa6-solid.fa7-brands.fa7-regular.fa7-solid.fad.famicons.fe.feather.file-icons.flag.flagpack.flat-color-icons.flat-ui.flowbite.fluent.fluent-color.fluent-emoji.fluent-emoji-flat.fluent-emoji-high-contrast.fluent-mdl2.fontelico.fontisto.formkit.foundation.fxemoji.gala.game-icons.garden.geo.gg.gis.gravity-ui.gridicons.grommet-icons.guidance.healthicons.heroicons.heroicons-outline.heroicons-solid.hugeicons.humbleicons.ic.icomoon-free.icon-park.icon-park-outline.icon-park-solid.icon-park-twotone.iconamoon.iconoir.icons8.il.ion.iwwa.ix.jam.la.lets-icons.line-md.lineicons.logos.ls.lsicon.lucide.lucide-lab.mage.majesticons.maki.map.marketeq.material-icon-theme.material-symbols.material-symbols-light.mdi.mdi-light.medical-icon.memory.meteocons.meteor-icons.mi.mingcute.mono-icons.mynaui.nimbus.nonicons.noto.noto-v1.nrk.octicon.oi.ooui.openmoji.oui.pajamas.pepicons.pepicons-pencil.pepicons-pop.pepicons-print.ph.picon.pixel.pixelarticons.prime.proicons.ps.qlementine-icons.quill.radix-icons.raphael.ri.rivet-icons.roentgen.si.si-glyph.sidekickicons.simple-icons.simple-line-icons.skill-icons.solar.stash.streamline.streamline-block.streamline-color.streamline-cyber.streamline-cyber-color.streamline-emojis.streamline-flex.streamline-flex-color.streamline-freehand.streamline-freehand-color.streamline-kameleon-color.streamline-logos.streamline-pixel.streamline-plump.streamline-plump-color.streamline-sharp.streamline-sharp-color.streamline-stickies-color.streamline-ultimate.streamline-ultimate-color.subway.svg-spinners.system-uicons.tabler.tdesign.teenyicons.temaki.token.token-branded.topcoat.twemoji.typcn.uil.uim.uis.uit.uiw.unjs.vaadin.vs.vscode-icons.websymbol.weui.whh.wi.wpf.zmdi.zondicons`.split(`.`),fetchTimeout:1500}});function o(){let t=e();return t._appConfig||=n(a),t._appConfig}function s(e){return typeof e==`string`?`'${e}'`:new d().serialize(e)}var c=` _-,;:!?.'"()[]{}@*/\\&#%\`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz`,l=(function(){let e=new Uint8Array(128);for(let t=0;t<69;t++)e[c.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function u(e,t){if(e===t)return 0;let n=Math.min(e.length,t.length),r=0;for(let i=0;i<n;i++){let n=e.charCodeAt(i),a=t.charCodeAt(i);if(n===a)continue;let o=n<128&&l[n]?l[n]:n+128,s=a<128&&l[a]?l[a]:a+128;if(o!==s)return o<s?-1:1;r===0&&(r=n>a?-1:1)}return e.length===t.length?r:e.length<t.length?-1:1}var d=(function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?u(e,t):n===`number`&&r===`number`?e-t:u(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}let i=Object.keys(e).sort(u),a=`${r}{`;for(let t=0;t<i.length;t++){let n=i[t];a+=`${n}:${this.serialize(e[n])}`,t<i.length-1&&(a+=`,`)}return a+`}`}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e})();function f(e,t){return e===t||s(e)===s(t)}export{a as i,s as n,o as r,f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{On as e,Zn as t,_ as n,b as r,et as i,g as a,mt as o,qt as s,v as c,y as l}from"./DZo3dYLJ.js";import{r as u}from"./
|
|
1
|
+
import{On as e,Zn as t,_ as n,b as r,et as i,g as a,mt as o,qt as s,v as c,y as l}from"./DZo3dYLJ.js";import{r as u}from"./Csqgy925.js";import{n as d,t as f}from"./6gFtTBwm.js";import{t as p}from"./DrZpfjBq.js";import{t as m}from"./BgLeKwx0.js";import{t as h}from"./CQTvWh4i.js";var g={slots:{base:[`group relative block px-4 py-3 rounded-md text-sm/6 my-5 last:mb-0 [&_code]:text-xs/5 [&_code]:bg-default [&_pre]:bg-default [&>div]:my-2.5 [&_ul]:my-2.5 [&_ol]:my-2.5 *:last:mb-0! [&_ul]:ps-4.5 [&_ol]:ps-4.5 [&_li]:my-0`,`transition-colors`],icon:[`size-4 shrink-0 align-sub me-2 inline-block`,`transition-colors`],externalIcon:[`size-4 align-top absolute end-2 top-2 pointer-events-none`,`transition-colors`]},variants:{color:{primary:{base:`border border-primary/25 bg-primary/10 text-primary-600 dark:text-primary-300 [&_a]:text-primary [&_a]:hover:border-primary [&_a]:focus-visible:border-transparent [&_a]:outline-primary/25 [&_a]:focus-visible:outline-3 [&_a]:focus-visible:has-[>code]:outline-0 [&_code]:text-primary-600 dark:[&_code]:text-primary-300 [&_code]:border-primary/25 [&_a]:[&>code]:outline-primary/25 [&_a]:hover:[&>code]:border-primary [&_a]:hover:[&>code]:text-primary [&_a]:focus-visible:[&>code]:border-primary [&_a]:focus-visible:[&>code]:text-primary [&>ul]:marker:text-primary/50`,icon:`text-primary`,externalIcon:`text-primary-600 dark:text-primary-300`},secondary:{base:`border border-secondary/25 bg-secondary/10 text-secondary-600 dark:text-secondary-300 [&_a]:text-secondary [&_a]:hover:border-secondary [&_a]:focus-visible:border-transparent [&_a]:outline-secondary/25 [&_a]:focus-visible:outline-3 [&_a]:focus-visible:has-[>code]:outline-0 [&_code]:text-secondary-600 dark:[&_code]:text-secondary-300 [&_code]:border-secondary/25 [&_a]:[&>code]:outline-secondary/25 [&_a]:hover:[&>code]:border-secondary [&_a]:hover:[&>code]:text-secondary [&_a]:focus-visible:[&>code]:border-secondary [&_a]:focus-visible:[&>code]:text-secondary [&>ul]:marker:text-secondary/50`,icon:`text-secondary`,externalIcon:`text-secondary-600 dark:text-secondary-300`},success:{base:`border border-success/25 bg-success/10 text-success-600 dark:text-success-300 [&_a]:text-success [&_a]:hover:border-success [&_a]:focus-visible:border-transparent [&_a]:outline-success/25 [&_a]:focus-visible:outline-3 [&_a]:focus-visible:has-[>code]:outline-0 [&_code]:text-success-600 dark:[&_code]:text-success-300 [&_code]:border-success/25 [&_a]:[&>code]:outline-success/25 [&_a]:hover:[&>code]:border-success [&_a]:hover:[&>code]:text-success [&_a]:focus-visible:[&>code]:border-success [&_a]:focus-visible:[&>code]:text-success [&>ul]:marker:text-success/50`,icon:`text-success`,externalIcon:`text-success-600 dark:text-success-300`},info:{base:`border border-info/25 bg-info/10 text-info-600 dark:text-info-300 [&_a]:text-info [&_a]:hover:border-info [&_a]:focus-visible:border-transparent [&_a]:outline-info/25 [&_a]:focus-visible:outline-3 [&_a]:focus-visible:has-[>code]:outline-0 [&_code]:text-info-600 dark:[&_code]:text-info-300 [&_code]:border-info/25 [&_a]:[&>code]:outline-info/25 [&_a]:hover:[&>code]:border-info [&_a]:hover:[&>code]:text-info [&_a]:focus-visible:[&>code]:border-info [&_a]:focus-visible:[&>code]:text-info [&>ul]:marker:text-info/50`,icon:`text-info`,externalIcon:`text-info-600 dark:text-info-300`},warning:{base:`border border-warning/25 bg-warning/10 text-warning-600 dark:text-warning-300 [&_a]:text-warning [&_a]:hover:border-warning [&_a]:focus-visible:border-transparent [&_a]:outline-warning/25 [&_a]:focus-visible:outline-3 [&_a]:focus-visible:has-[>code]:outline-0 [&_code]:text-warning-600 dark:[&_code]:text-warning-300 [&_code]:border-warning/25 [&_a]:[&>code]:outline-warning/25 [&_a]:hover:[&>code]:border-warning [&_a]:hover:[&>code]:text-warning [&_a]:focus-visible:[&>code]:border-warning [&_a]:focus-visible:[&>code]:text-warning [&>ul]:marker:text-warning/50`,icon:`text-warning`,externalIcon:`text-warning-600 dark:text-warning-300`},error:{base:`border border-error/25 bg-error/10 text-error-600 dark:text-error-300 [&_a]:text-error [&_a]:hover:border-error [&_a]:focus-visible:border-transparent [&_a]:outline-error/25 [&_a]:focus-visible:outline-3 [&_a]:focus-visible:has-[>code]:outline-0 [&_code]:text-error-600 dark:[&_code]:text-error-300 [&_code]:border-error/25 [&_a]:[&>code]:outline-error/25 [&_a]:hover:[&>code]:border-error [&_a]:hover:[&>code]:text-error [&_a]:focus-visible:[&>code]:border-error [&_a]:focus-visible:[&>code]:text-error [&>ul]:marker:text-error/50`,icon:`text-error`,externalIcon:`text-error-600 dark:text-error-300`},neutral:{base:`border border-muted bg-muted text-default`,icon:`text-highlighted`,externalIcon:`text-dimmed`}},to:{true:`border-dashed`}},compoundVariants:[{color:`primary`,to:!0,class:{base:`hover:border-primary outline-primary/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-primary`,externalIcon:`group-hover:text-primary`}},{color:`secondary`,to:!0,class:{base:`hover:border-secondary outline-secondary/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-secondary`,externalIcon:`group-hover:text-secondary`}},{color:`success`,to:!0,class:{base:`hover:border-success outline-success/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-success`,externalIcon:`group-hover:text-success`}},{color:`info`,to:!0,class:{base:`hover:border-info outline-info/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-info`,externalIcon:`group-hover:text-info`}},{color:`warning`,to:!0,class:{base:`hover:border-warning outline-warning/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-warning`,externalIcon:`group-hover:text-warning`}},{color:`error`,to:!0,class:{base:`hover:border-error outline-error/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-error`,externalIcon:`group-hover:text-error`}},{color:`neutral`,to:!0,class:{base:`hover:border-inverted outline-inverted/25 has-[>a:focus-visible]:outline-3 has-[>a:focus-visible]:border-inverted`,externalIcon:`group-hover:text-highlighted`}}],defaultVariants:{color:`neutral`}},_=Object.assign({inheritAttrs:!1},{__name:`ProseCallout`,props:{to:{type:null,required:!1},target:{type:[String,Object,null],required:!1},icon:{type:null,required:!1},color:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(_){let v=d(`prose.callout`,_),y=u(),b=a(()=>f({extend:g,...y.ui?.prose?.callout||{}})({color:v.color,to:!!v.to})),x=a(()=>v.target||(v.to&&typeof v.to==`string`&&v.to.startsWith(`http`)?`_blank`:void 0));return(a,u)=>(o(),r(`div`,i(e(v).to?{}:a.$attrs,{class:b.value.base({class:[e(v).ui?.base,e(v).class]})}),[e(v).to?(o(),c(m,i({key:0},{to:e(v).to,target:x.value,...a.$attrs},{class:`focus:outline-none`,raw:``}),{default:s(()=>[...u[0]||=[n(`span`,{class:`absolute inset-0`,"aria-hidden":`true`},null,-1)]]),_:1},16)):l(``,!0),e(v).icon?(o(),c(p,{key:1,name:e(v).icon,class:t(b.value.icon({class:e(v).ui?.icon}))},null,8,[`name`,`class`])):l(``,!0),e(v).to&&x.value===`_blank`?(o(),c(p,{key:2,name:e(y).ui.icons.external,class:t(b.value.externalIcon({class:e(v).ui?.externalIcon}))},null,8,[`name`,`class`])):l(``,!0),h(a.$slots,`default`,{mdcUnwrap:`p`})],16))}});export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,E as t,On as n,Zn as r,_ as i,b as a,bt as o,er as s,g as c,k as l,mt as u,o as d,qt as f,tr as p,un as m,v as h,vn as g,y as _}from"./DZo3dYLJ.js";import{C as v,w as y}from"./51OWHj8c.js";import{t as ee}from"./BJW3UkS7.js";import{t as te}from"./CqhzGRpQ.js";import{t as ne}from"./D2zrOcWn.js";import{O as b,a as x,i as S,n as re,o as C,r as ie,s as w}from"#entry";var ae={class:`stats`},oe={class:`stat-top`},se={class:`stat-label`},ce={class:`stat-pill`},le={class:`stat-value`},ue={class:`stat-sub`},de={class:`stat-delta`},fe={class:`split`},pe={class:`spark`},me=[`title`],he={class:`stat-top`},ge={class:`stat-label`},_e={class:`stat-pill`},ve={class:`stat-value`},ye={class:`stat-sub`},be={class:`stat-rows`},xe={class:`stat-row`},Se={class:`v`},Ce={class:`stat-row`},we={class:`v`},Te={class:`stat-row`},Ee={class:`v`},De={class:`stat-row`},Oe={class:`v`},ke={class:`stat-foot`},Ae={class:`row`},je={class:`bar`},Me={class:`stat-top`},Ne={class:`stat-label`},Pe={class:`stat-value`},Fe={class:`unit`},Ie={class:`stat-sub`},Le={class:`stat-rows`},Re={class:`stat-row`},ze={class:`v`},Be={class:`stat-row`},Ve={class:`v`},He={class:`stat-row`},Ue={class:`v`},We={class:`stat-row`},Ge={class:`v`},Ke={class:`stat-foot`},qe={class:`row`},Je={class:`bar lilac`},Ye={class:`stat-top`},Xe={class:`stat-label`},Ze={class:`stat-value`},Qe={class:`stat-rows`},$e={class:`stat-row`},et={class:`v`},tt={class:`stat-row`},nt={class:`v`},rt={class:`stat-row`},it={class:`v`},at={class:`stat-row`},ot={class:`v`},st={class:`stat-foot`},ct={class:`row`},lt={class:`bar on-dark`},ut={class:`card tb`},dt={class:`tb-l`},ft={class:`tb-r`},pt={class:`mono`},mt={class:`mono`},ht={key:0,class:`card act-error`},gt={class:`act-error-txt`},_t={class:`card board`},vt={class:`lanes`},yt=[`title`,`onClick`],bt={class:`stub-name`},xt={class:`stub-ct`},St={class:`stub-pts`},Ct={class:`lane-hd`},wt={class:`lane-ct`},Tt={class:`lane-pts`},Et=[`aria-expanded`,`title`,`onClick`],Dt={class:`lane-bd`},Ot={class:`sc-id mono`},kt={class:`sc-c-pts`},At=[`title`],jt={class:`sc-top`},Mt={class:`sc-id mono`},Nt={class:`dim sc-wsjf`},Pt=[`title`],Ft={class:`sc-title`},It={class:`sc-meta`},Lt={class:`sc-tags`},Rt={class:`tag tag-ghost`},zt={key:0,class:`tag tag-neutral mono`},Bt=[`title`],Vt=[`title`],Ht={class:`bar slim sc-bar`},Ut={class:`sc-ask`},Wt=[`aria-label`,`onClick`,`onKeydown`],Gt=[`aria-label`,`onClick`,`onKeydown`],Kt=[`aria-label`,`onClick`,`onKeydown`],qt=[`aria-label`,`onClick`,`onKeydown`],Jt={key:0,class:`lane-empty`},T=`board.foldedLanes.v1`,E=S(l({__name:`index`,setup(l){let{stories:S,epics:E,states:D,progress:O,milestoneOfStory:Yt,pointsOf:Xt,milestones:Zt,refresh:Qt,STATE_LABEL:k,STATE_SHORT:$t,STATE_DOT:A,TYPE_LABEL:en,TYPE_COLOR:tn,TYPE_ICON:nn,PRIORITY_COLOR:rn,SCOPE_LABEL:an,wsjf:j,blockedStories:on}=w(),M=g(`all`),N=g(`all`),P=g(`rank`),sn=c(()=>[{label:`全部史诗`,value:`all`,icon:`i-lucide-layers`},...E.value.map(e=>({label:`${e.id} ${e.title}`,value:e.id,icon:`i-lucide-layer-group`}))]),cn=c(()=>[{label:`全部里程碑`,value:`all`,icon:`i-lucide-flag`},...Zt.value.map(e=>({label:`${e.id} ${e.title}`,value:e.id,icon:e.kind===`mvp`?`i-lucide-star`:`i-lucide-map-pin`}))]),ln=[{label:`默认顺序`,value:`rank`,icon:`i-lucide-list-ordered`},{label:`按优先级 P0 → P3`,value:`priority`,icon:`i-lucide-alert-circle`},{label:`按 WSJF 价值/点数`,value:`wsjf`,icon:`i-lucide-scale`},{label:`按点数`,value:`points`,icon:`i-lucide-signal`}],un={P0:0,P1:1,P2:2,P3:3},F=[`done`,`cancelled`],I=[`done`,`cancelled`],L=g((()=>{try{if(typeof localStorage>`u`)return[...I];let e=localStorage.getItem(T);if(!e)return[...I];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>F.includes(e)):[...I]}catch{return[...I]}})()),R=e=>F.includes(e),z=e=>L.value.includes(e),B=e=>F.includes(e),dn=e=>{if(R(e)){L.value=z(e)?L.value.filter(t=>t!==e):[...L.value,e];try{localStorage.setItem(T,JSON.stringify(L.value))}catch{}}},V=c(()=>{let e=S.value.filter(e=>!(M.value!==`all`&&e.epicId!==M.value||N.value!==`all`&&!Yt(e.id).some(e=>e.id===N.value)));return P.value===`priority`?[...e].sort((e,t)=>(un[e.priority]??9)-(un[t.priority]??9)||j(t)-j(e)):P.value===`wsjf`?[...e].sort((e,t)=>j(t)-j(e)):P.value===`points`?[...e].sort((e,t)=>t.points-e.points):e}),H=e=>V.value.filter(t=>t.status===e),U=e=>Xt(H(e).map(e=>e.id)),W=c(()=>{let e=V.value,t=e.filter(e=>e.status===`done`),n=e.filter(e=>e.status===`in-progress`||e.status===`review`),r=e.filter(e=>e.status===`ready`||e.status===`draft`),i=e.filter(e=>e.status===`cancelled`),a=e.filter(e=>e.status!==`cancelled`),o=e.flatMap(e=>e.tasks??[]),s=e=>o.filter(t=>t.status===e).length;return{count:e.length,points:e.reduce((e,t)=>e+t.points,0),liveCount:a.length,livePoints:a.reduce((e,t)=>e+t.points,0),donePoints:t.reduce((e,t)=>e+t.points,0),done:t.length,running:n.length,idle:r.length,cancelled:i.length,cancelledPoints:i.reduce((e,t)=>e+t.points,0),tasks:o.length,tasksDone:s(`done`),taskRed:s(`red`),taskGreen:s(`green`),taskRefactor:s(`refactored`),taskTodo:s(`todo`),bugs:e.filter(e=>e.type===`bug`).length,debt:e.filter(e=>e.type===`debt`).length,scope:e.filter(e=>e.scopeChange).length}}),G=c(()=>W.value.livePoints?Math.round(W.value.donePoints/W.value.livePoints*100):0),fn=c(()=>W.value.liveCount?Math.round(W.value.livePoints/W.value.liveCount*10)/10:0),K=c(()=>W.value.tasks?Math.round(W.value.tasksDone/W.value.tasks*100):0),pn=c(()=>on.value.length+W.value.bugs),mn=c(()=>Math.max(1,...D.map(e=>H(e).length))),hn=e=>8+Math.round(H(e).length/mn.value*34),q=[`draft`,`ready`,`in-progress`,`review`,`done`],gn=e=>q[q.indexOf(e)+1]??null,_n=e=>q.indexOf(e)>0?q[q.indexOf(e)-1]:null,J=e=>(e.tasks??[]).filter(e=>e.status!==`done`).length,vn=e=>{let t=gn(e.status);return t?!(t===`done`&&J(e)>0):!1},yn=e=>{let t=gn(e.status);return t?t===`done`&&J(e)?`还有 ${J(e)} 个任务没完成,先做完再收尾`:`推进到「${k[t]}」`:`已经是最后一个状态`},bn=e=>_n(e.status)!==null,Y={content:`bg-[#1b1526]! text-white! ring-0 shadow-lg`},xn=g(``),X=g(``),Z=g(``),Q=g(``);async function $(e,t){if(!X.value&&(t!==`next`||vn(e))&&(t!==`prev`||bn(e))){X.value=e.id,Q.value=``;try{xn.value||=(await b(`/api/projects`)).token,await b(`/api/agile/story-status`,{method:`POST`,headers:{"x-project-token":xn.value},body:{id:e.id,action:t}}),Z.value=``,await Qt()}catch(t){Q.value=`${e.id}:${t?.data?.error??t?.message??`改状态失败`}`}finally{X.value=``}}}let Sn=c(()=>{if(M.value===`all`)return`全部史诗`;let e=E.value.find(e=>e.id===M.value);return e?e.title.slice(0,6):`全部史诗`}),Cn=e=>Yt(e).filter(e=>e.kind===`mvp`);return(c,l)=>{let g=ie,b=ne,S=te,w=re,T=ee;return u(),a(`div`,null,[i(`div`,ae,[i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(0)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(0)},null,8,[`tone`]),i(`div`,oe,[i(`span`,se,[e(b,{name:`i-lucide-gauge`,class:`size-3.5`}),l[7]||=t(`看板完成度`,-1)]),i(`span`,ce,p(n(Sn)),1)]),i(`div`,le,[t(p(n(G)),1),l[8]||=i(`span`,{class:`unit`},`%`,-1)]),i(`div`,ue,[i(`span`,de,[e(b,{name:`i-lucide-check`,class:`size-3`}),t(p(n(W).donePoints)+` 点`,1)]),t(` 已交付 · 共 `+p(n(W).livePoints)+` 点 `,1)]),i(`div`,fe,[i(`div`,null,[l[9]||=i(`span`,{class:`k`},`完成故事`,-1),i(`b`,null,[t(p(n(W).done),1),i(`small`,null,`/`+p(n(W).liveCount),1)])]),i(`div`,null,[l[11]||=i(`span`,{class:`k`},`剩余点`,-1),i(`b`,null,[t(p(n(W).livePoints-n(W).donePoints),1),l[10]||=i(`small`,null,`点`,-1)])])]),i(`div`,pe,[(u(!0),a(d,null,o(n(D),e=>(u(),a(`div`,{key:e,class:`spark-col`,title:`${n(k)[e]}:${H(e).length} 个`},[i(`div`,{class:r([`spark-bar`,{done:e===`done`,cancel:e===`cancelled`}]),style:s({height:hn(e)+`px`})},null,6),i(`span`,null,p(n($t)[e]),1)],8,me))),128))])],2),i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(1)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(1)},null,8,[`tone`]),i(`div`,he,[i(`span`,ge,[e(b,{name:`i-lucide-book-open`,class:`size-3.5`}),l[12]||=t(`故事`,-1)]),i(`span`,_e,p(Math.round(n(fn)))+` 点/个`,1)]),i(`div`,ve,[t(p(n(W).count),1),l[13]||=i(`span`,{class:`unit`},`个`,-1)]),i(`div`,ye,`共 `+p(n(W).livePoints)+` 点 · 任务 `+p(n(W).tasks)+` 个`,1),i(`div`,be,[i(`div`,xe,[l[14]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6aa844`}}),t(`已完成`)],-1),i(`span`,Se,p(n(W).done),1)]),i(`div`,Ce,[l[15]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#3f7fd4`}}),t(`进行中`)],-1),i(`span`,we,p(n(W).running),1)]),i(`div`,Te,[l[16]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#b6bac1`}}),t(`未开始`)],-1),i(`span`,Ee,p(n(W).idle),1)]),i(`div`,De,[l[17]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#cf4759`}}),t(`已取消`)],-1),i(`span`,Oe,p(n(W).cancelled)+p(n(W).cancelledPoints?` · ${n(W).cancelledPoints} 点`:``),1)])]),i(`div`,ke,[i(`div`,Ae,[i(`span`,null,`任务完成 `+p(n(W).tasksDone)+`/`+p(n(W).tasks),1),i(`span`,null,p(n(K))+`%`,1)]),i(`div`,je,[i(`i`,{style:s({width:n(K)+`%`})},null,4)])])],2),i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(2)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(2)},null,8,[`tone`]),i(`div`,Me,[i(`span`,Ne,[e(b,{name:`i-lucide-list-checks`,class:`size-3.5`}),l[18]||=t(`TDD 任务`,-1)]),l[19]||=i(`span`,{class:`stat-pill`},`红 → 绿 → 重构`,-1)]),i(`div`,Pe,[t(p(n(W).tasksDone),1),i(`span`,Fe,`/ `+p(n(W).tasks)+` 项`,1)]),i(`div`,Ie,`已完成任务占 `+p(n(K))+`%`,1),i(`div`,Le,[i(`div`,Re,[l[20]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#cf4759`}}),t(`红(测试失败)`)],-1),i(`span`,ze,p(n(W).taskRed),1)]),i(`div`,Be,[l[21]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6aa844`}}),t(`绿(测试通过)`)],-1),i(`span`,Ve,p(n(W).taskGreen),1)]),i(`div`,He,[l[22]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6d4ff0`}}),t(`已重构`)],-1),i(`span`,Ue,p(n(W).taskRefactor),1)]),i(`div`,We,[l[23]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#b6bac1`}}),t(`待办`)],-1),i(`span`,Ge,p(n(W).taskTodo),1)])]),i(`div`,Ke,[i(`div`,qe,[i(`span`,null,`已完成 `+p(n(W).tasksDone)+`/`+p(n(W).tasks),1),i(`span`,null,p(n(K))+`%`,1)]),i(`div`,Je,[i(`i`,{style:s({width:n(K)+`%`})},null,4)])])],2),i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(3)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(3)},null,8,[`tone`]),i(`div`,Ye,[i(`span`,Xe,[e(b,{name:`i-lucide-shield-alert`,class:`size-3.5`}),l[24]||=t(`风险面`,-1)]),l[25]||=i(`span`,{class:`stat-pill`},`需处理`,-1)]),i(`div`,Ze,[t(p(n(pn)),1),l[26]||=i(`span`,{class:`unit`},`项`,-1)]),l[32]||=i(`div`,{class:`stat-sub`},`阻塞故事与缺陷合计`,-1),i(`div`,Qe,[i(`div`,$e,[l[27]||=i(`span`,{class:`k`},`阻塞故事`,-1),i(`span`,et,p(n(on).length),1)]),i(`div`,tt,[l[28]||=i(`span`,{class:`k`},`缺陷`,-1),i(`span`,nt,p(n(W).bugs),1)]),i(`div`,rt,[l[29]||=i(`span`,{class:`k`},`技术债`,-1),i(`span`,it,p(n(W).debt),1)]),i(`div`,at,[l[30]||=i(`span`,{class:`k`},`范围变更`,-1),i(`span`,ot,p(n(W).scope),1)])]),i(`div`,st,[i(`div`,ct,[l[31]||=i(`span`,null,`完成度`,-1),i(`span`,null,p(n(G))+`%`,1)]),i(`div`,lt,[i(`i`,{style:s({width:n(G)+`%`})},null,4)])])],2)]),i(`div`,ut,[i(`div`,dt,[l[33]||=i(`span`,{class:`lbl`},`筛选`,-1),e(S,{modelValue:n(M),"onUpdate:modelValue":l[0]||=e=>m(M)?M.value=e:null,items:n(sn),icon:`i-lucide-layers`,"aria-label":`按史诗筛选`},null,8,[`modelValue`,`items`]),e(S,{modelValue:n(N),"onUpdate:modelValue":l[1]||=e=>m(N)?N.value=e:null,items:n(cn),icon:`i-lucide-flag`,"aria-label":`按里程碑筛选`},null,8,[`modelValue`,`items`]),e(S,{modelValue:n(P),"onUpdate:modelValue":l[2]||=e=>m(P)?P.value=e:null,items:ln,icon:`i-lucide-arrow-up-down`,"aria-label":`排序方式`},null,8,[`modelValue`])]),i(`div`,ft,[i(`span`,pt,p(n(V).length),1),l[34]||=t(` 个故事 `,-1),l[35]||=i(`i`,{class:`sep`},null,-1),i(`span`,mt,p(n(Xt)(n(V).map(e=>e.id))),1),l[36]||=t(` 点 `,-1)])]),n(Q)?(u(),a(`div`,ht,[e(b,{name:`i-lucide-circle-alert`,class:`size-4`}),i(`span`,gt,p(n(Q)),1),i(`button`,{class:`btn btn-sm`,onClick:l[3]||=e=>Q.value=``},`知道了`)])):_(``,!0),i(`div`,_t,[i(`div`,vt,[(u(!0),a(d,null,o(n(D),c=>(u(),a(`section`,{key:c,class:r([`lane`,{folded:z(c)}])},[z(c)?(u(),a(`button`,{key:0,class:`lane-stub`,title:`展开${n(k)[c]}:${H(c).length} 个 · ${U(c)} 点`,onClick:e=>dn(c)},[i(`i`,{class:`lane-dot`,style:s({background:n(A)[c]})},null,4),i(`span`,bt,p(n(k)[c]),1),i(`span`,xt,p(H(c).length),1),i(`span`,St,p(U(c))+` 点`,1),e(b,{name:`i-lucide-chevrons-right`,class:`stub-ic`})],8,yt)):(u(),a(d,{key:1},[i(`header`,Ct,[i(`i`,{class:`lane-dot`,style:s({background:n(A)[c]})},null,4),i(`b`,null,p(n(k)[c]),1),i(`span`,wt,p(H(c).length),1),i(`span`,Tt,p(U(c))+` 点`,1),R(c)?(u(),a(`button`,{key:0,class:`lane-fold`,"aria-expanded":!z(c),title:`收起${n(k)[c]}`,onClick:e=>dn(c)},[e(b,{name:`i-lucide-chevron-left`,class:`size-3`})],8,Et)):_(``,!0)]),i(`div`,Dt,[(u(!0),a(d,null,o(H(c),m=>(u(),h(T,{key:m.id,to:`/story/${m.id}`,class:r([`scard`,{"scard-compact":B(c)}])},{default:f(()=>[B(c)?(u(),a(d,{key:0},[i(`span`,Ot,p(m.id),1),i(`span`,kt,p(m.points)+` 点`,1),i(`span`,{class:`sc-c-title`,title:m.title},p(m.title),9,At)],64)):(u(),a(d,{key:1},[i(`div`,jt,[i(`span`,Mt,p(m.id),1),i(`span`,{class:r([`tag`,`tag-${n(rn)[m.priority]}`])},p(m.priority),3),i(`span`,Nt,`WSJF `+p(n(j)(m)),1),m.blocked?(u(),a(`span`,{key:0,class:`tag tag-error tag-dot`,title:`阻塞中:${m.blocked.reason}(自 ${m.blocked.since})`},`阻塞`,8,Pt)):_(``,!0)]),i(`p`,Ft,p(m.title),1),i(`div`,It,[i(`span`,null,p(m.points)+` 点`,1),l[37]||=i(`span`,{class:`dim`},`·`,-1),i(`span`,null,`任务 `+p(n(O)(m).done)+`/`+p(n(O)(m).total),1)]),i(`div`,Lt,[i(`span`,{class:r([`tag`,`tag-${n(tn)[m.type]}`])},[e(b,{name:n(nn)[m.type],class:`size-3`},null,8,[`name`]),t(p(n(en)[m.type]),1)],2),i(`span`,Rt,p(m.epicId),1),m.sprintId?(u(),a(`span`,zt,p(m.sprintId),1)):_(``,!0),(u(!0),a(d,null,o(Cn(m.id),e=>(u(),a(`span`,{key:e.id,class:`tag tag-mint`,title:`${e.id} ${e.title} · ${e.criteria}`},`MVP`,8,Bt))),128)),m.scopeChange?(u(),a(`span`,{key:1,class:`tag tag-info`,title:`${n(an)[m.scopeChange.kind]}(${m.scopeChange.at}):${m.scopeChange.reason}`},p(n(an)[m.scopeChange.kind]),9,Vt)):_(``,!0)]),i(`div`,Ht,[i(`i`,{style:s({width:n(O)(m).pct+`%`})},null,4)]),i(`div`,{class:`sc-actions`,style:{backdropFilter:`blur(10px) saturate(125%)`},onMouseleave:l[6]||=e=>Z.value=``},[n(Z)===m.id?(u(),a(d,{key:0},[i(`span`,Ut,`取消 `+p(m.id)+`?`,1),i(`span`,{class:`sc-act danger`,role:`button`,tabindex:`0`,"data-act":`cancel-confirm`,"aria-label":`确认取消 ${m.id}`,onClick:y(e=>$(m,`cancel`),[`stop`,`prevent`]),onKeydown:v(y(e=>$(m,`cancel`),[`prevent`]),[`enter`])},`确认`,40,Wt),i(`span`,{class:`sc-act`,role:`button`,tabindex:`0`,"data-act":`cancel-abort`,onClick:l[4]||=y(e=>Z.value=``,[`stop`,`prevent`]),onKeydown:l[5]||=v(y(e=>Z.value=``,[`prevent`]),[`enter`])},`返回`,32)],64)):(u(),a(d,{key:1},[bn(m)?(u(),h(w,{key:0,text:`退回「${n(k)[_n(m.status)??``]}」`,"delay-duration":150,ui:Y},{default:f(()=>[i(`span`,{class:`sc-act`,role:`button`,tabindex:`0`,"data-act":`prev`,"aria-label":`退回 ${m.id}`,onClick:y(e=>$(m,`prev`),[`stop`,`prevent`]),onKeydown:v(y(e=>$(m,`prev`),[`prevent`]),[`enter`])},[e(b,{name:`i-lucide-arrow-left`,class:`size-3.5`})],40,Gt)]),_:2},1032,[`text`])):_(``,!0),e(w,{text:yn(m),"delay-duration":150,ui:Y},{default:f(()=>[i(`span`,{class:r([`sc-act`,{off:!vn(m)}]),role:`button`,tabindex:`0`,"data-act":`next`,"aria-label":`推进 ${m.id}`,onClick:y(e=>$(m,`next`),[`stop`,`prevent`]),onKeydown:v(y(e=>$(m,`next`),[`prevent`]),[`enter`])},[e(b,{name:`i-lucide-arrow-right`,class:`size-3.5`})],42,Kt)]),_:2},1032,[`text`]),e(w,{text:`标记 ${m.id} 已取消`,"delay-duration":150,ui:Y},{default:f(()=>[i(`span`,{class:`sc-act danger`,role:`button`,tabindex:`0`,"data-act":`cancel`,"aria-label":`取消 ${m.id}`,onClick:y(e=>Z.value=m.id,[`stop`,`prevent`]),onKeydown:v(y(e=>Z.value=m.id,[`prevent`]),[`enter`])},[e(b,{name:`i-lucide-x`,class:`size-3.5`})],40,qt)]),_:2},1032,[`text`])],64))],32)],64))]),_:2},1032,[`to`,`class`]))),128)),H(c).length?_(``,!0):(u(),a(`p`,Jt,`暂无故事`))])],64))],2))),128))])])])}}}),[[`__scopeId`,`data-v-3d44e42e`]]);export{E as default};
|
|
1
|
+
import{D as e,E as t,On as n,Zn as r,_ as i,b as a,bt as o,er as s,g as c,k as l,mt as u,o as d,qt as f,tr as p,un as m,v as h,vn as g,y as _}from"./DZo3dYLJ.js";import{C as v,w as y}from"./51OWHj8c.js";import{t as ee}from"./CJ2mz0WY.js";import{t as te}from"./D7ufz00d.js";import{t as ne}from"./DrZpfjBq.js";import{O as b,a as x,i as S,n as re,o as C,r as ie,s as w}from"#entry";var ae={class:`stats`},oe={class:`stat-top`},se={class:`stat-label`},ce={class:`stat-pill`},le={class:`stat-value`},ue={class:`stat-sub`},de={class:`stat-delta`},fe={class:`split`},pe={class:`spark`},me=[`title`],he={class:`stat-top`},ge={class:`stat-label`},_e={class:`stat-pill`},ve={class:`stat-value`},ye={class:`stat-sub`},be={class:`stat-rows`},xe={class:`stat-row`},Se={class:`v`},Ce={class:`stat-row`},we={class:`v`},Te={class:`stat-row`},Ee={class:`v`},De={class:`stat-row`},Oe={class:`v`},ke={class:`stat-foot`},Ae={class:`row`},je={class:`bar`},Me={class:`stat-top`},Ne={class:`stat-label`},Pe={class:`stat-value`},Fe={class:`unit`},Ie={class:`stat-sub`},Le={class:`stat-rows`},Re={class:`stat-row`},ze={class:`v`},Be={class:`stat-row`},Ve={class:`v`},He={class:`stat-row`},Ue={class:`v`},We={class:`stat-row`},Ge={class:`v`},Ke={class:`stat-foot`},qe={class:`row`},Je={class:`bar lilac`},Ye={class:`stat-top`},Xe={class:`stat-label`},Ze={class:`stat-value`},Qe={class:`stat-rows`},$e={class:`stat-row`},et={class:`v`},tt={class:`stat-row`},nt={class:`v`},rt={class:`stat-row`},it={class:`v`},at={class:`stat-row`},ot={class:`v`},st={class:`stat-foot`},ct={class:`row`},lt={class:`bar on-dark`},ut={class:`card tb`},dt={class:`tb-l`},ft={class:`tb-r`},pt={class:`mono`},mt={class:`mono`},ht={key:0,class:`card act-error`},gt={class:`act-error-txt`},_t={class:`card board`},vt={class:`lanes`},yt=[`title`,`onClick`],bt={class:`stub-name`},xt={class:`stub-ct`},St={class:`stub-pts`},Ct={class:`lane-hd`},wt={class:`lane-ct`},Tt={class:`lane-pts`},Et=[`aria-expanded`,`title`,`onClick`],Dt={class:`lane-bd`},Ot={class:`sc-id mono`},kt={class:`sc-c-pts`},At=[`title`],jt={class:`sc-top`},Mt={class:`sc-id mono`},Nt={class:`dim sc-wsjf`},Pt=[`title`],Ft={class:`sc-title`},It={class:`sc-meta`},Lt={class:`sc-tags`},Rt={class:`tag tag-ghost`},zt={key:0,class:`tag tag-neutral mono`},Bt=[`title`],Vt=[`title`],Ht={class:`bar slim sc-bar`},Ut={class:`sc-ask`},Wt=[`aria-label`,`onClick`,`onKeydown`],Gt=[`aria-label`,`onClick`,`onKeydown`],Kt=[`aria-label`,`onClick`,`onKeydown`],qt=[`aria-label`,`onClick`,`onKeydown`],Jt={key:0,class:`lane-empty`},T=`board.foldedLanes.v1`,E=S(l({__name:`index`,setup(l){let{stories:S,epics:E,states:D,progress:O,milestoneOfStory:Yt,pointsOf:Xt,milestones:Zt,refresh:Qt,STATE_LABEL:k,STATE_SHORT:$t,STATE_DOT:A,TYPE_LABEL:en,TYPE_COLOR:tn,TYPE_ICON:nn,PRIORITY_COLOR:rn,SCOPE_LABEL:an,wsjf:j,blockedStories:on}=w(),M=g(`all`),N=g(`all`),P=g(`rank`),sn=c(()=>[{label:`全部史诗`,value:`all`,icon:`i-lucide-layers`},...E.value.map(e=>({label:`${e.id} ${e.title}`,value:e.id,icon:`i-lucide-layer-group`}))]),cn=c(()=>[{label:`全部里程碑`,value:`all`,icon:`i-lucide-flag`},...Zt.value.map(e=>({label:`${e.id} ${e.title}`,value:e.id,icon:e.kind===`mvp`?`i-lucide-star`:`i-lucide-map-pin`}))]),ln=[{label:`默认顺序`,value:`rank`,icon:`i-lucide-list-ordered`},{label:`按优先级 P0 → P3`,value:`priority`,icon:`i-lucide-alert-circle`},{label:`按 WSJF 价值/点数`,value:`wsjf`,icon:`i-lucide-scale`},{label:`按点数`,value:`points`,icon:`i-lucide-signal`}],un={P0:0,P1:1,P2:2,P3:3},F=[`done`,`cancelled`],I=[`done`,`cancelled`],L=g((()=>{try{if(typeof localStorage>`u`)return[...I];let e=localStorage.getItem(T);if(!e)return[...I];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>F.includes(e)):[...I]}catch{return[...I]}})()),R=e=>F.includes(e),z=e=>L.value.includes(e),B=e=>F.includes(e),dn=e=>{if(R(e)){L.value=z(e)?L.value.filter(t=>t!==e):[...L.value,e];try{localStorage.setItem(T,JSON.stringify(L.value))}catch{}}},V=c(()=>{let e=S.value.filter(e=>!(M.value!==`all`&&e.epicId!==M.value||N.value!==`all`&&!Yt(e.id).some(e=>e.id===N.value)));return P.value===`priority`?[...e].sort((e,t)=>(un[e.priority]??9)-(un[t.priority]??9)||j(t)-j(e)):P.value===`wsjf`?[...e].sort((e,t)=>j(t)-j(e)):P.value===`points`?[...e].sort((e,t)=>t.points-e.points):e}),H=e=>V.value.filter(t=>t.status===e),U=e=>Xt(H(e).map(e=>e.id)),W=c(()=>{let e=V.value,t=e.filter(e=>e.status===`done`),n=e.filter(e=>e.status===`in-progress`||e.status===`review`),r=e.filter(e=>e.status===`ready`||e.status===`draft`),i=e.filter(e=>e.status===`cancelled`),a=e.filter(e=>e.status!==`cancelled`),o=e.flatMap(e=>e.tasks??[]),s=e=>o.filter(t=>t.status===e).length;return{count:e.length,points:e.reduce((e,t)=>e+t.points,0),liveCount:a.length,livePoints:a.reduce((e,t)=>e+t.points,0),donePoints:t.reduce((e,t)=>e+t.points,0),done:t.length,running:n.length,idle:r.length,cancelled:i.length,cancelledPoints:i.reduce((e,t)=>e+t.points,0),tasks:o.length,tasksDone:s(`done`),taskRed:s(`red`),taskGreen:s(`green`),taskRefactor:s(`refactored`),taskTodo:s(`todo`),bugs:e.filter(e=>e.type===`bug`).length,debt:e.filter(e=>e.type===`debt`).length,scope:e.filter(e=>e.scopeChange).length}}),G=c(()=>W.value.livePoints?Math.round(W.value.donePoints/W.value.livePoints*100):0),fn=c(()=>W.value.liveCount?Math.round(W.value.livePoints/W.value.liveCount*10)/10:0),K=c(()=>W.value.tasks?Math.round(W.value.tasksDone/W.value.tasks*100):0),pn=c(()=>on.value.length+W.value.bugs),mn=c(()=>Math.max(1,...D.map(e=>H(e).length))),hn=e=>8+Math.round(H(e).length/mn.value*34),q=[`draft`,`ready`,`in-progress`,`review`,`done`],gn=e=>q[q.indexOf(e)+1]??null,_n=e=>q.indexOf(e)>0?q[q.indexOf(e)-1]:null,J=e=>(e.tasks??[]).filter(e=>e.status!==`done`).length,vn=e=>{let t=gn(e.status);return t?!(t===`done`&&J(e)>0):!1},yn=e=>{let t=gn(e.status);return t?t===`done`&&J(e)?`还有 ${J(e)} 个任务没完成,先做完再收尾`:`推进到「${k[t]}」`:`已经是最后一个状态`},bn=e=>_n(e.status)!==null,Y={content:`bg-[#1b1526]! text-white! ring-0 shadow-lg`},xn=g(``),X=g(``),Z=g(``),Q=g(``);async function $(e,t){if(!X.value&&(t!==`next`||vn(e))&&(t!==`prev`||bn(e))){X.value=e.id,Q.value=``;try{xn.value||=(await b(`/api/projects`)).token,await b(`/api/agile/story-status`,{method:`POST`,headers:{"x-project-token":xn.value},body:{id:e.id,action:t}}),Z.value=``,await Qt()}catch(t){Q.value=`${e.id}:${t?.data?.error??t?.message??`改状态失败`}`}finally{X.value=``}}}let Sn=c(()=>{if(M.value===`all`)return`全部史诗`;let e=E.value.find(e=>e.id===M.value);return e?e.title.slice(0,6):`全部史诗`}),Cn=e=>Yt(e).filter(e=>e.kind===`mvp`);return(c,l)=>{let g=ie,b=ne,S=te,w=re,T=ee;return u(),a(`div`,null,[i(`div`,ae,[i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(0)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(0)},null,8,[`tone`]),i(`div`,oe,[i(`span`,se,[e(b,{name:`i-lucide-gauge`,class:`size-3.5`}),l[7]||=t(`看板完成度`,-1)]),i(`span`,ce,p(n(Sn)),1)]),i(`div`,le,[t(p(n(G)),1),l[8]||=i(`span`,{class:`unit`},`%`,-1)]),i(`div`,ue,[i(`span`,de,[e(b,{name:`i-lucide-check`,class:`size-3`}),t(p(n(W).donePoints)+` 点`,1)]),t(` 已交付 · 共 `+p(n(W).livePoints)+` 点 `,1)]),i(`div`,fe,[i(`div`,null,[l[9]||=i(`span`,{class:`k`},`完成故事`,-1),i(`b`,null,[t(p(n(W).done),1),i(`small`,null,`/`+p(n(W).liveCount),1)])]),i(`div`,null,[l[11]||=i(`span`,{class:`k`},`剩余点`,-1),i(`b`,null,[t(p(n(W).livePoints-n(W).donePoints),1),l[10]||=i(`small`,null,`点`,-1)])])]),i(`div`,pe,[(u(!0),a(d,null,o(n(D),e=>(u(),a(`div`,{key:e,class:`spark-col`,title:`${n(k)[e]}:${H(e).length} 个`},[i(`div`,{class:r([`spark-bar`,{done:e===`done`,cancel:e===`cancelled`}]),style:s({height:hn(e)+`px`})},null,6),i(`span`,null,p(n($t)[e]),1)],8,me))),128))])],2),i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(1)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(1)},null,8,[`tone`]),i(`div`,he,[i(`span`,ge,[e(b,{name:`i-lucide-book-open`,class:`size-3.5`}),l[12]||=t(`故事`,-1)]),i(`span`,_e,p(Math.round(n(fn)))+` 点/个`,1)]),i(`div`,ve,[t(p(n(W).count),1),l[13]||=i(`span`,{class:`unit`},`个`,-1)]),i(`div`,ye,`共 `+p(n(W).livePoints)+` 点 · 任务 `+p(n(W).tasks)+` 个`,1),i(`div`,be,[i(`div`,xe,[l[14]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6aa844`}}),t(`已完成`)],-1),i(`span`,Se,p(n(W).done),1)]),i(`div`,Ce,[l[15]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#3f7fd4`}}),t(`进行中`)],-1),i(`span`,we,p(n(W).running),1)]),i(`div`,Te,[l[16]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#b6bac1`}}),t(`未开始`)],-1),i(`span`,Ee,p(n(W).idle),1)]),i(`div`,De,[l[17]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#cf4759`}}),t(`已取消`)],-1),i(`span`,Oe,p(n(W).cancelled)+p(n(W).cancelledPoints?` · ${n(W).cancelledPoints} 点`:``),1)])]),i(`div`,ke,[i(`div`,Ae,[i(`span`,null,`任务完成 `+p(n(W).tasksDone)+`/`+p(n(W).tasks),1),i(`span`,null,p(n(K))+`%`,1)]),i(`div`,je,[i(`i`,{style:s({width:n(K)+`%`})},null,4)])])],2),i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(2)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(2)},null,8,[`tone`]),i(`div`,Me,[i(`span`,Ne,[e(b,{name:`i-lucide-list-checks`,class:`size-3.5`}),l[18]||=t(`TDD 任务`,-1)]),l[19]||=i(`span`,{class:`stat-pill`},`红 → 绿 → 重构`,-1)]),i(`div`,Pe,[t(p(n(W).tasksDone),1),i(`span`,Fe,`/ `+p(n(W).tasks)+` 项`,1)]),i(`div`,Ie,`已完成任务占 `+p(n(K))+`%`,1),i(`div`,Le,[i(`div`,Re,[l[20]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#cf4759`}}),t(`红(测试失败)`)],-1),i(`span`,ze,p(n(W).taskRed),1)]),i(`div`,Be,[l[21]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6aa844`}}),t(`绿(测试通过)`)],-1),i(`span`,Ve,p(n(W).taskGreen),1)]),i(`div`,He,[l[22]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6d4ff0`}}),t(`已重构`)],-1),i(`span`,Ue,p(n(W).taskRefactor),1)]),i(`div`,We,[l[23]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#b6bac1`}}),t(`待办`)],-1),i(`span`,Ge,p(n(W).taskTodo),1)])]),i(`div`,Ke,[i(`div`,qe,[i(`span`,null,`已完成 `+p(n(W).tasksDone)+`/`+p(n(W).tasks),1),i(`span`,null,p(n(K))+`%`,1)]),i(`div`,Je,[i(`i`,{style:s({width:n(K)+`%`})},null,4)])])],2),i(`article`,{class:r([`stat`,(`cardToneClass`in c?c.cardToneClass:n(C))(3)])},[e(g,{tone:(`cardTone`in c?c.cardTone:n(x))(3)},null,8,[`tone`]),i(`div`,Ye,[i(`span`,Xe,[e(b,{name:`i-lucide-shield-alert`,class:`size-3.5`}),l[24]||=t(`风险面`,-1)]),l[25]||=i(`span`,{class:`stat-pill`},`需处理`,-1)]),i(`div`,Ze,[t(p(n(pn)),1),l[26]||=i(`span`,{class:`unit`},`项`,-1)]),l[32]||=i(`div`,{class:`stat-sub`},`阻塞故事与缺陷合计`,-1),i(`div`,Qe,[i(`div`,$e,[l[27]||=i(`span`,{class:`k`},`阻塞故事`,-1),i(`span`,et,p(n(on).length),1)]),i(`div`,tt,[l[28]||=i(`span`,{class:`k`},`缺陷`,-1),i(`span`,nt,p(n(W).bugs),1)]),i(`div`,rt,[l[29]||=i(`span`,{class:`k`},`技术债`,-1),i(`span`,it,p(n(W).debt),1)]),i(`div`,at,[l[30]||=i(`span`,{class:`k`},`范围变更`,-1),i(`span`,ot,p(n(W).scope),1)])]),i(`div`,st,[i(`div`,ct,[l[31]||=i(`span`,null,`完成度`,-1),i(`span`,null,p(n(G))+`%`,1)]),i(`div`,lt,[i(`i`,{style:s({width:n(G)+`%`})},null,4)])])],2)]),i(`div`,ut,[i(`div`,dt,[l[33]||=i(`span`,{class:`lbl`},`筛选`,-1),e(S,{modelValue:n(M),"onUpdate:modelValue":l[0]||=e=>m(M)?M.value=e:null,items:n(sn),icon:`i-lucide-layers`,"aria-label":`按史诗筛选`},null,8,[`modelValue`,`items`]),e(S,{modelValue:n(N),"onUpdate:modelValue":l[1]||=e=>m(N)?N.value=e:null,items:n(cn),icon:`i-lucide-flag`,"aria-label":`按里程碑筛选`},null,8,[`modelValue`,`items`]),e(S,{modelValue:n(P),"onUpdate:modelValue":l[2]||=e=>m(P)?P.value=e:null,items:ln,icon:`i-lucide-arrow-up-down`,"aria-label":`排序方式`},null,8,[`modelValue`])]),i(`div`,ft,[i(`span`,pt,p(n(V).length),1),l[34]||=t(` 个故事 `,-1),l[35]||=i(`i`,{class:`sep`},null,-1),i(`span`,mt,p(n(Xt)(n(V).map(e=>e.id))),1),l[36]||=t(` 点 `,-1)])]),n(Q)?(u(),a(`div`,ht,[e(b,{name:`i-lucide-circle-alert`,class:`size-4`}),i(`span`,gt,p(n(Q)),1),i(`button`,{class:`btn btn-sm`,onClick:l[3]||=e=>Q.value=``},`知道了`)])):_(``,!0),i(`div`,_t,[i(`div`,vt,[(u(!0),a(d,null,o(n(D),c=>(u(),a(`section`,{key:c,class:r([`lane`,{folded:z(c)}])},[z(c)?(u(),a(`button`,{key:0,class:`lane-stub`,title:`展开${n(k)[c]}:${H(c).length} 个 · ${U(c)} 点`,onClick:e=>dn(c)},[i(`i`,{class:`lane-dot`,style:s({background:n(A)[c]})},null,4),i(`span`,bt,p(n(k)[c]),1),i(`span`,xt,p(H(c).length),1),i(`span`,St,p(U(c))+` 点`,1),e(b,{name:`i-lucide-chevrons-right`,class:`stub-ic`})],8,yt)):(u(),a(d,{key:1},[i(`header`,Ct,[i(`i`,{class:`lane-dot`,style:s({background:n(A)[c]})},null,4),i(`b`,null,p(n(k)[c]),1),i(`span`,wt,p(H(c).length),1),i(`span`,Tt,p(U(c))+` 点`,1),R(c)?(u(),a(`button`,{key:0,class:`lane-fold`,"aria-expanded":!z(c),title:`收起${n(k)[c]}`,onClick:e=>dn(c)},[e(b,{name:`i-lucide-chevron-left`,class:`size-3`})],8,Et)):_(``,!0)]),i(`div`,Dt,[(u(!0),a(d,null,o(H(c),m=>(u(),h(T,{key:m.id,to:`/story/${m.id}`,class:r([`scard`,{"scard-compact":B(c)}])},{default:f(()=>[B(c)?(u(),a(d,{key:0},[i(`span`,Ot,p(m.id),1),i(`span`,kt,p(m.points)+` 点`,1),i(`span`,{class:`sc-c-title`,title:m.title},p(m.title),9,At)],64)):(u(),a(d,{key:1},[i(`div`,jt,[i(`span`,Mt,p(m.id),1),i(`span`,{class:r([`tag`,`tag-${n(rn)[m.priority]}`])},p(m.priority),3),i(`span`,Nt,`WSJF `+p(n(j)(m)),1),m.blocked?(u(),a(`span`,{key:0,class:`tag tag-error tag-dot`,title:`阻塞中:${m.blocked.reason}(自 ${m.blocked.since})`},`阻塞`,8,Pt)):_(``,!0)]),i(`p`,Ft,p(m.title),1),i(`div`,It,[i(`span`,null,p(m.points)+` 点`,1),l[37]||=i(`span`,{class:`dim`},`·`,-1),i(`span`,null,`任务 `+p(n(O)(m).done)+`/`+p(n(O)(m).total),1)]),i(`div`,Lt,[i(`span`,{class:r([`tag`,`tag-${n(tn)[m.type]}`])},[e(b,{name:n(nn)[m.type],class:`size-3`},null,8,[`name`]),t(p(n(en)[m.type]),1)],2),i(`span`,Rt,p(m.epicId),1),m.sprintId?(u(),a(`span`,zt,p(m.sprintId),1)):_(``,!0),(u(!0),a(d,null,o(Cn(m.id),e=>(u(),a(`span`,{key:e.id,class:`tag tag-mint`,title:`${e.id} ${e.title} · ${e.criteria}`},`MVP`,8,Bt))),128)),m.scopeChange?(u(),a(`span`,{key:1,class:`tag tag-info`,title:`${n(an)[m.scopeChange.kind]}(${m.scopeChange.at}):${m.scopeChange.reason}`},p(n(an)[m.scopeChange.kind]),9,Vt)):_(``,!0)]),i(`div`,Ht,[i(`i`,{style:s({width:n(O)(m).pct+`%`})},null,4)]),i(`div`,{class:`sc-actions`,style:{backdropFilter:`blur(10px) saturate(125%)`},onMouseleave:l[6]||=e=>Z.value=``},[n(Z)===m.id?(u(),a(d,{key:0},[i(`span`,Ut,`取消 `+p(m.id)+`?`,1),i(`span`,{class:`sc-act danger`,role:`button`,tabindex:`0`,"data-act":`cancel-confirm`,"aria-label":`确认取消 ${m.id}`,onClick:y(e=>$(m,`cancel`),[`stop`,`prevent`]),onKeydown:v(y(e=>$(m,`cancel`),[`prevent`]),[`enter`])},`确认`,40,Wt),i(`span`,{class:`sc-act`,role:`button`,tabindex:`0`,"data-act":`cancel-abort`,onClick:l[4]||=y(e=>Z.value=``,[`stop`,`prevent`]),onKeydown:l[5]||=v(y(e=>Z.value=``,[`prevent`]),[`enter`])},`返回`,32)],64)):(u(),a(d,{key:1},[bn(m)?(u(),h(w,{key:0,text:`退回「${n(k)[_n(m.status)??``]}」`,"delay-duration":150,ui:Y},{default:f(()=>[i(`span`,{class:`sc-act`,role:`button`,tabindex:`0`,"data-act":`prev`,"aria-label":`退回 ${m.id}`,onClick:y(e=>$(m,`prev`),[`stop`,`prevent`]),onKeydown:v(y(e=>$(m,`prev`),[`prevent`]),[`enter`])},[e(b,{name:`i-lucide-arrow-left`,class:`size-3.5`})],40,Gt)]),_:2},1032,[`text`])):_(``,!0),e(w,{text:yn(m),"delay-duration":150,ui:Y},{default:f(()=>[i(`span`,{class:r([`sc-act`,{off:!vn(m)}]),role:`button`,tabindex:`0`,"data-act":`next`,"aria-label":`推进 ${m.id}`,onClick:y(e=>$(m,`next`),[`stop`,`prevent`]),onKeydown:v(y(e=>$(m,`next`),[`prevent`]),[`enter`])},[e(b,{name:`i-lucide-arrow-right`,class:`size-3.5`})],42,Kt)]),_:2},1032,[`text`]),e(w,{text:`标记 ${m.id} 已取消`,"delay-duration":150,ui:Y},{default:f(()=>[i(`span`,{class:`sc-act danger`,role:`button`,tabindex:`0`,"data-act":`cancel`,"aria-label":`取消 ${m.id}`,onClick:y(e=>Z.value=m.id,[`stop`,`prevent`]),onKeydown:v(y(e=>Z.value=m.id,[`prevent`]),[`enter`])},[e(b,{name:`i-lucide-x`,class:`size-3.5`})],40,qt)]),_:2},1032,[`text`])],64))],32)],64))]),_:2},1032,[`to`,`class`]))),128)),H(c).length?_(``,!0):(u(),a(`p`,Jt,`暂无故事`))])],64))],2))),128))])])])}}}),[[`__scopeId`,`data-v-3d44e42e`]]);export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{E as e,On as t,Zn as n,b as r,g as i,mt as a,tr as o,xt as s}from"./DZo3dYLJ.js";import{r as c}from"./
|
|
1
|
+
import{E as e,On as t,Zn as n,b as r,g as i,mt as a,tr as o,xt as s}from"./DZo3dYLJ.js";import{r as c}from"./Csqgy925.js";import{n as l,t as u}from"./6gFtTBwm.js";var d={base:`pb-4 text-muted *:first:mt-0 *:last:mb-0 *:my-1.5`},f={__name:`ProseAccordionItem`,props:{label:{type:String,required:!0},description:{type:String,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(f){let p=l(`prose.accordionItem`,f),m=c(),h=i(()=>u({extend:d,...m.ui?.prose?.accordionItem||{}}));return(i,c)=>(a(),r(`div`,{class:n(h.value({class:[t(p).ui?.base,t(p).class]}))},[s(i.$slots,`default`,{},()=>[e(o(t(p).description),1)])],2))}};export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{H as e,L as t,an as n,gn as r,in as i,yn as a}from"./DZo3dYLJ.js";var o=Error.captureStackTrace,s=class e extends Error{name;code;docs;fix;sources;data;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,this.data=t.data,o?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,data:this.data,stack:this.stack}}};function c(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function l(e={}){let{docsBase:t,reporters:n=[]}=e;return new Proxy({},{get(e,r){if(typeof r!=`string`)return;let i=(e={},a={})=>{let o=c(t,r),l=new s({code:r,why:o??``,docs:o,cause:e.cause,sources:e.sources},i);for(let e of n)e(l,a);return l};return i}})}function u(e){return`https://nuxt.com/docs/4.x/errors/${e.replace(`NUXT_`,``).toLowerCase()}`}var d=[e=>{console.error(`[${e.name}]`)}],f=l({docsBase:u,reporters:d}),p=globalThis.__nuxt_app_ctx__||={};function m(e){return p[e]||=(()=>{let e;return{use:()=>{if(e===void 0)throw Error(`Context is not available`);return e},tryUse:()=>e??null,set:t=>{e=t},unset:()=>{e=void 0},call:(t,n)=>(e=t,n()),callAsync:(t,n)=>(e=t,Promise.resolve(n()))}})()}function h(e,t){return m(e)}function g(e,t={},n){for(let r in e){let i=e[r],a=n?`${n}:${r}`:r;typeof i==`object`&&i?g(i,t,a):typeof i==`function`&&(t[a]=i)}return t}var _=(()=>{if(console.createTask)return console.createTask;let e={run:e=>e()};return()=>e})();function v(e,t,n,r){for(let i=n;i<e.length;i+=1)try{let n=r?r.run(()=>e[i](...t)):e[i](...t);if(n&&typeof n.then==`function`)return Promise.resolve(n).then(()=>v(e,t,i+1,r))}catch(e){return Promise.reject(e)}}function y(e,t,n){if(e.length>0)return v(e,t,0,_(n))}function b(e,t,n){if(e.length>0){let r=_(n);return Promise.all(e.map(e=>r.run(()=>e(...t))))}}function x(e,t){for(let n of[...e])n(t)}var S=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!=`function`)return()=>{};let r=e,i;for(;this._deprecatedHooks[e];)i=this._deprecatedHooks[e],e=i.to;if(i&&!n.allowDeprecated){let e=i.message;e||=`${r} hook has been deprecated`+(i.to?`, please use ${i.to}`:``),this._deprecatedMessages||=new Set,this._deprecatedMessages.has(e)||(console.warn(e),this._deprecatedMessages.add(e))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>`_`+e.replace(/\W+/g,`_`)+`_hook_cb`,configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)}}hookOnce(e,t){let n,r=(...e)=>(typeof n==`function`&&n(),n=void 0,r=void 0,t(...e));return n=this.hook(e,r),n}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t==`string`?{to:t}:t;let n=this._hooks[e]||[];this._hooks[e]=void 0;for(let t of n)this.hook(e,t)}deprecateHooks(e){for(let t in e)this.deprecateHook(t,e[t])}addHooks(e){let t=g(e),n=Object.keys(t).map(e=>this.hook(e,t[e]));return()=>{for(let e of n)e();n.length=0}}removeHooks(e){let t=g(e);for(let e in t)this.removeHook(e,t[e])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(y,e,t)}callHookParallel(e,...t){return this.callHookWith(b,e,t)}callHookWith(e,t,n){let r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&x(this._before,r);let i=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return i instanceof Promise?i.finally(()=>{this._after&&r&&x(this._after,r)}):(this._after&&r&&x(this._after,r),i)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){let t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){let t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function C(){return new S}var w=class{_hooks;constructor(){this._hooks={}}hook(e,t){return!e||typeof t!=`function`?()=>{}:(this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)})}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}callHook(e,...t){let n=this._hooks[e];if(n&&n.length!==0)return v(n.slice(),t,0)}},T={meta:[{charset:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`}],link:[],style:[],script:[],noscript:[],title:`敏捷看板`,htmlAttrs:{lang:`zh-CN`}},E={id:`__nuxt-loader`},D={componentName:`NuxtLink`,prefetch:!0,prefetchOn:{visibility:!0}},O={deep:!1},k={},A=`#__nuxt`,j=`nuxt-app`,M=36e5,N=`vite:preloadError`;function P(e=`nuxt-app`){return h(e,{asyncContext:!1})}var F=`__nuxt_plugin`;function I(e){let t=0,o={_id:e.id||`nuxt-app`,_scope:i(),provide:void 0,versions:{get nuxt(){return`4.6.2`},get vue(){return o.vueApp.version}},payload:a({...e.ssrContext?.payload||{},data:a({}),state:r({}),once:new Set,_errors:a({})}),static:{data:{}},runWithContext(e){return o._scope.active&&!n()?o._scope.run(()=>B(o,e)):B(o,e)},isHydrating:!0,deferHydration(){if(!o.isHydrating)return()=>{};t++;let e=!1;return()=>{if(!e&&(e=!0,t--,t===0))return o.isHydrating=!1,o.callHook(`app:suspense:resolve`)}},_asyncDataPromises:{},_asyncData:a({}),_state:a({}),_payloadRevivers:{},...e};{let e=window.__NUXT__;if(e)for(let t in e)switch(t){case`data`:case`state`:case`_errors`:Object.assign(o.payload[t],e[t]);break;default:o.payload[t]=e[t]}}o.hooks=C(),o.hook=o.hooks.hook;{let e=o.hooks.callHook;o.hooks.callHook=(t,...n)=>Promise.resolve().then(()=>e(t,...n))}o.callHook=o.hooks.callHook,o.provide=(e,t)=>{let n=`$`+e;W(o,n,t),W(o.vueApp.config.globalProperties,n,t)},W(o.vueApp,`$nuxt`,o),W(o.vueApp.config.globalProperties,`$nuxt`,o);{window.addEventListener(N,e=>{o.callHook(`app:chunkError`,{error:e.payload}),e.payload?.message?.includes(`Unable to preload CSS`)&&e.preventDefault()}),window.useNuxtApp||=H;let e=o.hook(`app:error`,(...e)=>{f.NUXT_E1005({cause:e.length>1?e:e[0]})});o.hook(`app:mounted`,e)}let s=o.payload.config;return o.provide(`config`,s),o}async function L(e,t){if(typeof t==`function`){let{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n==`object`)for(let t in n)e.provide(t,n[t])}}async function R(e,t){let n;for(let r of t)try{await L(e,r)}catch(t){if(!e.payload.error)throw t;n||=t}if(n)throw e.payload.error||n}function z(e){if(typeof e==`function`)return e;let t=e._name||e.name;return delete e.name,Object.assign(e.setup||(()=>{}),e,{[F]:!0,_name:t})}function B(e,t,n){return P(e._id).set(e),e.vueApp.runWithContext(()=>n?t(...n):t())}function V(n){let r;return e()&&(r=t()?.appContext.app.$nuxt),r||=P(n).tryUse(),r||null}function H(e){let t=V(e);if(!t)throw f.NUXT_E1001();return t}function U(e){return H().$config}function W(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function G(e){return e}export{f as _,V as a,l as b,T as c,O as d,k as f,w as g,A as h,z as i,j as l,M as m,I as n,H as o,D as p,G as r,U as s,R as t,E as u,u as v,d as y};
|
|
1
|
+
import{H as e,L as t,an as n,gn as r,in as i,yn as a}from"./DZo3dYLJ.js";var o=Error.captureStackTrace,s=class e extends Error{name;code;docs;fix;sources;data;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,this.data=t.data,o?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,data:this.data,stack:this.stack}}};function c(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function l(e={}){let{docsBase:t,reporters:n=[]}=e;return new Proxy({},{get(e,r){if(typeof r!=`string`)return;let i=(e={},a={})=>{let o=c(t,r),l=new s({code:r,why:o??``,docs:o,cause:e.cause,sources:e.sources},i);for(let e of n)e(l,a);return l};return i}})}function u(e){return`https://nuxt.com/docs/4.x/errors/${e.replace(`NUXT_`,``).toLowerCase()}`}var d=[e=>{console.error(`[${e.name}]`)}],f=l({docsBase:u,reporters:d}),p=globalThis.__nuxt_app_ctx__||={};function m(e){return p[e]||=(()=>{let e;return{use:()=>{if(e===void 0)throw Error(`Context is not available`);return e},tryUse:()=>e??null,set:t=>{e=t},unset:()=>{e=void 0},call:(t,n)=>(e=t,n()),callAsync:(t,n)=>(e=t,Promise.resolve(n()))}})()}function h(e,t){return m(e)}function g(e,t={},n){for(let r in e){let i=e[r],a=n?`${n}:${r}`:r;typeof i==`object`&&i?g(i,t,a):typeof i==`function`&&(t[a]=i)}return t}var _=(()=>{if(console.createTask)return console.createTask;let e={run:e=>e()};return()=>e})();function v(e,t,n,r){for(let i=n;i<e.length;i+=1)try{let n=r?r.run(()=>e[i](...t)):e[i](...t);if(n&&typeof n.then==`function`)return Promise.resolve(n).then(()=>v(e,t,i+1,r))}catch(e){return Promise.reject(e)}}function y(e,t,n){if(e.length>0)return v(e,t,0,_(n))}function b(e,t,n){if(e.length>0){let r=_(n);return Promise.all(e.map(e=>r.run(()=>e(...t))))}}function x(e,t){for(let n of[...e])n(t)}var S=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!=`function`)return()=>{};let r=e,i;for(;this._deprecatedHooks[e];)i=this._deprecatedHooks[e],e=i.to;if(i&&!n.allowDeprecated){let e=i.message;e||=`${r} hook has been deprecated`+(i.to?`, please use ${i.to}`:``),this._deprecatedMessages||=new Set,this._deprecatedMessages.has(e)||(console.warn(e),this._deprecatedMessages.add(e))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>`_`+e.replace(/\W+/g,`_`)+`_hook_cb`,configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)}}hookOnce(e,t){let n,r=(...e)=>(typeof n==`function`&&n(),n=void 0,r=void 0,t(...e));return n=this.hook(e,r),n}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t==`string`?{to:t}:t;let n=this._hooks[e]||[];this._hooks[e]=void 0;for(let t of n)this.hook(e,t)}deprecateHooks(e){for(let t in e)this.deprecateHook(t,e[t])}addHooks(e){let t=g(e),n=Object.keys(t).map(e=>this.hook(e,t[e]));return()=>{for(let e of n)e();n.length=0}}removeHooks(e){let t=g(e);for(let e in t)this.removeHook(e,t[e])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(y,e,t)}callHookParallel(e,...t){return this.callHookWith(b,e,t)}callHookWith(e,t,n){let r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&x(this._before,r);let i=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return i instanceof Promise?i.finally(()=>{this._after&&r&&x(this._after,r)}):(this._after&&r&&x(this._after,r),i)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){let t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){let t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function C(){return new S}var w=class{_hooks;constructor(){this._hooks={}}hook(e,t){return!e||typeof t!=`function`?()=>{}:(this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)})}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}callHook(e,...t){let n=this._hooks[e];if(n&&n.length!==0)return v(n.slice(),t,0)}},T={meta:[{charset:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`}],link:[{rel:`icon`,type:`image/svg+xml`,href:`/favicon.svg`},{rel:`apple-touch-icon`,href:`/favicon.svg`}],style:[],script:[],noscript:[],title:`敏捷看板`,htmlAttrs:{lang:`zh-CN`}},E={id:`__nuxt-loader`},D={componentName:`NuxtLink`,prefetch:!0,prefetchOn:{visibility:!0}},O={deep:!1},k={},A=`#__nuxt`,j=`nuxt-app`,M=36e5,N=`vite:preloadError`;function P(e=`nuxt-app`){return h(e,{asyncContext:!1})}var F=`__nuxt_plugin`;function I(e){let t=0,o={_id:e.id||`nuxt-app`,_scope:i(),provide:void 0,versions:{get nuxt(){return`4.6.2`},get vue(){return o.vueApp.version}},payload:a({...e.ssrContext?.payload||{},data:a({}),state:r({}),once:new Set,_errors:a({})}),static:{data:{}},runWithContext(e){return o._scope.active&&!n()?o._scope.run(()=>B(o,e)):B(o,e)},isHydrating:!0,deferHydration(){if(!o.isHydrating)return()=>{};t++;let e=!1;return()=>{if(!e&&(e=!0,t--,t===0))return o.isHydrating=!1,o.callHook(`app:suspense:resolve`)}},_asyncDataPromises:{},_asyncData:a({}),_state:a({}),_payloadRevivers:{},...e};{let e=window.__NUXT__;if(e)for(let t in e)switch(t){case`data`:case`state`:case`_errors`:Object.assign(o.payload[t],e[t]);break;default:o.payload[t]=e[t]}}o.hooks=C(),o.hook=o.hooks.hook;{let e=o.hooks.callHook;o.hooks.callHook=(t,...n)=>Promise.resolve().then(()=>e(t,...n))}o.callHook=o.hooks.callHook,o.provide=(e,t)=>{let n=`$`+e;W(o,n,t),W(o.vueApp.config.globalProperties,n,t)},W(o.vueApp,`$nuxt`,o),W(o.vueApp.config.globalProperties,`$nuxt`,o);{window.addEventListener(N,e=>{o.callHook(`app:chunkError`,{error:e.payload}),e.payload?.message?.includes(`Unable to preload CSS`)&&e.preventDefault()}),window.useNuxtApp||=H;let e=o.hook(`app:error`,(...e)=>{f.NUXT_E1005({cause:e.length>1?e:e[0]})});o.hook(`app:mounted`,e)}let s=o.payload.config;return o.provide(`config`,s),o}async function L(e,t){if(typeof t==`function`){let{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n==`object`)for(let t in n)e.provide(t,n[t])}}async function R(e,t){let n;for(let r of t)try{await L(e,r)}catch(t){if(!e.payload.error)throw t;n||=t}if(n)throw e.payload.error||n}function z(e){if(typeof e==`function`)return e;let t=e._name||e.name;return delete e.name,Object.assign(e.setup||(()=>{}),e,{[F]:!0,_name:t})}function B(e,t,n){return P(e._id).set(e),e.vueApp.runWithContext(()=>n?t(...n):t())}function V(n){let r;return e()&&(r=t()?.appContext.app.$nuxt),r||=P(n).tryUse(),r||null}function H(e){let t=V(e);if(!t)throw f.NUXT_E1001();return t}function U(e){return H().$config}function W(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function G(e){return e}export{f as _,V as a,l as b,T as c,O as d,k as f,w as g,A as h,z as i,j as l,M as m,I as n,H as o,D as p,G as r,U as s,R as t,E as u,u as v,d as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{On as e,Zn as t,_ as n,b as r,g as i,mt as a,xt as o}from"./DZo3dYLJ.js";import{r as s}from"./
|
|
1
|
+
import{On as e,Zn as t,_ as n,b as r,g as i,mt as a,xt as o}from"./DZo3dYLJ.js";import{r as s}from"./Csqgy925.js";import{n as c,t as l}from"./6gFtTBwm.js";var u={slots:{root:`relative my-5 overflow-x-auto rounded-md outline-primary/25 focus-visible:outline-3`,base:`w-full border-separate border-spacing-0 rounded-md`}},d={__name:`ProseTable`,props:{class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(d){let f=c(`prose.table`,d),p=s(),m=i(()=>l({extend:u,...p.ui?.prose?.table||{}})());return(i,s)=>(a(),r(`div`,{class:t(m.value.root({class:[e(f).ui?.root,e(f).class]}))},[n(`table`,{class:t(m.value.base({class:e(f).ui?.base}))},[o(i.$slots,`default`)],2)],2))}};export{d as default};
|