@zhangferry-dev/tokendash 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -2,18 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
A beautiful, local web dashboard for visualizing your Claude Code, Codex, and OpenClaw token usage statistics.
|
|
4
4
|
|
|
5
|
-
It runs locally and parses token usage data directly from local session files, presenting it in a clean, interactive React dashboard.
|
|
5
|
+
It runs locally and parses token usage data directly from local session files, presenting it in a clean, interactive React dashboard. No external CLI dependencies required.
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
11
|
-
- **Multi-Agent Support:** View usage for
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
11
|
+
- **Multi-Agent Support:** View usage for Claude Code, Codex, and OpenClaw.
|
|
12
|
+
- **Direct JSONL Parsing:** Reads `~/.claude/projects/` JSONL files directly — no `ccusage` CLI dependency, 100x faster data loading.
|
|
13
|
+
- **Detailed Metrics:** Track total tokens, cost (USD), active days, cache hit rates, and output/input ratio.
|
|
14
|
+
- **Code Analytics:** Visualize code change trends, tool call frequency, and productivity KPIs (Claude Code & OpenClaw only).
|
|
15
|
+
- **Pricing Transparency:** Toggle Cost metric to see per-model pricing formula and rates.
|
|
16
|
+
- **Interactive Charts:** Bar/line/area charts with tooltips, model breakdowns, and time range filtering.
|
|
17
|
+
- **24-Hour Heatmap:** Activity distribution by hour and day of week, with timezone awareness.
|
|
18
|
+
- **Model & Project Distribution:** See which models and projects drive your usage.
|
|
16
19
|
- **Persistent Filters:** Your selected time range, project, and metric mode are saved automatically.
|
|
20
|
+
- **Test Coverage:** Unit tests (Vitest) and E2E tests (Playwright) for reliability.
|
|
17
21
|
|
|
18
22
|
## Requirements
|
|
19
23
|
|
|
@@ -83,7 +87,21 @@ If you want to contribute or modify the dashboard locally:
|
|
|
83
87
|
|
|
84
88
|
- **Frontend:** React 19, Recharts, Tailwind CSS (via Vite plugin), built with Vite.
|
|
85
89
|
- **Backend:** Express, TypeScript.
|
|
86
|
-
- **Data Source:**
|
|
90
|
+
- **Data Source:** All agent data is parsed directly from local session files (`~/.claude/projects/`, `~/.codex/sessions/`). No external CLI dependencies.
|
|
91
|
+
- **Caching:** Persistent disk cache (`/tmp/tokendash-cache/`) with stale-while-revalidate pattern for snappy UI updates.
|
|
92
|
+
- **Testing:** Vitest (unit), Playwright (E2E). Run with `npm test` and `npm run test:e2e`.
|
|
93
|
+
|
|
94
|
+
## Changelog
|
|
95
|
+
|
|
96
|
+
### v1.2.0
|
|
97
|
+
- **Replaced `ccusage` CLI** with direct JSONL parser — data loads in 1-2ms instead of 12-30s
|
|
98
|
+
- **Added code analytics** — code change trend, tool call trend, daily KPIs
|
|
99
|
+
- **Added persistent disk cache** with stale-while-revalidate pattern
|
|
100
|
+
- **Fixed heatmap** — cost metric now shows real data (was always $0)
|
|
101
|
+
- **Fixed timezone handling** — correct date/hour grouping for non-UTC users
|
|
102
|
+
- **Added pricing info popup** — shows per-model pricing formula in Cost mode
|
|
103
|
+
- **Added test suite** — 49 unit tests + 6 E2E tests
|
|
104
|
+
- **Layout improvements** — model trend bar chart, side-by-side analytics panels
|
|
87
105
|
|
|
88
106
|
## License
|
|
89
107
|
|
|
@@ -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 SK(e,t){if(e){if(typeof e=="string")return A0(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 A0(e,t)}}function OK(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _K(e){if(Array.isArray(e))return A0(e)}function A0(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 AK(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,uN(r.key),r)}}function wK(e,t,n){return t&&kM(e.prototype,t),n&&kM(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function TK(e,t,n){return t=Jf(t),EK(e,oN()?Reflect.construct(t,n||[],Jf(e).constructor):t.apply(e,n))}function EK(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 jK(e)}function jK(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function oN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(oN=function(){return!!e})()}function Jf(e){return Jf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Jf(e)}function MK(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&&w0(e,t)}function w0(e,t){return w0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},w0(e,t)}function Qn(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=PK(e,"string");return Vo(t)=="symbol"?t:t+""}function PK(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 String(e)}var cr=(function(e){function t(){var n;AK(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=TK(this,t,[].concat(o)),Qn(n,"state",{isAnimationFinished:!0,totalLength:0}),Qn(n,"generateSimpleStrokeDasharray",function(c,f){return"".concat(f,"px ").concat(c-f,"px")}),Qn(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(mo(d.slice(0,O)),[v-S]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(mo(t.repeat(d,y)),mo(x),b).map(function(w){return"".concat(w,"px")}).join(", ")}),Qn(n,"id",za("recharts-line-")),Qn(n,"pathRef",function(c){n.mainCurve=c}),Qn(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Qn(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return MK(t,e),wK(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=Zt(y,cu);if(!v)return null;var g=function(S,b){return{x:S.x,y:S.y,value:S.value,errorVal:ut(S.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(o,")"):null};return N.createElement(Pe,x,v.map(function(O){return N.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=ge(this.props,!1),g=ge(d,!0),x=h.map(function(S,b){var w=gn(gn(gn({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 N.createElement(Pe,Tl({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=NM(f,mK),g=gn(gn(gn({},ge(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 N.createElement(Na,Tl({},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 N.createElement(Hn,{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(P){var A=P.t;if(T){var E=T.length/f.length,M=f.map(function(B,X){var Q=Math.floor(X*E);if(T[Q]){var Z=T[Q],k=ft(Z.x,B.x),K=ft(Z.y,B.y);return gn(gn({},B),{},{x:k(A),y:K(A)})}if(O){var ee=ft(S*2,B.x),ce=ft(b/2,B.y);return gn(gn({},B),{},{x:ee(A),y:ce(A)})}return gn(gn({},B),{},{x:B.x,y:B.y})});return l.renderCurveStatically(M,r,o)}var D=ft(0,j),z=D(A),G;if(d){var L="".concat(d).split(/[,\s]+/gim).map(function(B){return parseFloat(B)});G=l.getStrokeDasharray(z,j,L)}else G=l.generateSimpleStrokeDasharray(j,z);return l.renderCurveStatically(f,r,o,{strokeDasharray:G})})}},{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||!ka(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=Ee("recharts-line",d),P=h&&h.allowDataOverflow,A=y&&y.allowDataOverflow,E=P||A,M=Oe(b)?this.id:b,D=(r=ge(c,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},z=D.r,G=z===void 0?3:z,L=D.strokeWidth,B=L===void 0?2:L,X=sP(c)?c:{},Q=X.clipDot,Z=Q===void 0?!0:Q,k=G*2+B;return N.createElement(Pe,{className:j},P||A?N.createElement("defs",null,N.createElement("clipPath",{id:"clipPath-".concat(M)},N.createElement("rect",{x:P?g:g-x/2,y:A?v:v-O/2,width:P?x:x*2,height:A?O:O*2})),!Z&&N.createElement("clipPath",{id:"clipPath-dots-".concat(M)},N.createElement("rect",{x:g-k/2,y:v-k/2,width:x+k,height:O+k}))):null,!T&&this.renderCurve(E,M),this.renderErrorBar(E,M),(T||c)&&this.renderDots(E,Z,M),(!S||w)&&tr.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(mo(r),[0]):r,c=[],f=0;f<o;++f)c=[].concat(mo(c),mo(l));return c}},{key:"renderDotItem",value:function(r,o){var l;if(N.isValidElement(r))l=N.cloneElement(r,o);else if(Ae(r))l=r(o);else{var c=o.key,f=NM(o,gK),d=Ee("recharts-line-dot",typeof r!="boolean"?r.className:"");l=N.createElement(yc,Tl({key:c},f,{className:d}))}return l}}])})(te.PureComponent);Qn(cr,"displayName","Line");Qn(cr,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!Vr.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});Qn(cr,"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=ut(g,c);return y==="horizontal"?{x:$o({axis:n,ticks:o,bandSize:f,entry:g,index:x}),y:Oe(O)?null:r.scale(O),value:O,payload:g}:{x:Oe(O)?null:n.scale(O),y:$o({axis:r,ticks:l,bandSize:f,entry:g,index:x}),value:O,payload:g}});return gn({points:v,layout:y},h)});var CK=["layout","type","stroke","connectNulls","isRange","ref"],DK=["key"],lN;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 cN(e,t){if(e==null)return{};var n=NK(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 NK(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 mi(){return mi=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},mi.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 Ta(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){sr(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 RK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zM(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,fN(r.key),r)}}function kK(e,t,n){return t&&zM(e.prototype,t),n&&zM(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function $K(e,t,n){return t=ed(t),zK(e,sN()?Reflect.construct(t,n||[],ed(e).constructor):t.apply(e,n))}function zK(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 qK(e)}function qK(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 ed(e){return ed=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ed(e)}function BK(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 sr(e,t,n){return t=fN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fN(e){var t=LK(e,"string");return Fo(t)=="symbol"?t:t+""}function LK(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 String(e)}var Un=(function(e){function t(){var n;RK(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=$K(this,t,[].concat(o)),sr(n,"state",{isAnimationFinished:!0}),sr(n,"id",za("recharts-area-")),sr(n,"handleAnimationEnd",function(){var c=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),Ae(c)&&c()}),sr(n,"handleAnimationStart",function(){var c=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),Ae(c)&&c()}),n}return BK(t,e),kK(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=ge(this.props,!1),x=ge(h,!0),O=y.map(function(b,w){var T=Ta(Ta(Ta({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 N.createElement(Pe,mi({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=Ma(c.map(function(g){return g.y||0}));return de(l)&&typeof l=="number"?v=Math.max(l,v):l&&Array.isArray(l)&&l.length&&(v=Math.max(Ma(l.map(function(g){return g.y||0})),v)),de(v)?N.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=Ma(c.map(function(g){return g.x||0}));return de(l)&&typeof l=="number"?v=Math.max(l,v):l&&Array.isArray(l)&&l.length&&(v=Math.max(Ma(l.map(function(g){return g.x||0})),v)),de(v)?N.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=cN(f,CK);return N.createElement(Pe,{clipPath:l?"url(#clipPath-".concat(c,")"):null},N.createElement(Na,mi({},ge(x,!0),{points:r,connectNulls:v,type:h,baseLine:o,layout:d,stroke:"none",className:"recharts-area-area"})),y!=="none"&&N.createElement(Na,mi({},ge(this.props,!1),{className:"recharts-area-curve",layout:d,type:h,connectNulls:v,fill:"none",points:r})),y!=="none"&&g&&N.createElement(Na,mi({},ge(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 N.createElement(Hn,{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,P=f.map(function(D,z){var G=Math.floor(z*j);if(S[G]){var L=S[G],B=ft(L.x,D.x),X=ft(L.y,D.y);return Ta(Ta({},D),{},{x:B(T),y:X(T)})}return D}),A;if(de(d)&&typeof d=="number"){var E=ft(b,d);A=E(T)}else if(Oe(d)||au(d)){var M=ft(b,0);A=M(T)}else A=d.map(function(D,z){var G=Math.floor(z*j);if(b[G]){var L=b[G],B=ft(L.x,D.x),X=ft(L.y,D.y);return Ta(Ta({},D),{},{x:B(T),y:X(T)})}return D});return l.renderAreaStatically(P,A,r,o)}return N.createElement(Pe,null,N.createElement("defs",null,N.createElement("clipPath",{id:"animationClipPath-".concat(o)},l.renderClipRect(T))),N.createElement(Pe,{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||!ka(y,c)||!ka(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=Ee("recharts-area",d),P=v&&v.allowDataOverflow,A=g&&g.allowDataOverflow,E=P||A,M=Oe(b)?this.id:b,D=(r=ge(c,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},z=D.r,G=z===void 0?3:z,L=D.strokeWidth,B=L===void 0?2:L,X=sP(c)?c:{},Q=X.clipDot,Z=Q===void 0?!0:Q,k=G*2+B;return N.createElement(Pe,{className:j},P||A?N.createElement("defs",null,N.createElement("clipPath",{id:"clipPath-".concat(M)},N.createElement("rect",{x:P?y:y-x/2,y:A?h:h-O/2,width:P?x:x*2,height:A?O:O*2})),!Z&&N.createElement("clipPath",{id:"clipPath-dots-".concat(M)},N.createElement("rect",{x:y-k/2,y:h-k/2,width:x+k,height:O+k}))):null,T?null:this.renderArea(E,M),(c||T)&&this.renderDots(E,Z,M),(!S||w)&&tr.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}}])})(te.PureComponent);lN=Un;sr(Un,"displayName","Area");sr(Un,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Vr.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});sr(Un,"getBaseValue",function(e,t,n,r){var o=e.layout,l=e.baseValue,c=t.props.baseValue,f=c??l;if(de(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]});sr(Un,"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=lN.getBaseValue(t,n,r,o),b=x==="horizontal",w=!1,T=v.map(function(P,A){var E;O?E=h[y+A]:(E=ut(P,d),Array.isArray(E)?w=!0:E=[S,E]);var M=E[1]==null||O&&ut(P,d)==null;return b?{x:$o({axis:r,ticks:l,bandSize:f,entry:P,index:A}),y:M?null:o.scale(E[1]),value:E,payload:P}:{x:M?null:r.scale(E[1]),y:$o({axis:o,ticks:c,bandSize:f,entry:P,index:A}),value:E,payload:P}}),j;return O||w?j=T.map(function(P){var A=Array.isArray(P.value)?P.value[0]:null;return b?{x:P.x,y:A!=null&&P.y!=null?o.scale(A):null}:{x:A!=null?r.scale(A):null,y:P.y}}):j=b?o.scale(S):r.scale(S),Ta({points:T,baseLine:j,layout:x,isRange:w},g)});sr(Un,"renderDotItem",function(e,t){var n;if(N.isValidElement(e))n=N.cloneElement(e,t);else if(Ae(e))n=e(t);else{var r=Ee("recharts-area-dot",typeof e!="boolean"?e.className:""),o=t.key,l=cN(t,DK);n=N.createElement(yc,mi({},l,{key:o,className:r}))}return n});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 UK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function IK(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,pN(r.key),r)}}function HK(e,t,n){return t&&IK(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function GK(e,t,n){return t=td(t),KK(e,dN()?Reflect.construct(t,n||[],td(e).constructor):t.apply(e,n))}function KK(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 YK(e)}function YK(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function dN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(dN=function(){return!!e})()}function td(e){return td=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},td(e)}function XK(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&&E0(e,t)}function E0(e,t){return E0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},E0(e,t)}function hN(e,t,n){return t=pN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pN(e){var t=VK(e,"string");return Zo(t)=="symbol"?t:t+""}function VK(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(t==="string"?String:Number)(e)}var Id=(function(e){function t(){return UK(this,t),GK(this,t,arguments)}return XK(t,e),HK(t,[{key:"render",value:function(){return null}}])})(te.Component);hN(Id,"displayName","ZAxis");hN(Id,"defaultProps",{zAxisId:0,range:[64,64],scale:"auto",type:"number"});var FK=["option","isActive"];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 ZK(e,t){if(e==null)return{};var n=WK(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 WK(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 QK(e){var t=e.option,n=e.isActive,r=ZK(e,FK);return typeof t=="string"?te.createElement(Uf,El({option:te.createElement(yd,El({type:t},r)),isActive:n,shapeType:"symbols"},r)):te.createElement(Uf,El({option:t,isActive:n,shapeType:"symbols"},r))}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 jl(){return jl=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},jl.apply(this,arguments)}function qM(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?qM(Object(n),!0).forEach(function(r){Ca(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qM(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function JK(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function BM(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 eY(e,t,n){return t&&BM(e.prototype,t),n&&BM(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function tY(e,t,n){return t=nd(t),nY(e,vN()?Reflect.construct(t,n||[],nd(e).constructor):t.apply(e,n))}function nY(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 rY(e)}function rY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function vN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(vN=function(){return!!e})()}function nd(e){return nd=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},nd(e)}function aY(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&&j0(e,t)}function j0(e,t){return j0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},j0(e,t)}function Ca(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=iY(e,"string");return Wo(t)=="symbol"?t:t+""}function iY(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(t==="string"?String:Number)(e)}var Hd=(function(e){function t(){var n;JK(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=tY(this,t,[].concat(o)),Ca(n,"state",{isAnimationFinished:!1}),Ca(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0})}),Ca(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1})}),Ca(n,"id",za("recharts-scatter-")),n}return aY(t,e),eY(t,[{key:"renderSymbolsStatically",value:function(r){var o=this,l=this.props,c=l.shape,f=l.activeShape,d=l.activeIndex,h=ge(this.props,!1);return r.map(function(y,v){var g=d===v,x=g?f:c,O=$n($n({},h),y);return N.createElement(Pe,jl({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)},Ra(o.props,y,v),{role:"img"}),N.createElement(QK,jl({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 N.createElement(Hn,{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),P=ft(w.size,S.size);return $n($n({},S),{},{cx:T(x),cy:j(x),size:P(x)})}var A=ft(0,S.size);return $n($n({},S),{},{size:A(x)})});return N.createElement(Pe,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||!ka(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=Zt(d,cu);return h?h.map(function(y,v){var g=y.props,x=g.direction,O=g.dataKey;return N.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:ut(b,w)}}})}):null}},{key:"renderLine",value:function(){var r=this.props,o=r.points,l=r.line,c=r.lineType,f=r.lineJointType,d=ge(this.props,!1),h=ge(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=Zk(o),x=g.xmin,O=g.xmax,S=g.a,b=g.b,w=function(P){return S*P+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 N.isValidElement(l)?v=N.cloneElement(l,T):Ae(l)?v=l(T):v=N.createElement(Na,jl({},T,{type:f})),N.createElement(Pe,{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=Ee("recharts-scatter",f),T=d&&d.allowDataOverflow,j=h&&h.allowDataOverflow,P=T||j,A=Oe(O)?this.id:O;return N.createElement(Pe,{className:w,clipPath:P?"url(#clipPath-".concat(A,")"):null},T||j?N.createElement("defs",null,N.createElement("clipPath",{id:"clipPath-".concat(A)},N.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(),N.createElement(Pe,{key:"recharts-scatter-symbols"},this.renderSymbols()),(!S||b)&&tr.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}}])})(te.PureComponent);Ca(Hd,"displayName","Scatter");Ca(Hd,"defaultProps",{xAxisId:0,yAxisId:0,zAxisId:0,legendType:"circle",lineType:"joint",lineJointType:"linear",data:[],shape:"circle",hide:!1,isAnimationActive:!Vr.isSsr,animationBegin:0,animationDuration:400,animationEasing:"linear"});Ca(Hd,"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=Zt(o.props.children,Co),v=Oe(t.dataKey)?o.props.dataKey:t.dataKey,g=Oe(n.dataKey)?o.props.dataKey:n.dataKey,x=r&&r.dataKey,O=r?r.range:Id.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,P){var A=ut(j,v),E=ut(j,g),M=!Oe(x)&&ut(j,x)||"-",D=[{name:Oe(t.dataKey)?o.props.name:t.name||t.dataKey,unit:t.unit||"",value:A,payload:j,dataKey:v,type:h},{name:Oe(n.dataKey)?o.props.name:n.name||n.dataKey,unit:n.unit||"",value:E,payload:j,dataKey:g,type:h}];M!=="-"&&D.push({name:r.name||r.dataKey,unit:r.unit||"",value:M,payload:j,dataKey:x,type:h});var z=$o({axis:t,ticks:c,bandSize:b,entry:j,index:P,dataKey:v}),G=$o({axis:n,ticks:f,bandSize:w,entry:j,index:P,dataKey:g}),L=M!=="-"?r.scale(M):S,B=Math.sqrt(Math.max(L,0)/Math.PI);return $n($n({},j),{},{cx:z,cy:G,x:z-B,y:G-B,xAxis:t,yAxis:n,zAxis:r,width:2*B,height:2*B,size:L,node:{x:A,y:E,z:M},tooltipPayload:D,tooltipPosition:{x:z,y:G},payload:j},y&&y[P]&&y[P].props)});return $n({points:T},d)});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 oY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function uY(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,bN(r.key),r)}}function lY(e,t,n){return t&&uY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function cY(e,t,n){return t=rd(t),sY(e,mN()?Reflect.construct(t,n||[],rd(e).constructor):t.apply(e,n))}function sY(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 fY(e)}function fY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function mN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(mN=function(){return!!e})()}function rd(e){return rd=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},rd(e)}function dY(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&&M0(e,t)}function M0(e,t){return M0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},M0(e,t)}function gN(e,t,n){return t=bN(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bN(e){var t=hY(e,"string");return Qo(t)=="symbol"?t:t+""}function hY(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 String(e)}function P0(){return P0=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},P0.apply(this,arguments)}function pY(e){var t=e.xAxisId,n=$x(),r=zx(),o=VD(t);return o==null?null:te.createElement(su,P0({},o,{className:Ee("recharts-".concat(o.axisType," ").concat(o.axisType),o.className),viewBox:{x:0,y:0,width:n,height:r},ticksGenerator:function(c){return Br(c,!0)}}))}var Ln=(function(e){function t(){return oY(this,t),cY(this,t,arguments)}return dY(t,e),lY(t,[{key:"render",value:function(){return te.createElement(pY,this.props)}}])})(te.Component);gN(Ln,"displayName","XAxis");gN(Ln,"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 Jo(e){"@babel/helpers - typeof";return Jo=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},Jo(e)}function vY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yY(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,ON(r.key),r)}}function mY(e,t,n){return t&&yY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function gY(e,t,n){return t=ad(t),bY(e,xN()?Reflect.construct(t,n||[],ad(e).constructor):t.apply(e,n))}function bY(e,t){if(t&&(Jo(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 xN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(xN=function(){return!!e})()}function ad(e){return ad=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ad(e)}function SY(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&&C0(e,t)}function C0(e,t){return C0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},C0(e,t)}function SN(e,t,n){return t=ON(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ON(e){var t=OY(e,"string");return Jo(t)=="symbol"?t:t+""}function OY(e,t){if(Jo(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Jo(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function D0(){return D0=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},D0.apply(this,arguments)}var _Y=function(t){var n=t.yAxisId,r=$x(),o=zx(),l=FD(n);return l==null?null:te.createElement(su,D0({},l,{className:Ee("recharts-".concat(l.axisType," ").concat(l.axisType),l.className),viewBox:{x:0,y:0,width:r,height:o},ticksGenerator:function(f){return Br(f,!0)}}))},on=(function(e){function t(){return vY(this,t),gY(this,t,arguments)}return SY(t,e),mY(t,[{key:"render",value:function(){return te.createElement(_Y,this.props)}}])})(te.Component);SN(on,"displayName","YAxis");SN(on,"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 LM(e){return EY(e)||TY(e)||wY(e)||AY()}function AY(){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 wY(e,t){if(e){if(typeof e=="string")return N0(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 N0(e,t)}}function TY(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function EY(e){if(Array.isArray(e))return N0(e)}function N0(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 R0=function(t,n,r,o,l){var c=Zt(t,Bx),f=Zt(t,Bd),d=[].concat(LM(c),LM(f)),h=Zt(t,Ud),y="".concat(o,"Id"),v=o[0],g=n;if(d.length&&(g=d.reduce(function(S,b){if(b.props[y]===r&&dr(b.props,"extendDomain")&&de(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&&dr(b.props,"extendDomain")&&de(b.props[x])&&de(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 de(b)?[Math.min(S[0],b),Math.max(S[1],b)]:S},g)),g},lb={exports:{}},UM;function jY(){return UM||(UM=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 P=b.length,A;for(j=0;j<P;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})(lb)),lb.exports}var MY=jY();const PY=Xe(MY);var cb=new PY,sb="recharts.syncMouseEvents";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 CY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DY(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,_N(r.key),r)}}function NY(e,t,n){return t&&DY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function fb(e,t,n){return t=_N(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _N(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 String(e)}var kY=(function(){function e(){CY(this,e),fb(this,"activeIndex",0),fb(this,"coordinateList",[]),fb(this,"layout","horizontal")}return NY(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 $Y(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&&de(r)&&de(o))return!0}return!1}function zY(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 AN(e){var t=e.cx,n=e.cy,r=e.radius,o=e.startAngle,l=e.endAngle,c=nt(t,n,r,o),f=nt(t,n,r,l);return{points:[c,f],cx:t,cy:n,radius:r,startAngle:o,endAngle:l}}function qY(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=nt(f,d,h,v),x=nt(f,d,y,v);r=g.x,o=g.y,l=x.x,c=x.y}else return AN(t);return[{x:r,y:o},{x:l,y:c}]}function cc(e){"@babel/helpers - typeof";return cc=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},cc(e)}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 Fs(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){BY(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 BY(e,t,n){return t=LY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function LY(e){var t=UY(e,"string");return cc(t)=="symbol"?t:t+""}function UY(e,t){if(cc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(cc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function IY(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=Na;if(g==="ScatterChart")O=c,S=k7;else if(g==="BarChart")O=zY(v,c,d,y),S=Dx;else if(v==="radial"){var b=AN(c),w=b.cx,T=b.cy,j=b.radius,P=b.startAngle,A=b.endAngle;O={cx:w,cy:T,startAngle:P,endAngle:A,innerRadius:j,outerRadius:j},S=gD}else O={points:qY(v,c,d)},S=Na;var E=Fs(Fs(Fs(Fs({stroke:"#ccc",pointerEvents:"none"},d),O),ge(x,!1)),{},{payload:f,payloadIndex:h,className:Ee("recharts-tooltip-cursor",x.className)});return te.isValidElement(x)?te.cloneElement(x,E):te.createElement(S,E)}var HY=["item"],GY=["children","className","width","height","style","compact","title","desc"];function eu(e){"@babel/helpers - typeof";return eu=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},eu(e)}function Oo(){return Oo=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},Oo.apply(this,arguments)}function HM(e,t){return XY(e)||YY(e,t)||TN(e,t)||KY()}function KY(){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 YY(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 XY(e){if(Array.isArray(e))return e}function GM(e,t){if(e==null)return{};var n=VY(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 VY(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 FY(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ZY(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 WY(e,t,n){return t&&ZY(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function QY(e,t,n){return t=id(t),JY(e,wN()?Reflect.construct(t,n||[],id(e).constructor):t.apply(e,n))}function JY(e,t){if(t&&(eu(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return eX(e)}function eX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(wN=function(){return!!e})()}function id(e){return id=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},id(e)}function tX(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&&k0(e,t)}function k0(e,t){return k0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},k0(e,t)}function tu(e){return aX(e)||rX(e)||TN(e)||nX()}function nX(){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 TN(e,t){if(e){if(typeof e=="string")return $0(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 $0(e,t)}}function rX(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function aX(e){if(Array.isArray(e))return $0(e)}function $0(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 KM(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 ae(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?KM(Object(n),!0).forEach(function(r){we(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KM(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function we(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=iX(e,"string");return eu(t)=="symbol"?t:t+""}function iX(e,t){if(eu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(eu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var oX={xAxis:["bottom","top"],yAxis:["left","right"]},uX={width:"100%",height:"100%"},jN={x:0,y:0};function Zs(e){return e}var lX=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},cX=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 ae(ae(ae({},o),nt(o.cx,o.cy,f,c)),{},{angle:c,radius:f})}var d=l.coordinate,h=o.angle;return ae(ae(ae({},o),nt(o.cx,o.cy,d,h)),{},{angle:h,radius:d})}return jN},Gd=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(tu(f),tu(h)):f},[]);return c.length>0?c:t&&t.length&&de(o)&&de(l)?t.slice(o,l+1):[]};function MN(e){return e==="number"?[0,"auto"]:void 0}var z0=function(t,n,r,o){var l=t.graphicalItems,c=t.tooltipAxis,f=Gd(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=nf(x,c.dataKey,o)}else g=v&&v[r]||f[r];return g?[].concat(tu(d),[dD(h,g)]):d},[])},YM=function(t,n,r,o){var l=o||{x:t.chartX,y:t.chartY},c=lX(l,r),f=t.orderedTooltipTicks,d=t.tooltipAxis,h=t.tooltipTicks,y=nL(c,f,h,d);if(y>=0&&h){var v=h[y]&&h[y].value,g=z0(t,n,y,v),x=cX(r,f,y,l);return{activeTooltipIndex:y,activeLabel:v,activePayload:g,activeCoordinate:x}}return null},sX=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=oD(y,l);return r.reduce(function(O,S){var b,w=S.type.defaultProps!==void 0?ae(ae({},S.type.defaultProps),S.props):S.props,T=w.type,j=w.dataKey,P=w.allowDataOverflow,A=w.allowDuplicatedCategory,E=w.scale,M=w.ticks,D=w.includeHidden,z=w[c];if(O[z])return O;var G=Gd(t.data,{graphicalItems:o.filter(function(H){var ne,I=c in H.props?H.props[c]:(ne=H.type.defaultProps)===null||ne===void 0?void 0:ne[c];return I===z}),dataStartIndex:d,dataEndIndex:h}),L=G.length,B,X,Q;$Y(w.domain,P,T)&&(B=Vb(w.domain,null,P),x&&(T==="number"||E!=="auto")&&(Q=Ol(G,j,"category")));var Z=MN(T);if(!B||B.length===0){var k,K=(k=w.domain)!==null&&k!==void 0?k:Z;if(j){if(B=Ol(G,j,T),T==="category"&&x){var ee=Fk(B);A&&ee?(X=B,B=Hf(0,L)):A||(B=Gj(K,B,S).reduce(function(H,ne){return H.indexOf(ne)>=0?H:[].concat(tu(H),[ne])},[]))}else if(T==="category")A?B=B.filter(function(H){return H!==""&&!Oe(H)}):B=Gj(K,B,S).reduce(function(H,ne){return H.indexOf(ne)>=0||ne===""||Oe(ne)?H:[].concat(tu(H),[ne])},[]);else if(T==="number"){var ce=uL(G,o.filter(function(H){var ne,I,ue=c in H.props?H.props[c]:(ne=H.type.defaultProps)===null||ne===void 0?void 0:ne[c],he="hide"in H.props?H.props.hide:(I=H.type.defaultProps)===null||I===void 0?void 0:I.hide;return ue===z&&(D||!he)}),j,l,y);ce&&(B=ce)}x&&(T==="number"||E!=="auto")&&(Q=Ol(G,j,"category"))}else x?B=Hf(0,L):f&&f[z]&&f[z].hasStack&&T==="number"?B=g==="expand"?[0,1]:fD(f[z].stackGroups,d,h):B=iD(G,o.filter(function(H){var ne=c in H.props?H.props[c]:H.type.defaultProps[c],I="hide"in H.props?H.props.hide:H.type.defaultProps.hide;return ne===z&&(D||!I)}),T,y,!0);if(T==="number")B=R0(v,B,z,l,M),K&&(B=Vb(K,B,P));else if(T==="category"&&K){var fe=K,$=B.every(function(H){return fe.indexOf(H)>=0});$&&(B=fe)}}return ae(ae({},O),{},we({},z,ae(ae({},w),{},{axisType:l,domain:B,categoricalDomain:Q,duplicateDomain:X,originalDomain:(b=w.domain)!==null&&b!==void 0?b:Z,isCategorical:x,layout:y})))},{})},fX=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=Gd(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:h}),x=g.length,O=oD(y,l),S=-1;return r.reduce(function(b,w){var T=w.type.defaultProps!==void 0?ae(ae({},w.type.defaultProps),w.props):w.props,j=T[c],P=MN("number");if(!b[j]){S++;var A;return O?A=Hf(0,x):f&&f[j]&&f[j].hasStack?(A=fD(f[j].stackGroups,d,h),A=R0(v,A,j,l)):(A=Vb(P,iD(g,r.filter(function(E){var M,D,z=c in E.props?E.props[c]:(M=E.type.defaultProps)===null||M===void 0?void 0:M[c],G="hide"in E.props?E.props.hide:(D=E.type.defaultProps)===null||D===void 0?void 0:D.hide;return z===j&&!G}),"number",y),o.defaultProps.allowDataOverflow),A=R0(v,A,j,l)),ae(ae({},b),{},we({},j,ae(ae({axisType:l},o.defaultProps),{},{hide:!0,orientation:On(oX,"".concat(l,".").concat(S%2),null),domain:A,originalDomain:P,isCategorical:O,layout:y})))}return b},{})},dX=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=Zt(y,l),x={};return g&&g.length?x=sX(t,{axes:g,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h}):c&&c.length&&(x=fX(t,{Axis:l,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h})),x},hX=function(t){var n=ja(t),r=Br(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:ix(r,function(o){return o.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Mf(n,r)}},XM=function(t){var n=t.children,r=t.defaultShowTooltip,o=xn(n,Io),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}},pX=function(t){return!t||!t.length?!1:t.some(function(n){var r=Lr(n&&n.type);return r&&r.indexOf("Bar")>=0})},VM=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"}},vX=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=xn(v,Io),O=xn(v,qn),S=Object.keys(d).reduce(function(A,E){var M=d[E],D=M.orientation;return!M.mirror&&!M.hide?ae(ae({},A),{},we({},D,A[D]+M.width)):A},{left:g.left||0,right:g.right||0}),b=Object.keys(c).reduce(function(A,E){var M=c[E],D=M.orientation;return!M.mirror&&!M.hide?ae(ae({},A),{},we({},D,On(A,"".concat(D))+M.height)):A},{top:g.top||0,bottom:g.bottom||0}),w=ae(ae({},b),S),T=w.bottom;x&&(w.bottom+=x.props.height||Io.defaultProps.height),O&&n&&(w=iL(w,o,r,n));var j=h-w.left-w.right,P=y-w.top-w.bottom;return ae(ae({brushBottom:T},w),{},{width:Math.max(j,0),height:Math.max(P,0)})},yX=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},mc=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,P=T.stackGroups,A=T.offset,E=T.updateId,M=T.dataStartIndex,D=T.dataEndIndex,z=w.barSize,G=w.layout,L=w.barGap,B=w.barCategoryGap,X=w.maxBarSize,Q=VM(G),Z=Q.numericAxisName,k=Q.cateAxisName,K=pX(j),ee=[];return j.forEach(function(ce,fe){var $=Gd(w.data,{graphicalItems:[ce],dataStartIndex:M,dataEndIndex:D}),H=ce.type.defaultProps!==void 0?ae(ae({},ce.type.defaultProps),ce.props):ce.props,ne=H.dataKey,I=H.maxBarSize,ue=H["".concat(Z,"Id")],he=H["".concat(k,"Id")],ye={},Ce=d.reduce(function(Yn,yr){var fu=T["".concat(yr.axisType,"Map")],Lt=H["".concat(yr.axisType,"Id")];fu&&fu[Lt]||yr.axisType==="zAxis"||_i();var bc=fu[Lt];return ae(ae({},Yn),{},we(we({},yr.axisType,bc),"".concat(yr.axisType,"Ticks"),Br(bc)))},ye),se=Ce[k],be=Ce["".concat(k,"Ticks")],Se=P&&P[ue]&&P[ue].hasStack&&yL(ce,P[ue].stackGroups),le=Lr(ce.type).indexOf("Bar")>=0,Ie=Mf(se,be),je=[],rt=K&&rL({barSize:z,stackGroups:P,totalSize:yX(Ce,k)});if(le){var st,Bt,Kn=Oe(I)?X:I,rr=(st=(Bt=Mf(se,be,!0))!==null&&Bt!==void 0?Bt:Kn)!==null&&st!==void 0?st:0;je=aL({barGap:L,barCategoryGap:B,bandSize:rr!==Ie?rr:Ie,sizeList:rt[he],maxBarSize:Kn}),rr!==Ie&&(je=je.map(function(Yn){return ae(ae({},Yn),{},{position:ae(ae({},Yn.position),{},{offset:Yn.position.offset-rr/2})})}))}var Wr=ce&&ce.type&&ce.type.getComposedData;Wr&&ee.push({props:ae(ae({},Wr(ae(ae({},Ce),{},{displayedData:$,props:w,dataKey:ne,item:ce,bandSize:Ie,barPosition:je,offset:A,stackedData:Se,layout:G,dataStartIndex:M,dataEndIndex:D}))),{},we(we(we({key:ce.key||"item-".concat(fe)},Z,Ce[Z]),k,Ce[k]),"animationId",E)),childIndex:l$(ce,w.children),item:ce})}),ee},x=function(w,T){var j=w.props,P=w.dataStartIndex,A=w.dataEndIndex,E=w.updateId;if(!iw({props:j}))return null;var M=j.children,D=j.layout,z=j.stackOffset,G=j.data,L=j.reverseStackOrder,B=VM(D),X=B.numericAxisName,Q=B.cateAxisName,Z=Zt(M,r),k=pL(G,Z,"".concat(X,"Id"),"".concat(Q,"Id"),z,L),K=d.reduce(function(H,ne){var I="".concat(ne.axisType,"Map");return ae(ae({},H),{},we({},I,dX(j,ae(ae({},ne),{},{graphicalItems:Z,stackGroups:ne.axisType===X&&k,dataStartIndex:P,dataEndIndex:A}))))},{}),ee=vX(ae(ae({},K),{},{props:j,graphicalItems:Z}),T==null?void 0:T.legendBBox);Object.keys(K).forEach(function(H){K[H]=y(j,K[H],ee,H.replace("Map",""),n)});var ce=K["".concat(Q,"Map")],fe=hX(ce),$=g(j,ae(ae({},K),{},{dataStartIndex:P,dataEndIndex:A,updateId:E,graphicalItems:Z,stackGroups:k,offset:ee}));return ae(ae({formattedGraphicalItems:$,graphicalItems:Z,offset:ee,stackGroups:k},fe),K)},O=(function(b){function w(T){var j,P,A;return FY(this,w),A=QY(this,w,[T]),we(A,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),we(A,"accessibilityManager",new kY),we(A,"handleLegendBBoxUpdate",function(E){if(E){var M=A.state,D=M.dataStartIndex,z=M.dataEndIndex,G=M.updateId;A.setState(ae({legendBBox:E},x({props:A.props,dataStartIndex:D,dataEndIndex:z,updateId:G},ae(ae({},A.state),{},{legendBBox:E}))))}}),we(A,"handleReceiveSyncEvent",function(E,M,D){if(A.props.syncId===E){if(D===A.eventEmitterSymbol&&typeof A.props.syncMethod!="function")return;A.applySyncEvent(M)}}),we(A,"handleBrushChange",function(E){var M=E.startIndex,D=E.endIndex;if(M!==A.state.dataStartIndex||D!==A.state.dataEndIndex){var z=A.state.updateId;A.setState(function(){return ae({dataStartIndex:M,dataEndIndex:D},x({props:A.props,dataStartIndex:M,dataEndIndex:D,updateId:z},A.state))}),A.triggerSyncEvent({dataStartIndex:M,dataEndIndex:D})}}),we(A,"handleMouseEnter",function(E){var M=A.getMouseInfo(E);if(M){var D=ae(ae({},M),{},{isTooltipActive:!0});A.setState(D),A.triggerSyncEvent(D);var z=A.props.onMouseEnter;Ae(z)&&z(D,E)}}),we(A,"triggeredAfterMouseMove",function(E){var M=A.getMouseInfo(E),D=M?ae(ae({},M),{},{isTooltipActive:!0}):{isTooltipActive:!1};A.setState(D),A.triggerSyncEvent(D);var z=A.props.onMouseMove;Ae(z)&&z(D,E)}),we(A,"handleItemMouseEnter",function(E){A.setState(function(){return{isTooltipActive:!0,activeItem:E,activePayload:E.tooltipPayload,activeCoordinate:E.tooltipPosition||{x:E.cx,y:E.cy}}})}),we(A,"handleItemMouseLeave",function(){A.setState(function(){return{isTooltipActive:!1}})}),we(A,"handleMouseMove",function(E){E.persist(),A.throttleTriggeredAfterMouseMove(E)}),we(A,"handleMouseLeave",function(E){A.throttleTriggeredAfterMouseMove.cancel();var M={isTooltipActive:!1};A.setState(M),A.triggerSyncEvent(M);var D=A.props.onMouseLeave;Ae(D)&&D(M,E)}),we(A,"handleOuterEvent",function(E){var M=u$(E),D=On(A.props,"".concat(M));if(M&&Ae(D)){var z,G;/.*touch.*/i.test(M)?G=A.getMouseInfo(E.changedTouches[0]):G=A.getMouseInfo(E),D((z=G)!==null&&z!==void 0?z:{},E)}}),we(A,"handleClick",function(E){var M=A.getMouseInfo(E);if(M){var D=ae(ae({},M),{},{isTooltipActive:!0});A.setState(D),A.triggerSyncEvent(D);var z=A.props.onClick;Ae(z)&&z(D,E)}}),we(A,"handleMouseDown",function(E){var M=A.props.onMouseDown;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"handleMouseUp",function(E){var M=A.props.onMouseUp;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"handleTouchMove",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.throttleTriggeredAfterMouseMove(E.changedTouches[0])}),we(A,"handleTouchStart",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseDown(E.changedTouches[0])}),we(A,"handleTouchEnd",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseUp(E.changedTouches[0])}),we(A,"handleDoubleClick",function(E){var M=A.props.onDoubleClick;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"handleContextMenu",function(E){var M=A.props.onContextMenu;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"triggerSyncEvent",function(E){A.props.syncId!==void 0&&cb.emit(sb,A.props.syncId,E,A.eventEmitterSymbol)}),we(A,"applySyncEvent",function(E){var M=A.props,D=M.layout,z=M.syncMethod,G=A.state.updateId,L=E.dataStartIndex,B=E.dataEndIndex;if(E.dataStartIndex!==void 0||E.dataEndIndex!==void 0)A.setState(ae({dataStartIndex:L,dataEndIndex:B},x({props:A.props,dataStartIndex:L,dataEndIndex:B,updateId:G},A.state)));else if(E.activeTooltipIndex!==void 0){var X=E.chartX,Q=E.chartY,Z=E.activeTooltipIndex,k=A.state,K=k.offset,ee=k.tooltipTicks;if(!K)return;if(typeof z=="function")Z=z(ee,E);else if(z==="value"){Z=-1;for(var ce=0;ce<ee.length;ce++)if(ee[ce].value===E.activeLabel){Z=ce;break}}var fe=ae(ae({},K),{},{x:K.left,y:K.top}),$=Math.min(X,fe.x+fe.width),H=Math.min(Q,fe.y+fe.height),ne=ee[Z]&&ee[Z].value,I=z0(A.state,A.props.data,Z),ue=ee[Z]?{x:D==="horizontal"?ee[Z].coordinate:$,y:D==="horizontal"?H:ee[Z].coordinate}:jN;A.setState(ae(ae({},E),{},{activeLabel:ne,activeCoordinate:ue,activePayload:I,activeTooltipIndex:Z}))}else A.setState(E)}),we(A,"renderCursor",function(E){var M,D=A.state,z=D.isTooltipActive,G=D.activeCoordinate,L=D.activePayload,B=D.offset,X=D.activeTooltipIndex,Q=D.tooltipAxisBandSize,Z=A.getTooltipEventType(),k=(M=E.props.active)!==null&&M!==void 0?M:z,K=A.props.layout,ee=E.key||"_recharts-cursor";return N.createElement(IY,{key:ee,activeCoordinate:G,activePayload:L,activeTooltipIndex:X,chartName:n,element:E,isActive:k,layout:K,offset:B,tooltipAxisBandSize:Q,tooltipEventType:Z})}),we(A,"renderPolarAxis",function(E,M,D){var z=On(E,"type.axisType"),G=On(A.state,"".concat(z,"Map")),L=E.type.defaultProps,B=L!==void 0?ae(ae({},L),E.props):E.props,X=G&&G[B["".concat(z,"Id")]];return te.cloneElement(E,ae(ae({},X),{},{className:Ee(z,X.className),key:E.key||"".concat(M,"-").concat(D),ticks:Br(X,!0)}))}),we(A,"renderPolarGrid",function(E){var M=E.props,D=M.radialLines,z=M.polarAngles,G=M.polarRadius,L=A.state,B=L.radiusAxisMap,X=L.angleAxisMap,Q=ja(B),Z=ja(X),k=Z.cx,K=Z.cy,ee=Z.innerRadius,ce=Z.outerRadius;return te.cloneElement(E,{polarAngles:Array.isArray(z)?z:Br(Z,!0).map(function(fe){return fe.coordinate}),polarRadius:Array.isArray(G)?G:Br(Q,!0).map(function(fe){return fe.coordinate}),cx:k,cy:K,innerRadius:ee,outerRadius:ce,key:E.key||"polar-grid",radialLines:D})}),we(A,"renderLegend",function(){var E=A.state.formattedGraphicalItems,M=A.props,D=M.children,z=M.width,G=M.height,L=A.props.margin||{},B=z-(L.left||0)-(L.right||0),X=rD({children:D,formattedGraphicalItems:E,legendWidth:B,legendContent:h});if(!X)return null;var Q=X.item,Z=GM(X,HY);return te.cloneElement(Q,ae(ae({},Z),{},{chartWidth:z,chartHeight:G,margin:L,onBBoxUpdate:A.handleLegendBBoxUpdate}))}),we(A,"renderTooltip",function(){var E,M=A.props,D=M.children,z=M.accessibilityLayer,G=xn(D,Gt);if(!G)return null;var L=A.state,B=L.isTooltipActive,X=L.activeCoordinate,Q=L.activePayload,Z=L.activeLabel,k=L.offset,K=(E=G.props.active)!==null&&E!==void 0?E:B;return te.cloneElement(G,{viewBox:ae(ae({},k),{},{x:k.left,y:k.top}),active:K,label:Z,payload:K?Q:[],coordinate:X,accessibilityLayer:z})}),we(A,"renderBrush",function(E){var M=A.props,D=M.margin,z=M.data,G=A.state,L=G.offset,B=G.dataStartIndex,X=G.dataEndIndex,Q=G.updateId;return te.cloneElement(E,{key:E.key||"_recharts-brush",onChange:Ks(A.handleBrushChange,E.props.onChange),data:z,x:de(E.props.x)?E.props.x:L.left,y:de(E.props.y)?E.props.y:L.top+L.height+L.brushBottom-(D.bottom||0),width:de(E.props.width)?E.props.width:L.width,startIndex:B,endIndex:X,updateId:"brush-".concat(Q)})}),we(A,"renderReferenceElement",function(E,M,D){if(!E)return null;var z=A,G=z.clipPathId,L=A.state,B=L.xAxisMap,X=L.yAxisMap,Q=L.offset,Z=E.type.defaultProps||{},k=E.props,K=k.xAxisId,ee=K===void 0?Z.xAxisId:K,ce=k.yAxisId,fe=ce===void 0?Z.yAxisId:ce;return te.cloneElement(E,{key:E.key||"".concat(M,"-").concat(D),xAxis:B[ee],yAxis:X[fe],viewBox:{x:Q.left,y:Q.top,width:Q.width,height:Q.height},clipPathId:G})}),we(A,"renderActivePoints",function(E){var M=E.item,D=E.activePoint,z=E.basePoint,G=E.childIndex,L=E.isRange,B=[],X=M.props.key,Q=M.item.type.defaultProps!==void 0?ae(ae({},M.item.type.defaultProps),M.item.props):M.item.props,Z=Q.activeDot,k=Q.dataKey,K=ae(ae({index:G,dataKey:k,cx:D.x,cy:D.y,r:4,fill:Cx(M.item),strokeWidth:2,stroke:"#fff",payload:D.payload,value:D.value},ge(Z,!1)),rf(Z));return B.push(w.renderActiveDot(Z,K,"".concat(X,"-activePoint-").concat(G))),z?B.push(w.renderActiveDot(Z,ae(ae({},K),{},{cx:z.x,cy:z.y}),"".concat(X,"-basePoint-").concat(G))):L&&B.push(null),B}),we(A,"renderGraphicChild",function(E,M,D){var z=A.filterFormatItem(E,M,D);if(!z)return null;var G=A.getTooltipEventType(),L=A.state,B=L.isTooltipActive,X=L.tooltipAxis,Q=L.activeTooltipIndex,Z=L.activeLabel,k=A.props.children,K=xn(k,Gt),ee=z.props,ce=ee.points,fe=ee.isRange,$=ee.baseLine,H=z.item.type.defaultProps!==void 0?ae(ae({},z.item.type.defaultProps),z.item.props):z.item.props,ne=H.activeDot,I=H.hide,ue=H.activeBar,he=H.activeShape,ye=!!(!I&&B&&K&&(ne||ue||he)),Ce={};G!=="axis"&&K&&K.props.trigger==="click"?Ce={onClick:Ks(A.handleItemMouseEnter,E.props.onClick)}:G!=="axis"&&(Ce={onMouseLeave:Ks(A.handleItemMouseLeave,E.props.onMouseLeave),onMouseEnter:Ks(A.handleItemMouseEnter,E.props.onMouseEnter)});var se=te.cloneElement(E,ae(ae({},z.props),Ce));function be(yr){return typeof X.dataKey=="function"?X.dataKey(yr.payload):null}if(ye)if(Q>=0){var Se,le;if(X.dataKey&&!X.allowDuplicatedCategory){var Ie=typeof X.dataKey=="function"?be:"payload.".concat(X.dataKey.toString());Se=nf(ce,Ie,Z),le=fe&&$&&nf($,Ie,Z)}else Se=ce==null?void 0:ce[Q],le=fe&&$&&$[Q];if(he||ue){var je=E.props.activeIndex!==void 0?E.props.activeIndex:Q;return[te.cloneElement(E,ae(ae(ae({},z.props),Ce),{},{activeIndex:je})),null,null]}if(!Oe(Se))return[se].concat(tu(A.renderActivePoints({item:z,activePoint:Se,basePoint:le,childIndex:Q,isRange:fe})))}else{var rt,st=(rt=A.getItemByXY(A.state.activeCoordinate))!==null&&rt!==void 0?rt:{graphicalItem:se},Bt=st.graphicalItem,Kn=Bt.item,rr=Kn===void 0?E:Kn,Wr=Bt.childIndex,Yn=ae(ae(ae({},z.props),Ce),{},{activeIndex:Wr});return[te.cloneElement(rr,Yn),null,null]}return fe?[se,null,null]:[se,null]}),we(A,"renderCustomized",function(E,M,D){return te.cloneElement(E,ae(ae({key:"recharts-customized-".concat(D)},A.props),A.state))}),we(A,"renderMap",{CartesianGrid:{handler:Zs,once:!0},ReferenceArea:{handler:A.renderReferenceElement},ReferenceLine:{handler:Zs},ReferenceDot:{handler:A.renderReferenceElement},XAxis:{handler:Zs},YAxis:{handler:Zs},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:za("recharts"),"-clip"),A.throttleTriggeredAfterMouseMove=rC(A.triggeredAfterMouseMove,(P=T.throttleDelay)!==null&&P!==void 0?P:1e3/60),A.state={},A}return tX(w,b),WY(w,[{key:"componentDidMount",value:function(){var j,P;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(j=this.props.margin.left)!==null&&j!==void 0?j:0,top:(P=this.props.margin.top)!==null&&P!==void 0?P:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var j=this.props,P=j.children,A=j.data,E=j.height,M=j.layout,D=xn(P,Gt);if(D){var z=D.props.defaultIndex;if(!(typeof z!="number"||z<0||z>this.state.tooltipTicks.length-1)){var G=this.state.tooltipTicks[z]&&this.state.tooltipTicks[z].value,L=z0(this.state,A,z,G),B=this.state.tooltipTicks[z].coordinate,X=(this.state.offset.top+E)/2,Q=M==="horizontal",Z=Q?{x:B,y:X}:{y:B,x:X},k=this.state.formattedGraphicalItems.find(function(ee){var ce=ee.item;return ce.type.name==="Scatter"});k&&(Z=ae(ae({},Z),k.props.points[z].tooltipPosition),L=k.props.points[z].tooltipPayload);var K={activeTooltipIndex:z,isTooltipActive:!0,activeLabel:G,activePayload:L,activeCoordinate:Z};this.setState(K),this.renderCursor(D),this.accessibilityManager.setIndex(z)}}}},{key:"getSnapshotBeforeUpdate",value:function(j,P){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==P.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){yb([xn(j.children,Gt)],[xn(this.props.children,Gt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var j=xn(this.props.children,Gt);if(j&&typeof j.props.shared=="boolean"){var P=j.props.shared?"axis":"item";return f.indexOf(P)>=0?P:l}return l}},{key:"getMouseInfo",value:function(j){if(!this.container)return null;var P=this.container,A=P.getBoundingClientRect(),E=Vq(A),M={chartX:Math.round(j.pageX-E.left),chartY:Math.round(j.pageY-E.top)},D=A.width/P.offsetWidth||1,z=this.inRange(M.chartX,M.chartY,D);if(!z)return null;var G=this.state,L=G.xAxisMap,B=G.yAxisMap,X=this.getTooltipEventType(),Q=YM(this.state,this.props.data,this.props.layout,z);if(X!=="axis"&&L&&B){var Z=ja(L).scale,k=ja(B).scale,K=Z&&Z.invert?Z.invert(M.chartX):null,ee=k&&k.invert?k.invert(M.chartY):null;return ae(ae({},M),{},{xValue:K,yValue:ee},Q)}return Q?ae(ae({},M),Q):null}},{key:"inRange",value:function(j,P){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,E=this.props.layout,M=j/A,D=P/A;if(E==="horizontal"||E==="vertical"){var z=this.state.offset,G=M>=z.left&&M<=z.left+z.width&&D>=z.top&&D<=z.top+z.height;return G?{x:M,y:D}:null}var L=this.state,B=L.angleAxisMap,X=L.radiusAxisMap;if(B&&X){var Q=ja(B);return Xj({x:M,y:D},Q)}return null}},{key:"parseEventsOfWrapper",value:function(){var j=this.props.children,P=this.getTooltipEventType(),A=xn(j,Gt),E={};A&&P==="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 M=rf(this.props,this.handleOuterEvent);return ae(ae({},M),E)}},{key:"addListener",value:function(){cb.on(sb,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){cb.removeListener(sb,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(j,P,A){for(var E=this.state.formattedGraphicalItems,M=0,D=E.length;M<D;M++){var z=E[M];if(z.item===j||z.props.key===j.key||P===Lr(z.item.type)&&A===z.childIndex)return z}return null}},{key:"renderClipPath",value:function(){var j=this.clipPathId,P=this.state.offset,A=P.left,E=P.top,M=P.height,D=P.width;return N.createElement("defs",null,N.createElement("clipPath",{id:j},N.createElement("rect",{x:A,y:E,height:M,width:D})))}},{key:"getXScales",value:function(){var j=this.state.xAxisMap;return j?Object.entries(j).reduce(function(P,A){var E=HM(A,2),M=E[0],D=E[1];return ae(ae({},P),{},we({},M,D.scale))},{}):null}},{key:"getYScales",value:function(){var j=this.state.yAxisMap;return j?Object.entries(j).reduce(function(P,A){var E=HM(A,2),M=E[0],D=E[1];return ae(ae({},P),{},we({},M,D.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(j){var P;return(P=this.state.xAxisMap)===null||P===void 0||(P=P[j])===null||P===void 0?void 0:P.scale}},{key:"getYScaleByAxisId",value:function(j){var P;return(P=this.state.yAxisMap)===null||P===void 0||(P=P[j])===null||P===void 0?void 0:P.scale}},{key:"getItemByXY",value:function(j){var P=this.state,A=P.formattedGraphicalItems,E=P.activeItem;if(A&&A.length)for(var M=0,D=A.length;M<D;M++){var z=A[M],G=z.props,L=z.item,B=L.type.defaultProps!==void 0?ae(ae({},L.type.defaultProps),L.props):L.props,X=Lr(L.type);if(X==="Bar"){var Q=(G.data||[]).find(function(ee){return v7(j,ee)});if(Q)return{graphicalItem:z,payload:Q}}else if(X==="RadialBar"){var Z=(G.data||[]).find(function(ee){return Xj(j,ee)});if(Z)return{graphicalItem:z,payload:Z}}else if(Rd(z,E)||kd(z,E)||rc(z,E)){var k=qH({graphicalItem:z,activeTooltipItem:E,itemData:B.data}),K=B.activeIndex===void 0?k:B.activeIndex;return{graphicalItem:ae(ae({},z),{},{childIndex:K}),payload:rc(z,E)?B.data[k]:z.props.data[k]}}}return null}},{key:"render",value:function(){var j=this;if(!iw(this))return null;var P=this.props,A=P.children,E=P.className,M=P.width,D=P.height,z=P.style,G=P.compact,L=P.title,B=P.desc,X=GM(P,GY),Q=ge(X,!1);if(G)return N.createElement(xM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},N.createElement(gb,Oo({},Q,{width:M,height:D,title:L,desc:B}),this.renderClipPath(),uw(A,this.renderMap)));if(this.props.accessibilityLayer){var Z,k;Q.tabIndex=(Z=this.props.tabIndex)!==null&&Z!==void 0?Z:0,Q.role=(k=this.props.role)!==null&&k!==void 0?k:"application",Q.onKeyDown=function(ee){j.accessibilityManager.keyboardEvent(ee)},Q.onFocus=function(){j.accessibilityManager.focus()}}var K=this.parseEventsOfWrapper();return N.createElement(xM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},N.createElement("div",Oo({className:Ee("recharts-wrapper",E),style:ae({position:"relative",cursor:"default",width:M,height:D},z)},K,{ref:function(ce){j.container=ce}}),N.createElement(gb,Oo({},Q,{width:M,height:D,title:L,desc:B,style:uX}),this.renderClipPath(),uw(A,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])})(te.Component);we(O,"displayName",n),we(O,"defaultProps",ae({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},v)),we(O,"getDerivedStateFromProps",function(b,w){var T=b.dataKey,j=b.data,P=b.children,A=b.width,E=b.height,M=b.layout,D=b.stackOffset,z=b.margin,G=w.dataStartIndex,L=w.dataEndIndex;if(w.updateId===void 0){var B=XM(b);return ae(ae(ae({},B),{},{updateId:0},x(ae(ae({props:b},B),{},{updateId:0}),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:M,prevStackOffset:D,prevMargin:z,prevChildren:P})}if(T!==w.prevDataKey||j!==w.prevData||A!==w.prevWidth||E!==w.prevHeight||M!==w.prevLayout||D!==w.prevStackOffset||!_o(z,w.prevMargin)){var X=XM(b),Q={chartX:w.chartX,chartY:w.chartY,isTooltipActive:w.isTooltipActive},Z=ae(ae({},YM(w,j,M)),{},{updateId:w.updateId+1}),k=ae(ae(ae({},X),Q),Z);return ae(ae(ae({},k),x(ae({props:b},k),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:M,prevStackOffset:D,prevMargin:z,prevChildren:P})}if(!yb(P,w.prevChildren)){var K,ee,ce,fe,$=xn(P,Io),H=$&&(K=(ee=$.props)===null||ee===void 0?void 0:ee.startIndex)!==null&&K!==void 0?K:G,ne=$&&(ce=(fe=$.props)===null||fe===void 0?void 0:fe.endIndex)!==null&&ce!==void 0?ce:L,I=H!==G||ne!==L,ue=!Oe(j),he=ue&&!I?w.updateId:w.updateId+1;return ae(ae({updateId:he},x(ae(ae({props:b},w),{},{updateId:he,dataStartIndex:H,dataEndIndex:ne}),w)),{},{prevChildren:P,dataStartIndex:H,dataEndIndex:ne})}return null}),we(O,"renderActiveDot",function(b,w,T){var j;return te.isValidElement(b)?j=te.cloneElement(b,w):Ae(b)?j=b(w):j=N.createElement(yc,w),N.createElement(Pe,{className:"recharts-active-dot",key:T},j)});var S=te.forwardRef(function(w,T){return N.createElement(O,Oo({},w,{ref:T}))});return S.displayName=O.displayName,S},PN=mc({chartName:"LineChart",GraphicalChild:cr,axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on}],formatAxisMap:zd}),FM=mc({chartName:"BarChart",GraphicalChild:Kr,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on}],formatAxisMap:zd}),mX=mc({chartName:"PieChart",GraphicalChild:Zr,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:Nd},{axisType:"radiusAxis",AxisComp:Cd}],formatAxisMap:TL,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}}),gX=mc({chartName:"AreaChart",GraphicalChild:Un,axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on}],formatAxisMap:zd}),bX=mc({chartName:"ComposedChart",GraphicalChild:[cr,Un,Kr,Hd],axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on},{axisType:"zAxis",AxisComp:Id}],formatAxisMap:zd});const gc="/api";async function xX(){const e=await fetch(`${gc}/agents`);if(!e.ok)throw new Error(`Failed to fetch agents: ${e.status} ${e.statusText}`);return e.json()}function Kd(e,t){const n=[];if(e!=="claude"&&n.push(`agent=${e}`),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 SX(e="claude"){const t=await fetch(`${gc}/daily${Kd(e)}`);if(!t.ok)throw new Error(`Failed to fetch daily data: ${t.status} ${t.statusText}`);return t.json()}async function OX(e="claude"){const t=await fetch(`${gc}/projects${Kd(e)}`);if(!t.ok)throw new Error(`Failed to fetch projects data: ${t.status} ${t.statusText}`);return t.json()}async function _X(e="claude",t=""){const n=await fetch(`${gc}/blocks${Kd(e,t?{project:t}:void 0)}`);if(!n.ok)throw new Error(`Failed to fetch blocks data: ${n.status} ${n.statusText}`);return n.json()}async function AX(e="claude",t=""){const n=await fetch(`${gc}/analytics${Kd(e,t?{project:t}:void 0)}`);if(!n.ok)throw new Error(`Failed to fetch analytics: ${n.status} ${n.statusText}`);return n.json()}function Ws(e){const[t,n]=te.useState(null),[r,o]=te.useState(!0),[l,c]=te.useState(null),f=te.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 te.useEffect(()=>{f()},[f]),{data:t,loading:r,error:l,refetch:f}}function Qs(e,t){const[n,r]=te.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 te.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(n))}catch(o){console.warn(`Error setting localStorage key "${e}":`,o)}},[e,n]),[n,r]}function It(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(0)+"K":e.toLocaleString("en-US",{maximumFractionDigits:0})}function _a(e){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}function Js(e){return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function db(e){return e.toFixed(1)+"%"}function CN(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 wX(e){return e/1e6*3*(1-.1)}const ZM={"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 hb(e){if(ZM[e])return ZM[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 Aa=["#4f46e5","#10b981","#f59e0b","#ec4899","#0ea5e9","#8b5cf6","#ef4444","#14b8a6"];function WM({title:e,subtitle:t,children:n,className:r=""}){return R.jsxs("div",{className:`bg-white rounded-2xl p-5 shadow-[0_1px_3px_rgba(120,113,108,0.06)] ${r}`,children:[R.jsxs("div",{className:"mb-4",children:[R.jsx("h3",{className:"text-base font-bold text-stone-800",children:e}),t&&R.jsx("p",{className:"text-[12px] text-stone-400 mt-0.5",children:t})]}),n]})}function ef(e){return new Date(e+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"})}function QM(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString()}const TX=[{key:"7d",days:7},{key:"30d",days:30},{key:"60d",days:60},{key:"all",days:0}];function JM(e,t){if(t==="all")return e;const n=TX.find(l=>l.key===t),r=n?n.days:30,o=new Date;return o.setDate(o.getDate()-r),e.filter(l=>new Date(l.date)>=o)}function EX({analytics:e,timeRange:t}){const{codeChangeTrend:n,toolCallTrend:r}=e,o=te.useMemo(()=>JM(n,t),[n,t]),l=te.useMemo(()=>JM(r,t),[r,t]),c=te.useMemo(()=>{const f=new Map;for(const d of r)for(const[h,y]of Object.entries(d))h!=="date"&&f.set(h,(f.get(h)||0)+y);return[...f.entries()].sort((d,h)=>h[1]-d[1]).slice(0,6).map(([d])=>d)},[r]);return te.useMemo(()=>{if(o.length===0)return{files:0,added:0,deleted:0,net:0};const f=o.length;return{files:Math.round(o.reduce((d,h)=>d+h.filesModified,0)/f),added:Math.round(o.reduce((d,h)=>d+h.linesAdded,0)/f),deleted:Math.round(o.reduce((d,h)=>d+h.linesDeleted,0)/f),net:Math.round(o.reduce((d,h)=>d+h.netChange,0)/f)}},[o]),R.jsx(R.Fragment,{children:R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[R.jsx(WM,{title:"Code Change Trend",subtitle:"Lines added, deleted, and net change",children:o.length>0?R.jsx(si,{width:"100%",height:240,children:R.jsxs(gX,{data:o,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tickFormatter:ef,tick:{fill:"#78716c",fontSize:10},interval:"preserveStartEnd"}),R.jsx(on,{tickFormatter:f=>QM(f),tick:{fill:"#78716c",fontSize:10},width:50}),R.jsx(Gt,{content:({active:f,payload:d,label:h})=>!f||!(d!=null&&d.length)?null:R.jsxs("div",{className:"bg-white rounded-lg shadow-lg border border-stone-200 px-3 py-2 text-[12px]",children:[R.jsx("p",{className:"font-semibold text-stone-700 mb-1",children:ef(h)}),d.map((y,v)=>R.jsxs("p",{style:{color:y.color},children:[y.name,": ",QM(y.value)]},v))]})}),R.jsx(Un,{type:"monotone",dataKey:"linesAdded",name:"Added",stroke:Aa[1],fill:Aa[1],fillOpacity:.15,strokeWidth:2}),R.jsx(Un,{type:"monotone",dataKey:"linesDeleted",name:"Deleted",stroke:Aa[3],fill:Aa[3],fillOpacity:.08,strokeWidth:2}),R.jsx(Un,{type:"monotone",dataKey:"netChange",name:"Net",stroke:Aa[0],fill:Aa[0],fillOpacity:.05,strokeWidth:2,strokeDasharray:"4 2"}),R.jsx(qn,{iconType:"line",wrapperStyle:{fontSize:11,paddingTop:4}})]})}):R.jsx("p",{className:"text-stone-400 text-[13px] py-8 text-center",children:"No code change data available"})}),R.jsx(WM,{title:"Tool Call Trend",subtitle:"Daily usage frequency by tool",children:l.length>0?R.jsx(si,{width:"100%",height:240,children:R.jsxs(PN,{data:l,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tickFormatter:ef,tick:{fill:"#78716c",fontSize:10},interval:"preserveStartEnd"}),R.jsx(on,{tick:{fill:"#78716c",fontSize:10},width:40}),R.jsx(Gt,{content:({active:f,payload:d,label:h})=>!f||!(d!=null&&d.length)?null:R.jsxs("div",{className:"bg-white rounded-lg shadow-lg border border-stone-200 px-3 py-2 text-[12px]",children:[R.jsx("p",{className:"font-semibold text-stone-700 mb-1",children:ef(h)}),d.map((y,v)=>R.jsxs("p",{style:{color:y.color},children:[y.name,": ",y.value]},v))]})}),c.map((f,d)=>R.jsx(cr,{type:"monotone",dataKey:f,stroke:Aa[d%Aa.length],strokeWidth:2,dot:!1},f)),R.jsx(qn,{iconType:"line",wrapperStyle:{fontSize:11,paddingTop:4}})]})}):R.jsx("p",{className:"text-stone-400 text-[13px] py-8 text-center",children:"No tool call trend data available"})})]})})}const an=["#4f46e5","#10b981","#f59e0b","#ec4899","#0ea5e9","#8b5cf6","#ef4444","#14b8a6"],eP={"Opus 4.6":{input:"15.00",cache:"1.50",output:"75.00"},"Sonnet 4.6":{input:"3.00",cache:"0.30",output:"15.00"},"Sonnet 4.5":{input:"3.00",cache:"0.30",output:"15.00"},"Haiku 4.5":{input:"0.80",cache:"0.08",output:"4.00"},"Opus 3":{input:"15.00",cache:"1.50",output:"75.00"},"Sonnet 3.5":{input:"3.00",cache:"0.30",output:"15.00"},"Haiku 3.5":{input:"0.80",cache:"0.08",output:"4.00"},"Haiku 3":{input:"0.25",cache:"0.03",output:"1.25"},default:{input:"3.00",cache:"0.30",output:"15.00"}},q0=[{key:"7d",label:"7D",days:7},{key:"30d",label:"30D",days:30},{key:"60d",label:"60D",days:60},{key:"all",label:"ALL",days:0}];function vl({label:e,value:t,sub:n,insight:r,accent:o}){return R.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:[R.jsx("span",{className:"text-[12px] font-medium text-stone-400",children:e}),R.jsx("span",{className:`text-3xl font-extrabold tracking-tighter font-mono mt-1 ${o?"text-indigo-600":"text-stone-900"}`,children:t}),n&&R.jsx("span",{className:"text-xs font-medium text-stone-400 mt-0.5",children:n}),r&&R.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 wa({title:e,subtitle:t,children:n,className:r=""}){return R.jsxs("div",{className:`flex flex-col rounded-2xl bg-white p-5 shadow-[0_1px_3px_rgba(120,113,108,0.06)] ${r}`,children:[R.jsxs("div",{className:"mb-5",children:[R.jsx("h3",{className:"text-[15px] font-semibold text-stone-900 tracking-tight",children:e}),t&&R.jsx("p",{className:"text-[13px] font-medium text-stone-400 mt-1",children:t})]}),R.jsx("div",{className:"flex-1 min-h-0",children:n})]})}function yl({active:e,payload:t,label:n,fmt:r=It}){return!e||!(t!=null&&t.length)?null:R.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&&R.jsx("div",{className:"text-stone-400 mb-1.5 font-medium",children:n}),t.map((o,l)=>R.jsxs("div",{className:"flex items-center justify-between gap-5",children:[R.jsxs("span",{className:"flex items-center gap-1.5",children:[R.jsx("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:o.color}}),o.name]}),R.jsx("span",{className:"font-mono text-stone-700",children:r(o.value)})]},l))]})}function tP({options:e,value:t,onChange:n}){return R.jsx("div",{className:"flex items-center gap-0.5 p-0.5 bg-stone-100 rounded-lg",children:e.map(r=>R.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 jX({projects:e,value:t,onChange:n}){return R.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:[R.jsx("option",{value:"",children:"All Projects"}),e.map(r=>R.jsx("option",{value:r,children:CN(r,e)},r))]})}function od(e,t){if(t==="all")return e;const n=q0.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 MX(e,t,n){if(!t){const r={};for(const o of Object.values(e))for(const l of od(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 od(e[t]||[],n)}function PX(){const[e,t]=te.useState(null),[n,r]=te.useState(!0),[o,l]=Qs("dashboard_agent","claude"),c=o==="codex",[f,d]=Qs("dashboard_timeRange","30d"),[h,y]=Qs("dashboard_project",""),[v,g]=te.useState(!1);te.useEffect(()=>{if(!v)return;const I=()=>g(!1);return document.addEventListener("click",I),()=>document.removeEventListener("click",I)},[v]),te.useEffect(()=>{xX().then(I=>{t(I),I.available.length>0&&!I.available.includes(o)&&l(I.default)}).catch(()=>{}).finally(()=>r(!1))},[]);const x=((e==null?void 0:e.available.length)??0)>1,O=Ws(te.useCallback(()=>SX(o),[o])),S=Ws(te.useCallback(()=>OX(o),[o])),b=Ws(te.useCallback(()=>_X(o,h),[o,h])),w=Ws(te.useCallback(()=>AX(o,h),[o,h])),[T,j]=Qs("dashboard_metric","tokens"),P=I=>{l(I),y("")},A=O.loading&&!O.data,E=O.error&&!O.data,M=T==="tokens",D=M?"tokens":"cost",z=te.useMemo(()=>{var I;return Object.keys(((I=S.data)==null?void 0:I.projects)||{}).sort()},[S.data]),G=te.useMemo(()=>S.data?MX(S.data.projects,h,f):O.data?od(O.data.daily,f):[],[S.data,O.data,h,f]),L=te.useMemo(()=>G.reduce((I,ue)=>({inputTokens:I.inputTokens+ue.inputTokens,outputTokens:I.outputTokens+ue.outputTokens,cacheCreationTokens:I.cacheCreationTokens+ue.cacheCreationTokens,cacheReadTokens:I.cacheReadTokens+ue.cacheReadTokens,totalTokens:I.totalTokens+ue.totalTokens,totalCost:I.totalCost+ue.totalCost}),{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,totalTokens:0,totalCost:0}),[G]),B=te.useMemo(()=>G.filter(I=>I.totalTokens>0).length,[G]),X=te.useMemo(()=>{if(!w.data||w.data.codeChangeTrend.length===0)return null;const I=w.data.codeChangeTrend,ue=I.reduce((he,ye)=>he+ye.linesAdded+ye.linesDeleted,0);return Math.round(ue/I.length)},[w.data]),Q=L.inputTokens>0?L.cacheReadTokens/(L.cacheReadTokens+L.inputTokens)*100:0,Z=L.inputTokens>0?L.outputTokens/L.inputTokens*100:0,k=te.useMemo(()=>({tokensSaved:L.cacheReadTokens,costSaved:wX(L.cacheReadTokens),hitRate:Q}),[L.cacheReadTokens,Q]),K=te.useMemo(()=>{const I={};for(const ue of G)for(const he of ue.modelBreakdowns){const ye=hb(he.modelName);I[ye]||(I[ye]={tokens:0,cost:0,input:0,output:0,cacheRead:0}),I[ye].tokens+=he.inputTokens+he.outputTokens,I[ye].cost+=he.cost,I[ye].input+=he.inputTokens,I[ye].output+=he.outputTokens,I[ye].cacheRead+=he.cacheReadTokens}return Object.entries(I).map(([ue,he])=>({name:ue,...he})).sort((ue,he)=>he.tokens-ue.tokens)},[G]),ee=te.useMemo(()=>G.map(I=>{const ue={date:Js(I.date)};for(const he of I.modelBreakdowns){const ye=hb(he.modelName);ue[ye]=(ue[ye]||0)+(M?he.inputTokens+he.outputTokens:he.cost)}return ue}),[G,M]),ce=te.useMemo(()=>S.data?Object.entries(S.data.projects).map(([I,ue])=>{const he=od(ue,f);return{name:CN(I,z),full:I,tokens:he.reduce((ye,Ce)=>ye+Ce.totalTokens,0),cost:he.reduce((ye,Ce)=>ye+Ce.totalCost,0)}}).filter(I=>I.tokens>0).sort((I,ue)=>ue.tokens-I.tokens):[],[S.data,f]),fe=te.useMemo(()=>G.map(I=>({date:Js(I.date),cacheRead:I.cacheReadTokens,input:I.inputTokens,hitRate:I.inputTokens>0?I.cacheReadTokens/(I.cacheReadTokens+I.inputTokens)*100:0})),[G]),$=te.useMemo(()=>G.map(I=>({date:Js(I.date),output:I.outputTokens,input:I.inputTokens,ratio:I.inputTokens>0?I.outputTokens/I.inputTokens*100:0})),[G]),H=te.useMemo(()=>{if(!b.data)return null;const I=new Date,ue=I.getFullYear()+"-"+String(I.getMonth()+1).padStart(2,"0")+"-"+String(I.getDate()).padStart(2,"0");let he;if(f==="all")he=new Date(0);else{const be=q0.find(le=>le.key===f),Se=be?be.days-1:29;he=new Date(I.getFullYear(),I.getMonth(),I.getDate()-Se)}const ye=b.data.blocks.filter(be=>new Date(be.startTime)>=he),Ce=Array(7).fill(0).map(()=>Array(24).fill(0));let se=0;for(const be of ye){if(be.isGap)continue;const Se=new Date(be.startTime),le=Se.getDay(),Ie=Se.getHours();if(Se.getFullYear()+"-"+String(Se.getMonth()+1).padStart(2,"0")+"-"+String(Se.getDate()).padStart(2,"0")===ue&&Ie>I.getHours())continue;const rt=M?be.totalTokens:be.costUSD;Ce[le][Ie]+=rt,Ce[le][Ie]>se&&(se=Ce[le][Ie])}return{grid:Ce,maxVal:se}},[b.data,f,M]),ne=()=>R.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:[R.jsxs("button",{onClick:()=>P("claude"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${o==="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:[R.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"Claude Code"]}),R.jsxs("button",{onClick:()=>P("codex"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${o==="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:[R.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"})}),"Codex"]}),R.jsxs("button",{onClick:()=>P("openclaw"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${o==="openclaw"?"bg-white text-orange-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:[R.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"})}),"OpenClaw"]})]});return A?R.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[R.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[R.jsx("div",{className:"flex flex-col gap-1.5",children:R.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"})}),x&&ne()]}),R.jsx("div",{className:"skeleton h-8 w-48 rounded-lg mb-2"}),R.jsx("div",{className:"skeleton h-4 w-72 rounded-lg mb-8"}),R.jsx("div",{className:"grid grid-cols-3 md:grid-cols-6 gap-3 mb-6",children:[...Array(6)].map((I,ue)=>R.jsx("div",{className:"skeleton h-20 rounded-2xl"},ue))}),R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[R.jsx("div",{className:"skeleton h-72 rounded-2xl"}),R.jsx("div",{className:"skeleton h-72 rounded-2xl"})]})]}):E?R.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[R.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[R.jsx("div",{className:"flex flex-col gap-1.5",children:R.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"})}),x&&ne()]}),R.jsx("div",{className:"rounded-2xl bg-red-50 border border-red-200/60 p-5",children:R.jsx("div",{className:"text-red-600 text-sm font-medium",children:O.error})})]}):O.data?R.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[R.jsxs("div",{className:"mb-8",children:[R.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-6",children:[R.jsxs("div",{className:"flex flex-col gap-1.5",children:[R.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"}),R.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."})]}),x&&ne()]}),R.jsx("div",{className:"flex flex-col gap-4",children:R.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:[R.jsxs("div",{className:"flex flex-col gap-2",children:[R.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Time range"}),R.jsx(tP,{options:q0,value:f,onChange:I=>d(I)})]}),z.length>0&&R.jsxs(R.Fragment,{children:[R.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),R.jsxs("div",{className:"flex flex-col gap-2",children:[R.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Project"}),R.jsx(jX,{projects:z,value:h,onChange:y})]})]}),R.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),R.jsxs("div",{className:"flex flex-col gap-2",children:[R.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Metric"}),R.jsxs("div",{className:"flex items-center gap-1.5",children:[R.jsx(tP,{options:[{key:"tokens",label:"Tokens"},{key:"usd",label:"Cost"}],value:T,onChange:I=>j(I)}),!M&&K.length>0&&R.jsxs("div",{className:"relative",children:[R.jsx("button",{onClick:I=>{I.stopPropagation(),g(ue=>!ue)},className:"w-6 h-6 rounded-full flex items-center justify-center text-stone-400 hover:text-indigo-600 hover:bg-indigo-50 transition-colors",children:R.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}),v&&R.jsxs("div",{className:"absolute top-full left-1/2 -translate-x-1/2 mt-2 z-50 w-[320px] bg-white rounded-xl shadow-[0_8px_30px_rgba(120,113,108,0.15)] border border-stone-200/60 p-4",children:[R.jsx("div",{className:"absolute -top-1.5 left-1/2 -translate-x-1/2 w-3 h-3 bg-white border-l border-t border-stone-200/60 rotate-45"}),R.jsx("div",{className:"flex items-center gap-2 mb-2",children:R.jsx("span",{className:"text-[11px] font-bold text-stone-500 uppercase tracking-wider",children:"Pricing Formula"})}),R.jsx("div",{className:"text-[10px] font-mono text-stone-400 bg-stone-50 rounded-lg px-2.5 py-1.5 mb-2.5 leading-relaxed",children:"Cost = (input - cached) x in_price + cached x cache_price + output x out_price"}),R.jsx("div",{className:"text-[10px] text-stone-400 mb-1.5 font-semibold",children:"Per 1M tokens (USD)"}),R.jsx("div",{className:"space-y-1",children:K.slice(0,4).map((I,ue)=>{const he=eP[I.name]||eP.default;return R.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",children:[R.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{backgroundColor:an[ue%an.length]}}),R.jsx("span",{className:"font-semibold text-stone-600 w-20 truncate",children:I.name}),R.jsxs("span",{className:"text-stone-400 font-mono",children:["in $",he.input]}),R.jsxs("span",{className:"text-emerald-500 font-mono",children:["ca $",he.cache]}),R.jsxs("span",{className:"text-stone-400 font-mono",children:["out $",he.output]})]},I.name)})})]})]})]})]})]})})]}),R.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4 mb-6",children:[R.jsx(vl,{label:"Total tokens",value:It(L.totalTokens),accent:!0,insight:"The primary volume indicator for the selected period."}),R.jsx(vl,{label:"Daily avg",value:It(B>0?L.totalTokens/B:0),sub:`${B} active days`,insight:"Baseline for typical daily volume."}),R.jsx(vl,{label:"Avg daily changes",value:X!==null?X.toLocaleString()+" lines":"-",insight:"Average lines changed per active day."}),R.jsx(vl,{label:"Cache hit",value:db(Q),insight:"Higher hit rate reduces cost."}),R.jsx(vl,{label:"Output/Input",value:db(Z),insight:"Ratio of generation to context."})]}),R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[R.jsx(wa,{title:"Model trend",subtitle:"Showing top 6 models to maintain readability",children:R.jsx(si,{width:"100%",height:260,children:R.jsxs(FM,{data:ee,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),R.jsx(on,{tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>M?It(I):_a(I)}),R.jsx(Gt,{content:R.jsx(yl,{fmt:M?It:_a})}),R.jsx(qn,{wrapperStyle:{fontSize:11,paddingTop:12}}),K.slice(0,6).map((I,ue)=>R.jsx(Kr,{dataKey:I.name,stackId:"1",fill:an[ue%an.length],fillOpacity:.85},I.name))]})})}),R.jsxs(wa,{title:"Cache efficiency & savings",children:[R.jsxs("div",{className:"flex items-center gap-6 mb-4 px-4 py-3 bg-emerald-50/50 rounded-xl border border-emerald-100/50",children:[R.jsxs("div",{className:"flex flex-col",children:[R.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Est. Cost Saved"}),R.jsx("span",{className:"text-2xl font-black text-emerald-600 tracking-tight",children:_a(k.costSaved)})]}),R.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),R.jsxs("div",{className:"flex flex-col",children:[R.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Tokens Saved"}),R.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:It(k.tokensSaved)})]}),R.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),R.jsxs("div",{className:"flex flex-col",children:[R.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Avg Hit Rate"}),R.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:db(k.hitRate)})]})]}),R.jsx(si,{width:"100%",height:180,children:R.jsxs(bX,{data:fe,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),R.jsx(on,{yAxisId:"left",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>It(I)}),R.jsx(on,{yAxisId:"right",orientation:"right",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>`${I.toFixed(0)}%`}),R.jsx(Gt,{content:R.jsx(yl,{})}),R.jsx(qn,{wrapperStyle:{fontSize:11,paddingTop:8}}),R.jsx(Un,{yAxisId:"left",type:"monotone",dataKey:"cacheRead",stroke:an[5],fill:an[5],fillOpacity:.08,name:"Cache Read",strokeWidth:1.5}),R.jsx(cr,{yAxisId:"right",type:"monotone",dataKey:"hitRate",stroke:an[3],strokeWidth:2,dot:!1,name:"Hit Rate (%)"})]})})]})]}),(S.error||b.error)&&R.jsxs("div",{className:"mb-4 rounded-xl bg-amber-50 border border-amber-200/60 px-4 py-2.5 flex items-center gap-2 text-[12px] text-amber-700 font-medium",children:[R.jsx("svg",{className:"w-4 h-4 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),S.error&&R.jsx("span",{children:"Projects data unavailable"}),S.error&&b.error&&R.jsx("span",{className:"text-amber-400",children:"·"}),b.error&&R.jsx("span",{children:"Session data unavailable"})]}),R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[R.jsx(wa,{title:"Model distribution",subtitle:"Ranked by total volume",children:R.jsx(si,{width:"100%",height:260,children:R.jsxs(mX,{margin:{left:0,right:0,top:0,bottom:0},children:[R.jsx(Zr,{data:K.slice(0,6),dataKey:D,nameKey:"name",cx:"50%",cy:"50%",innerRadius:60,outerRadius:90,paddingAngle:2,children:K.slice(0,6).map((I,ue)=>R.jsx(Co,{fill:an[ue%an.length],fillOpacity:.85,stroke:"transparent"},ue))}),R.jsx(Gt,{content:R.jsx(yl,{fmt:M?It:_a})}),R.jsx(qn,{layout:"vertical",verticalAlign:"middle",align:"right",wrapperStyle:{fontSize:11}})]})})}),h?h?R.jsx(wa,{title:"Output / Input ratio",subtitle:"Daily generation vs context ratio",children:R.jsx(si,{width:"100%",height:280,children:R.jsxs(PN,{data:$,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),R.jsx(on,{yAxisId:"tokens",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>It(I)}),R.jsx(on,{yAxisId:"ratio",orientation:"right",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>`${I.toFixed(0)}%`}),R.jsx(Gt,{content:R.jsx(yl,{})}),R.jsx(qn,{wrapperStyle:{fontSize:11,paddingTop:12}}),R.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"output",stroke:an[1],strokeWidth:2,dot:!1,name:"Output"}),R.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"input",stroke:an[0],strokeWidth:2,dot:!1,name:"Input"}),R.jsx(cr,{yAxisId:"ratio",type:"monotone",dataKey:"ratio",stroke:an[3],strokeWidth:2,strokeDasharray:"4 2",dot:!1,name:"Ratio (%)"})]})})}):null:S.loading&&!S.data?R.jsx(wa,{title:"Project distribution",children:R.jsxs("div",{className:"flex items-center justify-center h-64 text-stone-400 text-[13px]",children:[R.jsxs("svg",{className:"animate-spin w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",children:[R.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),R.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),"Loading project data..."]})}):R.jsx(wa,{title:"Project distribution",subtitle:`Top 8 projects by ${M?"tokens":"cost"}`,children:R.jsx(si,{width:"100%",height:280,children:R.jsxs(FM,{data:ce.slice(0,8),layout:"vertical",margin:{left:8,right:8,top:0,bottom:0},children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",horizontal:!1}),R.jsx(Ln,{type:"number",tick:{fill:"#78716c",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:I=>M?It(I):_a(I)}),R.jsx(on,{type:"category",dataKey:"name",tick:{fill:"#57534e",fontSize:11},axisLine:!1,tickLine:!1,width:110}),R.jsx(Gt,{content:R.jsx(yl,{fmt:M?It:_a})}),R.jsx(Kr,{dataKey:D,radius:[0,6,6,0],maxBarSize:24,children:ce.slice(0,8).map((I,ue)=>R.jsx(Co,{fill:an[ue%an.length],fillOpacity:.85},ue))})]})})})]}),R.jsx(wa,{title:"24-Hour Activity Heatmap",subtitle:"Activity distribution by hour and day of week",className:"mb-4",children:b.loading&&!b.data?R.jsxs("div",{className:"flex items-center justify-center h-48 text-stone-400 text-[13px]",children:[R.jsxs("svg",{className:"animate-spin w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",children:[R.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),R.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),"Loading session data..."]}):H?R.jsxs("div",{className:"flex flex-col w-full pt-1 pb-2",children:[R.jsxs("div",{className:"flex w-full gap-2",children:[R.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((I,ue)=>R.jsx("div",{className:`h-[22px] flex items-center justify-center rounded ${ue===new Date().getDay()?"bg-stone-800 text-white font-bold":""}`,children:I},I))}),R.jsx("div",{className:"flex-1 flex flex-col gap-1",children:H.grid.map((I,ue)=>R.jsx("div",{className:"flex gap-1 h-[22px]",children:I.map((he,ye)=>{const Ce=H.maxVal>0?.15+he/H.maxVal*.85:0;return R.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:he>0?`rgba(16, 185, 129, ${Ce})`:"#ebedf0"},children:he>0&&R.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:[ye,":00 - ",M?It(he)+" tokens":_a(he)]})},ye)})},ue))})]}),R.jsx("div",{className:"flex ml-10 mt-1.5 text-[10px] font-medium text-stone-400",children:[...Array(24)].map((I,ue)=>R.jsx("div",{className:"flex-1 text-center truncate",children:ue%2===0?ue:""},ue))})]}):R.jsx("div",{className:"h-48 flex items-center justify-center text-stone-400 text-sm",children:"No session data available"})}),!c&&w.data&&R.jsx(EX,{analytics:w.data,timeRange:f}),R.jsx(wa,{title:"Daily detail",subtitle:"Recent 30 days of usage breakdown",children:R.jsx("div",{className:"overflow-x-auto",children:R.jsxs("table",{className:"w-full text-[11px] whitespace-nowrap",children:[R.jsx("thead",{children:R.jsxs("tr",{className:"border-b border-stone-200",children:[R.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Date"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Input"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Output"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cache read"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-600 font-semibold text-[10px]",children:"Total tokens"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cost"}),R.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Models"})]})}),R.jsx("tbody",{children:[...G].reverse().slice(0,30).map(I=>R.jsxs("tr",{className:"border-b border-stone-100 hover:bg-stone-50/60 transition-colors",children:[R.jsx("td",{className:"py-2.5 px-4 text-stone-800 font-semibold",children:Js(I.date)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:It(I.inputTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:It(I.outputTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-indigo-500/70",children:It(I.cacheReadTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-semibold text-indigo-600",children:It(I.totalTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-medium text-stone-600 bg-stone-50/40",children:_a(I.totalCost)}),R.jsx("td",{className:"py-2.5 px-4 text-stone-500 font-medium truncate max-w-[200px]",children:I.modelsUsed.map(hb).join(", ")})]},I.date))})]})})})]}):null}function CX(){return R.jsx("div",{className:"min-h-dvh bg-[radial-gradient(ellipse_at_top,#eef2ff_0%,#faf9f7_35%,#faf9f7_100%)] text-stone-900",children:R.jsx(PX,{})})}ok.createRoot(document.getElementById("root")).render(R.jsx(te.StrictMode,{children:R.jsx(CX,{})}));
|
|
121
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function TN(e,t){if(e){if(typeof e=="string")return $0(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 $0(e,t)}}function rX(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function aX(e){if(Array.isArray(e))return $0(e)}function $0(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 KM(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 ae(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?KM(Object(n),!0).forEach(function(r){we(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KM(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function we(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=iX(e,"string");return eu(t)=="symbol"?t:t+""}function iX(e,t){if(eu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(eu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var oX={xAxis:["bottom","top"],yAxis:["left","right"]},uX={width:"100%",height:"100%"},jN={x:0,y:0};function Zs(e){return e}var lX=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},cX=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 ae(ae(ae({},o),nt(o.cx,o.cy,f,c)),{},{angle:c,radius:f})}var d=l.coordinate,h=o.angle;return ae(ae(ae({},o),nt(o.cx,o.cy,d,h)),{},{angle:h,radius:d})}return jN},Gd=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(tu(f),tu(h)):f},[]);return c.length>0?c:t&&t.length&&de(o)&&de(l)?t.slice(o,l+1):[]};function MN(e){return e==="number"?[0,"auto"]:void 0}var z0=function(t,n,r,o){var l=t.graphicalItems,c=t.tooltipAxis,f=Gd(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=nf(x,c.dataKey,o)}else g=v&&v[r]||f[r];return g?[].concat(tu(d),[dD(h,g)]):d},[])},YM=function(t,n,r,o){var l=o||{x:t.chartX,y:t.chartY},c=lX(l,r),f=t.orderedTooltipTicks,d=t.tooltipAxis,h=t.tooltipTicks,y=nL(c,f,h,d);if(y>=0&&h){var v=h[y]&&h[y].value,g=z0(t,n,y,v),x=cX(r,f,y,l);return{activeTooltipIndex:y,activeLabel:v,activePayload:g,activeCoordinate:x}}return null},sX=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=oD(y,l);return r.reduce(function(O,S){var b,w=S.type.defaultProps!==void 0?ae(ae({},S.type.defaultProps),S.props):S.props,T=w.type,j=w.dataKey,P=w.allowDataOverflow,A=w.allowDuplicatedCategory,E=w.scale,M=w.ticks,D=w.includeHidden,z=w[c];if(O[z])return O;var G=Gd(t.data,{graphicalItems:o.filter(function(H){var ne,I=c in H.props?H.props[c]:(ne=H.type.defaultProps)===null||ne===void 0?void 0:ne[c];return I===z}),dataStartIndex:d,dataEndIndex:h}),L=G.length,B,X,Q;$Y(w.domain,P,T)&&(B=Vb(w.domain,null,P),x&&(T==="number"||E!=="auto")&&(Q=Ol(G,j,"category")));var Z=MN(T);if(!B||B.length===0){var k,K=(k=w.domain)!==null&&k!==void 0?k:Z;if(j){if(B=Ol(G,j,T),T==="category"&&x){var ee=Fk(B);A&&ee?(X=B,B=Hf(0,L)):A||(B=Gj(K,B,S).reduce(function(H,ne){return H.indexOf(ne)>=0?H:[].concat(tu(H),[ne])},[]))}else if(T==="category")A?B=B.filter(function(H){return H!==""&&!Oe(H)}):B=Gj(K,B,S).reduce(function(H,ne){return H.indexOf(ne)>=0||ne===""||Oe(ne)?H:[].concat(tu(H),[ne])},[]);else if(T==="number"){var ce=uL(G,o.filter(function(H){var ne,I,ue=c in H.props?H.props[c]:(ne=H.type.defaultProps)===null||ne===void 0?void 0:ne[c],he="hide"in H.props?H.props.hide:(I=H.type.defaultProps)===null||I===void 0?void 0:I.hide;return ue===z&&(D||!he)}),j,l,y);ce&&(B=ce)}x&&(T==="number"||E!=="auto")&&(Q=Ol(G,j,"category"))}else x?B=Hf(0,L):f&&f[z]&&f[z].hasStack&&T==="number"?B=g==="expand"?[0,1]:fD(f[z].stackGroups,d,h):B=iD(G,o.filter(function(H){var ne=c in H.props?H.props[c]:H.type.defaultProps[c],I="hide"in H.props?H.props.hide:H.type.defaultProps.hide;return ne===z&&(D||!I)}),T,y,!0);if(T==="number")B=R0(v,B,z,l,M),K&&(B=Vb(K,B,P));else if(T==="category"&&K){var fe=K,$=B.every(function(H){return fe.indexOf(H)>=0});$&&(B=fe)}}return ae(ae({},O),{},we({},z,ae(ae({},w),{},{axisType:l,domain:B,categoricalDomain:Q,duplicateDomain:X,originalDomain:(b=w.domain)!==null&&b!==void 0?b:Z,isCategorical:x,layout:y})))},{})},fX=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=Gd(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:h}),x=g.length,O=oD(y,l),S=-1;return r.reduce(function(b,w){var T=w.type.defaultProps!==void 0?ae(ae({},w.type.defaultProps),w.props):w.props,j=T[c],P=MN("number");if(!b[j]){S++;var A;return O?A=Hf(0,x):f&&f[j]&&f[j].hasStack?(A=fD(f[j].stackGroups,d,h),A=R0(v,A,j,l)):(A=Vb(P,iD(g,r.filter(function(E){var M,D,z=c in E.props?E.props[c]:(M=E.type.defaultProps)===null||M===void 0?void 0:M[c],G="hide"in E.props?E.props.hide:(D=E.type.defaultProps)===null||D===void 0?void 0:D.hide;return z===j&&!G}),"number",y),o.defaultProps.allowDataOverflow),A=R0(v,A,j,l)),ae(ae({},b),{},we({},j,ae(ae({axisType:l},o.defaultProps),{},{hide:!0,orientation:On(oX,"".concat(l,".").concat(S%2),null),domain:A,originalDomain:P,isCategorical:O,layout:y})))}return b},{})},dX=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=Zt(y,l),x={};return g&&g.length?x=sX(t,{axes:g,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h}):c&&c.length&&(x=fX(t,{Axis:l,graphicalItems:c,axisType:o,axisIdKey:v,stackGroups:f,dataStartIndex:d,dataEndIndex:h})),x},hX=function(t){var n=ja(t),r=Br(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:ix(r,function(o){return o.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Mf(n,r)}},XM=function(t){var n=t.children,r=t.defaultShowTooltip,o=xn(n,Io),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}},pX=function(t){return!t||!t.length?!1:t.some(function(n){var r=Lr(n&&n.type);return r&&r.indexOf("Bar")>=0})},VM=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"}},vX=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=xn(v,Io),O=xn(v,qn),S=Object.keys(d).reduce(function(A,E){var M=d[E],D=M.orientation;return!M.mirror&&!M.hide?ae(ae({},A),{},we({},D,A[D]+M.width)):A},{left:g.left||0,right:g.right||0}),b=Object.keys(c).reduce(function(A,E){var M=c[E],D=M.orientation;return!M.mirror&&!M.hide?ae(ae({},A),{},we({},D,On(A,"".concat(D))+M.height)):A},{top:g.top||0,bottom:g.bottom||0}),w=ae(ae({},b),S),T=w.bottom;x&&(w.bottom+=x.props.height||Io.defaultProps.height),O&&n&&(w=iL(w,o,r,n));var j=h-w.left-w.right,P=y-w.top-w.bottom;return ae(ae({brushBottom:T},w),{},{width:Math.max(j,0),height:Math.max(P,0)})},yX=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},mc=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,P=T.stackGroups,A=T.offset,E=T.updateId,M=T.dataStartIndex,D=T.dataEndIndex,z=w.barSize,G=w.layout,L=w.barGap,B=w.barCategoryGap,X=w.maxBarSize,Q=VM(G),Z=Q.numericAxisName,k=Q.cateAxisName,K=pX(j),ee=[];return j.forEach(function(ce,fe){var $=Gd(w.data,{graphicalItems:[ce],dataStartIndex:M,dataEndIndex:D}),H=ce.type.defaultProps!==void 0?ae(ae({},ce.type.defaultProps),ce.props):ce.props,ne=H.dataKey,I=H.maxBarSize,ue=H["".concat(Z,"Id")],he=H["".concat(k,"Id")],ye={},Ce=d.reduce(function(Yn,yr){var fu=T["".concat(yr.axisType,"Map")],Lt=H["".concat(yr.axisType,"Id")];fu&&fu[Lt]||yr.axisType==="zAxis"||_i();var bc=fu[Lt];return ae(ae({},Yn),{},we(we({},yr.axisType,bc),"".concat(yr.axisType,"Ticks"),Br(bc)))},ye),se=Ce[k],be=Ce["".concat(k,"Ticks")],Se=P&&P[ue]&&P[ue].hasStack&&yL(ce,P[ue].stackGroups),le=Lr(ce.type).indexOf("Bar")>=0,Ie=Mf(se,be),je=[],rt=K&&rL({barSize:z,stackGroups:P,totalSize:yX(Ce,k)});if(le){var st,Bt,Kn=Oe(I)?X:I,rr=(st=(Bt=Mf(se,be,!0))!==null&&Bt!==void 0?Bt:Kn)!==null&&st!==void 0?st:0;je=aL({barGap:L,barCategoryGap:B,bandSize:rr!==Ie?rr:Ie,sizeList:rt[he],maxBarSize:Kn}),rr!==Ie&&(je=je.map(function(Yn){return ae(ae({},Yn),{},{position:ae(ae({},Yn.position),{},{offset:Yn.position.offset-rr/2})})}))}var Wr=ce&&ce.type&&ce.type.getComposedData;Wr&&ee.push({props:ae(ae({},Wr(ae(ae({},Ce),{},{displayedData:$,props:w,dataKey:ne,item:ce,bandSize:Ie,barPosition:je,offset:A,stackedData:Se,layout:G,dataStartIndex:M,dataEndIndex:D}))),{},we(we(we({key:ce.key||"item-".concat(fe)},Z,Ce[Z]),k,Ce[k]),"animationId",E)),childIndex:l$(ce,w.children),item:ce})}),ee},x=function(w,T){var j=w.props,P=w.dataStartIndex,A=w.dataEndIndex,E=w.updateId;if(!iw({props:j}))return null;var M=j.children,D=j.layout,z=j.stackOffset,G=j.data,L=j.reverseStackOrder,B=VM(D),X=B.numericAxisName,Q=B.cateAxisName,Z=Zt(M,r),k=pL(G,Z,"".concat(X,"Id"),"".concat(Q,"Id"),z,L),K=d.reduce(function(H,ne){var I="".concat(ne.axisType,"Map");return ae(ae({},H),{},we({},I,dX(j,ae(ae({},ne),{},{graphicalItems:Z,stackGroups:ne.axisType===X&&k,dataStartIndex:P,dataEndIndex:A}))))},{}),ee=vX(ae(ae({},K),{},{props:j,graphicalItems:Z}),T==null?void 0:T.legendBBox);Object.keys(K).forEach(function(H){K[H]=y(j,K[H],ee,H.replace("Map",""),n)});var ce=K["".concat(Q,"Map")],fe=hX(ce),$=g(j,ae(ae({},K),{},{dataStartIndex:P,dataEndIndex:A,updateId:E,graphicalItems:Z,stackGroups:k,offset:ee}));return ae(ae({formattedGraphicalItems:$,graphicalItems:Z,offset:ee,stackGroups:k},fe),K)},O=(function(b){function w(T){var j,P,A;return FY(this,w),A=QY(this,w,[T]),we(A,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),we(A,"accessibilityManager",new kY),we(A,"handleLegendBBoxUpdate",function(E){if(E){var M=A.state,D=M.dataStartIndex,z=M.dataEndIndex,G=M.updateId;A.setState(ae({legendBBox:E},x({props:A.props,dataStartIndex:D,dataEndIndex:z,updateId:G},ae(ae({},A.state),{},{legendBBox:E}))))}}),we(A,"handleReceiveSyncEvent",function(E,M,D){if(A.props.syncId===E){if(D===A.eventEmitterSymbol&&typeof A.props.syncMethod!="function")return;A.applySyncEvent(M)}}),we(A,"handleBrushChange",function(E){var M=E.startIndex,D=E.endIndex;if(M!==A.state.dataStartIndex||D!==A.state.dataEndIndex){var z=A.state.updateId;A.setState(function(){return ae({dataStartIndex:M,dataEndIndex:D},x({props:A.props,dataStartIndex:M,dataEndIndex:D,updateId:z},A.state))}),A.triggerSyncEvent({dataStartIndex:M,dataEndIndex:D})}}),we(A,"handleMouseEnter",function(E){var M=A.getMouseInfo(E);if(M){var D=ae(ae({},M),{},{isTooltipActive:!0});A.setState(D),A.triggerSyncEvent(D);var z=A.props.onMouseEnter;Ae(z)&&z(D,E)}}),we(A,"triggeredAfterMouseMove",function(E){var M=A.getMouseInfo(E),D=M?ae(ae({},M),{},{isTooltipActive:!0}):{isTooltipActive:!1};A.setState(D),A.triggerSyncEvent(D);var z=A.props.onMouseMove;Ae(z)&&z(D,E)}),we(A,"handleItemMouseEnter",function(E){A.setState(function(){return{isTooltipActive:!0,activeItem:E,activePayload:E.tooltipPayload,activeCoordinate:E.tooltipPosition||{x:E.cx,y:E.cy}}})}),we(A,"handleItemMouseLeave",function(){A.setState(function(){return{isTooltipActive:!1}})}),we(A,"handleMouseMove",function(E){E.persist(),A.throttleTriggeredAfterMouseMove(E)}),we(A,"handleMouseLeave",function(E){A.throttleTriggeredAfterMouseMove.cancel();var M={isTooltipActive:!1};A.setState(M),A.triggerSyncEvent(M);var D=A.props.onMouseLeave;Ae(D)&&D(M,E)}),we(A,"handleOuterEvent",function(E){var M=u$(E),D=On(A.props,"".concat(M));if(M&&Ae(D)){var z,G;/.*touch.*/i.test(M)?G=A.getMouseInfo(E.changedTouches[0]):G=A.getMouseInfo(E),D((z=G)!==null&&z!==void 0?z:{},E)}}),we(A,"handleClick",function(E){var M=A.getMouseInfo(E);if(M){var D=ae(ae({},M),{},{isTooltipActive:!0});A.setState(D),A.triggerSyncEvent(D);var z=A.props.onClick;Ae(z)&&z(D,E)}}),we(A,"handleMouseDown",function(E){var M=A.props.onMouseDown;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"handleMouseUp",function(E){var M=A.props.onMouseUp;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"handleTouchMove",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.throttleTriggeredAfterMouseMove(E.changedTouches[0])}),we(A,"handleTouchStart",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseDown(E.changedTouches[0])}),we(A,"handleTouchEnd",function(E){E.changedTouches!=null&&E.changedTouches.length>0&&A.handleMouseUp(E.changedTouches[0])}),we(A,"handleDoubleClick",function(E){var M=A.props.onDoubleClick;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"handleContextMenu",function(E){var M=A.props.onContextMenu;if(Ae(M)){var D=A.getMouseInfo(E);M(D,E)}}),we(A,"triggerSyncEvent",function(E){A.props.syncId!==void 0&&cb.emit(sb,A.props.syncId,E,A.eventEmitterSymbol)}),we(A,"applySyncEvent",function(E){var M=A.props,D=M.layout,z=M.syncMethod,G=A.state.updateId,L=E.dataStartIndex,B=E.dataEndIndex;if(E.dataStartIndex!==void 0||E.dataEndIndex!==void 0)A.setState(ae({dataStartIndex:L,dataEndIndex:B},x({props:A.props,dataStartIndex:L,dataEndIndex:B,updateId:G},A.state)));else if(E.activeTooltipIndex!==void 0){var X=E.chartX,Q=E.chartY,Z=E.activeTooltipIndex,k=A.state,K=k.offset,ee=k.tooltipTicks;if(!K)return;if(typeof z=="function")Z=z(ee,E);else if(z==="value"){Z=-1;for(var ce=0;ce<ee.length;ce++)if(ee[ce].value===E.activeLabel){Z=ce;break}}var fe=ae(ae({},K),{},{x:K.left,y:K.top}),$=Math.min(X,fe.x+fe.width),H=Math.min(Q,fe.y+fe.height),ne=ee[Z]&&ee[Z].value,I=z0(A.state,A.props.data,Z),ue=ee[Z]?{x:D==="horizontal"?ee[Z].coordinate:$,y:D==="horizontal"?H:ee[Z].coordinate}:jN;A.setState(ae(ae({},E),{},{activeLabel:ne,activeCoordinate:ue,activePayload:I,activeTooltipIndex:Z}))}else A.setState(E)}),we(A,"renderCursor",function(E){var M,D=A.state,z=D.isTooltipActive,G=D.activeCoordinate,L=D.activePayload,B=D.offset,X=D.activeTooltipIndex,Q=D.tooltipAxisBandSize,Z=A.getTooltipEventType(),k=(M=E.props.active)!==null&&M!==void 0?M:z,K=A.props.layout,ee=E.key||"_recharts-cursor";return N.createElement(IY,{key:ee,activeCoordinate:G,activePayload:L,activeTooltipIndex:X,chartName:n,element:E,isActive:k,layout:K,offset:B,tooltipAxisBandSize:Q,tooltipEventType:Z})}),we(A,"renderPolarAxis",function(E,M,D){var z=On(E,"type.axisType"),G=On(A.state,"".concat(z,"Map")),L=E.type.defaultProps,B=L!==void 0?ae(ae({},L),E.props):E.props,X=G&&G[B["".concat(z,"Id")]];return te.cloneElement(E,ae(ae({},X),{},{className:Ee(z,X.className),key:E.key||"".concat(M,"-").concat(D),ticks:Br(X,!0)}))}),we(A,"renderPolarGrid",function(E){var M=E.props,D=M.radialLines,z=M.polarAngles,G=M.polarRadius,L=A.state,B=L.radiusAxisMap,X=L.angleAxisMap,Q=ja(B),Z=ja(X),k=Z.cx,K=Z.cy,ee=Z.innerRadius,ce=Z.outerRadius;return te.cloneElement(E,{polarAngles:Array.isArray(z)?z:Br(Z,!0).map(function(fe){return fe.coordinate}),polarRadius:Array.isArray(G)?G:Br(Q,!0).map(function(fe){return fe.coordinate}),cx:k,cy:K,innerRadius:ee,outerRadius:ce,key:E.key||"polar-grid",radialLines:D})}),we(A,"renderLegend",function(){var E=A.state.formattedGraphicalItems,M=A.props,D=M.children,z=M.width,G=M.height,L=A.props.margin||{},B=z-(L.left||0)-(L.right||0),X=rD({children:D,formattedGraphicalItems:E,legendWidth:B,legendContent:h});if(!X)return null;var Q=X.item,Z=GM(X,HY);return te.cloneElement(Q,ae(ae({},Z),{},{chartWidth:z,chartHeight:G,margin:L,onBBoxUpdate:A.handleLegendBBoxUpdate}))}),we(A,"renderTooltip",function(){var E,M=A.props,D=M.children,z=M.accessibilityLayer,G=xn(D,Gt);if(!G)return null;var L=A.state,B=L.isTooltipActive,X=L.activeCoordinate,Q=L.activePayload,Z=L.activeLabel,k=L.offset,K=(E=G.props.active)!==null&&E!==void 0?E:B;return te.cloneElement(G,{viewBox:ae(ae({},k),{},{x:k.left,y:k.top}),active:K,label:Z,payload:K?Q:[],coordinate:X,accessibilityLayer:z})}),we(A,"renderBrush",function(E){var M=A.props,D=M.margin,z=M.data,G=A.state,L=G.offset,B=G.dataStartIndex,X=G.dataEndIndex,Q=G.updateId;return te.cloneElement(E,{key:E.key||"_recharts-brush",onChange:Ks(A.handleBrushChange,E.props.onChange),data:z,x:de(E.props.x)?E.props.x:L.left,y:de(E.props.y)?E.props.y:L.top+L.height+L.brushBottom-(D.bottom||0),width:de(E.props.width)?E.props.width:L.width,startIndex:B,endIndex:X,updateId:"brush-".concat(Q)})}),we(A,"renderReferenceElement",function(E,M,D){if(!E)return null;var z=A,G=z.clipPathId,L=A.state,B=L.xAxisMap,X=L.yAxisMap,Q=L.offset,Z=E.type.defaultProps||{},k=E.props,K=k.xAxisId,ee=K===void 0?Z.xAxisId:K,ce=k.yAxisId,fe=ce===void 0?Z.yAxisId:ce;return te.cloneElement(E,{key:E.key||"".concat(M,"-").concat(D),xAxis:B[ee],yAxis:X[fe],viewBox:{x:Q.left,y:Q.top,width:Q.width,height:Q.height},clipPathId:G})}),we(A,"renderActivePoints",function(E){var M=E.item,D=E.activePoint,z=E.basePoint,G=E.childIndex,L=E.isRange,B=[],X=M.props.key,Q=M.item.type.defaultProps!==void 0?ae(ae({},M.item.type.defaultProps),M.item.props):M.item.props,Z=Q.activeDot,k=Q.dataKey,K=ae(ae({index:G,dataKey:k,cx:D.x,cy:D.y,r:4,fill:Cx(M.item),strokeWidth:2,stroke:"#fff",payload:D.payload,value:D.value},ge(Z,!1)),rf(Z));return B.push(w.renderActiveDot(Z,K,"".concat(X,"-activePoint-").concat(G))),z?B.push(w.renderActiveDot(Z,ae(ae({},K),{},{cx:z.x,cy:z.y}),"".concat(X,"-basePoint-").concat(G))):L&&B.push(null),B}),we(A,"renderGraphicChild",function(E,M,D){var z=A.filterFormatItem(E,M,D);if(!z)return null;var G=A.getTooltipEventType(),L=A.state,B=L.isTooltipActive,X=L.tooltipAxis,Q=L.activeTooltipIndex,Z=L.activeLabel,k=A.props.children,K=xn(k,Gt),ee=z.props,ce=ee.points,fe=ee.isRange,$=ee.baseLine,H=z.item.type.defaultProps!==void 0?ae(ae({},z.item.type.defaultProps),z.item.props):z.item.props,ne=H.activeDot,I=H.hide,ue=H.activeBar,he=H.activeShape,ye=!!(!I&&B&&K&&(ne||ue||he)),Ce={};G!=="axis"&&K&&K.props.trigger==="click"?Ce={onClick:Ks(A.handleItemMouseEnter,E.props.onClick)}:G!=="axis"&&(Ce={onMouseLeave:Ks(A.handleItemMouseLeave,E.props.onMouseLeave),onMouseEnter:Ks(A.handleItemMouseEnter,E.props.onMouseEnter)});var se=te.cloneElement(E,ae(ae({},z.props),Ce));function be(yr){return typeof X.dataKey=="function"?X.dataKey(yr.payload):null}if(ye)if(Q>=0){var Se,le;if(X.dataKey&&!X.allowDuplicatedCategory){var Ie=typeof X.dataKey=="function"?be:"payload.".concat(X.dataKey.toString());Se=nf(ce,Ie,Z),le=fe&&$&&nf($,Ie,Z)}else Se=ce==null?void 0:ce[Q],le=fe&&$&&$[Q];if(he||ue){var je=E.props.activeIndex!==void 0?E.props.activeIndex:Q;return[te.cloneElement(E,ae(ae(ae({},z.props),Ce),{},{activeIndex:je})),null,null]}if(!Oe(Se))return[se].concat(tu(A.renderActivePoints({item:z,activePoint:Se,basePoint:le,childIndex:Q,isRange:fe})))}else{var rt,st=(rt=A.getItemByXY(A.state.activeCoordinate))!==null&&rt!==void 0?rt:{graphicalItem:se},Bt=st.graphicalItem,Kn=Bt.item,rr=Kn===void 0?E:Kn,Wr=Bt.childIndex,Yn=ae(ae(ae({},z.props),Ce),{},{activeIndex:Wr});return[te.cloneElement(rr,Yn),null,null]}return fe?[se,null,null]:[se,null]}),we(A,"renderCustomized",function(E,M,D){return te.cloneElement(E,ae(ae({key:"recharts-customized-".concat(D)},A.props),A.state))}),we(A,"renderMap",{CartesianGrid:{handler:Zs,once:!0},ReferenceArea:{handler:A.renderReferenceElement},ReferenceLine:{handler:Zs},ReferenceDot:{handler:A.renderReferenceElement},XAxis:{handler:Zs},YAxis:{handler:Zs},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:za("recharts"),"-clip"),A.throttleTriggeredAfterMouseMove=rC(A.triggeredAfterMouseMove,(P=T.throttleDelay)!==null&&P!==void 0?P:1e3/60),A.state={},A}return tX(w,b),WY(w,[{key:"componentDidMount",value:function(){var j,P;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(j=this.props.margin.left)!==null&&j!==void 0?j:0,top:(P=this.props.margin.top)!==null&&P!==void 0?P:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var j=this.props,P=j.children,A=j.data,E=j.height,M=j.layout,D=xn(P,Gt);if(D){var z=D.props.defaultIndex;if(!(typeof z!="number"||z<0||z>this.state.tooltipTicks.length-1)){var G=this.state.tooltipTicks[z]&&this.state.tooltipTicks[z].value,L=z0(this.state,A,z,G),B=this.state.tooltipTicks[z].coordinate,X=(this.state.offset.top+E)/2,Q=M==="horizontal",Z=Q?{x:B,y:X}:{y:B,x:X},k=this.state.formattedGraphicalItems.find(function(ee){var ce=ee.item;return ce.type.name==="Scatter"});k&&(Z=ae(ae({},Z),k.props.points[z].tooltipPosition),L=k.props.points[z].tooltipPayload);var K={activeTooltipIndex:z,isTooltipActive:!0,activeLabel:G,activePayload:L,activeCoordinate:Z};this.setState(K),this.renderCursor(D),this.accessibilityManager.setIndex(z)}}}},{key:"getSnapshotBeforeUpdate",value:function(j,P){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==P.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){yb([xn(j.children,Gt)],[xn(this.props.children,Gt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var j=xn(this.props.children,Gt);if(j&&typeof j.props.shared=="boolean"){var P=j.props.shared?"axis":"item";return f.indexOf(P)>=0?P:l}return l}},{key:"getMouseInfo",value:function(j){if(!this.container)return null;var P=this.container,A=P.getBoundingClientRect(),E=Vq(A),M={chartX:Math.round(j.pageX-E.left),chartY:Math.round(j.pageY-E.top)},D=A.width/P.offsetWidth||1,z=this.inRange(M.chartX,M.chartY,D);if(!z)return null;var G=this.state,L=G.xAxisMap,B=G.yAxisMap,X=this.getTooltipEventType(),Q=YM(this.state,this.props.data,this.props.layout,z);if(X!=="axis"&&L&&B){var Z=ja(L).scale,k=ja(B).scale,K=Z&&Z.invert?Z.invert(M.chartX):null,ee=k&&k.invert?k.invert(M.chartY):null;return ae(ae({},M),{},{xValue:K,yValue:ee},Q)}return Q?ae(ae({},M),Q):null}},{key:"inRange",value:function(j,P){var A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,E=this.props.layout,M=j/A,D=P/A;if(E==="horizontal"||E==="vertical"){var z=this.state.offset,G=M>=z.left&&M<=z.left+z.width&&D>=z.top&&D<=z.top+z.height;return G?{x:M,y:D}:null}var L=this.state,B=L.angleAxisMap,X=L.radiusAxisMap;if(B&&X){var Q=ja(B);return Xj({x:M,y:D},Q)}return null}},{key:"parseEventsOfWrapper",value:function(){var j=this.props.children,P=this.getTooltipEventType(),A=xn(j,Gt),E={};A&&P==="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 M=rf(this.props,this.handleOuterEvent);return ae(ae({},M),E)}},{key:"addListener",value:function(){cb.on(sb,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){cb.removeListener(sb,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(j,P,A){for(var E=this.state.formattedGraphicalItems,M=0,D=E.length;M<D;M++){var z=E[M];if(z.item===j||z.props.key===j.key||P===Lr(z.item.type)&&A===z.childIndex)return z}return null}},{key:"renderClipPath",value:function(){var j=this.clipPathId,P=this.state.offset,A=P.left,E=P.top,M=P.height,D=P.width;return N.createElement("defs",null,N.createElement("clipPath",{id:j},N.createElement("rect",{x:A,y:E,height:M,width:D})))}},{key:"getXScales",value:function(){var j=this.state.xAxisMap;return j?Object.entries(j).reduce(function(P,A){var E=HM(A,2),M=E[0],D=E[1];return ae(ae({},P),{},we({},M,D.scale))},{}):null}},{key:"getYScales",value:function(){var j=this.state.yAxisMap;return j?Object.entries(j).reduce(function(P,A){var E=HM(A,2),M=E[0],D=E[1];return ae(ae({},P),{},we({},M,D.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(j){var P;return(P=this.state.xAxisMap)===null||P===void 0||(P=P[j])===null||P===void 0?void 0:P.scale}},{key:"getYScaleByAxisId",value:function(j){var P;return(P=this.state.yAxisMap)===null||P===void 0||(P=P[j])===null||P===void 0?void 0:P.scale}},{key:"getItemByXY",value:function(j){var P=this.state,A=P.formattedGraphicalItems,E=P.activeItem;if(A&&A.length)for(var M=0,D=A.length;M<D;M++){var z=A[M],G=z.props,L=z.item,B=L.type.defaultProps!==void 0?ae(ae({},L.type.defaultProps),L.props):L.props,X=Lr(L.type);if(X==="Bar"){var Q=(G.data||[]).find(function(ee){return v7(j,ee)});if(Q)return{graphicalItem:z,payload:Q}}else if(X==="RadialBar"){var Z=(G.data||[]).find(function(ee){return Xj(j,ee)});if(Z)return{graphicalItem:z,payload:Z}}else if(Rd(z,E)||kd(z,E)||rc(z,E)){var k=qH({graphicalItem:z,activeTooltipItem:E,itemData:B.data}),K=B.activeIndex===void 0?k:B.activeIndex;return{graphicalItem:ae(ae({},z),{},{childIndex:K}),payload:rc(z,E)?B.data[k]:z.props.data[k]}}}return null}},{key:"render",value:function(){var j=this;if(!iw(this))return null;var P=this.props,A=P.children,E=P.className,M=P.width,D=P.height,z=P.style,G=P.compact,L=P.title,B=P.desc,X=GM(P,GY),Q=ge(X,!1);if(G)return N.createElement(xM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},N.createElement(gb,Oo({},Q,{width:M,height:D,title:L,desc:B}),this.renderClipPath(),uw(A,this.renderMap)));if(this.props.accessibilityLayer){var Z,k;Q.tabIndex=(Z=this.props.tabIndex)!==null&&Z!==void 0?Z:0,Q.role=(k=this.props.role)!==null&&k!==void 0?k:"application",Q.onKeyDown=function(ee){j.accessibilityManager.keyboardEvent(ee)},Q.onFocus=function(){j.accessibilityManager.focus()}}var K=this.parseEventsOfWrapper();return N.createElement(xM,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},N.createElement("div",Oo({className:Ee("recharts-wrapper",E),style:ae({position:"relative",cursor:"default",width:M,height:D},z)},K,{ref:function(ce){j.container=ce}}),N.createElement(gb,Oo({},Q,{width:M,height:D,title:L,desc:B,style:uX}),this.renderClipPath(),uw(A,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])})(te.Component);we(O,"displayName",n),we(O,"defaultProps",ae({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},v)),we(O,"getDerivedStateFromProps",function(b,w){var T=b.dataKey,j=b.data,P=b.children,A=b.width,E=b.height,M=b.layout,D=b.stackOffset,z=b.margin,G=w.dataStartIndex,L=w.dataEndIndex;if(w.updateId===void 0){var B=XM(b);return ae(ae(ae({},B),{},{updateId:0},x(ae(ae({props:b},B),{},{updateId:0}),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:M,prevStackOffset:D,prevMargin:z,prevChildren:P})}if(T!==w.prevDataKey||j!==w.prevData||A!==w.prevWidth||E!==w.prevHeight||M!==w.prevLayout||D!==w.prevStackOffset||!_o(z,w.prevMargin)){var X=XM(b),Q={chartX:w.chartX,chartY:w.chartY,isTooltipActive:w.isTooltipActive},Z=ae(ae({},YM(w,j,M)),{},{updateId:w.updateId+1}),k=ae(ae(ae({},X),Q),Z);return ae(ae(ae({},k),x(ae({props:b},k),w)),{},{prevDataKey:T,prevData:j,prevWidth:A,prevHeight:E,prevLayout:M,prevStackOffset:D,prevMargin:z,prevChildren:P})}if(!yb(P,w.prevChildren)){var K,ee,ce,fe,$=xn(P,Io),H=$&&(K=(ee=$.props)===null||ee===void 0?void 0:ee.startIndex)!==null&&K!==void 0?K:G,ne=$&&(ce=(fe=$.props)===null||fe===void 0?void 0:fe.endIndex)!==null&&ce!==void 0?ce:L,I=H!==G||ne!==L,ue=!Oe(j),he=ue&&!I?w.updateId:w.updateId+1;return ae(ae({updateId:he},x(ae(ae({props:b},w),{},{updateId:he,dataStartIndex:H,dataEndIndex:ne}),w)),{},{prevChildren:P,dataStartIndex:H,dataEndIndex:ne})}return null}),we(O,"renderActiveDot",function(b,w,T){var j;return te.isValidElement(b)?j=te.cloneElement(b,w):Ae(b)?j=b(w):j=N.createElement(yc,w),N.createElement(Pe,{className:"recharts-active-dot",key:T},j)});var S=te.forwardRef(function(w,T){return N.createElement(O,Oo({},w,{ref:T}))});return S.displayName=O.displayName,S},PN=mc({chartName:"LineChart",GraphicalChild:cr,axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on}],formatAxisMap:zd}),FM=mc({chartName:"BarChart",GraphicalChild:Kr,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on}],formatAxisMap:zd}),mX=mc({chartName:"PieChart",GraphicalChild:Zr,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",legendContent:"children",axisComponents:[{axisType:"angleAxis",AxisComp:Nd},{axisType:"radiusAxis",AxisComp:Cd}],formatAxisMap:TL,defaultProps:{layout:"centric",startAngle:0,endAngle:360,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"}}),gX=mc({chartName:"AreaChart",GraphicalChild:Un,axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on}],formatAxisMap:zd}),bX=mc({chartName:"ComposedChart",GraphicalChild:[cr,Un,Kr,Hd],axisComponents:[{axisType:"xAxis",AxisComp:Ln},{axisType:"yAxis",AxisComp:on},{axisType:"zAxis",AxisComp:Id}],formatAxisMap:zd});const gc="/api";async function xX(){const e=await fetch(`${gc}/agents`);if(!e.ok)throw new Error(`Failed to fetch agents: ${e.status} ${e.statusText}`);return e.json()}function Kd(e,t){const n=[];if(e!=="claude"&&n.push(`agent=${e}`),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 SX(e="claude"){const t=await fetch(`${gc}/daily${Kd(e)}`);if(!t.ok)throw new Error(`Failed to fetch daily data: ${t.status} ${t.statusText}`);return t.json()}async function OX(e="claude"){const t=await fetch(`${gc}/projects${Kd(e)}`);if(!t.ok)throw new Error(`Failed to fetch projects data: ${t.status} ${t.statusText}`);return t.json()}async function _X(e="claude",t=""){const n=await fetch(`${gc}/blocks${Kd(e,t?{project:t}:void 0)}`);if(!n.ok)throw new Error(`Failed to fetch blocks data: ${n.status} ${n.statusText}`);return n.json()}async function AX(e="claude",t=""){const n=await fetch(`${gc}/analytics${Kd(e,t?{project:t}:void 0)}`);if(!n.ok)throw new Error(`Failed to fetch analytics: ${n.status} ${n.statusText}`);return n.json()}function Ws(e){const[t,n]=te.useState(null),[r,o]=te.useState(!0),[l,c]=te.useState(null),f=te.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 te.useEffect(()=>{f()},[f]),{data:t,loading:r,error:l,refetch:f}}function Qs(e,t){const[n,r]=te.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 te.useEffect(()=>{try{window.localStorage.setItem(e,JSON.stringify(n))}catch(o){console.warn(`Error setting localStorage key "${e}":`,o)}},[e,n]),[n,r]}function It(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(0)+"K":e.toLocaleString("en-US",{maximumFractionDigits:0})}function _a(e){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}function Js(e){return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function db(e){return e.toFixed(1)+"%"}function CN(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 wX(e){return e/1e6*3*(1-.1)}const ZM={"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 hb(e){if(ZM[e])return ZM[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 Aa=["#4f46e5","#10b981","#f59e0b","#ec4899","#0ea5e9","#8b5cf6","#ef4444","#14b8a6"];function WM({title:e,subtitle:t,children:n,className:r=""}){return R.jsxs("div",{className:`bg-white rounded-2xl p-5 shadow-[0_1px_3px_rgba(120,113,108,0.06)] ${r}`,children:[R.jsxs("div",{className:"mb-4",children:[R.jsx("h3",{className:"text-base font-bold text-stone-800",children:e}),t&&R.jsx("p",{className:"text-[12px] text-stone-400 mt-0.5",children:t})]}),n]})}function ef(e){return new Date(e+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"})}function QM(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString()}const TX=[{key:"7d",days:7},{key:"30d",days:30},{key:"60d",days:60},{key:"all",days:0}];function JM(e,t){if(t==="all")return e;const n=TX.find(l=>l.key===t),r=n?n.days:30,o=new Date;return o.setDate(o.getDate()-r),e.filter(l=>new Date(l.date)>=o)}function EX({analytics:e,timeRange:t}){const{codeChangeTrend:n,toolCallTrend:r}=e,o=te.useMemo(()=>JM(n,t),[n,t]),l=te.useMemo(()=>JM(r,t),[r,t]),c=te.useMemo(()=>{const f=new Map;for(const d of r)for(const[h,y]of Object.entries(d))h!=="date"&&f.set(h,(f.get(h)||0)+y);return[...f.entries()].sort((d,h)=>h[1]-d[1]).slice(0,6).map(([d])=>d)},[r]);return te.useMemo(()=>{if(o.length===0)return{files:0,added:0,deleted:0,net:0};const f=o.length;return{files:Math.round(o.reduce((d,h)=>d+h.filesModified,0)/f),added:Math.round(o.reduce((d,h)=>d+h.linesAdded,0)/f),deleted:Math.round(o.reduce((d,h)=>d+h.linesDeleted,0)/f),net:Math.round(o.reduce((d,h)=>d+h.netChange,0)/f)}},[o]),R.jsx(R.Fragment,{children:R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[R.jsx(WM,{title:"Code Change Trend",subtitle:"Lines added, deleted, and net change",children:o.length>0?R.jsx(si,{width:"100%",height:240,children:R.jsxs(gX,{data:o,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tickFormatter:ef,tick:{fill:"#78716c",fontSize:10},interval:"preserveStartEnd"}),R.jsx(on,{tickFormatter:f=>QM(f),tick:{fill:"#78716c",fontSize:10},width:50}),R.jsx(Gt,{content:({active:f,payload:d,label:h})=>!f||!(d!=null&&d.length)?null:R.jsxs("div",{className:"bg-white rounded-lg shadow-lg border border-stone-200 px-3 py-2 text-[12px]",children:[R.jsx("p",{className:"font-semibold text-stone-700 mb-1",children:ef(h)}),d.map((y,v)=>R.jsxs("p",{style:{color:y.color},children:[y.name,": ",QM(y.value)]},v))]})}),R.jsx(Un,{type:"monotone",dataKey:"linesAdded",name:"Added",stroke:Aa[1],fill:Aa[1],fillOpacity:.15,strokeWidth:2}),R.jsx(Un,{type:"monotone",dataKey:"linesDeleted",name:"Deleted",stroke:Aa[3],fill:Aa[3],fillOpacity:.08,strokeWidth:2}),R.jsx(Un,{type:"monotone",dataKey:"netChange",name:"Net",stroke:Aa[0],fill:Aa[0],fillOpacity:.05,strokeWidth:2,strokeDasharray:"4 2"}),R.jsx(qn,{iconType:"line",wrapperStyle:{fontSize:11,paddingTop:4}})]})}):R.jsx("p",{className:"text-stone-400 text-[13px] py-8 text-center",children:"No code change data available"})}),R.jsx(WM,{title:"Tool Call Trend",subtitle:"Daily usage frequency by tool",children:l.length>0?R.jsx(si,{width:"100%",height:240,children:R.jsxs(PN,{data:l,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tickFormatter:ef,tick:{fill:"#78716c",fontSize:10},interval:"preserveStartEnd"}),R.jsx(on,{tick:{fill:"#78716c",fontSize:10},width:40}),R.jsx(Gt,{content:({active:f,payload:d,label:h})=>!f||!(d!=null&&d.length)?null:R.jsxs("div",{className:"bg-white rounded-lg shadow-lg border border-stone-200 px-3 py-2 text-[12px]",children:[R.jsx("p",{className:"font-semibold text-stone-700 mb-1",children:ef(h)}),d.map((y,v)=>R.jsxs("p",{style:{color:y.color},children:[y.name,": ",y.value]},v))]})}),c.map((f,d)=>R.jsx(cr,{type:"monotone",dataKey:f,stroke:Aa[d%Aa.length],strokeWidth:2,dot:!1},f)),R.jsx(qn,{iconType:"line",wrapperStyle:{fontSize:11,paddingTop:4}})]})}):R.jsx("p",{className:"text-stone-400 text-[13px] py-8 text-center",children:"No tool call trend data available"})})]})})}const an=["#4f46e5","#10b981","#f59e0b","#ec4899","#0ea5e9","#8b5cf6","#ef4444","#14b8a6"],eP={"Opus 4.6":{input:"15.00",cache:"1.50",output:"75.00"},"Sonnet 4.6":{input:"3.00",cache:"0.30",output:"15.00"},"Sonnet 4.5":{input:"3.00",cache:"0.30",output:"15.00"},"Haiku 4.5":{input:"0.80",cache:"0.08",output:"4.00"},"Opus 3":{input:"15.00",cache:"1.50",output:"75.00"},"Sonnet 3.5":{input:"3.00",cache:"0.30",output:"15.00"},"Haiku 3.5":{input:"0.80",cache:"0.08",output:"4.00"},"Haiku 3":{input:"0.25",cache:"0.03",output:"1.25"},default:{input:"3.00",cache:"0.30",output:"15.00"}},q0=[{key:"7d",label:"7D",days:7},{key:"30d",label:"30D",days:30},{key:"60d",label:"60D",days:60},{key:"all",label:"ALL",days:0}];function vl({label:e,value:t,sub:n,insight:r,accent:o}){return R.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:[R.jsx("span",{className:"text-[12px] font-medium text-stone-400",children:e}),R.jsx("span",{className:`text-3xl font-extrabold tracking-tighter font-mono mt-1 ${o?"text-indigo-600":"text-stone-900"}`,children:t}),n&&R.jsx("span",{className:"text-xs font-medium text-stone-400 mt-0.5",children:n}),r&&R.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 wa({title:e,subtitle:t,children:n,className:r=""}){return R.jsxs("div",{className:`flex flex-col rounded-2xl bg-white p-5 shadow-[0_1px_3px_rgba(120,113,108,0.06)] ${r}`,children:[R.jsxs("div",{className:"mb-5",children:[R.jsx("h3",{className:"text-[15px] font-semibold text-stone-900 tracking-tight",children:e}),t&&R.jsx("p",{className:"text-[13px] font-medium text-stone-400 mt-1",children:t})]}),R.jsx("div",{className:"flex-1 min-h-0",children:n})]})}function yl({active:e,payload:t,label:n,fmt:r=It}){return!e||!(t!=null&&t.length)?null:R.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&&R.jsx("div",{className:"text-stone-400 mb-1.5 font-medium",children:n}),t.map((o,l)=>R.jsxs("div",{className:"flex items-center justify-between gap-5",children:[R.jsxs("span",{className:"flex items-center gap-1.5",children:[R.jsx("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:o.color}}),o.name]}),R.jsx("span",{className:"font-mono text-stone-700",children:r(o.value)})]},l))]})}function tP({options:e,value:t,onChange:n}){return R.jsx("div",{className:"flex items-center gap-0.5 p-0.5 bg-stone-100 rounded-lg",children:e.map(r=>R.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 jX({projects:e,value:t,onChange:n}){return R.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:[R.jsx("option",{value:"",children:"All Projects"}),e.map(r=>R.jsx("option",{value:r,children:CN(r,e)},r))]})}function od(e,t){if(t==="all")return e;const n=q0.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 MX(e,t,n){if(!t){const r={};for(const o of Object.values(e))for(const l of od(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 od(e[t]||[],n)}function PX(){const[e,t]=te.useState(null),[n,r]=te.useState(!0),[o,l]=Qs("dashboard_agent","claude"),c=o==="codex",[f,d]=Qs("dashboard_timeRange","30d"),[h,y]=Qs("dashboard_project",""),[v,g]=te.useState(!1);te.useEffect(()=>{if(!v)return;const I=()=>g(!1);return document.addEventListener("click",I),()=>document.removeEventListener("click",I)},[v]),te.useEffect(()=>{xX().then(I=>{t(I),I.available.length>0&&!I.available.includes(o)&&l(I.default)}).catch(()=>{}).finally(()=>r(!1))},[]);const x=((e==null?void 0:e.available.length)??0)>1,O=Ws(te.useCallback(()=>SX(o),[o])),S=Ws(te.useCallback(()=>OX(o),[o])),b=Ws(te.useCallback(()=>_X(o,h),[o,h])),w=Ws(te.useCallback(()=>AX(o,h),[o,h])),[T,j]=Qs("dashboard_metric","tokens"),P=I=>{l(I),y("")},A=O.loading&&!O.data,E=O.error&&!O.data,M=T==="tokens",D=M?"tokens":"cost",z=te.useMemo(()=>{var I;return Object.keys(((I=S.data)==null?void 0:I.projects)||{}).sort()},[S.data]),G=te.useMemo(()=>S.data?MX(S.data.projects,h,f):O.data?od(O.data.daily,f):[],[S.data,O.data,h,f]),L=te.useMemo(()=>G.reduce((I,ue)=>({inputTokens:I.inputTokens+ue.inputTokens,outputTokens:I.outputTokens+ue.outputTokens,cacheCreationTokens:I.cacheCreationTokens+ue.cacheCreationTokens,cacheReadTokens:I.cacheReadTokens+ue.cacheReadTokens,totalTokens:I.totalTokens+ue.totalTokens,totalCost:I.totalCost+ue.totalCost}),{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,totalTokens:0,totalCost:0}),[G]),B=te.useMemo(()=>G.filter(I=>I.totalTokens>0).length,[G]),X=te.useMemo(()=>{if(!w.data||w.data.codeChangeTrend.length===0)return null;const I=w.data.codeChangeTrend,ue=I.reduce((he,ye)=>he+ye.linesAdded+ye.linesDeleted,0);return Math.round(ue/I.length)},[w.data]),Q=L.inputTokens>0?L.cacheReadTokens/(L.cacheReadTokens+L.inputTokens)*100:0,Z=L.inputTokens>0?L.outputTokens/L.inputTokens*100:0,k=te.useMemo(()=>({tokensSaved:L.cacheReadTokens,costSaved:wX(L.cacheReadTokens),hitRate:Q}),[L.cacheReadTokens,Q]),K=te.useMemo(()=>{const I={};for(const ue of G)for(const he of ue.modelBreakdowns){const ye=hb(he.modelName);I[ye]||(I[ye]={tokens:0,cost:0,input:0,output:0,cacheRead:0}),I[ye].tokens+=he.inputTokens+he.outputTokens+he.cacheReadTokens,I[ye].cost+=he.cost,I[ye].input+=he.inputTokens,I[ye].output+=he.outputTokens,I[ye].cacheRead+=he.cacheReadTokens}return Object.entries(I).map(([ue,he])=>({name:ue,...he})).sort((ue,he)=>he.tokens-ue.tokens)},[G]),ee=te.useMemo(()=>G.map(I=>{const ue={date:Js(I.date)};for(const he of I.modelBreakdowns){const ye=hb(he.modelName);ue[ye]=(ue[ye]||0)+(M?he.inputTokens+he.outputTokens+he.cacheReadTokens:he.cost)}return ue}),[G,M]),ce=te.useMemo(()=>S.data?Object.entries(S.data.projects).map(([I,ue])=>{const he=od(ue,f);return{name:CN(I,z),full:I,tokens:he.reduce((ye,Ce)=>ye+Ce.totalTokens,0),cost:he.reduce((ye,Ce)=>ye+Ce.totalCost,0)}}).filter(I=>I.tokens>0).sort((I,ue)=>ue.tokens-I.tokens):[],[S.data,f]),fe=te.useMemo(()=>G.map(I=>({date:Js(I.date),cacheRead:I.cacheReadTokens,input:I.inputTokens,hitRate:I.inputTokens>0?I.cacheReadTokens/(I.cacheReadTokens+I.inputTokens)*100:0})),[G]),$=te.useMemo(()=>G.map(I=>({date:Js(I.date),output:I.outputTokens,input:I.inputTokens,ratio:I.inputTokens>0?I.outputTokens/I.inputTokens*100:0})),[G]),H=te.useMemo(()=>{if(!b.data)return null;const I=new Date,ue=I.getFullYear()+"-"+String(I.getMonth()+1).padStart(2,"0")+"-"+String(I.getDate()).padStart(2,"0");let he;if(f==="all")he=new Date(0);else{const be=q0.find(le=>le.key===f),Se=be?be.days-1:29;he=new Date(I.getFullYear(),I.getMonth(),I.getDate()-Se)}const ye=b.data.blocks.filter(be=>new Date(be.startTime)>=he),Ce=Array(7).fill(0).map(()=>Array(24).fill(0));let se=0;for(const be of ye){if(be.isGap)continue;const Se=new Date(be.startTime),le=Se.getDay(),Ie=Se.getHours();if(Se.getFullYear()+"-"+String(Se.getMonth()+1).padStart(2,"0")+"-"+String(Se.getDate()).padStart(2,"0")===ue&&Ie>I.getHours())continue;const rt=M?be.totalTokens:be.costUSD;Ce[le][Ie]+=rt,Ce[le][Ie]>se&&(se=Ce[le][Ie])}return{grid:Ce,maxVal:se}},[b.data,f,M]),ne=()=>R.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:[R.jsxs("button",{onClick:()=>P("claude"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${o==="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:[R.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),"Claude Code"]}),R.jsxs("button",{onClick:()=>P("codex"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${o==="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:[R.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"})}),"Codex"]}),R.jsxs("button",{onClick:()=>P("openclaw"),className:`flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-bold tracking-wide transition-all duration-200 ${o==="openclaw"?"bg-white text-orange-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:[R.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"})}),"OpenClaw"]})]});return A?R.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[R.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[R.jsx("div",{className:"flex flex-col gap-1.5",children:R.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"})}),x&&ne()]}),R.jsx("div",{className:"skeleton h-8 w-48 rounded-lg mb-2"}),R.jsx("div",{className:"skeleton h-4 w-72 rounded-lg mb-8"}),R.jsx("div",{className:"grid grid-cols-3 md:grid-cols-6 gap-3 mb-6",children:[...Array(6)].map((I,ue)=>R.jsx("div",{className:"skeleton h-20 rounded-2xl"},ue))}),R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[R.jsx("div",{className:"skeleton h-72 rounded-2xl"}),R.jsx("div",{className:"skeleton h-72 rounded-2xl"})]})]}):E?R.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[R.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-8",children:[R.jsx("div",{className:"flex flex-col gap-1.5",children:R.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"})}),x&&ne()]}),R.jsx("div",{className:"rounded-2xl bg-red-50 border border-red-200/60 p-5",children:R.jsx("div",{className:"text-red-600 text-sm font-medium",children:O.error})})]}):O.data?R.jsxs("div",{className:"max-w-[1440px] mx-auto px-6 py-10",children:[R.jsxs("div",{className:"mb-8",children:[R.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between gap-6 mb-6",children:[R.jsxs("div",{className:"flex flex-col gap-1.5",children:[R.jsx("h1",{className:"text-3xl font-extrabold tracking-tight text-stone-900",children:"TokenDash"}),R.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."})]}),x&&ne()]}),R.jsx("div",{className:"flex flex-col gap-4",children:R.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:[R.jsxs("div",{className:"flex flex-col gap-2",children:[R.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Time range"}),R.jsx(tP,{options:q0,value:f,onChange:I=>d(I)})]}),z.length>0&&R.jsxs(R.Fragment,{children:[R.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),R.jsxs("div",{className:"flex flex-col gap-2",children:[R.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Project"}),R.jsx(jX,{projects:z,value:h,onChange:y})]})]}),R.jsx("div",{className:"w-px h-10 bg-stone-200/60 hidden sm:block"}),R.jsxs("div",{className:"flex flex-col gap-2",children:[R.jsx("span",{className:"text-[11px] font-semibold text-stone-400 uppercase tracking-wider",children:"Metric"}),R.jsxs("div",{className:"flex items-center gap-1.5",children:[R.jsx(tP,{options:[{key:"tokens",label:"Tokens"},{key:"usd",label:"Cost"}],value:T,onChange:I=>j(I)}),!M&&K.length>0&&R.jsxs("div",{className:"relative",children:[R.jsx("button",{onClick:I=>{I.stopPropagation(),g(ue=>!ue)},className:"w-6 h-6 rounded-full flex items-center justify-center text-stone-400 hover:text-indigo-600 hover:bg-indigo-50 transition-colors",children:R.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}),v&&R.jsxs("div",{className:"absolute top-full left-1/2 -translate-x-1/2 mt-2 z-50 w-[320px] bg-white rounded-xl shadow-[0_8px_30px_rgba(120,113,108,0.15)] border border-stone-200/60 p-4",children:[R.jsx("div",{className:"absolute -top-1.5 left-1/2 -translate-x-1/2 w-3 h-3 bg-white border-l border-t border-stone-200/60 rotate-45"}),R.jsx("div",{className:"flex items-center gap-2 mb-2",children:R.jsx("span",{className:"text-[11px] font-bold text-stone-500 uppercase tracking-wider",children:"Pricing Formula"})}),R.jsx("div",{className:"text-[10px] font-mono text-stone-400 bg-stone-50 rounded-lg px-2.5 py-1.5 mb-2.5 leading-relaxed",children:"Cost = (input - cached) x in_price + cached x cache_price + output x out_price"}),R.jsx("div",{className:"text-[10px] text-stone-400 mb-1.5 font-semibold",children:"Per 1M tokens (USD)"}),R.jsx("div",{className:"space-y-1",children:K.slice(0,4).map((I,ue)=>{const he=eP[I.name]||eP.default;return R.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",children:[R.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{backgroundColor:an[ue%an.length]}}),R.jsx("span",{className:"font-semibold text-stone-600 w-20 truncate",children:I.name}),R.jsxs("span",{className:"text-stone-400 font-mono",children:["in $",he.input]}),R.jsxs("span",{className:"text-emerald-500 font-mono",children:["ca $",he.cache]}),R.jsxs("span",{className:"text-stone-400 font-mono",children:["out $",he.output]})]},I.name)})})]})]})]})]})]})})]}),R.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4 mb-6",children:[R.jsx(vl,{label:"Total tokens",value:It(L.totalTokens),accent:!0,insight:"The primary volume indicator for the selected period."}),R.jsx(vl,{label:"Daily avg",value:It(B>0?L.totalTokens/B:0),sub:`${B} active days`,insight:"Baseline for typical daily volume."}),R.jsx(vl,{label:"Avg daily changes",value:X!==null?X.toLocaleString()+" lines":"-",insight:"Average lines changed per active day."}),R.jsx(vl,{label:"Cache hit",value:db(Q),insight:"Higher hit rate reduces cost."}),R.jsx(vl,{label:"Output/Input",value:db(Z),insight:"Ratio of generation to context."})]}),R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[R.jsx(wa,{title:"Model trend",subtitle:"Showing top 6 models to maintain readability",children:R.jsx(si,{width:"100%",height:260,children:R.jsxs(FM,{data:ee,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),R.jsx(on,{tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>M?It(I):_a(I)}),R.jsx(Gt,{content:R.jsx(yl,{fmt:M?It:_a})}),R.jsx(qn,{wrapperStyle:{fontSize:11,paddingTop:12}}),K.slice(0,6).map((I,ue)=>R.jsx(Kr,{dataKey:I.name,stackId:"1",fill:an[ue%an.length],fillOpacity:.85},I.name))]})})}),R.jsxs(wa,{title:"Cache efficiency & savings",children:[R.jsxs("div",{className:"flex items-center gap-6 mb-4 px-4 py-3 bg-emerald-50/50 rounded-xl border border-emerald-100/50",children:[R.jsxs("div",{className:"flex flex-col",children:[R.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Est. Cost Saved"}),R.jsx("span",{className:"text-2xl font-black text-emerald-600 tracking-tight",children:_a(k.costSaved)})]}),R.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),R.jsxs("div",{className:"flex flex-col",children:[R.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Tokens Saved"}),R.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:It(k.tokensSaved)})]}),R.jsx("div",{className:"w-px h-8 bg-emerald-200/50"}),R.jsxs("div",{className:"flex flex-col",children:[R.jsx("span",{className:"text-[11px] font-bold text-emerald-600/70 uppercase tracking-wider mb-0.5",children:"Avg Hit Rate"}),R.jsx("span",{className:"text-lg font-extrabold text-emerald-700/80 tracking-tight font-mono",children:db(k.hitRate)})]})]}),R.jsx(si,{width:"100%",height:180,children:R.jsxs(bX,{data:fe,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),R.jsx(on,{yAxisId:"left",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>It(I)}),R.jsx(on,{yAxisId:"right",orientation:"right",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>`${I.toFixed(0)}%`}),R.jsx(Gt,{content:R.jsx(yl,{})}),R.jsx(qn,{wrapperStyle:{fontSize:11,paddingTop:8}}),R.jsx(Un,{yAxisId:"left",type:"monotone",dataKey:"cacheRead",stroke:an[5],fill:an[5],fillOpacity:.08,name:"Cache Read",strokeWidth:1.5}),R.jsx(cr,{yAxisId:"right",type:"monotone",dataKey:"hitRate",stroke:an[3],strokeWidth:2,dot:!1,name:"Hit Rate (%)"})]})})]})]}),(S.error||b.error)&&R.jsxs("div",{className:"mb-4 rounded-xl bg-amber-50 border border-amber-200/60 px-4 py-2.5 flex items-center gap-2 text-[12px] text-amber-700 font-medium",children:[R.jsx("svg",{className:"w-4 h-4 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:R.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),S.error&&R.jsx("span",{children:"Projects data unavailable"}),S.error&&b.error&&R.jsx("span",{className:"text-amber-400",children:"·"}),b.error&&R.jsx("span",{children:"Session data unavailable"})]}),R.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[R.jsx(wa,{title:"Model distribution",subtitle:"Ranked by total volume",children:R.jsx(si,{width:"100%",height:260,children:R.jsxs(mX,{margin:{left:0,right:0,top:0,bottom:0},children:[R.jsx(Zr,{data:K.slice(0,6),dataKey:D,nameKey:"name",cx:"50%",cy:"50%",innerRadius:60,outerRadius:90,paddingAngle:2,children:K.slice(0,6).map((I,ue)=>R.jsx(Co,{fill:an[ue%an.length],fillOpacity:.85,stroke:"transparent"},ue))}),R.jsx(Gt,{content:R.jsx(yl,{fmt:M?It:_a})}),R.jsx(qn,{layout:"vertical",verticalAlign:"middle",align:"right",wrapperStyle:{fontSize:11}})]})})}),h?h?R.jsx(wa,{title:"Output / Input ratio",subtitle:"Daily generation vs context ratio",children:R.jsx(si,{width:"100%",height:280,children:R.jsxs(PN,{data:$,children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",vertical:!1}),R.jsx(Ln,{dataKey:"date",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1}),R.jsx(on,{yAxisId:"tokens",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>It(I)}),R.jsx(on,{yAxisId:"ratio",orientation:"right",tick:{fill:"#78716c",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:I=>`${I.toFixed(0)}%`}),R.jsx(Gt,{content:R.jsx(yl,{})}),R.jsx(qn,{wrapperStyle:{fontSize:11,paddingTop:12}}),R.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"output",stroke:an[1],strokeWidth:2,dot:!1,name:"Output"}),R.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"input",stroke:an[0],strokeWidth:2,dot:!1,name:"Input"}),R.jsx(cr,{yAxisId:"ratio",type:"monotone",dataKey:"ratio",stroke:an[3],strokeWidth:2,strokeDasharray:"4 2",dot:!1,name:"Ratio (%)"})]})})}):null:S.loading&&!S.data?R.jsx(wa,{title:"Project distribution",children:R.jsxs("div",{className:"flex items-center justify-center h-64 text-stone-400 text-[13px]",children:[R.jsxs("svg",{className:"animate-spin w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",children:[R.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),R.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),"Loading project data..."]})}):R.jsx(wa,{title:"Project distribution",subtitle:`Top 8 projects by ${M?"tokens":"cost"}`,children:R.jsx(si,{width:"100%",height:280,children:R.jsxs(FM,{data:ce.slice(0,8),layout:"vertical",margin:{left:8,right:8,top:0,bottom:0},children:[R.jsx(yi,{strokeDasharray:"3 3",stroke:"#e7e5e4",horizontal:!1}),R.jsx(Ln,{type:"number",tick:{fill:"#78716c",fontSize:11},axisLine:!1,tickLine:!1,tickFormatter:I=>M?It(I):_a(I)}),R.jsx(on,{type:"category",dataKey:"name",tick:{fill:"#57534e",fontSize:11},axisLine:!1,tickLine:!1,width:110}),R.jsx(Gt,{content:R.jsx(yl,{fmt:M?It:_a})}),R.jsx(Kr,{dataKey:D,radius:[0,6,6,0],maxBarSize:24,children:ce.slice(0,8).map((I,ue)=>R.jsx(Co,{fill:an[ue%an.length],fillOpacity:.85},ue))})]})})})]}),R.jsx(wa,{title:"24-Hour Activity Heatmap",subtitle:"Activity distribution by hour and day of week",className:"mb-4",children:b.loading&&!b.data?R.jsxs("div",{className:"flex items-center justify-center h-48 text-stone-400 text-[13px]",children:[R.jsxs("svg",{className:"animate-spin w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",children:[R.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),R.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),"Loading session data..."]}):H?R.jsxs("div",{className:"flex flex-col w-full pt-1 pb-2",children:[R.jsxs("div",{className:"flex w-full gap-2",children:[R.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((I,ue)=>R.jsx("div",{className:`h-[22px] flex items-center justify-center rounded ${ue===new Date().getDay()?"bg-stone-800 text-white font-bold":""}`,children:I},I))}),R.jsx("div",{className:"flex-1 flex flex-col gap-1",children:H.grid.map((I,ue)=>R.jsx("div",{className:"flex gap-1 h-[22px]",children:I.map((he,ye)=>{const Ce=H.maxVal>0?.15+he/H.maxVal*.85:0;return R.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:he>0?`rgba(16, 185, 129, ${Ce})`:"#ebedf0"},children:he>0&&R.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:[ye,":00 - ",M?It(he)+" tokens":_a(he)]})},ye)})},ue))})]}),R.jsx("div",{className:"flex ml-10 mt-1.5 text-[10px] font-medium text-stone-400",children:[...Array(24)].map((I,ue)=>R.jsx("div",{className:"flex-1 text-center truncate",children:ue%2===0?ue:""},ue))})]}):R.jsx("div",{className:"h-48 flex items-center justify-center text-stone-400 text-sm",children:"No session data available"})}),!c&&w.data&&R.jsx(EX,{analytics:w.data,timeRange:f}),R.jsx(wa,{title:"Daily detail",subtitle:"Recent 30 days of usage breakdown",children:R.jsx("div",{className:"overflow-x-auto",children:R.jsxs("table",{className:"w-full text-[11px] whitespace-nowrap",children:[R.jsx("thead",{children:R.jsxs("tr",{className:"border-b border-stone-200",children:[R.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Date"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Input"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Output"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cache read"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-600 font-semibold text-[10px]",children:"Total tokens"}),R.jsx("th",{className:"text-right py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Cost"}),R.jsx("th",{className:"text-left py-3 px-4 text-stone-400 font-semibold text-[10px]",children:"Models"})]})}),R.jsx("tbody",{children:[...G].reverse().slice(0,30).map(I=>R.jsxs("tr",{className:"border-b border-stone-100 hover:bg-stone-50/60 transition-colors",children:[R.jsx("td",{className:"py-2.5 px-4 text-stone-800 font-semibold",children:Js(I.date)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:It(I.inputTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-stone-500",children:It(I.outputTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono text-indigo-500/70",children:It(I.cacheReadTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-semibold text-indigo-600",children:It(I.totalTokens)}),R.jsx("td",{className:"py-2.5 px-4 text-right font-mono font-medium text-stone-600 bg-stone-50/40",children:_a(I.totalCost)}),R.jsx("td",{className:"py-2.5 px-4 text-stone-500 font-medium truncate max-w-[200px]",children:I.modelsUsed.map(hb).join(", ")})]},I.date))})]})})})]}):null}function CX(){return R.jsx("div",{className:"min-h-dvh bg-[radial-gradient(ellipse_at_top,#eef2ff_0%,#faf9f7_35%,#faf9f7_100%)] text-stone-900",children:R.jsx(PX,{})})}ok.createRoot(document.getElementById("root")).render(R.jsx(te.StrictMode,{children:R.jsx(CX,{})}));
|
package/dist/client/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
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-DohuMiQc.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-92lvfG3S.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body class="antialiased" style="background:#faf9f7">
|