p-backlog 0.3.0 → 0.5.0
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/CHANGELOG.md +44 -0
- package/README.md +46 -30
- package/README.ru.md +46 -30
- package/dist/cli.js +930 -300
- package/dist/web/assets/{ChartTooltip-DwQKHXkN.js → ChartTooltip-b-yZtIRd.js} +3 -3
- package/dist/web/assets/CodeTab-BU7UU1i4.js +1 -0
- package/dist/web/assets/{CostTab-B21EB-7P.js → CostTab-Be8xR9DU.js} +1 -1
- package/dist/web/assets/EffectTab-D0kaZiSl.js +1 -0
- package/dist/web/assets/Figure-B6Ry1zXo.js +1 -0
- package/dist/web/assets/OverviewTab-DqU7o9Ug.js +1 -0
- package/dist/web/assets/QualityTab-DtnTgxXj.js +1 -0
- package/dist/web/assets/StatsPage-BLZKtSL6.js +1 -0
- package/dist/web/assets/StatsTabState-CYkDWYp7.js +1 -0
- package/dist/web/assets/{StatsTable-Bd3vAxKU.js → StatsTable-C0coWtNM.js} +1 -1
- package/dist/web/assets/UnavailableRepos-DDHmBHg0.js +1 -0
- package/dist/web/assets/cx-Cfec8QGz.js +58 -0
- package/dist/web/assets/index-DN4lSwOL.js +2 -0
- package/dist/web/assets/{index-CAKUAPJF.css → start-Cy19NMke.css} +1 -1
- package/dist/web/assets/start-sbZVqXmP.js +38 -0
- package/dist/web/assets/{value-dot-kiMizZCu.js → value-dot-CfFRNT_m.js} +1 -1
- package/dist/web/index.html +1 -5
- package/package.json +2 -1
- package/skill/backlog/SKILL.md +5 -4
- package/skill/backlog-en/SKILL.md +5 -4
- package/dist/web/assets/CodeTab-BGxsIZMH.js +0 -1
- package/dist/web/assets/EffectTab-97OFZkWY.js +0 -1
- package/dist/web/assets/Figure-CiIqHKnb.js +0 -1
- package/dist/web/assets/OverviewTab-X_g8WfUl.js +0 -1
- package/dist/web/assets/QualityTab-DYnFz37G.js +0 -1
- package/dist/web/assets/StatsPage-D9gJHHQg.js +0 -1
- package/dist/web/assets/StatsTabState-DbuUIt-D.js +0 -1
- package/dist/web/assets/UnavailableRepos-D2iehY7u.js +0 -1
- package/dist/web/assets/cx-BZTW4xgb.js +0 -58
- package/dist/web/assets/index-BrkoyuWi.js +0 -38
- package/dist/web/assets/paths-ZO6w2vYU.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Cn as t,wn as n}from"./cx-BZTW4xgb.js";import{$ as r,B as i,C as a,Ct as o,Dt as s,E as c,Et as l,F as u,I as d,K as f,L as p,M as m,N as h,O as g,Ot as _,P as v,Q as y,R as b,St as x,T as S,Tt as C,U as w,V as T,W as ee,Y as E,at as te,b as ne,bt as D,ct as re,et as ie,ft as O,gt as k,ht as A,it as j,k as ae,lt as M,mt as N,ot as oe,p as se,pt as ce,q as le,rt as ue,tt as de,ut as fe,w as pe,wt as me,x as he,xt as ge,y as _e,yt as P}from"./ChartTooltip-DwQKHXkN.js";var F=e(n());function I(){return I=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},I.apply(null,arguments)}var L=e=>{var t=e.cx,n=e.cy,r=e.r,i=e.className,a=_(`recharts-dot`,i);return D(t)&&D(n)&&D(r)?F.createElement(`circle`,I({},l(e),A(e),{className:a,cx:t,cy:n,r})):null},ve=[`points`];function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?R(Object(n),!0).forEach(function(t){ye(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ye(e,t,n){return(t=be(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function be(e){var t=xe(e,`string`);return typeof t==`symbol`?t:t+``}function xe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function B(){return B=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},B.apply(null,arguments)}function Se(e,t){if(e==null)return{};var n,r,i=Ce(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ce(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function we(e){var t=e.option,n=e.dotProps,r=e.className;if((0,F.isValidElement)(t))return(0,F.cloneElement)(t,n);if(typeof t==`function`)return t(n);var i=_(r,typeof t==`boolean`?``:t.className),a=n??{};a.points;var o=Se(a,ve);return F.createElement(L,B({},o,{className:i}))}function Te(e,t){return e==null?!1:t?!0:e.length===1}function V(e){var t=e.points,n=e.dot,r=e.className,i=e.dotClassName,a=e.dataKey,s=e.baseProps,c=e.needClip,l=e.clipPathId,u=e.zIndex,f=u===void 0?E.scatter:u;if(!Te(t,n))return null;var p=d(n),m=C(n),h=t.map((e,r)=>{var o=z(z(z({r:3},s),m),{},{index:r,cx:e.x??void 0,cy:e.y??void 0,dataKey:a,value:e.value,payload:e.payload,points:t});return F.createElement(we,{key:`dot-${r}`,option:n,dotProps:o,className:i})}),g={};return c&&l!=null&&(g.clipPath=`url(#clipPath-${p?``:`dots-`}${l})`),F.createElement(T,{zIndex:f},F.createElement(o,B({className:r},g),h))}function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function U(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?H(Object(n),!0).forEach(function(t){Ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ee(e,t,n){return(t=De(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function De(e){var t=Oe(e,`string`);return typeof t==`symbol`?t:t+``}function Oe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ke=e=>{var t=e.point,n=e.childIndex,r=e.mainColor,i=e.activeDot,a=e.dataKey,c=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var l=U(U(U({},{index:n,dataKey:a,cx:t.x,cy:t.y,r:4,fill:r??`none`,strokeWidth:2,stroke:`#fff`,payload:t.payload,value:t.value}),s(i)),A(i)),u=(0,F.isValidElement)(i)?(0,F.cloneElement)(i,l):typeof i==`function`?i(l):F.createElement(L,l);return F.createElement(o,{className:`recharts-active-dot`,clipPath:c},u)};function W(e){var t=e.points,n=e.mainColor,r=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,c=s===void 0?E.activeDot:s,l=ce(w),u=a();if(t==null||u==null)return null;var d=t.find(e=>u.includes(e.payload));return P(d)?null:F.createElement(T,{zIndex:c},F.createElement(ke,{point:d,childIndex:Number(l),mainColor:n,dataKey:i,activeDot:r,clipPath:o}))}var Ae=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`visibleLength`,`strokeDasharray`,`connectNulls`];function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G.apply(null,arguments)}function je(e,t){if(e==null)return{};var n,r,i=Me(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Me(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Ne(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function K(e,t){return`${t}px ${e}px`}function Pe(e){return e.length%2==0?e:[...e,...e]}function Fe(e,t){for(var n=[],r=0;r<t;++r)n.push(...e);return n}function Ie(e,t,n){var r=Pe(n),i=r.reduce((e,t)=>e+t,0);if(!i)return K(t,e);for(var a=Math.floor(e/i),o=e%i,s=[],c=0,l=0;c<r.length;l+=(u=r[c])??0,++c){var u,d=r[c];if(d!=null&&l+d>o){s=[...r.slice(0,c),o-l];break}}var f=s.length%2==0?[0,t]:[t];return[...Fe(r,a),...s,...f].map(e=>`${e}px`).join(`, `)}function Le(e,t,n){return e?Ie(n,t,`${e}`.split(/[,\s]+/gim).map(e=>parseFloat(e))):K(t,n)}function Re(e){e.animationElapsedTime,e.isAnimating,e.isEntrance;var t=e.visibleLength,n=e.strokeDasharray,i=e.connectNulls,a=je(e,Ae),o=i??!1,s;if(t!=null){var c=a.pathRef;s=Le(n,Ne(c?.current??null),t)}else n!=null&&(s=String(n));return F.createElement(r,G({},a,{connectNulls:o,strokeDasharray:s}))}function ze(e){var t=(0,F.useRef)(0),n=(0,F.useRef)(0),r=(0,F.useRef)(!1),i=(0,F.useRef)(e);return i.current!==e&&(t.current=n.current,i.current=e),(0,F.useCallback)((e,i)=>{if(r.current)return null;var a=Math.min(x(t.current+e*i),i);return e>0&&i>0&&(n.current=Math.max(n.current,a),a>=i)?(r.current=!0,null):a},[])}var q=(e,t,n,r)=>ee(e,`xAxis`,t,r),J=(e,t,n,r)=>f(e,`xAxis`,t,r),Be=(e,t,n,r)=>ee(e,`yAxis`,n,r),Ve=(e,t,n,r)=>f(e,`yAxis`,n,r),He=O([de,q,Be,J,Ve],(e,t,n,r,i)=>fe(e,`xAxis`)?te(t,r,!1):te(n,i,!1)),Ue=(e,t,n,r,i)=>i;function We(e){return e.type===`line`}var Ge=O([le,Ue],(e,t)=>e.filter(We).find(e=>e.id===t)),Ke=O([de,q,Be,J,Ve,Ge,He,y],(e,t,n,r,i,a,o,s)=>{var c=s.chartData,l=s.dataStartIndex,u=s.dataEndIndex;if(!(a==null||t==null||n==null||r==null||i==null||r.length===0||i.length===0||o==null||e!==`horizontal`&&e!==`vertical`)){var d=a.dataKey,f=a.data,p=f!=null&&f.length>0?f:c?.slice(l,u+1);if(p!=null)return mt({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:p})}});function qe(e){var t=s(e),n=3,r=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),c=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(c)||c<0)&&(c=r),{r:o,strokeWidth:c}}return{r:n,strokeWidth:r}}var Je=[`id`],Ye=[`type`,`layout`,`connectNulls`,`needClip`,`shape`,`strokeDasharray`],Xe=[`activeDot`,`animateNewValues`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`hide`,`isAnimationActive`,`label`,`legendType`,`xAxisId`,`yAxisId`,`id`];function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(null,arguments)}function X(e,t){if(e==null)return{};var n,r,i=Ze(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ze(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Qe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Qe(Object(n),!0).forEach(function(t){$e(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qe(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $e(e,t,n){return(t=et(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function et(e){var t=tt(e,`string`);return typeof t==`symbol`?t:t+``}function tt(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function nt(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function rt(e){var t=0,n=0;for(var r of e)r.status===`matched`&&r.prev.x!=null&&r.next.x!=null&&(t+=r.next.x-r.prev.x,n++);return n>0?t/n:0}var Q={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,animationInterpolateFn:(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(e=>e.status===`removed`?[]:[e.next]);var n=rt(e),r=[];for(var i of e)if(i.status===`matched`)r.push(Z(Z({},i.next),{},{x:k(i.prev.x,i.next.x,t),y:k(i.prev.y,i.next.y,t)}));else if(i.status===`added`){if(i.next.x!=null){var a=i.next.x-n;r.push(Z(Z({},i.next),{},{x:k(a,i.next.x,t),y:i.next.y}))}else r.push(i.next)}else if(i.status===`removed`&&i.prev.x!=null){var o=i.prev.x+n;r.push(Z(Z({},i.prev),{},{x:k(i.prev.x,o,t),y:i.prev.y}))}return r},animationMatchBy:m,connectNulls:!1,dot:!0,fill:`#fff`,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`line`,shape:Re,stroke:`#3182bd`,strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:E.line,type:`linear`},it=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.legendType;return[{inactive:e.hide,dataKey:t,type:i,color:r,value:re(n,t),payload:e}]},at=F.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,a=e.fill,o=e.name,s=e.hide,c=e.unit,l=e.formatter,u=e.tooltipType,d=e.id,f={dataDefinedOnItem:n,getPosition:ge,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:re(o,t),hide:s,type:u,color:r,unit:c,formatter:l,graphicalItemId:d}};return F.createElement(v,{tooltipEntrySettings:f})});function ot(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.dot,a=r.dataKey,o=r.needClip;r.id;var s=X(r,Je),c=l(s);return F.createElement(V,{points:n,dot:i,className:`recharts-line-dots`,dotClassName:`recharts-line-dot`,dataKey:a,baseProps:c,needClip:o,clipPathId:t})}function st(e){var t=e.showLabels,n=e.children,r=e.points,i=(0,F.useMemo)(()=>r?.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return Z(Z({},t),{},{value:e.value,payload:e.payload,viewBox:t,parentViewBox:void 0,fill:void 0})}),[r]);return F.createElement(p,{value:t?i:void 0},n)}function ct(e){var t=e.clipPathId,n=e.pathRef,r=e.points,i=e.props,a=e.animationElapsedTime,o=e.isAnimating,s=e.isEntrance,c=e.visibleLength,l=i.type,d=i.layout,f=i.connectNulls,p=i.needClip,m=i.shape,h=i.strokeDasharray,g=X(i,Ye),_=Z(Z({},me(g)),{},{fill:`none`,className:`recharts-line-curve`,clipPath:p?`url(#clipPath-${t})`:void 0,points:r,type:l,layout:d,connectNulls:f,strokeDasharray:h??i.strokeDasharray,pathRef:n,animationElapsedTime:a,isAnimating:o,isEntrance:i.animateNewValues?s:!1,visibleLength:c});return F.createElement(F.Fragment,null,r?.length>1&&F.createElement(u,{option:m,DefaultShape:Q.shape,shapeProps:_}),F.createElement(ot,{points:r,clipPathId:t,props:i}))}function lt(e){var t=e.clipPathId,n=e.props,r=e.pathRef,i=e.previousPointsRef,a=n.points,o=n.isAnimationActive,s=n.animationBegin,c=n.animationDuration,l=n.animationEasing,u=n.animationMatchBy,d=n.animationInterpolateFn,f=n.layout,p=nt(r.current),m=ae(n.onAnimationStart,n.onAnimationEnd),h=m.isAnimating,_=m.handleAnimationStart,v=m.handleAnimationEnd,y=!h,x=ze(a),S=(0,F.useCallback)(e=>e>0&&p>0,[p]);return F.createElement(st,{points:a,showLabels:y},n.children,F.createElement(g,{animationInput:a,animationIdPrefix:`recharts-line-`,items:a,previousItemsRef:i,isAnimationActive:o,animationBegin:s,animationDuration:c,animationEasing:l,onAnimationStart:_,onAnimationEnd:v,animationInterpolateFn:d,animationMatchBy:u,shouldUpdatePreviousRef:S,layout:f},(e,i,a)=>{var o=h||i<1,s=o?x(i,p):null;return F.createElement(ct,{props:n,points:e,clipPathId:t,pathRef:r,animationElapsedTime:i,isAnimating:o,isEntrance:a,visibleLength:s})}),F.createElement(b,{label:n.label}))}function ut(e){var t=e.clipPathId,n=e.props,r=(0,F.useRef)(null),i=(0,F.useRef)(null);return F.createElement(lt,{props:n,clipPathId:t,previousPointsRef:r,pathRef:i})}var dt=(e,t)=>({x:e.x??void 0,y:e.y??void 0,value:e.value,errorVal:M(e.payload,t)}),ft=class extends F.Component{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,i=e.className,a=e.xAxisId,s=e.yAxisId,c=e.top,l=e.left,u=e.width,f=e.height,p=e.id,m=e.needClip,h=e.zIndex;if(t)return null;var g=_(`recharts-line`,i),v=p,y=qe(n),b=y.r,x=y.strokeWidth,S=d(n),C=b*2+x,w=m?`url(#clipPath-${S?``:`dots-`}${v})`:void 0;return F.createElement(T,{zIndex:h},F.createElement(o,{className:g},m&&F.createElement(`defs`,null,F.createElement(_e,{clipPathId:v,xAxisId:a,yAxisId:s}),!S&&F.createElement(`clipPath`,{id:`clipPath-dots-${v}`},F.createElement(`rect`,{x:l-C/2,y:c-C/2,width:u+C,height:f+C}))),F.createElement(he,{xAxisId:a,yAxisId:s,data:r,dataPointFormatter:dt,errorBarOffset:0},F.createElement(ut,{props:this.props,clipPathId:v}))),F.createElement(W,{activeDot:this.props.activeDot,points:r,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:w}))}};function pt(e){var t=N(e,Q),n=t.activeDot,r=t.animateNewValues,i=t.animationBegin,a=t.animationDuration,o=t.animationEasing,s=t.connectNulls,c=t.dot,l=t.hide,u=t.isAnimationActive,d=t.label,f=t.legendType,p=t.xAxisId,m=t.yAxisId,h=t.id,g=X(t,Xe),_=ne(p,m).needClip,v=pe(),y=ue(),b=j(),x=ce(e=>Ke(e,p,m,b,h));if(y!==`horizontal`&&y!==`vertical`||x==null||v==null)return null;var S=v.height,C=v.width,w=v.x,T=v.y;return F.createElement(ft,Y({},g,{id:h,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:u,hide:l,label:d,legendType:f,xAxisId:p,yAxisId:m,points:x,layout:y,height:S,width:C,left:w,top:T,needClip:_}))}function mt(e){var t=e.layout,n=e.xAxis,r=e.yAxis,i=e.xAxisTicks,a=e.yAxisTicks,o=e.dataKey,s=e.bandSize;return e.displayedData.map((e,c)=>{var l=M(e,o);if(t===`horizontal`)return{x:oe({axis:n,ticks:i,bandSize:s,entry:e,index:c}),y:(P(l)?null:r.scale.map(l))??null,value:l,payload:e};var u=P(l)?null:n.scale.map(l),d=oe({axis:r,ticks:a,bandSize:s,entry:e,index:c});return u==null||d==null?null:{x:u,y:d,value:l,payload:e}}).filter(Boolean)}function ht(e){var t=N(e,Q),n=j();return F.createElement(c,{id:t.id,type:`line`},e=>F.createElement(F.Fragment,null,F.createElement(h,{legendPayload:it(t)}),F.createElement(at,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),F.createElement(S,{type:`line`,id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),F.createElement(pt,Y({},t,{id:e}))))}var $=F.memo(ht,ie);$.displayName=`Line`;var gt=[`axis`],_t=(0,F.forwardRef)((e,t)=>F.createElement(se,{chartName:`ComposedChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:gt,tooltipPayloadSearcher:i,categoricalChartProps:e,ref:t})),vt=t(),yt=3.5;function bt(e){return function({cx:t,cy:n,value:r,index:i}){return typeof r!=`number`||r===0||t===void 0||n===void 0?(0,vt.jsx)(`g`,{},i):(0,vt.jsx)(`circle`,{cx:t,cy:n,r:yt,fill:e,stroke:`var(--surface-raised)`,strokeWidth:1.5},i)}}export{W as a,qe as i,_t as n,V as o,$ as r,bt as t};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{_n as t,gn as n}from"./cx-Cfec8QGz.js";import{$ as r,B as i,C as a,Ct as o,Dt as s,E as c,Et as l,F as u,I as d,K as f,L as p,M as m,N as h,O as g,Ot as _,P as v,Q as y,R as b,St as x,T as S,Tt as C,U as w,V as T,W as ee,Y as E,at as te,b as ne,bt as D,ct as re,et as ie,ft as O,gt as k,ht as A,it as j,k as ae,lt as M,mt as N,ot as oe,p as se,pt as ce,q as le,rt as ue,tt as de,ut as fe,w as pe,wt as me,x as he,xt as ge,y as _e,yt as P}from"./ChartTooltip-b-yZtIRd.js";var F=e(t());function I(){return I=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},I.apply(null,arguments)}var L=e=>{var t=e.cx,n=e.cy,r=e.r,i=e.className,a=_(`recharts-dot`,i);return D(t)&&D(n)&&D(r)?F.createElement(`circle`,I({},l(e),A(e),{className:a,cx:t,cy:n,r})):null},ve=[`points`];function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?R(Object(n),!0).forEach(function(t){ye(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ye(e,t,n){return(t=be(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function be(e){var t=xe(e,`string`);return typeof t==`symbol`?t:t+``}function xe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function B(){return B=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},B.apply(null,arguments)}function Se(e,t){if(e==null)return{};var n,r,i=Ce(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ce(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function we(e){var t=e.option,n=e.dotProps,r=e.className;if((0,F.isValidElement)(t))return(0,F.cloneElement)(t,n);if(typeof t==`function`)return t(n);var i=_(r,typeof t==`boolean`?``:t.className),a=n??{};a.points;var o=Se(a,ve);return F.createElement(L,B({},o,{className:i}))}function Te(e,t){return e==null?!1:t?!0:e.length===1}function V(e){var t=e.points,n=e.dot,r=e.className,i=e.dotClassName,a=e.dataKey,s=e.baseProps,c=e.needClip,l=e.clipPathId,u=e.zIndex,f=u===void 0?E.scatter:u;if(!Te(t,n))return null;var p=d(n),m=C(n),h=t.map((e,r)=>{var o=z(z(z({r:3},s),m),{},{index:r,cx:e.x??void 0,cy:e.y??void 0,dataKey:a,value:e.value,payload:e.payload,points:t});return F.createElement(we,{key:`dot-${r}`,option:n,dotProps:o,className:i})}),g={};return c&&l!=null&&(g.clipPath=`url(#clipPath-${p?``:`dots-`}${l})`),F.createElement(T,{zIndex:f},F.createElement(o,B({className:r},g),h))}function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function U(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?H(Object(n),!0).forEach(function(t){Ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ee(e,t,n){return(t=De(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function De(e){var t=Oe(e,`string`);return typeof t==`symbol`?t:t+``}function Oe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ke=e=>{var t=e.point,n=e.childIndex,r=e.mainColor,i=e.activeDot,a=e.dataKey,c=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var l=U(U(U({},{index:n,dataKey:a,cx:t.x,cy:t.y,r:4,fill:r??`none`,strokeWidth:2,stroke:`#fff`,payload:t.payload,value:t.value}),s(i)),A(i)),u=(0,F.isValidElement)(i)?(0,F.cloneElement)(i,l):typeof i==`function`?i(l):F.createElement(L,l);return F.createElement(o,{className:`recharts-active-dot`,clipPath:c},u)};function W(e){var t=e.points,n=e.mainColor,r=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,c=s===void 0?E.activeDot:s,l=ce(w),u=a();if(t==null||u==null)return null;var d=t.find(e=>u.includes(e.payload));return P(d)?null:F.createElement(T,{zIndex:c},F.createElement(ke,{point:d,childIndex:Number(l),mainColor:n,dataKey:i,activeDot:r,clipPath:o}))}var Ae=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`visibleLength`,`strokeDasharray`,`connectNulls`];function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G.apply(null,arguments)}function je(e,t){if(e==null)return{};var n,r,i=Me(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Me(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Ne(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function K(e,t){return`${t}px ${e}px`}function Pe(e){return e.length%2==0?e:[...e,...e]}function Fe(e,t){for(var n=[],r=0;r<t;++r)n.push(...e);return n}function Ie(e,t,n){var r=Pe(n),i=r.reduce((e,t)=>e+t,0);if(!i)return K(t,e);for(var a=Math.floor(e/i),o=e%i,s=[],c=0,l=0;c<r.length;l+=(u=r[c])??0,++c){var u,d=r[c];if(d!=null&&l+d>o){s=[...r.slice(0,c),o-l];break}}var f=s.length%2==0?[0,t]:[t];return[...Fe(r,a),...s,...f].map(e=>`${e}px`).join(`, `)}function Le(e,t,n){return e?Ie(n,t,`${e}`.split(/[,\s]+/gim).map(e=>parseFloat(e))):K(t,n)}function Re(e){e.animationElapsedTime,e.isAnimating,e.isEntrance;var t=e.visibleLength,n=e.strokeDasharray,i=e.connectNulls,a=je(e,Ae),o=i??!1,s;if(t!=null){var c=a.pathRef;s=Le(n,Ne(c?.current??null),t)}else n!=null&&(s=String(n));return F.createElement(r,G({},a,{connectNulls:o,strokeDasharray:s}))}function ze(e){var t=(0,F.useRef)(0),n=(0,F.useRef)(0),r=(0,F.useRef)(!1),i=(0,F.useRef)(e);return i.current!==e&&(t.current=n.current,i.current=e),(0,F.useCallback)((e,i)=>{if(r.current)return null;var a=Math.min(x(t.current+e*i),i);return e>0&&i>0&&(n.current=Math.max(n.current,a),a>=i)?(r.current=!0,null):a},[])}var q=(e,t,n,r)=>ee(e,`xAxis`,t,r),J=(e,t,n,r)=>f(e,`xAxis`,t,r),Be=(e,t,n,r)=>ee(e,`yAxis`,n,r),Ve=(e,t,n,r)=>f(e,`yAxis`,n,r),He=O([de,q,Be,J,Ve],(e,t,n,r,i)=>fe(e,`xAxis`)?te(t,r,!1):te(n,i,!1)),Ue=(e,t,n,r,i)=>i;function We(e){return e.type===`line`}var Ge=O([le,Ue],(e,t)=>e.filter(We).find(e=>e.id===t)),Ke=O([de,q,Be,J,Ve,Ge,He,y],(e,t,n,r,i,a,o,s)=>{var c=s.chartData,l=s.dataStartIndex,u=s.dataEndIndex;if(!(a==null||t==null||n==null||r==null||i==null||r.length===0||i.length===0||o==null||e!==`horizontal`&&e!==`vertical`)){var d=a.dataKey,f=a.data,p=f!=null&&f.length>0?f:c?.slice(l,u+1);if(p!=null)return mt({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:p})}});function qe(e){var t=s(e),n=3,r=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),c=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(c)||c<0)&&(c=r),{r:o,strokeWidth:c}}return{r:n,strokeWidth:r}}var Je=[`id`],Ye=[`type`,`layout`,`connectNulls`,`needClip`,`shape`,`strokeDasharray`],Xe=[`activeDot`,`animateNewValues`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`hide`,`isAnimationActive`,`label`,`legendType`,`xAxisId`,`yAxisId`,`id`];function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(null,arguments)}function X(e,t){if(e==null)return{};var n,r,i=Ze(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ze(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Qe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Qe(Object(n),!0).forEach(function(t){$e(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qe(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $e(e,t,n){return(t=et(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function et(e){var t=tt(e,`string`);return typeof t==`symbol`?t:t+``}function tt(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function nt(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function rt(e){var t=0,n=0;for(var r of e)r.status===`matched`&&r.prev.x!=null&&r.next.x!=null&&(t+=r.next.x-r.prev.x,n++);return n>0?t/n:0}var Q={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,animationInterpolateFn:(e,t)=>{if(e==null)return[];if(t===1)return e.flatMap(e=>e.status===`removed`?[]:[e.next]);var n=rt(e),r=[];for(var i of e)if(i.status===`matched`)r.push(Z(Z({},i.next),{},{x:k(i.prev.x,i.next.x,t),y:k(i.prev.y,i.next.y,t)}));else if(i.status===`added`){if(i.next.x!=null){var a=i.next.x-n;r.push(Z(Z({},i.next),{},{x:k(a,i.next.x,t),y:i.next.y}))}else r.push(i.next)}else if(i.status===`removed`&&i.prev.x!=null){var o=i.prev.x+n;r.push(Z(Z({},i.prev),{},{x:k(i.prev.x,o,t),y:i.prev.y}))}return r},animationMatchBy:m,connectNulls:!1,dot:!0,fill:`#fff`,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`line`,shape:Re,stroke:`#3182bd`,strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:E.line,type:`linear`},it=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.legendType;return[{inactive:e.hide,dataKey:t,type:i,color:r,value:re(n,t),payload:e}]},at=F.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,a=e.fill,o=e.name,s=e.hide,c=e.unit,l=e.formatter,u=e.tooltipType,d=e.id,f={dataDefinedOnItem:n,getPosition:ge,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:re(o,t),hide:s,type:u,color:r,unit:c,formatter:l,graphicalItemId:d}};return F.createElement(v,{tooltipEntrySettings:f})});function ot(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.dot,a=r.dataKey,o=r.needClip;r.id;var s=X(r,Je),c=l(s);return F.createElement(V,{points:n,dot:i,className:`recharts-line-dots`,dotClassName:`recharts-line-dot`,dataKey:a,baseProps:c,needClip:o,clipPathId:t})}function st(e){var t=e.showLabels,n=e.children,r=e.points,i=(0,F.useMemo)(()=>r?.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return Z(Z({},t),{},{value:e.value,payload:e.payload,viewBox:t,parentViewBox:void 0,fill:void 0})}),[r]);return F.createElement(p,{value:t?i:void 0},n)}function ct(e){var t=e.clipPathId,n=e.pathRef,r=e.points,i=e.props,a=e.animationElapsedTime,o=e.isAnimating,s=e.isEntrance,c=e.visibleLength,l=i.type,d=i.layout,f=i.connectNulls,p=i.needClip,m=i.shape,h=i.strokeDasharray,g=X(i,Ye),_=Z(Z({},me(g)),{},{fill:`none`,className:`recharts-line-curve`,clipPath:p?`url(#clipPath-${t})`:void 0,points:r,type:l,layout:d,connectNulls:f,strokeDasharray:h??i.strokeDasharray,pathRef:n,animationElapsedTime:a,isAnimating:o,isEntrance:i.animateNewValues?s:!1,visibleLength:c});return F.createElement(F.Fragment,null,r?.length>1&&F.createElement(u,{option:m,DefaultShape:Q.shape,shapeProps:_}),F.createElement(ot,{points:r,clipPathId:t,props:i}))}function lt(e){var t=e.clipPathId,n=e.props,r=e.pathRef,i=e.previousPointsRef,a=n.points,o=n.isAnimationActive,s=n.animationBegin,c=n.animationDuration,l=n.animationEasing,u=n.animationMatchBy,d=n.animationInterpolateFn,f=n.layout,p=nt(r.current),m=ae(n.onAnimationStart,n.onAnimationEnd),h=m.isAnimating,_=m.handleAnimationStart,v=m.handleAnimationEnd,y=!h,x=ze(a),S=(0,F.useCallback)(e=>e>0&&p>0,[p]);return F.createElement(st,{points:a,showLabels:y},n.children,F.createElement(g,{animationInput:a,animationIdPrefix:`recharts-line-`,items:a,previousItemsRef:i,isAnimationActive:o,animationBegin:s,animationDuration:c,animationEasing:l,onAnimationStart:_,onAnimationEnd:v,animationInterpolateFn:d,animationMatchBy:u,shouldUpdatePreviousRef:S,layout:f},(e,i,a)=>{var o=h||i<1,s=o?x(i,p):null;return F.createElement(ct,{props:n,points:e,clipPathId:t,pathRef:r,animationElapsedTime:i,isAnimating:o,isEntrance:a,visibleLength:s})}),F.createElement(b,{label:n.label}))}function ut(e){var t=e.clipPathId,n=e.props,r=(0,F.useRef)(null),i=(0,F.useRef)(null);return F.createElement(lt,{props:n,clipPathId:t,previousPointsRef:r,pathRef:i})}var dt=(e,t)=>({x:e.x??void 0,y:e.y??void 0,value:e.value,errorVal:M(e.payload,t)}),ft=class extends F.Component{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,i=e.className,a=e.xAxisId,s=e.yAxisId,c=e.top,l=e.left,u=e.width,f=e.height,p=e.id,m=e.needClip,h=e.zIndex;if(t)return null;var g=_(`recharts-line`,i),v=p,y=qe(n),b=y.r,x=y.strokeWidth,S=d(n),C=b*2+x,w=m?`url(#clipPath-${S?``:`dots-`}${v})`:void 0;return F.createElement(T,{zIndex:h},F.createElement(o,{className:g},m&&F.createElement(`defs`,null,F.createElement(_e,{clipPathId:v,xAxisId:a,yAxisId:s}),!S&&F.createElement(`clipPath`,{id:`clipPath-dots-${v}`},F.createElement(`rect`,{x:l-C/2,y:c-C/2,width:u+C,height:f+C}))),F.createElement(he,{xAxisId:a,yAxisId:s,data:r,dataPointFormatter:dt,errorBarOffset:0},F.createElement(ut,{props:this.props,clipPathId:v}))),F.createElement(W,{activeDot:this.props.activeDot,points:r,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:w}))}};function pt(e){var t=N(e,Q),n=t.activeDot,r=t.animateNewValues,i=t.animationBegin,a=t.animationDuration,o=t.animationEasing,s=t.connectNulls,c=t.dot,l=t.hide,u=t.isAnimationActive,d=t.label,f=t.legendType,p=t.xAxisId,m=t.yAxisId,h=t.id,g=X(t,Xe),_=ne(p,m).needClip,v=pe(),y=ue(),b=j(),x=ce(e=>Ke(e,p,m,b,h));if(y!==`horizontal`&&y!==`vertical`||x==null||v==null)return null;var S=v.height,C=v.width,w=v.x,T=v.y;return F.createElement(ft,Y({},g,{id:h,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:u,hide:l,label:d,legendType:f,xAxisId:p,yAxisId:m,points:x,layout:y,height:S,width:C,left:w,top:T,needClip:_}))}function mt(e){var t=e.layout,n=e.xAxis,r=e.yAxis,i=e.xAxisTicks,a=e.yAxisTicks,o=e.dataKey,s=e.bandSize;return e.displayedData.map((e,c)=>{var l=M(e,o);if(t===`horizontal`)return{x:oe({axis:n,ticks:i,bandSize:s,entry:e,index:c}),y:(P(l)?null:r.scale.map(l))??null,value:l,payload:e};var u=P(l)?null:n.scale.map(l),d=oe({axis:r,ticks:a,bandSize:s,entry:e,index:c});return u==null||d==null?null:{x:u,y:d,value:l,payload:e}}).filter(Boolean)}function ht(e){var t=N(e,Q),n=j();return F.createElement(c,{id:t.id,type:`line`},e=>F.createElement(F.Fragment,null,F.createElement(h,{legendPayload:it(t)}),F.createElement(at,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),F.createElement(S,{type:`line`,id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),F.createElement(pt,Y({},t,{id:e}))))}var $=F.memo(ht,ie);$.displayName=`Line`;var gt=[`axis`],_t=(0,F.forwardRef)((e,t)=>F.createElement(se,{chartName:`ComposedChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:gt,tooltipPayloadSearcher:i,categoricalChartProps:e,ref:t})),vt=n(),yt=3.5;function bt(e){return function({cx:t,cy:n,value:r,index:i}){return typeof r!=`number`||r===0||t===void 0||n===void 0?(0,vt.jsx)(`g`,{},i):(0,vt.jsx)(`circle`,{cx:t,cy:n,r:yt,fill:e,stroke:`var(--surface-raised)`,strokeWidth:1.5},i)}}export{W as a,qe as i,_t as n,V as o,$ as r,bt as t};
|
package/dist/web/index.html
CHANGED
|
@@ -4,11 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>Backlog</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
-
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/cx-BZTW4xgb.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/paths-ZO6w2vYU.js">
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/index-CAKUAPJF.css">
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DN4lSwOL.js"></script>
|
|
12
8
|
</head>
|
|
13
9
|
<body>
|
|
14
10
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "p-backlog",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Keep pull requests clean and audit findings safe: a local, autonomous backlog for Claude Code. The agent files out-of-scope issues as Markdown tasks with context and re-checks them as code changes. Optional web UI with metrics.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"dev": "concurrently -k -n server,web \"tsx watch src/server/main.ts\" \"vite\"",
|
|
51
51
|
"test:e2e": "playwright test",
|
|
52
52
|
"screenshots": "npm run build && tsx scripts/screenshots/make.ts",
|
|
53
|
+
"plugins": "tsx scripts/build-plugins.ts",
|
|
53
54
|
"test:package": "vitest run --config vitest.package.config.ts",
|
|
54
55
|
"prepare": "npm run build",
|
|
55
56
|
"test:coverage": "vitest run --coverage",
|
package/skill/backlog/SKILL.md
CHANGED
|
@@ -77,7 +77,7 @@ description: Use when, while working on code, you notice a problem outside the c
|
|
|
77
77
|
|
|
78
78
|
Несколько задач про одно — собрать их в эпик: создать эпик (`backlog new --type epic --title …`) и перенести
|
|
79
79
|
задачи `backlog epic <ID> [<ID> …] --to <ID эпика>`; `--to none` вынимает задачу из эпика. Эпик закрывается
|
|
80
|
-
сам, когда закрыты все его
|
|
80
|
+
сам, когда закрыты все его задачи, и снова открывается, когда какую-то из них открыли.
|
|
81
81
|
|
|
82
82
|
## Взять задачу в работу
|
|
83
83
|
|
|
@@ -112,13 +112,14 @@ description: Use when, while working on code, you notice a problem outside the c
|
|
|
112
112
|
|
|
113
113
|
## Перепроверить задачи
|
|
114
114
|
|
|
115
|
-
Когда: сообщение хука «после последней проверки менялся код
|
|
116
|
-
«почисти беклог».
|
|
115
|
+
Когда: сообщение хука «после последней проверки менялся код задач» (в Cursor оно приходит следующим
|
|
116
|
+
сообщением), просьба «проверь беклог» или «почисти беклог».
|
|
117
117
|
|
|
118
118
|
1. `backlog check --json` из репозитория проекта (из другого каталога — `--project <id>`). Висячие ссылки,
|
|
119
119
|
завершённые эпики и сдвинутые `source` он уже исправил сам — это поле `fixed`, список `{ kind, taskId, … }`:
|
|
120
120
|
`references-removed` — убраны ссылки на несуществующие задачи `ids`; `epic-closed` — эпик закрыт, все его
|
|
121
|
-
задачи `childIds` закрыты; `
|
|
121
|
+
задачи `childIds` закрыты; `epic-reopened` — автоматически закрытый эпик снова открыт, его задачи
|
|
122
|
+
`childIds` снова открыты; `source-moved` — `source` сдвинулся `from` → `to`. Перескажи его пользователю
|
|
122
123
|
одной строкой. Код выхода 5 — не сбой: есть кандидаты или проблемы задач, которые надо разобрать; 0 —
|
|
123
124
|
разбирать нечего.
|
|
124
125
|
2. У кандидата `source-changed` в JSON уже есть `problem` — первый абзац описания задачи, `snippet` —
|
|
@@ -84,7 +84,7 @@ this same task.
|
|
|
84
84
|
|
|
85
85
|
Several tasks about the same thing — gather them into an epic: create the epic (`backlog new --type epic
|
|
86
86
|
--title …`) and move the tasks with `backlog epic <ID> [<ID> …] --to <epic ID>`; `--to none` takes a task
|
|
87
|
-
out of its epic. An epic closes on its own once all its tasks are closed.
|
|
87
|
+
out of its epic. An epic closes on its own once all its tasks are closed, and reopens when one of them is open again.
|
|
88
88
|
|
|
89
89
|
## Take a task
|
|
90
90
|
|
|
@@ -120,13 +120,14 @@ array) — fix them together, closing each one.
|
|
|
120
120
|
|
|
121
121
|
## Re-check tasks
|
|
122
122
|
|
|
123
|
-
When: the hook message "code changed for tasks since the last check"
|
|
124
|
-
"clean up the backlog".
|
|
123
|
+
When: the hook message "code changed for tasks since the last check" (in Cursor it arrives as a follow-up
|
|
124
|
+
message), a request to "check the backlog", or "clean up the backlog".
|
|
125
125
|
|
|
126
126
|
1. `backlog check --json` from the project's repository (from another directory — `--project <id>`).
|
|
127
127
|
Dangling references, completed epics, and shifted `source` — it already fixed those itself; that's the
|
|
128
128
|
`fixed` field, a list of `{ kind, taskId, … }`: `references-removed` — references to missing tasks `ids`
|
|
129
|
-
removed; `epic-closed` — the epic closed, all its tasks `childIds` are closed; `
|
|
129
|
+
removed; `epic-closed` — the epic closed, all its tasks `childIds` are closed; `epic-reopened` — the
|
|
130
|
+
auto-closed epic reopened, its tasks `childIds` are open again; `source-moved` — `source`
|
|
130
131
|
moved `from` → `to`. Relay it to the user in one line. Exit code 5 is not a failure: there are candidates or
|
|
131
132
|
task problems to work through; 0 means there is nothing to work through.
|
|
132
133
|
2. A `source-changed` candidate already has `problem` in the JSON — the task description's first
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Cn as e,Ot as t,r as n,w as r}from"./cx-BZTW4xgb.js";import{i,n as a,r as o}from"./StatsTabState-DbuUIt-D.js";import{t as s}from"./StatsPage.module-D8dvB8Va.js";import{t as c}from"./UnavailableRepos-D2iehY7u.js";var l={churnRow:`_churnRow_ledt8_1`,densityRow:`_densityRow_ledt8_8`},u=e();function d({churn:e}){let{stats:t}=r(),n=e[0]?.score??1;return(0,u.jsxs)(i,{title:t.churnTitle,children:[(0,u.jsx)(`p`,{className:o.muted,children:t.churnHint}),e.length===0?(0,u.jsx)(`p`,{className:o.muted,children:t.churnEmpty}):(0,u.jsx)(`ul`,{className:o.rows,children:e.map(e=>(0,u.jsxs)(`li`,{className:l.churnRow,children:[(0,u.jsx)(`code`,{className:o.rowLabel,children:e.label}),(0,u.jsx)(`span`,{className:o.rowValue,children:t.commits(e.commits)}),(0,u.jsx)(`span`,{className:o.rowValue,children:t.churnTasks(e.tasks,e.weight)}),(0,u.jsx)(`span`,{className:o.track,"aria-hidden":`true`,children:(0,u.jsx)(`span`,{className:o.fill,style:{transform:`scaleX(${e.score/n})`}})})]},e.label))})]})}function f({density:e}){let{stats:t}=r();return(0,u.jsx)(i,{title:t.densityTitle,children:e.projects.length===0?(0,u.jsx)(`p`,{className:o.muted,children:t.noCodeData}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(p,{rows:e.projects.map(e=>({key:e.projectId,label:e.name,row:e}))}),e.folders.length>0&&(0,u.jsxs)(`div`,{children:[(0,u.jsx)(`h3`,{className:o.subTitle,children:t.folders}),(0,u.jsx)(p,{rows:e.folders.map(e=>({key:e.label,label:(0,u.jsx)(`code`,{children:e.label}),row:e}))})]})]})})}function p({rows:e}){let{stats:t,core:n}=r();return(0,u.jsx)(`ul`,{className:o.rows,children:e.map(({key:e,label:r,row:i})=>(0,u.jsxs)(`li`,{className:l.densityRow,children:[(0,u.jsx)(`span`,{className:o.rowLabel,children:r}),(0,u.jsx)(`span`,{className:o.rowValue,children:n.count(i.lines,`line`)}),(0,u.jsx)(`span`,{className:o.rowValue,children:n.count(i.open,`task`)}),(0,u.jsx)(`span`,{className:o.rowValue,children:i.perKloc===null?`—`:t.perKloc(i.perKloc)})]},e))})}function m(){let{projectId:e}=t(),r=n(e);return(0,u.jsx)(a,{query:r,children:e=>(0,u.jsx)(h,{report:e})})}function h({report:e}){let{stats:t}=r();return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(c,{repos:e.unavailableRepos}),(0,u.jsxs)(`div`,{className:s.blocks,children:[(0,u.jsx)(`div`,{className:o.wide,children:(0,u.jsx)(d,{churn:e.churn})}),(0,u.jsx)(f,{density:e.density})]}),(0,u.jsx)(`p`,{className:s.note,children:t.codeNote})]})}export{m as CodeTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,Cn as n,D as r,E as i,O as a,Ot as o,T as s,o as c,w as l,wn as u}from"./cx-BZTW4xgb.js";import{n as d}from"./index-BrkoyuWi.js";import{i as f,n as p,r as m}from"./StatsTabState-DbuUIt-D.js";import{t as h}from"./StatsPage.module-D8dvB8Va.js";import{t as g}from"./UnavailableRepos-D2iehY7u.js";import{t as _}from"./Figure-CiIqHKnb.js";import{t as v}from"./StatsTable-Bd3vAxKU.js";import{B as y,S as b,a as x,f as S,g as C,h as w,i as T,l as E,m as D,n as O,o as k,p as A,r as j,s as M,t as N,u as P,z as F}from"./ChartTooltip-DwQKHXkN.js";var I=e(u()),L=[`axis`,`item`],R=(0,I.forwardRef)((e,t)=>I.createElement(A,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:L,tooltipPayloadSearcher:y,categoricalChartProps:e,ref:t})),z={steps:`_steps_advmo_1`,now:`_now_advmo_13`},B=n();function V({totals:e}){let{stats:n}=l(),r=t();return(0,B.jsx)(f,{title:n.explainerTitle,children:(0,B.jsxs)(`ol`,{className:z.steps,children:[(0,B.jsx)(`li`,{children:n.explainerTask}),(0,B.jsxs)(`li`,{children:[n.explainerFixed,(0,B.jsx)(H,{children:n.fixedNow(e.fixedTasks,e.fixedLines)})]}),(0,B.jsxs)(`li`,{children:[n.explainerPending,(0,B.jsx)(H,{children:U(n,e)})]}),(0,B.jsxs)(`li`,{children:[n.explainerTests,(0,B.jsx)(H,{children:n.codeAndTests(e)})]}),(0,B.jsxs)(`li`,{children:[n.explainerNoise,(0,B.jsx)(H,{children:W(n,r,e)})]})]})})}function H({children:e}){let{stats:t}=l();return(0,B.jsxs)(`span`,{className:z.now,children:[t.now,` `,e]})}function U(e,t){return t.openTasks===0?e.noPending:t.estimatedLines===null?e.pendingWithoutEstimate(t.openTasks):e.pendingEstimated(t.openTasks,t.estimatedLines,t.estimatedLines/t.openTasks)}function W(e,t,n){if(n.estimatedLines===null&&n.openTasks>0)return e.estimateLater;if(n.noiseShare===null)return e.noCommitsSinceAdoption;let o=n.estimatedLines??0,c=a(n.estimatedLines);return`${s(t,n.deferredLines,c)} ÷ (${i(t,n.realLines)} + ${s(t,o,c)}) ${r(n.noiseShare)}`}var G=`var(--chart-bar-neutral)`,K=`var(--accent-ink)`;function q(e,t,n,r){let i=e=>s(n,e,Math.round(e)>0);return N(a=>({title:r===`week`?e.weekOf(P(n,a.start)):P(n,a.start),rows:[{label:e.inPullRequests,value:t.count(Math.round(a.onTopicLines),`line`),shape:`bar`,color:G},{label:e.deferredSeries,value:i(a.deferredLines),shape:`hatch`,color:K},{label:e.codeLines,value:i(a.deferredLines-a.deferredTestLines)},{label:e.testLines,value:i(a.deferredTestLines)},{label:e.deferredTasks,value:String(a.deferredTasks)}]}))}function J({periods:e,totals:n,grain:i}){let{stats:o,core:s}=l(),c=t(),u=(0,I.useMemo)(()=>q(o,s,c,i),[o,s,c,i]),d=(0,I.useId)(),f=[{label:o.inPullRequests,shape:`bar`,color:G},{label:o.deferredSeries,shape:`hatch`,color:K}],p=o.linesText(n.deferredLines,a(n.estimatedLines)),m=o.effectSummary(n.realLines,p,r(n.noiseShare));return(0,B.jsx)(S,{summary:m,legend:f,children:(0,B.jsxs)(R,{data:e,margin:T,"aria-label":o.chartLabel(o.effectTitle,i),children:[(0,B.jsx)(`defs`,{children:(0,B.jsxs)(`pattern`,{id:d,width:`6`,height:`6`,patternUnits:`userSpaceOnUse`,patternTransform:`rotate(45)`,children:[(0,B.jsx)(`rect`,{width:`6`,height:`6`,fill:`var(--surface-raised)`}),(0,B.jsx)(`line`,{x1:`0`,y1:`0`,x2:`0`,y2:`6`,stroke:K,strokeWidth:`3`})]})}),(0,B.jsx)(b,{vertical:!1}),(0,B.jsx)(w,{dataKey:`start`,tickFormatter:e=>M(c,e),...x}),(0,B.jsx)(D,{tickFormatter:e=>E(c,e),width:60,...O}),(0,B.jsx)(F,{content:u,...k}),(0,B.jsx)(C,{dataKey:`onTopicLines`,stackId:`lines`,fill:G,isAnimationActive:!1}),(0,B.jsx)(C,{dataKey:`deferredLines`,stackId:`lines`,fill:`url(#${d})`,radius:j,isAnimationActive:!1})]})})}function Y({totals:e}){let{stats:n}=l(),a=t();return(0,B.jsxs)(`div`,{className:h.totals,children:[(0,B.jsx)(_,{label:n.keptOut,value:X(n,e),note:`${Z(n,a,e)} · ${n.codeAndTests(e)}`}),(0,B.jsx)(_,{label:n.noiseWithoutBacklog,value:r(e.noiseShare),note:n.noiseNote}),(0,B.jsx)(_,{label:n.deferredToBacklog,value:String(e.fixedTasks+e.openTasks),note:n.deferredNote(e.fixedTasks,e.openTasks)}),(0,B.jsx)(_,{label:n.pullRequestLines,value:i(a,e.realLines),note:n.sinceAdoption})]})}function X(e,t){return t.estimatedLines===null?e.linesText(t.fixedLines,!1):e.linesText(t.deferredLines,a(t.estimatedLines))}function Z(e,t,n){let r=i(t,n.fixedLines);return n.estimatedLines===null?e.keptOutPending(r):e.keptOutEstimated(r,s(t,n.estimatedLines,a(n.estimatedLines)))}function Q({weeks:e,days:t,totals:n}){let{stats:r}=l(),[i,a]=(0,I.useState)(`week`),o=(0,B.jsxs)(`span`,{role:`group`,"aria-label":r.chartScale,className:m.grain,children:[(0,B.jsx)(d,{pressed:i===`week`,onToggle:()=>a(`week`),children:r.grainWeek}),(0,B.jsx)(d,{pressed:i===`day`,onToggle:()=>a(`day`),children:r.grainDay})]});return(0,B.jsx)(f,{title:r.effectTitle,aside:o,children:(0,B.jsx)(J,{periods:i===`week`?e:t,totals:n,grain:i})})}function $({projects:e}){let{stats:n}=l(),o=t();return(0,B.jsx)(f,{title:n.byProject,children:e.length===0?(0,B.jsx)(`p`,{className:m.muted,children:n.noCodeData}):(0,B.jsx)(v,{label:n.byProject,head:n.projectsHead,rows:e.map(e=>({key:e.projectId,cells:[e.name,e.deferredTasks,i(o,e.fixedLines),e.estimatedLines===null?`—`:s(o,e.estimatedLines,a(e.estimatedLines)),i(o,e.realLines),r(e.noiseShare)]}))})})}function ee(){let{projectId:e}=o(),t=c(e);return(0,B.jsx)(p,{query:t,children:e=>(0,B.jsx)(te,{report:e})})}function te({report:e}){return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(g,{repos:e.unavailableRepos}),(0,B.jsx)(Y,{totals:e.totals}),(0,B.jsxs)(`div`,{className:h.blocks,children:[(0,B.jsx)(`div`,{className:m.wide,children:(0,B.jsx)(Q,{weeks:e.weeks,days:e.days,totals:e.totals})}),(0,B.jsx)(`div`,{className:m.wide,children:(0,B.jsx)($,{projects:e.projects})}),(0,B.jsx)(`div`,{className:m.wide,children:(0,B.jsx)(V,{totals:e.totals})})]})]})}export{ee as EffectTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Cn as t,t as n,wn as r}from"./cx-BZTW4xgb.js";import{t as i}from"./StatsPage.module-D8dvB8Va.js";var a=e(r(),1),o=t();function s({label:e,value:t,note:r,tone:s,trend:c}){let l=(0,a.useId)();return(0,o.jsxs)(`div`,{className:i.figure,role:`group`,"aria-labelledby":l,children:[(0,o.jsx)(`span`,{id:l,className:i.figureLabel,children:e}),(0,o.jsx)(`span`,{className:n(i.figureValue,s===`growth`&&i.growth,s===`decline`&&i.decline),children:t}),c!==void 0&&(0,o.jsxs)(`span`,{className:n(i.figureTrend,c.better?i.decline:i.growth),children:[(0,o.jsx)(`span`,{"aria-hidden":`true`,children:c.text}),(0,o.jsx)(`span`,{className:`visually-hidden`,children:c.speech})]}),(0,o.jsx)(`span`,{className:i.figureNote,children:r})]})}export{s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{A as t,C as n,Cn as r,Ot as i,P as a,h as o,k as s,t as c,w as l,wn as ee}from"./cx-BZTW4xgb.js";import{i as u,t as d}from"./paths-ZO6w2vYU.js";import{s as f}from"./index-BrkoyuWi.js";import{i as p,n as te,r as m}from"./StatsTabState-DbuUIt-D.js";import{t as h}from"./StatsPage.module-D8dvB8Va.js";import{t as g}from"./Figure-CiIqHKnb.js";import{S as _,a as v,f as y,g as b,h as x,i as S,l as C,m as w,n as T,o as E,r as D,s as O,t as k,u as A,z as j}from"./ChartTooltip-DwQKHXkN.js";import{n as M,r as N,t as ne}from"./value-dot-kiMizZCu.js";var P={columns:`_columns_1m2da_1`,countList:`_countList_1m2da_7`,ageRows:`_ageRows_1m2da_11`,ageRow:`_ageRow_1m2da_11`,ageLabel:`_ageLabel_1m2da_25`,ageTrack:`_ageTrack_1m2da_29`,ageSegment:`_ageSegment_1m2da_37`,legend:`_legend_1m2da_41`,legendItem:`_legendItem_1m2da_50`,share:`_share_1m2da_61`,critical:`_critical_1m2da_65`,high:`_high_1m2da_69`,medium:`_medium_1m2da_73`,low:`_low_1m2da_77`,done:`_done_1m2da_81`,fixed:`_fixed_1m2da_85`,obsolete:`_obsolete_1m2da_89`,duplicate:`_duplicate_1m2da_93`,cancelled:`_cancelled_1m2da_97`,unknown:`_unknown_1m2da_101`,shareBar:`_shareBar_1m2da_105`,alarm:`_alarm_1m2da_117`,alarmOn:`_alarmOn_1m2da_123`},F=r();function I(e,t){let n=[...a].reverse().filter(e=>t[e]>0).map(n=>`${e.priorityCounts[n]} ${t[n]}`);return n.length===0?``:` (${n.join(`, `)})`}function L({age:e}){let{stats:t,core:n}=l(),r=e.buckets.map(({bucket:e,byPriority:t})=>({bucket:e,total:f(a.map(e=>t[e])),byPriority:t})),i=Math.max(1,...r.map(({total:e})=>e)),o=r.map(({bucket:e,total:n,byPriority:r})=>`${t.ageBuckets[e]}: ${n}${I(t,r)}`).join(`; `);return(0,F.jsxs)(p,{title:t.openAge,children:[(0,F.jsx)(`div`,{role:`img`,"aria-label":o,className:P.ageRows,children:r.map(({bucket:e,total:n,byPriority:r})=>(0,F.jsxs)(`div`,{className:P.ageRow,"aria-hidden":`true`,children:[(0,F.jsx)(`span`,{className:P.ageLabel,children:t.ageBuckets[e]}),(0,F.jsx)(`span`,{className:P.ageTrack,children:a.map(e=>(0,F.jsx)(`span`,{className:c(P.ageSegment,P[e]),style:{width:`${r[e]/i*100}%`}},e))}),(0,F.jsx)(`span`,{className:m.rowValue,children:n})]},e))}),(0,F.jsx)(`p`,{className:P.legend,children:[...a].reverse().map(e=>(0,F.jsx)(`span`,{className:c(P.legendItem,P[e]),children:n.priorityLabel(e)},e))}),(0,F.jsx)(`p`,{className:c(P.alarm,e.urgentStale>0&&P.alarmOn),children:t.urgentStale(e.urgentStale)})]})}var R=[`done`,`fixed`,`obsolete`,`duplicate`,`cancelled`,`unknown`];function z(e,{stats:t,core:n}){return e===`done`||e===`cancelled`||e===`unknown`?t.closingReasons[e]:n.resolutionLabel(e)}function B({closing:e}){let t=l(),{stats:n}=t,r=f(R.map(t=>e.byReason[t])),i=R.map(n=>`${z(n,t)}: ${e.byReason[n]}`).join(`; `);return(0,F.jsxs)(p,{title:n.closing,children:[(0,F.jsx)(`div`,{role:`img`,"aria-label":i,className:P.shareBar,children:R.map(t=>(0,F.jsx)(`span`,{className:c(P.share,P[t]),style:{width:r===0?0:`${e.byReason[t]/r*100}%`}},t))}),(0,F.jsx)(`ul`,{className:m.rows,children:R.map(n=>(0,F.jsxs)(`li`,{className:m.row,children:[(0,F.jsx)(`span`,{className:c(P.legendItem,P[n]),children:z(n,t)}),(0,F.jsx)(`span`,{className:m.rowValue,children:e.byReason[n]})]},n))}),(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h3`,{className:m.subTitle,children:n.noiseAndReopens}),(0,F.jsxs)(`ul`,{className:m.rows,children:[(0,F.jsx)(V,{label:n.duplicatesAmongClosed,value:s(e.duplicateShare)}),(0,F.jsx)(V,{label:n.noSourceAmongCreated,value:s(e.withoutSourceShare)}),(0,F.jsx)(V,{label:n.reopened,value:e.reopened})]})]})]})}function V({label:e,value:t}){return(0,F.jsxs)(`li`,{className:m.row,children:[(0,F.jsx)(`span`,{className:m.rowLabel,children:e}),(0,F.jsx)(`span`,{className:m.rowValue,children:t})]})}var H=`↓`,U=`↑`;function W(e,t,n,r){if(t===null||n===null)return;let i=t-n;if(i===0)return;let a=i<0,o=r(Math.abs(i));return{text:e.weekTrend(a?H:U,o),speech:e.weekTrendSpeech(o,a),better:a}}function G({hotspots:e,listPath:t}){let{stats:n}=l();return(0,F.jsx)(p,{title:n.hotspots,children:(0,F.jsxs)(`div`,{className:P.columns,children:[(0,F.jsx)(K,{title:n.folders,empty:n.noSourceFolders,items:e.folders.map(({label:e,count:t})=>({key:e,label:(0,F.jsx)(`code`,{children:e}),count:t}))}),(0,F.jsx)(K,{title:n.tags,empty:n.noTags,items:e.tags.map(({tag:e,count:n})=>({key:e,label:(0,F.jsxs)(u,{to:{pathname:t,search:`tag=${encodeURIComponent(e)}`},children:[`#`,e]}),count:n}))})]})})}function K({title:e,empty:t,items:n}){let r=Math.max(1,...n.map(e=>e.count));return(0,F.jsxs)(`div`,{className:P.countList,children:[(0,F.jsx)(`h3`,{className:m.subTitle,children:e}),n.length===0?(0,F.jsx)(`p`,{className:m.muted,children:t}):(0,F.jsx)(`ul`,{className:m.rows,children:n.map(e=>(0,F.jsxs)(`li`,{className:m.countRow,children:[(0,F.jsx)(`span`,{className:m.rowLabel,children:e.label}),(0,F.jsx)(`span`,{className:m.rowValue,children:e.count}),(0,F.jsx)(`span`,{className:m.track,"aria-hidden":`true`,children:(0,F.jsx)(`span`,{className:m.fill,style:{transform:`scaleX(${e.count/r})`}})})]},e.key))})]})}var q=e(ee(),1),J=`var(--chart-bar-warm)`;function Y(e,t,n){return k(r=>({title:A(n,r.day),rows:[{label:e.flowCreated,value:t.count(r.created,`task`),shape:`bar`,color:J}]}))}function X({days:e}){let{stats:t,core:r}=l(),i=n(),a=(0,q.useMemo)(()=>Y(t,r,i),[t,r,i]),o=[{label:t.createdTasks,shape:`bar`,color:J}];return(0,F.jsx)(p,{title:t.createdByDay,children:(0,F.jsx)(y,{summary:t.intakeSummary(e.length,f(e.map(e=>e.created))),legend:o,children:(0,F.jsxs)(M,{data:e,margin:S,"aria-label":t.chartLabel(t.createdByDay,`day`),children:[(0,F.jsx)(_,{vertical:!1}),(0,F.jsx)(x,{dataKey:`day`,tickFormatter:e=>O(i,e),...v}),(0,F.jsx)(w,{allowDecimals:!1,tickFormatter:e=>C(i,e),width:60,...T}),(0,F.jsx)(j,{content:a,...E}),(0,F.jsx)(b,{dataKey:`created`,fill:J,radius:D,isAnimationActive:!1})]})})})}var Z=`var(--chart-bar-neutral)`,Q=`var(--chart-bar-green)`,$=`var(--chart-line-bright)`;function re(e,t){return k(n=>({title:e.weekOf(A(t,n.start)),rows:[{label:e.flowCreated,value:String(n.created),shape:`bar`,color:Z},{label:e.flowClosed,value:String(n.closed),shape:`bar`,color:Q},{label:e.flowOpen,value:String(n.openAtEnd),shape:`line`,color:$}]}))}function ie({weeks:e}){let{stats:t}=l(),r=n(),i=(0,q.useMemo)(()=>re(t,r),[t,r]),a=[{label:t.flowCreated,shape:`bar`,color:Z},{label:t.flowClosed,shape:`bar`,color:Q},{label:t.flowOpenAtWeekEnd,shape:`line`,color:$}],o=t.flowSummary({weekCount:e.length,created:f(e.map(e=>e.created)),closed:f(e.map(e=>e.closed)),openNow:e.at(-1)?.openAtEnd??0}),s=e=>C(r,e);return(0,F.jsx)(y,{summary:o,legend:a,children:(0,F.jsxs)(M,{data:e,margin:S,"aria-label":t.chartLabel(t.debtByWeek,`week`),children:[(0,F.jsx)(_,{vertical:!1}),(0,F.jsx)(x,{dataKey:`start`,tickFormatter:e=>O(r,e),...v}),(0,F.jsx)(w,{yAxisId:`flow`,allowDecimals:!1,tickFormatter:s,width:60,...T}),(0,F.jsx)(w,{yAxisId:`open`,orientation:`right`,allowDecimals:!1,tickFormatter:s,width:60,...T}),(0,F.jsx)(j,{content:i,...E}),(0,F.jsx)(b,{yAxisId:`flow`,dataKey:`created`,fill:Z,radius:D,isAnimationActive:!1}),(0,F.jsx)(b,{yAxisId:`flow`,dataKey:`closed`,fill:Q,radius:D,isAnimationActive:!1}),(0,F.jsx)(N,{yAxisId:`open`,dataKey:`openAtEnd`,stroke:$,strokeWidth:3,dot:ne($),isAnimationActive:!1})]})})}function ae(){let{projectId:e}=i(),t=o(e);return(0,F.jsx)(te,{query:t,children:t=>(0,F.jsx)(oe,{report:t,listPath:d(e)})})}function oe({report:e,listPath:t}){let{stats:n}=l();return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(se,{totals:e.totals}),(0,F.jsxs)(`div`,{className:h.blocks,children:[(0,F.jsx)(p,{title:n.debtByWeek,children:(0,F.jsx)(ie,{weeks:e.weeks})}),(0,F.jsx)(X,{days:e.days}),(0,F.jsx)(G,{hotspots:e.hotspots,listPath:t}),(0,F.jsx)(L,{age:e.age}),(0,F.jsx)(B,{closing:e.closing})]})]})}function se({totals:e}){let{stats:n}=l(),r=e.createdLastWeek-e.closedLastWeek,i=e.previous;return(0,F.jsxs)(`div`,{className:c(h.totals,h.totalsPair),children:[(0,F.jsx)(g,{label:n.tasksToday,value:(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`span`,{className:e.createdToday>0?h.growth:void 0,children:[`+`,e.createdToday]}),` `,(0,F.jsxs)(`span`,{className:e.closedToday>0?h.decline:void 0,children:[`−`,e.closedToday]})]}),note:n.createdAndClosed}),(0,F.jsx)(g,{label:n.thisWeek,value:t(r),tone:ce(r),note:n.weekNote(e.createdLastWeek,e.closedLastWeek),trend:W(n,r,i?.net??null,String)})]})}function ce(e){if(e>0)return`growth`;if(e<0)return`decline`}export{ae as OverviewTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,Cn as n,Ot as r,k as i,u as a,w as o,wn as s}from"./cx-BZTW4xgb.js";import{s as c}from"./index-BrkoyuWi.js";import{i as l,n as u,r as d}from"./StatsTabState-DbuUIt-D.js";import{t as f}from"./StatsPage.module-D8dvB8Va.js";import{t as p}from"./StatsTable-Bd3vAxKU.js";import{S as m,a as h,f as g,g as _,h as v,i as y,m as b,n as x,o as S,r as C,s as w,t as T,u as E,z as D}from"./ChartTooltip-DwQKHXkN.js";import{n as O,r as k,t as A}from"./value-dot-kiMizZCu.js";var j=e(s(),1),M=n(),N=`var(--chart-bar-neutral)`,P=`var(--chart-line-green)`;function F(e,t){return T(n=>({title:e.weekOf(E(t,n.start)),rows:[{label:e.decidedCandidates,value:String(n.decided),shape:`bar`,color:N},{label:e.precision,value:i(n.precision),shape:`line`,color:P}]}))}function I({weeks:e}){let{stats:n}=o(),r=t(),a=(0,j.useMemo)(()=>F(n,r),[n,r]),s=[{label:n.decidedCandidates,shape:`bar`,color:N},{label:n.precision,shape:`line`,color:P}],l=c(e.map(e=>e.decided)),u=e.filter(e=>e.precision!==null).at(-1),d=n.accuracySummary(e.length,l,u===void 0?null:i(u.precision));return(0,M.jsx)(g,{summary:d,legend:s,children:(0,M.jsxs)(O,{data:e,margin:y,"aria-label":n.chartLabel(n.accuracyTitle,`week`),children:[(0,M.jsx)(m,{vertical:!1}),(0,M.jsx)(v,{dataKey:`start`,tickFormatter:e=>w(r,e),...h}),(0,M.jsx)(b,{yAxisId:`decided`,width:60,...x}),(0,M.jsx)(b,{yAxisId:`precision`,orientation:`right`,domain:[0,1],tickFormatter:e=>`${Math.round(e*100)}%`,width:60,...x}),(0,M.jsx)(D,{content:a,...S}),(0,M.jsx)(_,{yAxisId:`decided`,dataKey:`decided`,fill:N,radius:C,isAnimationActive:!1}),(0,M.jsx)(k,{yAxisId:`precision`,type:`monotone`,dataKey:`precision`,stroke:P,strokeWidth:2,connectNulls:!0,dot:A(P),isAnimationActive:!1})]})})}function L({rows:e,weeks:t,methodRows:n,matchRows:r}){let{stats:a,core:s}=o(),c=e=>e===`source-changed`?n.map(e=>R(a,e,e.by===`unknown`?a.beforeMethodRecorded:a.checkedBy(s.checkMethodLabel(e.by)))):e===`duplicate`?r.map(e=>R(a,e,e.by===`unknown`?a.beforeMatchRecorded:a.matchedBy(s.duplicateMatchLabel(e.by)))):[];return(0,M.jsx)(l,{title:a.accuracyTitle,children:e.length===0?(0,M.jsx)(`p`,{className:d.muted,children:a.noCandidates}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`p`,{className:d.muted,children:a.accuracyHint}),(0,M.jsx)(I,{weeks:t}),(0,M.jsx)(p,{label:a.accuracyTable,head:a.accuracyHead,rows:e.flatMap(e=>[{key:e.evidence,tone:e.evidence===`total`?`total`:void 0,cells:[s.evidenceLabel(e.evidence),e.candidates,e.closed,e.verified,e.open,i(e.precision)]},...c(e.evidence).map(t=>({...t,key:`${e.evidence}-${t.key}`}))])})]})})}function R(e,t,n){return{key:t.by,tone:`child`,cells:[e.splitRow(n),t.candidates,t.closed,t.verified,t.open,i(t.precision)]}}function z({graph:e}){let{stats:t,core:n}=o(),{projects:r,filter:i}=e;return i.filtered===0&&r.every(e=>e.state===`none`)?(0,M.jsx)(l,{title:t.graphTitle,children:(0,M.jsx)(`p`,{className:d.muted,children:t.graphMissing(e=>(0,M.jsx)(`code`,{children:e},e))})}):(0,M.jsxs)(l,{title:t.graphTitle,children:[(0,M.jsx)(`p`,{className:d.muted,children:t.graphHint}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:d.subTitle,children:t.filteredTitle}),i.filtered===0?(0,M.jsx)(`p`,{className:d.muted,children:t.nothingFiltered}):(0,M.jsx)(p,{label:t.filteredTable,head:t.filteredHead,rows:[{key:`filtered`,cells:[t.filteredByGraph,i.filtered]},{key:`caught`,cells:[t.filteredCaught,i.caught]},{key:`missed`,cells:[t.filteredMissed,i.missed]},{key:`quiet`,cells:[t.filteredQuiet,i.quiet]}]})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:d.subTitle,children:t.projects}),(0,M.jsx)(p,{label:t.graphByProject,head:t.graphHead,rows:r.map(e=>({key:e.projectId,cells:[e.name,n.graphStateLabel(e.state),e.pinned,B(e)]}))})]})]})}function B({state:e,pinned:t,resolved:n}){return e===`none`||e===`unreadable`?`—`:`${n} (${i(t===0?null:n/t)})`}function V({rows:e}){let{stats:t,core:n}=o(),r=e=>e.category===`unknown`?t.categoryUnknown:n.categoryLabel(e.category??void 0);return(0,M.jsx)(l,{title:t.categoriesTitle,children:e.length===0?(0,M.jsx)(`p`,{className:d.muted,children:t.categoriesEmpty}):(0,M.jsx)(p,{label:t.categoriesTitle,head:t.categoriesHead,rows:e.map(e=>({key:e.category??`none`,cells:[r(e),e.open,e.weight,e.created,e.closed]}))})})}function H({found:e,branches:t}){let{stats:n}=o(),r=e=>e.found===null?n.foundNotRecorded:e.found===`unknown`?n.foundUnknown:n.foundLabels[e.found];return(0,M.jsxs)(l,{title:n.originTitle,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:d.subTitle,children:n.foundTitle}),(0,M.jsx)(p,{label:n.foundTitle,head:n.foundHead,rows:e.map(e=>({key:e.found??`not-recorded`,cells:[r(e),e.created,e.open,e.fixed]}))})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:d.subTitle,children:n.branchesTitle}),t.length===0?(0,M.jsx)(`p`,{className:d.muted,children:n.branchesEmpty}):(0,M.jsx)(p,{label:n.branchesTitle,head:n.branchesHead,rows:t.map(e=>({key:e.label,cells:[(0,M.jsx)(`code`,{children:e.label}),e.created,e.open]}))})]})]})}function U(){let{projectId:e}=r(),t=a(e);return(0,M.jsx)(u,{query:t,children:e=>(0,M.jsx)(W,{report:e})})}function W({report:e}){return(0,M.jsxs)(`div`,{className:f.blocks,children:[(0,M.jsx)(`div`,{className:d.wide,children:(0,M.jsx)(L,{rows:e.accuracy,weeks:e.accuracyWeeks,methodRows:e.methodAccuracy,matchRows:e.matchAccuracy})}),(0,M.jsx)(`div`,{className:d.wide,children:(0,M.jsx)(z,{graph:e.graph})}),(0,M.jsx)(`div`,{className:d.wide,children:(0,M.jsx)(V,{rows:e.categories})}),(0,M.jsx)(`div`,{className:d.wide,children:(0,M.jsx)(H,{found:e.found,branches:e.branches})})]})}export{U as QualityTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Cn as t,Ot as n,St as r,Tt as i,Zt as a,l as o,m as s,t as c,w as l,wn as u}from"./cx-BZTW4xgb.js";import{d,i as f,n as p}from"./paths-ZO6w2vYU.js";import{a as m,o as h,t as g}from"./index-BrkoyuWi.js";import{t as _}from"./StatsPage.module-D8dvB8Va.js";var v=e(u(),1),y=t();function b(){let{projectId:e}=n(),{pathname:t}=r(),u=o(),b=s(e),{app:x,core:S,stats:C}=l(),w=e===void 0?C.projects:m(u.data,e),T=C.heading(w),E=p(e),D=e=>e===``?E:`${E}/${e}`,O=(e,t)=>a({path:D(e),end:!0},t)!==null,k=g.find(e=>e.segment!==``&&O(e.segment,t))??g[0],A=i().location?.pathname,j=(0,v.useRef)(null),M=A===void 0?void 0:g.find(e=>O(e.segment,A)),N=C.docTitle(k.segment===``?T:`${C.tabs[k.key]} · ${T}`);return(0,v.useEffect)(()=>{document.title=N},[N]),(0,y.jsxs)(`main`,{id:`content`,tabIndex:-1,className:_.page,"aria-busy":M!==void 0||void 0,children:[(0,y.jsx)(`h1`,{ref:j,tabIndex:-1,className:_.heading,children:T}),e===void 0&&u.data!==void 0&&(0,y.jsx)(`p`,{className:_.scopeNote,children:h(u.data,x)}),(b.data?.signals.length??0)>0&&(0,y.jsxs)(`div`,{className:_.signals,role:`status`,"aria-labelledby":`stats-signals-heading`,children:[(0,y.jsx)(`strong`,{id:`stats-signals-heading`,className:_.signalsTitle,children:C.alerts}),(0,y.jsx)(`ul`,{children:b.data?.signals.map(e=>(0,y.jsx)(`li`,{children:S.signal(e)},e.kind))})]}),(0,y.jsx)(`nav`,{className:_.tabs,"aria-label":C.tabsLabel,children:g.map(e=>(0,y.jsx)(f,{to:D(e.segment),className:c(_.tab,e===k&&_.tabActive,e===M&&_.tabPending),"aria-current":e===k?`page`:void 0,children:C.tabs[e.key]},e.key))}),(0,y.jsx)(d,{context:{heading:j}})]})}export{b as StatsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,Cn as n,Dt as r,b as i,nt as a,t as o,w as s,wn as c}from"./cx-BZTW4xgb.js";import{i as l,r as u}from"./index-BrkoyuWi.js";import{t as d}from"./StatsPage.module-D8dvB8Va.js";var f=e(c(),1),p={panel:`_panel_1ke0e_1`,head:`_head_1ke0e_14`,title:`_title_1ke0e_21`},m=n();function h({title:e,aside:t,children:n}){let r=(0,f.useId)();return(0,m.jsxs)(`section`,{className:p.panel,"aria-labelledby":r,children:[(0,m.jsxs)(`div`,{className:p.head,children:[(0,m.jsx)(`h2`,{id:r,className:p.title,children:e}),t]}),n]})}var g={muted:`_muted_14ll2_1`,subTitle:`_subTitle_14ll2_7`,rows:`_rows_14ll2_14`,countRow:`_countRow_14ll2_28`,row:`_row_14ll2_14`,rowLabel:`_rowLabel_14ll2_41`,rowValue:`_rowValue_14ll2_58`,wide:`_wide_14ll2_64`,track:`_track_14ll2_68`,fill:`_fill_14ll2_75`,grain:`_grain_14ll2_82`};function _({query:e,emptyMessage:t=null,children:n}){let{stats:a}=s(),{error:c,data:f,isFetching:p}=e,h=f!==void 0,g=c instanceof i&&c.status===404,_=g?null:c,v=c===null&&!h,b=y(a,c,g,h,t),{status:x,keepFocus:S}=u(b===null&&_===null,r()?.heading);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`div`,{ref:x,tabIndex:-1,role:`status`,"aria-live":`polite`,className:b===null&&_===null?`visually-hidden`:o(d.hint,v&&d.hintLoading),children:[b!==null&&(0,m.jsx)(`p`,{children:b}),_!==null&&(0,m.jsx)(l,{error:_,fetching:p,onRetry:()=>{S(),e.refetch()}})]}),!g&&f!==void 0&&t===null&&(0,m.jsx)(`div`,{className:d.content,children:n(f)})]})}function v({query:e,children:n}){let{stats:r}=s(),i=t(),a=e.data?.invalidJournalLines??0,o=e.data?.unknownJournalLines??0,c=e.data?.unparsedTasks??0,l=[a>0?r.invalidJournalLines(a):null,o>0?r.unknownJournalLines(o):null,c>0?r.unparsedTasks(c):null].filter(e=>e!==null);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`p`,{className:l.length>0?d.warning:`visually-hidden`,role:`status`,children:l.join(` `)}),(0,m.jsx)(_,{query:e,emptyMessage:e.data?.taskCount===0?r.noTasks:null,children:e=>(0,m.jsxs)(m.Fragment,{children:[n(e),(0,m.jsx)(`p`,{className:d.note,children:b(r,i,e.journalSince)})]})})]})}function y(e,t,n,r,i){return n?e.projectNotFound:t===null?r?i:e.loading:null}function b(e,t,n){return n===null?e.journalEmpty:e.journalSince(a(t,n))}export{h as i,v as n,g as r,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Cn as e,w as t}from"./cx-BZTW4xgb.js";import{t as n}from"./StatsPage.module-D8dvB8Va.js";var r=e();function i({repos:e}){let{stats:i}=t();return e.map(e=>(0,r.jsx)(`p`,{className:n.warning,role:`status`,children:i.unavailableRepo(e)},e))}export{i as t};
|