@zhangferry-dev/tokendash 1.1.0 → 1.1.2
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.
|
@@ -118,4 +118,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
118
118
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pK(e,t){if(e){if(typeof e=="string")return b0(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 b0(e,t)}}function vK(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function yK(e){if(Array.isArray(e))return b0(e)}function b0(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 mK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DM(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,eN(r.key),r)}}function gK(e,t,n){return t&&DM(e.prototype,t),n&&DM(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function bK(e,t,n){return t=Vf(t),xK(e,JD()?Reflect.construct(t,n||[],Vf(e).constructor):t.apply(e,n))}function xK(e,t){if(t&&(Yo(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return SK(e)}function SK(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function JD(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(JD=function(){return!!e})()}function Vf(e){return Vf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Vf(e)}function OK(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&&x0(e,t)}function x0(e,t){return x0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},x0(e,t)}function Vn(e,t,n){return t=eN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function eN(e){var t=_K(e,"string");return Yo(t)=="symbol"?t:t+""}function _K(e,t){if(Yo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Yo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Si=(function(e){function t(){var n;mK(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=bK(this,t,[].concat(o)),Vn(n,"state",{isAnimationFinished:!0,totalLength:0}),Vn(n,"generateSimpleStrokeDasharray",function(c,f){return"".concat(f,"px ").concat(c-f,"px")}),Vn(n,"getStrokeDasharray",function(c,f,d){var h=d.reduce(function(w,T){return w+T});if(!h)return n.generateSimpleStrokeDasharray(f,c);for(var y=Math.floor(c/h),v=c%h,g=f-c,x=[],O=0,S=0;O<d.length;S+=d[O],++O)if(S+d[O]>v){x=[].concat(po(d.slice(0,O)),[v-S]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(po(t.repeat(d,y)),po(x),b).map(function(w){return"".concat(w,"px")}).join(", ")}),Vn(n,"id",Na("recharts-line-")),Vn(n,"pathRef",function(c){n.mainCurve=c}),Vn(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Vn(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return OK(t,e),gK(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,o){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var l=this.props,c=l.points,f=l.xAxis,d=l.yAxis,h=l.layout,y=l.children,v=Ft(y,uu);if(!v)return null;var g=function(S,b){return{x:S.x,y:S.y,value:S.value,errorVal:ot(S.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(o,")"):null};return R.createElement(je,x,v.map(function(O){return R.cloneElement(O,{key:"bar-".concat(O.props.dataKey),data:c,xAxis:f,yAxis:d,layout:h,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,o,l){var c=this.props.isAnimationActive;if(c&&!this.state.isAnimationFinished)return null;var f=this.props,d=f.dot,h=f.points,y=f.dataKey,v=ye(this.props,!1),g=ye(d,!0),x=h.map(function(S,b){var w=yn(yn(yn({key:"dot-".concat(b),r:3},v),g),{},{index:b,cx:S.x,cy:S.y,value:S.value,dataKey:y,payload:S.payload,points:h});return t.renderDotItem(d,w)}),O={clipPath:r?"url(#clipPath-".concat(o?"":"dots-").concat(l,")"):null};return R.createElement(je,wl({className:"recharts-line-dots",key:"dots"},O),x)}},{key:"renderCurveStatically",value:function(r,o,l,c){var f=this.props,d=f.type,h=f.layout,y=f.connectNulls;f.ref;var v=PM(f,sK),g=yn(yn(yn({},ye(v,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:o?"url(#clipPath-".concat(l,")"):null,points:r},c),{},{type:d,layout:h,connectNulls:y});return R.createElement(Ma,wl({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,o){var l=this,c=this.props,f=c.points,d=c.strokeDasharray,h=c.isAnimationActive,y=c.animationBegin,v=c.animationDuration,g=c.animationEasing,x=c.animationId,O=c.animateNewValues,S=c.width,b=c.height,w=this.state,T=w.prevPoints,j=w.totalLength;return R.createElement(Bn,{begin:y,duration:v,isActive:h,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(M){var A=M.t;if(T){var E=T.length/f.length,P=f.map(function(B,V){var k=Math.floor(V*E);if(T[k]){var I=T[k],D=ft(I.x,B.x),H=ft(I.y,B.y);return yn(yn({},B),{},{x:D(A),y:H(A)})}if(O){var Q=ft(S*2,B.x),oe=ft(b/2,B.y);return yn(yn({},B),{},{x:Q(A),y:oe(A)})}return yn(yn({},B),{},{x:B.x,y:B.y})});return l.renderCurveStatically(P,r,o)}var N=ft(0,j),q=N(A),X;if(d){var U="".concat(d).split(/[,\s]+/gim).map(function(B){return parseFloat(B)});X=l.getStrokeDasharray(q,j,U)}else X=l.generateSimpleStrokeDasharray(j,q);return l.renderCurveStatically(f,r,o,{strokeDasharray:X})})}},{key:"renderCurve",value:function(r,o){var l=this.props,c=l.points,f=l.isAnimationActive,d=this.state,h=d.prevPoints,y=d.totalLength;return f&&c&&c.length&&(!h&&y>0||!Ca(h,c))?this.renderCurveWithAnimation(r,o):this.renderCurveStatically(c,r,o)}},{key:"render",value:function(){var r,o=this.props,l=o.hide,c=o.dot,f=o.points,d=o.className,h=o.xAxis,y=o.yAxis,v=o.top,g=o.left,x=o.width,O=o.height,S=o.isAnimationActive,b=o.id;if(l||!f||!f.length)return null;var w=this.state.isAnimationFinished,T=f.length===1,j=Te("recharts-line",d),M=h&&h.allowDataOverflow,A=y&&y.allowDataOverflow,E=M||A,P=ge(b)?this.id:b,N=(r=ye(c,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},q=N.r,X=q===void 0?3:q,U=N.strokeWidth,B=U===void 0?2:U,V=rP(c)?c:{},k=V.clipDot,I=k===void 0?!0:k,D=X*2+B;return R.createElement(je,{className:j},M||A?R.createElement("defs",null,R.createElement("clipPath",{id:"clipPath-".concat(P)},R.createElement("rect",{x:M?g:g-x/2,y:A?v:v-O/2,width:M?x:x*2,height:A?O:O*2})),!I&&R.createElement("clipPath",{id:"clipPath-dots-".concat(P)},R.createElement("rect",{x:g-D/2,y:v-D/2,width:x+D,height:O+D}))):null,!T&&this.renderCurve(E,P),this.renderErrorBar(E,P),(T||c)&&this.renderDots(E,I,P),(!S||w)&&Qn.renderCallByParent(this.props,f))}}],[{key:"getDerivedStateFromProps",value:function(r,o){return r.animationId!==o.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:o.curPoints}:r.points!==o.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,o){for(var l=r.length%2!==0?[].concat(po(r),[0]):r,c=[],f=0;f<o;++f)c=[].concat(po(c),po(l));return c}},{key:"renderDotItem",value:function(r,o){var l;if(R.isValidElement(r))l=R.cloneElement(r,o);else if(Se(r))l=r(o);else{var c=o.key,f=PM(o,fK),d=Te("recharts-line-dot",typeof r!="boolean"?r.className:"");l=R.createElement(vc,wl({key:c},f,{className:d}))}return l}}])})(re.PureComponent);Vn(Si,"displayName","Line");Vn(Si,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!Xr.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});Vn(Si,"getComposedData",function(e){var t=e.props,n=e.xAxis,r=e.yAxis,o=e.xAxisTicks,l=e.yAxisTicks,c=e.dataKey,f=e.bandSize,d=e.displayedData,h=e.offset,y=t.layout,v=d.map(function(g,x){var O=ot(g,c);return y==="horizontal"?{x:Ro({axis:n,ticks:o,bandSize:f,entry:g,index:x}),y:ge(O)?null:r.scale(O),value:O,payload:g}:{x:ge(O)?null:n.scale(O),y:Ro({axis:r,ticks:l,bandSize:f,entry:g,index:x}),value:O,payload:g}});return yn({points:v,layout:y},h)});var AK=["layout","type","stroke","connectNulls","isRange","ref"],wK=["key"],tN;function Xo(e){"@babel/helpers - typeof";return Xo=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},Xo(e)}function nN(e,t){if(e==null)return{};var n=TK(e,t),r,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)r=l[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function TK(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 hi(){return hi=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},hi.apply(this,arguments)}function NM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Oa(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?NM(Object(n),!0).forEach(function(r){ur(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):NM(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function EK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function RM(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,aN(r.key),r)}}function jK(e,t,n){return t&&RM(e.prototype,t),n&&RM(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function MK(e,t,n){return t=Ff(t),PK(e,rN()?Reflect.construct(t,n||[],Ff(e).constructor):t.apply(e,n))}function PK(e,t){if(t&&(Xo(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return CK(e)}function CK(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(rN=function(){return!!e})()}function Ff(e){return Ff=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ff(e)}function DK(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&&S0(e,t)}function S0(e,t){return S0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},S0(e,t)}function ur(e,t,n){return t=aN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function aN(e){var t=NK(e,"string");return Xo(t)=="symbol"?t:t+""}function NK(e,t){if(Xo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Xo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var za=(function(e){function t(){var n;EK(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=MK(this,t,[].concat(o)),ur(n,"state",{isAnimationFinished:!0}),ur(n,"id",Na("recharts-area-")),ur(n,"handleAnimationEnd",function(){var c=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),Se(c)&&c()}),ur(n,"handleAnimationStart",function(){var c=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),Se(c)&&c()}),n}return DK(t,e),jK(t,[{key:"renderDots",value:function(r,o,l){var c=this.props.isAnimationActive,f=this.state.isAnimationFinished;if(c&&!f)return null;var d=this.props,h=d.dot,y=d.points,v=d.dataKey,g=ye(this.props,!1),x=ye(h,!0),O=y.map(function(b,w){var T=Oa(Oa(Oa({key:"dot-".concat(w),r:3},g),x),{},{index:w,cx:b.x,cy:b.y,dataKey:v,value:b.value,payload:b.payload,points:y});return t.renderDotItem(h,T)}),S={clipPath:r?"url(#clipPath-".concat(o?"":"dots-").concat(l,")"):null};return R.createElement(je,hi({className:"recharts-area-dots"},S),O)}},{key:"renderHorizontalRect",value:function(r){var o=this.props,l=o.baseLine,c=o.points,f=o.strokeWidth,d=c[0].x,h=c[c.length-1].x,y=r*Math.abs(d-h),v=wa(c.map(function(g){return g.y||0}));return ce(l)&&typeof l=="number"?v=Math.max(l,v):l&&Array.isArray(l)&&l.length&&(v=Math.max(wa(l.map(function(g){return g.y||0})),v)),ce(v)?R.createElement("rect",{x:d<h?d:d-y,y:0,width:y,height:Math.floor(v+(f?parseInt("".concat(f),10):1))}):null}},{key:"renderVerticalRect",value:function(r){var o=this.props,l=o.baseLine,c=o.points,f=o.strokeWidth,d=c[0].y,h=c[c.length-1].y,y=r*Math.abs(d-h),v=wa(c.map(function(g){return g.x||0}));return ce(l)&&typeof l=="number"?v=Math.max(l,v):l&&Array.isArray(l)&&l.length&&(v=Math.max(wa(l.map(function(g){return g.x||0})),v)),ce(v)?R.createElement("rect",{x:0,y:d<h?d:d-y,width:v+(f?parseInt("".concat(f),10):1),height:Math.floor(y)}):null}},{key:"renderClipRect",value:function(r){var o=this.props.layout;return o==="vertical"?this.renderVerticalRect(r):this.renderHorizontalRect(r)}},{key:"renderAreaStatically",value:function(r,o,l,c){var f=this.props,d=f.layout,h=f.type,y=f.stroke,v=f.connectNulls,g=f.isRange;f.ref;var x=nN(f,AK);return R.createElement(je,{clipPath:l?"url(#clipPath-".concat(c,")"):null},R.createElement(Ma,hi({},ye(x,!0),{points:r,connectNulls:v,type:h,baseLine:o,layout:d,stroke:"none",className:"recharts-area-area"})),y!=="none"&&R.createElement(Ma,hi({},ye(this.props,!1),{className:"recharts-area-curve",layout:d,type:h,connectNulls:v,fill:"none",points:r})),y!=="none"&&g&&R.createElement(Ma,hi({},ye(this.props,!1),{className:"recharts-area-curve",layout:d,type:h,connectNulls:v,fill:"none",points:o})))}},{key:"renderAreaWithAnimation",value:function(r,o){var l=this,c=this.props,f=c.points,d=c.baseLine,h=c.isAnimationActive,y=c.animationBegin,v=c.animationDuration,g=c.animationEasing,x=c.animationId,O=this.state,S=O.prevPoints,b=O.prevBaseLine;return R.createElement(Bn,{begin:y,duration:v,isActive:h,easing:g,from:{t:0},to:{t:1},key:"area-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(w){var T=w.t;if(S){var j=S.length/f.length,M=f.map(function(N,q){var X=Math.floor(q*j);if(S[X]){var U=S[X],B=ft(U.x,N.x),V=ft(U.y,N.y);return Oa(Oa({},N),{},{x:B(T),y:V(T)})}return N}),A;if(ce(d)&&typeof d=="number"){var E=ft(b,d);A=E(T)}else if(ge(d)||nu(d)){var P=ft(b,0);A=P(T)}else A=d.map(function(N,q){var X=Math.floor(q*j);if(b[X]){var U=b[X],B=ft(U.x,N.x),V=ft(U.y,N.y);return Oa(Oa({},N),{},{x:B(T),y:V(T)})}return N});return l.renderAreaStatically(M,A,r,o)}return R.createElement(je,null,R.createElement("defs",null,R.createElement("clipPath",{id:"animationClipPath-".concat(o)},l.renderClipRect(T))),R.createElement(je,{clipPath:"url(#animationClipPath-".concat(o,")")},l.renderAreaStatically(f,d,r,o)))})}},{key:"renderArea",value:function(r,o){var l=this.props,c=l.points,f=l.baseLine,d=l.isAnimationActive,h=this.state,y=h.prevPoints,v=h.prevBaseLine,g=h.totalLength;return d&&c&&c.length&&(!y&&g>0||!Ca(y,c)||!Ca(v,f))?this.renderAreaWithAnimation(r,o):this.renderAreaStatically(c,f,r,o)}},{key:"render",value:function(){var r,o=this.props,l=o.hide,c=o.dot,f=o.points,d=o.className,h=o.top,y=o.left,v=o.xAxis,g=o.yAxis,x=o.width,O=o.height,S=o.isAnimationActive,b=o.id;if(l||!f||!f.length)return null;var w=this.state.isAnimationFinished,T=f.length===1,j=Te("recharts-area",d),M=v&&v.allowDataOverflow,A=g&&g.allowDataOverflow,E=M||A,P=ge(b)?this.id:b,N=(r=ye(c,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},q=N.r,X=q===void 0?3:q,U=N.strokeWidth,B=U===void 0?2:U,V=rP(c)?c:{},k=V.clipDot,I=k===void 0?!0:k,D=X*2+B;return R.createElement(je,{className:j},M||A?R.createElement("defs",null,R.createElement("clipPath",{id:"clipPath-".concat(P)},R.createElement("rect",{x:M?y:y-x/2,y:A?h:h-O/2,width:M?x:x*2,height:A?O:O*2})),!I&&R.createElement("clipPath",{id:"clipPath-dots-".concat(P)},R.createElement("rect",{x:y-D/2,y:h-D/2,width:x+D,height:O+D}))):null,T?null:this.renderArea(E,P),(c||T)&&this.renderDots(E,I,P),(!S||w)&&Qn.renderCallByParent(this.props,f))}}],[{key:"getDerivedStateFromProps",value:function(r,o){return r.animationId!==o.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:o.curPoints,prevBaseLine:o.curBaseLine}:r.points!==o.curPoints||r.baseLine!==o.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])})(re.PureComponent);tN=za;ur(za,"displayName","Area");ur(za,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Xr.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});ur(za,"getBaseValue",function(e,t,n,r){var o=e.layout,l=e.baseValue,c=t.props.baseValue,f=c??l;if(ce(f)&&typeof f=="number")return f;var d=o==="horizontal"?r:n,h=d.scale.domain();if(d.type==="number"){var y=Math.max(h[0],h[1]),v=Math.min(h[0],h[1]);return f==="dataMin"?v:f==="dataMax"||y<0?y:Math.max(Math.min(h[0],h[1]),0)}return f==="dataMin"?h[0]:f==="dataMax"?h[1]:h[0]});ur(za,"getComposedData",function(e){var t=e.props,n=e.item,r=e.xAxis,o=e.yAxis,l=e.xAxisTicks,c=e.yAxisTicks,f=e.bandSize,d=e.dataKey,h=e.stackedData,y=e.dataStartIndex,v=e.displayedData,g=e.offset,x=t.layout,O=h&&h.length,S=tN.getBaseValue(t,n,r,o),b=x==="horizontal",w=!1,T=v.map(function(M,A){var E;O?E=h[y+A]:(E=ot(M,d),Array.isArray(E)?w=!0:E=[S,E]);var P=E[1]==null||O&&ot(M,d)==null;return b?{x:Ro({axis:r,ticks:l,bandSize:f,entry:M,index:A}),y:P?null:o.scale(E[1]),value:E,payload:M}:{x:P?null:r.scale(E[1]),y:Ro({axis:o,ticks:c,bandSize:f,entry:M,index:A}),value:E,payload:M}}),j;return O||w?j=T.map(function(M){var A=Array.isArray(M.value)?M.value[0]:null;return b?{x:M.x,y:A!=null&&M.y!=null?o.scale(A):null}:{x:A!=null?r.scale(A):null,y:M.y}}):j=b?o.scale(S):r.scale(S),Oa({points:T,baseLine:j,layout:x,isRange:w},g)});ur(za,"renderDotItem",function(e,t){var n;if(R.isValidElement(e))n=R.cloneElement(e,t);else if(Se(e))n=e(t);else{var r=Te("recharts-area-dot",typeof e!="boolean"?e.className:""),o=t.key,l=nN(t,wK);n=R.createElement(vc,hi({},l,{key:o,className:r}))}return n});function Vo(e){"@babel/helpers - typeof";return Vo=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},Vo(e)}function RK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $K(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,uN(r.key),r)}}function kK(e,t,n){return t&&$K(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function zK(e,t,n){return t=Zf(t),qK(e,iN()?Reflect.construct(t,n||[],Zf(e).constructor):t.apply(e,n))}function qK(e,t){if(t&&(Vo(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return BK(e)}function BK(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function iN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(iN=function(){return!!e})()}function Zf(e){return Zf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Zf(e)}function LK(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&&O0(e,t)}function O0(e,t){return O0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},O0(e,t)}function oN(e,t,n){return t=uN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uN(e){var t=UK(e,"string");return Vo(t)=="symbol"?t:t+""}function UK(e,t){if(Vo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Vo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var kd=(function(e){function t(){return RK(this,t),zK(this,t,arguments)}return LK(t,e),kK(t,[{key:"render",value:function(){return null}}])})(re.Component);oN(kd,"displayName","ZAxis");oN(kd,"defaultProps",{zAxisId:0,range:[64,64],scale:"auto",type:"number"});var IK=["option","isActive"];function Tl(){return Tl=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},Tl.apply(this,arguments)}function HK(e,t){if(e==null)return{};var n=GK(e,t),r,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)r=l[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function GK(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 KK(e){var t=e.option,n=e.isActive,r=HK(e,IK);return typeof t=="string"?re.createElement(kf,Tl({option:re.createElement(fd,Tl({type:t},r)),isActive:n,shapeType:"symbols"},r)):re.createElement(kf,Tl({option:t,isActive:n,shapeType:"symbols"},r))}function Fo(e){"@babel/helpers - typeof";return Fo=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},Fo(e)}function El(){return El=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},El.apply(this,arguments)}function $M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?$M(Object(n),!0).forEach(function(r){Ea(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$M(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kM(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,cN(r.key),r)}}function XK(e,t,n){return t&&kM(e.prototype,t),n&&kM(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function VK(e,t,n){return t=Wf(t),FK(e,lN()?Reflect.construct(t,n||[],Wf(e).constructor):t.apply(e,n))}function FK(e,t){if(t&&(Fo(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ZK(e)}function ZK(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function lN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(lN=function(){return!!e})()}function Wf(e){return Wf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Wf(e)}function WK(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&&_0(e,t)}function _0(e,t){return _0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},_0(e,t)}function Ea(e,t,n){return t=cN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cN(e){var t=QK(e,"string");return Fo(t)=="symbol"?t:t+""}function QK(e,t){if(Fo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Fo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var zd=(function(e){function t(){var n;YK(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=VK(this,t,[].concat(o)),Ea(n,"state",{isAnimationFinished:!1}),Ea(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0})}),Ea(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1})}),Ea(n,"id",Na("recharts-scatter-")),n}return WK(t,e),XK(t,[{key:"renderSymbolsStatically",value:function(r){var o=this,l=this.props,c=l.shape,f=l.activeShape,d=l.activeIndex,h=ye(this.props,!1);return r.map(function(y,v){var g=d===v,x=g?f:c,O=$n($n({},h),y);return R.createElement(je,El({className:"recharts-scatter-symbol",key:"symbol-".concat(y==null?void 0:y.cx,"-").concat(y==null?void 0:y.cy,"-").concat(y==null?void 0:y.size,"-").concat(v)},Pa(o.props,y,v),{role:"img"}),R.createElement(KK,El({option:x,isActive:g,key:"symbol-".concat(v)},O)))})}},{key:"renderSymbolsWithAnimation",value:function(){var r=this,o=this.props,l=o.points,c=o.isAnimationActive,f=o.animationBegin,d=o.animationDuration,h=o.animationEasing,y=o.animationId,v=this.state.prevPoints;return R.createElement(Bn,{begin:f,duration:d,isActive:c,easing:h,from:{t:0},to:{t:1},key:"pie-".concat(y),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(g){var x=g.t,O=l.map(function(S,b){var w=v&&v[b];if(w){var T=ft(w.cx,S.cx),j=ft(w.cy,S.cy),M=ft(w.size,S.size);return $n($n({},S),{},{cx:T(x),cy:j(x),size:M(x)})}var A=ft(0,S.size);return $n($n({},S),{},{size:A(x)})});return R.createElement(je,null,r.renderSymbolsStatically(O))})}},{key:"renderSymbols",value:function(){var r=this.props,o=r.points,l=r.isAnimationActive,c=this.state.prevPoints;return l&&o&&o.length&&(!c||!Ca(c,o))?this.renderSymbolsWithAnimation():this.renderSymbolsStatically(o)}},{key:"renderErrorBar",value:function(){var r=this.props.isAnimationActive;if(r&&!this.state.isAnimationFinished)return null;var o=this.props,l=o.points,c=o.xAxis,f=o.yAxis,d=o.children,h=Ft(d,uu);return h?h.map(function(y,v){var g=y.props,x=g.direction,O=g.dataKey;return R.cloneElement(y,{key:"".concat(x,"-").concat(O,"-").concat(l[v]),data:l,xAxis:c,yAxis:f,layout:x==="x"?"vertical":"horizontal",dataPointFormatter:function(b,w){return{x:b.cx,y:b.cy,value:x==="x"?+b.node.x:+b.node.y,errorVal:ot(b,w)}}})}):null}},{key:"renderLine",value:function(){var r=this.props,o=r.points,l=r.line,c=r.lineType,f=r.lineJointType,d=ye(this.props,!1),h=ye(l,!1),y,v;if(c==="joint")y=o.map(function(j){return{x:j.cx,y:j.cy}});else if(c==="fitting"){var g=H$(o),x=g.xmin,O=g.xmax,S=g.a,b=g.b,w=function(M){return S*M+b};y=[{x,y:w(x)},{x:O,y:w(O)}]}var T=$n($n($n({},d),{},{fill:"none",stroke:d&&d.fill},h),{},{points:y});return R.isValidElement(l)?v=R.cloneElement(l,T):Se(l)?v=l(T):v=R.createElement(Ma,El({},T,{type:f})),R.createElement(je,{className:"recharts-scatter-line",key:"recharts-scatter-line"},v)}},{key:"render",value:function(){var r=this.props,o=r.hide,l=r.points,c=r.line,f=r.className,d=r.xAxis,h=r.yAxis,y=r.left,v=r.top,g=r.width,x=r.height,O=r.id,S=r.isAnimationActive;if(o||!l||!l.length)return null;var b=this.state.isAnimationFinished,w=Te("recharts-scatter",f),T=d&&d.allowDataOverflow,j=h&&h.allowDataOverflow,M=T||j,A=ge(O)?this.id:O;return R.createElement(je,{className:w,clipPath:M?"url(#clipPath-".concat(A,")"):null},T||j?R.createElement("defs",null,R.createElement("clipPath",{id:"clipPath-".concat(A)},R.createElement("rect",{x:T?y:y-g/2,y:j?v:v-x/2,width:T?g:g*2,height:j?x:x*2}))):null,c&&this.renderLine(),this.renderErrorBar(),R.createElement(je,{key:"recharts-scatter-symbols"},this.renderSymbols()),(!S||b)&&Qn.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,o){return r.animationId!==o.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:o.curPoints}:r.points!==o.curPoints?{curPoints:r.points}:null}}])})(re.PureComponent);Ea(zd,"displayName","Scatter");Ea(zd,"defaultProps",{xAxisId:0,yAxisId:0,zAxisId:0,legendType:"circle",lineType:"joint",lineJointType:"linear",data:[],shape:"circle",hide:!1,isAnimationActive:!Xr.isSsr,animationBegin:0,animationDuration:400,animationEasing:"linear"});Ea(zd,"getComposedData",function(e){var t=e.xAxis,n=e.yAxis,r=e.zAxis,o=e.item,l=e.displayedData,c=e.xAxisTicks,f=e.yAxisTicks,d=e.offset,h=o.props.tooltipType,y=Ft(o.props.children,Mo),v=ge(t.dataKey)?o.props.dataKey:t.dataKey,g=ge(n.dataKey)?o.props.dataKey:n.dataKey,x=r&&r.dataKey,O=r?r.range:kd.defaultProps.range,S=O&&O[0],b=t.scale.bandwidth?t.scale.bandwidth():0,w=n.scale.bandwidth?n.scale.bandwidth():0,T=l.map(function(j,M){var A=ot(j,v),E=ot(j,g),P=!ge(x)&&ot(j,x)||"-",N=[{name:ge(t.dataKey)?o.props.name:t.name||t.dataKey,unit:t.unit||"",value:A,payload:j,dataKey:v,type:h},{name:ge(n.dataKey)?o.props.name:n.name||n.dataKey,unit:n.unit||"",value:E,payload:j,dataKey:g,type:h}];P!=="-"&&N.push({name:r.name||r.dataKey,unit:r.unit||"",value:P,payload:j,dataKey:x,type:h});var q=Ro({axis:t,ticks:c,bandSize:b,entry:j,index:M,dataKey:v}),X=Ro({axis:n,ticks:f,bandSize:w,entry:j,index:M,dataKey:g}),U=P!=="-"?r.scale(P):S,B=Math.sqrt(Math.max(U,0)/Math.PI);return $n($n({},j),{},{cx:q,cy:X,x:q-B,y:X-B,xAxis:t,yAxis:n,zAxis:r,width:2*B,height:2*B,size:U,node:{x:A,y:E,z:P},tooltipPayload:N,tooltipPosition:{x:q,y:X},payload:j},y&&y[M]&&y[M].props)});return $n({points:T},d)});function Zo(e){"@babel/helpers - typeof";return Zo=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},Zo(e)}function JK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function eY(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,dN(r.key),r)}}function tY(e,t,n){return t&&eY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function nY(e,t,n){return t=Qf(t),rY(e,sN()?Reflect.construct(t,n||[],Qf(e).constructor):t.apply(e,n))}function rY(e,t){if(t&&(Zo(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return aY(e)}function aY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function sN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(sN=function(){return!!e})()}function Qf(e){return Qf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Qf(e)}function iY(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&&A0(e,t)}function A0(e,t){return A0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},A0(e,t)}function fN(e,t,n){return t=dN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dN(e){var t=oY(e,"string");return Zo(t)=="symbol"?t:t+""}function oY(e,t){if(Zo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Zo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function w0(){return w0=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},w0.apply(this,arguments)}function uY(e){var t=e.xAxisId,n=Cx(),r=Dx(),o=UD(t);return o==null?null:re.createElement(lu,w0({},o,{className:Te("recharts-".concat(o.axisType," ").concat(o.axisType),o.className),viewBox:{x:0,y:0,width:n,height:r},ticksGenerator:function(c){return zr(c,!0)}}))}var qr=(function(e){function t(){return JK(this,t),nY(this,t,arguments)}return iY(t,e),tY(t,[{key:"render",value:function(){return re.createElement(uY,this.props)}}])})(re.Component);fN(qr,"displayName","XAxis");fN(qr,"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 Wo(e){"@babel/helpers - typeof";return Wo=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},Wo(e)}function lY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cY(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,vN(r.key),r)}}function sY(e,t,n){return t&&cY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function fY(e,t,n){return t=Jf(t),dY(e,hN()?Reflect.construct(t,n||[],Jf(e).constructor):t.apply(e,n))}function dY(e,t){if(t&&(Wo(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return hY(e)}function hY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function hN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(hN=function(){return!!e})()}function Jf(e){return Jf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Jf(e)}function pY(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&&T0(e,t)}function T0(e,t){return T0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},T0(e,t)}function pN(e,t,n){return t=vN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vN(e){var t=vY(e,"string");return Wo(t)=="symbol"?t:t+""}function vY(e,t){if(Wo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Wo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function E0(){return E0=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},E0.apply(this,arguments)}var yY=function(t){var n=t.yAxisId,r=Cx(),o=Dx(),l=ID(n);return l==null?null:re.createElement(lu,E0({},l,{className:Te("recharts-".concat(l.axisType," ").concat(l.axisType),l.className),viewBox:{x:0,y:0,width:r,height:o},ticksGenerator:function(f){return zr(f,!0)}}))},ir=(function(e){function t(){return lY(this,t),fY(this,t,arguments)}return pY(t,e),sY(t,[{key:"render",value:function(){return re.createElement(yY,this.props)}}])})(re.Component);pN(ir,"displayName","YAxis");pN(ir,"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 zM(e){return xY(e)||bY(e)||gY(e)||mY()}function mY(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
119
119
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gY(e,t){if(e){if(typeof e=="string")return j0(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 j0(e,t)}}function bY(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function xY(e){if(Array.isArray(e))return j0(e)}function j0(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 M0=function(t,n,r,o,l){var c=Ft(t,Rx),f=Ft(t,Nd),d=[].concat(zM(c),zM(f)),h=Ft(t,$d),y="".concat(o,"Id"),v=o[0],g=n;if(d.length&&(g=d.reduce(function(S,b){if(b.props[y]===r&&cr(b.props,"extendDomain")&&ce(b.props[v])){var w=b.props[v];return[Math.min(S[0],w),Math.max(S[1],w)]}return S},g)),h.length){var x="".concat(v,"1"),O="".concat(v,"2");g=h.reduce(function(S,b){if(b.props[y]===r&&cr(b.props,"extendDomain")&&ce(b.props[x])&&ce(b.props[O])){var w=b.props[x],T=b.props[O];return[Math.min(S[0],w,T),Math.max(S[1],w,T)]}return S},g)}return l&&l.length&&(g=l.reduce(function(S,b){return ce(b)?[Math.min(S[0],b),Math.max(S[1],b)]:S},g)),g},nb={exports:{}},qM;function SY(){return qM||(qM=1,(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function o(d,h,y){this.fn=d,this.context=h,this.once=y||!1}function l(d,h,y,v,g){if(typeof y!="function")throw new TypeError("The listener must be a function");var x=new o(y,v||d,g),O=n?n+h:h;return d._events[O]?d._events[O].fn?d._events[O]=[d._events[O],x]:d._events[O].push(x):(d._events[O]=x,d._eventsCount++),d}function c(d,h){--d._eventsCount===0?d._events=new r:delete d._events[h]}function f(){this._events=new r,this._eventsCount=0}f.prototype.eventNames=function(){var h=[],y,v;if(this._eventsCount===0)return h;for(v in y=this._events)t.call(y,v)&&h.push(n?v.slice(1):v);return Object.getOwnPropertySymbols?h.concat(Object.getOwnPropertySymbols(y)):h},f.prototype.listeners=function(h){var y=n?n+h:h,v=this._events[y];if(!v)return[];if(v.fn)return[v.fn];for(var g=0,x=v.length,O=new Array(x);g<x;g++)O[g]=v[g].fn;return O},f.prototype.listenerCount=function(h){var y=n?n+h:h,v=this._events[y];return v?v.fn?1:v.length:0},f.prototype.emit=function(h,y,v,g,x,O){var S=n?n+h:h;if(!this._events[S])return!1;var b=this._events[S],w=arguments.length,T,j;if(b.fn){switch(b.once&&this.removeListener(h,b.fn,void 0,!0),w){case 1:return b.fn.call(b.context),!0;case 2:return b.fn.call(b.context,y),!0;case 3:return b.fn.call(b.context,y,v),!0;case 4:return b.fn.call(b.context,y,v,g),!0;case 5:return b.fn.call(b.context,y,v,g,x),!0;case 6:return b.fn.call(b.context,y,v,g,x,O),!0}for(j=1,T=new Array(w-1);j<w;j++)T[j-1]=arguments[j];b.fn.apply(b.context,T)}else{var M=b.length,A;for(j=0;j<M;j++)switch(b[j].once&&this.removeListener(h,b[j].fn,void 0,!0),w){case 1:b[j].fn.call(b[j].context);break;case 2:b[j].fn.call(b[j].context,y);break;case 3:b[j].fn.call(b[j].context,y,v);break;case 4:b[j].fn.call(b[j].context,y,v,g);break;default:if(!T)for(A=1,T=new Array(w-1);A<w;A++)T[A-1]=arguments[A];b[j].fn.apply(b[j].context,T)}}return!0},f.prototype.on=function(h,y,v){return l(this,h,y,v,!1)},f.prototype.once=function(h,y,v){return l(this,h,y,v,!0)},f.prototype.removeListener=function(h,y,v,g){var x=n?n+h:h;if(!this._events[x])return this;if(!y)return c(this,x),this;var O=this._events[x];if(O.fn)O.fn===y&&(!g||O.once)&&(!v||O.context===v)&&c(this,x);else{for(var S=0,b=[],w=O.length;S<w;S++)(O[S].fn!==y||g&&!O[S].once||v&&O[S].context!==v)&&b.push(O[S]);b.length?this._events[x]=b.length===1?b[0]:b:c(this,x)}return this},f.prototype.removeAllListeners=function(h){var y;return h?(y=n?n+h:h,this._events[y]&&c(this,y)):(this._events=new r,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=n,f.EventEmitter=f,e.exports=f})(nb)),nb.exports}var OY=SY();const _Y=Ye(OY);var rb=new _Y,ab="recharts.syncMouseEvents";function uc(e){"@babel/helpers - typeof";return uc=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},uc(e)}function AY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function wY(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,yN(r.key),r)}}function TY(e,t,n){return t&&wY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ib(e,t,n){return t=yN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yN(e){var t=EY(e,"string");return uc(t)=="symbol"?t:t+""}function EY(e,t){if(uc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(uc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var jY=(function(){function e(){AY(this,e),ib(this,"activeIndex",0),ib(this,"coordinateList",[]),ib(this,"layout","horizontal")}return TY(e,[{key:"setDetails",value:function(n){var r,o=n.coordinateList,l=o===void 0?null:o,c=n.container,f=c===void 0?null:c,d=n.layout,h=d===void 0?null:d,y=n.offset,v=y===void 0?null:y,g=n.mouseHandlerCallback,x=g===void 0?null:g;this.coordinateList=(r=l??this.coordinateList)!==null&&r!==void 0?r:[],this.container=f??this.container,this.layout=h??this.layout,this.offset=v??this.offset,this.mouseHandlerCallback=x??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 o=this.container.getBoundingClientRect(),l=o.x,c=o.y,f=o.height,d=this.coordinateList[this.activeIndex].coordinate,h=((n=window)===null||n===void 0?void 0:n.scrollX)||0,y=((r=window)===null||r===void 0?void 0:r.scrollY)||0,v=l+d+h,g=c+this.offset.top+f/2+y;this.mouseHandlerCallback({pageX:v,pageY:g})}}}])})();function MY(e,t,n){if(n==="number"&&t===!0&&Array.isArray(e)){var r=e==null?void 0:e[0],o=e==null?void 0:e[1];if(r&&o&&ce(r)&&ce(o))return!0}return!1}function PY(e,t,n,r){var o=r/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-o:n.left+.5,y:e==="horizontal"?n.top+.5:t.y-o,width:e==="horizontal"?r:n.width-1,height:e==="horizontal"?n.height-1:r}}function mN(e){var t=e.cx,n=e.cy,r=e.radius,o=e.startAngle,l=e.endAngle,c=tt(t,n,r,o),f=tt(t,n,r,l);return{points:[c,f],cx:t,cy:n,radius:r,startAngle:o,endAngle:l}}function CY(e,t,n){var r,o,l,c;if(e==="horizontal")r=t.x,l=r,o=n.top,c=n.top+n.height;else if(e==="vertical")o=t.y,c=o,r=n.left,l=n.left+n.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var f=t.cx,d=t.cy,h=t.innerRadius,y=t.outerRadius,v=t.angle,g=tt(f,d,h,v),x=tt(f,d,y,v);r=g.x,o=g.y,l=x.x,c=x.y}else return mN(t);return[{x:r,y:o},{x:l,y:c}]}function lc(e){"@babel/helpers - typeof";return lc=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},lc(e)}function BM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?BM(Object(n),!0).forEach(function(r){DY(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):BM(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function DY(e,t,n){return t=NY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function NY(e){var t=RY(e,"string");return lc(t)=="symbol"?t:t+""}function RY(e,t){if(lc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(lc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function $Y(e){var t,n,r=e.element,o=e.tooltipEventType,l=e.isActive,c=e.activeCoordinate,f=e.activePayload,d=e.offset,h=e.activeTooltipIndex,y=e.tooltipAxisBandSize,v=e.layout,g=e.chartName,x=(t=r.props.cursor)!==null&&t!==void 0?t:(n=r.type.defaultProps)===null||n===void 0?void 0:n.cursor;if(!r||!x||!l||!c||g!=="ScatterChart"&&o!=="axis")return null;var O,S=Ma;if(g==="ScatterChart")O=c,S=jH;else if(g==="BarChart")O=PY(v,c,d,y),S=Tx;else if(v==="radial"){var b=mN(c),w=b.cx,T=b.cy,j=b.radius,M=b.startAngle,A=b.endAngle;O={cx:w,cy:T,startAngle:M,endAngle:A,innerRadius:j,outerRadius:j},S=fD}else O={points:CY(v,c,d)},S=Ma;var E=Ys(Ys(Ys(Ys({stroke:"#ccc",pointerEvents:"none"},d),O),ye(x,!1)),{},{payload:f,payloadIndex:h,className:Te("recharts-tooltip-cursor",x.className)});return re.isValidElement(x)?re.cloneElement(x,E):re.createElement(S,E)}var kY=["item"],zY=["children","className","width","height","style","compact","title","desc"];function Qo(e){"@babel/helpers - typeof";return Qo=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},Qo(e)}function xo(){return xo=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},xo.apply(this,arguments)}function LM(e,t){return LY(e)||BY(e,t)||bN(e,t)||qY()}function qY(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
120
120
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BY(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,o,l,c,f=[],d=!0,h=!1;try{if(l=(n=n.call(e)).next,t!==0)for(;!(d=(r=l.call(n)).done)&&(f.push(r.value),f.length!==t);d=!0);}catch(y){h=!0,o=y}finally{try{if(!d&&n.return!=null&&(c=n.return(),Object(c)!==c))return}finally{if(h)throw o}}return f}}function LY(e){if(Array.isArray(e))return e}function UM(e,t){if(e==null)return{};var n=UY(e,t),r,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)r=l[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function UY(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 IY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function HY(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,xN(r.key),r)}}function GY(e,t,n){return t&&HY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function KY(e,t,n){return t=ed(t),YY(e,gN()?Reflect.construct(t,n||[],ed(e).constructor):t.apply(e,n))}function YY(e,t){if(t&&(Qo(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return XY(e)}function XY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(gN=function(){return!!e})()}function ed(e){return ed=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ed(e)}function VY(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&&P0(e,t)}function P0(e,t){return P0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},P0(e,t)}function Jo(e){return WY(e)||ZY(e)||bN(e)||FY()}function FY(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
121
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bN(e,t){if(e){if(typeof e=="string")return C0(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 C0(e,t)}}function ZY(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function WY(e){if(Array.isArray(e))return C0(e)}function C0(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 IM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function te(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?IM(Object(n),!0).forEach(function(r){Oe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):IM(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Oe(e,t,n){return t=xN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xN(e){var t=QY(e,"string");return Qo(t)=="symbol"?t:t+""}function QY(e,t){if(Qo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Qo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var JY={xAxis:["bottom","top"],yAxis:["left","right"]},eX={width:"100%",height:"100%"},SN={x:0,y:0};function Xs(e){return e}var tX=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},nX=function(t,n,r,o){var l=n.find(function(y){return y&&y.index===r});if(l){if(t==="horizontal")return{x:l.coordinate,y:o.y};if(t==="vertical")return{x:o.x,y:l.coordinate};if(t==="centric"){var c=l.coordinate,f=o.radius;return te(te(te({},o),tt(o.cx,o.cy,f,c)),{},{angle:c,radius:f})}var d=l.coordinate,h=o.angle;return te(te(te({},o),tt(o.cx,o.cy,d,h)),{},{angle:h,radius:d})}return SN},qd=function(t,n){var r=n.graphicalItems,o=n.dataStartIndex,l=n.dataEndIndex,c=(r??[]).reduce(function(f,d){var h=d.props.data;return h&&h.length?[].concat(Jo(f),Jo(h)):f},[]);return c.length>0?c:t&&t.length&&ce(o)&&ce(l)?t.slice(o,l+1):[]};function ON(e){return e==="number"?[0,"auto"]:void 0}var D0=function(t,n,r,o){var l=t.graphicalItems,c=t.tooltipAxis,f=qd(n,t);return r<0||!l||!l.length||r>=f.length?null:l.reduce(function(d,h){var y,v=(y=h.props.data)!==null&&y!==void 0?y:n;v&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(v=v.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(c.dataKey&&!c.allowDuplicatedCategory){var x=v===void 0?f:v;g=Ws(x,c.dataKey,o)}else g=v&&v[r]||f[r];return g?[].concat(Jo(d),[iD(h,g)]):d},[])},HM=function(t,n,r,o){var l=o||{x:t.chartX,y:t.chartY},c=tX(l,r),f=t.orderedTooltipTicks,d=t.tooltipAxis,h=t.tooltipTicks,y=F6(c,f,h,d);if(y>=0&&h){var v=h[y]&&h[y].value,g=D0(t,n,y,v),x=nX(r,f,y,l);return{activeTooltipIndex:y,activeLabel:v,activePayload:g,activeCoordinate:x}}return null},rX=function(t,n){var r=n.axes,o=n.graphicalItems,l=n.axisType,c=n.axisIdKey,f=n.stackGroups,d=n.dataStartIndex,h=n.dataEndIndex,y=t.layout,v=t.children,g=t.stackOffset,x=JC(y,l);return r.reduce(function(O,S){var b,w=S.type.defaultProps!==void 0?te(te({},S.type.defaultProps),S.props):S.props,T=w.type,j=w.dataKey,M=w.allowDataOverflow,A=w.allowDuplicatedCategory,E=w.scale,P=w.ticks,N=w.includeHidden,q=w[c];if(O[q])return O;var X=qd(t.data,{graphicalItems:o.filter(function(G){var ne,fe=c in G.props?G.props[c]:(ne=G.type.defaultProps)===null||ne===void 0?void 0:ne[c];return fe===q}),dataStartIndex:d,dataEndIndex:h}),U=X.length,B,V,k;MY(w.domain,M,T)&&(B=Hb(w.domain,null,M),x&&(T==="number"||E!=="auto")&&(k=Sl(X,j,"category")));var I=ON(T);if(!B||B.length===0){var D,H=(D=w.domain)!==null&&D!==void 0?D:I;if(j){if(B=Sl(X,j,T),T==="category"&&x){var Q=I$(B);A&&Q?(V=B,B=qf(0,U)):A||(B=Uj(H,B,S).reduce(function(G,ne){return G.indexOf(ne)>=0?G:[].concat(Jo(G),[ne])},[]))}else if(T==="category")A?B=B.filter(function(G){return G!==""&&!ge(G)}):B=Uj(H,B,S).reduce(function(G,ne){return G.indexOf(ne)>=0||ne===""||ge(ne)?G:[].concat(Jo(G),[ne])},[]);else if(T==="number"){var oe=e8(X,o.filter(function(G){var ne,fe,pe=c in G.props?G.props[c]:(ne=G.type.defaultProps)===null||ne===void 0?void 0:ne[c],be="hide"in G.props?G.props.hide:(fe=G.type.defaultProps)===null||fe===void 0?void 0:fe.hide;return pe===q&&(N||!be)}),j,l,y);oe&&(B=oe)}x&&(T==="number"||E!=="auto")&&(k=Sl(X,j,"category"))}else x?B=qf(0,U):f&&f[q]&&f[q].hasStack&&T==="number"?B=g==="expand"?[0,1]:aD(f[q].stackGroups,d,h):B=QC(X,o.filter(function(G){var ne=c in G.props?G.props[c]:G.type.defaultProps[c],fe="hide"in G.props?G.props.hide:G.type.defaultProps.hide;return ne===q&&(N||!fe)}),T,y,!0);if(T==="number")B=M0(v,B,q,l,P),H&&(B=Hb(H,B,M));else if(T==="category"&&H){var le=H,$=B.every(function(G){return le.indexOf(G)>=0});$&&(B=le)}}return te(te({},O),{},Oe({},q,te(te({},w),{},{axisType:l,domain:B,categoricalDomain:k,duplicateDomain:V,originalDomain:(b=w.domain)!==null&&b!==void 0?b:I,isCategorical:x,layout:y})))},{})},aX=function(t,n){var r=n.graphicalItems,o=n.Axis,l=n.axisType,c=n.axisIdKey,f=n.stackGroups,d=n.dataStartIndex,h=n.dataEndIndex,y=t.layout,v=t.children,g=qd(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:h}),x=g.length,O=JC(y,l),S=-1;return r.reduce(function(b,w){var T=w.type.defaultProps!==void 0?te(te({},w.type.defaultProps),w.props):w.props,j=T[c],M=ON("number");if(!b[j]){S++;var A;return O?A=qf(0,x):f&&f[j]&&f[j].hasStack?(A=aD(f[j].stackGroups,d,h),A=M0(v,A,j,l)):(A=Hb(M,QC(g,r.filter(function(E){var P,N,q=c in E.props?E.props[c]:(P=E.type.defaultProps)===null||P===void 0?void 0:P[c],X="hide"in E.props?E.props.hide:(N=E.type.defaultProps)===null||N===void 0?void 0:N.hide;return q===j&&!X}),"number",y),o.defaultProps.allowDataOverflow),A=M0(v,A,j,l)),te(te({},b),{},Oe({},j,te(te({axisType:l},o.defaultProps),{},{hide:!0,orientation:xn(JY,"".concat(l,".").concat(S%2),null),domain:A,originalDomain:M,isCategorical:O,layout:y})))}return b},{})},iX=function(t,n){var r=n.axisType,o=r===void 0?"xAxis":r,l=n.AxisComp,c=n.graphicalItems,f=n.stackGroups,d=n.dataStartIndex,h=n.dataEndIndex,y=t.children,v="".concat(o,"Id"),g=Ft(y,l),x={};return g&&g.length?x=rX(t,{axes:g,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h}):c&&c.length&&(x=aX(t,{Axis:l,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h})),x},oX=function(t){var n=Aa(t),r=zr(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:J0(r,function(o){return o.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Af(n,r)}},GM=function(t){var n=t.children,r=t.defaultShowTooltip,o=gn(n,Lo),l=0,c=0;return t.data&&t.data.length!==0&&(c=t.data.length-1),o&&o.props&&(o.props.startIndex>=0&&(l=o.props.startIndex),o.props.endIndex>=0&&(c=o.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:l,dataEndIndex:c,activeTooltipIndex:-1,isTooltipActive:!!r}},uX=function(t){return!t||!t.length?!1:t.some(function(n){var r=Br(n&&n.type);return r&&r.indexOf("Bar")>=0})},KM=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"}},lX=function(t,n){var r=t.props,o=t.graphicalItems,l=t.xAxisMap,c=l===void 0?{}:l,f=t.yAxisMap,d=f===void 0?{}:f,h=r.width,y=r.height,v=r.children,g=r.margin||{},x=gn(v,Lo),O=gn(v,Lr),S=Object.keys(d).reduce(function(A,E){var P=d[E],N=P.orientation;return!P.mirror&&!P.hide?te(te({},A),{},Oe({},N,A[N]+P.width)):A},{left:g.left||0,right:g.right||0}),b=Object.keys(c).reduce(function(A,E){var P=c[E],N=P.orientation;return!P.mirror&&!P.hide?te(te({},A),{},Oe({},N,xn(A,"".concat(N))+P.height)):A},{top:g.top||0,bottom:g.bottom||0}),w=te(te({},b),S),T=w.bottom;x&&(w.bottom+=x.props.height||Lo.defaultProps.height),O&&n&&(w=Q6(w,o,r,n));var j=h-w.left-w.right,M=y-w.top-w.bottom;return te(te({brushBottom:T},w),{},{width:Math.max(j,0),height:Math.max(M,0)})},cX=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},Bd=function(t){var n=t.chartName,r=t.GraphicalChild,o=t.defaultTooltipEventType,l=o===void 0?"axis":o,c=t.validateTooltipEventTypes,f=c===void 0?["axis"]:c,d=t.axisComponents,h=t.legendContent,y=t.formatAxisMap,v=t.defaultProps,g=function(w,T){var j=T.graphicalItems,M=T.stackGroups,A=T.offset,E=T.updateId,P=T.dataStartIndex,N=T.dataEndIndex,q=w.barSize,X=w.layout,U=w.barGap,B=w.barCategoryGap,V=w.maxBarSize,k=KM(X),I=k.numericAxisName,D=k.cateAxisName,H=uX(j),Q=[];return j.forEach(function(oe,le){var $=qd(w.data,{graphicalItems:[oe],dataStartIndex:P,dataEndIndex:N}),G=oe.type.defaultProps!==void 0?te(te({},oe.type.defaultProps),oe.props):oe.props,ne=G.dataKey,fe=G.maxBarSize,pe=G["".concat(I,"Id")],be=G["".concat(D,"Id")],Ce={},Ue=d.reduce(function(In,hr){var cu=T["".concat(hr.axisType,"Map")],Ut=G["".concat(hr.axisType,"Id")];cu&&cu[Ut]||hr.axisType==="zAxis"||bi();var yc=cu[Ut];return te(te({},In),{},Oe(Oe({},hr.axisType,yc),"".concat(hr.axisType,"Ticks"),zr(yc)))},Ce),se=Ue[D],_e=Ue["".concat(D,"Ticks")],Ae=M&&M[pe]&&M[pe].hasStack&&c8(oe,M[pe].stackGroups),ue=Br(oe.type).indexOf("Bar")>=0,nt=Af(se,_e),Me=[],ct=H&&Z6({barSize:q,stackGroups:M,totalSize:cX(Ue,D)});if(ue){var st,Lt,Un=ge(fe)?V:fe,er=(st=(Lt=Af(se,_e,!0))!==null&&Lt!==void 0?Lt:Un)!==null&&st!==void 0?st:0;Me=W6({barGap:U,barCategoryGap:B,bandSize:er!==nt?er:nt,sizeList:ct[be],maxBarSize:Un}),er!==nt&&(Me=Me.map(function(In){return te(te({},In),{},{position:te(te({},In.position),{},{offset:In.position.offset-er/2})})}))}var Zr=oe&&oe.type&&oe.type.getComposedData;Zr&&Q.push({props:te(te({},Zr(te(te({},Ue),{},{displayedData:$,props:w,dataKey:ne,item:oe,bandSize:nt,barPosition:Me,offset:A,stackedData:Ae,layout:X,dataStartIndex:P,dataEndIndex:N}))),{},Oe(Oe(Oe({key:oe.key||"item-".concat(le)},I,Ue[I]),D,Ue[D]),"animationId",E)),childIndex:tk(oe,w.children),item:oe})}),Q},x=function(w,T){var j=w.props,M=w.dataStartIndex,A=w.dataEndIndex,E=w.updateId;if(!nw({props:j}))return null;var P=j.children,N=j.layout,q=j.stackOffset,X=j.data,U=j.reverseStackOrder,B=KM(N),V=B.numericAxisName,k=B.cateAxisName,I=Ft(P,r),D=u8(X,I,"".concat(V,"Id"),"".concat(k,"Id"),q,U),H=d.reduce(function(G,ne){var fe="".concat(ne.axisType,"Map");return te(te({},G),{},Oe({},fe,iX(j,te(te({},ne),{},{graphicalItems:I,stackGroups:ne.axisType===V&&D,dataStartIndex:M,dataEndIndex:A}))))},{}),Q=lX(te(te({},H),{},{props:j,graphicalItems:I}),T==null?void 0:T.legendBBox);Object.keys(H).forEach(function(G){H[G]=y(j,H[G],Q,G.replace("Map",""),n)});var oe=H["".concat(k,"Map")],le=oX(oe),$=g(j,te(te({},H),{},{dataStartIndex:M,dataEndIndex:A,updateId:E,graphicalItems:I,stackGroups:D,offset:Q}));return te(te({formattedGraphicalItems:$,graphicalItems:I,offset:Q,stackGroups:D},le),H)},O=(function(b){function w(T){var j,M,A;return IY(this,w),A=KY(this,w,[T]),Oe(A,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Oe(A,"accessibilityManager",new jY),Oe(A,"handleLegendBBoxUpdate",function(E){if(E){var P=A.state,N=P.dataStartIndex,q=P.dataEndIndex,X=P.updateId;A.setState(te({legendBBox:E},x({props:A.props,dataStartIndex:N,dataEndIndex:q,updateId:X},te(te({},A.state),{},{legendBBox:E}))))}}),Oe(A,"handleReceiveSyncEvent",function(E,P,N){if(A.props.syncId===E){if(N===A.eventEmitterSymbol&&typeof A.props.syncMethod!="function")return;A.applySyncEvent(P)}}),Oe(A,"handleBrushChange",function(E){var P=E.startIndex,N=E.endIndex;if(P!==A.state.dataStartIndex||N!==A.state.dataEndIndex){var q=A.state.updateId;A.setState(function(){return te({dataStartIndex:P,dataEndIndex:N},x({props:A.props,dataStartIndex:P,dataEndIndex:N,updateId:q},A.state))}),A.triggerSyncEvent({dataStartIndex:P,dataEndIndex:N})}}),Oe(A,"handleMouseEnter",function(E){var P=A.getMouseInfo(E);if(P){var N=te(te({},P),{},{isTooltipActive:!0});A.setState(N),A.triggerSyncEvent(N);var q=A.props.onMouseEnter;Se(q)&&q(N,E)}}),Oe(A,"triggeredAfterMouseMove",function(E){var P=A.getMouseInfo(E),N=P?te(te({},P),{},{isTooltipActive:!0}):{isTooltipActive:!1};A.setState(N),A.triggerSyncEvent(N);var q=A.props.onMouseMove;Se(q)&&q(N,E)}),Oe(A,"handleItemMouseEnter",function(E){A.setState(function(){return{isTooltipActive:!0,activeItem:E,activePayload:E.tooltipPayload,activeCoordinate:E.tooltipPosition||{x:E.cx,y:E.cy}}})}),Oe(A,"handleItemMouseLeave",function(){A.setState(function(){return{isTooltipActive:!1}})}),Oe(A,"handleMouseMove",function(E){E.persist(),A.throttleTriggeredAfterMouseMove(E)}),Oe(A,"handleMouseLeave",function(E){A.throttleTriggeredAfterMouseMove.cancel();var P={isTooltipActive:!1};A.setState(P),A.triggerSyncEvent(P);var N=A.props.onMouseLeave;Se(N)&&N(P,E)}),Oe(A,"handleOuterEvent",function(E){var P=ek(E),N=xn(A.props,"".concat(P));if(P&&Se(N)){var q,X;/.*touch.*/i.test(P)?X=A.getMouseInfo(E.changedTouches[0]):X=A.getMouseInfo(E),N((q=X)!==null&&q!==void 0?q:{},E)}}),Oe(A,"handleClick",function(E){var P=A.getMouseInfo(E);if(P){var N=te(te({},P),{},{isTooltipActive:!0});A.setState(N),A.triggerSyncEvent(N);var q=A.props.onClick;Se(q)&&q(N,E)}}),Oe(A,"handleMouseDown",function(E){var P=A.props.onMouseDown;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"handleMouseUp",function(E){var P=A.props.onMouseUp;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"handleTouchMove",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.throttleTriggeredAfterMouseMove(E.changedTouches[0])}),Oe(A,"handleTouchStart",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseDown(E.changedTouches[0])}),Oe(A,"handleTouchEnd",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseUp(E.changedTouches[0])}),Oe(A,"handleDoubleClick",function(E){var P=A.props.onDoubleClick;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"handleContextMenu",function(E){var P=A.props.onContextMenu;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"triggerSyncEvent",function(E){A.props.syncId!==void 0&&rb.emit(ab,A.props.syncId,E,A.eventEmitterSymbol)}),Oe(A,"applySyncEvent",function(E){var P=A.props,N=P.layout,q=P.syncMethod,X=A.state.updateId,U=E.dataStartIndex,B=E.dataEndIndex;if(E.dataStartIndex!==void 0||E.dataEndIndex!==void 0)A.setState(te({dataStartIndex:U,dataEndIndex:B},x({props:A.props,dataStartIndex:U,dataEndIndex:B,updateId:X},A.state)));else if(E.activeTooltipIndex!==void 0){var V=E.chartX,k=E.chartY,I=E.activeTooltipIndex,D=A.state,H=D.offset,Q=D.tooltipTicks;if(!H)return;if(typeof q=="function")I=q(Q,E);else if(q==="value"){I=-1;for(var oe=0;oe<Q.length;oe++)if(Q[oe].value===E.activeLabel){I=oe;break}}var le=te(te({},H),{},{x:H.left,y:H.top}),$=Math.min(V,le.x+le.width),G=Math.min(k,le.y+le.height),ne=Q[I]&&Q[I].value,fe=D0(A.state,A.props.data,I),pe=Q[I]?{x:N==="horizontal"?Q[I].coordinate:$,y:N==="horizontal"?G:Q[I].coordinate}:SN;A.setState(te(te({},E),{},{activeLabel:ne,activeCoordinate:pe,activePayload:fe,activeTooltipIndex:I}))}else A.setState(E)}),Oe(A,"renderCursor",function(E){var P,N=A.state,q=N.isTooltipActive,X=N.activeCoordinate,U=N.activePayload,B=N.offset,V=N.activeTooltipIndex,k=N.tooltipAxisBandSize,I=A.getTooltipEventType(),D=(P=E.props.active)!==null&&P!==void 0?P:q,H=A.props.layout,Q=E.key||"_recharts-cursor";return R.createElement($Y,{key:Q,activeCoordinate:X,activePayload:U,activeTooltipIndex:V,chartName:n,element:E,isActive:D,layout:H,offset:B,tooltipAxisBandSize:k,tooltipEventType:I})}),Oe(A,"renderPolarAxis",function(E,P,N){var q=xn(E,"type.axisType"),X=xn(A.state,"".concat(q,"Map")),U=E.type.defaultProps,B=U!==void 0?te(te({},U),E.props):E.props,V=X&&X[B["".concat(q,"Id")]];return re.cloneElement(E,te(te({},V),{},{className:Te(q,V.className),key:E.key||"".concat(P,"-").concat(N),ticks:zr(V,!0)}))}),Oe(A,"renderPolarGrid",function(E){var P=E.props,N=P.radialLines,q=P.polarAngles,X=P.polarRadius,U=A.state,B=U.radiusAxisMap,V=U.angleAxisMap,k=Aa(B),I=Aa(V),D=I.cx,H=I.cy,Q=I.innerRadius,oe=I.outerRadius;return re.cloneElement(E,{polarAngles:Array.isArray(q)?q:zr(I,!0).map(function(le){return le.coordinate}),polarRadius:Array.isArray(X)?X:zr(k,!0).map(function(le){return le.coordinate}),cx:D,cy:H,innerRadius:Q,outerRadius:oe,key:E.key||"polar-grid",radialLines:N})}),Oe(A,"renderLegend",function(){var E=A.state.formattedGraphicalItems,P=A.props,N=P.children,q=P.width,X=P.height,U=A.props.margin||{},B=q-(U.left||0)-(U.right||0),V=ZC({children:N,formattedGraphicalItems:E,legendWidth:B,legendContent:h});if(!V)return null;var k=V.item,I=UM(V,kY);return re.cloneElement(k,te(te({},I),{},{chartWidth:q,chartHeight:X,margin:U,onBBoxUpdate:A.handleLegendBBoxUpdate}))}),Oe(A,"renderTooltip",function(){var E,P=A.props,N=P.children,q=P.accessibilityLayer,X=gn(N,rn);if(!X)return null;var U=A.state,B=U.isTooltipActive,V=U.activeCoordinate,k=U.activePayload,I=U.activeLabel,D=U.offset,H=(E=X.props.active)!==null&&E!==void 0?E:B;return re.cloneElement(X,{viewBox:te(te({},D),{},{x:D.left,y:D.top}),active:H,label:I,payload:H?k:[],coordinate:V,accessibilityLayer:q})}),Oe(A,"renderBrush",function(E){var P=A.props,N=P.margin,q=P.data,X=A.state,U=X.offset,B=X.dataStartIndex,V=X.dataEndIndex,k=X.updateId;return re.cloneElement(E,{key:E.key||"_recharts-brush",onChange:Is(A.handleBrushChange,E.props.onChange),data:q,x:ce(E.props.x)?E.props.x:U.left,y:ce(E.props.y)?E.props.y:U.top+U.height+U.brushBottom-(N.bottom||0),width:ce(E.props.width)?E.props.width:U.width,startIndex:B,endIndex:V,updateId:"brush-".concat(k)})}),Oe(A,"renderReferenceElement",function(E,P,N){if(!E)return null;var q=A,X=q.clipPathId,U=A.state,B=U.xAxisMap,V=U.yAxisMap,k=U.offset,I=E.type.defaultProps||{},D=E.props,H=D.xAxisId,Q=H===void 0?I.xAxisId:H,oe=D.yAxisId,le=oe===void 0?I.yAxisId:oe;return re.cloneElement(E,{key:E.key||"".concat(P,"-").concat(N),xAxis:B[Q],yAxis:V[le],viewBox:{x:k.left,y:k.top,width:k.width,height:k.height},clipPathId:X})}),Oe(A,"renderActivePoints",function(E){var P=E.item,N=E.activePoint,q=E.basePoint,X=E.childIndex,U=E.isRange,B=[],V=P.props.key,k=P.item.type.defaultProps!==void 0?te(te({},P.item.type.defaultProps),P.item.props):P.item.props,I=k.activeDot,D=k.dataKey,H=te(te({index:X,dataKey:D,cx:N.x,cy:N.y,r:4,fill:wx(P.item),strokeWidth:2,stroke:"#fff",payload:N.payload,value:N.value},ye(I,!1)),Qs(I));return B.push(w.renderActiveDot(I,H,"".concat(V,"-activePoint-").concat(X))),q?B.push(w.renderActiveDot(I,te(te({},H),{},{cx:q.x,cy:q.y}),"".concat(V,"-basePoint-").concat(X))):U&&B.push(null),B}),Oe(A,"renderGraphicChild",function(E,P,N){var q=A.filterFormatItem(E,P,N);if(!q)return null;var X=A.getTooltipEventType(),U=A.state,B=U.isTooltipActive,V=U.tooltipAxis,k=U.activeTooltipIndex,I=U.activeLabel,D=A.props.children,H=gn(D,rn),Q=q.props,oe=Q.points,le=Q.isRange,$=Q.baseLine,G=q.item.type.defaultProps!==void 0?te(te({},q.item.type.defaultProps),q.item.props):q.item.props,ne=G.activeDot,fe=G.hide,pe=G.activeBar,be=G.activeShape,Ce=!!(!fe&&B&&H&&(ne||pe||be)),Ue={};X!=="axis"&&H&&H.props.trigger==="click"?Ue={onClick:Is(A.handleItemMouseEnter,E.props.onClick)}:X!=="axis"&&(Ue={onMouseLeave:Is(A.handleItemMouseLeave,E.props.onMouseLeave),onMouseEnter:Is(A.handleItemMouseEnter,E.props.onMouseEnter)});var se=re.cloneElement(E,te(te({},q.props),Ue));function _e(hr){return typeof V.dataKey=="function"?V.dataKey(hr.payload):null}if(Ce)if(k>=0){var Ae,ue;if(V.dataKey&&!V.allowDuplicatedCategory){var nt=typeof V.dataKey=="function"?_e:"payload.".concat(V.dataKey.toString());Ae=Ws(oe,nt,I),ue=le&&$&&Ws($,nt,I)}else Ae=oe==null?void 0:oe[k],ue=le&&$&&$[k];if(be||pe){var Me=E.props.activeIndex!==void 0?E.props.activeIndex:k;return[re.cloneElement(E,te(te(te({},q.props),Ue),{},{activeIndex:Me})),null,null]}if(!ge(Ae))return[se].concat(Jo(A.renderActivePoints({item:q,activePoint:Ae,basePoint:ue,childIndex:k,isRange:le})))}else{var ct,st=(ct=A.getItemByXY(A.state.activeCoordinate))!==null&&ct!==void 0?ct:{graphicalItem:se},Lt=st.graphicalItem,Un=Lt.item,er=Un===void 0?E:Un,Zr=Lt.childIndex,In=te(te(te({},q.props),Ue),{},{activeIndex:Zr});return[re.cloneElement(er,In),null,null]}return le?[se,null,null]:[se,null]}),Oe(A,"renderCustomized",function(E,P,N){return re.cloneElement(E,te(te({key:"recharts-customized-".concat(N)},A.props),A.state))}),Oe(A,"renderMap",{CartesianGrid:{handler:Xs,once:!0},ReferenceArea:{handler:A.renderReferenceElement},ReferenceLine:{handler:Xs},ReferenceDot:{handler:A.renderReferenceElement},XAxis:{handler:Xs},YAxis:{handler:Xs},Brush:{handler:A.renderBrush,once:!0},Bar:{handler:A.renderGraphicChild},Line:{handler:A.renderGraphicChild},Area:{handler:A.renderGraphicChild},Radar:{handler:A.renderGraphicChild},RadialBar:{handler:A.renderGraphicChild},Scatter:{handler:A.renderGraphicChild},Pie:{handler:A.renderGraphicChild},Funnel:{handler:A.renderGraphicChild},Tooltip:{handler:A.renderCursor,once:!0},PolarGrid:{handler:A.renderPolarGrid,once:!0},PolarAngleAxis:{handler:A.renderPolarAxis},PolarRadiusAxis:{handler:A.renderPolarAxis},Customized:{handler:A.renderCustomized}}),A.clipPathId="".concat((j=T.id)!==null&&j!==void 0?j:Na("recharts"),"-clip"),A.throttleTriggeredAfterMouseMove=ZP(A.triggeredAfterMouseMove,(M=T.throttleDelay)!==null&&M!==void 0?M:1e3/60),A.state={},A}return VY(w,b),GY(w,[{key:"componentDidMount",value:function(){var j,M;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(j=this.props.margin.left)!==null&&j!==void 0?j:0,top:(M=this.props.margin.top)!==null&&M!==void 0?M:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var j=this.props,M=j.children,A=j.data,E=j.height,P=j.layout,N=gn(M,rn);if(N){var q=N.props.defaultIndex;if(!(typeof q!="number"||q<0||q>this.state.tooltipTicks.length-1)){var X=this.state.tooltipTicks[q]&&this.state.tooltipTicks[q].value,U=D0(this.state,A,q,X),B=this.state.tooltipTicks[q].coordinate,V=(this.state.offset.top+E)/2,k=P==="horizontal",I=k?{x:B,y:V}:{y:B,x:V},D=this.state.formattedGraphicalItems.find(function(Q){var oe=Q.item;return oe.type.name==="Scatter"});D&&(I=te(te({},I),D.props.points[q].tooltipPosition),U=D.props.points[q].tooltipPayload);var H={activeTooltipIndex:q,isTooltipActive:!0,activeLabel:X,activePayload:U,activeCoordinate:I};this.setState(H),this.renderCursor(N),this.accessibilityManager.setIndex(q)}}}},{key:"getSnapshotBeforeUpdate",value:function(j,M){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==M.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==j.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==j.margin){var A,E;this.accessibilityManager.setDetails({offset:{left:(A=this.props.margin.left)!==null&&A!==void 0?A:0,top:(E=this.props.margin.top)!==null&&E!==void 0?E:0}})}return null}},{key:"componentDidUpdate",value:function(j){fb([gn(j.children,rn)],[gn(this.props.children,rn)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var j=gn(this.props.children,rn);if(j&&typeof j.props.shared=="boolean"){var M=j.props.shared?"axis":"item";return f.indexOf(M)>=0?M:l}return l}},{key:"getMouseInfo",value:function(j){if(!this.container)return null;var M=this.container,A=M.getBoundingClientRect(),E=UB(A),P={chartX:Math.round(j.pageX-E.left),chartY:Math.round(j.pageY-E.top)},N=A.width/M.offsetWidth||1,q=this.inRange(P.chartX,P.chartY,N);if(!q)return null;var X=this.state,U=X.xAxisMap,B=X.yAxisMap,V=this.getTooltipEventType(),k=HM(this.state,this.props.data,this.props.layout,q);if(V!=="axis"&&U&&B){var I=Aa(U).scale,D=Aa(B).scale,H=I&&I.invert?I.invert(P.chartX):null,Q=D&&D.invert?D.invert(P.chartY):null;return te(te({},P),{},{xValue:H,yValue:Q},k)}return k?te(te({},P),k):null}},{key:"inRange",value:function(j,M){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,E=this.props.layout,P=j/A,N=M/A;if(E==="horizontal"||E==="vertical"){var q=this.state.offset,X=P>=q.left&&P<=q.left+q.width&&N>=q.top&&N<=q.top+q.height;return X?{x:P,y:N}:null}var U=this.state,B=U.angleAxisMap,V=U.radiusAxisMap;if(B&&V){var k=Aa(B);return Gj({x:P,y:N},k)}return null}},{key:"parseEventsOfWrapper",value:function(){var j=this.props.children,M=this.getTooltipEventType(),A=gn(j,rn),E={};A&&M==="axis"&&(A.props.trigger==="click"?E={onClick:this.handleClick}:E={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 P=Qs(this.props,this.handleOuterEvent);return te(te({},P),E)}},{key:"addListener",value:function(){rb.on(ab,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){rb.removeListener(ab,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(j,M,A){for(var E=this.state.formattedGraphicalItems,P=0,N=E.length;P<N;P++){var q=E[P];if(q.item===j||q.props.key===j.key||M===Br(q.item.type)&&A===q.childIndex)return q}return null}},{key:"renderClipPath",value:function(){var j=this.clipPathId,M=this.state.offset,A=M.left,E=M.top,P=M.height,N=M.width;return R.createElement("defs",null,R.createElement("clipPath",{id:j},R.createElement("rect",{x:A,y:E,height:P,width:N})))}},{key:"getXScales",value:function(){var j=this.state.xAxisMap;return j?Object.entries(j).reduce(function(M,A){var E=LM(A,2),P=E[0],N=E[1];return te(te({},M),{},Oe({},P,N.scale))},{}):null}},{key:"getYScales",value:function(){var j=this.state.yAxisMap;return j?Object.entries(j).reduce(function(M,A){var E=LM(A,2),P=E[0],N=E[1];return te(te({},M),{},Oe({},P,N.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(j){var M;return(M=this.state.xAxisMap)===null||M===void 0||(M=M[j])===null||M===void 0?void 0:M.scale}},{key:"getYScaleByAxisId",value:function(j){var M;return(M=this.state.yAxisMap)===null||M===void 0||(M=M[j])===null||M===void 0?void 0:M.scale}},{key:"getItemByXY",value:function(j){var M=this.state,A=M.formattedGraphicalItems,E=M.activeItem;if(A&&A.length)for(var P=0,N=A.length;P<N;P++){var q=A[P],X=q.props,U=q.item,B=U.type.defaultProps!==void 0?te(te({},U.type.defaultProps),U.props):U.props,V=Br(U.type);if(V==="Bar"){var k=(X.data||[]).find(function(Q){return lH(j,Q)});if(k)return{graphicalItem:q,payload:k}}else if(V==="RadialBar"){var I=(X.data||[]).find(function(Q){return Gj(j,Q)});if(I)return{graphicalItem:q,payload:I}}else if(Md(q,E)||Pd(q,E)||nc(q,E)){var D=C9({graphicalItem:q,activeTooltipItem:E,itemData:B.data}),H=B.activeIndex===void 0?D:B.activeIndex;return{graphicalItem:te(te({},q),{},{childIndex:H}),payload:nc(q,E)?B.data[D]:q.props.data[D]}}}return null}},{key:"render",value:function(){var j=this;if(!nw(this))return null;var M=this.props,A=M.children,E=M.className,P=M.width,N=M.height,q=M.style,X=M.compact,U=M.title,B=M.desc,V=UM(M,zY),k=ye(V,!1);if(X)return R.createElement(mM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},R.createElement(hb,xo({},k,{width:P,height:N,title:U,desc:B}),this.renderClipPath(),aw(A,this.renderMap)));if(this.props.accessibilityLayer){var I,D;k.tabIndex=(I=this.props.tabIndex)!==null&&I!==void 0?I:0,k.role=(D=this.props.role)!==null&&D!==void 0?D:"application",k.onKeyDown=function(Q){j.accessibilityManager.keyboardEvent(Q)},k.onFocus=function(){j.accessibilityManager.focus()}}var H=this.parseEventsOfWrapper();return R.createElement(mM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},R.createElement("div",xo({className:Te("recharts-wrapper",E),style:te({position:"relative",cursor:"default",width:P,height:N},q)},H,{ref:function(oe){j.container=oe}}),R.createElement(hb,xo({},k,{width:P,height:N,title:U,desc:B,style:eX}),this.renderClipPath(),aw(A,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])})(re.Component);Oe(O,"displayName",n),Oe(O,"defaultProps",te({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},v)),Oe(O,"getDerivedStateFromProps",function(b,w){var T=b.dataKey,j=b.data,M=b.children,A=b.width,E=b.height,P=b.layout,N=b.stackOffset,q=b.margin,X=w.dataStartIndex,U=w.dataEndIndex;if(w.updateId===void 0){var B=GM(b);return te(te(te({},B),{},{updateId:0},x(te(te({props:b},B),{},{updateId:0}),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:P,prevStackOffset:N,prevMargin:q,prevChildren:M})}if(T!==w.prevDataKey||j!==w.prevData||A!==w.prevWidth||E!==w.prevHeight||P!==w.prevLayout||N!==w.prevStackOffset||!So(q,w.prevMargin)){var V=GM(b),k={chartX:w.chartX,chartY:w.chartY,isTooltipActive:w.isTooltipActive},I=te(te({},HM(w,j,P)),{},{updateId:w.updateId+1}),D=te(te(te({},V),k),I);return te(te(te({},D),x(te({props:b},D),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:P,prevStackOffset:N,prevMargin:q,prevChildren:M})}if(!fb(M,w.prevChildren)){var H,Q,oe,le,$=gn(M,Lo),G=$&&(H=(Q=$.props)===null||Q===void 0?void 0:Q.startIndex)!==null&&H!==void 0?H:X,ne=$&&(oe=(le=$.props)===null||le===void 0?void 0:le.endIndex)!==null&&oe!==void 0?oe:U,fe=G!==X||ne!==U,pe=!ge(j),be=pe&&!fe?w.updateId:w.updateId+1;return te(te({updateId:be},x(te(te({props:b},w),{},{updateId:be,dataStartIndex:G,dataEndIndex:ne}),w)),{},{prevChildren:M,dataStartIndex:G,dataEndIndex:ne})}return null}),Oe(O,"renderActiveDot",function(b,w,T){var j;return re.isValidElement(b)?j=re.cloneElement(b,w):Se(b)?j=b(w):j=R.createElement(vc,w),R.createElement(je,{className:"recharts-active-dot",key:T},j)});var S=re.forwardRef(function(w,T){return R.createElement(O,xo({},w,{ref:T}))});return S.displayName=O.displayName,S},sX=Bd({chartName:"LineChart",GraphicalChild:Si,axisComponents:[{axisType:"xAxis",AxisComp:qr},{axisType:"yAxis",AxisComp:ir}],formatAxisMap:Ex}),YM=Bd({chartName:"BarChart",GraphicalChild:Zn,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:qr},{axisType:"yAxis",AxisComp:ir}],formatAxisMap:Ex}),fX=Bd({chartName:"PieChart",GraphicalChild:Fr,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:jd},{axisType:"radiusAxis",AxisComp:Td}],formatAxisMap:b8,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}}),dX=Bd({chartName:"ComposedChart",GraphicalChild:[Si,za,Zn,zd],axisComponents:[{axisType:"xAxis",AxisComp:qr},{axisType:"yAxis",AxisComp:ir},{axisType:"zAxis",AxisComp:kd}],formatAxisMap:Ex});const zx="/api";function qx(e,t){const n=[];if(e==="codex"&&n.push("agent=codex"),t){const r=Object.keys(t);for(let o=0;o<r.length;o++){const l=t[r[o]];l&&n.push(encodeURIComponent(r[o])+"="+encodeURIComponent(l))}}return n.length>0?"?"+n.join("&"):""}async function hX(e="claude"){const t=await fetch(`${zx}/daily${qx(e)}`);if(!t.ok)throw new Error(`Failed to fetch daily data: ${t.status} ${t.statusText}`);return t.json()}async function pX(e="claude"){const t=await fetch(`${zx}/projects${qx(e)}`);if(!t.ok)throw new Error(`Failed to fetch projects data: ${t.status} ${t.statusText}`);return t.json()}async function vX(e="claude",t=""){const n=await fetch(`${zx}/blocks${qx(e,t?{project:t}:void 0)}`);if(!n.ok)throw new Error(`Failed to fetch blocks data: ${n.status} ${n.statusText}`);return n.json()}function ob(e){const[t,n]=re.useState(null),[r,o]=re.useState(!0),[l,c]=re.useState(null),f=re.useCallback(async()=>{o(!0),c(null);try{const d=await e();n(d)}catch(d){c(d instanceof Error?d.message:"An error occurred")}finally{o(!1)}},[e]);return re.useEffect(()=>{f()},[f]),{data:t,loading:r,error:l,refetch:f}}function Vs(e,t){const[n,r]=re.useState(()=>{try{const o=window.localStorage.getItem(e);if(o!==null)return JSON.parse(o)}catch(o){console.warn(`Error reading localStorage key "${e}":`,o)}return t});return re.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(n))}catch(o){console.warn(`Error setting localStorage key "${e}":`,o)}},[e,n]),[n,r]}function qt(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(0)+"K":e.toLocaleString("en-US",{maximumFractionDigits:0})}function Nr(e){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}function Fs(e){return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function ub(e){return e.toFixed(1)+"%"}function _N(e,t){if(!e)return"";const n=l=>l.includes("/")?l.split("/").filter(Boolean):l.split("-").filter(Boolean),r=n(e);if(r.length===0)return e;const o=r[r.length-1];return t&&t.length>0&&t.some(c=>{if(c===e)return!1;const f=n(c);return f.length>0&&f[f.length-1]===o})&&r.length>=2?`${r[r.length-2]}/${o}`:o}function yX(e){return e/1e6*3*(1-.1)}const XM={"claude-opus-4-20250514":"Opus 4","claude-sonnet-4-20250514":"Sonnet 4","claude-haiku-3-5-20241022":"Haiku 3.5","claude-opus-3-20250214":"Opus 3","claude-sonnet-3-20250214":"Sonnet 3","claude-sonnet-3-5-20250214":"Sonnet 3.5","claude-haiku-3-20250214":"Haiku 3","claude-opus-4":"Opus 4","claude-sonnet-4":"Sonnet 4","claude-haiku-4":"Haiku 4"};function lb(e){if(XM[e])return XM[e];const t=e.match(/^claude-(opus|sonnet|haiku)-?[\d.]*-?/);if(t){const n=t[1],r=e.match(/(\d+[\d.]*)/);return r?`${n.charAt(0).toUpperCase()+n.slice(1)} ${r[1]}`:n.charAt(0).toUpperCase()+n.slice(1)}return e}const Rn=["#4f46e5","#10b981","#f59e0b","#ec4899","#0ea5e9","#8b5cf6","#ef4444","#14b8a6"],AN=[{key:"7d",label:"7D",days:7},{key:"30d",label:"30D",days:30},{key:"60d",label:"60D",days:60}];function vo({label:e,value:t,sub:n,insight:r,accent:o}){return Y.jsxs("div",{className:"flex flex-col gap-1 p-5 rounded-2xl bg-white shadow-[0_1px_3px_rgba(120,113,108,0.06)] transition-shadow duration-200 hover:shadow-[0_4px_12px_rgba(120,113,108,0.09)]",children:[Y.jsx("span",{className:"text-[12px] font-medium text-stone-400",children:e}),Y.jsx("span",{className:`text-3xl font-extrabold tracking-tighter font-mono mt-1 ${o?"text-indigo-600":"text-stone-900"}`,children:t}),n&&Y.jsx("span",{className:"text-xs font-medium text-stone-400 mt-0.5",children:n}),r&&Y.jsx("div",{className:"mt-2.5 pt-2.5 border-t border-stone-100 text-[12px] font-medium text-stone-500 leading-relaxed",children:r})]})}function ii({title:e,subtitle:t,children:n,className:r=""}){return Y.jsxs("div",{className:`flex flex-col rounded-2xl bg-white p-5 shadow-[0_1px_3px_rgba(120,113,108,0.06)] ${r}`,children:[Y.jsxs("div",{className:"mb-5",children:[Y.jsx("h3",{className:"text-[15px] font-semibold text-stone-900 tracking-tight",children:e}),t&&Y.jsx("p",{className:"text-[13px] font-medium text-stone-400 mt-1",children:t})]}),Y.jsx("div",{className:"flex-1 min-h-0",children:n})]})}function pl({active:e,payload:t,label:n,fmt:r=qt}){return!e||!(t!=null&&t.length)?null:Y.jsxs("div",{className:"bg-white rounded-xl px-3.5 py-3 shadow-[0_8px_30px_rgba(120,113,108,0.12)] text-[11px] border border-stone-200/40",children:[n&&Y.jsx("div",{className:"text-stone-400 mb-1.5 font-medium",children:n}),t.map((o,l)=>Y.jsxs("div",{className:"flex items-center justify-between gap-5",children:[Y.jsxs("span",{className:"flex items-center gap-1.5",children:[Y.jsx("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:o.color}}),o.name]}),Y.jsx("span",{className:"font-mono text-stone-700",children:r(o.value)})]},l))]})}function VM({options:e,value:t,onChange:n}){return Y.jsx("div",{className:"flex items-center gap-0.5 p-0.5 bg-stone-100 rounded-lg",children:e.map(r=>Y.jsx("button",{onClick:()=>n(r.key),className:`px-3 py-1.5 rounded-md text-[11px] font-semibold tracking-wide transition-all duration-200 ${t===r.key?"bg-stone-800 text-white shadow-sm":"text-stone-500 hover:text-stone-800 hover:bg-stone-50"}`,children:r.label},r.key))})}function mX({projects:e,value:t,onChange:n}){return Y.jsxs("select",{value:t,onChange:r=>n(r.target.value),className:"bg-white border border-stone-200 rounded-lg px-3 py-1.5 text-[12px] font-semibold text-stone-800 outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 max-w-[220px]",children:[Y.jsx("option",{value:"",children:"All Projects"}),e.map(r=>Y.jsx("option",{value:r,children:_N(r,e)},r))]})}function td(e,t){const n=AN.find(l=>l.key===t),r=n?n.days:30,o=new Date;return o.setDate(o.getDate()-r),e.filter(l=>{const c=l.date||l.startTime||"";return new Date(c)>=o})}function gX(e,t,n){if(!t){const r={};for(const o of Object.values(e))for(const l of td(o,n))if(!r[l.date])r[l.date]={...l,modelsUsed:[...l.modelsUsed],modelBreakdowns:l.modelBreakdowns.map(c=>({...c}))};else{const c=r[l.date];c.inputTokens+=l.inputTokens,c.outputTokens+=l.outputTokens,c.cacheCreationTokens+=l.cacheCreationTokens,c.cacheReadTokens+=l.cacheReadTokens,c.totalTokens+=l.totalTokens,c.totalCost+=l.totalCost;for(const f of l.modelBreakdowns){const d=c.modelBreakdowns.find(h=>h.modelName===f.modelName);d?(d.inputTokens+=f.inputTokens,d.outputTokens+=f.outputTokens,d.cacheCreationTokens+=f.cacheCreationTokens,d.cacheReadTokens+=f.cacheReadTokens,d.cost+=f.cost):c.modelBreakdowns.push({...f})}}return Object.values(r).sort((o,l)=>o.date.localeCompare(l.date))}return td(e[t]||[],n)}function bX(){const[e,t]=Vs("dashboard_agent","claude"),[n,r]=Vs("dashboard_timeRange","30d"),[o,l]=Vs("dashboard_project",""),c=ob(re.useCallback(()=>hX(e),[e])),f=ob(re.useCallback(()=>pX(e),[e])),d=ob(re.useCallback(()=>vX(e,o),[e,o])),[h,y]=Vs("dashboard_metric","tokens"),v=k=>{t(k),l("")},g=c.loading||f.loading||d.loading,x=c.error||f.error||d.error,O=h==="tokens",S=O?"tokens":"cost",b=re.useMemo(()=>{var k;return Object.keys(((k=f.data)==null?void 0:k.projects)||{}).sort()},[f.data]),w=re.useMemo(()=>f.data?gX(f.data.projects,o,n):[],[f.data,o,n]),T=re.useMemo(()=>w.reduce((k,I)=>({inputTokens:k.inputTokens+I.inputTokens,outputTokens:k.outputTokens+I.outputTokens,cacheCreationTokens:k.cacheCreationTokens+I.cacheCreationTokens,cacheReadTokens:k.cacheReadTokens+I.cacheReadTokens,totalTokens:k.totalTokens+I.totalTokens,totalCost:k.totalCost+I.totalCost}),{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,totalTokens:0,totalCost:0}),[w]),j=re.useMemo(()=>w.filter(k=>k.totalTokens>0).length,[w]),M=re.useMemo(()=>{if(!w.length)return{date:"-",tokens:0};const k=w.reduce((I,D)=>D.totalTokens>I.totalTokens?D:I,w[0]);return{date:k.date,tokens:k.totalTokens}},[w]),A=T.inputTokens>0?T.cacheReadTokens/(T.cacheReadTokens+T.inputTokens)*100:0,E=T.inputTokens>0?T.outputTokens/T.inputTokens*100:0,P=re.useMemo(()=>({tokensSaved:T.cacheReadTokens,costSaved:yX(T.cacheReadTokens),hitRate:A}),[T.cacheReadTokens,A]),N=re.useMemo(()=>{const k={};for(const I of w)for(const D of I.modelBreakdowns){const H=lb(D.modelName);k[H]||(k[H]={tokens:0,cost:0,input:0,output:0,cacheRead:0}),k[H].tokens+=D.inputTokens+D.outputTokens,k[H].cost+=D.cost,k[H].input+=D.inputTokens,k[H].output+=D.outputTokens,k[H].cacheRead+=D.cacheReadTokens}return Object.entries(k).map(([I,D])=>({name:I,...D})).sort((I,D)=>D.tokens-I.tokens)},[w]),q=re.useMemo(()=>w.map(k=>{const I={date:Fs(k.date)};for(const D of k.modelBreakdowns){const H=lb(D.modelName);I[H]=(I[H]||0)+(O?D.inputTokens+D.outputTokens:D.cost)}return I}),[w,O]),X=re.useMemo(()=>f.data?Object.entries(f.data.projects).map(([k,I])=>{const D=td(I,n);return{name:_N(k,b),full:k,tokens:D.reduce((H,Q)=>H+Q.totalTokens,0),cost:D.reduce((H,Q)=>H+Q.totalCost,0)}}).filter(k=>k.tokens>0).sort((k,I)=>I.tokens-k.tokens):[],[f.data,n]),U=re.useMemo(()=>w.map(k=>({date:Fs(k.date),cacheRead:k.cacheReadTokens,input:k.inputTokens,hitRate:k.inputTokens>0?k.cacheReadTokens/(k.cacheReadTokens+k.inputTokens)*100:0})),[w]),B=re.useMemo(()=>{if(!d.data)return null;const k=td(d.data.blocks,n),I=Array(7).fill(0).map(()=>Array(24).fill(0));let D=0;for(const H of k){if(H.isGap)continue;const Q=new Date(H.startTime),oe=Q.getDay(),le=Q.getHours(),$=O?H.totalTokens:H.costUSD;I[oe][le]+=$,I[oe][le]>D&&(D=I[oe][le])}return{grid:I,maxVal:D}},[d.data,n,O]),V=()=>Y.jsxs("div",{className:"flex items-center gap-1 p-1 bg-stone-200/50 rounded-xl w-fit shadow-inner border border-stone-200/50",children:[Y.jsxs("button",{onClick:()=>v("claude"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${e==="claude"?"bg-white text-indigo-600 shadow-[0_1px_3px_rgba(0,0,0,0.1)] ring-1 ring-stone-900/5":"text-stone-500 hover:text-stone-800 hover:bg-stone-200/50"}`,children:[Y.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:Y.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"Claude Code"]}),Y.jsxs("button",{onClick:()=>v("codex"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${e==="codex"?"bg-white text-emerald-600 shadow-[0_1px_3px_rgba(0,0,0,0.1)] ring-1 ring-stone-900/5":"text-stone-500 hover:text-stone-800 hover:bg-stone-200/50"}`,children:[Y.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:Y.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"})}),"Codex"]})]});return g?Y.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[Y.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[Y.jsx("div",{className:"flex flex-col gap-1.5",children:Y.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"Tokens Dashboard"})}),V()]}),Y.jsx("div",{className:"skeleton h-8 w-48 rounded-lg mb-2"}),Y.jsx("div",{className:"skeleton h-4 w-72 rounded-lg mb-8"}),Y.jsx("div",{className:"grid grid-cols-3 md:grid-cols-6 gap-3 mb-6",children:[...Array(6)].map((k,I)=>Y.jsx("div",{className:"skeleton h-20 rounded-2xl"},I))}),Y.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[Y.jsx("div",{className:"skeleton h-72 rounded-2xl"}),Y.jsx("div",{className:"skeleton h-72 rounded-2xl"})]})]}):x?Y.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[Y.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[Y.jsx("div",{className:"flex flex-col gap-1.5",children:Y.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"Tokens Dashboard"})}),V()]}),Y.jsx("div",{className:"rounded-2xl bg-red-50 border border-red-200/60 p-5",children:Y.jsx("div",{className:"text-red-600 text-sm font-medium",children:x})})]}):!c.data||!f.data?null:Y.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[Y.jsxs("div",{className:"mb-8",children:[Y.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-6",children:[Y.jsxs("div",{className:"flex flex-col gap-1.5",children:[Y.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"Tokens Dashboard"}),Y.jsx("p",{className:"text-[14px] font-medium text-stone-500 leading-relaxed",children:"Monitor token consumption, costs, and cache efficiency for your AI coding assistants."})]}),V()]}),Y.jsx("div",{className:"flex flex-col gap-4",children:Y.jsxs("div",{className:"flex flex-wrap items-center gap-6 p-4 bg-white rounded-2xl border border-stone-200/50 shadow-sm w-fit",children:[Y.jsxs("div",{className:"flex flex-col gap-2",children:[Y.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Time range"}),Y.jsx(VM,{options:AN,value:n,onChange:k=>r(k)})]}),b.length>0&&Y.jsxs(Y.Fragment,{children:[Y.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),Y.jsxs("div",{className:"flex flex-col gap-2",children:[Y.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Project"}),Y.jsx(mX,{projects:b,value:o,onChange:l})]})]}),Y.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),Y.jsxs("div",{className:"flex flex-col gap-2",children:[Y.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Metric"}),Y.jsx(VM,{options:[{key:"tokens",label:"Tokens"},{key:"usd",label:"Cost"}],value:h,onChange:k=>y(k)})]})]})})]}),Y.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-6 gap-4 mb-6",children:[Y.jsx(vo,{label:"Total tokens",value:qt(T.totalTokens),accent:!0,insight:"The primary volume indicator for the selected period."}),Y.jsx(vo,{label:"Total cost",value:Nr(T.totalCost),insight:"Estimated spend based on current pricing."}),Y.jsx(vo,{label:"Daily avg",value:qt(j>0?T.totalTokens/j:0),sub:`${j} active days`,insight:"Baseline for typical daily volume."}),Y.jsx(vo,{label:"Peak day",value:qt(M.tokens),sub:M.date!=="-"?Fs(M.date):void 0,insight:"Highest single day usage."}),Y.jsx(vo,{label:"Cache hit",value:ub(A),insight:"Higher hit rate reduces cost."}),Y.jsx(vo,{label:"Output/Input",value:ub(E),insight:"Ratio of generation to context."})]}),Y.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[Y.jsxs(ii,{title:"Cache efficiency & savings",children:[Y.jsxs("div",{className:"flex items-center gap-6 mb-6 px-4 py-3 bg-emerald-50/50 rounded-xl border border-emerald-100/50",children:[Y.jsxs("div",{className:"flex flex-col",children:[Y.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Est. Cost Saved"}),Y.jsx("span",{className:"text-2xl font-black text-emerald-600 tracking-tight",children:Nr(P.costSaved)})]}),Y.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),Y.jsxs("div",{className:"flex flex-col",children:[Y.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Tokens Saved"}),Y.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:qt(P.tokensSaved)})]}),Y.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),Y.jsxs("div",{className:"flex flex-col",children:[Y.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Avg Hit Rate"}),Y.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:ub(P.hitRate)})]})]}),Y.jsx(il,{width:"100%",height:210,children:Y.jsxs(dX,{data:U,children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),Y.jsx(qr,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),Y.jsx(ir,{yAxisId:"left",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>qt(k)}),Y.jsx(ir,{yAxisId:"right",orientation:"right",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>`${k.toFixed(0)}%`}),Y.jsx(rn,{content:Y.jsx(pl,{})}),Y.jsx(Lr,{wrapperStyle:{fontSize:11,paddingTop:12}}),Y.jsx(za,{yAxisId:"left",type:"monotone",dataKey:"cacheRead",stroke:Rn[5],fill:Rn[5],fillOpacity:.08,name:"Cache Read",strokeWidth:1.5}),Y.jsx(Si,{yAxisId:"right",type:"monotone",dataKey:"hitRate",stroke:Rn[3],strokeWidth:2,dot:!1,name:"Hit Rate (%)"})]})})]}),o?o?Y.jsx(ii,{title:"Per-model breakdown",children:Y.jsx(il,{width:"100%",height:280,children:Y.jsxs(YM,{data:N,layout:"vertical",children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",horizontal:!1}),Y.jsx(qr,{type:"number",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>qt(k)}),Y.jsx(ir,{type:"category",dataKey:"name",tick:{fill:"#57534e",fontSize:11},axisLine:!1,tickLine:!1,width:80}),Y.jsx(rn,{content:Y.jsx(pl,{})}),Y.jsx(Zn,{dataKey:"cacheRead",stackId:"a",fill:Rn[0],fillOpacity:.7,name:"Cache Read",maxBarSize:20}),Y.jsx(Zn,{dataKey:"input",stackId:"a",fill:Rn[1],fillOpacity:.7,name:"Input",maxBarSize:20}),Y.jsx(Zn,{dataKey:"output",stackId:"a",fill:Rn[2],fillOpacity:.7,name:"Output",maxBarSize:20})]})})}):null:Y.jsx(ii,{title:"Project distribution",subtitle:`Top 8 projects by ${O?"tokens":"cost"}`,children:Y.jsx(il,{width:"100%",height:280,children:Y.jsxs(YM,{data:X.slice(0,8),layout:"vertical",margin:{left:8,right:8,top:0,bottom:0},children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",horizontal:!1}),Y.jsx(qr,{type:"number",tick:{fill:"#78716c",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:k=>O?qt(k):Nr(k)}),Y.jsx(ir,{type:"category",dataKey:"name",tick:{fill:"#57534e",fontSize:11},axisLine:!1,tickLine:!1,width:110}),Y.jsx(rn,{content:Y.jsx(pl,{fmt:O?qt:Nr})}),Y.jsx(Zn,{dataKey:S,radius:[0,6,6,0],maxBarSize:24,children:X.slice(0,8).map((k,I)=>Y.jsx(Mo,{fill:Rn[I%Rn.length],fillOpacity:.85},I))})]})})})]}),Y.jsx(ii,{title:"24-Hour Activity Heatmap",subtitle:"Activity distribution by hour and day of week",className:"mb-4",children:B?Y.jsxs("div",{className:"flex flex-col w-full pt-1 pb-2",children:[Y.jsxs("div",{className:"flex w-full gap-2",children:[Y.jsx("div",{className:"w-8 shrink-0 flex flex-col justify-around text-[10px] font-medium text-stone-400 pt-0.5 pb-0.5",children:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(k=>Y.jsx("div",{className:"h-[22px] flex items-center",children:k},k))}),Y.jsx("div",{className:"flex-1 flex flex-col gap-1",children:B.grid.map((k,I)=>Y.jsx("div",{className:"flex gap-1 h-[22px]",children:k.map((D,H)=>{const Q=B.maxVal>0?.15+D/B.maxVal*.85:0;return Y.jsx("div",{className:"flex-1 rounded-[3px] relative group transition-all hover:ring-2 hover:ring-emerald-400 hover:ring-offset-1 hover:z-10",style:{backgroundColor:D>0?`rgba(16, 185, 129, ${Q})`:"#ebedf0"},children:D>0&&Y.jsxs("div",{className:"absolute opacity-0 group-hover:opacity-100 z-20 bg-stone-900 text-white text-[10px] px-2 py-1 rounded bottom-full mb-1.5 left-1/2 -translate-x-1/2 pointer-events-none whitespace-nowrap shadow-lg font-mono",children:[H,":00 - ",O?qt(D)+" tokens":Nr(D)]})},H)})},I))})]}),Y.jsx("div",{className:"flex ml-10 mt-1.5 text-[10px] font-medium text-stone-400",children:[...Array(24)].map((k,I)=>Y.jsx("div",{className:"flex-1 text-center truncate",children:I%2===0?I:""},I))})]}):Y.jsx("div",{className:"h-48 flex items-center justify-center text-stone-400 text-sm",children:"No session data available"})}),Y.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-5 gap-4 mb-4",children:[Y.jsx(ii,{title:"Model trend",subtitle:"Showing top 6 models to maintain readability",className:"lg:col-span-3",children:Y.jsx(il,{width:"100%",height:260,children:Y.jsxs(sX,{data:q,children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),Y.jsx(qr,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),Y.jsx(ir,{tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>O?qt(k):Nr(k)}),Y.jsx(rn,{content:Y.jsx(pl,{fmt:O?qt:Nr})}),Y.jsx(Lr,{wrapperStyle:{fontSize:11,paddingTop:12}}),N.slice(0,6).map((k,I)=>Y.jsx(Si,{type:"monotone",dataKey:k.name,stroke:Rn[I%Rn.length],strokeWidth:1.5,dot:!1},k.name))]})})}),Y.jsx(ii,{title:"Model distribution",subtitle:"Ranked by total volume",className:"lg:col-span-2",children:Y.jsx(il,{width:"100%",height:260,children:Y.jsxs(fX,{margin:{left:0,right:0,top:0,bottom:0},children:[Y.jsx(Fr,{data:N.slice(0,6),dataKey:S,nameKey:"name",cx:"50%",cy:"50%",innerRadius:60,outerRadius:90,paddingAngle:2,children:N.slice(0,6).map((k,I)=>Y.jsx(Mo,{fill:Rn[I%Rn.length],fillOpacity:.85,stroke:"transparent"},I))}),Y.jsx(rn,{content:Y.jsx(pl,{fmt:O?qt:Nr})}),Y.jsx(Lr,{layout:"vertical",verticalAlign:"middle",align:"right",wrapperStyle:{fontSize:11}})]})})})]}),Y.jsx(ii,{title:"Daily detail",subtitle:"Recent 30 days of usage breakdown",children:Y.jsx("div",{className:"overflow-x-auto",children:Y.jsxs("table",{className:"w-full text-[11px] whitespace-nowrap",children:[Y.jsx("thead",{children:Y.jsxs("tr",{className:"border-b border-stone-200",children:[Y.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Date"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Input"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Output"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cache read"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-600 font-semibold text-[10px]",children:"Total tokens"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cost"}),Y.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Models"})]})}),Y.jsx("tbody",{children:[...w].reverse().slice(0,30).map(k=>Y.jsxs("tr",{className:"border-b border-stone-100 hover:bg-stone-50/60 transition-colors",children:[Y.jsx("td",{className:"py-2.5 px-4 text-stone-800 font-semibold",children:Fs(k.date)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:qt(k.inputTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:qt(k.outputTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-indigo-500/70",children:qt(k.cacheReadTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-semibold text-indigo-600",children:qt(k.totalTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-medium text-stone-600 bg-stone-50/40",children:Nr(k.totalCost)}),Y.jsx("td",{className:"py-2.5 px-4 text-stone-500 font-medium truncate max-w-[200px]",children:k.modelsUsed.map(lb).join(", ")})]},k.date))})]})})})]})}function xX(){return Y.jsx("div",{className:"min-h-dvh bg-[radial-gradient(ellipse_at_top,#eef2ff_0%,#faf9f7_35%,#faf9f7_100%)] text-stone-900",children:Y.jsx(bX,{})})}J3.createRoot(document.getElementById("root")).render(Y.jsx(re.StrictMode,{children:Y.jsx(xX,{})}));
|
|
121
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bN(e,t){if(e){if(typeof e=="string")return C0(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 C0(e,t)}}function ZY(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function WY(e){if(Array.isArray(e))return C0(e)}function C0(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 IM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function te(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?IM(Object(n),!0).forEach(function(r){Oe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):IM(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Oe(e,t,n){return t=xN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xN(e){var t=QY(e,"string");return Qo(t)=="symbol"?t:t+""}function QY(e,t){if(Qo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Qo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var JY={xAxis:["bottom","top"],yAxis:["left","right"]},eX={width:"100%",height:"100%"},SN={x:0,y:0};function Xs(e){return e}var tX=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},nX=function(t,n,r,o){var l=n.find(function(y){return y&&y.index===r});if(l){if(t==="horizontal")return{x:l.coordinate,y:o.y};if(t==="vertical")return{x:o.x,y:l.coordinate};if(t==="centric"){var c=l.coordinate,f=o.radius;return te(te(te({},o),tt(o.cx,o.cy,f,c)),{},{angle:c,radius:f})}var d=l.coordinate,h=o.angle;return te(te(te({},o),tt(o.cx,o.cy,d,h)),{},{angle:h,radius:d})}return SN},qd=function(t,n){var r=n.graphicalItems,o=n.dataStartIndex,l=n.dataEndIndex,c=(r??[]).reduce(function(f,d){var h=d.props.data;return h&&h.length?[].concat(Jo(f),Jo(h)):f},[]);return c.length>0?c:t&&t.length&&ce(o)&&ce(l)?t.slice(o,l+1):[]};function ON(e){return e==="number"?[0,"auto"]:void 0}var D0=function(t,n,r,o){var l=t.graphicalItems,c=t.tooltipAxis,f=qd(n,t);return r<0||!l||!l.length||r>=f.length?null:l.reduce(function(d,h){var y,v=(y=h.props.data)!==null&&y!==void 0?y:n;v&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(v=v.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(c.dataKey&&!c.allowDuplicatedCategory){var x=v===void 0?f:v;g=Ws(x,c.dataKey,o)}else g=v&&v[r]||f[r];return g?[].concat(Jo(d),[iD(h,g)]):d},[])},HM=function(t,n,r,o){var l=o||{x:t.chartX,y:t.chartY},c=tX(l,r),f=t.orderedTooltipTicks,d=t.tooltipAxis,h=t.tooltipTicks,y=F6(c,f,h,d);if(y>=0&&h){var v=h[y]&&h[y].value,g=D0(t,n,y,v),x=nX(r,f,y,l);return{activeTooltipIndex:y,activeLabel:v,activePayload:g,activeCoordinate:x}}return null},rX=function(t,n){var r=n.axes,o=n.graphicalItems,l=n.axisType,c=n.axisIdKey,f=n.stackGroups,d=n.dataStartIndex,h=n.dataEndIndex,y=t.layout,v=t.children,g=t.stackOffset,x=JC(y,l);return r.reduce(function(O,S){var b,w=S.type.defaultProps!==void 0?te(te({},S.type.defaultProps),S.props):S.props,T=w.type,j=w.dataKey,M=w.allowDataOverflow,A=w.allowDuplicatedCategory,E=w.scale,P=w.ticks,N=w.includeHidden,q=w[c];if(O[q])return O;var X=qd(t.data,{graphicalItems:o.filter(function(G){var ne,fe=c in G.props?G.props[c]:(ne=G.type.defaultProps)===null||ne===void 0?void 0:ne[c];return fe===q}),dataStartIndex:d,dataEndIndex:h}),U=X.length,B,V,k;MY(w.domain,M,T)&&(B=Hb(w.domain,null,M),x&&(T==="number"||E!=="auto")&&(k=Sl(X,j,"category")));var I=ON(T);if(!B||B.length===0){var D,H=(D=w.domain)!==null&&D!==void 0?D:I;if(j){if(B=Sl(X,j,T),T==="category"&&x){var Q=I$(B);A&&Q?(V=B,B=qf(0,U)):A||(B=Uj(H,B,S).reduce(function(G,ne){return G.indexOf(ne)>=0?G:[].concat(Jo(G),[ne])},[]))}else if(T==="category")A?B=B.filter(function(G){return G!==""&&!ge(G)}):B=Uj(H,B,S).reduce(function(G,ne){return G.indexOf(ne)>=0||ne===""||ge(ne)?G:[].concat(Jo(G),[ne])},[]);else if(T==="number"){var oe=e8(X,o.filter(function(G){var ne,fe,pe=c in G.props?G.props[c]:(ne=G.type.defaultProps)===null||ne===void 0?void 0:ne[c],be="hide"in G.props?G.props.hide:(fe=G.type.defaultProps)===null||fe===void 0?void 0:fe.hide;return pe===q&&(N||!be)}),j,l,y);oe&&(B=oe)}x&&(T==="number"||E!=="auto")&&(k=Sl(X,j,"category"))}else x?B=qf(0,U):f&&f[q]&&f[q].hasStack&&T==="number"?B=g==="expand"?[0,1]:aD(f[q].stackGroups,d,h):B=QC(X,o.filter(function(G){var ne=c in G.props?G.props[c]:G.type.defaultProps[c],fe="hide"in G.props?G.props.hide:G.type.defaultProps.hide;return ne===q&&(N||!fe)}),T,y,!0);if(T==="number")B=M0(v,B,q,l,P),H&&(B=Hb(H,B,M));else if(T==="category"&&H){var le=H,$=B.every(function(G){return le.indexOf(G)>=0});$&&(B=le)}}return te(te({},O),{},Oe({},q,te(te({},w),{},{axisType:l,domain:B,categoricalDomain:k,duplicateDomain:V,originalDomain:(b=w.domain)!==null&&b!==void 0?b:I,isCategorical:x,layout:y})))},{})},aX=function(t,n){var r=n.graphicalItems,o=n.Axis,l=n.axisType,c=n.axisIdKey,f=n.stackGroups,d=n.dataStartIndex,h=n.dataEndIndex,y=t.layout,v=t.children,g=qd(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:h}),x=g.length,O=JC(y,l),S=-1;return r.reduce(function(b,w){var T=w.type.defaultProps!==void 0?te(te({},w.type.defaultProps),w.props):w.props,j=T[c],M=ON("number");if(!b[j]){S++;var A;return O?A=qf(0,x):f&&f[j]&&f[j].hasStack?(A=aD(f[j].stackGroups,d,h),A=M0(v,A,j,l)):(A=Hb(M,QC(g,r.filter(function(E){var P,N,q=c in E.props?E.props[c]:(P=E.type.defaultProps)===null||P===void 0?void 0:P[c],X="hide"in E.props?E.props.hide:(N=E.type.defaultProps)===null||N===void 0?void 0:N.hide;return q===j&&!X}),"number",y),o.defaultProps.allowDataOverflow),A=M0(v,A,j,l)),te(te({},b),{},Oe({},j,te(te({axisType:l},o.defaultProps),{},{hide:!0,orientation:xn(JY,"".concat(l,".").concat(S%2),null),domain:A,originalDomain:M,isCategorical:O,layout:y})))}return b},{})},iX=function(t,n){var r=n.axisType,o=r===void 0?"xAxis":r,l=n.AxisComp,c=n.graphicalItems,f=n.stackGroups,d=n.dataStartIndex,h=n.dataEndIndex,y=t.children,v="".concat(o,"Id"),g=Ft(y,l),x={};return g&&g.length?x=rX(t,{axes:g,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h}):c&&c.length&&(x=aX(t,{Axis:l,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h})),x},oX=function(t){var n=Aa(t),r=zr(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:J0(r,function(o){return o.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Af(n,r)}},GM=function(t){var n=t.children,r=t.defaultShowTooltip,o=gn(n,Lo),l=0,c=0;return t.data&&t.data.length!==0&&(c=t.data.length-1),o&&o.props&&(o.props.startIndex>=0&&(l=o.props.startIndex),o.props.endIndex>=0&&(c=o.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:l,dataEndIndex:c,activeTooltipIndex:-1,isTooltipActive:!!r}},uX=function(t){return!t||!t.length?!1:t.some(function(n){var r=Br(n&&n.type);return r&&r.indexOf("Bar")>=0})},KM=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"}},lX=function(t,n){var r=t.props,o=t.graphicalItems,l=t.xAxisMap,c=l===void 0?{}:l,f=t.yAxisMap,d=f===void 0?{}:f,h=r.width,y=r.height,v=r.children,g=r.margin||{},x=gn(v,Lo),O=gn(v,Lr),S=Object.keys(d).reduce(function(A,E){var P=d[E],N=P.orientation;return!P.mirror&&!P.hide?te(te({},A),{},Oe({},N,A[N]+P.width)):A},{left:g.left||0,right:g.right||0}),b=Object.keys(c).reduce(function(A,E){var P=c[E],N=P.orientation;return!P.mirror&&!P.hide?te(te({},A),{},Oe({},N,xn(A,"".concat(N))+P.height)):A},{top:g.top||0,bottom:g.bottom||0}),w=te(te({},b),S),T=w.bottom;x&&(w.bottom+=x.props.height||Lo.defaultProps.height),O&&n&&(w=Q6(w,o,r,n));var j=h-w.left-w.right,M=y-w.top-w.bottom;return te(te({brushBottom:T},w),{},{width:Math.max(j,0),height:Math.max(M,0)})},cX=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},Bd=function(t){var n=t.chartName,r=t.GraphicalChild,o=t.defaultTooltipEventType,l=o===void 0?"axis":o,c=t.validateTooltipEventTypes,f=c===void 0?["axis"]:c,d=t.axisComponents,h=t.legendContent,y=t.formatAxisMap,v=t.defaultProps,g=function(w,T){var j=T.graphicalItems,M=T.stackGroups,A=T.offset,E=T.updateId,P=T.dataStartIndex,N=T.dataEndIndex,q=w.barSize,X=w.layout,U=w.barGap,B=w.barCategoryGap,V=w.maxBarSize,k=KM(X),I=k.numericAxisName,D=k.cateAxisName,H=uX(j),Q=[];return j.forEach(function(oe,le){var $=qd(w.data,{graphicalItems:[oe],dataStartIndex:P,dataEndIndex:N}),G=oe.type.defaultProps!==void 0?te(te({},oe.type.defaultProps),oe.props):oe.props,ne=G.dataKey,fe=G.maxBarSize,pe=G["".concat(I,"Id")],be=G["".concat(D,"Id")],Ce={},Ue=d.reduce(function(In,hr){var cu=T["".concat(hr.axisType,"Map")],Ut=G["".concat(hr.axisType,"Id")];cu&&cu[Ut]||hr.axisType==="zAxis"||bi();var yc=cu[Ut];return te(te({},In),{},Oe(Oe({},hr.axisType,yc),"".concat(hr.axisType,"Ticks"),zr(yc)))},Ce),se=Ue[D],_e=Ue["".concat(D,"Ticks")],Ae=M&&M[pe]&&M[pe].hasStack&&c8(oe,M[pe].stackGroups),ue=Br(oe.type).indexOf("Bar")>=0,nt=Af(se,_e),Me=[],ct=H&&Z6({barSize:q,stackGroups:M,totalSize:cX(Ue,D)});if(ue){var st,Lt,Un=ge(fe)?V:fe,er=(st=(Lt=Af(se,_e,!0))!==null&&Lt!==void 0?Lt:Un)!==null&&st!==void 0?st:0;Me=W6({barGap:U,barCategoryGap:B,bandSize:er!==nt?er:nt,sizeList:ct[be],maxBarSize:Un}),er!==nt&&(Me=Me.map(function(In){return te(te({},In),{},{position:te(te({},In.position),{},{offset:In.position.offset-er/2})})}))}var Zr=oe&&oe.type&&oe.type.getComposedData;Zr&&Q.push({props:te(te({},Zr(te(te({},Ue),{},{displayedData:$,props:w,dataKey:ne,item:oe,bandSize:nt,barPosition:Me,offset:A,stackedData:Ae,layout:X,dataStartIndex:P,dataEndIndex:N}))),{},Oe(Oe(Oe({key:oe.key||"item-".concat(le)},I,Ue[I]),D,Ue[D]),"animationId",E)),childIndex:tk(oe,w.children),item:oe})}),Q},x=function(w,T){var j=w.props,M=w.dataStartIndex,A=w.dataEndIndex,E=w.updateId;if(!nw({props:j}))return null;var P=j.children,N=j.layout,q=j.stackOffset,X=j.data,U=j.reverseStackOrder,B=KM(N),V=B.numericAxisName,k=B.cateAxisName,I=Ft(P,r),D=u8(X,I,"".concat(V,"Id"),"".concat(k,"Id"),q,U),H=d.reduce(function(G,ne){var fe="".concat(ne.axisType,"Map");return te(te({},G),{},Oe({},fe,iX(j,te(te({},ne),{},{graphicalItems:I,stackGroups:ne.axisType===V&&D,dataStartIndex:M,dataEndIndex:A}))))},{}),Q=lX(te(te({},H),{},{props:j,graphicalItems:I}),T==null?void 0:T.legendBBox);Object.keys(H).forEach(function(G){H[G]=y(j,H[G],Q,G.replace("Map",""),n)});var oe=H["".concat(k,"Map")],le=oX(oe),$=g(j,te(te({},H),{},{dataStartIndex:M,dataEndIndex:A,updateId:E,graphicalItems:I,stackGroups:D,offset:Q}));return te(te({formattedGraphicalItems:$,graphicalItems:I,offset:Q,stackGroups:D},le),H)},O=(function(b){function w(T){var j,M,A;return IY(this,w),A=KY(this,w,[T]),Oe(A,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Oe(A,"accessibilityManager",new jY),Oe(A,"handleLegendBBoxUpdate",function(E){if(E){var P=A.state,N=P.dataStartIndex,q=P.dataEndIndex,X=P.updateId;A.setState(te({legendBBox:E},x({props:A.props,dataStartIndex:N,dataEndIndex:q,updateId:X},te(te({},A.state),{},{legendBBox:E}))))}}),Oe(A,"handleReceiveSyncEvent",function(E,P,N){if(A.props.syncId===E){if(N===A.eventEmitterSymbol&&typeof A.props.syncMethod!="function")return;A.applySyncEvent(P)}}),Oe(A,"handleBrushChange",function(E){var P=E.startIndex,N=E.endIndex;if(P!==A.state.dataStartIndex||N!==A.state.dataEndIndex){var q=A.state.updateId;A.setState(function(){return te({dataStartIndex:P,dataEndIndex:N},x({props:A.props,dataStartIndex:P,dataEndIndex:N,updateId:q},A.state))}),A.triggerSyncEvent({dataStartIndex:P,dataEndIndex:N})}}),Oe(A,"handleMouseEnter",function(E){var P=A.getMouseInfo(E);if(P){var N=te(te({},P),{},{isTooltipActive:!0});A.setState(N),A.triggerSyncEvent(N);var q=A.props.onMouseEnter;Se(q)&&q(N,E)}}),Oe(A,"triggeredAfterMouseMove",function(E){var P=A.getMouseInfo(E),N=P?te(te({},P),{},{isTooltipActive:!0}):{isTooltipActive:!1};A.setState(N),A.triggerSyncEvent(N);var q=A.props.onMouseMove;Se(q)&&q(N,E)}),Oe(A,"handleItemMouseEnter",function(E){A.setState(function(){return{isTooltipActive:!0,activeItem:E,activePayload:E.tooltipPayload,activeCoordinate:E.tooltipPosition||{x:E.cx,y:E.cy}}})}),Oe(A,"handleItemMouseLeave",function(){A.setState(function(){return{isTooltipActive:!1}})}),Oe(A,"handleMouseMove",function(E){E.persist(),A.throttleTriggeredAfterMouseMove(E)}),Oe(A,"handleMouseLeave",function(E){A.throttleTriggeredAfterMouseMove.cancel();var P={isTooltipActive:!1};A.setState(P),A.triggerSyncEvent(P);var N=A.props.onMouseLeave;Se(N)&&N(P,E)}),Oe(A,"handleOuterEvent",function(E){var P=ek(E),N=xn(A.props,"".concat(P));if(P&&Se(N)){var q,X;/.*touch.*/i.test(P)?X=A.getMouseInfo(E.changedTouches[0]):X=A.getMouseInfo(E),N((q=X)!==null&&q!==void 0?q:{},E)}}),Oe(A,"handleClick",function(E){var P=A.getMouseInfo(E);if(P){var N=te(te({},P),{},{isTooltipActive:!0});A.setState(N),A.triggerSyncEvent(N);var q=A.props.onClick;Se(q)&&q(N,E)}}),Oe(A,"handleMouseDown",function(E){var P=A.props.onMouseDown;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"handleMouseUp",function(E){var P=A.props.onMouseUp;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"handleTouchMove",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.throttleTriggeredAfterMouseMove(E.changedTouches[0])}),Oe(A,"handleTouchStart",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseDown(E.changedTouches[0])}),Oe(A,"handleTouchEnd",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseUp(E.changedTouches[0])}),Oe(A,"handleDoubleClick",function(E){var P=A.props.onDoubleClick;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"handleContextMenu",function(E){var P=A.props.onContextMenu;if(Se(P)){var N=A.getMouseInfo(E);P(N,E)}}),Oe(A,"triggerSyncEvent",function(E){A.props.syncId!==void 0&&rb.emit(ab,A.props.syncId,E,A.eventEmitterSymbol)}),Oe(A,"applySyncEvent",function(E){var P=A.props,N=P.layout,q=P.syncMethod,X=A.state.updateId,U=E.dataStartIndex,B=E.dataEndIndex;if(E.dataStartIndex!==void 0||E.dataEndIndex!==void 0)A.setState(te({dataStartIndex:U,dataEndIndex:B},x({props:A.props,dataStartIndex:U,dataEndIndex:B,updateId:X},A.state)));else if(E.activeTooltipIndex!==void 0){var V=E.chartX,k=E.chartY,I=E.activeTooltipIndex,D=A.state,H=D.offset,Q=D.tooltipTicks;if(!H)return;if(typeof q=="function")I=q(Q,E);else if(q==="value"){I=-1;for(var oe=0;oe<Q.length;oe++)if(Q[oe].value===E.activeLabel){I=oe;break}}var le=te(te({},H),{},{x:H.left,y:H.top}),$=Math.min(V,le.x+le.width),G=Math.min(k,le.y+le.height),ne=Q[I]&&Q[I].value,fe=D0(A.state,A.props.data,I),pe=Q[I]?{x:N==="horizontal"?Q[I].coordinate:$,y:N==="horizontal"?G:Q[I].coordinate}:SN;A.setState(te(te({},E),{},{activeLabel:ne,activeCoordinate:pe,activePayload:fe,activeTooltipIndex:I}))}else A.setState(E)}),Oe(A,"renderCursor",function(E){var P,N=A.state,q=N.isTooltipActive,X=N.activeCoordinate,U=N.activePayload,B=N.offset,V=N.activeTooltipIndex,k=N.tooltipAxisBandSize,I=A.getTooltipEventType(),D=(P=E.props.active)!==null&&P!==void 0?P:q,H=A.props.layout,Q=E.key||"_recharts-cursor";return R.createElement($Y,{key:Q,activeCoordinate:X,activePayload:U,activeTooltipIndex:V,chartName:n,element:E,isActive:D,layout:H,offset:B,tooltipAxisBandSize:k,tooltipEventType:I})}),Oe(A,"renderPolarAxis",function(E,P,N){var q=xn(E,"type.axisType"),X=xn(A.state,"".concat(q,"Map")),U=E.type.defaultProps,B=U!==void 0?te(te({},U),E.props):E.props,V=X&&X[B["".concat(q,"Id")]];return re.cloneElement(E,te(te({},V),{},{className:Te(q,V.className),key:E.key||"".concat(P,"-").concat(N),ticks:zr(V,!0)}))}),Oe(A,"renderPolarGrid",function(E){var P=E.props,N=P.radialLines,q=P.polarAngles,X=P.polarRadius,U=A.state,B=U.radiusAxisMap,V=U.angleAxisMap,k=Aa(B),I=Aa(V),D=I.cx,H=I.cy,Q=I.innerRadius,oe=I.outerRadius;return re.cloneElement(E,{polarAngles:Array.isArray(q)?q:zr(I,!0).map(function(le){return le.coordinate}),polarRadius:Array.isArray(X)?X:zr(k,!0).map(function(le){return le.coordinate}),cx:D,cy:H,innerRadius:Q,outerRadius:oe,key:E.key||"polar-grid",radialLines:N})}),Oe(A,"renderLegend",function(){var E=A.state.formattedGraphicalItems,P=A.props,N=P.children,q=P.width,X=P.height,U=A.props.margin||{},B=q-(U.left||0)-(U.right||0),V=ZC({children:N,formattedGraphicalItems:E,legendWidth:B,legendContent:h});if(!V)return null;var k=V.item,I=UM(V,kY);return re.cloneElement(k,te(te({},I),{},{chartWidth:q,chartHeight:X,margin:U,onBBoxUpdate:A.handleLegendBBoxUpdate}))}),Oe(A,"renderTooltip",function(){var E,P=A.props,N=P.children,q=P.accessibilityLayer,X=gn(N,rn);if(!X)return null;var U=A.state,B=U.isTooltipActive,V=U.activeCoordinate,k=U.activePayload,I=U.activeLabel,D=U.offset,H=(E=X.props.active)!==null&&E!==void 0?E:B;return re.cloneElement(X,{viewBox:te(te({},D),{},{x:D.left,y:D.top}),active:H,label:I,payload:H?k:[],coordinate:V,accessibilityLayer:q})}),Oe(A,"renderBrush",function(E){var P=A.props,N=P.margin,q=P.data,X=A.state,U=X.offset,B=X.dataStartIndex,V=X.dataEndIndex,k=X.updateId;return re.cloneElement(E,{key:E.key||"_recharts-brush",onChange:Is(A.handleBrushChange,E.props.onChange),data:q,x:ce(E.props.x)?E.props.x:U.left,y:ce(E.props.y)?E.props.y:U.top+U.height+U.brushBottom-(N.bottom||0),width:ce(E.props.width)?E.props.width:U.width,startIndex:B,endIndex:V,updateId:"brush-".concat(k)})}),Oe(A,"renderReferenceElement",function(E,P,N){if(!E)return null;var q=A,X=q.clipPathId,U=A.state,B=U.xAxisMap,V=U.yAxisMap,k=U.offset,I=E.type.defaultProps||{},D=E.props,H=D.xAxisId,Q=H===void 0?I.xAxisId:H,oe=D.yAxisId,le=oe===void 0?I.yAxisId:oe;return re.cloneElement(E,{key:E.key||"".concat(P,"-").concat(N),xAxis:B[Q],yAxis:V[le],viewBox:{x:k.left,y:k.top,width:k.width,height:k.height},clipPathId:X})}),Oe(A,"renderActivePoints",function(E){var P=E.item,N=E.activePoint,q=E.basePoint,X=E.childIndex,U=E.isRange,B=[],V=P.props.key,k=P.item.type.defaultProps!==void 0?te(te({},P.item.type.defaultProps),P.item.props):P.item.props,I=k.activeDot,D=k.dataKey,H=te(te({index:X,dataKey:D,cx:N.x,cy:N.y,r:4,fill:wx(P.item),strokeWidth:2,stroke:"#fff",payload:N.payload,value:N.value},ye(I,!1)),Qs(I));return B.push(w.renderActiveDot(I,H,"".concat(V,"-activePoint-").concat(X))),q?B.push(w.renderActiveDot(I,te(te({},H),{},{cx:q.x,cy:q.y}),"".concat(V,"-basePoint-").concat(X))):U&&B.push(null),B}),Oe(A,"renderGraphicChild",function(E,P,N){var q=A.filterFormatItem(E,P,N);if(!q)return null;var X=A.getTooltipEventType(),U=A.state,B=U.isTooltipActive,V=U.tooltipAxis,k=U.activeTooltipIndex,I=U.activeLabel,D=A.props.children,H=gn(D,rn),Q=q.props,oe=Q.points,le=Q.isRange,$=Q.baseLine,G=q.item.type.defaultProps!==void 0?te(te({},q.item.type.defaultProps),q.item.props):q.item.props,ne=G.activeDot,fe=G.hide,pe=G.activeBar,be=G.activeShape,Ce=!!(!fe&&B&&H&&(ne||pe||be)),Ue={};X!=="axis"&&H&&H.props.trigger==="click"?Ue={onClick:Is(A.handleItemMouseEnter,E.props.onClick)}:X!=="axis"&&(Ue={onMouseLeave:Is(A.handleItemMouseLeave,E.props.onMouseLeave),onMouseEnter:Is(A.handleItemMouseEnter,E.props.onMouseEnter)});var se=re.cloneElement(E,te(te({},q.props),Ue));function _e(hr){return typeof V.dataKey=="function"?V.dataKey(hr.payload):null}if(Ce)if(k>=0){var Ae,ue;if(V.dataKey&&!V.allowDuplicatedCategory){var nt=typeof V.dataKey=="function"?_e:"payload.".concat(V.dataKey.toString());Ae=Ws(oe,nt,I),ue=le&&$&&Ws($,nt,I)}else Ae=oe==null?void 0:oe[k],ue=le&&$&&$[k];if(be||pe){var Me=E.props.activeIndex!==void 0?E.props.activeIndex:k;return[re.cloneElement(E,te(te(te({},q.props),Ue),{},{activeIndex:Me})),null,null]}if(!ge(Ae))return[se].concat(Jo(A.renderActivePoints({item:q,activePoint:Ae,basePoint:ue,childIndex:k,isRange:le})))}else{var ct,st=(ct=A.getItemByXY(A.state.activeCoordinate))!==null&&ct!==void 0?ct:{graphicalItem:se},Lt=st.graphicalItem,Un=Lt.item,er=Un===void 0?E:Un,Zr=Lt.childIndex,In=te(te(te({},q.props),Ue),{},{activeIndex:Zr});return[re.cloneElement(er,In),null,null]}return le?[se,null,null]:[se,null]}),Oe(A,"renderCustomized",function(E,P,N){return re.cloneElement(E,te(te({key:"recharts-customized-".concat(N)},A.props),A.state))}),Oe(A,"renderMap",{CartesianGrid:{handler:Xs,once:!0},ReferenceArea:{handler:A.renderReferenceElement},ReferenceLine:{handler:Xs},ReferenceDot:{handler:A.renderReferenceElement},XAxis:{handler:Xs},YAxis:{handler:Xs},Brush:{handler:A.renderBrush,once:!0},Bar:{handler:A.renderGraphicChild},Line:{handler:A.renderGraphicChild},Area:{handler:A.renderGraphicChild},Radar:{handler:A.renderGraphicChild},RadialBar:{handler:A.renderGraphicChild},Scatter:{handler:A.renderGraphicChild},Pie:{handler:A.renderGraphicChild},Funnel:{handler:A.renderGraphicChild},Tooltip:{handler:A.renderCursor,once:!0},PolarGrid:{handler:A.renderPolarGrid,once:!0},PolarAngleAxis:{handler:A.renderPolarAxis},PolarRadiusAxis:{handler:A.renderPolarAxis},Customized:{handler:A.renderCustomized}}),A.clipPathId="".concat((j=T.id)!==null&&j!==void 0?j:Na("recharts"),"-clip"),A.throttleTriggeredAfterMouseMove=ZP(A.triggeredAfterMouseMove,(M=T.throttleDelay)!==null&&M!==void 0?M:1e3/60),A.state={},A}return VY(w,b),GY(w,[{key:"componentDidMount",value:function(){var j,M;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(j=this.props.margin.left)!==null&&j!==void 0?j:0,top:(M=this.props.margin.top)!==null&&M!==void 0?M:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var j=this.props,M=j.children,A=j.data,E=j.height,P=j.layout,N=gn(M,rn);if(N){var q=N.props.defaultIndex;if(!(typeof q!="number"||q<0||q>this.state.tooltipTicks.length-1)){var X=this.state.tooltipTicks[q]&&this.state.tooltipTicks[q].value,U=D0(this.state,A,q,X),B=this.state.tooltipTicks[q].coordinate,V=(this.state.offset.top+E)/2,k=P==="horizontal",I=k?{x:B,y:V}:{y:B,x:V},D=this.state.formattedGraphicalItems.find(function(Q){var oe=Q.item;return oe.type.name==="Scatter"});D&&(I=te(te({},I),D.props.points[q].tooltipPosition),U=D.props.points[q].tooltipPayload);var H={activeTooltipIndex:q,isTooltipActive:!0,activeLabel:X,activePayload:U,activeCoordinate:I};this.setState(H),this.renderCursor(N),this.accessibilityManager.setIndex(q)}}}},{key:"getSnapshotBeforeUpdate",value:function(j,M){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==M.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==j.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==j.margin){var A,E;this.accessibilityManager.setDetails({offset:{left:(A=this.props.margin.left)!==null&&A!==void 0?A:0,top:(E=this.props.margin.top)!==null&&E!==void 0?E:0}})}return null}},{key:"componentDidUpdate",value:function(j){fb([gn(j.children,rn)],[gn(this.props.children,rn)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var j=gn(this.props.children,rn);if(j&&typeof j.props.shared=="boolean"){var M=j.props.shared?"axis":"item";return f.indexOf(M)>=0?M:l}return l}},{key:"getMouseInfo",value:function(j){if(!this.container)return null;var M=this.container,A=M.getBoundingClientRect(),E=UB(A),P={chartX:Math.round(j.pageX-E.left),chartY:Math.round(j.pageY-E.top)},N=A.width/M.offsetWidth||1,q=this.inRange(P.chartX,P.chartY,N);if(!q)return null;var X=this.state,U=X.xAxisMap,B=X.yAxisMap,V=this.getTooltipEventType(),k=HM(this.state,this.props.data,this.props.layout,q);if(V!=="axis"&&U&&B){var I=Aa(U).scale,D=Aa(B).scale,H=I&&I.invert?I.invert(P.chartX):null,Q=D&&D.invert?D.invert(P.chartY):null;return te(te({},P),{},{xValue:H,yValue:Q},k)}return k?te(te({},P),k):null}},{key:"inRange",value:function(j,M){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,E=this.props.layout,P=j/A,N=M/A;if(E==="horizontal"||E==="vertical"){var q=this.state.offset,X=P>=q.left&&P<=q.left+q.width&&N>=q.top&&N<=q.top+q.height;return X?{x:P,y:N}:null}var U=this.state,B=U.angleAxisMap,V=U.radiusAxisMap;if(B&&V){var k=Aa(B);return Gj({x:P,y:N},k)}return null}},{key:"parseEventsOfWrapper",value:function(){var j=this.props.children,M=this.getTooltipEventType(),A=gn(j,rn),E={};A&&M==="axis"&&(A.props.trigger==="click"?E={onClick:this.handleClick}:E={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 P=Qs(this.props,this.handleOuterEvent);return te(te({},P),E)}},{key:"addListener",value:function(){rb.on(ab,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){rb.removeListener(ab,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(j,M,A){for(var E=this.state.formattedGraphicalItems,P=0,N=E.length;P<N;P++){var q=E[P];if(q.item===j||q.props.key===j.key||M===Br(q.item.type)&&A===q.childIndex)return q}return null}},{key:"renderClipPath",value:function(){var j=this.clipPathId,M=this.state.offset,A=M.left,E=M.top,P=M.height,N=M.width;return R.createElement("defs",null,R.createElement("clipPath",{id:j},R.createElement("rect",{x:A,y:E,height:P,width:N})))}},{key:"getXScales",value:function(){var j=this.state.xAxisMap;return j?Object.entries(j).reduce(function(M,A){var E=LM(A,2),P=E[0],N=E[1];return te(te({},M),{},Oe({},P,N.scale))},{}):null}},{key:"getYScales",value:function(){var j=this.state.yAxisMap;return j?Object.entries(j).reduce(function(M,A){var E=LM(A,2),P=E[0],N=E[1];return te(te({},M),{},Oe({},P,N.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(j){var M;return(M=this.state.xAxisMap)===null||M===void 0||(M=M[j])===null||M===void 0?void 0:M.scale}},{key:"getYScaleByAxisId",value:function(j){var M;return(M=this.state.yAxisMap)===null||M===void 0||(M=M[j])===null||M===void 0?void 0:M.scale}},{key:"getItemByXY",value:function(j){var M=this.state,A=M.formattedGraphicalItems,E=M.activeItem;if(A&&A.length)for(var P=0,N=A.length;P<N;P++){var q=A[P],X=q.props,U=q.item,B=U.type.defaultProps!==void 0?te(te({},U.type.defaultProps),U.props):U.props,V=Br(U.type);if(V==="Bar"){var k=(X.data||[]).find(function(Q){return lH(j,Q)});if(k)return{graphicalItem:q,payload:k}}else if(V==="RadialBar"){var I=(X.data||[]).find(function(Q){return Gj(j,Q)});if(I)return{graphicalItem:q,payload:I}}else if(Md(q,E)||Pd(q,E)||nc(q,E)){var D=C9({graphicalItem:q,activeTooltipItem:E,itemData:B.data}),H=B.activeIndex===void 0?D:B.activeIndex;return{graphicalItem:te(te({},q),{},{childIndex:H}),payload:nc(q,E)?B.data[D]:q.props.data[D]}}}return null}},{key:"render",value:function(){var j=this;if(!nw(this))return null;var M=this.props,A=M.children,E=M.className,P=M.width,N=M.height,q=M.style,X=M.compact,U=M.title,B=M.desc,V=UM(M,zY),k=ye(V,!1);if(X)return R.createElement(mM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},R.createElement(hb,xo({},k,{width:P,height:N,title:U,desc:B}),this.renderClipPath(),aw(A,this.renderMap)));if(this.props.accessibilityLayer){var I,D;k.tabIndex=(I=this.props.tabIndex)!==null&&I!==void 0?I:0,k.role=(D=this.props.role)!==null&&D!==void 0?D:"application",k.onKeyDown=function(Q){j.accessibilityManager.keyboardEvent(Q)},k.onFocus=function(){j.accessibilityManager.focus()}}var H=this.parseEventsOfWrapper();return R.createElement(mM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},R.createElement("div",xo({className:Te("recharts-wrapper",E),style:te({position:"relative",cursor:"default",width:P,height:N},q)},H,{ref:function(oe){j.container=oe}}),R.createElement(hb,xo({},k,{width:P,height:N,title:U,desc:B,style:eX}),this.renderClipPath(),aw(A,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])})(re.Component);Oe(O,"displayName",n),Oe(O,"defaultProps",te({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},v)),Oe(O,"getDerivedStateFromProps",function(b,w){var T=b.dataKey,j=b.data,M=b.children,A=b.width,E=b.height,P=b.layout,N=b.stackOffset,q=b.margin,X=w.dataStartIndex,U=w.dataEndIndex;if(w.updateId===void 0){var B=GM(b);return te(te(te({},B),{},{updateId:0},x(te(te({props:b},B),{},{updateId:0}),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:P,prevStackOffset:N,prevMargin:q,prevChildren:M})}if(T!==w.prevDataKey||j!==w.prevData||A!==w.prevWidth||E!==w.prevHeight||P!==w.prevLayout||N!==w.prevStackOffset||!So(q,w.prevMargin)){var V=GM(b),k={chartX:w.chartX,chartY:w.chartY,isTooltipActive:w.isTooltipActive},I=te(te({},HM(w,j,P)),{},{updateId:w.updateId+1}),D=te(te(te({},V),k),I);return te(te(te({},D),x(te({props:b},D),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:P,prevStackOffset:N,prevMargin:q,prevChildren:M})}if(!fb(M,w.prevChildren)){var H,Q,oe,le,$=gn(M,Lo),G=$&&(H=(Q=$.props)===null||Q===void 0?void 0:Q.startIndex)!==null&&H!==void 0?H:X,ne=$&&(oe=(le=$.props)===null||le===void 0?void 0:le.endIndex)!==null&&oe!==void 0?oe:U,fe=G!==X||ne!==U,pe=!ge(j),be=pe&&!fe?w.updateId:w.updateId+1;return te(te({updateId:be},x(te(te({props:b},w),{},{updateId:be,dataStartIndex:G,dataEndIndex:ne}),w)),{},{prevChildren:M,dataStartIndex:G,dataEndIndex:ne})}return null}),Oe(O,"renderActiveDot",function(b,w,T){var j;return re.isValidElement(b)?j=re.cloneElement(b,w):Se(b)?j=b(w):j=R.createElement(vc,w),R.createElement(je,{className:"recharts-active-dot",key:T},j)});var S=re.forwardRef(function(w,T){return R.createElement(O,xo({},w,{ref:T}))});return S.displayName=O.displayName,S},sX=Bd({chartName:"LineChart",GraphicalChild:Si,axisComponents:[{axisType:"xAxis",AxisComp:qr},{axisType:"yAxis",AxisComp:ir}],formatAxisMap:Ex}),YM=Bd({chartName:"BarChart",GraphicalChild:Zn,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:qr},{axisType:"yAxis",AxisComp:ir}],formatAxisMap:Ex}),fX=Bd({chartName:"PieChart",GraphicalChild:Fr,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:jd},{axisType:"radiusAxis",AxisComp:Td}],formatAxisMap:b8,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}}),dX=Bd({chartName:"ComposedChart",GraphicalChild:[Si,za,Zn,zd],axisComponents:[{axisType:"xAxis",AxisComp:qr},{axisType:"yAxis",AxisComp:ir},{axisType:"zAxis",AxisComp:kd}],formatAxisMap:Ex});const zx="/api";function qx(e,t){const n=[];if(e==="codex"&&n.push("agent=codex"),t){const r=Object.keys(t);for(let o=0;o<r.length;o++){const l=t[r[o]];l&&n.push(encodeURIComponent(r[o])+"="+encodeURIComponent(l))}}return n.length>0?"?"+n.join("&"):""}async function hX(e="claude"){const t=await fetch(`${zx}/daily${qx(e)}`);if(!t.ok)throw new Error(`Failed to fetch daily data: ${t.status} ${t.statusText}`);return t.json()}async function pX(e="claude"){const t=await fetch(`${zx}/projects${qx(e)}`);if(!t.ok)throw new Error(`Failed to fetch projects data: ${t.status} ${t.statusText}`);return t.json()}async function vX(e="claude",t=""){const n=await fetch(`${zx}/blocks${qx(e,t?{project:t}:void 0)}`);if(!n.ok)throw new Error(`Failed to fetch blocks data: ${n.status} ${n.statusText}`);return n.json()}function ob(e){const[t,n]=re.useState(null),[r,o]=re.useState(!0),[l,c]=re.useState(null),f=re.useCallback(async()=>{o(!0),c(null);try{const d=await e();n(d)}catch(d){c(d instanceof Error?d.message:"An error occurred")}finally{o(!1)}},[e]);return re.useEffect(()=>{f()},[f]),{data:t,loading:r,error:l,refetch:f}}function Vs(e,t){const[n,r]=re.useState(()=>{try{const o=window.localStorage.getItem(e);if(o!==null)return JSON.parse(o)}catch(o){console.warn(`Error reading localStorage key "${e}":`,o)}return t});return re.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(n))}catch(o){console.warn(`Error setting localStorage key "${e}":`,o)}},[e,n]),[n,r]}function qt(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(0)+"K":e.toLocaleString("en-US",{maximumFractionDigits:0})}function Nr(e){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}function Fs(e){return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function ub(e){return e.toFixed(1)+"%"}function _N(e,t){if(!e)return"";const n=l=>l.includes("/")?l.split("/").filter(Boolean):l.split("-").filter(Boolean),r=n(e);if(r.length===0)return e;const o=r[r.length-1];return t&&t.length>0&&t.some(c=>{if(c===e)return!1;const f=n(c);return f.length>0&&f[f.length-1]===o})&&r.length>=2?`${r[r.length-2]}/${o}`:o}function yX(e){return e/1e6*3*(1-.1)}const XM={"claude-opus-4-20250514":"Opus 4","claude-sonnet-4-20250514":"Sonnet 4","claude-haiku-3-5-20241022":"Haiku 3.5","claude-opus-3-20250214":"Opus 3","claude-sonnet-3-20250214":"Sonnet 3","claude-sonnet-3-5-20250214":"Sonnet 3.5","claude-haiku-3-20250214":"Haiku 3","claude-opus-4":"Opus 4","claude-sonnet-4":"Sonnet 4","claude-haiku-4":"Haiku 4"};function lb(e){if(XM[e])return XM[e];const t=e.match(/^claude-(opus|sonnet|haiku)-?[\d.]*-?/);if(t){const n=t[1],r=e.match(/(\d+[\d.]*)/);return r?`${n.charAt(0).toUpperCase()+n.slice(1)} ${r[1]}`:n.charAt(0).toUpperCase()+n.slice(1)}return e}const Rn=["#4f46e5","#10b981","#f59e0b","#ec4899","#0ea5e9","#8b5cf6","#ef4444","#14b8a6"],AN=[{key:"7d",label:"7D",days:7},{key:"30d",label:"30D",days:30},{key:"60d",label:"60D",days:60}];function vo({label:e,value:t,sub:n,insight:r,accent:o}){return Y.jsxs("div",{className:"flex flex-col gap-1 p-5 rounded-2xl bg-white shadow-[0_1px_3px_rgba(120,113,108,0.06)] transition-shadow duration-200 hover:shadow-[0_4px_12px_rgba(120,113,108,0.09)]",children:[Y.jsx("span",{className:"text-[12px] font-medium text-stone-400",children:e}),Y.jsx("span",{className:`text-3xl font-extrabold tracking-tighter font-mono mt-1 ${o?"text-indigo-600":"text-stone-900"}`,children:t}),n&&Y.jsx("span",{className:"text-xs font-medium text-stone-400 mt-0.5",children:n}),r&&Y.jsx("div",{className:"mt-2.5 pt-2.5 border-t border-stone-100 text-[12px] font-medium text-stone-500 leading-relaxed",children:r})]})}function ii({title:e,subtitle:t,children:n,className:r=""}){return Y.jsxs("div",{className:`flex flex-col rounded-2xl bg-white p-5 shadow-[0_1px_3px_rgba(120,113,108,0.06)] ${r}`,children:[Y.jsxs("div",{className:"mb-5",children:[Y.jsx("h3",{className:"text-[15px] font-semibold text-stone-900 tracking-tight",children:e}),t&&Y.jsx("p",{className:"text-[13px] font-medium text-stone-400 mt-1",children:t})]}),Y.jsx("div",{className:"flex-1 min-h-0",children:n})]})}function pl({active:e,payload:t,label:n,fmt:r=qt}){return!e||!(t!=null&&t.length)?null:Y.jsxs("div",{className:"bg-white rounded-xl px-3.5 py-3 shadow-[0_8px_30px_rgba(120,113,108,0.12)] text-[11px] border border-stone-200/40",children:[n&&Y.jsx("div",{className:"text-stone-400 mb-1.5 font-medium",children:n}),t.map((o,l)=>Y.jsxs("div",{className:"flex items-center justify-between gap-5",children:[Y.jsxs("span",{className:"flex items-center gap-1.5",children:[Y.jsx("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:o.color}}),o.name]}),Y.jsx("span",{className:"font-mono text-stone-700",children:r(o.value)})]},l))]})}function VM({options:e,value:t,onChange:n}){return Y.jsx("div",{className:"flex items-center gap-0.5 p-0.5 bg-stone-100 rounded-lg",children:e.map(r=>Y.jsx("button",{onClick:()=>n(r.key),className:`px-3 py-1.5 rounded-md text-[11px] font-semibold tracking-wide transition-all duration-200 ${t===r.key?"bg-stone-800 text-white shadow-sm":"text-stone-500 hover:text-stone-800 hover:bg-stone-50"}`,children:r.label},r.key))})}function mX({projects:e,value:t,onChange:n}){return Y.jsxs("select",{value:t,onChange:r=>n(r.target.value),className:"bg-white border border-stone-200 rounded-lg px-3 py-1.5 text-[12px] font-semibold text-stone-800 outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 max-w-[220px]",children:[Y.jsx("option",{value:"",children:"All Projects"}),e.map(r=>Y.jsx("option",{value:r,children:_N(r,e)},r))]})}function td(e,t){const n=AN.find(l=>l.key===t),r=n?n.days:30,o=new Date;return o.setDate(o.getDate()-r),e.filter(l=>{const c=l.date||l.startTime||"";return new Date(c)>=o})}function gX(e,t,n){if(!t){const r={};for(const o of Object.values(e))for(const l of td(o,n))if(!r[l.date])r[l.date]={...l,modelsUsed:[...l.modelsUsed],modelBreakdowns:l.modelBreakdowns.map(c=>({...c}))};else{const c=r[l.date];c.inputTokens+=l.inputTokens,c.outputTokens+=l.outputTokens,c.cacheCreationTokens+=l.cacheCreationTokens,c.cacheReadTokens+=l.cacheReadTokens,c.totalTokens+=l.totalTokens,c.totalCost+=l.totalCost;for(const f of l.modelBreakdowns){const d=c.modelBreakdowns.find(h=>h.modelName===f.modelName);d?(d.inputTokens+=f.inputTokens,d.outputTokens+=f.outputTokens,d.cacheCreationTokens+=f.cacheCreationTokens,d.cacheReadTokens+=f.cacheReadTokens,d.cost+=f.cost):c.modelBreakdowns.push({...f})}}return Object.values(r).sort((o,l)=>o.date.localeCompare(l.date))}return td(e[t]||[],n)}function bX(){const[e,t]=Vs("dashboard_agent","claude"),[n,r]=Vs("dashboard_timeRange","30d"),[o,l]=Vs("dashboard_project",""),c=ob(re.useCallback(()=>hX(e),[e])),f=ob(re.useCallback(()=>pX(e),[e])),d=ob(re.useCallback(()=>vX(e,o),[e,o])),[h,y]=Vs("dashboard_metric","tokens"),v=k=>{t(k),l("")},g=c.loading||f.loading||d.loading,x=c.error||f.error||d.error,O=h==="tokens",S=O?"tokens":"cost",b=re.useMemo(()=>{var k;return Object.keys(((k=f.data)==null?void 0:k.projects)||{}).sort()},[f.data]),w=re.useMemo(()=>f.data?gX(f.data.projects,o,n):[],[f.data,o,n]),T=re.useMemo(()=>w.reduce((k,I)=>({inputTokens:k.inputTokens+I.inputTokens,outputTokens:k.outputTokens+I.outputTokens,cacheCreationTokens:k.cacheCreationTokens+I.cacheCreationTokens,cacheReadTokens:k.cacheReadTokens+I.cacheReadTokens,totalTokens:k.totalTokens+I.totalTokens,totalCost:k.totalCost+I.totalCost}),{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,totalTokens:0,totalCost:0}),[w]),j=re.useMemo(()=>w.filter(k=>k.totalTokens>0).length,[w]),M=re.useMemo(()=>{if(!w.length)return{date:"-",tokens:0};const k=w.reduce((I,D)=>D.totalTokens>I.totalTokens?D:I,w[0]);return{date:k.date,tokens:k.totalTokens}},[w]),A=T.inputTokens>0?T.cacheReadTokens/(T.cacheReadTokens+T.inputTokens)*100:0,E=T.inputTokens>0?T.outputTokens/T.inputTokens*100:0,P=re.useMemo(()=>({tokensSaved:T.cacheReadTokens,costSaved:yX(T.cacheReadTokens),hitRate:A}),[T.cacheReadTokens,A]),N=re.useMemo(()=>{const k={};for(const I of w)for(const D of I.modelBreakdowns){const H=lb(D.modelName);k[H]||(k[H]={tokens:0,cost:0,input:0,output:0,cacheRead:0}),k[H].tokens+=D.inputTokens+D.outputTokens,k[H].cost+=D.cost,k[H].input+=D.inputTokens,k[H].output+=D.outputTokens,k[H].cacheRead+=D.cacheReadTokens}return Object.entries(k).map(([I,D])=>({name:I,...D})).sort((I,D)=>D.tokens-I.tokens)},[w]),q=re.useMemo(()=>w.map(k=>{const I={date:Fs(k.date)};for(const D of k.modelBreakdowns){const H=lb(D.modelName);I[H]=(I[H]||0)+(O?D.inputTokens+D.outputTokens:D.cost)}return I}),[w,O]),X=re.useMemo(()=>f.data?Object.entries(f.data.projects).map(([k,I])=>{const D=td(I,n);return{name:_N(k,b),full:k,tokens:D.reduce((H,Q)=>H+Q.totalTokens,0),cost:D.reduce((H,Q)=>H+Q.totalCost,0)}}).filter(k=>k.tokens>0).sort((k,I)=>I.tokens-k.tokens):[],[f.data,n]),U=re.useMemo(()=>w.map(k=>({date:Fs(k.date),cacheRead:k.cacheReadTokens,input:k.inputTokens,hitRate:k.inputTokens>0?k.cacheReadTokens/(k.cacheReadTokens+k.inputTokens)*100:0})),[w]),B=re.useMemo(()=>{if(!d.data)return null;const k=td(d.data.blocks,n),I=Array(7).fill(0).map(()=>Array(24).fill(0));let D=0;for(const H of k){if(H.isGap)continue;const Q=new Date(H.startTime),oe=Q.getDay(),le=Q.getHours(),$=O?H.totalTokens:H.costUSD;I[oe][le]+=$,I[oe][le]>D&&(D=I[oe][le])}return{grid:I,maxVal:D}},[d.data,n,O]),V=()=>Y.jsxs("div",{className:"flex items-center gap-1 p-1 bg-stone-200/50 rounded-xl w-fit shadow-inner border border-stone-200/50",children:[Y.jsxs("button",{onClick:()=>v("claude"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${e==="claude"?"bg-white text-indigo-600 shadow-[0_1px_3px_rgba(0,0,0,0.1)] ring-1 ring-stone-900/5":"text-stone-500 hover:text-stone-800 hover:bg-stone-200/50"}`,children:[Y.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:Y.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"Claude Code"]}),Y.jsxs("button",{onClick:()=>v("codex"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${e==="codex"?"bg-white text-emerald-600 shadow-[0_1px_3px_rgba(0,0,0,0.1)] ring-1 ring-stone-900/5":"text-stone-500 hover:text-stone-800 hover:bg-stone-200/50"}`,children:[Y.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:Y.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"})}),"Codex"]})]});return g?Y.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[Y.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[Y.jsx("div",{className:"flex flex-col gap-1.5",children:Y.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"})}),V()]}),Y.jsx("div",{className:"skeleton h-8 w-48 rounded-lg mb-2"}),Y.jsx("div",{className:"skeleton h-4 w-72 rounded-lg mb-8"}),Y.jsx("div",{className:"grid grid-cols-3 md:grid-cols-6 gap-3 mb-6",children:[...Array(6)].map((k,I)=>Y.jsx("div",{className:"skeleton h-20 rounded-2xl"},I))}),Y.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[Y.jsx("div",{className:"skeleton h-72 rounded-2xl"}),Y.jsx("div",{className:"skeleton h-72 rounded-2xl"})]})]}):x?Y.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[Y.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[Y.jsx("div",{className:"flex flex-col gap-1.5",children:Y.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"})}),V()]}),Y.jsx("div",{className:"rounded-2xl bg-red-50 border border-red-200/60 p-5",children:Y.jsx("div",{className:"text-red-600 text-sm font-medium",children:x})})]}):!c.data||!f.data?null:Y.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[Y.jsxs("div",{className:"mb-8",children:[Y.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-6",children:[Y.jsxs("div",{className:"flex flex-col gap-1.5",children:[Y.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"}),Y.jsx("p",{className:"text-[14px] font-medium text-stone-500 leading-relaxed",children:"Monitor token consumption, costs, and cache efficiency for your AI coding assistants."})]}),V()]}),Y.jsx("div",{className:"flex flex-col gap-4",children:Y.jsxs("div",{className:"flex flex-wrap items-center gap-6 p-4 bg-white rounded-2xl border border-stone-200/50 shadow-sm w-fit",children:[Y.jsxs("div",{className:"flex flex-col gap-2",children:[Y.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Time range"}),Y.jsx(VM,{options:AN,value:n,onChange:k=>r(k)})]}),b.length>0&&Y.jsxs(Y.Fragment,{children:[Y.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),Y.jsxs("div",{className:"flex flex-col gap-2",children:[Y.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Project"}),Y.jsx(mX,{projects:b,value:o,onChange:l})]})]}),Y.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),Y.jsxs("div",{className:"flex flex-col gap-2",children:[Y.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Metric"}),Y.jsx(VM,{options:[{key:"tokens",label:"Tokens"},{key:"usd",label:"Cost"}],value:h,onChange:k=>y(k)})]})]})})]}),Y.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-6 gap-4 mb-6",children:[Y.jsx(vo,{label:"Total tokens",value:qt(T.totalTokens),accent:!0,insight:"The primary volume indicator for the selected period."}),Y.jsx(vo,{label:"Total cost",value:Nr(T.totalCost),insight:"Estimated spend based on current pricing."}),Y.jsx(vo,{label:"Daily avg",value:qt(j>0?T.totalTokens/j:0),sub:`${j} active days`,insight:"Baseline for typical daily volume."}),Y.jsx(vo,{label:"Peak day",value:qt(M.tokens),sub:M.date!=="-"?Fs(M.date):void 0,insight:"Highest single day usage."}),Y.jsx(vo,{label:"Cache hit",value:ub(A),insight:"Higher hit rate reduces cost."}),Y.jsx(vo,{label:"Output/Input",value:ub(E),insight:"Ratio of generation to context."})]}),Y.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[Y.jsxs(ii,{title:"Cache efficiency & savings",children:[Y.jsxs("div",{className:"flex items-center gap-6 mb-6 px-4 py-3 bg-emerald-50/50 rounded-xl border border-emerald-100/50",children:[Y.jsxs("div",{className:"flex flex-col",children:[Y.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Est. Cost Saved"}),Y.jsx("span",{className:"text-2xl font-black text-emerald-600 tracking-tight",children:Nr(P.costSaved)})]}),Y.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),Y.jsxs("div",{className:"flex flex-col",children:[Y.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Tokens Saved"}),Y.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:qt(P.tokensSaved)})]}),Y.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),Y.jsxs("div",{className:"flex flex-col",children:[Y.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Avg Hit Rate"}),Y.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:ub(P.hitRate)})]})]}),Y.jsx(il,{width:"100%",height:210,children:Y.jsxs(dX,{data:U,children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),Y.jsx(qr,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),Y.jsx(ir,{yAxisId:"left",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>qt(k)}),Y.jsx(ir,{yAxisId:"right",orientation:"right",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>`${k.toFixed(0)}%`}),Y.jsx(rn,{content:Y.jsx(pl,{})}),Y.jsx(Lr,{wrapperStyle:{fontSize:11,paddingTop:12}}),Y.jsx(za,{yAxisId:"left",type:"monotone",dataKey:"cacheRead",stroke:Rn[5],fill:Rn[5],fillOpacity:.08,name:"Cache Read",strokeWidth:1.5}),Y.jsx(Si,{yAxisId:"right",type:"monotone",dataKey:"hitRate",stroke:Rn[3],strokeWidth:2,dot:!1,name:"Hit Rate (%)"})]})})]}),o?o?Y.jsx(ii,{title:"Per-model breakdown",children:Y.jsx(il,{width:"100%",height:280,children:Y.jsxs(YM,{data:N,layout:"vertical",children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",horizontal:!1}),Y.jsx(qr,{type:"number",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>qt(k)}),Y.jsx(ir,{type:"category",dataKey:"name",tick:{fill:"#57534e",fontSize:11},axisLine:!1,tickLine:!1,width:80}),Y.jsx(rn,{content:Y.jsx(pl,{})}),Y.jsx(Zn,{dataKey:"cacheRead",stackId:"a",fill:Rn[0],fillOpacity:.7,name:"Cache Read",maxBarSize:20}),Y.jsx(Zn,{dataKey:"input",stackId:"a",fill:Rn[1],fillOpacity:.7,name:"Input",maxBarSize:20}),Y.jsx(Zn,{dataKey:"output",stackId:"a",fill:Rn[2],fillOpacity:.7,name:"Output",maxBarSize:20})]})})}):null:Y.jsx(ii,{title:"Project distribution",subtitle:`Top 8 projects by ${O?"tokens":"cost"}`,children:Y.jsx(il,{width:"100%",height:280,children:Y.jsxs(YM,{data:X.slice(0,8),layout:"vertical",margin:{left:8,right:8,top:0,bottom:0},children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",horizontal:!1}),Y.jsx(qr,{type:"number",tick:{fill:"#78716c",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:k=>O?qt(k):Nr(k)}),Y.jsx(ir,{type:"category",dataKey:"name",tick:{fill:"#57534e",fontSize:11},axisLine:!1,tickLine:!1,width:110}),Y.jsx(rn,{content:Y.jsx(pl,{fmt:O?qt:Nr})}),Y.jsx(Zn,{dataKey:S,radius:[0,6,6,0],maxBarSize:24,children:X.slice(0,8).map((k,I)=>Y.jsx(Mo,{fill:Rn[I%Rn.length],fillOpacity:.85},I))})]})})})]}),Y.jsx(ii,{title:"24-Hour Activity Heatmap",subtitle:"Activity distribution by hour and day of week",className:"mb-4",children:B?Y.jsxs("div",{className:"flex flex-col w-full pt-1 pb-2",children:[Y.jsxs("div",{className:"flex w-full gap-2",children:[Y.jsx("div",{className:"w-8 shrink-0 flex flex-col justify-around text-[10px] font-medium text-stone-400 pt-0.5 pb-0.5",children:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(k=>Y.jsx("div",{className:"h-[22px] flex items-center",children:k},k))}),Y.jsx("div",{className:"flex-1 flex flex-col gap-1",children:B.grid.map((k,I)=>Y.jsx("div",{className:"flex gap-1 h-[22px]",children:k.map((D,H)=>{const Q=B.maxVal>0?.15+D/B.maxVal*.85:0;return Y.jsx("div",{className:"flex-1 rounded-[3px] relative group transition-all hover:ring-2 hover:ring-emerald-400 hover:ring-offset-1 hover:z-10",style:{backgroundColor:D>0?`rgba(16, 185, 129, ${Q})`:"#ebedf0"},children:D>0&&Y.jsxs("div",{className:"absolute opacity-0 group-hover:opacity-100 z-20 bg-stone-900 text-white text-[10px] px-2 py-1 rounded bottom-full mb-1.5 left-1/2 -translate-x-1/2 pointer-events-none whitespace-nowrap shadow-lg font-mono",children:[H,":00 - ",O?qt(D)+" tokens":Nr(D)]})},H)})},I))})]}),Y.jsx("div",{className:"flex ml-10 mt-1.5 text-[10px] font-medium text-stone-400",children:[...Array(24)].map((k,I)=>Y.jsx("div",{className:"flex-1 text-center truncate",children:I%2===0?I:""},I))})]}):Y.jsx("div",{className:"h-48 flex items-center justify-center text-stone-400 text-sm",children:"No session data available"})}),Y.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-5 gap-4 mb-4",children:[Y.jsx(ii,{title:"Model trend",subtitle:"Showing top 6 models to maintain readability",className:"lg:col-span-3",children:Y.jsx(il,{width:"100%",height:260,children:Y.jsxs(sX,{data:q,children:[Y.jsx(gl,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),Y.jsx(qr,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),Y.jsx(ir,{tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:k=>O?qt(k):Nr(k)}),Y.jsx(rn,{content:Y.jsx(pl,{fmt:O?qt:Nr})}),Y.jsx(Lr,{wrapperStyle:{fontSize:11,paddingTop:12}}),N.slice(0,6).map((k,I)=>Y.jsx(Si,{type:"monotone",dataKey:k.name,stroke:Rn[I%Rn.length],strokeWidth:1.5,dot:!1},k.name))]})})}),Y.jsx(ii,{title:"Model distribution",subtitle:"Ranked by total volume",className:"lg:col-span-2",children:Y.jsx(il,{width:"100%",height:260,children:Y.jsxs(fX,{margin:{left:0,right:0,top:0,bottom:0},children:[Y.jsx(Fr,{data:N.slice(0,6),dataKey:S,nameKey:"name",cx:"50%",cy:"50%",innerRadius:60,outerRadius:90,paddingAngle:2,children:N.slice(0,6).map((k,I)=>Y.jsx(Mo,{fill:Rn[I%Rn.length],fillOpacity:.85,stroke:"transparent"},I))}),Y.jsx(rn,{content:Y.jsx(pl,{fmt:O?qt:Nr})}),Y.jsx(Lr,{layout:"vertical",verticalAlign:"middle",align:"right",wrapperStyle:{fontSize:11}})]})})})]}),Y.jsx(ii,{title:"Daily detail",subtitle:"Recent 30 days of usage breakdown",children:Y.jsx("div",{className:"overflow-x-auto",children:Y.jsxs("table",{className:"w-full text-[11px] whitespace-nowrap",children:[Y.jsx("thead",{children:Y.jsxs("tr",{className:"border-b border-stone-200",children:[Y.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Date"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Input"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Output"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cache read"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-600 font-semibold text-[10px]",children:"Total tokens"}),Y.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cost"}),Y.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Models"})]})}),Y.jsx("tbody",{children:[...w].reverse().slice(0,30).map(k=>Y.jsxs("tr",{className:"border-b border-stone-100 hover:bg-stone-50/60 transition-colors",children:[Y.jsx("td",{className:"py-2.5 px-4 text-stone-800 font-semibold",children:Fs(k.date)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:qt(k.inputTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:qt(k.outputTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-indigo-500/70",children:qt(k.cacheReadTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-semibold text-indigo-600",children:qt(k.totalTokens)}),Y.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-medium text-stone-600 bg-stone-50/40",children:Nr(k.totalCost)}),Y.jsx("td",{className:"py-2.5 px-4 text-stone-500 font-medium truncate max-w-[200px]",children:k.modelsUsed.map(lb).join(", ")})]},k.date))})]})})})]})}function xX(){return Y.jsx("div",{className:"min-h-dvh bg-[radial-gradient(ellipse_at_top,#eef2ff_0%,#faf9f7_35%,#faf9f7_100%)] text-stone-900",children:Y.jsx(bX,{})})}J3.createRoot(document.getElementById("root")).render(Y.jsx(re.StrictMode,{children:Y.jsx(xX,{})}));
|
package/dist/client/index.html
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>
|
|
6
|
+
<title>TokenDash</title>
|
|
7
7
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><text y='28' font-size='28'>⚡</text></svg>" />
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CVEOcjaP.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-BaY47OM2.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body class="antialiased" style="background:#faf9f7">
|
package/dist/server/index.js
CHANGED
|
@@ -1,19 +1,52 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
2
3
|
import { registerApiRoutes } from './routes/api.js';
|
|
3
4
|
import { ensureUsageToolsReady } from './ccusage.js';
|
|
4
5
|
import open from 'open';
|
|
6
|
+
const CLI_USAGE = [
|
|
7
|
+
'Usage:',
|
|
8
|
+
' tokendash',
|
|
9
|
+
' tokendash --version',
|
|
10
|
+
' tokendash --port <number> [--no-open]',
|
|
11
|
+
].join('\n');
|
|
12
|
+
function getPackageVersion() {
|
|
13
|
+
const packageJson = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
|
|
14
|
+
return packageJson.version ?? 'unknown';
|
|
15
|
+
}
|
|
16
|
+
function exitWithCliError(message) {
|
|
17
|
+
console.error(message);
|
|
18
|
+
console.error(`\n${CLI_USAGE}`);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
5
21
|
function parseCliArgs() {
|
|
6
22
|
const args = process.argv.slice(2);
|
|
7
23
|
const result = {};
|
|
24
|
+
if (args.length === 1 && (args[0] === '--version' || args[0] === '-v')) {
|
|
25
|
+
result.showVersion = true;
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
8
28
|
for (let i = 0; i < args.length; i++) {
|
|
9
29
|
const arg = args[i];
|
|
10
|
-
if (arg === '--
|
|
11
|
-
|
|
30
|
+
if (arg === '--version' || arg === '-v') {
|
|
31
|
+
exitWithCliError('The --version flag must be used by itself.');
|
|
32
|
+
}
|
|
33
|
+
if (arg === '--port') {
|
|
34
|
+
if (i + 1 >= args.length) {
|
|
35
|
+
exitWithCliError('Missing value for --port.');
|
|
36
|
+
}
|
|
37
|
+
const value = parseInt(args[i + 1], 10);
|
|
38
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
39
|
+
exitWithCliError(`Invalid port value: ${args[i + 1]}`);
|
|
40
|
+
}
|
|
41
|
+
result.port = value;
|
|
12
42
|
i++;
|
|
13
43
|
}
|
|
14
44
|
else if (arg === '--no-open') {
|
|
15
45
|
result.noOpen = true;
|
|
16
46
|
}
|
|
47
|
+
else {
|
|
48
|
+
exitWithCliError(`Unsupported argument: ${arg}`);
|
|
49
|
+
}
|
|
17
50
|
}
|
|
18
51
|
return result;
|
|
19
52
|
}
|
|
@@ -28,10 +61,55 @@ async function ensureUsageSupportAvailable() {
|
|
|
28
61
|
return false;
|
|
29
62
|
}
|
|
30
63
|
}
|
|
64
|
+
function resolvePort(value) {
|
|
65
|
+
return Number.isInteger(value) && value && value > 0 ? value : 3456;
|
|
66
|
+
}
|
|
67
|
+
function listen(app, port) {
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
const server = app.listen(port);
|
|
70
|
+
const handleListening = () => {
|
|
71
|
+
cleanup();
|
|
72
|
+
resolve(server);
|
|
73
|
+
};
|
|
74
|
+
const handleError = (error) => {
|
|
75
|
+
cleanup();
|
|
76
|
+
reject(error);
|
|
77
|
+
};
|
|
78
|
+
const cleanup = () => {
|
|
79
|
+
server.off('listening', handleListening);
|
|
80
|
+
server.off('error', handleError);
|
|
81
|
+
};
|
|
82
|
+
server.once('listening', handleListening);
|
|
83
|
+
server.once('error', handleError);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async function listenWithPortFallback(app, preferredPort) {
|
|
87
|
+
let port = preferredPort;
|
|
88
|
+
for (let attempt = 0; attempt < 20; attempt++, port++) {
|
|
89
|
+
try {
|
|
90
|
+
const server = await listen(app, port);
|
|
91
|
+
return { server, port, usedFallback: port !== preferredPort };
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
const err = error;
|
|
95
|
+
if (err.code !== 'EADDRINUSE') {
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`Could not find an available port starting from ${preferredPort}`);
|
|
101
|
+
}
|
|
31
102
|
async function main() {
|
|
32
103
|
const args = parseCliArgs();
|
|
33
|
-
|
|
104
|
+
if (args.showVersion) {
|
|
105
|
+
console.log(getPackageVersion());
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const version = getPackageVersion();
|
|
109
|
+
const preferredPort = resolvePort(args.port ?? (process.env.PORT ? parseInt(process.env.PORT, 10) : undefined));
|
|
34
110
|
const shouldOpenBrowser = !args.noOpen;
|
|
111
|
+
console.log(`Starting tokendash v${version}...`);
|
|
112
|
+
console.log(`Checking local usage data sources...`);
|
|
35
113
|
const isUsageSupportAvailable = await ensureUsageSupportAvailable();
|
|
36
114
|
if (!isUsageSupportAvailable) {
|
|
37
115
|
process.exit(1);
|
|
@@ -53,24 +131,31 @@ async function main() {
|
|
|
53
131
|
res.sendFile(clientIndexPath);
|
|
54
132
|
});
|
|
55
133
|
}
|
|
56
|
-
const server = app
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
134
|
+
const { server, port, usedFallback } = await listenWithPortFallback(app, preferredPort);
|
|
135
|
+
if (usedFallback) {
|
|
136
|
+
console.warn(`tokendash detected that port ${preferredPort} is already in use, switched to http://localhost:${port}`);
|
|
137
|
+
}
|
|
138
|
+
console.log(`tokendash running on http://localhost:${port}`);
|
|
139
|
+
console.log(`API available at http://localhost:${port}/api`);
|
|
140
|
+
if (isProduction) {
|
|
141
|
+
console.log('Serving production build');
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
console.log('Development mode - use "npm run dev" for full dev experience');
|
|
145
|
+
}
|
|
65
146
|
// Open browser if requested
|
|
66
147
|
if (shouldOpenBrowser) {
|
|
67
148
|
// Small delay to ensure server is ready
|
|
68
149
|
setTimeout(() => {
|
|
150
|
+
console.log('Opening dashboard in your browser...');
|
|
69
151
|
open(`http://localhost:${port}`).catch((err) => {
|
|
70
152
|
console.warn('Could not open browser:', err.message);
|
|
71
153
|
});
|
|
72
154
|
}, 100);
|
|
73
155
|
}
|
|
156
|
+
else {
|
|
157
|
+
console.log('Browser auto-open disabled (--no-open)');
|
|
158
|
+
}
|
|
74
159
|
// Graceful shutdown
|
|
75
160
|
process.on('SIGTERM', () => {
|
|
76
161
|
server.close(() => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhangferry-dev/tokendash",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Token Usage Analytics Dashboard",
|
|
6
6
|
"publishConfig": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"main": "./dist/server/index.js",
|
|
10
10
|
"types": "./dist/server/index.d.ts",
|
|
11
11
|
"bin": {
|
|
12
|
-
"tokendash": "
|
|
12
|
+
"tokendash": "bin/tokendash.js"
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
15
|
"dist",
|