agentboss 0.1.2 → 0.1.3
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.
|
@@ -134,7 +134,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
134
134
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oQ(e,t){if(e){if(typeof e=="string")return mv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mv(e,t)}}function lQ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function sQ(e){if(Array.isArray(e))return mv(e)}function mv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function uQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function q1(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,hA(r.key),r)}}function cQ(e,t,n){return t&&q1(e.prototype,t),n&&q1(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function fQ(e,t,n){return t=Mc(t),dQ(e,pA()?Reflect.construct(t,n||[],Mc(e).constructor):t.apply(e,n))}function dQ(e,t){if(t&&(Da(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return pQ(e)}function pQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function pA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(pA=function(){return!!e})()}function Mc(e){return Mc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Mc(e)}function hQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&gv(e,t)}function gv(e,t){return gv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},gv(e,t)}function an(e,t,n){return t=hA(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hA(e){var t=vQ(e,"string");return Da(t)=="symbol"?t:t+""}function vQ(e,t){if(Da(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Da(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var $r=function(e){function t(){var n;uQ(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=fQ(this,t,[].concat(i)),an(n,"state",{isAnimationFinished:!0,totalLength:0}),an(n,"generateSimpleStrokeDasharray",function(o,l){return"".concat(l,"px ").concat(o-l,"px")}),an(n,"getStrokeDasharray",function(o,l,s){var u=s.reduce(function(g,v){return g+v});if(!u)return n.generateSimpleStrokeDasharray(l,o);for(var f=Math.floor(o/u),c=o%u,d=l-o,h=[],y=0,b=0;y<s.length;b+=s[y],++y)if(b+s[y]>c){h=[].concat(Ti(s.slice(0,y)),[c-b]);break}var m=h.length%2===0?[0,d]:[d];return[].concat(Ti(t.repeat(s,f)),Ti(h),m).map(function(g){return"".concat(g,"px")}).join(", ")}),an(n,"id",rs("recharts-line-")),an(n,"pathRef",function(o){n.mainCurve=o}),an(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),an(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return hQ(t,e),cQ(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.points,l=a.xAxis,s=a.yAxis,u=a.layout,f=a.children,c=Gt(f,cs);if(!c)return null;var d=function(b,m){return{x:b.x,y:b.y,value:b.value,errorVal:ht(b.payload,m)}},h={clipPath:r?"url(#clipPath-".concat(i,")"):null};return E.createElement(ue,h,c.map(function(y){return E.cloneElement(y,{key:"bar-".concat(y.props.dataKey),data:o,xAxis:l,yAxis:s,layout:u,dataPointFormatter:d})}))}},{key:"renderDots",value:function(r,i,a){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var l=this.props,s=l.dot,u=l.points,f=l.dataKey,c=Y(this.props,!1),d=Y(s,!0),h=u.map(function(b,m){var g=Pt(Pt(Pt({key:"dot-".concat(m),r:3},c),d),{},{index:m,cx:b.x,cy:b.y,value:b.value,dataKey:f,payload:b.payload,points:u});return t.renderDotItem(s,g)}),y={clipPath:r?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return E.createElement(ue,Wo({className:"recharts-line-dots",key:"dots"},y),h)}},{key:"renderCurveStatically",value:function(r,i,a,o){var l=this.props,s=l.type,u=l.layout,f=l.connectNulls;l.ref;var c=X1(l,nQ),d=Pt(Pt(Pt({},Y(c,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(a,")"):null,points:r},o),{},{type:s,layout:u,connectNulls:f});return E.createElement(Vh,Wo({},d,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,i){var a=this,o=this.props,l=o.points,s=o.strokeDasharray,u=o.isAnimationActive,f=o.animationBegin,c=o.animationDuration,d=o.animationEasing,h=o.animationId,y=o.animateNewValues,b=o.width,m=o.height,g=this.state,v=g.prevPoints,x=g.totalLength;return E.createElement(On,{begin:f,duration:c,isActive:u,easing:d,from:{t:0},to:{t:1},key:"line-".concat(h),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(S){var w=S.t;if(v){var _=v.length/l.length,O=l.map(function($,N){var M=Math.floor(N*_);if(v[M]){var I=v[M],R=ft(I.x,$.x),z=ft(I.y,$.y);return Pt(Pt({},$),{},{x:R(w),y:z(w)})}if(y){var C=ft(b*2,$.x),D=ft(m/2,$.y);return Pt(Pt({},$),{},{x:C(w),y:D(w)})}return Pt(Pt({},$),{},{x:$.x,y:$.y})});return a.renderCurveStatically(O,r,i)}var j=ft(0,x),P=j(w),k;if(s){var T="".concat(s).split(/[,\s]+/gim).map(function($){return parseFloat($)});k=a.getStrokeDasharray(P,x,T)}else k=a.generateSimpleStrokeDasharray(x,P);return a.renderCurveStatically(l,r,i,{strokeDasharray:k})})}},{key:"renderCurve",value:function(r,i){var a=this.props,o=a.points,l=a.isAnimationActive,s=this.state,u=s.prevPoints,f=s.totalLength;return l&&o&&o.length&&(!u&&f>0||!us(u,o))?this.renderCurveWithAnimation(r,i):this.renderCurveStatically(o,r,i)}},{key:"render",value:function(){var r,i=this.props,a=i.hide,o=i.dot,l=i.points,s=i.className,u=i.xAxis,f=i.yAxis,c=i.top,d=i.left,h=i.width,y=i.height,b=i.isAnimationActive,m=i.id;if(a||!l||!l.length)return null;var g=this.state.isAnimationFinished,v=l.length===1,x=J("recharts-line",s),S=u&&u.allowDataOverflow,w=f&&f.allowDataOverflow,_=S||w,O=te(m)?this.id:m,j=(r=Y(o,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},P=j.r,k=P===void 0?3:P,T=j.strokeWidth,$=T===void 0?2:T,N=vM(o)?o:{},M=N.clipDot,I=M===void 0?!0:M,R=k*2+$;return E.createElement(ue,{className:x},S||w?E.createElement("defs",null,E.createElement("clipPath",{id:"clipPath-".concat(O)},E.createElement("rect",{x:S?d:d-h/2,y:w?c:c-y/2,width:S?h:h*2,height:w?y:y*2})),!I&&E.createElement("clipPath",{id:"clipPath-dots-".concat(O)},E.createElement("rect",{x:d-R/2,y:c-R/2,width:h+R,height:y+R}))):null,!v&&this.renderCurve(_,O),this.renderErrorBar(_,O),(v||o)&&this.renderDots(_,I,O),(!b||g)&&Wn.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:i.curPoints}:r.points!==i.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,i){for(var a=r.length%2!==0?[].concat(Ti(r),[0]):r,o=[],l=0;l<i;++l)o=[].concat(Ti(o),Ti(a));return o}},{key:"renderDotItem",value:function(r,i){var a;if(E.isValidElement(r))a=E.cloneElement(r,i);else if(Z(r))a=r(i);else{var o=i.key,l=X1(i,rQ),s=J("recharts-line-dot",typeof r!="boolean"?r.className:"");a=E.createElement(fs,Wo({key:o},l,{className:s}))}return a}}])}(A.PureComponent);an($r,"displayName","Line");an($r,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!Si.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});an($r,"getComposedData",function(e){var t=e.props,n=e.xAxis,r=e.yAxis,i=e.xAxisTicks,a=e.yAxisTicks,o=e.dataKey,l=e.bandSize,s=e.displayedData,u=e.offset,f=t.layout,c=s.map(function(d,h){var y=ht(d,o);return f==="horizontal"?{x:Sx({axis:n,ticks:i,bandSize:l,entry:d,index:h}),y:te(y)?null:r.scale(y),value:y,payload:d}:{x:te(y)?null:n.scale(y),y:Sx({axis:r,ticks:a,bandSize:l,entry:d,index:h}),value:y,payload:d}});return Pt({points:c,layout:f},u)});function Ra(e){"@babel/helpers - typeof";return Ra=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ra(e)}function yQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mQ(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,mA(r.key),r)}}function gQ(e,t,n){return t&&mQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function bQ(e,t,n){return t=Ic(t),xQ(e,vA()?Reflect.construct(t,n||[],Ic(e).constructor):t.apply(e,n))}function xQ(e,t){if(t&&(Ra(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return wQ(e)}function wQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function vA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(vA=function(){return!!e})()}function Ic(e){return Ic=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ic(e)}function SQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&bv(e,t)}function bv(e,t){return bv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},bv(e,t)}function yA(e,t,n){return t=mA(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mA(e){var t=_Q(e,"string");return Ra(t)=="symbol"?t:t+""}function _Q(e,t){if(Ra(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ra(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function xv(){return xv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xv.apply(this,arguments)}function OQ(e){var t=e.xAxisId,n=km(),r=Tm(),i=tA(t);return i==null?null:A.createElement(ro,xv({},i,{className:J("recharts-".concat(i.axisType," ").concat(i.axisType),i.className),viewBox:{x:0,y:0,width:n,height:r},ticksGenerator:function(o){return Dn(o,!0)}}))}var yi=function(e){function t(){return yQ(this,t),bQ(this,t,arguments)}return SQ(t,e),gQ(t,[{key:"render",value:function(){return A.createElement(OQ,this.props)}}])}(A.Component);yA(yi,"displayName","XAxis");yA(yi,"defaultProps",{allowDecimals:!0,hide:!1,orientation:"bottom",width:0,height:30,mirror:!1,xAxisId:0,tickCount:5,type:"category",padding:{left:0,right:0},allowDataOverflow:!1,scale:"auto",reversed:!1,allowDuplicatedCategory:!0});function Ba(e){"@babel/helpers - typeof";return Ba=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ba(e)}function jQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function PQ(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,xA(r.key),r)}}function AQ(e,t,n){return t&&PQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function EQ(e,t,n){return t=Lc(t),$Q(e,gA()?Reflect.construct(t,n||[],Lc(e).constructor):t.apply(e,n))}function $Q(e,t){if(t&&(Ba(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return kQ(e)}function kQ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(gA=function(){return!!e})()}function Lc(e){return Lc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Lc(e)}function TQ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&wv(e,t)}function wv(e,t){return wv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},wv(e,t)}function bA(e,t,n){return t=xA(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xA(e){var t=CQ(e,"string");return Ba(t)=="symbol"?t:t+""}function CQ(e,t){if(Ba(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ba(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Sv(){return Sv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Sv.apply(this,arguments)}var NQ=function(t){var n=t.yAxisId,r=km(),i=Tm(),a=nA(n);return a==null?null:A.createElement(ro,Sv({},a,{className:J("recharts-".concat(a.axisType," ").concat(a.axisType),a.className),viewBox:{x:0,y:0,width:r,height:i},ticksGenerator:function(l){return Dn(l,!0)}}))},mi=function(e){function t(){return jQ(this,t),EQ(this,t,arguments)}return TQ(t,e),AQ(t,[{key:"render",value:function(){return A.createElement(NQ,this.props)}}])}(A.Component);bA(mi,"displayName","YAxis");bA(mi,"defaultProps",{allowDuplicatedCategory:!0,allowDecimals:!0,hide:!1,orientation:"left",width:60,height:0,mirror:!1,yAxisId:0,tickCount:5,type:"number",padding:{top:0,bottom:0},allowDataOverflow:!1,scale:"auto",reversed:!1});function Q1(e){return DQ(e)||LQ(e)||IQ(e)||MQ()}function MQ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
135
135
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function IQ(e,t){if(e){if(typeof e=="string")return _v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _v(e,t)}}function LQ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function DQ(e){if(Array.isArray(e))return _v(e)}function _v(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ov=function(t,n,r,i,a){var o=Gt(t,Nm),l=Gt(t,Hf),s=[].concat(Q1(o),Q1(l)),u=Gt(t,Kf),f="".concat(i,"Id"),c=i[0],d=n;if(s.length&&(d=s.reduce(function(b,m){if(m.props[f]===r&&Sn(m.props,"extendDomain")&&H(m.props[c])){var g=m.props[c];return[Math.min(b[0],g),Math.max(b[1],g)]}return b},d)),u.length){var h="".concat(c,"1"),y="".concat(c,"2");d=u.reduce(function(b,m){if(m.props[f]===r&&Sn(m.props,"extendDomain")&&H(m.props[h])&&H(m.props[y])){var g=m.props[h],v=m.props[y];return[Math.min(b[0],g,v),Math.max(b[1],g,v)]}return b},d)}return a&&a.length&&(d=a.reduce(function(b,m){return H(m)?[Math.min(b[0],m),Math.max(b[1],m)]:b},d)),d},wA={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function i(s,u,f){this.fn=s,this.context=u,this.once=f||!1}function a(s,u,f,c,d){if(typeof f!="function")throw new TypeError("The listener must be a function");var h=new i(f,c||s,d),y=n?n+u:u;return s._events[y]?s._events[y].fn?s._events[y]=[s._events[y],h]:s._events[y].push(h):(s._events[y]=h,s._eventsCount++),s}function o(s,u){--s._eventsCount===0?s._events=new r:delete s._events[u]}function l(){this._events=new r,this._eventsCount=0}l.prototype.eventNames=function(){var u=[],f,c;if(this._eventsCount===0)return u;for(c in f=this._events)t.call(f,c)&&u.push(n?c.slice(1):c);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(f)):u},l.prototype.listeners=function(u){var f=n?n+u:u,c=this._events[f];if(!c)return[];if(c.fn)return[c.fn];for(var d=0,h=c.length,y=new Array(h);d<h;d++)y[d]=c[d].fn;return y},l.prototype.listenerCount=function(u){var f=n?n+u:u,c=this._events[f];return c?c.fn?1:c.length:0},l.prototype.emit=function(u,f,c,d,h,y){var b=n?n+u:u;if(!this._events[b])return!1;var m=this._events[b],g=arguments.length,v,x;if(m.fn){switch(m.once&&this.removeListener(u,m.fn,void 0,!0),g){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,f),!0;case 3:return m.fn.call(m.context,f,c),!0;case 4:return m.fn.call(m.context,f,c,d),!0;case 5:return m.fn.call(m.context,f,c,d,h),!0;case 6:return m.fn.call(m.context,f,c,d,h,y),!0}for(x=1,v=new Array(g-1);x<g;x++)v[x-1]=arguments[x];m.fn.apply(m.context,v)}else{var S=m.length,w;for(x=0;x<S;x++)switch(m[x].once&&this.removeListener(u,m[x].fn,void 0,!0),g){case 1:m[x].fn.call(m[x].context);break;case 2:m[x].fn.call(m[x].context,f);break;case 3:m[x].fn.call(m[x].context,f,c);break;case 4:m[x].fn.call(m[x].context,f,c,d);break;default:if(!v)for(w=1,v=new Array(g-1);w<g;w++)v[w-1]=arguments[w];m[x].fn.apply(m[x].context,v)}}return!0},l.prototype.on=function(u,f,c){return a(this,u,f,c,!1)},l.prototype.once=function(u,f,c){return a(this,u,f,c,!0)},l.prototype.removeListener=function(u,f,c,d){var h=n?n+u:u;if(!this._events[h])return this;if(!f)return o(this,h),this;var y=this._events[h];if(y.fn)y.fn===f&&(!d||y.once)&&(!c||y.context===c)&&o(this,h);else{for(var b=0,m=[],g=y.length;b<g;b++)(y[b].fn!==f||d&&!y[b].once||c&&y[b].context!==c)&&m.push(y[b]);m.length?this._events[h]=m.length===1?m[0]:m:o(this,h)}return this},l.prototype.removeAllListeners=function(u){var f;return u?(f=n?n+u:u,this._events[f]&&o(this,f)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l})(wA);var RQ=wA.exports;const BQ=ce(RQ);var qd=new BQ,Qd="recharts.syncMouseEvents";function Kl(e){"@babel/helpers - typeof";return Kl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Kl(e)}function zQ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function FQ(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,SA(r.key),r)}}function UQ(e,t,n){return t&&FQ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Zd(e,t,n){return t=SA(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function SA(e){var t=WQ(e,"string");return Kl(t)=="symbol"?t:t+""}function WQ(e,t){if(Kl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Kl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var HQ=function(){function e(){zQ(this,e),Zd(this,"activeIndex",0),Zd(this,"coordinateList",[]),Zd(this,"layout","horizontal")}return UQ(e,[{key:"setDetails",value:function(n){var r,i=n.coordinateList,a=i===void 0?null:i,o=n.container,l=o===void 0?null:o,s=n.layout,u=s===void 0?null:s,f=n.offset,c=f===void 0?null:f,d=n.mouseHandlerCallback,h=d===void 0?null:d;this.coordinateList=(r=a??this.coordinateList)!==null&&r!==void 0?r:[],this.container=l??this.container,this.layout=u??this.layout,this.offset=c??this.offset,this.mouseHandlerCallback=h??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(n){if(this.coordinateList.length!==0)switch(n.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"setIndex",value:function(n){this.activeIndex=n}},{key:"spoofMouse",value:function(){var n,r;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var i=this.container.getBoundingClientRect(),a=i.x,o=i.y,l=i.height,s=this.coordinateList[this.activeIndex].coordinate,u=((n=window)===null||n===void 0?void 0:n.scrollX)||0,f=((r=window)===null||r===void 0?void 0:r.scrollY)||0,c=a+s+u,d=o+this.offset.top+l/2+f;this.mouseHandlerCallback({pageX:c,pageY:d})}}}])}();function VQ(e,t,n){if(n==="number"&&t===!0&&Array.isArray(e)){var r=e==null?void 0:e[0],i=e==null?void 0:e[1];if(r&&i&&H(r)&&H(i))return!0}return!1}function KQ(e,t,n,r){var i=r/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:n.left+.5,y:e==="horizontal"?n.top+.5:t.y-i,width:e==="horizontal"?r:n.width-1,height:e==="horizontal"?n.height-1:r}}function _A(e){var t=e.cx,n=e.cy,r=e.radius,i=e.startAngle,a=e.endAngle,o=he(t,n,r,i),l=he(t,n,r,a);return{points:[o,l],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}function GQ(e,t,n){var r,i,a,o;if(e==="horizontal")r=t.x,a=r,i=n.top,o=n.top+n.height;else if(e==="vertical")i=t.y,o=i,r=n.left,a=n.left+n.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var l=t.cx,s=t.cy,u=t.innerRadius,f=t.outerRadius,c=t.angle,d=he(l,s,u,c),h=he(l,s,f,c);r=d.x,i=d.y,a=h.x,o=h.y}else return _A(t);return[{x:r,y:i},{x:a,y:o}]}function Gl(e){"@babel/helpers - typeof";return Gl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gl(e)}function Z1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Gs(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Z1(Object(n),!0).forEach(function(r){XQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z1(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function XQ(e,t,n){return t=YQ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YQ(e){var t=qQ(e,"string");return Gl(t)=="symbol"?t:t+""}function qQ(e,t){if(Gl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Gl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function QQ(e){var t,n,r=e.element,i=e.tooltipEventType,a=e.isActive,o=e.activeCoordinate,l=e.activePayload,s=e.offset,u=e.activeTooltipIndex,f=e.tooltipAxisBandSize,c=e.layout,d=e.chartName,h=(t=r.props.cursor)!==null&&t!==void 0?t:(n=r.type.defaultProps)===null||n===void 0?void 0:n.cursor;if(!r||!h||!a||!o||d!=="ScatterChart"&&i!=="axis")return null;var y,b=Vh;if(d==="ScatterChart")y=o,b=YV;else if(d==="BarChart")y=KQ(c,o,s,f),b=Pm;else if(c==="radial"){var m=_A(o),g=m.cx,v=m.cy,x=m.radius,S=m.startAngle,w=m.endAngle;y={cx:g,cy:v,startAngle:S,endAngle:w,innerRadius:x,outerRadius:x},b=bP}else y={points:GQ(c,o,s)},b=Vh;var _=Gs(Gs(Gs(Gs({stroke:"#ccc",pointerEvents:"none"},s),y),Y(h,!1)),{},{payload:l,payloadIndex:u,className:J("recharts-tooltip-cursor",h.className)});return A.isValidElement(h)?A.cloneElement(h,_):A.createElement(b,_)}var ZQ=["item"],JQ=["children","className","width","height","style","compact","title","desc"];function za(e){"@babel/helpers - typeof";return za=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},za(e)}function Xi(){return Xi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xi.apply(this,arguments)}function J1(e,t){return nZ(e)||tZ(e,t)||jA(e,t)||eZ()}function eZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
136
136
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tZ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,a,o,l=[],s=!0,u=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(s=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(f){u=!0,i=f}finally{try{if(!s&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}function nZ(e){if(Array.isArray(e))return e}function ew(e,t){if(e==null)return{};var n=rZ(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function rZ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function iZ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function aZ(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,PA(r.key),r)}}function oZ(e,t,n){return t&&aZ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function lZ(e,t,n){return t=Dc(t),sZ(e,OA()?Reflect.construct(t,n||[],Dc(e).constructor):t.apply(e,n))}function sZ(e,t){if(t&&(za(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return uZ(e)}function uZ(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function OA(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(OA=function(){return!!e})()}function Dc(e){return Dc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Dc(e)}function cZ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&jv(e,t)}function jv(e,t){return jv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},jv(e,t)}function Fa(e){return pZ(e)||dZ(e)||jA(e)||fZ()}function fZ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
137
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jA(e,t){if(e){if(typeof e=="string")return Pv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pv(e,t)}}function dZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function pZ(e){if(Array.isArray(e))return Pv(e)}function Pv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function tw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?tw(Object(n),!0).forEach(function(r){Q(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Q(e,t,n){return t=PA(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PA(e){var t=hZ(e,"string");return za(t)=="symbol"?t:t+""}function hZ(e,t){if(za(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(za(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var vZ={xAxis:["bottom","top"],yAxis:["left","right"]},yZ={width:"100%",height:"100%"},AA={x:0,y:0};function Xs(e){return e}var mZ=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},gZ=function(t,n,r,i){var a=n.find(function(f){return f&&f.index===r});if(a){if(t==="horizontal")return{x:a.coordinate,y:i.y};if(t==="vertical")return{x:i.x,y:a.coordinate};if(t==="centric"){var o=a.coordinate,l=i.radius;return L(L(L({},i),he(i.cx,i.cy,l,o)),{},{angle:o,radius:l})}var s=a.coordinate,u=i.angle;return L(L(L({},i),he(i.cx,i.cy,s,u)),{},{angle:u,radius:s})}return AA},Gf=function(t,n){var r=n.graphicalItems,i=n.dataStartIndex,a=n.dataEndIndex,o=(r??[]).reduce(function(l,s){var u=s.props.data;return u&&u.length?[].concat(Fa(l),Fa(u)):l},[]);return o.length>0?o:t&&t.length&&H(i)&&H(a)?t.slice(i,a+1):[]};function EA(e){return e==="number"?[0,"auto"]:void 0}var Av=function(t,n,r,i){var a=t.graphicalItems,o=t.tooltipAxis,l=Gf(n,t);return r<0||!a||!a.length||r>=l.length?null:a.reduce(function(s,u){var f,c=(f=u.props.data)!==null&&f!==void 0?f:n;c&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(c=c.slice(t.dataStartIndex,t.dataEndIndex+1));var d;if(o.dataKey&&!o.allowDuplicatedCategory){var h=c===void 0?l:c;d=Iu(h,o.dataKey,i)}else d=c&&c[r]||l[r];return d?[].concat(Fa(s),[pP(u,d)]):s},[])},nw=function(t,n,r,i){var a=i||{x:t.chartX,y:t.chartY},o=mZ(a,r),l=t.orderedTooltipTicks,s=t.tooltipAxis,u=t.tooltipTicks,f=yH(o,l,u,s);if(f>=0&&u){var c=u[f]&&u[f].value,d=Av(t,n,f,c),h=gZ(r,l,f,a);return{activeTooltipIndex:f,activeLabel:c,activePayload:d,activeCoordinate:h}}return null},bZ=function(t,n){var r=n.axes,i=n.graphicalItems,a=n.axisType,o=n.axisIdKey,l=n.stackGroups,s=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,d=t.stackOffset,h=lP(f,a);return r.reduce(function(y,b){var m,g=b.type.defaultProps!==void 0?L(L({},b.type.defaultProps),b.props):b.props,v=g.type,x=g.dataKey,S=g.allowDataOverflow,w=g.allowDuplicatedCategory,_=g.scale,O=g.ticks,j=g.includeHidden,P=g[o];if(y[P])return y;var k=Gf(t.data,{graphicalItems:i.filter(function(W){var q,ie=o in W.props?W.props[o]:(q=W.type.defaultProps)===null||q===void 0?void 0:q[o];return ie===P}),dataStartIndex:s,dataEndIndex:u}),T=k.length,$,N,M;VQ(g.domain,S,v)&&($=zh(g.domain,null,S),h&&(v==="number"||_!=="auto")&&(M=Bo(k,x,"category")));var I=EA(v);if(!$||$.length===0){var R,z=(R=g.domain)!==null&&R!==void 0?R:I;if(x){if($=Bo(k,x,v),v==="category"&&h){var C=aM($);w&&C?(N=$,$=Oc(0,T)):w||($=Px(z,$,b).reduce(function(W,q){return W.indexOf(q)>=0?W:[].concat(Fa(W),[q])},[]))}else if(v==="category")w?$=$.filter(function(W){return W!==""&&!te(W)}):$=Px(z,$,b).reduce(function(W,q){return W.indexOf(q)>=0||q===""||te(q)?W:[].concat(Fa(W),[q])},[]);else if(v==="number"){var D=wH(k,i.filter(function(W){var q,ie,_e=o in W.props?W.props[o]:(q=W.type.defaultProps)===null||q===void 0?void 0:q[o],Me="hide"in W.props?W.props.hide:(ie=W.type.defaultProps)===null||ie===void 0?void 0:ie.hide;return _e===P&&(j||!Me)}),x,a,f);D&&($=D)}h&&(v==="number"||_!=="auto")&&(M=Bo(k,x,"category"))}else h?$=Oc(0,T):l&&l[P]&&l[P].hasStack&&v==="number"?$=d==="expand"?[0,1]:dP(l[P].stackGroups,s,u):$=oP(k,i.filter(function(W){var q=o in W.props?W.props[o]:W.type.defaultProps[o],ie="hide"in W.props?W.props.hide:W.type.defaultProps.hide;return q===P&&(j||!ie)}),v,f,!0);if(v==="number")$=Ov(c,$,P,a,O),z&&($=zh(z,$,S));else if(v==="category"&&z){var B=z,V=$.every(function(W){return B.indexOf(W)>=0});V&&($=B)}}return L(L({},y),{},Q({},P,L(L({},g),{},{axisType:a,domain:$,categoricalDomain:M,duplicateDomain:N,originalDomain:(m=g.domain)!==null&&m!==void 0?m:I,isCategorical:h,layout:f})))},{})},xZ=function(t,n){var r=n.graphicalItems,i=n.Axis,a=n.axisType,o=n.axisIdKey,l=n.stackGroups,s=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,d=Gf(t.data,{graphicalItems:r,dataStartIndex:s,dataEndIndex:u}),h=d.length,y=lP(f,a),b=-1;return r.reduce(function(m,g){var v=g.type.defaultProps!==void 0?L(L({},g.type.defaultProps),g.props):g.props,x=v[o],S=EA("number");if(!m[x]){b++;var w;return y?w=Oc(0,h):l&&l[x]&&l[x].hasStack?(w=dP(l[x].stackGroups,s,u),w=Ov(c,w,x,a)):(w=zh(S,oP(d,r.filter(function(_){var O,j,P=o in _.props?_.props[o]:(O=_.type.defaultProps)===null||O===void 0?void 0:O[o],k="hide"in _.props?_.props.hide:(j=_.type.defaultProps)===null||j===void 0?void 0:j.hide;return P===x&&!k}),"number",f),i.defaultProps.allowDataOverflow),w=Ov(c,w,x,a)),L(L({},m),{},Q({},x,L(L({axisType:a},i.defaultProps),{},{hide:!0,orientation:Kt(vZ,"".concat(a,".").concat(b%2),null),domain:w,originalDomain:S,isCategorical:y,layout:f})))}return m},{})},wZ=function(t,n){var r=n.axisType,i=r===void 0?"xAxis":r,a=n.AxisComp,o=n.graphicalItems,l=n.stackGroups,s=n.dataStartIndex,u=n.dataEndIndex,f=t.children,c="".concat(i,"Id"),d=Gt(f,a),h={};return d&&d.length?h=bZ(t,{axes:d,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:l,dataStartIndex:s,dataEndIndex:u}):o&&o.length&&(h=xZ(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:l,dataStartIndex:s,dataEndIndex:u})),h},SZ=function(t){var n=dr(t),r=Dn(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:Jy(r,function(i){return i.coordinate}),tooltipAxis:n,tooltipAxisBandSize:cc(n,r)}},rw=function(t){var n=t.children,r=t.defaultShowTooltip,i=$t(n,Ta),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!r}},_Z=function(t){return!t||!t.length?!1:t.some(function(n){var r=zn(n&&n.type);return r&&r.indexOf("Bar")>=0})},iw=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},OZ=function(t,n){var r=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,l=t.yAxisMap,s=l===void 0?{}:l,u=r.width,f=r.height,c=r.children,d=r.margin||{},h=$t(c,Ta),y=$t(c,dn),b=Object.keys(s).reduce(function(w,_){var O=s[_],j=O.orientation;return!O.mirror&&!O.hide?L(L({},w),{},Q({},j,w[j]+O.width)):w},{left:d.left||0,right:d.right||0}),m=Object.keys(o).reduce(function(w,_){var O=o[_],j=O.orientation;return!O.mirror&&!O.hide?L(L({},w),{},Q({},j,Kt(w,"".concat(j))+O.height)):w},{top:d.top||0,bottom:d.bottom||0}),g=L(L({},m),b),v=g.bottom;h&&(g.bottom+=h.props.height||Ta.defaultProps.height),y&&n&&(g=bH(g,i,r,n));var x=u-g.left-g.right,S=f-g.top-g.bottom;return L(L({brushBottom:v},g),{},{width:Math.max(x,0),height:Math.max(S,0)})},jZ=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},$A=function(t){var n=t.chartName,r=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,l=o===void 0?["axis"]:o,s=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,c=t.defaultProps,d=function(g,v){var x=v.graphicalItems,S=v.stackGroups,w=v.offset,_=v.updateId,O=v.dataStartIndex,j=v.dataEndIndex,P=g.barSize,k=g.layout,T=g.barGap,$=g.barCategoryGap,N=g.maxBarSize,M=iw(k),I=M.numericAxisName,R=M.cateAxisName,z=_Z(x),C=[];return x.forEach(function(D,B){var V=Gf(g.data,{graphicalItems:[D],dataStartIndex:O,dataEndIndex:j}),W=D.type.defaultProps!==void 0?L(L({},D.type.defaultProps),D.props):D.props,q=W.dataKey,ie=W.maxBarSize,_e=W["".concat(I,"Id")],Me=W["".concat(R,"Id")],Dt={},mt=s.reduce(function(Br,zr){var qf=v["".concat(zr.axisType,"Map")],Fm=W["".concat(zr.axisType,"Id")];qf&&qf[Fm]||zr.axisType==="zAxis"||hi();var Um=qf[Fm];return L(L({},Br),{},Q(Q({},zr.axisType,Um),"".concat(zr.axisType,"Ticks"),Dn(Um)))},Dt),K=mt[R],ee=mt["".concat(R,"Ticks")],ne=S&&S[_e]&&S[_e].hasStack&&kH(D,S[_e].stackGroups),F=zn(D.type).indexOf("Bar")>=0,ke=cc(K,ee),ae=[],Be=z&&mH({barSize:P,stackGroups:S,totalSize:jZ(mt,R)});if(F){var ze,gt,rr=te(ie)?N:ie,Pi=(ze=(gt=cc(K,ee,!0))!==null&>!==void 0?gt:rr)!==null&&ze!==void 0?ze:0;ae=gH({barGap:T,barCategoryGap:$,bandSize:Pi!==ke?Pi:ke,sizeList:Be[Me],maxBarSize:rr}),Pi!==ke&&(ae=ae.map(function(Br){return L(L({},Br),{},{position:L(L({},Br.position),{},{offset:Br.position.offset-Pi/2})})}))}var ys=D&&D.type&&D.type.getComposedData;ys&&C.push({props:L(L({},ys(L(L({},mt),{},{displayedData:V,props:g,dataKey:q,item:D,bandSize:ke,barPosition:ae,offset:w,stackedData:ne,layout:k,dataStartIndex:O,dataEndIndex:j}))),{},Q(Q(Q({key:D.key||"item-".concat(B)},I,mt[I]),R,mt[R]),"animationId",_)),childIndex:gM(D,g.children),item:D})}),C},h=function(g,v){var x=g.props,S=g.dataStartIndex,w=g.dataEndIndex,_=g.updateId;if(!b0({props:x}))return null;var O=x.children,j=x.layout,P=x.stackOffset,k=x.data,T=x.reverseStackOrder,$=iw(j),N=$.numericAxisName,M=$.cateAxisName,I=Gt(O,r),R=EH(k,I,"".concat(N,"Id"),"".concat(M,"Id"),P,T),z=s.reduce(function(W,q){var ie="".concat(q.axisType,"Map");return L(L({},W),{},Q({},ie,wZ(x,L(L({},q),{},{graphicalItems:I,stackGroups:q.axisType===N&&R,dataStartIndex:S,dataEndIndex:w}))))},{}),C=OZ(L(L({},z),{},{props:x,graphicalItems:I}),v==null?void 0:v.legendBBox);Object.keys(z).forEach(function(W){z[W]=f(x,z[W],C,W.replace("Map",""),n)});var D=z["".concat(M,"Map")],B=SZ(D),V=d(x,L(L({},z),{},{dataStartIndex:S,dataEndIndex:w,updateId:_,graphicalItems:I,stackGroups:R,offset:C}));return L(L({formattedGraphicalItems:V,graphicalItems:I,offset:C,stackGroups:R},B),z)},y=function(m){function g(v){var x,S,w;return iZ(this,g),w=lZ(this,g,[v]),Q(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Q(w,"accessibilityManager",new HQ),Q(w,"handleLegendBBoxUpdate",function(_){if(_){var O=w.state,j=O.dataStartIndex,P=O.dataEndIndex,k=O.updateId;w.setState(L({legendBBox:_},h({props:w.props,dataStartIndex:j,dataEndIndex:P,updateId:k},L(L({},w.state),{},{legendBBox:_}))))}}),Q(w,"handleReceiveSyncEvent",function(_,O,j){if(w.props.syncId===_){if(j===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(O)}}),Q(w,"handleBrushChange",function(_){var O=_.startIndex,j=_.endIndex;if(O!==w.state.dataStartIndex||j!==w.state.dataEndIndex){var P=w.state.updateId;w.setState(function(){return L({dataStartIndex:O,dataEndIndex:j},h({props:w.props,dataStartIndex:O,dataEndIndex:j,updateId:P},w.state))}),w.triggerSyncEvent({dataStartIndex:O,dataEndIndex:j})}}),Q(w,"handleMouseEnter",function(_){var O=w.getMouseInfo(_);if(O){var j=L(L({},O),{},{isTooltipActive:!0});w.setState(j),w.triggerSyncEvent(j);var P=w.props.onMouseEnter;Z(P)&&P(j,_)}}),Q(w,"triggeredAfterMouseMove",function(_){var O=w.getMouseInfo(_),j=O?L(L({},O),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(j),w.triggerSyncEvent(j);var P=w.props.onMouseMove;Z(P)&&P(j,_)}),Q(w,"handleItemMouseEnter",function(_){w.setState(function(){return{isTooltipActive:!0,activeItem:_,activePayload:_.tooltipPayload,activeCoordinate:_.tooltipPosition||{x:_.cx,y:_.cy}}})}),Q(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),Q(w,"handleMouseMove",function(_){_.persist(),w.throttleTriggeredAfterMouseMove(_)}),Q(w,"handleMouseLeave",function(_){w.throttleTriggeredAfterMouseMove.cancel();var O={isTooltipActive:!1};w.setState(O),w.triggerSyncEvent(O);var j=w.props.onMouseLeave;Z(j)&&j(O,_)}),Q(w,"handleOuterEvent",function(_){var O=mM(_),j=Kt(w.props,"".concat(O));if(O&&Z(j)){var P,k;/.*touch.*/i.test(O)?k=w.getMouseInfo(_.changedTouches[0]):k=w.getMouseInfo(_),j((P=k)!==null&&P!==void 0?P:{},_)}}),Q(w,"handleClick",function(_){var O=w.getMouseInfo(_);if(O){var j=L(L({},O),{},{isTooltipActive:!0});w.setState(j),w.triggerSyncEvent(j);var P=w.props.onClick;Z(P)&&P(j,_)}}),Q(w,"handleMouseDown",function(_){var O=w.props.onMouseDown;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"handleMouseUp",function(_){var O=w.props.onMouseUp;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"handleTouchMove",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(_.changedTouches[0])}),Q(w,"handleTouchStart",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&w.handleMouseDown(_.changedTouches[0])}),Q(w,"handleTouchEnd",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&w.handleMouseUp(_.changedTouches[0])}),Q(w,"handleDoubleClick",function(_){var O=w.props.onDoubleClick;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"handleContextMenu",function(_){var O=w.props.onContextMenu;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"triggerSyncEvent",function(_){w.props.syncId!==void 0&&qd.emit(Qd,w.props.syncId,_,w.eventEmitterSymbol)}),Q(w,"applySyncEvent",function(_){var O=w.props,j=O.layout,P=O.syncMethod,k=w.state.updateId,T=_.dataStartIndex,$=_.dataEndIndex;if(_.dataStartIndex!==void 0||_.dataEndIndex!==void 0)w.setState(L({dataStartIndex:T,dataEndIndex:$},h({props:w.props,dataStartIndex:T,dataEndIndex:$,updateId:k},w.state)));else if(_.activeTooltipIndex!==void 0){var N=_.chartX,M=_.chartY,I=_.activeTooltipIndex,R=w.state,z=R.offset,C=R.tooltipTicks;if(!z)return;if(typeof P=="function")I=P(C,_);else if(P==="value"){I=-1;for(var D=0;D<C.length;D++)if(C[D].value===_.activeLabel){I=D;break}}var B=L(L({},z),{},{x:z.left,y:z.top}),V=Math.min(N,B.x+B.width),W=Math.min(M,B.y+B.height),q=C[I]&&C[I].value,ie=Av(w.state,w.props.data,I),_e=C[I]?{x:j==="horizontal"?C[I].coordinate:V,y:j==="horizontal"?W:C[I].coordinate}:AA;w.setState(L(L({},_),{},{activeLabel:q,activeCoordinate:_e,activePayload:ie,activeTooltipIndex:I}))}else w.setState(_)}),Q(w,"renderCursor",function(_){var O,j=w.state,P=j.isTooltipActive,k=j.activeCoordinate,T=j.activePayload,$=j.offset,N=j.activeTooltipIndex,M=j.tooltipAxisBandSize,I=w.getTooltipEventType(),R=(O=_.props.active)!==null&&O!==void 0?O:P,z=w.props.layout,C=_.key||"_recharts-cursor";return E.createElement(QQ,{key:C,activeCoordinate:k,activePayload:T,activeTooltipIndex:N,chartName:n,element:_,isActive:R,layout:z,offset:$,tooltipAxisBandSize:M,tooltipEventType:I})}),Q(w,"renderPolarAxis",function(_,O,j){var P=Kt(_,"type.axisType"),k=Kt(w.state,"".concat(P,"Map")),T=_.type.defaultProps,$=T!==void 0?L(L({},T),_.props):_.props,N=k&&k[$["".concat(P,"Id")]];return A.cloneElement(_,L(L({},N),{},{className:J(P,N.className),key:_.key||"".concat(O,"-").concat(j),ticks:Dn(N,!0)}))}),Q(w,"renderPolarGrid",function(_){var O=_.props,j=O.radialLines,P=O.polarAngles,k=O.polarRadius,T=w.state,$=T.radiusAxisMap,N=T.angleAxisMap,M=dr($),I=dr(N),R=I.cx,z=I.cy,C=I.innerRadius,D=I.outerRadius;return A.cloneElement(_,{polarAngles:Array.isArray(P)?P:Dn(I,!0).map(function(B){return B.coordinate}),polarRadius:Array.isArray(k)?k:Dn(M,!0).map(function(B){return B.coordinate}),cx:R,cy:z,innerRadius:C,outerRadius:D,key:_.key||"polar-grid",radialLines:j})}),Q(w,"renderLegend",function(){var _=w.state.formattedGraphicalItems,O=w.props,j=O.children,P=O.width,k=O.height,T=w.props.margin||{},$=P-(T.left||0)-(T.right||0),N=iP({children:j,formattedGraphicalItems:_,legendWidth:$,legendContent:u});if(!N)return null;var M=N.item,I=ew(N,ZQ);return A.cloneElement(M,L(L({},I),{},{chartWidth:P,chartHeight:k,margin:T,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),Q(w,"renderTooltip",function(){var _,O=w.props,j=O.children,P=O.accessibilityLayer,k=$t(j,kt);if(!k)return null;var T=w.state,$=T.isTooltipActive,N=T.activeCoordinate,M=T.activePayload,I=T.activeLabel,R=T.offset,z=(_=k.props.active)!==null&&_!==void 0?_:$;return A.cloneElement(k,{viewBox:L(L({},R),{},{x:R.left,y:R.top}),active:z,label:I,payload:z?M:[],coordinate:N,accessibilityLayer:P})}),Q(w,"renderBrush",function(_){var O=w.props,j=O.margin,P=O.data,k=w.state,T=k.offset,$=k.dataStartIndex,N=k.dataEndIndex,M=k.updateId;return A.cloneElement(_,{key:_.key||"_recharts-brush",onChange:Ws(w.handleBrushChange,_.props.onChange),data:P,x:H(_.props.x)?_.props.x:T.left,y:H(_.props.y)?_.props.y:T.top+T.height+T.brushBottom-(j.bottom||0),width:H(_.props.width)?_.props.width:T.width,startIndex:$,endIndex:N,updateId:"brush-".concat(M)})}),Q(w,"renderReferenceElement",function(_,O,j){if(!_)return null;var P=w,k=P.clipPathId,T=w.state,$=T.xAxisMap,N=T.yAxisMap,M=T.offset,I=_.type.defaultProps||{},R=_.props,z=R.xAxisId,C=z===void 0?I.xAxisId:z,D=R.yAxisId,B=D===void 0?I.yAxisId:D;return A.cloneElement(_,{key:_.key||"".concat(O,"-").concat(j),xAxis:$[C],yAxis:N[B],viewBox:{x:M.left,y:M.top,width:M.width,height:M.height},clipPathId:k})}),Q(w,"renderActivePoints",function(_){var O=_.item,j=_.activePoint,P=_.basePoint,k=_.childIndex,T=_.isRange,$=[],N=O.props.key,M=O.item.type.defaultProps!==void 0?L(L({},O.item.type.defaultProps),O.item.props):O.item.props,I=M.activeDot,R=M.dataKey,z=L(L({index:k,dataKey:R,cx:j.x,cy:j.y,r:4,fill:jm(O.item),strokeWidth:2,stroke:"#fff",payload:j.payload,value:j.value},Y(I,!1)),Lu(I));return $.push(g.renderActiveDot(I,z,"".concat(N,"-activePoint-").concat(k))),P?$.push(g.renderActiveDot(I,L(L({},z),{},{cx:P.x,cy:P.y}),"".concat(N,"-basePoint-").concat(k))):T&&$.push(null),$}),Q(w,"renderGraphicChild",function(_,O,j){var P=w.filterFormatItem(_,O,j);if(!P)return null;var k=w.getTooltipEventType(),T=w.state,$=T.isTooltipActive,N=T.tooltipAxis,M=T.activeTooltipIndex,I=T.activeLabel,R=w.props.children,z=$t(R,kt),C=P.props,D=C.points,B=C.isRange,V=C.baseLine,W=P.item.type.defaultProps!==void 0?L(L({},P.item.type.defaultProps),P.item.props):P.item.props,q=W.activeDot,ie=W.hide,_e=W.activeBar,Me=W.activeShape,Dt=!!(!ie&&$&&z&&(q||_e||Me)),mt={};k!=="axis"&&z&&z.props.trigger==="click"?mt={onClick:Ws(w.handleItemMouseEnter,_.props.onClick)}:k!=="axis"&&(mt={onMouseLeave:Ws(w.handleItemMouseLeave,_.props.onMouseLeave),onMouseEnter:Ws(w.handleItemMouseEnter,_.props.onMouseEnter)});var K=A.cloneElement(_,L(L({},P.props),mt));function ee(zr){return typeof N.dataKey=="function"?N.dataKey(zr.payload):null}if(Dt)if(M>=0){var ne,F;if(N.dataKey&&!N.allowDuplicatedCategory){var ke=typeof N.dataKey=="function"?ee:"payload.".concat(N.dataKey.toString());ne=Iu(D,ke,I),F=B&&V&&Iu(V,ke,I)}else ne=D==null?void 0:D[M],F=B&&V&&V[M];if(Me||_e){var ae=_.props.activeIndex!==void 0?_.props.activeIndex:M;return[A.cloneElement(_,L(L(L({},P.props),mt),{},{activeIndex:ae})),null,null]}if(!te(ne))return[K].concat(Fa(w.renderActivePoints({item:P,activePoint:ne,basePoint:F,childIndex:M,isRange:B})))}else{var Be,ze=(Be=w.getItemByXY(w.state.activeCoordinate))!==null&&Be!==void 0?Be:{graphicalItem:K},gt=ze.graphicalItem,rr=gt.item,Pi=rr===void 0?_:rr,ys=gt.childIndex,Br=L(L(L({},P.props),mt),{},{activeIndex:ys});return[A.cloneElement(Pi,Br),null,null]}return B?[K,null,null]:[K,null]}),Q(w,"renderCustomized",function(_,O,j){return A.cloneElement(_,L(L({key:"recharts-customized-".concat(j)},w.props),w.state))}),Q(w,"renderMap",{CartesianGrid:{handler:Xs,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:Xs},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:Xs},YAxis:{handler:Xs},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((x=v.id)!==null&&x!==void 0?x:rs("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=rj(w.triggeredAfterMouseMove,(S=v.throttleDelay)!==null&&S!==void 0?S:1e3/60),w.state={},w}return cZ(g,m),oZ(g,[{key:"componentDidMount",value:function(){var x,S;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(x=this.props.margin.left)!==null&&x!==void 0?x:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var x=this.props,S=x.children,w=x.data,_=x.height,O=x.layout,j=$t(S,kt);if(j){var P=j.props.defaultIndex;if(!(typeof P!="number"||P<0||P>this.state.tooltipTicks.length-1)){var k=this.state.tooltipTicks[P]&&this.state.tooltipTicks[P].value,T=Av(this.state,w,P,k),$=this.state.tooltipTicks[P].coordinate,N=(this.state.offset.top+_)/2,M=O==="horizontal",I=M?{x:$,y:N}:{y:$,x:N},R=this.state.formattedGraphicalItems.find(function(C){var D=C.item;return D.type.name==="Scatter"});R&&(I=L(L({},I),R.props.points[P].tooltipPosition),T=R.props.points[P].tooltipPayload);var z={activeTooltipIndex:P,isTooltipActive:!0,activeLabel:k,activePayload:T,activeCoordinate:I};this.setState(z),this.renderCursor(j),this.accessibilityManager.setIndex(P)}}}},{key:"getSnapshotBeforeUpdate",value:function(x,S){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==S.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==x.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==x.margin){var w,_;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(_=this.props.margin.top)!==null&&_!==void 0?_:0}})}return null}},{key:"componentDidUpdate",value:function(x){th([$t(x.children,kt)],[$t(this.props.children,kt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var x=$t(this.props.children,kt);if(x&&typeof x.props.shared=="boolean"){var S=x.props.shared?"axis":"item";return l.indexOf(S)>=0?S:a}return a}},{key:"getMouseInfo",value:function(x){if(!this.container)return null;var S=this.container,w=S.getBoundingClientRect(),_=H8(w),O={chartX:Math.round(x.pageX-_.left),chartY:Math.round(x.pageY-_.top)},j=w.width/S.offsetWidth||1,P=this.inRange(O.chartX,O.chartY,j);if(!P)return null;var k=this.state,T=k.xAxisMap,$=k.yAxisMap,N=this.getTooltipEventType(),M=nw(this.state,this.props.data,this.props.layout,P);if(N!=="axis"&&T&&$){var I=dr(T).scale,R=dr($).scale,z=I&&I.invert?I.invert(O.chartX):null,C=R&&R.invert?R.invert(O.chartY):null;return L(L({},O),{},{xValue:z,yValue:C},M)}return M?L(L({},O),M):null}},{key:"inRange",value:function(x,S){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,_=this.props.layout,O=x/w,j=S/w;if(_==="horizontal"||_==="vertical"){var P=this.state.offset,k=O>=P.left&&O<=P.left+P.width&&j>=P.top&&j<=P.top+P.height;return k?{x:O,y:j}:null}var T=this.state,$=T.angleAxisMap,N=T.radiusAxisMap;if($&&N){var M=dr($);return $x({x:O,y:j},M)}return null}},{key:"parseEventsOfWrapper",value:function(){var x=this.props.children,S=this.getTooltipEventType(),w=$t(x,kt),_={};w&&S==="axis"&&(w.props.trigger==="click"?_={onClick:this.handleClick}:_={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var O=Lu(this.props,this.handleOuterEvent);return L(L({},O),_)}},{key:"addListener",value:function(){qd.on(Qd,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){qd.removeListener(Qd,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(x,S,w){for(var _=this.state.formattedGraphicalItems,O=0,j=_.length;O<j;O++){var P=_[O];if(P.item===x||P.props.key===x.key||S===zn(P.item.type)&&w===P.childIndex)return P}return null}},{key:"renderClipPath",value:function(){var x=this.clipPathId,S=this.state.offset,w=S.left,_=S.top,O=S.height,j=S.width;return E.createElement("defs",null,E.createElement("clipPath",{id:x},E.createElement("rect",{x:w,y:_,height:O,width:j})))}},{key:"getXScales",value:function(){var x=this.state.xAxisMap;return x?Object.entries(x).reduce(function(S,w){var _=J1(w,2),O=_[0],j=_[1];return L(L({},S),{},Q({},O,j.scale))},{}):null}},{key:"getYScales",value:function(){var x=this.state.yAxisMap;return x?Object.entries(x).reduce(function(S,w){var _=J1(w,2),O=_[0],j=_[1];return L(L({},S),{},Q({},O,j.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(x){var S;return(S=this.state.xAxisMap)===null||S===void 0||(S=S[x])===null||S===void 0?void 0:S.scale}},{key:"getYScaleByAxisId",value:function(x){var S;return(S=this.state.yAxisMap)===null||S===void 0||(S=S[x])===null||S===void 0?void 0:S.scale}},{key:"getItemByXY",value:function(x){var S=this.state,w=S.formattedGraphicalItems,_=S.activeItem;if(w&&w.length)for(var O=0,j=w.length;O<j;O++){var P=w[O],k=P.props,T=P.item,$=T.type.defaultProps!==void 0?L(L({},T.type.defaultProps),T.props):T.props,N=zn(T.type);if(N==="Bar"){var M=(k.data||[]).find(function(C){return kV(x,C)});if(M)return{graphicalItem:P,payload:M}}else if(N==="RadialBar"){var I=(k.data||[]).find(function(C){return $x(x,C)});if(I)return{graphicalItem:P,payload:I}}else if(zf(P,_)||Ff(P,_)||zl(P,_)){var R=$G({graphicalItem:P,activeTooltipItem:_,itemData:$.data}),z=$.activeIndex===void 0?R:$.activeIndex;return{graphicalItem:L(L({},P),{},{childIndex:z}),payload:zl(P,_)?$.data[R]:P.props.data[R]}}}return null}},{key:"render",value:function(){var x=this;if(!b0(this))return null;var S=this.props,w=S.children,_=S.className,O=S.width,j=S.height,P=S.style,k=S.compact,T=S.title,$=S.desc,N=ew(S,JQ),M=Y(N,!1);if(k)return E.createElement(I1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},E.createElement(rh,Xi({},M,{width:O,height:j,title:T,desc:$}),this.renderClipPath(),w0(w,this.renderMap)));if(this.props.accessibilityLayer){var I,R;M.tabIndex=(I=this.props.tabIndex)!==null&&I!==void 0?I:0,M.role=(R=this.props.role)!==null&&R!==void 0?R:"application",M.onKeyDown=function(C){x.accessibilityManager.keyboardEvent(C)},M.onFocus=function(){x.accessibilityManager.focus()}}var z=this.parseEventsOfWrapper();return E.createElement(I1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},E.createElement("div",Xi({className:J("recharts-wrapper",_),style:L({position:"relative",cursor:"default",width:O,height:j},P)},z,{ref:function(D){x.container=D}}),E.createElement(rh,Xi({},M,{width:O,height:j,title:T,desc:$,style:yZ}),this.renderClipPath(),w0(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(A.Component);Q(y,"displayName",n),Q(y,"defaultProps",L({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},c)),Q(y,"getDerivedStateFromProps",function(m,g){var v=m.dataKey,x=m.data,S=m.children,w=m.width,_=m.height,O=m.layout,j=m.stackOffset,P=m.margin,k=g.dataStartIndex,T=g.dataEndIndex;if(g.updateId===void 0){var $=rw(m);return L(L(L({},$),{},{updateId:0},h(L(L({props:m},$),{},{updateId:0}),g)),{},{prevDataKey:v,prevData:x,prevWidth:w,prevHeight:_,prevLayout:O,prevStackOffset:j,prevMargin:P,prevChildren:S})}if(v!==g.prevDataKey||x!==g.prevData||w!==g.prevWidth||_!==g.prevHeight||O!==g.prevLayout||j!==g.prevStackOffset||!na(P,g.prevMargin)){var N=rw(m),M={chartX:g.chartX,chartY:g.chartY,isTooltipActive:g.isTooltipActive},I=L(L({},nw(g,x,O)),{},{updateId:g.updateId+1}),R=L(L(L({},N),M),I);return L(L(L({},R),h(L({props:m},R),g)),{},{prevDataKey:v,prevData:x,prevWidth:w,prevHeight:_,prevLayout:O,prevStackOffset:j,prevMargin:P,prevChildren:S})}if(!th(S,g.prevChildren)){var z,C,D,B,V=$t(S,Ta),W=V&&(z=(C=V.props)===null||C===void 0?void 0:C.startIndex)!==null&&z!==void 0?z:k,q=V&&(D=(B=V.props)===null||B===void 0?void 0:B.endIndex)!==null&&D!==void 0?D:T,ie=W!==k||q!==T,_e=!te(x),Me=_e&&!ie?g.updateId:g.updateId+1;return L(L({updateId:Me},h(L(L({props:m},g),{},{updateId:Me,dataStartIndex:W,dataEndIndex:q}),g)),{},{prevChildren:S,dataStartIndex:W,dataEndIndex:q})}return null}),Q(y,"renderActiveDot",function(m,g,v){var x;return A.isValidElement(m)?x=A.cloneElement(m,g):Z(m)?x=m(g):x=E.createElement(fs,g),E.createElement(ue,{className:"recharts-active-dot",key:v},x)});var b=A.forwardRef(function(g,v){return E.createElement(y,Xi({},g,{ref:v}))});return b.displayName=y.displayName,b},Rc=$A({chartName:"LineChart",GraphicalChild:$r,axisComponents:[{axisType:"xAxis",AxisComp:yi},{axisType:"yAxis",AxisComp:mi}],formatAxisMap:hY}),PZ=$A({chartName:"RadarChart",GraphicalChild:$a,axisComponents:[{axisType:"angleAxis",AxisComp:ps},{axisType:"radiusAxis",AxisComp:ds}],formatAxisMap:FH,defaultProps:{layout:"centric",startAngle:90,endAngle:-270,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}});function kA({title:e,subtitle:t,loading:n,empty:r,children:i,hideTitle:a}){return p.jsxs("div",{children:[!a&&e&&p.jsxs("div",{style:{marginBottom:10},children:[p.jsx("div",{style:{fontWeight:600,fontSize:15},children:e}),t&&p.jsx("div",{style:{fontSize:12.5,color:"var(--ink-mute)",marginTop:2},children:t})]}),n?p.jsx("div",{style:{height:260,display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,color:"var(--ink-faint)"},children:"加载中…"}):r?p.jsx("div",{style:{height:260,display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,color:"var(--ink-faint)"},children:"暂无数据"}):i]})}const aw={H1:"问题定义",H2:"判断决策",H3:"系统思维",ENV:"环境诊断",O1:"输出质量"};function AZ({current:e,baseline:t,title:n="能力雷达",hideTitle:r}){const i=e&&Object.values(e).some(o=>o!=null),a=Object.keys(aw).map(o=>({dimension:aw[o],current:(e==null?void 0:e[o])??0,baseline:(t==null?void 0:t[o])??0}));return p.jsx(kA,{title:n,empty:!i,hideTitle:r,children:p.jsx(hl,{width:"100%",height:340,children:p.jsxs(PZ,{data:a,cx:"50%",cy:"50%",outerRadius:"72%",children:[p.jsx(TP,{stroke:"#E4E4E7"}),p.jsx(ps,{dataKey:"dimension",tick:{fontSize:12,fill:"#3F3F46"}}),p.jsx(ds,{angle:90,domain:[0,100],tick:{fontSize:10,fill:"#A1A1AA",fontFamily:"Geist Mono"},stroke:"#E4E4E7",axisLine:!1}),p.jsx($a,{name:"当前",dataKey:"current",stroke:"#2563EB",fill:"#2563EB",fillOpacity:.16,strokeWidth:2}),t&&p.jsx($a,{name:"基线",dataKey:"baseline",stroke:"#A1A1AA",fill:"none",strokeWidth:1.5,strokeDasharray:"4 4"}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"})]})})})}const EZ={done:"已评分",pending:"待分析",error:"错误"},$Z={done:"chip--accent",pending:"",error:"chip--bad"},kZ=e=>e==null?"":e>=75?"s-hi":e>=50?"s-md":"s-lo";function TZ(e){const n=["scoreH1","scoreH2","scoreH3","scoreEnv","scoreO1"].map(r=>e[r]).filter(r=>r!=null);return n.length?Math.round(n.reduce((r,i)=>r+i,0)/n.length):null}const TA=["周日","周一","周二","周三","周四","周五","周六"];function Ev(e){if(!e)return"(无日期)";try{const t=new Date(e+"T00:00:00");return`${e} · ${TA[t.getDay()]}`}catch{return e}}function CZ(e){if(!e)return"无日期";try{const t=new Date(e+"T00:00:00");return`${e.slice(5).replace("-","/")} · ${TA[t.getDay()]}`}catch{return e}}function CA(e){const t=new Map;for(const r of e){const i=r.date||"";t.has(i)||t.set(i,[]),t.get(i).push(r)}const n=[];for(const[r,i]of t){const a=i.reduce((l,s)=>l+(s.cost||0),0),o=i.reduce((l,s)=>l+(s.duration||0),0);n.push({date:r,sessions:i,totals:{count:i.length,cost:a,duration:o}})}return n.sort((r,i)=>r.date?i.date&&r.date<i.date?1:-1:1),n}function NA({sessions:e=[],onSessionClick:t,groupByDate:n=!1,layout:r}){const i=r||(n?"grouped":"flat");if(!e||e.length===0)return p.jsx("div",{className:"panel",style:{padding:40,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:"这个时间段还没有会话"});if(i==="tabs")return p.jsx(NZ,{sessions:e,onSessionClick:t});if(i==="grouped"){const a=CA(e);return p.jsx("div",{className:"session-groups",children:a.map(o=>p.jsxs("section",{className:"session-group",children:[p.jsxs("header",{className:"session-group__head",children:[p.jsx("div",{className:"session-group__date",children:Ev(o.date)}),p.jsxs("div",{className:"session-group__totals",children:[p.jsxs("span",{children:[o.totals.count," 个会话"]}),p.jsx("span",{className:"session-group__sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:["$",o.totals.cost.toFixed(2)]}),p.jsx("span",{className:"session-group__sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:[o.totals.duration," 分钟"]})]})]}),p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsx($v,{sessions:o.sessions,onSessionClick:t})})]},o.date||"__nodate__"))})}return p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsx($v,{sessions:e,onSessionClick:t})})}function NZ({sessions:e,onSessionClick:t}){var l;const n=A.useMemo(()=>CA(e),[e]),[r,i]=A.useState(((l=n[0])==null?void 0:l.date)||""),a=n.find(s=>(s.date||"")===r)||n[0],o=s=>{if(s.key!=="ArrowLeft"&&s.key!=="ArrowRight")return;s.preventDefault();const u=n.findIndex(c=>(c.date||"")===r),f=s.key==="ArrowRight"?Math.min(n.length-1,u+1):Math.max(0,u-1);i(n[f].date||"")};return p.jsxs("div",{className:"day-tabs",children:[p.jsx("div",{className:"day-tabs__bar",role:"tablist","aria-label":"按天查看会话",onKeyDown:o,children:n.map(s=>{const u=s.date||"__nodate__",f=(s.date||"")===r;return p.jsxs("button",{role:"tab",type:"button","aria-selected":f,tabIndex:f?0:-1,className:`day-tab ${f?"day-tab--active":""}`,onClick:()=>i(s.date||""),children:[p.jsx("span",{className:"day-tab__date",children:CZ(s.date)}),p.jsx("span",{className:"day-tab__count",children:s.totals.count})]},u)})}),a&&p.jsxs("div",{className:"day-tabs__panel",role:"tabpanel","aria-label":`${Ev(a.date)} 的会话`,children:[p.jsxs("div",{className:"day-tabs__meta",children:[p.jsx("span",{className:"day-tabs__meta-strong",children:Ev(a.date)}),p.jsx("span",{className:"day-tabs__meta-sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:[a.totals.count," 个会话"]}),p.jsx("span",{className:"day-tabs__meta-sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:["$",a.totals.cost.toFixed(2)]}),p.jsx("span",{className:"day-tabs__meta-sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:[a.totals.duration," 分钟"]})]}),p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsx($v,{sessions:a.sessions,onSessionClick:t})})]})]})}function $v({sessions:e,onSessionClick:t}){return p.jsxs("table",{className:"tbl",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"会话"}),p.jsx("th",{className:"num",style:{width:100},children:"费用"}),p.jsx("th",{className:"num",style:{width:90},children:"时长"}),p.jsx("th",{className:"num",style:{width:90},children:"综合分"}),p.jsx("th",{style:{width:100},children:"状态"})]})}),p.jsx("tbody",{children:e.map(n=>{const r=TZ(n);return p.jsxs("tr",{className:"click",onClick:()=>t==null?void 0:t(n.id),children:[p.jsx("td",{children:p.jsxs("div",{className:"title",children:[n.title||"(未命名)",p.jsxs("small",{children:[n.source,n.model?` · ${n.model}`:""]})]})}),p.jsxs("td",{className:"num",children:["$",(n.cost??0).toFixed(2)]}),p.jsxs("td",{className:"num",children:[n.duration??0," 分钟"]}),p.jsx("td",{className:"num",children:p.jsx("span",{className:`score ${kZ(r)}`,children:r??"-"})}),p.jsx("td",{children:p.jsx("span",{className:`chip ${$Z[n.status]||""}`,children:EZ[n.status]||n.status})})]},n.id)})})]})}function Lm({rows:e=[],emptyText:t="这个时间段还没有带项目信息的会话"}){const n=xi();return e.length?p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsxs("table",{className:"tbl",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"项目"}),p.jsx("th",{className:"num",style:{width:80},children:"会话"}),p.jsx("th",{className:"num",style:{width:110},children:"费用"})]})}),p.jsx("tbody",{children:e.map(r=>p.jsxs("tr",{className:"click",onClick:()=>n(`/project/${encodeURIComponent(r.project)}`),children:[p.jsx("td",{children:p.jsxs("div",{className:"title",title:r.project,children:[MZ(r.project),p.jsx("small",{children:r.project})]})}),p.jsx("td",{className:"num",children:r.sessions}),p.jsxs("td",{className:"num",children:["$",(r.cost??0).toFixed(2)]})]},r.project))})]})}):p.jsx("div",{style:{padding:32,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:t})}function MZ(e){if(!e)return"";const t=String(e).split(/[\\/]/).filter(Boolean),n=t[t.length-1]||e;return n.length>32?n.slice(0,30)+"…":n}function MA(e,t=5e3){const[n,r]=A.useState(null),[i,a]=A.useState(!0),[o,l]=A.useState(null);return A.useEffect(()=>{let s=!1,u=null,f=!1;r(null),a(!0),l(null);const c=()=>{u=setTimeout(d,t)},d=()=>{fetch(e).then(h=>{if(!h.ok)throw new Error(`HTTP ${h.status}`);return h.json()}).then(h=>{var b,m;if(!h.ok)throw new Error(((b=h.error)==null?void 0:b.message)||"unknown error");if(s)return;f=!0,r(h.data),l(null),a(!1);const y=(m=h.data)==null?void 0:m.analysisStatus;y&&y.analyzedCount<y.totalCount&&c()}).catch(h=>{s||(f?c():(l(h.message),a(!1)))})};return d(),()=>{s=!0,u&&clearTimeout(u)}},[e,t]),{data:n,loading:i,error:o}}function IZ(){const e=xi(),{data:t,loading:n,error:r}=MA("/api/reports/yesterday");if(n)return p.jsx(qe,{title:"昨日复盘",children:p.jsx("p",{className:"state state-blink",children:"正在加载数据"})});if(r)return p.jsx(qe,{title:"昨日复盘",children:p.jsx("p",{className:"state err",children:r})});if(!t)return null;const{date:i,stats:a,dimensionsV2:o,sessions:l,topProjects:s,analysisStatus:u}=t,f=u&&u.analyzedCount<u.totalCount,c=u&&u.status==="running";return p.jsxs("article",{children:[p.jsx(qe,{title:"昨日复盘",meta:p.jsxs(p.Fragment,{children:[p.jsx("b",{children:i})," · 周",DZ(i),p.jsx(LZ,{running:c,date:i})]})}),f&&p.jsx(Dm,{children:u.status==="running"?`分析进行中 — 已评分 ${u.analyzedCount} / ${u.totalCount} 个会话`:`${u.totalCount-u.analyzedCount} 个会话尚未分析 — 分析任务空闲,重启服务或手动触发可补全`}),p.jsxs("div",{className:"hero",children:[p.jsxs("div",{className:"hero__main",children:[p.jsx("div",{className:"hero__label",children:"昨日总支出"}),p.jsxs("div",{className:"hero__big",children:["$",(a.cost||0).toFixed(2),p.jsx("span",{className:"u",children:"USD"})]}),p.jsxs("div",{className:"hero__sub",children:[p.jsx("b",{children:a.sessions})," 个会话 · ",p.jsx("b",{children:a.activeMinutes})," 分钟活跃 · ",p.jsx("b",{children:Rn(a.totalTokens)})," tokens"]})]}),p.jsxs("div",{className:"hero__side",children:[p.jsx(Hn,{name:"均价 / 会话",v:`$${(a.avgCost??0).toFixed(2)}`}),p.jsx(Hn,{name:"错误 / 会话",v:`${a.avgErrors??0}`}),p.jsx(Hn,{name:"Tokens / 会话",v:Rn(a.avgTokens??0)})]})]}),p.jsxs("div",{className:"stats",children:[p.jsx(Oe,{label:"会话",value:a.sessions,delta:`均 ${a.avgActiveMinutes??0} 分钟`}),p.jsx(Oe,{label:"活跃时长",value:a.activeMinutes,unit:"分钟"}),p.jsx(Oe,{label:"Tokens",value:Rn(a.totalTokens),delta:`均 ${Rn(a.avgTokens??0)}`}),p.jsx(Oe,{label:"错误",value:a.errors,delta:`均 ${a.avgErrors??0} / 会话`})]}),p.jsx(we,{title:"能力诊断",children:p.jsx(IA,{dimensionsV2:o})}),p.jsx(we,{title:"Top 项目",meta:"按昨日费用降序 · 点击查看项目 AI 分析",children:p.jsx(Lm,{rows:s||[],emptyText:"昨日没有带项目信息的会话"})}),p.jsx(we,{title:"会话列表",meta:`${(l||[]).length} 个会话`,children:p.jsx(NA,{sessions:l,onSessionClick:d=>e(`/session/${d}`)})}),p.jsx(vs,{date:i})]})}function qe({title:e,meta:t,children:n}){return p.jsxs(p.Fragment,{children:[p.jsxs("header",{className:"phead",children:[p.jsx("h1",{className:"phead__title",children:e}),t&&p.jsx("div",{className:"phead__meta",children:t})]}),n]})}function we({title:e,meta:t,actions:n,children:r,collapsible:i=!1,defaultOpen:a=!1}){const[o,l]=A.useState(i?a:!0);return p.jsxs("section",{className:"section",children:[p.jsxs("header",{className:"section__head"+(i?" section__head--toggle":""),onClick:i?()=>l(s=>!s):void 0,role:i?"button":void 0,"aria-expanded":i?o:void 0,children:[p.jsxs("h2",{className:"section__title",children:[i&&p.jsx("span",{className:"section__caret",children:o?"▾":"▸"}),e]}),p.jsxs("span",{className:"section__meta",onClick:s=>s.stopPropagation(),children:[t,n]})]}),(!i||o)&&r]})}function IA({dimensionsV2:e}){const t=(e==null?void 0:e.current)&&Object.values(e.current).some(n=>n!=null);return p.jsx(jn,{title:"能力雷达",tag:"v2 模型",children:t?p.jsx(AZ,{current:e.current,baseline:e.baseline,hideTitle:!0}):p.jsx("div",{style:{padding:32,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:"区间内还没有可用的能力分析结果"})})}function Oe({label:e,value:t,unit:n,delta:r}){return p.jsxs("div",{className:"stat",children:[p.jsx("div",{className:"stat__label",children:e}),p.jsxs("div",{className:"stat__val",children:[t,n&&p.jsx("span",{className:"u",children:n})]}),r&&p.jsx("div",{className:"stat__delta",children:r})]})}function jn({title:e,tag:t,children:n,style:r}){return p.jsxs("div",{className:"panel",style:r,children:[(e||t)&&p.jsxs("div",{className:"panel__head",children:[p.jsx("span",{className:"panel__title",children:e}),t&&p.jsx("span",{className:"panel__tag",children:t})]}),n]})}function Hn({name:e,v:t,hint:n}){return p.jsxs("div",{className:"dial",children:[p.jsx("div",{className:"dial__name",children:e}),p.jsx("div",{className:"dial__val",children:t}),n&&p.jsx("div",{className:"dial__hint",children:n})]})}function Dm({children:e}){return p.jsx("div",{className:"alert",children:e})}function LZ({running:e,date:t}){const[n,r]=A.useState(!1),[i,a]=A.useState(null),o=n||e||!t;async function l(){var s;if(!o&&window.confirm(`将强制重新分析 ${t} 的全部会话,确定?`)){r(!0),a(null);try{const u=await fetch("/api/analysis/trigger",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({force:!0,dates:[t]})}),f=await u.json();if(!u.ok||f.ok===!1)throw new Error(((s=f==null?void 0:f.error)==null?void 0:s.message)||`HTTP ${u.status}`);a("已触发")}catch(u){a(`失败: ${u.message}`)}finally{r(!1),setTimeout(()=>a(null),3e3)}}}return p.jsxs(p.Fragment,{children:[" · ",p.jsx("button",{type:"button",className:"btn btn--ghost",style:{padding:"4px 12px",fontSize:"12px"},onClick:l,disabled:o,title:"强制重跑昨日 + 今日的分析(测试用)",children:e?"分析中…":n?"触发中…":"重新分析"}),i&&p.jsx("span",{style:{marginLeft:8,fontSize:12,color:"var(--mute)"},children:i})]})}function vs(){return p.jsxs("footer",{className:"footer",children:[p.jsx("span",{className:"mark",children:"Agent Boss"}),p.jsx("span",{children:"数据仅保存在本地"})]})}function Rn(e){if(e==null)return"0";const t=Number(e);return Math.abs(t)>=1e6?(t/1e6).toFixed(1)+"M":Math.abs(t)>=1e3?(t/1e3).toFixed(1)+"k":String(t)}function DZ(e){if(!e)return"";try{const t=new Date(e+"T00:00:00");return["日","一","二","三","四","五","六"][t.getDay()]}catch{return""}}const kv=[{key:"cost",label:"费用",kind:"multiLine",keySuffix:"cost",yFmt:e=>`$${Rn(e)}`,tipFmt:e=>`$${(+e).toFixed(2)}`},{key:"sessions",label:"会话数",kind:"multiLine",keySuffix:"sessions",yFmt:e=>String(e),tipFmt:e=>`${e} 个`},{key:"hitRate",label:"缓存命中率",kind:"singleLine",dataKey:"hitRate",color:"#10B981",yFmt:e=>`${e}%`,tipFmt:e=>`${e}%`,yDomain:[0,100]},{key:"errorRate",label:"错误率",kind:"singleLine",dataKey:"errorRate",color:"#EF4444",yFmt:e=>`${e}%`,tipFmt:e=>`${e}%`},{key:"all",label:"全部",kind:"normalized",series:[{key:"cost",label:"费用",color:"#2563EB",sumFromSources:"cost",tipFmt:e=>`$${(+e).toFixed(2)}`},{key:"sessions",label:"会话数",color:"#A855F7",sumFromSources:"sessions",tipFmt:e=>`${e} 个`},{key:"hitRate",label:"缓存命中率",color:"#10B981",dataKey:"hitRate",tipFmt:e=>`${e}%`},{key:"errorRate",label:"错误率",color:"#EF4444",dataKey:"errorRate",tipFmt:e=>`${e}%`}]}],RZ={opencode:"#2563EB","claude-code":"#10B981"},ow=["#F59E0B","#A855F7","#EC4899","#14B8A6"],LA={opencode:"OpenCode","claude-code":"Claude Code"},BZ=[{key:"7",label:"本周",hint:"7 天"},{key:"14",label:"双周",hint:"14 天"},{key:"30",label:"本月",hint:"30 天"},{key:"90",label:"季度",hint:"90 天"},{key:"all",label:"全部",hint:"全部"}],zZ="14",Yi={fontSize:11,fill:"#71717A",fontFamily:"Geist Mono"},Tv={stroke:"#E4E4E7"},Cv={strokeDasharray:"3 3",stroke:"#F1F1F3",vertical:!1},Nv={fontSize:12,border:"1px solid #E4E4E7",background:"#FFFFFF",color:"#18181B",fontFamily:"Geist Mono",borderRadius:10,boxShadow:"0 12px 32px rgba(24,24,27,0.12)"};function FZ(){const e=xi(),[t,n]=A.useState(null),[r,i]=A.useState(!0),[a,o]=A.useState(null),[l,s]=A.useState("cost"),[u,f]=A.useState(zZ);if(A.useEffect(()=>{let v=!1;return i(!0),fetch(`/api/overview?days=${encodeURIComponent(u)}`).then(x=>x.ok?x.json():Promise.reject(new Error(`HTTP ${x.status}`))).then(x=>{var S;v||(x&&x.ok?(n(x.data),o(null)):o(((S=x==null?void 0:x.error)==null?void 0:S.message)||"加载失败"))}).catch(x=>{v||o(x.message)}).finally(()=>{v||i(!1)}),()=>{v=!0}},[u]),r&&!t)return p.jsx(qe,{title:"首页",children:p.jsx("p",{className:"state state-blink",children:"正在加载数据"})});if(a)return p.jsx(qe,{title:"首页",children:p.jsx("p",{className:"state err",children:a})});if(!t)return null;const{range:c,trend:d,topProjects:h,recentSessions:y,topTools:b}=t,m=kv.find(v=>v.key===l)||kv[0],g=((d==null?void 0:d.rows)||[]).map(v=>({...v,date:qZ(v.date)}));return p.jsxs("article",{children:[p.jsx(qe,{title:"首页",meta:p.jsxs(p.Fragment,{children:[c.label," · ",c.from," → ",c.to,r?" · 加载中…":""]})}),p.jsx(we,{title:"时间范围",children:p.jsx(VZ,{current:u,onChange:f})}),p.jsx(we,{title:"趋势",actions:p.jsx(KZ,{current:l,onChange:s}),children:p.jsx(jn,{title:`每日 · ${m.label}`,tag:UZ(m),children:p.jsx(WZ,{rows:g,sources:(d==null?void 0:d.sources)||[],metric:m})})}),p.jsx(we,{title:"Top 项目",meta:`${c.label} · 按费用降序`,children:p.jsx(Lm,{rows:h})}),p.jsx(we,{title:"最近 10 个会话",meta:"不限时间",children:p.jsx(XZ,{rows:y,onClick:v=>e(`/session/${v}`)})}),p.jsx(we,{title:"工具使用 Top 10",meta:`${c.label} · 按调用次数`,collapsible:!0,defaultOpen:!1,children:p.jsx(jn,{children:(b||[]).length===0?p.jsx(Rm,{children:"暂无工具调用"}):p.jsx(GZ,{rows:b})})})]})}function UZ(e){switch(e.key){case"hitRate":return"cache_read / (cache_read + cache_write + input)";case"errorRate":return"errors / messages";case"cost":return"按来源叠加";case"sessions":return"按来源叠加";case"all":return"各指标按当前范围归一化到 0–100,tooltip 显示原始值";default:return null}}function WZ({rows:e,sources:t,metric:n}){if(!e||e.length===0)return p.jsx(Rm,{children:"暂无数据"});if(n.kind==="normalized")return p.jsx(HZ,{rows:e,sources:t,metric:n});if(n.kind==="singleLine")return p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:e,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{...Cv}),p.jsx(yi,{dataKey:"date",tick:Yi,tickLine:!1,axisLine:Tv}),p.jsx(mi,{tick:Yi,tickLine:!1,axisLine:!1,width:48,domain:n.yDomain||["auto","auto"],tickFormatter:n.yFmt}),p.jsx(kt,{contentStyle:Nv,labelStyle:{color:"#71717A"},formatter:i=>n.tipFmt?n.tipFmt(i):i}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),p.jsx($r,{type:"monotone",dataKey:n.dataKey,stroke:n.color,name:n.label,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:n.color},activeDot:{r:5,strokeWidth:0}})]})});const r=t.map((i,a)=>({key:`${i}_${n.keySuffix}`,color:RZ[i]||ow[a%ow.length],name:`${LA[i]||i}`}));return p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:e,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{...Cv}),p.jsx(yi,{dataKey:"date",tick:Yi,tickLine:!1,axisLine:Tv}),p.jsx(mi,{tick:Yi,tickLine:!1,axisLine:!1,width:48,tickFormatter:n.yFmt}),p.jsx(kt,{contentStyle:Nv,labelStyle:{color:"#71717A"},formatter:i=>n.tipFmt?n.tipFmt(i):i}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),r.map(i=>p.jsx($r,{type:"monotone",dataKey:i.key,stroke:i.color,name:i.name,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:i.color},activeDot:{r:5,strokeWidth:0}},i.key))]})})}function HZ({rows:e,sources:t,metric:n}){const r=n.series||[],i={};for(const u of r)i[u.key]=[];for(const u of e)for(const f of r){let c=0;if(f.sumFromSources)for(const d of t)c+=Number(u[`${d}_${f.sumFromSources}`]||0);else c=Number(u[f.dataKey]||0);i[f.key].push(c)}const a={};for(const u of r){const f=i[u.key];let c=1/0,d=-1/0;for(const h of f)h<c&&(c=h),h>d&&(d=h);isFinite(c)||(c=0,d=0),a[u.key]={lo:c,hi:d}}const o=(u,{lo:f,hi:c})=>c===f?0:Math.round((u-f)/(c-f)*1e3)/10,l=e.map((u,f)=>{const c={date:u.date};for(const d of r){const h=i[d.key][f];c[`norm_${d.key}`]=o(h,a[d.key]),c[`__raw_${d.key}`]=h}return c}),s=(u,f,c)=>{var b;const d=r.find(m=>m.label===f);if(!d)return u;const h=(b=c==null?void 0:c.payload)==null?void 0:b[`__raw_${d.key}`];return[`${d.tipFmt?d.tipFmt(h):String(h)} (${u}%)`,f]};return p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:l,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{...Cv}),p.jsx(yi,{dataKey:"date",tick:Yi,tickLine:!1,axisLine:Tv}),p.jsx(mi,{tick:Yi,tickLine:!1,axisLine:!1,width:48,domain:[0,100],tickFormatter:u=>`${u}%`}),p.jsx(kt,{contentStyle:Nv,labelStyle:{color:"#71717A"},formatter:s}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),r.map(u=>p.jsx($r,{type:"monotone",dataKey:`norm_${u.key}`,stroke:u.color,name:u.label,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:u.color},activeDot:{r:5,strokeWidth:0}},u.key))]})})}function VZ({current:e,onChange:t}){return p.jsx("div",{className:"seg",role:"tablist","aria-label":"时间范围",children:BZ.map(n=>p.jsx("button",{role:"tab","aria-selected":e===n.key,title:n.hint,onClick:()=>t(n.key),children:n.label},n.key))})}function KZ({current:e,onChange:t}){return p.jsx("div",{className:"seg",role:"tablist","aria-label":"趋势指标",children:kv.map(n=>p.jsx("button",{role:"tab","aria-selected":e===n.key,onClick:()=>t(n.key),children:n.label},n.key))})}function GZ({rows:e}){const t=Math.max(1,...e.map(n=>n.calls));return p.jsx("div",{style:{padding:"4px 0 8px"},children:e.map(n=>{const r=Math.round(n.calls/t*100),i=n.errorRate>=30?"chip--bad":n.errorRate>=10?"chip--warn":n.errorRate>0?"chip--info":"";return p.jsxs("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 130px",alignItems:"center",gap:12,padding:"6px 4px"},children:[p.jsx("div",{style:{fontFamily:"Geist Mono",fontSize:12,color:"var(--ink, #18181B)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:n.tool,children:n.tool}),p.jsx("div",{style:{position:"relative",height:14,background:"#F4F4F5",borderRadius:4},children:p.jsx("div",{style:{position:"absolute",left:0,top:0,bottom:0,width:`${r}%`,background:"#2563EB",borderRadius:4}})}),p.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:8,fontFamily:"Geist Mono",fontSize:12},children:[p.jsxs("span",{style:{color:"var(--ink, #18181B)",fontVariantNumeric:"tabular-nums"},children:[Rn(n.calls)," 次"]}),n.errorRate>0&&p.jsxs("span",{className:`chip ${i}`,title:`${n.errors} 次失败`,children:[n.errorRate,"%"]})]})]},n.tool)})})}function XZ({rows:e=[],onClick:t}){return e.length?p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsxs("table",{className:"tbl",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"会话"}),p.jsx("th",{style:{width:130},children:"项目"}),p.jsx("th",{className:"num",style:{width:90},children:"消息"}),p.jsx("th",{className:"num",style:{width:100},children:"费用"}),p.jsx("th",{style:{width:160},children:"时间"}),p.jsx("th",{style:{width:90},children:"状态"})]})}),p.jsx("tbody",{children:e.map(n=>p.jsxs("tr",{className:"click",onClick:()=>t==null?void 0:t(n.id),children:[p.jsx("td",{children:p.jsxs("div",{className:"title",children:[n.title||"(未命名)",p.jsxs("small",{children:[LA[n.source]||n.source,n.model?` · ${n.model}`:""]})]})}),p.jsx("td",{title:n.project||"",style:{color:"var(--ink-mute)",fontSize:12},children:n.project?YZ(n.project):"—"}),p.jsx("td",{className:"num",children:n.messageCount}),p.jsxs("td",{className:"num",children:["$",(n.cost??0).toFixed(2)]}),p.jsx("td",{style:{color:"var(--ink-mute)",fontSize:12,fontVariantNumeric:"tabular-nums"},children:QZ(n.startedAt)}),p.jsx("td",{children:ZZ(n)})]},n.id))})]})}):p.jsx(Rm,{children:"还没有任何会话"})}function Rm({children:e}){return p.jsx("div",{style:{padding:32,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:e})}function YZ(e){if(!e)return"";const t=String(e).split(/[\\/]/).filter(Boolean),n=t[t.length-1]||e;return n.length>32?n.slice(0,30)+"…":n}function qZ(e){return e&&e.length>=10?e.slice(5):e}function QZ(e){if(!e)return"";try{const t=new Date(e);if(Number.isNaN(t.getTime()))return e;const n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),a=String(t.getHours()).padStart(2,"0"),o=String(t.getMinutes()).padStart(2,"0");return`${n}-${r}-${i} ${a}:${o}`}catch{return e}}function ZZ(e){return e.reverted?p.jsx("span",{className:"chip chip--bad",children:"已回滚"}):e.errorCount>0?p.jsxs("span",{className:"chip chip--warn",children:[e.errorCount," 错"]}):p.jsx("span",{className:"chip",children:"正常"})}function JZ({data:e,xKey:t="date",lines:n=[],title:r="",hideTitle:i}){const a=Array.isArray(e)&&e.length>0;return p.jsx(kA,{title:r,empty:!a,hideTitle:i,children:p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:e,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{strokeDasharray:"3 3",stroke:"#F1F1F3",vertical:!1}),p.jsx(yi,{dataKey:t,tick:{fontSize:11,fill:"#71717A",fontFamily:"Geist Mono"},tickLine:!1,axisLine:{stroke:"#E4E4E7"}}),p.jsx(mi,{tick:{fontSize:11,fill:"#A1A1AA",fontFamily:"Geist Mono"},tickLine:!1,axisLine:!1,width:40}),p.jsx(kt,{cursor:{stroke:"#E4E4E7",strokeWidth:1},contentStyle:{fontSize:12,border:"1px solid #E4E4E7",background:"#FFFFFF",color:"#18181B",fontFamily:"Geist Mono",borderRadius:10,boxShadow:"0 12px 32px rgba(24,24,27,0.12)"},labelStyle:{color:"#71717A"}}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),n.map(o=>p.jsx($r,{type:"monotone",dataKey:o.key,stroke:o.color,name:o.name,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:o.color},activeDot:{r:5,strokeWidth:0}},o.key))]})})})}function eJ(){const e=xi(),{data:t,loading:n,error:r}=MA("/api/reports/weekly");if(n)return p.jsx(qe,{title:"本周复盘",children:p.jsx("p",{className:"state state-blink",children:"正在加载数据"})});if(r)return p.jsx(qe,{title:"本周复盘",children:p.jsx("p",{className:"state err",children:r})});if(!t)return null;const{weekStart:i,weekEnd:a,stats:o,dimensionsV2:l,sessions:s,topProjects:u,dailyBreakdown:f,analysisStatus:c}=t,d=c&&c.analyzedCount<c.totalCount,h=(f||[]).map(y=>({date:y.date,cost:y.cost,sessions:y.sessions}));return p.jsxs("article",{children:[p.jsx(qe,{title:"本周复盘",meta:p.jsxs(p.Fragment,{children:[p.jsx("b",{children:i})," 至 ",p.jsx("b",{children:a})]})}),d&&p.jsx(Dm,{children:c.status==="running"?`分析进行中,已评分 ${c.analyzedCount} / ${c.totalCount} 个会话`:`${c.totalCount-c.analyzedCount} 个会话尚未分析。分析任务空闲,重启服务或手动触发可补全`}),p.jsxs("div",{className:"hero",children:[p.jsxs("div",{className:"hero__main",children:[p.jsx("div",{className:"hero__label",children:"本周总支出"}),p.jsxs("div",{className:"hero__big",children:["$",(o.cost||0).toFixed(2),p.jsx("span",{className:"u",children:"USD"})]}),p.jsxs("div",{className:"hero__sub",children:[p.jsx("b",{children:o.sessions})," 个会话 · ",p.jsx("b",{children:o.activeMinutes})," 分钟活跃 · ",p.jsx("b",{children:Rn(o.totalTokens)})," tokens"]})]}),p.jsxs("div",{className:"hero__side",children:[p.jsx(Hn,{name:"均价 / 会话",v:`$${(o.avgCost??0).toFixed(2)}`}),p.jsx(Hn,{name:"活跃 / 会话",v:`${o.avgActiveMinutes??0} 分钟`}),p.jsx(Hn,{name:"Tokens / 会话",v:Rn(o.avgTokens??0)})]})]}),p.jsxs("div",{className:"stats",children:[p.jsx(Oe,{label:"会话",value:o.sessions}),p.jsx(Oe,{label:"活跃时长",value:o.activeMinutes,unit:"分钟"}),p.jsx(Oe,{label:"Tokens",value:Rn(o.totalTokens)}),p.jsx(Oe,{label:"错误",value:o.errors,delta:`均 ${o.avgErrors??0} / 会话`})]}),p.jsx(we,{title:"能力诊断",children:p.jsx(IA,{dimensionsV2:l})}),h.length>1&&p.jsx(we,{title:"每日走势",children:p.jsx(jn,{title:"费用与会话数",children:p.jsx(JZ,{data:h,xKey:"date",lines:[{key:"cost",color:"#2563EB",name:"费用 ($)"},{key:"sessions",color:"#A1A1AA",name:"会话数"}],hideTitle:!0})})}),p.jsx(we,{title:"Top 项目",meta:"按本周费用降序 · 点击查看项目 AI 分析",children:p.jsx(Lm,{rows:u||[],emptyText:"本周没有带项目信息的会话"})}),p.jsx(we,{title:"会话列表",meta:`本周 ${(s||[]).length} 个会话 · 按天切换`,children:p.jsx(NA,{sessions:s,layout:"tabs",onSessionClick:y=>e(`/session/${y}`)})}),p.jsx(vs,{date:a})]})}const aa={display:"inline-flex",alignItems:"center",gap:6,padding:"4px 10px",fontSize:12,fontFamily:"inherit",borderRadius:3,border:"1px solid var(--line)",background:"var(--bg-panel, transparent)",cursor:"pointer",color:"var(--ink)",whiteSpace:"nowrap"},tJ={...aa,opacity:.55,cursor:"wait"},nJ={...aa,opacity:.4,cursor:"not-allowed"},Ys={pending:{glyph:"⏳",text:"准备中…"},running:{glyph:"⏳",text:"运行中…"},success:{glyph:"✓",text:"成功"},failed:{glyph:"✗",text:"失败"},cancelled:{glyph:"⊘",text:"已取消"}},rJ={ALREADY_RUNNING:"已有任务运行中",NO_SESSION:"会话不存在",NO_ADVICE:"请先生成 advice",NO_ADVICE_ITEM:"建议已变化,请重新生成 advice",NOT_ACTIONABLE:"该建议不可自动执行",INVALID_PROJECT_PATH:"项目目录不存在",NOT_WHITELISTED:"需要确认项目白名单",NO_CLI:"未检测到 opencode / claude",BAD_REQUEST:"参数错误",INTERNAL:"内部错误"};function iJ(e){return e==null?"":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m${Math.round(e%6e4/1e3)}s`}function DA({item:e,adviceKey:t,sessionId:n,project:r,whitelistPaths:i,runs:a,globalBusyRunId:o,onStart:l,onRefresh:s,onAdviceStale:u}){const[f,c]=A.useState(null),[d,h]=A.useState(!1),[y,b]=A.useState(null);if(!e||e.actionable!==!0)return null;const m=a&&a.length>0?a[0]:null,g=m&&(m.status==="pending"||m.status==="running"),v=!!o&&(!m||m.id!==o),x=(i||[]).includes(r);let S,w=aa,_=null,O="";const j=r?`让 AI 在 ${r} 目录运行 opencode / claude 执行这条建议(可能修改文件、运行 shell、访问网络)。
|
|
137
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jA(e,t){if(e){if(typeof e=="string")return Pv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pv(e,t)}}function dZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function pZ(e){if(Array.isArray(e))return Pv(e)}function Pv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function tw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?tw(Object(n),!0).forEach(function(r){Q(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Q(e,t,n){return t=PA(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PA(e){var t=hZ(e,"string");return za(t)=="symbol"?t:t+""}function hZ(e,t){if(za(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(za(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var vZ={xAxis:["bottom","top"],yAxis:["left","right"]},yZ={width:"100%",height:"100%"},AA={x:0,y:0};function Xs(e){return e}var mZ=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},gZ=function(t,n,r,i){var a=n.find(function(f){return f&&f.index===r});if(a){if(t==="horizontal")return{x:a.coordinate,y:i.y};if(t==="vertical")return{x:i.x,y:a.coordinate};if(t==="centric"){var o=a.coordinate,l=i.radius;return L(L(L({},i),he(i.cx,i.cy,l,o)),{},{angle:o,radius:l})}var s=a.coordinate,u=i.angle;return L(L(L({},i),he(i.cx,i.cy,s,u)),{},{angle:u,radius:s})}return AA},Gf=function(t,n){var r=n.graphicalItems,i=n.dataStartIndex,a=n.dataEndIndex,o=(r??[]).reduce(function(l,s){var u=s.props.data;return u&&u.length?[].concat(Fa(l),Fa(u)):l},[]);return o.length>0?o:t&&t.length&&H(i)&&H(a)?t.slice(i,a+1):[]};function EA(e){return e==="number"?[0,"auto"]:void 0}var Av=function(t,n,r,i){var a=t.graphicalItems,o=t.tooltipAxis,l=Gf(n,t);return r<0||!a||!a.length||r>=l.length?null:a.reduce(function(s,u){var f,c=(f=u.props.data)!==null&&f!==void 0?f:n;c&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(c=c.slice(t.dataStartIndex,t.dataEndIndex+1));var d;if(o.dataKey&&!o.allowDuplicatedCategory){var h=c===void 0?l:c;d=Iu(h,o.dataKey,i)}else d=c&&c[r]||l[r];return d?[].concat(Fa(s),[pP(u,d)]):s},[])},nw=function(t,n,r,i){var a=i||{x:t.chartX,y:t.chartY},o=mZ(a,r),l=t.orderedTooltipTicks,s=t.tooltipAxis,u=t.tooltipTicks,f=yH(o,l,u,s);if(f>=0&&u){var c=u[f]&&u[f].value,d=Av(t,n,f,c),h=gZ(r,l,f,a);return{activeTooltipIndex:f,activeLabel:c,activePayload:d,activeCoordinate:h}}return null},bZ=function(t,n){var r=n.axes,i=n.graphicalItems,a=n.axisType,o=n.axisIdKey,l=n.stackGroups,s=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,d=t.stackOffset,h=lP(f,a);return r.reduce(function(y,b){var m,g=b.type.defaultProps!==void 0?L(L({},b.type.defaultProps),b.props):b.props,v=g.type,x=g.dataKey,S=g.allowDataOverflow,w=g.allowDuplicatedCategory,_=g.scale,O=g.ticks,j=g.includeHidden,P=g[o];if(y[P])return y;var k=Gf(t.data,{graphicalItems:i.filter(function(W){var q,ie=o in W.props?W.props[o]:(q=W.type.defaultProps)===null||q===void 0?void 0:q[o];return ie===P}),dataStartIndex:s,dataEndIndex:u}),T=k.length,$,N,M;VQ(g.domain,S,v)&&($=zh(g.domain,null,S),h&&(v==="number"||_!=="auto")&&(M=Bo(k,x,"category")));var I=EA(v);if(!$||$.length===0){var R,z=(R=g.domain)!==null&&R!==void 0?R:I;if(x){if($=Bo(k,x,v),v==="category"&&h){var C=aM($);w&&C?(N=$,$=Oc(0,T)):w||($=Px(z,$,b).reduce(function(W,q){return W.indexOf(q)>=0?W:[].concat(Fa(W),[q])},[]))}else if(v==="category")w?$=$.filter(function(W){return W!==""&&!te(W)}):$=Px(z,$,b).reduce(function(W,q){return W.indexOf(q)>=0||q===""||te(q)?W:[].concat(Fa(W),[q])},[]);else if(v==="number"){var D=wH(k,i.filter(function(W){var q,ie,_e=o in W.props?W.props[o]:(q=W.type.defaultProps)===null||q===void 0?void 0:q[o],Me="hide"in W.props?W.props.hide:(ie=W.type.defaultProps)===null||ie===void 0?void 0:ie.hide;return _e===P&&(j||!Me)}),x,a,f);D&&($=D)}h&&(v==="number"||_!=="auto")&&(M=Bo(k,x,"category"))}else h?$=Oc(0,T):l&&l[P]&&l[P].hasStack&&v==="number"?$=d==="expand"?[0,1]:dP(l[P].stackGroups,s,u):$=oP(k,i.filter(function(W){var q=o in W.props?W.props[o]:W.type.defaultProps[o],ie="hide"in W.props?W.props.hide:W.type.defaultProps.hide;return q===P&&(j||!ie)}),v,f,!0);if(v==="number")$=Ov(c,$,P,a,O),z&&($=zh(z,$,S));else if(v==="category"&&z){var B=z,V=$.every(function(W){return B.indexOf(W)>=0});V&&($=B)}}return L(L({},y),{},Q({},P,L(L({},g),{},{axisType:a,domain:$,categoricalDomain:M,duplicateDomain:N,originalDomain:(m=g.domain)!==null&&m!==void 0?m:I,isCategorical:h,layout:f})))},{})},xZ=function(t,n){var r=n.graphicalItems,i=n.Axis,a=n.axisType,o=n.axisIdKey,l=n.stackGroups,s=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,d=Gf(t.data,{graphicalItems:r,dataStartIndex:s,dataEndIndex:u}),h=d.length,y=lP(f,a),b=-1;return r.reduce(function(m,g){var v=g.type.defaultProps!==void 0?L(L({},g.type.defaultProps),g.props):g.props,x=v[o],S=EA("number");if(!m[x]){b++;var w;return y?w=Oc(0,h):l&&l[x]&&l[x].hasStack?(w=dP(l[x].stackGroups,s,u),w=Ov(c,w,x,a)):(w=zh(S,oP(d,r.filter(function(_){var O,j,P=o in _.props?_.props[o]:(O=_.type.defaultProps)===null||O===void 0?void 0:O[o],k="hide"in _.props?_.props.hide:(j=_.type.defaultProps)===null||j===void 0?void 0:j.hide;return P===x&&!k}),"number",f),i.defaultProps.allowDataOverflow),w=Ov(c,w,x,a)),L(L({},m),{},Q({},x,L(L({axisType:a},i.defaultProps),{},{hide:!0,orientation:Kt(vZ,"".concat(a,".").concat(b%2),null),domain:w,originalDomain:S,isCategorical:y,layout:f})))}return m},{})},wZ=function(t,n){var r=n.axisType,i=r===void 0?"xAxis":r,a=n.AxisComp,o=n.graphicalItems,l=n.stackGroups,s=n.dataStartIndex,u=n.dataEndIndex,f=t.children,c="".concat(i,"Id"),d=Gt(f,a),h={};return d&&d.length?h=bZ(t,{axes:d,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:l,dataStartIndex:s,dataEndIndex:u}):o&&o.length&&(h=xZ(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:c,stackGroups:l,dataStartIndex:s,dataEndIndex:u})),h},SZ=function(t){var n=dr(t),r=Dn(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:Jy(r,function(i){return i.coordinate}),tooltipAxis:n,tooltipAxisBandSize:cc(n,r)}},rw=function(t){var n=t.children,r=t.defaultShowTooltip,i=$t(n,Ta),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!r}},_Z=function(t){return!t||!t.length?!1:t.some(function(n){var r=zn(n&&n.type);return r&&r.indexOf("Bar")>=0})},iw=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},OZ=function(t,n){var r=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,l=t.yAxisMap,s=l===void 0?{}:l,u=r.width,f=r.height,c=r.children,d=r.margin||{},h=$t(c,Ta),y=$t(c,dn),b=Object.keys(s).reduce(function(w,_){var O=s[_],j=O.orientation;return!O.mirror&&!O.hide?L(L({},w),{},Q({},j,w[j]+O.width)):w},{left:d.left||0,right:d.right||0}),m=Object.keys(o).reduce(function(w,_){var O=o[_],j=O.orientation;return!O.mirror&&!O.hide?L(L({},w),{},Q({},j,Kt(w,"".concat(j))+O.height)):w},{top:d.top||0,bottom:d.bottom||0}),g=L(L({},m),b),v=g.bottom;h&&(g.bottom+=h.props.height||Ta.defaultProps.height),y&&n&&(g=bH(g,i,r,n));var x=u-g.left-g.right,S=f-g.top-g.bottom;return L(L({brushBottom:v},g),{},{width:Math.max(x,0),height:Math.max(S,0)})},jZ=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},$A=function(t){var n=t.chartName,r=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,l=o===void 0?["axis"]:o,s=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,c=t.defaultProps,d=function(g,v){var x=v.graphicalItems,S=v.stackGroups,w=v.offset,_=v.updateId,O=v.dataStartIndex,j=v.dataEndIndex,P=g.barSize,k=g.layout,T=g.barGap,$=g.barCategoryGap,N=g.maxBarSize,M=iw(k),I=M.numericAxisName,R=M.cateAxisName,z=_Z(x),C=[];return x.forEach(function(D,B){var V=Gf(g.data,{graphicalItems:[D],dataStartIndex:O,dataEndIndex:j}),W=D.type.defaultProps!==void 0?L(L({},D.type.defaultProps),D.props):D.props,q=W.dataKey,ie=W.maxBarSize,_e=W["".concat(I,"Id")],Me=W["".concat(R,"Id")],Dt={},mt=s.reduce(function(Br,zr){var qf=v["".concat(zr.axisType,"Map")],Fm=W["".concat(zr.axisType,"Id")];qf&&qf[Fm]||zr.axisType==="zAxis"||hi();var Um=qf[Fm];return L(L({},Br),{},Q(Q({},zr.axisType,Um),"".concat(zr.axisType,"Ticks"),Dn(Um)))},Dt),K=mt[R],ee=mt["".concat(R,"Ticks")],ne=S&&S[_e]&&S[_e].hasStack&&kH(D,S[_e].stackGroups),F=zn(D.type).indexOf("Bar")>=0,ke=cc(K,ee),ae=[],Be=z&&mH({barSize:P,stackGroups:S,totalSize:jZ(mt,R)});if(F){var ze,gt,rr=te(ie)?N:ie,Pi=(ze=(gt=cc(K,ee,!0))!==null&>!==void 0?gt:rr)!==null&&ze!==void 0?ze:0;ae=gH({barGap:T,barCategoryGap:$,bandSize:Pi!==ke?Pi:ke,sizeList:Be[Me],maxBarSize:rr}),Pi!==ke&&(ae=ae.map(function(Br){return L(L({},Br),{},{position:L(L({},Br.position),{},{offset:Br.position.offset-Pi/2})})}))}var ys=D&&D.type&&D.type.getComposedData;ys&&C.push({props:L(L({},ys(L(L({},mt),{},{displayedData:V,props:g,dataKey:q,item:D,bandSize:ke,barPosition:ae,offset:w,stackedData:ne,layout:k,dataStartIndex:O,dataEndIndex:j}))),{},Q(Q(Q({key:D.key||"item-".concat(B)},I,mt[I]),R,mt[R]),"animationId",_)),childIndex:gM(D,g.children),item:D})}),C},h=function(g,v){var x=g.props,S=g.dataStartIndex,w=g.dataEndIndex,_=g.updateId;if(!b0({props:x}))return null;var O=x.children,j=x.layout,P=x.stackOffset,k=x.data,T=x.reverseStackOrder,$=iw(j),N=$.numericAxisName,M=$.cateAxisName,I=Gt(O,r),R=EH(k,I,"".concat(N,"Id"),"".concat(M,"Id"),P,T),z=s.reduce(function(W,q){var ie="".concat(q.axisType,"Map");return L(L({},W),{},Q({},ie,wZ(x,L(L({},q),{},{graphicalItems:I,stackGroups:q.axisType===N&&R,dataStartIndex:S,dataEndIndex:w}))))},{}),C=OZ(L(L({},z),{},{props:x,graphicalItems:I}),v==null?void 0:v.legendBBox);Object.keys(z).forEach(function(W){z[W]=f(x,z[W],C,W.replace("Map",""),n)});var D=z["".concat(M,"Map")],B=SZ(D),V=d(x,L(L({},z),{},{dataStartIndex:S,dataEndIndex:w,updateId:_,graphicalItems:I,stackGroups:R,offset:C}));return L(L({formattedGraphicalItems:V,graphicalItems:I,offset:C,stackGroups:R},B),z)},y=function(m){function g(v){var x,S,w;return iZ(this,g),w=lZ(this,g,[v]),Q(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Q(w,"accessibilityManager",new HQ),Q(w,"handleLegendBBoxUpdate",function(_){if(_){var O=w.state,j=O.dataStartIndex,P=O.dataEndIndex,k=O.updateId;w.setState(L({legendBBox:_},h({props:w.props,dataStartIndex:j,dataEndIndex:P,updateId:k},L(L({},w.state),{},{legendBBox:_}))))}}),Q(w,"handleReceiveSyncEvent",function(_,O,j){if(w.props.syncId===_){if(j===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(O)}}),Q(w,"handleBrushChange",function(_){var O=_.startIndex,j=_.endIndex;if(O!==w.state.dataStartIndex||j!==w.state.dataEndIndex){var P=w.state.updateId;w.setState(function(){return L({dataStartIndex:O,dataEndIndex:j},h({props:w.props,dataStartIndex:O,dataEndIndex:j,updateId:P},w.state))}),w.triggerSyncEvent({dataStartIndex:O,dataEndIndex:j})}}),Q(w,"handleMouseEnter",function(_){var O=w.getMouseInfo(_);if(O){var j=L(L({},O),{},{isTooltipActive:!0});w.setState(j),w.triggerSyncEvent(j);var P=w.props.onMouseEnter;Z(P)&&P(j,_)}}),Q(w,"triggeredAfterMouseMove",function(_){var O=w.getMouseInfo(_),j=O?L(L({},O),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(j),w.triggerSyncEvent(j);var P=w.props.onMouseMove;Z(P)&&P(j,_)}),Q(w,"handleItemMouseEnter",function(_){w.setState(function(){return{isTooltipActive:!0,activeItem:_,activePayload:_.tooltipPayload,activeCoordinate:_.tooltipPosition||{x:_.cx,y:_.cy}}})}),Q(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),Q(w,"handleMouseMove",function(_){_.persist(),w.throttleTriggeredAfterMouseMove(_)}),Q(w,"handleMouseLeave",function(_){w.throttleTriggeredAfterMouseMove.cancel();var O={isTooltipActive:!1};w.setState(O),w.triggerSyncEvent(O);var j=w.props.onMouseLeave;Z(j)&&j(O,_)}),Q(w,"handleOuterEvent",function(_){var O=mM(_),j=Kt(w.props,"".concat(O));if(O&&Z(j)){var P,k;/.*touch.*/i.test(O)?k=w.getMouseInfo(_.changedTouches[0]):k=w.getMouseInfo(_),j((P=k)!==null&&P!==void 0?P:{},_)}}),Q(w,"handleClick",function(_){var O=w.getMouseInfo(_);if(O){var j=L(L({},O),{},{isTooltipActive:!0});w.setState(j),w.triggerSyncEvent(j);var P=w.props.onClick;Z(P)&&P(j,_)}}),Q(w,"handleMouseDown",function(_){var O=w.props.onMouseDown;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"handleMouseUp",function(_){var O=w.props.onMouseUp;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"handleTouchMove",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(_.changedTouches[0])}),Q(w,"handleTouchStart",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&w.handleMouseDown(_.changedTouches[0])}),Q(w,"handleTouchEnd",function(_){_.changedTouches!=null&&_.changedTouches.length>0&&w.handleMouseUp(_.changedTouches[0])}),Q(w,"handleDoubleClick",function(_){var O=w.props.onDoubleClick;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"handleContextMenu",function(_){var O=w.props.onContextMenu;if(Z(O)){var j=w.getMouseInfo(_);O(j,_)}}),Q(w,"triggerSyncEvent",function(_){w.props.syncId!==void 0&&qd.emit(Qd,w.props.syncId,_,w.eventEmitterSymbol)}),Q(w,"applySyncEvent",function(_){var O=w.props,j=O.layout,P=O.syncMethod,k=w.state.updateId,T=_.dataStartIndex,$=_.dataEndIndex;if(_.dataStartIndex!==void 0||_.dataEndIndex!==void 0)w.setState(L({dataStartIndex:T,dataEndIndex:$},h({props:w.props,dataStartIndex:T,dataEndIndex:$,updateId:k},w.state)));else if(_.activeTooltipIndex!==void 0){var N=_.chartX,M=_.chartY,I=_.activeTooltipIndex,R=w.state,z=R.offset,C=R.tooltipTicks;if(!z)return;if(typeof P=="function")I=P(C,_);else if(P==="value"){I=-1;for(var D=0;D<C.length;D++)if(C[D].value===_.activeLabel){I=D;break}}var B=L(L({},z),{},{x:z.left,y:z.top}),V=Math.min(N,B.x+B.width),W=Math.min(M,B.y+B.height),q=C[I]&&C[I].value,ie=Av(w.state,w.props.data,I),_e=C[I]?{x:j==="horizontal"?C[I].coordinate:V,y:j==="horizontal"?W:C[I].coordinate}:AA;w.setState(L(L({},_),{},{activeLabel:q,activeCoordinate:_e,activePayload:ie,activeTooltipIndex:I}))}else w.setState(_)}),Q(w,"renderCursor",function(_){var O,j=w.state,P=j.isTooltipActive,k=j.activeCoordinate,T=j.activePayload,$=j.offset,N=j.activeTooltipIndex,M=j.tooltipAxisBandSize,I=w.getTooltipEventType(),R=(O=_.props.active)!==null&&O!==void 0?O:P,z=w.props.layout,C=_.key||"_recharts-cursor";return E.createElement(QQ,{key:C,activeCoordinate:k,activePayload:T,activeTooltipIndex:N,chartName:n,element:_,isActive:R,layout:z,offset:$,tooltipAxisBandSize:M,tooltipEventType:I})}),Q(w,"renderPolarAxis",function(_,O,j){var P=Kt(_,"type.axisType"),k=Kt(w.state,"".concat(P,"Map")),T=_.type.defaultProps,$=T!==void 0?L(L({},T),_.props):_.props,N=k&&k[$["".concat(P,"Id")]];return A.cloneElement(_,L(L({},N),{},{className:J(P,N.className),key:_.key||"".concat(O,"-").concat(j),ticks:Dn(N,!0)}))}),Q(w,"renderPolarGrid",function(_){var O=_.props,j=O.radialLines,P=O.polarAngles,k=O.polarRadius,T=w.state,$=T.radiusAxisMap,N=T.angleAxisMap,M=dr($),I=dr(N),R=I.cx,z=I.cy,C=I.innerRadius,D=I.outerRadius;return A.cloneElement(_,{polarAngles:Array.isArray(P)?P:Dn(I,!0).map(function(B){return B.coordinate}),polarRadius:Array.isArray(k)?k:Dn(M,!0).map(function(B){return B.coordinate}),cx:R,cy:z,innerRadius:C,outerRadius:D,key:_.key||"polar-grid",radialLines:j})}),Q(w,"renderLegend",function(){var _=w.state.formattedGraphicalItems,O=w.props,j=O.children,P=O.width,k=O.height,T=w.props.margin||{},$=P-(T.left||0)-(T.right||0),N=iP({children:j,formattedGraphicalItems:_,legendWidth:$,legendContent:u});if(!N)return null;var M=N.item,I=ew(N,ZQ);return A.cloneElement(M,L(L({},I),{},{chartWidth:P,chartHeight:k,margin:T,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),Q(w,"renderTooltip",function(){var _,O=w.props,j=O.children,P=O.accessibilityLayer,k=$t(j,kt);if(!k)return null;var T=w.state,$=T.isTooltipActive,N=T.activeCoordinate,M=T.activePayload,I=T.activeLabel,R=T.offset,z=(_=k.props.active)!==null&&_!==void 0?_:$;return A.cloneElement(k,{viewBox:L(L({},R),{},{x:R.left,y:R.top}),active:z,label:I,payload:z?M:[],coordinate:N,accessibilityLayer:P})}),Q(w,"renderBrush",function(_){var O=w.props,j=O.margin,P=O.data,k=w.state,T=k.offset,$=k.dataStartIndex,N=k.dataEndIndex,M=k.updateId;return A.cloneElement(_,{key:_.key||"_recharts-brush",onChange:Ws(w.handleBrushChange,_.props.onChange),data:P,x:H(_.props.x)?_.props.x:T.left,y:H(_.props.y)?_.props.y:T.top+T.height+T.brushBottom-(j.bottom||0),width:H(_.props.width)?_.props.width:T.width,startIndex:$,endIndex:N,updateId:"brush-".concat(M)})}),Q(w,"renderReferenceElement",function(_,O,j){if(!_)return null;var P=w,k=P.clipPathId,T=w.state,$=T.xAxisMap,N=T.yAxisMap,M=T.offset,I=_.type.defaultProps||{},R=_.props,z=R.xAxisId,C=z===void 0?I.xAxisId:z,D=R.yAxisId,B=D===void 0?I.yAxisId:D;return A.cloneElement(_,{key:_.key||"".concat(O,"-").concat(j),xAxis:$[C],yAxis:N[B],viewBox:{x:M.left,y:M.top,width:M.width,height:M.height},clipPathId:k})}),Q(w,"renderActivePoints",function(_){var O=_.item,j=_.activePoint,P=_.basePoint,k=_.childIndex,T=_.isRange,$=[],N=O.props.key,M=O.item.type.defaultProps!==void 0?L(L({},O.item.type.defaultProps),O.item.props):O.item.props,I=M.activeDot,R=M.dataKey,z=L(L({index:k,dataKey:R,cx:j.x,cy:j.y,r:4,fill:jm(O.item),strokeWidth:2,stroke:"#fff",payload:j.payload,value:j.value},Y(I,!1)),Lu(I));return $.push(g.renderActiveDot(I,z,"".concat(N,"-activePoint-").concat(k))),P?$.push(g.renderActiveDot(I,L(L({},z),{},{cx:P.x,cy:P.y}),"".concat(N,"-basePoint-").concat(k))):T&&$.push(null),$}),Q(w,"renderGraphicChild",function(_,O,j){var P=w.filterFormatItem(_,O,j);if(!P)return null;var k=w.getTooltipEventType(),T=w.state,$=T.isTooltipActive,N=T.tooltipAxis,M=T.activeTooltipIndex,I=T.activeLabel,R=w.props.children,z=$t(R,kt),C=P.props,D=C.points,B=C.isRange,V=C.baseLine,W=P.item.type.defaultProps!==void 0?L(L({},P.item.type.defaultProps),P.item.props):P.item.props,q=W.activeDot,ie=W.hide,_e=W.activeBar,Me=W.activeShape,Dt=!!(!ie&&$&&z&&(q||_e||Me)),mt={};k!=="axis"&&z&&z.props.trigger==="click"?mt={onClick:Ws(w.handleItemMouseEnter,_.props.onClick)}:k!=="axis"&&(mt={onMouseLeave:Ws(w.handleItemMouseLeave,_.props.onMouseLeave),onMouseEnter:Ws(w.handleItemMouseEnter,_.props.onMouseEnter)});var K=A.cloneElement(_,L(L({},P.props),mt));function ee(zr){return typeof N.dataKey=="function"?N.dataKey(zr.payload):null}if(Dt)if(M>=0){var ne,F;if(N.dataKey&&!N.allowDuplicatedCategory){var ke=typeof N.dataKey=="function"?ee:"payload.".concat(N.dataKey.toString());ne=Iu(D,ke,I),F=B&&V&&Iu(V,ke,I)}else ne=D==null?void 0:D[M],F=B&&V&&V[M];if(Me||_e){var ae=_.props.activeIndex!==void 0?_.props.activeIndex:M;return[A.cloneElement(_,L(L(L({},P.props),mt),{},{activeIndex:ae})),null,null]}if(!te(ne))return[K].concat(Fa(w.renderActivePoints({item:P,activePoint:ne,basePoint:F,childIndex:M,isRange:B})))}else{var Be,ze=(Be=w.getItemByXY(w.state.activeCoordinate))!==null&&Be!==void 0?Be:{graphicalItem:K},gt=ze.graphicalItem,rr=gt.item,Pi=rr===void 0?_:rr,ys=gt.childIndex,Br=L(L(L({},P.props),mt),{},{activeIndex:ys});return[A.cloneElement(Pi,Br),null,null]}return B?[K,null,null]:[K,null]}),Q(w,"renderCustomized",function(_,O,j){return A.cloneElement(_,L(L({key:"recharts-customized-".concat(j)},w.props),w.state))}),Q(w,"renderMap",{CartesianGrid:{handler:Xs,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:Xs},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:Xs},YAxis:{handler:Xs},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((x=v.id)!==null&&x!==void 0?x:rs("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=rj(w.triggeredAfterMouseMove,(S=v.throttleDelay)!==null&&S!==void 0?S:1e3/60),w.state={},w}return cZ(g,m),oZ(g,[{key:"componentDidMount",value:function(){var x,S;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(x=this.props.margin.left)!==null&&x!==void 0?x:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var x=this.props,S=x.children,w=x.data,_=x.height,O=x.layout,j=$t(S,kt);if(j){var P=j.props.defaultIndex;if(!(typeof P!="number"||P<0||P>this.state.tooltipTicks.length-1)){var k=this.state.tooltipTicks[P]&&this.state.tooltipTicks[P].value,T=Av(this.state,w,P,k),$=this.state.tooltipTicks[P].coordinate,N=(this.state.offset.top+_)/2,M=O==="horizontal",I=M?{x:$,y:N}:{y:$,x:N},R=this.state.formattedGraphicalItems.find(function(C){var D=C.item;return D.type.name==="Scatter"});R&&(I=L(L({},I),R.props.points[P].tooltipPosition),T=R.props.points[P].tooltipPayload);var z={activeTooltipIndex:P,isTooltipActive:!0,activeLabel:k,activePayload:T,activeCoordinate:I};this.setState(z),this.renderCursor(j),this.accessibilityManager.setIndex(P)}}}},{key:"getSnapshotBeforeUpdate",value:function(x,S){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==S.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==x.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==x.margin){var w,_;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(_=this.props.margin.top)!==null&&_!==void 0?_:0}})}return null}},{key:"componentDidUpdate",value:function(x){th([$t(x.children,kt)],[$t(this.props.children,kt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var x=$t(this.props.children,kt);if(x&&typeof x.props.shared=="boolean"){var S=x.props.shared?"axis":"item";return l.indexOf(S)>=0?S:a}return a}},{key:"getMouseInfo",value:function(x){if(!this.container)return null;var S=this.container,w=S.getBoundingClientRect(),_=H8(w),O={chartX:Math.round(x.pageX-_.left),chartY:Math.round(x.pageY-_.top)},j=w.width/S.offsetWidth||1,P=this.inRange(O.chartX,O.chartY,j);if(!P)return null;var k=this.state,T=k.xAxisMap,$=k.yAxisMap,N=this.getTooltipEventType(),M=nw(this.state,this.props.data,this.props.layout,P);if(N!=="axis"&&T&&$){var I=dr(T).scale,R=dr($).scale,z=I&&I.invert?I.invert(O.chartX):null,C=R&&R.invert?R.invert(O.chartY):null;return L(L({},O),{},{xValue:z,yValue:C},M)}return M?L(L({},O),M):null}},{key:"inRange",value:function(x,S){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,_=this.props.layout,O=x/w,j=S/w;if(_==="horizontal"||_==="vertical"){var P=this.state.offset,k=O>=P.left&&O<=P.left+P.width&&j>=P.top&&j<=P.top+P.height;return k?{x:O,y:j}:null}var T=this.state,$=T.angleAxisMap,N=T.radiusAxisMap;if($&&N){var M=dr($);return $x({x:O,y:j},M)}return null}},{key:"parseEventsOfWrapper",value:function(){var x=this.props.children,S=this.getTooltipEventType(),w=$t(x,kt),_={};w&&S==="axis"&&(w.props.trigger==="click"?_={onClick:this.handleClick}:_={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var O=Lu(this.props,this.handleOuterEvent);return L(L({},O),_)}},{key:"addListener",value:function(){qd.on(Qd,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){qd.removeListener(Qd,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(x,S,w){for(var _=this.state.formattedGraphicalItems,O=0,j=_.length;O<j;O++){var P=_[O];if(P.item===x||P.props.key===x.key||S===zn(P.item.type)&&w===P.childIndex)return P}return null}},{key:"renderClipPath",value:function(){var x=this.clipPathId,S=this.state.offset,w=S.left,_=S.top,O=S.height,j=S.width;return E.createElement("defs",null,E.createElement("clipPath",{id:x},E.createElement("rect",{x:w,y:_,height:O,width:j})))}},{key:"getXScales",value:function(){var x=this.state.xAxisMap;return x?Object.entries(x).reduce(function(S,w){var _=J1(w,2),O=_[0],j=_[1];return L(L({},S),{},Q({},O,j.scale))},{}):null}},{key:"getYScales",value:function(){var x=this.state.yAxisMap;return x?Object.entries(x).reduce(function(S,w){var _=J1(w,2),O=_[0],j=_[1];return L(L({},S),{},Q({},O,j.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(x){var S;return(S=this.state.xAxisMap)===null||S===void 0||(S=S[x])===null||S===void 0?void 0:S.scale}},{key:"getYScaleByAxisId",value:function(x){var S;return(S=this.state.yAxisMap)===null||S===void 0||(S=S[x])===null||S===void 0?void 0:S.scale}},{key:"getItemByXY",value:function(x){var S=this.state,w=S.formattedGraphicalItems,_=S.activeItem;if(w&&w.length)for(var O=0,j=w.length;O<j;O++){var P=w[O],k=P.props,T=P.item,$=T.type.defaultProps!==void 0?L(L({},T.type.defaultProps),T.props):T.props,N=zn(T.type);if(N==="Bar"){var M=(k.data||[]).find(function(C){return kV(x,C)});if(M)return{graphicalItem:P,payload:M}}else if(N==="RadialBar"){var I=(k.data||[]).find(function(C){return $x(x,C)});if(I)return{graphicalItem:P,payload:I}}else if(zf(P,_)||Ff(P,_)||zl(P,_)){var R=$G({graphicalItem:P,activeTooltipItem:_,itemData:$.data}),z=$.activeIndex===void 0?R:$.activeIndex;return{graphicalItem:L(L({},P),{},{childIndex:z}),payload:zl(P,_)?$.data[R]:P.props.data[R]}}}return null}},{key:"render",value:function(){var x=this;if(!b0(this))return null;var S=this.props,w=S.children,_=S.className,O=S.width,j=S.height,P=S.style,k=S.compact,T=S.title,$=S.desc,N=ew(S,JQ),M=Y(N,!1);if(k)return E.createElement(I1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},E.createElement(rh,Xi({},M,{width:O,height:j,title:T,desc:$}),this.renderClipPath(),w0(w,this.renderMap)));if(this.props.accessibilityLayer){var I,R;M.tabIndex=(I=this.props.tabIndex)!==null&&I!==void 0?I:0,M.role=(R=this.props.role)!==null&&R!==void 0?R:"application",M.onKeyDown=function(C){x.accessibilityManager.keyboardEvent(C)},M.onFocus=function(){x.accessibilityManager.focus()}}var z=this.parseEventsOfWrapper();return E.createElement(I1,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},E.createElement("div",Xi({className:J("recharts-wrapper",_),style:L({position:"relative",cursor:"default",width:O,height:j},P)},z,{ref:function(D){x.container=D}}),E.createElement(rh,Xi({},M,{width:O,height:j,title:T,desc:$,style:yZ}),this.renderClipPath(),w0(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(A.Component);Q(y,"displayName",n),Q(y,"defaultProps",L({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},c)),Q(y,"getDerivedStateFromProps",function(m,g){var v=m.dataKey,x=m.data,S=m.children,w=m.width,_=m.height,O=m.layout,j=m.stackOffset,P=m.margin,k=g.dataStartIndex,T=g.dataEndIndex;if(g.updateId===void 0){var $=rw(m);return L(L(L({},$),{},{updateId:0},h(L(L({props:m},$),{},{updateId:0}),g)),{},{prevDataKey:v,prevData:x,prevWidth:w,prevHeight:_,prevLayout:O,prevStackOffset:j,prevMargin:P,prevChildren:S})}if(v!==g.prevDataKey||x!==g.prevData||w!==g.prevWidth||_!==g.prevHeight||O!==g.prevLayout||j!==g.prevStackOffset||!na(P,g.prevMargin)){var N=rw(m),M={chartX:g.chartX,chartY:g.chartY,isTooltipActive:g.isTooltipActive},I=L(L({},nw(g,x,O)),{},{updateId:g.updateId+1}),R=L(L(L({},N),M),I);return L(L(L({},R),h(L({props:m},R),g)),{},{prevDataKey:v,prevData:x,prevWidth:w,prevHeight:_,prevLayout:O,prevStackOffset:j,prevMargin:P,prevChildren:S})}if(!th(S,g.prevChildren)){var z,C,D,B,V=$t(S,Ta),W=V&&(z=(C=V.props)===null||C===void 0?void 0:C.startIndex)!==null&&z!==void 0?z:k,q=V&&(D=(B=V.props)===null||B===void 0?void 0:B.endIndex)!==null&&D!==void 0?D:T,ie=W!==k||q!==T,_e=!te(x),Me=_e&&!ie?g.updateId:g.updateId+1;return L(L({updateId:Me},h(L(L({props:m},g),{},{updateId:Me,dataStartIndex:W,dataEndIndex:q}),g)),{},{prevChildren:S,dataStartIndex:W,dataEndIndex:q})}return null}),Q(y,"renderActiveDot",function(m,g,v){var x;return A.isValidElement(m)?x=A.cloneElement(m,g):Z(m)?x=m(g):x=E.createElement(fs,g),E.createElement(ue,{className:"recharts-active-dot",key:v},x)});var b=A.forwardRef(function(g,v){return E.createElement(y,Xi({},g,{ref:v}))});return b.displayName=y.displayName,b},Rc=$A({chartName:"LineChart",GraphicalChild:$r,axisComponents:[{axisType:"xAxis",AxisComp:yi},{axisType:"yAxis",AxisComp:mi}],formatAxisMap:hY}),PZ=$A({chartName:"RadarChart",GraphicalChild:$a,axisComponents:[{axisType:"angleAxis",AxisComp:ps},{axisType:"radiusAxis",AxisComp:ds}],formatAxisMap:FH,defaultProps:{layout:"centric",startAngle:90,endAngle:-270,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}});function kA({title:e,subtitle:t,loading:n,empty:r,children:i,hideTitle:a}){return p.jsxs("div",{children:[!a&&e&&p.jsxs("div",{style:{marginBottom:10},children:[p.jsx("div",{style:{fontWeight:600,fontSize:15},children:e}),t&&p.jsx("div",{style:{fontSize:12.5,color:"var(--ink-mute)",marginTop:2},children:t})]}),n?p.jsx("div",{style:{height:260,display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,color:"var(--ink-faint)"},children:"加载中…"}):r?p.jsx("div",{style:{height:260,display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,color:"var(--ink-faint)"},children:"暂无数据"}):i]})}const aw={H1:"问题定义",H2:"判断决策",H3:"系统思维",ENV:"环境诊断",O1:"输出质量"};function AZ({current:e,baseline:t,title:n="能力雷达",hideTitle:r}){const i=e&&Object.values(e).some(o=>o!=null),a=Object.keys(aw).map(o=>({dimension:aw[o],current:(e==null?void 0:e[o])??0,baseline:(t==null?void 0:t[o])??0}));return p.jsx(kA,{title:n,empty:!i,hideTitle:r,children:p.jsx(hl,{width:"100%",height:340,children:p.jsxs(PZ,{data:a,cx:"50%",cy:"50%",outerRadius:"72%",children:[p.jsx(TP,{stroke:"#E4E4E7"}),p.jsx(ps,{dataKey:"dimension",tick:{fontSize:12,fill:"#3F3F46"}}),p.jsx(ds,{angle:90,domain:[0,100],tick:{fontSize:10,fill:"#A1A1AA",fontFamily:"Geist Mono"},stroke:"#E4E4E7",axisLine:!1}),p.jsx($a,{name:"当前",dataKey:"current",stroke:"#2563EB",fill:"#2563EB",fillOpacity:.16,strokeWidth:2}),t&&p.jsx($a,{name:"基线",dataKey:"baseline",stroke:"#A1A1AA",fill:"none",strokeWidth:1.5,strokeDasharray:"4 4"}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"})]})})})}const EZ={done:"已评分",pending:"待分析",error:"错误"},$Z={done:"chip--accent",pending:"",error:"chip--bad"},kZ=e=>e==null?"":e>=75?"s-hi":e>=50?"s-md":"s-lo";function TZ(e){const n=["scoreH1","scoreH2","scoreH3","scoreEnv","scoreO1"].map(r=>e[r]).filter(r=>r!=null);return n.length?Math.round(n.reduce((r,i)=>r+i,0)/n.length):null}const TA=["周日","周一","周二","周三","周四","周五","周六"];function Ev(e){if(!e)return"(无日期)";try{const t=new Date(e+"T00:00:00");return`${e} · ${TA[t.getDay()]}`}catch{return e}}function CZ(e){if(!e)return"无日期";try{const t=new Date(e+"T00:00:00");return`${e.slice(5).replace("-","/")} · ${TA[t.getDay()]}`}catch{return e}}function CA(e){const t=new Map;for(const r of e){const i=r.date||"";t.has(i)||t.set(i,[]),t.get(i).push(r)}const n=[];for(const[r,i]of t){const a=i.reduce((l,s)=>l+(s.cost||0),0),o=i.reduce((l,s)=>l+(s.duration||0),0);n.push({date:r,sessions:i,totals:{count:i.length,cost:a,duration:o}})}return n.sort((r,i)=>r.date?i.date&&r.date<i.date?1:-1:1),n}function NA({sessions:e=[],onSessionClick:t,groupByDate:n=!1,layout:r}){const i=r||(n?"grouped":"flat");if(!e||e.length===0)return p.jsx("div",{className:"panel",style:{padding:40,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:"这个时间段还没有会话"});if(i==="tabs")return p.jsx(NZ,{sessions:e,onSessionClick:t});if(i==="grouped"){const a=CA(e);return p.jsx("div",{className:"session-groups",children:a.map(o=>p.jsxs("section",{className:"session-group",children:[p.jsxs("header",{className:"session-group__head",children:[p.jsx("div",{className:"session-group__date",children:Ev(o.date)}),p.jsxs("div",{className:"session-group__totals",children:[p.jsxs("span",{children:[o.totals.count," 个会话"]}),p.jsx("span",{className:"session-group__sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:["$",o.totals.cost.toFixed(2)]}),p.jsx("span",{className:"session-group__sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:[o.totals.duration," 分钟"]})]})]}),p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsx($v,{sessions:o.sessions,onSessionClick:t})})]},o.date||"__nodate__"))})}return p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsx($v,{sessions:e,onSessionClick:t})})}function NZ({sessions:e,onSessionClick:t}){var l;const n=A.useMemo(()=>CA(e),[e]),[r,i]=A.useState(((l=n[0])==null?void 0:l.date)||""),a=n.find(s=>(s.date||"")===r)||n[0],o=s=>{if(s.key!=="ArrowLeft"&&s.key!=="ArrowRight")return;s.preventDefault();const u=n.findIndex(c=>(c.date||"")===r),f=s.key==="ArrowRight"?Math.min(n.length-1,u+1):Math.max(0,u-1);i(n[f].date||"")};return p.jsxs("div",{className:"day-tabs",children:[p.jsx("div",{className:"day-tabs__bar",role:"tablist","aria-label":"按天查看会话",onKeyDown:o,children:n.map(s=>{const u=s.date||"__nodate__",f=(s.date||"")===r;return p.jsxs("button",{role:"tab",type:"button","aria-selected":f,tabIndex:f?0:-1,className:`day-tab ${f?"day-tab--active":""}`,onClick:()=>i(s.date||""),children:[p.jsx("span",{className:"day-tab__date",children:CZ(s.date)}),p.jsx("span",{className:"day-tab__count",children:s.totals.count})]},u)})}),a&&p.jsxs("div",{className:"day-tabs__panel",role:"tabpanel","aria-label":`${Ev(a.date)} 的会话`,children:[p.jsxs("div",{className:"day-tabs__meta",children:[p.jsx("span",{className:"day-tabs__meta-strong",children:Ev(a.date)}),p.jsx("span",{className:"day-tabs__meta-sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:[a.totals.count," 个会话"]}),p.jsx("span",{className:"day-tabs__meta-sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:["$",a.totals.cost.toFixed(2)]}),p.jsx("span",{className:"day-tabs__meta-sep","aria-hidden":"true",children:"/"}),p.jsxs("span",{children:[a.totals.duration," 分钟"]})]}),p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsx($v,{sessions:a.sessions,onSessionClick:t})})]})]})}function $v({sessions:e,onSessionClick:t}){return p.jsxs("table",{className:"tbl",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"会话"}),p.jsx("th",{className:"num",style:{width:100},children:"费用"}),p.jsx("th",{className:"num",style:{width:90},children:"时长"}),p.jsx("th",{className:"num",style:{width:90},children:"综合分"}),p.jsx("th",{style:{width:100},children:"状态"})]})}),p.jsx("tbody",{children:e.map(n=>{const r=TZ(n);return p.jsxs("tr",{className:"click",onClick:()=>t==null?void 0:t(n.id),children:[p.jsx("td",{children:p.jsxs("div",{className:"title",children:[n.title||"(未命名)",p.jsxs("small",{children:[n.source,n.model?` · ${n.model}`:""]})]})}),p.jsxs("td",{className:"num",children:["$",(n.cost??0).toFixed(2)]}),p.jsxs("td",{className:"num",children:[n.duration??0," 分钟"]}),p.jsx("td",{className:"num",children:p.jsx("span",{className:`score ${kZ(r)}`,children:r??"-"})}),p.jsx("td",{children:p.jsx("span",{className:`chip ${$Z[n.status]||""}`,children:EZ[n.status]||n.status})})]},n.id)})})]})}function Lm({rows:e=[],emptyText:t="这个时间段还没有带项目信息的会话"}){const n=xi();return e.length?p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsxs("table",{className:"tbl",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"项目"}),p.jsx("th",{className:"num",style:{width:80},children:"会话"}),p.jsx("th",{className:"num",style:{width:110},children:"费用"})]})}),p.jsx("tbody",{children:e.map(r=>p.jsxs("tr",{className:"click",onClick:()=>n(`/project/${encodeURIComponent(r.project)}`),children:[p.jsx("td",{children:p.jsxs("div",{className:"title",title:r.project,children:[MZ(r.project),p.jsx("small",{children:r.project})]})}),p.jsx("td",{className:"num",children:r.sessions}),p.jsxs("td",{className:"num",children:["$",(r.cost??0).toFixed(2)]})]},r.project))})]})}):p.jsx("div",{style:{padding:32,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:t})}function MZ(e){if(!e)return"";const t=String(e).split(/[\\/]/).filter(Boolean),n=t[t.length-1]||e;return n.length>32?n.slice(0,30)+"…":n}function MA(e,t=5e3){const[n,r]=A.useState(null),[i,a]=A.useState(!0),[o,l]=A.useState(null);return A.useEffect(()=>{let s=!1,u=null,f=!1;r(null),a(!0),l(null);const c=()=>{u=setTimeout(d,t)},d=()=>{fetch(e).then(h=>{if(!h.ok)throw new Error(`HTTP ${h.status}`);return h.json()}).then(h=>{var b,m;if(!h.ok)throw new Error(((b=h.error)==null?void 0:b.message)||"unknown error");if(s)return;f=!0,r(h.data),l(null),a(!1);const y=(m=h.data)==null?void 0:m.analysisStatus;y&&y.analyzedCount<y.totalCount&&c()}).catch(h=>{s||(f?c():(l(h.message),a(!1)))})};return d(),()=>{s=!0,u&&clearTimeout(u)}},[e,t]),{data:n,loading:i,error:o}}function IZ(){const e=xi(),{data:t,loading:n,error:r}=MA("/api/reports/yesterday");if(n)return p.jsx(qe,{title:"昨日复盘",children:p.jsx("p",{className:"state state-blink",children:"正在加载数据"})});if(r)return p.jsx(qe,{title:"昨日复盘",children:p.jsx("p",{className:"state err",children:r})});if(!t)return null;const{date:i,stats:a,dimensionsV2:o,sessions:l,topProjects:s,analysisStatus:u}=t,f=u&&u.analyzedCount<u.totalCount,c=u&&u.status==="running";return p.jsxs("article",{children:[p.jsx("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:12},children:p.jsx(LZ,{running:c,date:i})}),p.jsx(qe,{title:"昨日复盘",meta:p.jsxs(p.Fragment,{children:[p.jsx("b",{children:i})," · 周",DZ(i)]})}),f&&p.jsx(Dm,{children:u.status==="running"?`分析进行中 — 已评分 ${u.analyzedCount} / ${u.totalCount} 个会话`:`${u.totalCount-u.analyzedCount} 个会话尚未分析 — 分析任务空闲,重启服务或手动触发可补全`}),p.jsxs("div",{className:"hero",children:[p.jsxs("div",{className:"hero__main",children:[p.jsx("div",{className:"hero__label",children:"昨日总支出"}),p.jsxs("div",{className:"hero__big",children:["$",(a.cost||0).toFixed(2),p.jsx("span",{className:"u",children:"USD"})]}),p.jsxs("div",{className:"hero__sub",children:[p.jsx("b",{children:a.sessions})," 个会话 · ",p.jsx("b",{children:a.activeMinutes})," 分钟活跃 · ",p.jsx("b",{children:Rn(a.totalTokens)})," tokens"]})]}),p.jsxs("div",{className:"hero__side",children:[p.jsx(Hn,{name:"均价 / 会话",v:`$${(a.avgCost??0).toFixed(2)}`}),p.jsx(Hn,{name:"错误 / 会话",v:`${a.avgErrors??0}`}),p.jsx(Hn,{name:"Tokens / 会话",v:Rn(a.avgTokens??0)})]})]}),p.jsxs("div",{className:"stats",children:[p.jsx(Oe,{label:"会话",value:a.sessions,delta:`均 ${a.avgActiveMinutes??0} 分钟`}),p.jsx(Oe,{label:"活跃时长",value:a.activeMinutes,unit:"分钟"}),p.jsx(Oe,{label:"Tokens",value:Rn(a.totalTokens),delta:`均 ${Rn(a.avgTokens??0)}`}),p.jsx(Oe,{label:"错误",value:a.errors,delta:`均 ${a.avgErrors??0} / 会话`})]}),p.jsx(we,{title:"能力诊断",children:p.jsx(IA,{dimensionsV2:o})}),p.jsx(we,{title:"Top 项目",meta:"按昨日费用降序 · 点击查看项目 AI 分析",children:p.jsx(Lm,{rows:s||[],emptyText:"昨日没有带项目信息的会话"})}),p.jsx(we,{title:"会话列表",meta:`${(l||[]).length} 个会话`,children:p.jsx(NA,{sessions:l,onSessionClick:d=>e(`/session/${d}`)})}),p.jsx(vs,{date:i})]})}function qe({title:e,meta:t,children:n}){return p.jsxs(p.Fragment,{children:[p.jsxs("header",{className:"phead",children:[p.jsx("h1",{className:"phead__title",children:e}),t&&p.jsx("div",{className:"phead__meta",children:t})]}),n]})}function we({title:e,meta:t,actions:n,children:r,collapsible:i=!1,defaultOpen:a=!1}){const[o,l]=A.useState(i?a:!0);return p.jsxs("section",{className:"section",children:[p.jsxs("header",{className:"section__head"+(i?" section__head--toggle":""),onClick:i?()=>l(s=>!s):void 0,role:i?"button":void 0,"aria-expanded":i?o:void 0,children:[p.jsxs("h2",{className:"section__title",children:[i&&p.jsx("span",{className:"section__caret",children:o?"▾":"▸"}),e]}),p.jsxs("span",{className:"section__meta",onClick:s=>s.stopPropagation(),children:[t,n]})]}),(!i||o)&&r]})}function IA({dimensionsV2:e}){const t=(e==null?void 0:e.current)&&Object.values(e.current).some(n=>n!=null);return p.jsx(jn,{title:"能力雷达",tag:"v2 模型",children:t?p.jsx(AZ,{current:e.current,baseline:e.baseline,hideTitle:!0}):p.jsx("div",{style:{padding:32,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:"区间内还没有可用的能力分析结果"})})}function Oe({label:e,value:t,unit:n,delta:r}){return p.jsxs("div",{className:"stat",children:[p.jsx("div",{className:"stat__label",children:e}),p.jsxs("div",{className:"stat__val",children:[t,n&&p.jsx("span",{className:"u",children:n})]}),r&&p.jsx("div",{className:"stat__delta",children:r})]})}function jn({title:e,tag:t,children:n,style:r}){return p.jsxs("div",{className:"panel",style:r,children:[(e||t)&&p.jsxs("div",{className:"panel__head",children:[p.jsx("span",{className:"panel__title",children:e}),t&&p.jsx("span",{className:"panel__tag",children:t})]}),n]})}function Hn({name:e,v:t,hint:n}){return p.jsxs("div",{className:"dial",children:[p.jsx("div",{className:"dial__name",children:e}),p.jsx("div",{className:"dial__val",children:t}),n&&p.jsx("div",{className:"dial__hint",children:n})]})}function Dm({children:e}){return p.jsx("div",{className:"alert",children:e})}function LZ({running:e,date:t}){const[n,r]=A.useState(!1),i=n||e,a=i||!t;async function o(){if(!a){r(!0);try{await fetch("/api/analysis/trigger",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({force:!0,dates:[t]})})}catch{}finally{r(!1)}}}return p.jsx("button",{type:"button",className:"btn",disabled:a,onClick:o,title:"重新分析当日全部会话:每个会话一次 LLM 调用,刷新五维打分与优化建议",children:i?"重新分析中…":"重新分析"})}function vs(){return p.jsxs("footer",{className:"footer",children:[p.jsx("span",{className:"mark",children:"Agent Boss"}),p.jsx("span",{children:"数据仅保存在本地"})]})}function Rn(e){if(e==null)return"0";const t=Number(e);return Math.abs(t)>=1e6?(t/1e6).toFixed(1)+"M":Math.abs(t)>=1e3?(t/1e3).toFixed(1)+"k":String(t)}function DZ(e){if(!e)return"";try{const t=new Date(e+"T00:00:00");return["日","一","二","三","四","五","六"][t.getDay()]}catch{return""}}const kv=[{key:"cost",label:"费用",kind:"multiLine",keySuffix:"cost",yFmt:e=>`$${Rn(e)}`,tipFmt:e=>`$${(+e).toFixed(2)}`},{key:"sessions",label:"会话数",kind:"multiLine",keySuffix:"sessions",yFmt:e=>String(e),tipFmt:e=>`${e} 个`},{key:"hitRate",label:"缓存命中率",kind:"singleLine",dataKey:"hitRate",color:"#10B981",yFmt:e=>`${e}%`,tipFmt:e=>`${e}%`,yDomain:[0,100]},{key:"errorRate",label:"错误率",kind:"singleLine",dataKey:"errorRate",color:"#EF4444",yFmt:e=>`${e}%`,tipFmt:e=>`${e}%`},{key:"all",label:"全部",kind:"normalized",series:[{key:"cost",label:"费用",color:"#2563EB",sumFromSources:"cost",tipFmt:e=>`$${(+e).toFixed(2)}`},{key:"sessions",label:"会话数",color:"#A855F7",sumFromSources:"sessions",tipFmt:e=>`${e} 个`},{key:"hitRate",label:"缓存命中率",color:"#10B981",dataKey:"hitRate",tipFmt:e=>`${e}%`},{key:"errorRate",label:"错误率",color:"#EF4444",dataKey:"errorRate",tipFmt:e=>`${e}%`}]}],RZ={opencode:"#2563EB","claude-code":"#10B981"},ow=["#F59E0B","#A855F7","#EC4899","#14B8A6"],LA={opencode:"OpenCode","claude-code":"Claude Code"},BZ=[{key:"7",label:"本周",hint:"7 天"},{key:"14",label:"双周",hint:"14 天"},{key:"30",label:"本月",hint:"30 天"},{key:"90",label:"季度",hint:"90 天"},{key:"all",label:"全部",hint:"全部"}],zZ="14",Yi={fontSize:11,fill:"#71717A",fontFamily:"Geist Mono"},Tv={stroke:"#E4E4E7"},Cv={strokeDasharray:"3 3",stroke:"#F1F1F3",vertical:!1},Nv={fontSize:12,border:"1px solid #E4E4E7",background:"#FFFFFF",color:"#18181B",fontFamily:"Geist Mono",borderRadius:10,boxShadow:"0 12px 32px rgba(24,24,27,0.12)"};function FZ(){const e=xi(),[t,n]=A.useState(null),[r,i]=A.useState(!0),[a,o]=A.useState(null),[l,s]=A.useState("cost"),[u,f]=A.useState(zZ);if(A.useEffect(()=>{let v=!1;return i(!0),fetch(`/api/overview?days=${encodeURIComponent(u)}`).then(x=>x.ok?x.json():Promise.reject(new Error(`HTTP ${x.status}`))).then(x=>{var S;v||(x&&x.ok?(n(x.data),o(null)):o(((S=x==null?void 0:x.error)==null?void 0:S.message)||"加载失败"))}).catch(x=>{v||o(x.message)}).finally(()=>{v||i(!1)}),()=>{v=!0}},[u]),r&&!t)return p.jsx(qe,{title:"首页",children:p.jsx("p",{className:"state state-blink",children:"正在加载数据"})});if(a)return p.jsx(qe,{title:"首页",children:p.jsx("p",{className:"state err",children:a})});if(!t)return null;const{range:c,trend:d,topProjects:h,recentSessions:y,topTools:b}=t,m=kv.find(v=>v.key===l)||kv[0],g=((d==null?void 0:d.rows)||[]).map(v=>({...v,date:qZ(v.date)}));return p.jsxs("article",{children:[p.jsx(qe,{title:"首页",meta:p.jsxs(p.Fragment,{children:[c.label," · ",c.from," → ",c.to,r?" · 加载中…":""]})}),p.jsx(we,{title:"时间范围",children:p.jsx(VZ,{current:u,onChange:f})}),p.jsx(we,{title:"趋势",actions:p.jsx(KZ,{current:l,onChange:s}),children:p.jsx(jn,{title:`每日 · ${m.label}`,tag:UZ(m),children:p.jsx(WZ,{rows:g,sources:(d==null?void 0:d.sources)||[],metric:m})})}),p.jsx(we,{title:"Top 项目",meta:`${c.label} · 按费用降序`,children:p.jsx(Lm,{rows:h})}),p.jsx(we,{title:"最近 10 个会话",meta:"不限时间",children:p.jsx(XZ,{rows:y,onClick:v=>e(`/session/${v}`)})}),p.jsx(we,{title:"工具使用 Top 10",meta:`${c.label} · 按调用次数`,collapsible:!0,defaultOpen:!1,children:p.jsx(jn,{children:(b||[]).length===0?p.jsx(Rm,{children:"暂无工具调用"}):p.jsx(GZ,{rows:b})})})]})}function UZ(e){switch(e.key){case"hitRate":return"cache_read / (cache_read + cache_write + input)";case"errorRate":return"errors / messages";case"cost":return"按来源叠加";case"sessions":return"按来源叠加";case"all":return"各指标按当前范围归一化到 0–100,tooltip 显示原始值";default:return null}}function WZ({rows:e,sources:t,metric:n}){if(!e||e.length===0)return p.jsx(Rm,{children:"暂无数据"});if(n.kind==="normalized")return p.jsx(HZ,{rows:e,sources:t,metric:n});if(n.kind==="singleLine")return p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:e,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{...Cv}),p.jsx(yi,{dataKey:"date",tick:Yi,tickLine:!1,axisLine:Tv}),p.jsx(mi,{tick:Yi,tickLine:!1,axisLine:!1,width:48,domain:n.yDomain||["auto","auto"],tickFormatter:n.yFmt}),p.jsx(kt,{contentStyle:Nv,labelStyle:{color:"#71717A"},formatter:i=>n.tipFmt?n.tipFmt(i):i}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),p.jsx($r,{type:"monotone",dataKey:n.dataKey,stroke:n.color,name:n.label,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:n.color},activeDot:{r:5,strokeWidth:0}})]})});const r=t.map((i,a)=>({key:`${i}_${n.keySuffix}`,color:RZ[i]||ow[a%ow.length],name:`${LA[i]||i}`}));return p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:e,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{...Cv}),p.jsx(yi,{dataKey:"date",tick:Yi,tickLine:!1,axisLine:Tv}),p.jsx(mi,{tick:Yi,tickLine:!1,axisLine:!1,width:48,tickFormatter:n.yFmt}),p.jsx(kt,{contentStyle:Nv,labelStyle:{color:"#71717A"},formatter:i=>n.tipFmt?n.tipFmt(i):i}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),r.map(i=>p.jsx($r,{type:"monotone",dataKey:i.key,stroke:i.color,name:i.name,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:i.color},activeDot:{r:5,strokeWidth:0}},i.key))]})})}function HZ({rows:e,sources:t,metric:n}){const r=n.series||[],i={};for(const u of r)i[u.key]=[];for(const u of e)for(const f of r){let c=0;if(f.sumFromSources)for(const d of t)c+=Number(u[`${d}_${f.sumFromSources}`]||0);else c=Number(u[f.dataKey]||0);i[f.key].push(c)}const a={};for(const u of r){const f=i[u.key];let c=1/0,d=-1/0;for(const h of f)h<c&&(c=h),h>d&&(d=h);isFinite(c)||(c=0,d=0),a[u.key]={lo:c,hi:d}}const o=(u,{lo:f,hi:c})=>c===f?0:Math.round((u-f)/(c-f)*1e3)/10,l=e.map((u,f)=>{const c={date:u.date};for(const d of r){const h=i[d.key][f];c[`norm_${d.key}`]=o(h,a[d.key]),c[`__raw_${d.key}`]=h}return c}),s=(u,f,c)=>{var b;const d=r.find(m=>m.label===f);if(!d)return u;const h=(b=c==null?void 0:c.payload)==null?void 0:b[`__raw_${d.key}`];return[`${d.tipFmt?d.tipFmt(h):String(h)} (${u}%)`,f]};return p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:l,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{...Cv}),p.jsx(yi,{dataKey:"date",tick:Yi,tickLine:!1,axisLine:Tv}),p.jsx(mi,{tick:Yi,tickLine:!1,axisLine:!1,width:48,domain:[0,100],tickFormatter:u=>`${u}%`}),p.jsx(kt,{contentStyle:Nv,labelStyle:{color:"#71717A"},formatter:s}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),r.map(u=>p.jsx($r,{type:"monotone",dataKey:`norm_${u.key}`,stroke:u.color,name:u.label,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:u.color},activeDot:{r:5,strokeWidth:0}},u.key))]})})}function VZ({current:e,onChange:t}){return p.jsx("div",{className:"seg",role:"tablist","aria-label":"时间范围",children:BZ.map(n=>p.jsx("button",{role:"tab","aria-selected":e===n.key,title:n.hint,onClick:()=>t(n.key),children:n.label},n.key))})}function KZ({current:e,onChange:t}){return p.jsx("div",{className:"seg",role:"tablist","aria-label":"趋势指标",children:kv.map(n=>p.jsx("button",{role:"tab","aria-selected":e===n.key,onClick:()=>t(n.key),children:n.label},n.key))})}function GZ({rows:e}){const t=Math.max(1,...e.map(n=>n.calls));return p.jsx("div",{style:{padding:"4px 0 8px"},children:e.map(n=>{const r=Math.round(n.calls/t*100),i=n.errorRate>=30?"chip--bad":n.errorRate>=10?"chip--warn":n.errorRate>0?"chip--info":"";return p.jsxs("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 130px",alignItems:"center",gap:12,padding:"6px 4px"},children:[p.jsx("div",{style:{fontFamily:"Geist Mono",fontSize:12,color:"var(--ink, #18181B)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:n.tool,children:n.tool}),p.jsx("div",{style:{position:"relative",height:14,background:"#F4F4F5",borderRadius:4},children:p.jsx("div",{style:{position:"absolute",left:0,top:0,bottom:0,width:`${r}%`,background:"#2563EB",borderRadius:4}})}),p.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:8,fontFamily:"Geist Mono",fontSize:12},children:[p.jsxs("span",{style:{color:"var(--ink, #18181B)",fontVariantNumeric:"tabular-nums"},children:[Rn(n.calls)," 次"]}),n.errorRate>0&&p.jsxs("span",{className:`chip ${i}`,title:`${n.errors} 次失败`,children:[n.errorRate,"%"]})]})]},n.tool)})})}function XZ({rows:e=[],onClick:t}){return e.length?p.jsx("div",{className:"panel panel--flush",style:{overflowX:"auto"},children:p.jsxs("table",{className:"tbl",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"会话"}),p.jsx("th",{style:{width:130},children:"项目"}),p.jsx("th",{className:"num",style:{width:90},children:"消息"}),p.jsx("th",{className:"num",style:{width:100},children:"费用"}),p.jsx("th",{style:{width:160},children:"时间"}),p.jsx("th",{style:{width:90},children:"状态"})]})}),p.jsx("tbody",{children:e.map(n=>p.jsxs("tr",{className:"click",onClick:()=>t==null?void 0:t(n.id),children:[p.jsx("td",{children:p.jsxs("div",{className:"title",children:[n.title||"(未命名)",p.jsxs("small",{children:[LA[n.source]||n.source,n.model?` · ${n.model}`:""]})]})}),p.jsx("td",{title:n.project||"",style:{color:"var(--ink-mute)",fontSize:12},children:n.project?YZ(n.project):"—"}),p.jsx("td",{className:"num",children:n.messageCount}),p.jsxs("td",{className:"num",children:["$",(n.cost??0).toFixed(2)]}),p.jsx("td",{style:{color:"var(--ink-mute)",fontSize:12,fontVariantNumeric:"tabular-nums"},children:QZ(n.startedAt)}),p.jsx("td",{children:ZZ(n)})]},n.id))})]})}):p.jsx(Rm,{children:"还没有任何会话"})}function Rm({children:e}){return p.jsx("div",{style:{padding:32,textAlign:"center",color:"var(--ink-faint)",fontSize:13},children:e})}function YZ(e){if(!e)return"";const t=String(e).split(/[\\/]/).filter(Boolean),n=t[t.length-1]||e;return n.length>32?n.slice(0,30)+"…":n}function qZ(e){return e&&e.length>=10?e.slice(5):e}function QZ(e){if(!e)return"";try{const t=new Date(e);if(Number.isNaN(t.getTime()))return e;const n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),a=String(t.getHours()).padStart(2,"0"),o=String(t.getMinutes()).padStart(2,"0");return`${n}-${r}-${i} ${a}:${o}`}catch{return e}}function ZZ(e){return e.reverted?p.jsx("span",{className:"chip chip--bad",children:"已回滚"}):e.errorCount>0?p.jsxs("span",{className:"chip chip--warn",children:[e.errorCount," 错"]}):p.jsx("span",{className:"chip",children:"正常"})}function JZ({data:e,xKey:t="date",lines:n=[],title:r="",hideTitle:i}){const a=Array.isArray(e)&&e.length>0;return p.jsx(kA,{title:r,empty:!a,hideTitle:i,children:p.jsx(hl,{width:"100%",height:300,children:p.jsxs(Rc,{data:e,margin:{top:8,right:16,left:0,bottom:4},children:[p.jsx(Vl,{strokeDasharray:"3 3",stroke:"#F1F1F3",vertical:!1}),p.jsx(yi,{dataKey:t,tick:{fontSize:11,fill:"#71717A",fontFamily:"Geist Mono"},tickLine:!1,axisLine:{stroke:"#E4E4E7"}}),p.jsx(mi,{tick:{fontSize:11,fill:"#A1A1AA",fontFamily:"Geist Mono"},tickLine:!1,axisLine:!1,width:40}),p.jsx(kt,{cursor:{stroke:"#E4E4E7",strokeWidth:1},contentStyle:{fontSize:12,border:"1px solid #E4E4E7",background:"#FFFFFF",color:"#18181B",fontFamily:"Geist Mono",borderRadius:10,boxShadow:"0 12px 32px rgba(24,24,27,0.12)"},labelStyle:{color:"#71717A"}}),p.jsx(dn,{wrapperStyle:{fontSize:12,paddingTop:12,color:"#71717A"},iconType:"plainline"}),n.map(o=>p.jsx($r,{type:"monotone",dataKey:o.key,stroke:o.color,name:o.name,strokeWidth:2,dot:{r:3,strokeWidth:0,fill:o.color},activeDot:{r:5,strokeWidth:0}},o.key))]})})})}function eJ(){const e=xi(),{data:t,loading:n,error:r}=MA("/api/reports/weekly");if(n)return p.jsx(qe,{title:"本周复盘",children:p.jsx("p",{className:"state state-blink",children:"正在加载数据"})});if(r)return p.jsx(qe,{title:"本周复盘",children:p.jsx("p",{className:"state err",children:r})});if(!t)return null;const{weekStart:i,weekEnd:a,stats:o,dimensionsV2:l,sessions:s,topProjects:u,dailyBreakdown:f,analysisStatus:c}=t,d=c&&c.analyzedCount<c.totalCount,h=(f||[]).map(y=>({date:y.date,cost:y.cost,sessions:y.sessions}));return p.jsxs("article",{children:[p.jsx(qe,{title:"本周复盘",meta:p.jsxs(p.Fragment,{children:[p.jsx("b",{children:i})," 至 ",p.jsx("b",{children:a})]})}),d&&p.jsx(Dm,{children:c.status==="running"?`分析进行中,已评分 ${c.analyzedCount} / ${c.totalCount} 个会话`:`${c.totalCount-c.analyzedCount} 个会话尚未分析。分析任务空闲,重启服务或手动触发可补全`}),p.jsxs("div",{className:"hero",children:[p.jsxs("div",{className:"hero__main",children:[p.jsx("div",{className:"hero__label",children:"本周总支出"}),p.jsxs("div",{className:"hero__big",children:["$",(o.cost||0).toFixed(2),p.jsx("span",{className:"u",children:"USD"})]}),p.jsxs("div",{className:"hero__sub",children:[p.jsx("b",{children:o.sessions})," 个会话 · ",p.jsx("b",{children:o.activeMinutes})," 分钟活跃 · ",p.jsx("b",{children:Rn(o.totalTokens)})," tokens"]})]}),p.jsxs("div",{className:"hero__side",children:[p.jsx(Hn,{name:"均价 / 会话",v:`$${(o.avgCost??0).toFixed(2)}`}),p.jsx(Hn,{name:"活跃 / 会话",v:`${o.avgActiveMinutes??0} 分钟`}),p.jsx(Hn,{name:"Tokens / 会话",v:Rn(o.avgTokens??0)})]})]}),p.jsxs("div",{className:"stats",children:[p.jsx(Oe,{label:"会话",value:o.sessions}),p.jsx(Oe,{label:"活跃时长",value:o.activeMinutes,unit:"分钟"}),p.jsx(Oe,{label:"Tokens",value:Rn(o.totalTokens)}),p.jsx(Oe,{label:"错误",value:o.errors,delta:`均 ${o.avgErrors??0} / 会话`})]}),p.jsx(we,{title:"能力诊断",children:p.jsx(IA,{dimensionsV2:l})}),h.length>1&&p.jsx(we,{title:"每日走势",children:p.jsx(jn,{title:"费用与会话数",children:p.jsx(JZ,{data:h,xKey:"date",lines:[{key:"cost",color:"#2563EB",name:"费用 ($)"},{key:"sessions",color:"#A1A1AA",name:"会话数"}],hideTitle:!0})})}),p.jsx(we,{title:"Top 项目",meta:"按本周费用降序 · 点击查看项目 AI 分析",children:p.jsx(Lm,{rows:u||[],emptyText:"本周没有带项目信息的会话"})}),p.jsx(we,{title:"会话列表",meta:`本周 ${(s||[]).length} 个会话 · 按天切换`,children:p.jsx(NA,{sessions:s,layout:"tabs",onSessionClick:y=>e(`/session/${y}`)})}),p.jsx(vs,{date:a})]})}const aa={display:"inline-flex",alignItems:"center",gap:6,padding:"4px 10px",fontSize:12,fontFamily:"inherit",borderRadius:3,border:"1px solid var(--line)",background:"var(--bg-panel, transparent)",cursor:"pointer",color:"var(--ink)",whiteSpace:"nowrap"},tJ={...aa,opacity:.55,cursor:"wait"},nJ={...aa,opacity:.4,cursor:"not-allowed"},Ys={pending:{glyph:"⏳",text:"准备中…"},running:{glyph:"⏳",text:"运行中…"},success:{glyph:"✓",text:"成功"},failed:{glyph:"✗",text:"失败"},cancelled:{glyph:"⊘",text:"已取消"}},rJ={ALREADY_RUNNING:"已有任务运行中",NO_SESSION:"会话不存在",NO_ADVICE:"请先生成 advice",NO_ADVICE_ITEM:"建议已变化,请重新生成 advice",NOT_ACTIONABLE:"该建议不可自动执行",INVALID_PROJECT_PATH:"项目目录不存在",NOT_WHITELISTED:"需要确认项目白名单",NO_CLI:"未检测到 opencode / claude",BAD_REQUEST:"参数错误",INTERNAL:"内部错误"};function iJ(e){return e==null?"":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m${Math.round(e%6e4/1e3)}s`}function DA({item:e,adviceKey:t,sessionId:n,project:r,whitelistPaths:i,runs:a,globalBusyRunId:o,onStart:l,onRefresh:s,onAdviceStale:u}){const[f,c]=A.useState(null),[d,h]=A.useState(!1),[y,b]=A.useState(null);if(!e||e.actionable!==!0)return null;const m=a&&a.length>0?a[0]:null,g=m&&(m.status==="pending"||m.status==="running"),v=!!o&&(!m||m.id!==o),x=(i||[]).includes(r);let S,w=aa,_=null,O="";const j=r?`让 AI 在 ${r} 目录运行 opencode / claude 执行这条建议(可能修改文件、运行 shell、访问网络)。
|
|
138
138
|
如需先查看会做什么,请点下方「查看 / 复制将要执行的内容」。`:"让 AI 自动执行这条建议(可能修改项目目录里的文件)";if(g)w=tJ,S=p.jsxs(p.Fragment,{children:[p.jsx("span",{children:Ys[m.status].glyph}),Ys[m.status].text]}),O="执行进行中";else if(v)w=nJ,S=p.jsxs(p.Fragment,{children:[p.jsx("span",{children:"⏸"}),"让 AI 自动执行"]}),O="已有任务运行中,稍后再试";else if(m){const N=Ys[m.status]||Ys.failed;S=p.jsxs(p.Fragment,{children:[p.jsx("span",{children:"↻"}),"重新让 AI 执行",p.jsxs("small",{style:{marginLeft:6,color:"var(--ink-faint)"},children:["· ",N.glyph," ",N.text," · ",iJ(m.durationMs)]})]}),_=()=>k(),O=j}else S="让 AI 自动执行",_=()=>k(),O=j;function P(N){if(N.code==="NOT_WHITELISTED"){c("confirm");return}b({code:N.code,message:N.message}),(N.code==="NOT_ACTIONABLE"||N.code==="NO_ADVICE_ITEM")&&u&&u()}async function k(N=!1){b(null),h(!0);const M=await l({ephemeral:N});if(h(!1),!M.ok){P(M);return}s()}async function T(){c(null),h(!0);const N=await l({ephemeral:!1,addToWhitelist:!0});h(!1),N.ok?s():P(N)}async function $(){c(null),h(!0);const N=await l({ephemeral:!0,addToWhitelist:!1});h(!1),N.ok?s():P(N)}return p.jsxs(p.Fragment,{children:[p.jsx("button",{type:"button",onClick:_,disabled:!_||d,style:w,title:O||void 0,children:d?"…":S}),y&&p.jsxs("small",{style:{marginLeft:8,color:"var(--bad, #c33)",fontSize:11},children:[rJ[y.code]||y.message," ",p.jsx("button",{type:"button",onClick:()=>b(null),style:{background:"none",border:"none",padding:0,cursor:"pointer",color:"var(--ink-faint)"},children:"✕"})]}),f==="confirm"&&p.jsx(aJ,{project:r,inWhitelist:x,onCancel:()=>c(null),onConfirmAdd:T,onConfirmEphemeral:$})]})}function aJ({project:e,inWhitelist:t,onCancel:n,onConfirmAdd:r,onConfirmEphemeral:i}){return p.jsx("div",{role:"dialog","aria-modal":"true",style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.45)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},onClick:a=>{a.target===a.currentTarget&&n()},children:p.jsxs("div",{style:{background:"var(--bg, #fff)",color:"var(--ink)",padding:18,maxWidth:520,width:"90%",borderRadius:6,border:"1px solid var(--line)",boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[p.jsx("h3",{style:{margin:0,fontSize:15},children:"确认让 AI 自动执行"}),p.jsxs("p",{style:{marginTop:12,fontSize:13.5,lineHeight:1.6},children:["点击确认后,Agent Boss 会在下面这个目录里启动一个 ",p.jsx("code",{children:"opencode"})," /",p.jsx("code",{children:"claude"})," 子进程,把这条建议作为 prompt 让它执行。 它可能",p.jsx("strong",{children:"修改文件、运行 shell 命令、访问网络"}),":"]}),p.jsx("pre",{style:{margin:"8px 0 14px 0",padding:"8px 10px",background:"var(--bg-panel, #f5f5f5)",border:"1px solid var(--line-soft)",borderRadius:3,fontFamily:"var(--font-mono, monospace)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-all"},children:e}),p.jsx("p",{style:{fontSize:12,color:"var(--ink-mute)",lineHeight:1.6,whiteSpace:"pre-line"},children:t?"(该目录已在白名单中,本次确认仅作再次提醒)":`点「加入白名单」后,以后对该目录的执行不再弹本对话框,直接静默运行。
|
|
139
139
|
只想跑这一次?请选「仅本次执行」。
|
|
140
140
|
想先看清楚 AI 会做什么?关掉本对话框,点建议下方的「查看 / 复制将要执行的内容」。`}),p.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",marginTop:14,flexWrap:"wrap"},children:[p.jsx("button",{type:"button",onClick:n,style:{...aa},children:"取消"}),p.jsx("button",{type:"button",onClick:i,style:{...aa},children:"仅本次执行"}),p.jsx("button",{type:"button",onClick:r,style:{...aa,background:"var(--accent, #d96)",borderColor:"var(--accent, #d96)",color:"#fff",fontWeight:600},children:"确认并加入白名单"})]})]})})}const oJ={marginTop:8,border:"1px solid var(--line-soft)",borderRadius:3,background:"transparent",fontSize:12.5},lJ={padding:"6px 10px",background:"var(--bg-panel, transparent)",cursor:"pointer",display:"flex",alignItems:"center",gap:8,borderBottom:"1px solid var(--line-soft)",flexWrap:"wrap"},lw={success:{bg:"var(--ok, #2c8)",label:"✓ 成功"},failed:{bg:"var(--bad, #c33)",label:"✗ 失败"},cancelled:{bg:"var(--ink-faint)",label:"⊘ 已取消"},running:{bg:"var(--accent, #d96)",label:"⏳ 运行中"},pending:{bg:"var(--ink-faint)",label:"⏳ 准备中"}};function sJ(e){return e==null?"—":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m${Math.round(e%6e4/1e3)}s`}function Jd(e){if(!e)return"—";try{const t=new Date(e),n=String(t.getHours()).padStart(2,"0"),r=String(t.getMinutes()).padStart(2,"0"),i=String(t.getSeconds()).padStart(2,"0");return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${n}:${r}:${i}`}catch{return e}}function RA({runs:e,onCancel:t}){const[n,r]=A.useState(0),[i,a]=A.useState(!1),[o,l]=A.useState(!0),[s,u]=A.useState(!1),[f,c]=A.useState(null);if(A.useEffect(()=>{if(!e||e.length===0)return;const m=e[0];(m.status==="running"||m.status==="pending")&&(a(!0),r(0))},[e&&e[0]&&e[0].status,e&&e[0]&&e[0].id]),!e||e.length===0)return null;const d=f||e[n]||e[0],h=lw[d.status]||lw.failed,y=d.status==="running"||d.status==="pending";async function b(){try{const g=await(await fetch(`/api/execution/${d.id}?full=1`)).json();g.ok&&c(g.data.run)}catch{}}return p.jsxs("div",{style:oJ,children:[p.jsxs("div",{style:lJ,onClick:()=>a(m=>!m),children:[p.jsx("span",{style:{fontSize:11,color:"var(--ink-faint)"},children:i?"▼":"▶"}),p.jsx("span",{style:{background:h.bg,color:"#fff",padding:"1px 8px",borderRadius:2,fontSize:11,fontWeight:600},children:h.label}),p.jsx("span",{style:{color:"var(--ink-mute)"},children:sJ(d.durationMs)}),p.jsxs("span",{style:{color:"var(--ink-faint)",fontFamily:"var(--font-mono)"},children:["· ",d.executor]}),d.summary&&p.jsxs("span",{style:{color:"var(--ink-mute)",maxWidth:360,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["· ",d.summary]}),e.length>1&&p.jsx("select",{onClick:m=>m.stopPropagation(),onChange:m=>{r(Number(m.target.value)),c(null)},value:n,style:{marginLeft:"auto",fontSize:11},children:e.map((m,g)=>p.jsxs("option",{value:g,children:["第 ",e.length-g," 次 · ",Jd(m.startedAt)]},m.id))}),y&&typeof t=="function"&&p.jsx("button",{type:"button",onClick:m=>{m.stopPropagation(),t(d.id)},style:{marginLeft:8,fontSize:11},children:"取消"})]}),i&&p.jsxs("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:8},children:[p.jsxs("div",{style:{display:"grid",gridTemplateColumns:"90px 1fr",gap:4,fontSize:11.5},children:[p.jsx("span",{style:{color:"var(--ink-faint)"},children:"项目"}),p.jsx("span",{style:{fontFamily:"var(--font-mono)"},children:d.project}),p.jsx("span",{style:{color:"var(--ink-faint)"},children:"开始"}),p.jsx("span",{style:{fontFamily:"var(--font-mono)"},children:Jd(d.startedAt)}),d.endedAt&&p.jsxs(p.Fragment,{children:[p.jsx("span",{style:{color:"var(--ink-faint)"},children:"结束"}),p.jsx("span",{style:{fontFamily:"var(--font-mono)"},children:Jd(d.endedAt)})]}),d.exitCode!=null&&p.jsxs(p.Fragment,{children:[p.jsx("span",{style:{color:"var(--ink-faint)"},children:"退出码"}),p.jsx("span",{style:{fontFamily:"var(--font-mono)"},children:d.exitCode})]}),d.error&&p.jsxs(p.Fragment,{children:[p.jsx("span",{style:{color:"var(--ink-faint)"},children:"错误"}),p.jsx("span",{style:{color:"var(--bad)"},children:d.error})]})]}),d.summary&&p.jsxs("div",{style:{padding:"6px 8px",background:"var(--bg-panel, transparent)",borderLeft:"3px solid var(--ok, #2c8)"},children:[p.jsx("div",{style:{fontSize:11,color:"var(--ink-faint)",marginBottom:2},children:"总结 (来自 executor)"}),p.jsx("div",{children:d.summary})]}),Array.isArray(d.filesChanged)&&d.filesChanged.length>0&&p.jsxs("div",{children:[p.jsx("div",{style:{fontSize:11,color:"var(--ink-faint)",marginBottom:2},children:"变更文件"}),p.jsx("ul",{style:{margin:0,padding:0,listStyle:"none",fontFamily:"var(--font-mono)",fontSize:11.5},children:d.filesChanged.map(m=>p.jsxs("li",{children:["· ",m]},m))})]}),d.notes&&p.jsxs("div",{children:[p.jsx("div",{style:{fontSize:11,color:"var(--ink-faint)",marginBottom:2},children:"备注"}),p.jsx("div",{style:{color:"var(--ink-mute)"},children:d.notes})]}),p.jsx(sw,{label:"stdout",text:d.stdout,truncated:d.stdoutTruncated,open:o,onToggle:()=>l(m=>!m),onLoadFull:!f&&d.stdoutTruncated?b:null}),d.stderr&&d.stderr.trim()&&p.jsx(sw,{label:"stderr",text:d.stderr,truncated:d.stderrTruncated,tone:"bad",open:s,onToggle:()=>u(m=>!m),onLoadFull:!f&&d.stderrTruncated?b:null})]})]})}function sw({label:e,text:t,truncated:n,tone:r,open:i,onToggle:a,onLoadFull:o}){return t?p.jsxs("div",{children:[p.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[p.jsxs("button",{type:"button",onClick:a,style:{background:"none",border:"none",cursor:"pointer",padding:0,color:"var(--ink)",fontSize:11.5},children:[i?"▼":"▶"," ",e]}),p.jsxs("small",{style:{color:"var(--ink-faint)"},children:[t.length.toLocaleString()," B",n?" · 截断":""]}),o&&p.jsx("button",{type:"button",onClick:o,style:{background:"none",border:"1px solid var(--line)",borderRadius:2,padding:"1px 6px",cursor:"pointer",fontSize:11},children:"查看完整"})]}),i&&p.jsx("pre",{style:{margin:"4px 0 0 0",padding:10,background:r==="bad"?"rgba(204, 51, 51, 0.06)":"#0d0d0d",color:r==="bad"?"var(--bad)":"#cde",fontFamily:"var(--font-mono, monospace)",fontSize:11.5,maxHeight:320,overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",borderRadius:3},children:t})]}):p.jsx("div",{children:p.jsxs("button",{type:"button",onClick:a,style:{background:"none",border:"none",cursor:"pointer",padding:0,color:"var(--ink-faint)",fontSize:11.5},children:[i?"▼":"▶"," ",e," (空)"]})})}const uJ={marginTop:8,border:"1px solid var(--line-soft)",borderRadius:3,background:"transparent",fontSize:12.5},cJ={padding:"6px 10px",cursor:"pointer",display:"flex",alignItems:"center",gap:8,color:"var(--ink-mute)",userSelect:"none"},fJ={padding:"8px 10px 10px 10px",borderTop:"1px solid var(--line-soft)",background:"var(--bg-panel, transparent)",display:"flex",flexDirection:"column",gap:8},Xf={fontSize:11.5,color:"var(--ink-faint)",fontFamily:"var(--font-mono)",textTransform:"uppercase",letterSpacing:.5,marginBottom:2},Bm={margin:0,padding:"6px 8px",background:"var(--bg, transparent)",border:"1px solid var(--line-soft)",borderRadius:3,fontFamily:"var(--font-mono, monospace)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-all",color:"var(--ink)"},dJ={...Bm,maxHeight:360,overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"normal",fontSize:11.5,lineHeight:1.55},zm={display:"inline-flex",alignItems:"center",gap:4,padding:"3px 8px",fontSize:11.5,fontFamily:"inherit",borderRadius:3,border:"1px solid var(--line)",background:"var(--bg, transparent)",cursor:"pointer",color:"var(--ink)"},pJ={opencode:"OpenCode",claude:"Claude Code"};function BA({target:e,actionable:t}){const[n,r]=A.useState(!1),[i,a]=A.useState(null),[o,l]=A.useState("idle"),[s,u]=A.useState(null),[f,c]=A.useState(null),[d,h]=A.useState(null),y=A.useCallback(async()=>{var x,S;l("loading"),u(null),c(null);try{const w=bJ(e);if(!w){l("error"),u("BAD_REQUEST"),c("缺少必要参数");return}const _=await fetch(w),O=await _.json();if(!_.ok||!O.ok){l("error"),u(((x=O==null?void 0:O.error)==null?void 0:x.code)||`HTTP_${_.status}`),c(((S=O==null?void 0:O.error)==null?void 0:S.message)||"获取失败");return}a(O.data),l("idle")}catch(w){l("error"),u("INTERNAL"),c(w.message)}},[e]);function b(){!n&&!i&&o!=="loading"&&y(),r(x=>!x)}async function m(x,S){if(x)try{await navigator.clipboard.writeText(x),h(S),setTimeout(()=>h(null),1500)}catch{h(`fail:${S}`),setTimeout(()=>h(null),2e3)}}const g=n?"▾":"▸",v=t===!1?"查看执行内容(手动复制)":"查看 / 复制将要执行的内容";return p.jsxs("div",{style:uJ,children:[p.jsxs("div",{style:cJ,onClick:b,children:[p.jsx("span",{style:{width:12,display:"inline-block"},children:g}),p.jsx("span",{children:v}),o==="loading"&&p.jsx("small",{style:{color:"var(--ink-faint)",marginLeft:6},children:"加载中…"})]}),n&&p.jsxs("div",{style:fJ,children:[o==="error"&&p.jsxs("div",{style:{color:"var(--bad)",fontSize:12.5},children:["加载失败:",f||"未知错误",p.jsxs("small",{style:{marginLeft:6,color:"var(--ink-faint)"},children:["(",s,")"]}),p.jsx("button",{type:"button",style:{...zm,marginLeft:8},onClick:y,children:"重试"})]}),t===!1&&p.jsx("div",{style:{fontSize:12,color:"var(--ink-mute)",padding:"4px 8px",border:"1px dashed var(--line)",borderRadius:3,background:"transparent",lineHeight:1.55},children:"这条建议未标记为可自动执行(通常是行为类调整,需要你下次开会话时主动注意)。 你仍然可以下面复制 prompt 到自己的 OpenCode / Claude Code 会话中手动跑一次。"}),i&&p.jsxs(p.Fragment,{children:[p.jsx(hJ,{data:i}),p.jsx(vJ,{data:i}),p.jsx(yJ,{data:i,onCopy:x=>m(x,"cmd"),copied:d}),p.jsx(mJ,{data:i,onCopy:x=>m(x,"prompt"),copied:d}),p.jsx(gJ,{data:i})]})]})]})}function hJ({data:e}){const t=pJ[e.executor]||e.executor;return p.jsxs("div",{children:[p.jsx("div",{style:Xf,children:"执行器"}),p.jsxs("div",{style:{fontSize:12.5},children:[t," ",p.jsxs("small",{style:{color:"var(--ink-faint)"},children:["(",e.executor,")"]})]})]})}function vJ({data:e}){return p.jsxs("div",{children:[p.jsxs("div",{style:Xf,children:["工作目录 ",e.projectExists===!1&&p.jsx("span",{style:{color:"var(--bad)",textTransform:"none",letterSpacing:0},children:"(目录不存在)"})]}),p.jsx("pre",{style:Bm,children:e.project||"(空)"}),p.jsx("small",{style:{fontSize:11,color:"var(--ink-faint)"},children:"点击「让 AI 自动执行」后,会在该目录下运行上面的执行器;它可能修改文件、运行 shell 命令、访问网络。"})]})}function yJ({data:e,onCopy:t,copied:n}){var i;const r=((i=e==null?void 0:e.cli)==null?void 0:i.shellHint)||"";return p.jsxs("div",{children:[p.jsxs("div",{style:Xf,children:["启动命令",p.jsx("button",{type:"button",style:{...zm,marginLeft:8,padding:"1px 6px",fontSize:11},onClick:()=>t(r),disabled:!r,children:n==="cmd"?"已复制":n==="fail:cmd"?"复制失败":"复制命令"})]}),p.jsx("pre",{style:Bm,children:r||"(无)"}),p.jsx("small",{style:{fontSize:11,color:"var(--ink-faint)"},children:"prompt.txt 即下面的「完整 prompt」内容,自动执行时通过 stdin 传入,不会落盘。"})]})}function mJ({data:e,onCopy:t,copied:n}){const r=(e==null?void 0:e.prompt)||"",i=r?r.split(`
|
package/client/dist/index.html
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
} catch (e) {}
|
|
26
26
|
})();
|
|
27
27
|
</script>
|
|
28
|
-
<script type="module" crossorigin src="/assets/index-
|
|
28
|
+
<script type="module" crossorigin src="/assets/index-CT8rBVfX.js"></script>
|
|
29
29
|
<link rel="stylesheet" crossorigin href="/assets/index-C1wFD_Vo.css">
|
|
30
30
|
</head>
|
|
31
31
|
<body>
|