StatsPage-DOaAFqQz.js 89 KB

1
  1. import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{C as t,T as n,a as r,k as i,w as a}from"./client-DWQBE01c.js";import{t as o}from"./useQuery-Q4exvDrv.js";import{a as s,d as c,f as l,h as u,i as d,l as f,m as p,n as m,p as h,r as g,s as _,t as v,u as y}from"./sortable.esm-CX64krKJ.js";import{t as b}from"./calendar-DCaqqD_3.js";import{t as x}from"./chart-column-BOzqbZMO.js";import{a as S,n as C}from"./info-CPhSLaIW.js";import{n as w,r as T}from"./ToastContext-Bg6SLDR7.js";import{t as E}from"./clock-B_D089Yk.js";import{t as D}from"./dollar-sign-DlRsJm2U.js";import{t as ee}from"./eye-off-AM0w079U.js";import{t as te}from"./eye-Dq8Pma0q.js";import{t as O}from"./file-spreadsheet-BtVhTAwq.js";import{t as ne}from"./file-text-_KTk4dmw.js";import{t as k}from"./grip-vertical-CEtzwNYt.js";import{t as A}from"./loader-circle-QIogdiwG.js";import{t as j}from"./maximize-2-DQYVwCyv.js";import{t as M}from"./minimize-2-W3uP0zjw.js";import{t as N}from"./package-MQE4xI4T.js";import{t as re}from"./rotate-ccw-iglXlH3a.js";import{t as ie}from"./target-vwITWjf5.js";import{$ as ae,$t as oe,A as se,An as ce,At as le,Bt as ue,C as de,Cn as fe,Ct as pe,D as me,Dn as P,Dt as he,E as ge,En as _e,Et as ve,Fn as ye,G as be,H as xe,I as Se,In as Ce,It as we,J as Te,K as Ee,Kt as De,L as F,Ln as Oe,Lt as ke,M as Ae,Mn as I,N as je,Nt as Me,O as Ne,On as Pe,Ot as Fe,Pt as Ie,Q as Le,Qt as Re,R as ze,Rn as Be,S as Ve,Sn as L,St as He,T as Ue,U as We,Ut as R,V as Ge,W as Ke,X as qe,Xt as z,Y as Je,Z as Ye,Zt as Xe,_t as Ze,a as Qe,at as $e,bt as et,c as tt,cn as B,ct as nt,d as rt,dn as it,dt as at,en as ot,et as st,f as ct,ft as lt,gn as V,hn as ut,i as dt,in as ft,j as pt,kt as mt,l as ht,lt as gt,mn as H,mt as _t,n as vt,nn as yt,nt as bt,o as xt,on as St,ot as U,p as Ct,pt as wt,q as Tt,r as Et,rn as Dt,rt as Ot,s as kt,sn as At,st as jt,t as Mt,tn as Nt,tt as Pt,un as Ft,ut as It,v as Lt,vn as Rt,vt as zt,w as Bt,wn as Vt,wt as Ht,xn as W,xt as Ut,yn as Wt,yt as Gt,z as Kt}from"./CartesianChart-DfnPrQa_.js";import{t as qt}from"./triangle-alert-C-5b4OJS.js";import{t as Jt}from"./users-CfcuV8g4.js";import{t as Yt}from"./wrench-COJ2wDge.js";import{t as Xt}from"./zap-B1QKtweI.js";import{n as Zt}from"./AuthContext-dqmb9nDE.js";import{t as G}from"./Button-CDViejCk.js";import{n as Qt}from"./currency-DS4qMz4d.js";import{h as $t,o as en,v as tn}from"./date-G9KUauqz.js";import{n as nn}from"./useUiSettings-DNDF6KSU.js";import{t as rn}from"./filamentTypes-Dysa4k6j.js";import{n as an,t as on}from"./ErrorBarContext-DHaKVnkE.js";import{i as sn,n as cn,r as ln,t as un}from"./AreaChart-USbo9vnf.js";import{t as K}from"./weight-GRXsE28q.js";var dn=t(`calculator`,[[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,key:`1nb95v`}],[`line`,{x1:`8`,x2:`16`,y1:`6`,y2:`6`,key:`x4nwl0`}],[`line`,{x1:`16`,x2:`16`,y1:`14`,y2:`18`,key:`wjye3r`}],[`path`,{d:`M16 10h.01`,key:`1m94wz`}],[`path`,{d:`M12 10h.01`,key:`1nrarc`}],[`path`,{d:`M8 10h.01`,key:`19clt8`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}]]),fn=e=>null;fn.displayName=`Cell`;var pn=e=>e.graphicalItems.polarItems,mn=H([pn,U,H([Ut,et],bt)],ae),hn=H([H([mn],Le),mt],qe),gn=H([hn,U,mn],Tt);H([hn,U,mn],(e,t,n)=>n.length>0?e.flatMap(e=>n.flatMap(n=>({value:B(e,t.dataKey??n.dataKey),errorDomain:[]}))).filter(Boolean):t?.dataKey==null?e.map(e=>({value:e,errorDomain:[]})):e.map(e=>({value:B(e,t.dataKey),errorDomain:[]})));var _n=()=>void 0,vn=H([U,R,hn,gn,Fe,Ut,H([U,nt,gt,_n,H([hn,U,mn,Ot,Ut],Ye),_n,R,Ut],Pt)],Te);H([It,H([U,vn,H([vn,at,It],st),Ut],Je)],Ze);function yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?yn(Object(n),!0).forEach(function(t){xn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function xn(e,t,n){return(t=Sn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Sn(e){var t=Cn(e,`string`);return typeof t==`symbol`?t:t+``}function Cn(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var wn=H([pn,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`pie`).find(e=>e.id===t)),Tn=[],En=(e,t,n)=>n?.length===0?Tn:n,Dn=H([mt,wn,En],(e,t,n)=>{var{chartData:r}=e;if(t!=null){var i=t?.data!=null&&t.data.length>0?t.data:r;if((!i||!i.length)&&n!=null&&(i=n.map(e=>bn(bn({},t.presentationProps),e.props))),i!=null)return i}}),On=H([Dn,wn,En],(e,t,n)=>{if(!(e==null||t==null))return e.map((e,r)=>{var i,a=B(e,t.nameKey,t.name),o=n!=null&&(i=n[r])!=null&&(i=i.props)!=null&&i.fill?n[r].props.fill:typeof e==`object`&&e&&`fill`in e?e.fill:t.fill;return{value:At(a,t.dataKey),color:o,payload:e,type:t.legendType}})}),kn=H([Dn,wn,En,oe],(e,t,n,r)=>{if(!(t==null||e==null))return tr({offset:r,pieSettings:t,displayedData:e,cells:n})}),An=(e,t,n)=>{var r=ut();return(i,a)=>o=>{e?.(i,a,o),r(Ee({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},jn=e=>{var t=ut();return(n,r)=>i=>{e?.(n,r,i),t(Ke())}},Mn=(e,t,n)=>{var r=ut();return(i,a)=>o=>{e?.(i,a,o),r(be({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},q=e(i()),Nn=e(ce()),Pn=[`key`],Fn=[`onMouseEnter`,`onClick`,`onMouseLeave`],In=[`id`],Ln=[`id`];function Rn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function J(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Rn(Object(n),!0).forEach(function(t){zn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function zn(e,t,n){return(t=Bn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bn(e){var t=Vn(e,`string`);return typeof t==`symbol`?t:t+``}function Vn(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(null,arguments)}function Hn(e,t){if(e==null)return{};var n,r,i=Un(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Un(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Wn(e){var t=(0,q.useMemo)(()=>Ne(e.children,fn),[e.children]),n=V(n=>On(n,e.id,t));return n==null?null:q.createElement(ge,{legendPayload:n})}var Gn=q.memo(e=>{var{dataKey:t,nameKey:n,sectors:r,stroke:i,strokeWidth:a,fill:o,name:s,hide:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:r.map(e=>e.tooltipPayload),getPosition:e=>r[Number(e)]?.tooltipPosition,settings:{stroke:i,strokeWidth:a,fill:o,dataKey:t,nameKey:n,name:At(s,t),hide:c,type:l,color:o,unit:``,graphicalItemId:u}};return q.createElement(me,{tooltipEntrySettings:d})}),Kn=(e,t)=>e>t?`start`:e<t?`end`:`middle`,qn=(e,t,n)=>W(typeof t==`function`?t(e):t,n,n*.8),Jn=(e,t,n)=>{var{top:r,left:i,width:a,height:o}=t,s=Me(a,o);return{cx:i+W(e.cx,a,a/2),cy:r+W(e.cy,o,o/2),innerRadius:W(e.innerRadius,s,0),outerRadius:qn(n,e.outerRadius,s),maxRadius:e.maxRadius||Math.sqrt(a*a+o*o)/2}},Yn=(e,t)=>P(t-e)*Math.min(Math.abs(t-e),360),Xn=(e,t)=>{if(q.isValidElement(e))return q.cloneElement(e,t);if(typeof e==`function`)return e(t);var n=Oe(`recharts-pie-label-line`,typeof e==`boolean`?``:e.className),{key:r}=t,i=Hn(t,Pn);return q.createElement(ue,Y({},i,{type:`linear`,className:n}))},Zn=(e,t,n)=>{if(q.isValidElement(e))return q.cloneElement(e,t);var r=n;if(typeof e==`function`&&(r=e(t),q.isValidElement(r)))return r;var i=Oe(`recharts-pie-label-text`,se(e));return q.createElement(Se,Y({},t,{alignmentBaseline:`middle`,className:i}),r)};function Qn(e){var{sectors:t,props:n,showLabels:r}=e,{label:i,labelLine:a,dataKey:o}=n;if(!r||!i||!t)return null;var s=ye(n),c=Ce(i),l=Ce(a),u=typeof i==`object`&&`offsetRadius`in i&&typeof i.offsetRadius==`number`&&i.offsetRadius||20,d=t.map((e,t)=>{var n=(e.startAngle+e.endAngle)/2,r=Ie(e.cx,e.cy,e.outerRadius+u,n),d=J(J(J(J({},s),e),{},{stroke:`none`},c),{},{index:t,textAnchor:Kn(r.x,e.cx)},r),f=J(J(J(J({},s),e),{},{fill:`none`,stroke:e.fill},l),{},{index:t,points:[Ie(e.cx,e.cy,e.outerRadius,n),r],key:`line`});return q.createElement(Kt,{zIndex:He.label,key:`label-${e.startAngle}-${e.endAngle}-${e.midAngle}-${t}`},q.createElement(I,null,a&&Xn(a,f),Zn(i,d,B(e,o))))});return q.createElement(I,{className:`recharts-pie-labels`},d)}function $n(e){var{sectors:t,props:n,showLabels:r}=e,{label:i}=n;return typeof i==`object`&&i&&`position`in i?q.createElement(Ae,{label:i}):q.createElement(Qn,{sectors:t,props:n,showLabels:r})}function er(e){var{sectors:t,activeShape:n,inactiveShape:r,allOtherPieProps:i,shape:a,id:o}=e,s=V(We),c=V(Ge),l=V(xe),{onMouseEnter:u,onClick:d,onMouseLeave:f}=i,p=Hn(i,Fn),m=An(u,i.dataKey,o),h=jn(f),g=Mn(d,i.dataKey,o);return t==null||t.length===0?null:q.createElement(q.Fragment,null,t.map((e,u)=>{if(e?.startAngle===0&&e?.endAngle===0&&t.length!==1)return null;var d=l==null||l===o,f=String(u)===s&&(c==null||i.dataKey===c)&&d,_=n&&f?n:s?r:null,v=J(J({},e),{},{stroke:e.stroke,tabIndex:-1,[Nt]:u,[ot]:o});return q.createElement(I,Y({key:`sector-${e?.startAngle}-${e?.endAngle}-${e.midAngle}-${u}`,tabIndex:-1,className:`recharts-pie-sector`},Wt(p,e,u),{onMouseEnter:m(e,u),onMouseLeave:h(e,u),onClick:g(e,u)}),q.createElement(an,Y({option:a??_,index:u,shapeType:`sector`,isActive:f},v)))}))}function tr(e){var{pieSettings:t,displayedData:n,cells:r,offset:i}=e,{cornerRadius:a,startAngle:o,endAngle:s,dataKey:c,nameKey:l,tooltipType:u}=t,d=Math.abs(t.minAngle),f=Yn(o,s),p=Math.abs(f),m=n.length<=1?0:t.paddingAngle??0,h=n.filter(e=>B(e,c,0)!==0).length,g=(p>=360?h:h-1)*m,_=p-h*d-g,v=n.reduce((e,t)=>{var n=B(t,c,0);return e+(_e(n)?n:0)},0),y;if(v>0){var b;y=n.map((e,n)=>{var s=B(e,c,0),p=B(e,l,n),h=Jn(t,i,e),g=(_e(s)?s:0)/v,y,x=J(J({},e),r&&r[n]&&r[n].props);y=n?b.endAngle+P(f)*m*(s===0?0:1):o;var S=y+P(f)*((s===0?0:d)+g*_),C=(y+S)/2,w=(h.innerRadius+h.outerRadius)/2,T=[{name:p,value:s,payload:x,dataKey:c,type:u,graphicalItemId:t.id}],E=Ie(h.cx,h.cy,w,C);return b=J(J(J(J({},t.presentationProps),{},{percent:g,cornerRadius:typeof a==`string`?parseFloat(a):a,name:p,tooltipPayload:T,midAngle:C,middleRadius:w,tooltipPosition:E},x),h),{},{value:s,dataKey:c,startAngle:y,endAngle:S,payload:x,paddingAngle:P(f)*m}),b})}return y}function nr(e){var{showLabels:t,sectors:n,children:r}=e,i=(0,q.useMemo)(()=>!t||!n?[]:n.map(e=>({value:e.value,payload:e.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:e.cx,cy:e.cy,innerRadius:e.innerRadius,outerRadius:e.outerRadius,startAngle:e.startAngle,endAngle:e.endAngle,clockWise:!1},fill:e.fill})),[n,t]);return q.createElement(je,{value:t?i:void 0},r)}function rr(e){var{props:t,previousSectorsRef:n,id:r}=e,{sectors:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,activeShape:l,inactiveShape:u,onAnimationStart:d,onAnimationEnd:f}=t,p=we(t,`recharts-pie-`),m=n.current,[h,g]=(0,q.useState)(!1),_=(0,q.useCallback)(()=>{typeof f==`function`&&f(),g(!1)},[f]),v=(0,q.useCallback)(()=>{typeof d==`function`&&d(),g(!0)},[d]);return q.createElement(nr,{showLabels:!h,sectors:i},q.createElement(ke,{animationId:p,begin:o,duration:s,isActive:a,easing:c,onAnimationStart:v,onAnimationEnd:_,key:p},e=>{var a=[],o=(i&&i[0])?.startAngle??0;return i?.forEach((t,n)=>{var r=m&&m[n],i=n>0?(0,Nn.default)(t,`paddingAngle`,0):0;if(r){var s=L(r.endAngle-r.startAngle,t.endAngle-t.startAngle,e),c=J(J({},t),{},{startAngle:o+i,endAngle:o+s+i});a.push(c),o=c.endAngle}else{var{endAngle:l,startAngle:u}=t,d=L(0,l-u,e),f=J(J({},t),{},{startAngle:o+i,endAngle:o+d+i});a.push(f),o=f.endAngle}}),n.current=a,q.createElement(I,null,q.createElement(er,{sectors:a,activeShape:l,inactiveShape:u,allOtherPieProps:t,shape:t.shape,id:r}))}),q.createElement($n,{showLabels:!h,sectors:i,props:t}),t.children)}var ir={animationBegin:400,animationDuration:1500,animationEasing:`ease`,cx:`50%`,cy:`50%`,dataKey:`value`,endAngle:360,fill:`#808080`,hide:!1,innerRadius:0,isAnimationActive:`auto`,label:!1,labelLine:!0,legendType:`rect`,minAngle:0,nameKey:`name`,outerRadius:`80%`,paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:`#fff`,zIndex:He.area};function ar(e){var{id:t}=e,n=Hn(e,In),{hide:r,className:i,rootTabIndex:a}=e,o=(0,q.useMemo)(()=>Ne(e.children,fn),[e.children]),s=V(e=>kn(e,t,o)),c=(0,q.useRef)(null),l=Oe(`recharts-pie`,i);return r||s==null?(c.current=null,q.createElement(I,{tabIndex:a,className:l})):q.createElement(Kt,{zIndex:e.zIndex},q.createElement(Gn,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:s,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:t}),q.createElement(I,{tabIndex:a,className:l},q.createElement(rr,{props:J(J({},n),{},{sectors:s}),previousSectorsRef:c,id:t})))}function or(e){var t=Rt(e,ir),{id:n}=t,r=Hn(t,Ln),i=ye(r);return q.createElement(Bt,{id:n,type:`pie`},e=>q.createElement(q.Fragment,null,q.createElement(de,{type:`pie`,id:e,data:r.data,dataKey:r.dataKey,hide:r.hide,angleAxisId:0,radiusAxisId:0,name:r.name,nameKey:r.nameKey,tooltipType:r.tooltipType,legendType:r.legendType,fill:r.fill,cx:r.cx,cy:r.cy,startAngle:r.startAngle,endAngle:r.endAngle,paddingAngle:r.paddingAngle,minAngle:r.minAngle,innerRadius:r.innerRadius,outerRadius:r.outerRadius,cornerRadius:r.cornerRadius,presentationProps:i,maxRadius:t.maxRadius}),q.createElement(Wn,Y({},r,{id:e})),q.createElement(ar,Y({},r,{id:e}))))}or.displayName=`Pie`;var sr=(e,t,n)=>{var r=n??e;if(!Vt(r))return W(r,t,0)},cr=(e,t,n)=>{var r={},i=e.filter(zt),a=e.filter(e=>e.stackId==null),o=i.reduce((e,t)=>{var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},r),s=Object.entries(o).map(e=>{var[r,i]=e;return{stackId:r,dataKeys:i.map(e=>e.dataKey),barSize:sr(t,n,i[0]?.barSize)}}),c=a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>e!=null),barSize:sr(t,n,e.barSize)}));return[...s,...c]};function lr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?lr(Object(n),!0).forEach(function(t){dr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function dr(e,t,n){return(t=fr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fr(e){var t=pr(e,`string`);return typeof t==`symbol`?t:t+``}function pr(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function mr(e,t,n,r,i){var a=r.length;if(!(a<1)){var o=W(e,n,0,!0),s,c=[];if(it(r[0]?.barSize)){var l=!1,u=n/a,d=r.reduce((e,t)=>e+(t.barSize||0),0);d+=(a-1)*o,d>=n&&(d-=(a-1)*o,o=0),d>=n&&u>0&&(l=!0,u*=.9,d=a*u);var f={offset:((n-d)/2>>0)-o,size:0};s=r.reduce((e,t)=>{var n={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:f.offset+f.size+o,size:l?u:t.barSize??0}},r=[...e,n];return f=n.position,r},c)}else{var p=W(t,n,0,!0);n-2*p-(a-1)*o<=0&&(o=0);var m=(n-2*p-(a-1)*o)/a;m>1&&(m>>=0);var h=it(i)?Math.min(m,i):m;s=r.reduce((e,t,n)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:p+(m+o)*n+(m-h)/2,size:h}}],c)}return s}}var hr=(e,t,n,r,i,a,o)=>{var s=Vt(o)?t:o,c=mr(n,r,i===a?a:i,e,s);return i!==a&&c!=null&&(c=c.map(e=>ur(ur({},e),{},{position:ur(ur({},e.position),{},{offset:e.position.offset-i/2})}))),c},gr=(e,t)=>{var n=Gt(t);if(!(!e||n==null||t==null)){var{stackId:r}=t;if(r!=null){var i=e[r];if(i){var{stackedData:a}=i;if(a)return a.find(e=>e.key===n)}}}},_r=(e,t)=>{if(!(e==null||t==null)){var n=e.find(e=>e.stackId===t.stackId&&t.dataKey!=null&&e.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function vr(e,t){return e&&typeof e==`object`&&`zIndex`in e&&typeof e.zIndex==`number`&&it(e.zIndex)?e.zIndex:t}var yr=`Invariant failed`;function br(e,t){if(!e)throw Error(yr)}function xr(){return xr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xr.apply(null,arguments)}function Sr(e){return q.createElement(an,xr({shapeType:`rectangle`,activeClassName:`recharts-active-bar`},e))}var Cr=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(_e(e))return e;var i=_e(n)||Vt(n);return i?e(n,r):(!i&&br(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},wr=(e,t,n)=>n,Tr=H([_t,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),Er=H([Tr],e=>e?.maxBarSize),Dr=(e,t,n,r)=>r,Or=H([R,_t,ln,sn,wr],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),kr=(e,t,n)=>{var r=R(e),i=ln(e,t),a=sn(e,t);if(!(i==null||a==null))return r===`horizontal`?lt(e,`yAxis`,a,n):lt(e,`xAxis`,i,n)},Ar=H([Or,ve,(e,t)=>{var n=R(e),r=ln(e,t),i=sn(e,t);if(!(r==null||i==null))return n===`horizontal`?jt(e,`xAxis`,r):jt(e,`yAxis`,i)}],cr),jr=(e,t,n)=>{var r=Tr(e,t);if(r==null)return 0;var i=ln(e,t),a=sn(e,t);if(i==null||a==null)return 0;var o=R(e),s=he(e),{maxBarSize:c}=r,l=Vt(c)?s:c,u,d;return o===`horizontal`?(u=$e(e,`xAxis`,i,n),d=wt(e,`xAxis`,i,n)):(u=$e(e,`yAxis`,a,n),d=wt(e,`yAxis`,a,n)),yt(u,d,!0)??l??0},Mr=(e,t,n)=>{var r=R(e),i=ln(e,t),a=sn(e,t);if(!(i==null||a==null)){var o,s;return r===`horizontal`?(o=$e(e,`xAxis`,i,n),s=wt(e,`xAxis`,i,n)):(o=$e(e,`yAxis`,a,n),s=wt(e,`yAxis`,a,n)),yt(o,s)}},Nr=H([oe,Re,(e,t,n)=>{var r=ln(e,t);if(r!=null)return $e(e,`xAxis`,r,n)},(e,t,n)=>{var r=sn(e,t);if(r!=null)return $e(e,`yAxis`,r,n)},(e,t,n)=>{var r=ln(e,t);if(r!=null)return wt(e,`xAxis`,r,n)},(e,t,n)=>{var r=sn(e,t);if(r!=null)return wt(e,`yAxis`,r,n)},H([H([Ar,he,Ht,pe,jr,Mr,Er],hr),Tr],_r),R,le,Mr,H([kr,Tr],gr),Tr,Dr],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var{chartData:p,dataStartIndex:m,dataEndIndex:h}=c;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var{data:g}=d,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return pi({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),Pr=[`index`];function Fr(){return Fr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Fr.apply(null,arguments)}function Ir(e,t){if(e==null)return{};var n,r,i=Lr(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Lr(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Rr=(0,q.createContext)(void 0),zr=e=>{var t=(0,q.useContext)(Rr);if(t!=null)return t.stackId;if(e!=null)return St(e)},Br=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,Vr=e=>{var t=(0,q.useContext)(Rr);if(t!=null){var{stackId:n}=t;return`url(#${Br(n,e)})`}},Hr=e=>{var{index:t}=e,n=Ir(e,Pr),r=Vr(t);return q.createElement(I,Fr({className:`recharts-bar-stack-layer`,clipPath:r},n))},Ur=[`onMouseEnter`,`onMouseLeave`,`onClick`],Wr=[`value`,`background`,`tooltipPosition`],Gr=[`id`],Kr=[`onMouseEnter`,`onClick`,`onMouseLeave`];function X(){return X=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},X.apply(null,arguments)}function qr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?qr(Object(n),!0).forEach(function(t){Jr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Jr(e,t,n){return(t=Yr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Yr(e){var t=Xr(e,`string`);return typeof t==`symbol`?t:t+``}function Xr(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Zr(e,t){if(e==null)return{};var n,r,i=Qr(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Qr(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var $r=e=>{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:At(n,t),payload:e}]},ei=q.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:i,name:a,hide:o,unit:s,tooltipType:c,id:l}=e,u={dataDefinedOnItem:void 0,getPosition:Pe,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:At(a,t),hide:o,type:c,color:i,unit:s,graphicalItemId:l}};return q.createElement(me,{tooltipEntrySettings:u})});function ti(e){var t=V(We),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:s,onClick:c}=a,l=Zr(a,Ur),u=An(o,r,a.id),d=jn(s),f=Mn(c,r,a.id);if(!i||n==null)return null;var p=Ce(i);return q.createElement(Kt,{zIndex:vr(i,He.barBackground)},n.map((e,n)=>{var{value:a,background:o,tooltipPosition:s}=e,c=Zr(e,Wr);if(!o)return null;var m=u(e,n),h=d(e,n),g=f(e,n),_=Z(Z(Z(Z(Z({option:i,isActive:String(n)===t},c),{},{fill:`#eee`},o),p),Wt(l,e,n)),{},{onMouseEnter:m,onMouseLeave:h,onClick:g,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return q.createElement(Sr,X({key:`background-bar-${n}`},_))}))}function ni(e){var{showLabels:t,children:n,rects:r}=e,i=r?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return Z(Z({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return q.createElement(pt,{value:t?i:void 0},n)}function ri(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,s=V(We),c=V(Ge),l=n&&String(a)===s&&(c==null||o===c),u=l?n:t;return l?q.createElement(Kt,{zIndex:He.activeBar},q.createElement(Hr,{index:a},q.createElement(Sr,X({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o})))):q.createElement(Sr,X({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o}))}function ii(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return q.createElement(Sr,X({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function ai(e){var{data:t,props:n}=e,r=ye(n)??{},{id:i}=r,a=Zr(r,Gr),{shape:o,dataKey:s,activeBar:c}=n,{onMouseEnter:l,onClick:u,onMouseLeave:d}=n,f=Zr(n,Kr),p=An(l,s,i),m=jn(d),h=Mn(u,s,i);return t?q.createElement(q.Fragment,null,t.map((e,t)=>q.createElement(Hr,X({index:t,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},Wt(f,e,t),{onMouseEnter:p(e,t),onMouseLeave:m(e,t),onClick:h(e,t)}),c?q.createElement(ri,{shape:o,activeBar:c,baseProps:a,entry:e,index:t,dataKey:s}):q.createElement(ii,{shape:o,baseProps:a,entry:e,index:t,dataKey:s})))):null}function oi(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,onAnimationEnd:l,onAnimationStart:u}=t,d=n.current,f=we(t,`recharts-bar-`),[p,m]=(0,q.useState)(!1),h=!p,g=(0,q.useCallback)(()=>{typeof l==`function`&&l(),m(!1)},[l]),_=(0,q.useCallback)(()=>{typeof u==`function`&&u(),m(!0)},[u]);return q.createElement(ni,{showLabels:h,rects:r},q.createElement(ke,{animationId:f,begin:o,duration:s,isActive:a,easing:c,onAnimationEnd:g,onAnimationStart:_,key:f},e=>{var a=e===1?r:r?.map((t,n)=>{var r=d&&d[n];if(r)return Z(Z({},t),{},{x:L(r.x,t.x,e),y:L(r.y,t.y,e),width:L(r.width,t.width,e),height:L(r.height,t.height,e)});if(i===`horizontal`){var a=L(0,t.height,e),o=L(t.stackedBarStart,t.y,e);return Z(Z({},t),{},{y:o,height:a})}var s=L(0,t.width,e),c=L(t.stackedBarStart,t.x,e);return Z(Z({},t),{},{width:s,x:c})});return e>0&&(n.current=a??null),a==null?null:q.createElement(I,null,q.createElement(ai,{props:t,data:a}))}),q.createElement(Ae,{label:t.label}),t.children)}function si(e){var t=(0,q.useRef)(null);return q.createElement(oi,{previousRectanglesRef:t,props:e})}var ci=0,li=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:B(e,t)}},ui=class extends q.PureComponent{render(){var{hide:e,data:t,dataKey:n,className:r,xAxisId:i,yAxisId:a,needClip:o,background:s,id:c}=this.props;if(e||t==null)return null;var l=Oe(`recharts-bar`,r),u=c;return q.createElement(I,{className:l,id:c},o&&q.createElement(`defs`,null,q.createElement(rt,{clipPathId:u,xAxisId:i,yAxisId:a})),q.createElement(I,{className:`recharts-bar-rectangles`,clipPath:o?`url(#clipPath-${u})`:void 0},q.createElement(ti,{data:t,dataKey:n,background:s,allOtherBarProps:this.props}),q.createElement(si,this.props)))}},di={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:ci,xAxisId:0,yAxisId:0,zIndex:He.bar};function fi(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u}=e,{needClip:d}=ct(t,n),f=De(),p=Xe(),m=Ne(e.children,fn),h=V(t=>Nr(t,e.id,p,m));if(f!==`vertical`&&f!==`horizontal`)return null;var g,_=h?.[0];return g=_==null||_.height==null||_.width==null?0:f===`vertical`?_.height/2:_.width/2,q.createElement(on,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:li,errorBarOffset:g},q.createElement(ui,X({},e,{layout:f,needClip:d,data:h,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u})))}function pi(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r},pos:i,bandSize:a,xAxis:o,yAxis:s,xAxisTicks:c,yAxisTicks:l,stackedData:u,displayedData:d,offset:f,cells:p,parentViewBox:m,dataStartIndex:h}=e,g=t===`horizontal`?s:o,_=u?g.scale.domain():null,v=Dt({numericAxis:g}),y=g.scale.map(v);return d.map((e,d)=>{var g,b,x,S,C,w;if(u){var T=u[d+h];if(T==null)return null;g=Ft(T,_)}else g=B(e,n),Array.isArray(g)||(g=[v,g]);var E=Cr(r,ci)(g[1],d);if(t===`horizontal`){var D=s.scale.map(g[0]),ee=s.scale.map(g[1]);if(D==null||ee==null)return null;b=ft({axis:o,ticks:c,bandSize:a,offset:i.offset,entry:e,index:d}),x=ee??D??void 0,S=i.size;var te=D-ee;if(C=fe(te)?0:te,w={x:b,y:f.top,width:S,height:f.height},Math.abs(E)>0&&Math.abs(C)<Math.abs(E)){var O=P(C||E)*(Math.abs(E)-Math.abs(C));x-=O,C+=O}}else{var ne=o.scale.map(g[0]),k=o.scale.map(g[1]);if(ne==null||k==null)return null;if(b=ne,x=ft({axis:s,ticks:l,bandSize:a,offset:i.offset,entry:e,index:d}),S=k-ne,C=i.size,w={x:f.left,y:x,width:f.width,height:C},Math.abs(E)>0&&Math.abs(S)<Math.abs(E)){var A=P(S||E)*(Math.abs(E)-Math.abs(S));S+=A}}return b==null||x==null||S==null||C==null?null:Z(Z({},e),{},{stackedBarStart:y,x:b,y:x,width:S,height:C,value:u?g:g[1],payload:e,background:w,tooltipPosition:{x:b+S/2,y:x+C/2},parentViewBox:m},p&&p[d]&&p[d].props)}).filter(Boolean)}function mi(e){var t=Rt(e,di),n=zr(t.stackId),r=Xe();return q.createElement(Bt,{id:t.id,type:`bar`},e=>q.createElement(q.Fragment,null,q.createElement(Ue,{legendPayload:$r(t)}),q.createElement(ei,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),q.createElement(Ve,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r}),q.createElement(Kt,{zIndex:t.zIndex},q.createElement(fi,X({},t,{id:e})))))}var hi=q.memo(mi,ht);hi.displayName=`Bar`;var gi=[`axis`,`item`],_i=(0,q.forwardRef)((e,t)=>q.createElement(Mt,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:gi,tooltipPayloadSearcher:ze,categoricalChartProps:e,ref:t}));function vi(e){var t=ut();return(0,q.useEffect)(()=>{t(xt(e))},[t,e]),null}var yi=[`layout`];function bi(){return bi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bi.apply(null,arguments)}function xi(e,t){if(e==null)return{};var n,r,i=Si(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Si(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Ci={accessibilityLayer:!0,stackOffset:`none`,barCategoryGap:`10%`,barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:`index`,layout:`radial`,responsive:!1,cx:`50%`,cy:`50%`,innerRadius:0,outerRadius:`80%`},wi=(0,q.forwardRef)(function(e,t){var n=Rt(e.categoricalChartProps,Ci),{layout:r}=n,i=xi(n,yi),{chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:s,tooltipPayloadSearcher:c}=e,l={chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:s,tooltipPayloadSearcher:c,eventEmitter:void 0};return q.createElement(Qe,{preloadedState:{options:l},reduxStoreName:n.id??a},q.createElement(Lt,{chartData:n.data}),q.createElement(dt,{layout:r,margin:n.margin}),q.createElement(Et,{baseValue:void 0,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),q.createElement(vi,{cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius}),q.createElement(vt,bi({},i,{ref:t})))});function Ti(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ei(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Ti(Object(n),!0).forEach(function(t){Di(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ti(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Di(e,t,n){return(t=Oi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Oi(e){var t=ki(e,`string`);return typeof t==`symbol`?t:t+``}function ki(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Ai=[`item`],ji=Ei(Ei({},Ci),{},{layout:`centric`,startAngle:0,endAngle:360}),Mi=(0,q.forwardRef)((e,t)=>{var n=Rt(e,ji);return q.createElement(wi,{chartName:`PieChart`,defaultTooltipEventType:`item`,validateTooltipEventTypes:Ai,tooltipPayloadSearcher:ze,categoricalChartProps:n,ref:t})}),Q=a();function Ni({printDates:e,months:t=3}){let n=(0,q.useRef)(null),[r,i]=(0,q.useState)(0);(0,q.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(e=>{let t=e[0]?.contentRect.width||0;i(t)});return t.observe(e),()=>t.disconnect()},[]);let{weeks:a,monthLabels:o,printCounts:s}=(0,q.useMemo)(()=>{let n={};e.forEach(e=>{let t=$t(e);t&&(n[t]=(n[t]||0)+1)});let r=new Date,i=new Date(r);i.setMonth(i.getMonth()-t),i.setDate(i.getDate()-i.getDay());let a=[],o=[],s=[],c=-1,l=new Date(i),u=0;for(;l<=r;)l.getDay()===0&&s.length>0&&(a.push(s),s=[],u++),l.getMonth()!==c&&(o.push({month:l.toLocaleDateString(`en-US`,{month:`short`}),weekIndex:u}),c=l.getMonth()),s.push(new Date(l)),l.setDate(l.getDate()+1);return s.length>0&&a.push(s),{weeks:a,monthLabels:o,printCounts:n}},[e,t]),c=Math.max(1,...Object.values(s)),l=e=>{if(e===0)return`bg-bambu-dark`;let t=e/c;return t<=.25?`bg-bambu-green/30`:t<=.5?`bg-bambu-green/50`:t<=.75?`bg-bambu-green/75`:`bg-bambu-green`},u=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],d=a.length,f=r-32-16,p=d>0?Math.floor((f-(d-1)*2)/d):12,m=Math.max(8,Math.min(20,p)),h=m<=10?10:12;return(0,Q.jsx)(`div`,{ref:n,className:`w-full flex justify-center`,children:r>0&&(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`flex mb-1`,style:{marginLeft:36},children:o.map(({month:e,weekIndex:t},n)=>(0,Q.jsx)(`div`,{className:`text-bambu-gray`,style:{fontSize:h,marginLeft:n===0?0:`${(t-(o[n-1]?.weekIndex||0))*(m+2)-24}px`},children:e},n))}),(0,Q.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,Q.jsx)(`div`,{className:`flex flex-col`,style:{gap:2,marginRight:4,width:32},children:u.map((e,t)=>(0,Q.jsx)(`div`,{className:`text-bambu-gray flex items-center`,style:{width:32,height:m,fontSize:h,visibility:t%2==1?`visible`:`hidden`},children:e},e))}),a.map((e,t)=>(0,Q.jsx)(`div`,{className:`flex flex-col`,style:{gap:2},children:[0,1,2,3,4,5,6].map(t=>{let n=e.find(e=>e.getDay()===t);if(!n)return(0,Q.jsx)(`div`,{style:{width:m,height:m}},t);let r=$t(n),i=s[r]||0,a=r===$t(new Date);return(0,Q.jsx)(`div`,{className:`rounded-sm ${l(i)} ${a?`ring-1 ring-white`:``}`,style:{width:m,height:m},title:`${n.toLocaleDateString()}: ${i} print${i===1?``:`s`}`},t)})},t))]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mt-3 text-bambu-gray`,style:{fontSize:h},children:[(0,Q.jsx)(`span`,{children:`Less`}),(0,Q.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-dark`,style:{width:m,height:m}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green/30`,style:{width:m,height:m}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green/50`,style:{width:m,height:m}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green/75`,style:{width:m,height:m}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green`,style:{width:m,height:m}})]}),(0,Q.jsx)(`span`,{children:`More`})]})]})})}var Pi=[`weight`,`prints`,`time`];function Fi({value:e,onChange:t,exclude:r}){let{t:i}=n(),a={weight:i(`stats.filamentByWeight`),prints:i(`stats.filamentByPrints`),time:i(`stats.filamentByTime`)};return(0,Q.jsx)(`div`,{className:`flex gap-0.5 bg-bambu-dark rounded-lg p-0.5`,children:(r?Pi.filter(e=>!r.includes(e)):Pi).map(n=>(0,Q.jsx)(`button`,{onClick:()=>t(n),className:`px-2 py-0.5 text-xs rounded-md transition-colors ${e===n?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:a[n]},n))})}function Ii(e){let t=rn(e);return t.length?t:[`Unknown`]}var Li=[`#00ae42`,`#3b82f6`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#ec4899`,`#14b8a6`,`#f97316`],Ri=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],zi=[`12am`,`1am`,`2am`,`3am`,`4am`,`5am`,`6am`,`7am`,`8am`,`9am`,`10am`,`11am`,`12pm`,`1pm`,`2pm`,`3pm`,`4pm`,`5pm`,`6pm`,`7pm`,`8pm`,`9pm`,`10pm`,`11pm`];function Bi({archives:e,currency:t=`$`,dateFrom:r,dateTo:i}){let{t:a}=n(),[o,s]=(0,q.useState)(`weight`),[c,l]=(0,q.useState)(`weight`),u=(0,q.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=tn(e.completed_at||e.created_at)||new Date,r=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`,i=t.get(r)||{date:r,filament:0,cost:0,energy:0,prints:0};i.filament+=e.filament_used_grams||0,i.cost+=e.cost||0,i.energy+=e.energy_kwh||0,i.prints+=e.quantity??1,t.set(r,i)}),Array.from(t.values()).sort((e,t)=>e.date.localeCompare(t.date)).map(e=>({...e,dateLabel:new Date(e.date).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}))},[e]),d=(0,q.useMemo)(()=>{if(r&&i)return Math.max((new Date(i).getTime()-new Date(r).getTime())/864e5,0)+1;if(r)return Math.max((Date.now()-new Date(r).getTime())/864e5,0)+1;if(e.length<2)return 0;let t=e.map(e=>new Date(e.completed_at||e.created_at).getTime());return(Math.max(...t)-Math.min(...t))/864e5},[e,r,i]),f=(0,q.useMemo)(()=>{if(d>7)return[];let t=new Map,n=d>1;return e.forEach(e=>{let n=tn(e.completed_at||e.created_at)||new Date,r=n.getHours(),i=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}T${String(r).padStart(2,`0`)}`,a=t.get(i)||{date:i,filament:0,cost:0,energy:0,prints:0};a.filament+=e.filament_used_grams||0,a.cost+=e.cost||0,a.energy+=e.energy_kwh||0,a.prints+=e.quantity??1,t.set(i,a)}),Array.from(t.values()).sort((e,t)=>e.date.localeCompare(t.date)).map(e=>{let[t,r]=e.date.split(`T`),i=new Date(t),a=parseInt(r,10),o=n?`${Ri[i.getDay()]} ${zi[a]}`:zi[a];return{...e,dateLabel:o}})},[e,d]),p=(0,q.useMemo)(()=>{if(u.length<=60)return u;let e=new Map;return u.forEach(t=>{let n=new Date(t.date),r=new Date(n);r.setDate(n.getDate()-n.getDay());let i=`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,`0`)}-${String(r.getDate()).padStart(2,`0`)}`,a=e.get(i)||{week:i,filament:0,cost:0,energy:0,prints:0};a.filament+=t.filament,a.cost+=t.cost,a.energy+=t.energy,a.prints+=t.prints,e.set(i,a)}),Array.from(e.values()).sort((e,t)=>e.week.localeCompare(t.week)).map(e=>({date:e.week,dateLabel:`Week of ${new Date(e.week).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`,...e}))},[u]),m=(0,q.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=Ii(e.filament_type);n.forEach(r=>{let i=(e.filament_used_grams||0)/n.length;t.set(r,(t.get(r)||0)+i)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:Math.round(t)})).sort((e,t)=>t.value-e.value)},[e]),h=(0,q.useMemo)(()=>{let t=new Map;return e.forEach(e=>{Ii(e.filament_type).forEach(e=>{t.set(e,(t.get(e)||0)+1)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:t})).sort((e,t)=>t.value-e.value)},[e]),g=(0,q.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=Ii(e.filament_type),r=(e.actual_time_seconds||e.print_time_seconds||0)/n.length;n.forEach(e=>{t.set(e,(t.get(e)||0)+r)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:Math.round(t/3600*10)/10})).sort((e,t)=>t.value-e.value)},[e]),_=(0,q.useMemo)(()=>{let t=new Map;return e.forEach(e=>{e.status!==`completed`&&e.status!==`failed`||Ii(e.filament_type).forEach(n=>{let r=t.get(n)||{completed:0,failed:0};e.status===`completed`?r.completed++:r.failed++,t.set(n,r)})}),Array.from(t.entries()).filter(([,e])=>e.completed+e.failed>=2).map(([e,t])=>{let n=t.completed+t.failed;return{name:e,rate:Math.round(t.completed/n*100),total:n}}).sort((e,t)=>t.rate-e.rate)},[e]),v=(0,q.useMemo)(()=>{let t=new Map;return e.forEach(e=>{if(!e.filament_color)return;let n=e.filament_color.split(`,`).map(e=>e.trim()),r=(e.filament_used_grams||0)/n.length;n.forEach(e=>{let n=t.get(e)||{count:0,weight:0};n.count++,n.weight+=r,t.set(e,n)})}),Array.from(t.entries()).map(([e,t])=>({hex:e,value:c===`prints`?t.count:Math.round(t.weight)})).sort((e,t)=>t.value-e.value)},[e,c]),y=o===`weight`?m:o===`prints`?h:g,b=d<=7&&f.length>0?f:p,x=e.reduce((e,t)=>e+(t.filament_used_grams||0),0),S=e.reduce((e,t)=>e+(t.cost||0),0),C=e.reduce((e,t)=>e+(t.energy_kwh||0),0),w=e.reduce((e,t)=>e+(t.energy_cost||0),0),T=e.reduce((e,t)=>e+(t.quantity??1),0),E=new Set(e.map(e=>e.printer_id).filter(Boolean)).size;return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`grid grid-cols-3 gap-2 max-[640px]:grid-cols-1`,children:[(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:a(`stats.periodFilament`)}),(0,Q.jsx)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:K(x)})]}),(0,Q.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[E,` `,a(`nav.printers`).toLowerCase()]})]}),(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:a(`stats.periodCost`)}),(0,Q.jsxs)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:[t,S.toFixed(2)]})]}),(0,Q.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[T,` `,a(`common.prints`)]})]}),(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:a(`stats.avgPerPrint`)}),(0,Q.jsxs)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:[T>0?(x/T).toFixed(0):0,`g`]})]}),(0,Q.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[t,T>0?(S/T).toFixed(2):`0.00`,` avg`]})]})]}),b.length>0?(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-4`,children:a(`stats.usageOverTime`)}),(0,Q.jsx)(z,{width:`100%`,height:250,children:(0,Q.jsxs)(un,{data:b,children:[(0,Q.jsx)(`defs`,{children:(0,Q.jsxs)(`linearGradient`,{id:`colorFilament`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,Q.jsx)(`stop`,{offset:`5%`,stopColor:`#00ae42`,stopOpacity:.3}),(0,Q.jsx)(`stop`,{offset:`95%`,stopColor:`#00ae42`,stopOpacity:0})]})}),(0,Q.jsx)(Ct,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(tt,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,Q.jsx)(kt,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}g`}),(0,Q.jsx)(F,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},labelStyle:{color:`#fff`},formatter:e=>[`${Number(e??0).toFixed(0)}g`,`Filament`]}),(0,Q.jsx)(cn,{type:`monotone`,dataKey:`filament`,stroke:`#00ae42`,strokeWidth:2,fillOpacity:1,fill:`url(#colorFilament)`})]})})]}):(0,Q.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-8 text-center text-bambu-gray`,children:a(`stats.noPrintDataInRange`)}),C>0&&b.length>0&&(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:a(`stats.energyOverTime`)}),(0,Q.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[C.toFixed(3),` kWh · `,t,w.toFixed(2)]})]}),(0,Q.jsx)(z,{width:`100%`,height:250,children:(0,Q.jsxs)(un,{data:b,children:[(0,Q.jsx)(`defs`,{children:(0,Q.jsxs)(`linearGradient`,{id:`colorEnergy`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,Q.jsx)(`stop`,{offset:`5%`,stopColor:`#f59e0b`,stopOpacity:.3}),(0,Q.jsx)(`stop`,{offset:`95%`,stopColor:`#f59e0b`,stopOpacity:0})]})}),(0,Q.jsx)(Ct,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(tt,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,Q.jsx)(kt,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}kWh`}),(0,Q.jsx)(F,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},labelStyle:{color:`#fff`},formatter:e=>[`${Number(e??0).toFixed(3)} kWh`,a(`stats.energyUsed`)]}),(0,Q.jsx)(cn,{type:`monotone`,dataKey:`energy`,stroke:`#f59e0b`,strokeWidth:2,fillOpacity:1,fill:`url(#colorEnergy)`})]})})]}),(0,Q.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:a(`stats.byMaterial`)}),(0,Q.jsx)(Fi,{value:o,onChange:s})]}),y.length>0?(0,Q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Q.jsx)(z,{width:160,height:160,children:(0,Q.jsxs)(Mi,{children:[(0,Q.jsx)(or,{data:y,cx:`50%`,cy:`50%`,innerRadius:40,outerRadius:70,paddingAngle:2,dataKey:`value`,children:y.map((e,t)=>(0,Q.jsx)(fn,{fill:Li[t%Li.length]},`cell-${t}`))}),(0,Q.jsx)(F,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[o===`weight`?K(Number(e??0)):o===`time`?`${Number(e??0)}h`:`${e??0}`,o===`weight`?`Usage`:o===`time`?`Time`:`Prints`]})]})}),(0,Q.jsx)(`div`,{className:`flex-1 space-y-2 overflow-hidden`,children:y.map((e,t)=>{let n=y.reduce((e,t)=>e+t.value,0),r=n>0?(e.value/n*100).toFixed(0):0;return(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Q.jsx)(`div`,{className:`w-3 h-3 rounded-sm flex-shrink-0`,style:{backgroundColor:Li[t%Li.length]}}),(0,Q.jsx)(`span`,{className:`text-white truncate flex-1`,children:e.name}),(0,Q.jsxs)(`span`,{className:`text-bambu-gray flex-shrink-0`,children:[o===`weight`?K(e.value):o===`time`?`${e.value}h`:e.value,` · `,r,`%`]})]},e.name)})})]}):(0,Q.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:a(`stats.noFilamentData`)})]}),(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-4`,children:a(`stats.filamentSuccess`)}),_.length>0?(0,Q.jsx)(`div`,{className:`space-y-1.5`,children:_.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-white truncate w-20 flex-shrink-0`,children:e.name}),(0,Q.jsx)(`div`,{className:`flex-1 h-1.5 bg-bambu-dark-secondary rounded-full`,children:(0,Q.jsx)(`div`,{className:`h-full rounded-full transition-all ${e.rate>=90?`bg-status-ok`:e.rate>=70?`bg-status-warning`:`bg-status-error`}`,style:{width:`${e.rate}%`}})}),(0,Q.jsxs)(`span`,{className:`font-medium flex-shrink-0 tabular-nums ${e.rate>=90?`text-status-ok`:e.rate>=70?`text-status-warning`:`text-status-error`}`,children:[e.rate,`%`]}),(0,Q.jsxs)(`span`,{className:`text-bambu-gray flex-shrink-0 text-xs`,children:[`(`,e.total,`)`]})]},e.name))}):(0,Q.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:a(`stats.noArchiveData`)})]}),(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:a(`stats.colorDistribution`)}),(0,Q.jsx)(Fi,{value:c,onChange:l,exclude:[`time`]})]}),v.length>0?(()=>{let e=v.reduce((e,t)=>e+t.value,0);return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`relative mx-auto`,style:{width:160,height:160},children:[(0,Q.jsx)(z,{width:`100%`,height:`100%`,children:(0,Q.jsxs)(Mi,{children:[(0,Q.jsx)(or,{data:v,cx:`50%`,cy:`50%`,innerRadius:45,outerRadius:70,paddingAngle:2,dataKey:`value`,children:v.map((e,t)=>(0,Q.jsx)(fn,{fill:e.hex,stroke:`#1a1a1a`,strokeWidth:1},`color-${t}`))}),(0,Q.jsx)(F,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[c===`weight`?K(Number(e??0)):`${e??0}`,a(c===`weight`?`stats.filamentByWeight`:`stats.filamentByPrints`)]})]})}),(0,Q.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,Q.jsx)(`span`,{className:`text-lg font-bold text-white`,children:c===`weight`?K(e):e}),(0,Q.jsxs)(`span`,{className:`text-[10px] text-bambu-gray`,children:[v.length,` `,v.length===1?`color`:`colors`]})]})]}),(0,Q.jsx)(`div`,{className:`grid grid-cols-2 gap-x-3 gap-y-1 mt-2`,children:v.slice(0,8).map(t=>{let n=e>0?(t.value/e*100).toFixed(0):0;return(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs min-w-0`,children:[(0,Q.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full flex-shrink-0 border border-black/20`,style:{backgroundColor:t.hex}}),(0,Q.jsxs)(`span`,{className:`text-bambu-gray truncate`,children:[n,`%`]})]},t.hex)})}),v.length>8&&(0,Q.jsxs)(`p`,{className:`text-[10px] text-bambu-gray mt-1 text-center`,children:[`+`,v.length-8,` more`]})]})})():(0,Q.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:a(`stats.noColorData`)})]})]})]})}function Vi(e){return Math.abs(e)>=1e3?`${(e/1e3).toFixed(2)} kg`:`${Math.round(e)} g`}function Hi({currency:e,dateFrom:t,dateTo:i}){let{t:a}=n(),{data:s,isLoading:c,isError:l}=o({queryKey:[`supplier-stats`,t??`all`,i??`all`],queryFn:()=>r.getSupplierStats(t,i)});return c?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(A,{className:`w-6 h-6 text-bambu-green animate-spin`})}):l?(0,Q.jsxs)(`p`,{className:`flex items-center gap-2 text-sm text-red-400 py-4`,children:[(0,Q.jsx)(qt,{className:`w-4 h-4`}),a(`stats.suppliers.error`)]}):!s||s.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray py-4`,children:a(`stats.suppliers.empty`)}):(0,Q.jsx)(`div`,{className:`overflow-x-auto`,children:(0,Q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Q.jsx)(`thead`,{children:(0,Q.jsxs)(`tr`,{className:`text-left text-xs text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium`,children:a(`stats.suppliers.supplier`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:a(`stats.suppliers.spools`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:a(`stats.suppliers.remaining`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:a(`stats.suppliers.consumed`)}),(0,Q.jsx)(`th`,{className:`py-2 font-medium text-right`,children:a(`stats.suppliers.cost`)})]})}),(0,Q.jsx)(`tbody`,{children:s.map(t=>(0,Q.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 last:border-b-0`,children:[(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-white font-medium`,children:t.supplier_name}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:t.spool_count}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:Vi(t.remaining_g)}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:Vi(t.consumed_g)}),(0,Q.jsxs)(`td`,{className:`py-2 text-bambu-gray text-right`,children:[e,` `,t.cost.toFixed(2)]})]},t.supplier_id))})]})})}function Ui(e){return Math.abs(e)>=1e3?`${(e/1e3).toFixed(2)} kg`:`${Math.round(e)} g`}function Wi({currency:e,dateFrom:t,dateTo:i}){let{t:a}=n(),{data:s,isLoading:c,isError:l}=o({queryKey:[`material-number-stats`,t??null,i??null],queryFn:()=>r.getMaterialNumberStats({dateFrom:t,dateTo:i})});return c?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(A,{className:`w-6 h-6 text-bambu-green animate-spin`})}):l?(0,Q.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400 py-4`,children:a(`stats.materialNumbers.loadFailed`)}):!s||s.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray py-4`,children:a(`stats.materialNumbers.empty`)}):(0,Q.jsx)(`div`,{className:`overflow-x-auto`,children:(0,Q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Q.jsx)(`thead`,{children:(0,Q.jsxs)(`tr`,{className:`text-left text-xs text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium`,children:a(`inventory.materialNumber`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:a(`stats.materialNumbers.spools`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:a(`stats.materialNumbers.remaining`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:a(`stats.materialNumbers.consumed`)}),(0,Q.jsx)(`th`,{className:`py-2 font-medium text-right`,children:a(`stats.materialNumbers.cost`)})]})}),(0,Q.jsx)(`tbody`,{children:s.map(t=>(0,Q.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 last:border-b-0`,children:[(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-white font-medium`,children:t.material_number}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:t.spool_count}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:Ui(t.remaining_g)}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:Ui(t.consumed_g)}),(0,Q.jsxs)(`td`,{className:`py-2 text-bambu-gray text-right`,children:[e,` `,t.cost.toFixed(2)]})]},t.material_number))})]})})}function Gi({id:e,title:t,component:n,isHidden:r,size:i,columnSpan:a,onToggleVisibility:o,onToggleSize:c}){let{attributes:l,listeners:u,setNodeRef:d,transform:f,transition:m,isDragging:h}=s({id:e}),g={transform:p.Transform.toString(f),transition:m,opacity:h?.5:1};return r?null:(0,Q.jsxs)(`div`,{ref:d,style:{...g,gridColumn:`span ${a}`},className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden ${h?`ring-2 ring-bambu-green shadow-lg`:``}`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark/30`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`button`,{...l,...u,className:`cursor-grab active:cursor-grabbing p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Drag to reorder`,children:(0,Q.jsx)(k,{className:`w-6 h-6 md:w-4 md:h-4 text-bambu-gray`})}),(0,Q.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:t})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Q.jsx)(`button`,{onClick:c,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Size: ${i===1?`1/4`:i===2?`1/2`:`Full`} - Click to cycle`,children:i===4?(0,Q.jsx)(M,{className:`w-4 h-4 text-bambu-gray hover:text-white`}):(0,Q.jsx)(j,{className:`w-4 h-4 text-bambu-gray hover:text-white`})}),(0,Q.jsx)(`button`,{onClick:o,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Hide widget`,children:(0,Q.jsx)(ee,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]})]}),(0,Q.jsx)(`div`,{className:`p-4`,children:typeof n==`function`?n(i):n})]})}function Ki({widgets:e,storageKey:t,columns:n=4,stackBelow:r,hideControls:i=!1,onResetLayout:a,renderControls:o}){let s=()=>{let t={};return e.forEach(e=>{t[e.id]=e.defaultSize||4}),t},[u,p]=(0,q.useState)(()=>{let n=localStorage.getItem(t);if(n)try{let e=JSON.parse(n);if(!e.sizes)e.sizes=s();else{let t=s();for(let n in t)n in e.sizes||(e.sizes[n]=t[n])}return e}catch{}return{order:e.map(e=>e.id),hidden:e.filter(e=>e.defaultVisible===!1).map(e=>e.id),sizes:s()}}),[b,x]=(0,q.useState)(!1),[S,C]=(0,q.useState)(!1);(0,q.useEffect)(()=>{if(!r)return;let e=window.matchMedia(`(max-width: ${r}px)`),t=e=>{C(e.matches)};t(e);let n=e=>t(e);return e.addEventListener?e.addEventListener(`change`,n):e.addListener(n),()=>{e.removeEventListener?e.removeEventListener(`change`,n):e.removeListener(n)}},[r]);let w=r&&S?1:n;(0,q.useEffect)(()=>{let e=()=>x(e=>!e);return window.addEventListener(`toggle-hidden-panel`,e),()=>window.removeEventListener(`toggle-hidden-panel`,e)},[]),(0,q.useEffect)(()=>{localStorage.setItem(t,JSON.stringify(u))},[u,t]),(0,q.useEffect)(()=>{let t=e.map(e=>e.id).filter(e=>!u.order.includes(e));t.length>0&&p(e=>({...e,order:[...e.order,...t]}))},[e,u.order]);let T=h(l(y,{activationConstraint:{distance:8}}),l(f,{coordinateGetter:d})),E=e=>{let{active:t,over:n}=e;n&&t.id!==n.id&&p(e=>{let r=e.order.indexOf(t.id),i=e.order.indexOf(n.id);return{...e,order:m(e.order,r,i)}})},D=e=>{p(t=>({...t,hidden:t.hidden.includes(e)?t.hidden.filter(t=>t!==e):[...t.hidden,e]}))},ee=e=>{p(t=>{let n=t.sizes[e]||4,r=n===1?2:n===2?4:1;return{...t,sizes:{...t.sizes,[e]:r}}})},O=()=>{let t={order:e.map(e=>e.id),hidden:e.filter(e=>e.defaultVisible===!1).map(e=>e.id),sizes:s()};p(t),a?.()},ne=u.order.map(t=>e.find(e=>e.id===t)).filter(Boolean),k=ne.filter(e=>!u.hidden.includes(e.id)),A=ne.filter(e=>u.hidden.includes(e.id)),j=o?.({hiddenCount:A.length,showHiddenPanel:b,setShowHiddenPanel:x,resetLayout:O});return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[j,!i&&!o&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Q.jsxs)(G,{variant:`secondary`,size:`sm`,onClick:O,children:[(0,Q.jsx)(re,{className:`w-4 h-4`}),`Reset Layout`]}),A.length>0&&(0,Q.jsxs)(G,{variant:`secondary`,size:`sm`,onClick:()=>x(!b),children:[(0,Q.jsx)(te,{className:`w-4 h-4`}),A.length,` Hidden`]})]}),b&&A.length>0&&(0,Q.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-xl border border-bambu-dark-tertiary`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:`Hidden widgets (click to show):`}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:A.map(e=>(0,Q.jsxs)(`button`,{onClick:()=>D(e.id),className:`px-3 py-1.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded-lg text-sm text-white transition-colors flex items-center gap-2`,children:[(0,Q.jsx)(te,{className:`w-3 h-3`}),e.title]},e.id))})]}),(0,Q.jsx)(_,{sensors:T,collisionDetection:c,onDragEnd:E,children:(0,Q.jsx)(v,{items:k.map(e=>e.id),strategy:g,children:(0,Q.jsx)(`div`,{className:`grid gap-6`,style:{gridTemplateColumns:`repeat(${w}, minmax(0, 1fr))`},children:k.map(e=>{let t=u.sizes[e.id]||2,n=Math.min(t,w);return(0,Q.jsx)(Gi,{id:e.id,title:e.title,component:e.component,isHidden:u.hidden.includes(e.id),size:t,columnSpan:n,onToggleVisibility:()=>D(e.id),onToggleSize:()=>ee(e.id)},e.id)})})})}),k.length===0&&(0,Q.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,Q.jsx)(`p`,{children:`All widgets are hidden.`}),(0,Q.jsx)(G,{className:`mt-4`,onClick:O,children:`Reset Layout`})]})]})}var qi=e=>String(e).padStart(2,`0`);function $(e){return`${e.getFullYear()}-${qi(e.getMonth()+1)}-${qi(e.getDate())}`}function Ji(e){let t=new Date,n=t.getFullYear(),r=t.getMonth(),i=t.getDate(),a=$(t);switch(e){case`today`:return{dateFrom:a,dateTo:a};case`this-week`:{let e=t.getDay();return{dateFrom:$(new Date(n,r,i-(e===0?6:e-1))),dateTo:a}}case`this-month`:return{dateFrom:$(new Date(n,r,1)),dateTo:a};case`last-7`:return{dateFrom:$(new Date(n,r,i-6)),dateTo:a};case`last-30`:return{dateFrom:$(new Date(n,r,i-29)),dateTo:a};case`last-90`:return{dateFrom:$(new Date(n,r,i-89)),dateTo:a};case`this-year`:return{dateFrom:$(new Date(n,0,1)),dateTo:a};case`all-time`:return{dateFrom:void 0,dateTo:void 0};case`custom`:return{}}}var Yi=[`today`,`this-week`,`this-month`,`last-7`,`last-30`,`last-90`,`this-year`,`all-time`],Xi=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],Zi=[`12am`,`1am`,`2am`,`3am`,`4am`,`5am`,`6am`,`7am`,`8am`,`9am`,`10am`,`11am`,`12pm`,`1pm`,`2pm`,`3pm`,`4pm`,`5pm`,`6pm`,`7pm`,`8pm`,`9pm`,`10pm`,`11pm`],Qi=[{key:`<30m`,max:1800},{key:`30m-1h`,max:3600},{key:`1-2h`,max:7200},{key:`2-4h`,max:14400},{key:`4-8h`,max:28800},{key:`8-12h`,max:43200},{key:`12-24h`,max:86400},{key:`24h+`,max:1/0}],$i={backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`};function ea({stats:e,currency:t}){let{t:r}=n(),i=e?.energy_data_warming_up===!0,a=i?r(`stats.energyWarmingUpTooltip`):void 0;return(0,Q.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-4`,children:[{icon:N,color:`text-bambu-green`,label:r(`stats.totalPrints`),value:`${e?.total_prints||0}`},{icon:E,color:`text-blue-600 dark:text-blue-400`,label:r(`stats.printTime`),value:`${e?.total_print_time_hours?.toFixed(1)??`0`}h`},{icon:N,color:`text-orange-600 dark:text-orange-400`,label:r(`stats.filamentUsed`),value:K(e?.total_filament_grams||0)},{icon:D,color:`text-green-600 dark:text-green-400`,label:r(`stats.filamentCost`),value:`${t} ${e?.total_cost?.toFixed(2)??`0.00`}`},{icon:Xt,color:`text-yellow-600 dark:text-yellow-400`,label:r(`stats.energyUsed`),value:`${e?.total_energy_kwh?.toFixed(3)??`0.000`} kWh`,warning:i,tooltip:a},{icon:D,color:`text-yellow-500`,label:r(`stats.energyCost`),value:`${t} ${e?.total_energy_cost?.toFixed(2)??`0.00`}`,warning:i,tooltip:a},...(e?.total_wear_cost??0)>0?[{icon:Yt,color:`text-slate-500 dark:text-slate-300`,label:r(`stats.wearCost`),value:`${t} ${e?.total_wear_cost?.toFixed(2)??`0.00`}`,warning:!1,tooltip:void 0}]:[]].map(e=>(0,Q.jsxs)(`div`,{className:`flex items-start gap-3`,title:e.tooltip,children:[(0,Q.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark ${e.color}`,children:(0,Q.jsx)(e.icon,{className:`w-5 h-5`})}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`p`,{className:`text-xs text-bambu-gray flex items-center gap-1`,children:[e.label,e.warning&&(0,Q.jsx)(qt,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`,"aria-label":e.tooltip})]}),(0,Q.jsx)(`p`,{className:`text-xl font-bold text-white`,children:e.value})]})]},e.label))})}function ta({stats:e,printerMap:t,size:r=1}){let{t:i}=n(),a=(e?.successful_prints||0)+(e?.failed_prints||0),o=a?Math.round((e?.successful_prints||0)/a*100):0,s=r===1?112:r===2?128:144,c=s/2-8,l=c*2*Math.PI;return(0,Q.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,Q.jsxs)(`div`,{className:`relative flex-shrink-0`,style:{width:s,height:s},children:[(0,Q.jsxs)(`svg`,{className:`w-full h-full -rotate-90`,children:[(0,Q.jsx)(`circle`,{cx:s/2,cy:s/2,r:c,fill:`none`,stroke:`#3d3d3d`,strokeWidth:`10`}),(0,Q.jsx)(`circle`,{cx:s/2,cy:s/2,r:c,fill:`none`,stroke:`#00ae42`,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:`${o/100*l} ${l}`})]}),(0,Q.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,Q.jsxs)(`span`,{className:`font-bold text-white ${r>=2?`text-2xl`:`text-xl`}`,children:[o,`%`]})})]}),(0,Q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(T,{className:`w-4 h-4 text-status-ok flex-shrink-0`}),(0,Q.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:i(`stats.successful`)}),(0,Q.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.successful_prints||0})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(C,{className:`w-4 h-4 text-status-error flex-shrink-0`}),(0,Q.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:i(`stats.failed`)}),(0,Q.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.failed_prints||0})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(u,{className:`w-4 h-4 text-status-warning flex-shrink-0`}),(0,Q.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:i(`stats.cancelled`)}),(0,Q.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.cancelled_prints||0})]})]}),r>=2&&e?.prints_by_printer&&Object.keys(e.prints_by_printer).length>0&&(0,Q.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-bambu-gray font-medium mb-2`,children:i(`stats.printsByPrinter`)}),(0,Q.jsx)(`div`,{className:`grid gap-x-6 gap-y-1 ${r===4?`grid-cols-3`:`grid-cols-2`}`,style:{width:`fit-content`},children:Object.entries(e.prints_by_printer).map(([e,n])=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-bambu-gray truncate max-w-[120px]`,children:t.get(e)||`${i(`common.printer`)} ${e}`}),(0,Q.jsx)(`span`,{className:`text-white font-medium`,children:n})]},e))})]})]})]})}function na({stats:e,printerMap:t,size:r=1}){let{t:i}=n(),a=e?.average_time_accuracy;if(a==null)return(0,Q.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(`stats.noTimeAccuracyData`)})});let o=(Math.min(150,Math.max(50,a))-50)/100*100,s=(e=>e>=95&&e<=105?`#00ae42`:e>105?`#3b82f6`:`#f97316`)(a),c=a-100,l=r===1?112:r===2?128:144,u=l/2-8,d=u*2*Math.PI,f=r===1?3:r===2?6:999,p=e?.time_accuracy_by_printer?Object.entries(e.time_accuracy_by_printer).slice(0,f):[];return(0,Q.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,Q.jsxs)(`div`,{className:`relative flex-shrink-0`,style:{width:l,height:l},children:[(0,Q.jsxs)(`svg`,{className:`w-full h-full -rotate-90`,children:[(0,Q.jsx)(`circle`,{cx:l/2,cy:l/2,r:u,fill:`none`,stroke:`#3d3d3d`,strokeWidth:`10`}),(0,Q.jsx)(`circle`,{cx:l/2,cy:l/2,r:u,fill:`none`,stroke:s,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:`${o/100*d} ${d}`})]}),(0,Q.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,Q.jsxs)(`span`,{className:`font-bold text-white ${r>=2?`text-2xl`:`text-xl`}`,children:[a.toFixed(0),`%`]}),(0,Q.jsxs)(`span`,{className:`text-xs ${c>=0?`text-blue-700 dark:text-blue-400`:`text-orange-700 dark:text-orange-400`}`,children:[c>=0?`+`:``,c.toFixed(0),`%`]})]})]}),(0,Q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray`,children:[(0,Q.jsx)(ie,{className:`w-3 h-3 flex-shrink-0`}),(0,Q.jsx)(`span`,{children:i(`stats.perfectEstimate`)})]}),p.length>0&&(0,Q.jsx)(`div`,{className:`mt-2 ${r===4?`grid grid-cols-3 gap-x-6 gap-y-1`:r===2?`grid grid-cols-2 gap-x-6 gap-y-1`:`space-y-1`}`,style:{width:`fit-content`},children:p.map(([e,n])=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,Q.jsx)(`span`,{className:`text-bambu-gray truncate max-w-[100px]`,children:t.get(e)||`${i(`common.printer`)} ${e}`}),(0,Q.jsxs)(`span`,{className:`font-medium ${n>=95&&n<=105?`text-status-ok`:n>105?`text-blue-700 dark:text-blue-400`:`text-status-warning`}`,children:[n.toFixed(0),`%`]})]},e))})]})]})}function ra({printDates:e,dateFrom:t,dateTo:n}){let{days:r,hourlyCounts:i,maxCount:a}=(0,q.useMemo)(()=>{let r=new Date(t+`T00:00:00`),i=new Date(n+`T00:00:00`),a=[],o=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,s=new Date(r);for(;s<=i;)a.push({key:o(s),label:s.toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`})}),s.setDate(s.getDate()+1);let c={},l=0;return e.forEach(e=>{let t=tn(e);if(!t)return;let n=`${`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}-${t.getHours()}`;c[n]=(c[n]||0)+1,c[n]>l&&(l=c[n])}),{days:a,hourlyCounts:c,maxCount:Math.max(1,l)}},[e,t,n]),o=e=>{if(e===0)return`bg-bambu-dark`;let t=e/a;return t<=.25?`bg-bambu-green/30`:t<=.5?`bg-bambu-green/50`:t<=.75?`bg-bambu-green/75`:`bg-bambu-green`};return(0,Q.jsxs)(`div`,{className:`w-full overflow-x-auto`,children:[(0,Q.jsxs)(`div`,{className:`inline-flex flex-col`,style:{gap:2},children:[(0,Q.jsx)(`div`,{className:`flex`,style:{gap:2,marginLeft:84},children:Zi.map((e,t)=>(0,Q.jsx)(`div`,{className:`text-bambu-gray text-[10px] text-center`,style:{width:20,visibility:t%2==0?`visible`:`hidden`},children:e},t))}),r.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center`,style:{gap:2},children:[(0,Q.jsx)(`div`,{className:`text-bambu-gray text-[10px] flex-shrink-0 truncate`,style:{width:80},children:e.label}),Array.from({length:24},(t,n)=>{let r=i[`${e.key}-${n}`]||0;return(0,Q.jsx)(`div`,{className:`rounded-sm ${o(r)}`,style:{width:20,height:20},title:`${e.label} ${Zi[n]}: ${r} print${r===1?``:`s`}`},n)})]},e.key))]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mt-3 text-bambu-gray text-xs`,children:[(0,Q.jsx)(`span`,{children:`Less`}),(0,Q.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-dark`,style:{width:20,height:20}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green/30`,style:{width:20,height:20}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green/50`,style:{width:20,height:20}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green/75`,style:{width:20,height:20}}),(0,Q.jsx)(`div`,{className:`rounded-sm bg-bambu-green`,style:{width:20,height:20}})]}),(0,Q.jsx)(`span`,{children:`More`})]})]})}function ia({printDates:e,size:t=2,dateFrom:n,dateTo:r}){let i=(0,q.useMemo)(()=>n&&r?Math.max((new Date(r).getTime()-new Date(n).getTime())/864e5,0)+1:n?Math.max((Date.now()-new Date(n).getTime())/864e5,0)+1:1/0,[n,r]);return i<=7&&n&&r?(0,Q.jsx)(ra,{printDates:e,dateFrom:n,dateTo:r}):(0,Q.jsx)(Ni,{printDates:e,months:i===1/0?t===1?3:t===2?6:12:Math.max(1,Math.ceil(i/30))})}function aa({stats:e,archives:t,printerMap:r}){let{t:i}=n(),[a,o]=(0,q.useState)(`weight`),[s,c]=(0,q.useState)(`weight`),l=(0,q.useMemo)(()=>{let n=new Map;return e?.prints_by_printer&&Object.entries(e.prints_by_printer).forEach(([e,t])=>{let r=n.get(e)||{prints:0,weight:0,time:0};r.prints=t,n.set(e,r)}),t.forEach(t=>{if(!t.printer_id)return;let r=String(t.printer_id),i=n.get(r)||{prints:0,weight:0,time:0};i.weight+=t.filament_used_grams||0,i.time+=t.actual_time_seconds||t.print_time_seconds||0,e?.prints_by_printer||i.prints++,n.set(r,i)}),Array.from(n.entries()).map(([e,t])=>({name:r.get(e)||`${i(`common.printer`)} ${e}`,value:a===`prints`?t.prints:a===`weight`?Math.round(t.weight):Math.round(t.time/3600*10)/10})).sort((e,t)=>t.value-e.value)},[e,t,r,a,i]),u=(0,q.useMemo)(()=>{let e=Array.from({length:24},(e,t)=>({hour:t,label:Zi[t],total:0,failures:0}));return t.forEach(t=>{if(!t.started_at)return;let n=tn(t.started_at);if(!n)return;let r=n.getHours();e[r].total++,t.status===`failed`&&e[r].failures++}),e},[t]),d=(0,q.useMemo)(()=>{let e=Qi.map(e=>({name:e.key,count:0}));return t.forEach(t=>{let n=t.actual_time_seconds||t.print_time_seconds;if(!(!n||n<=0)){for(let t=0;t<Qi.length;t++)if(n<=Qi[t].max){e[t].count++;break}}}),e},[t]),f=(0,q.useMemo)(()=>{let e=[0,0,0,0,0,0,0],n=new Set;t.forEach(t=>{let r=tn(t.created_at)||new Date(t.created_at),i=r.getDay()-1;i<0&&(i=6),s===`prints`?e[i]++:s===`weight`?e[i]+=t.filament_used_grams||0:e[i]+=(t.actual_time_seconds||t.print_time_seconds||0)/3600;let a=new Date(r);a.setDate(r.getDate()-(r.getDay()+6)%7),n.add(`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,`0`)}-${String(a.getDate()).padStart(2,`0`)}`)});let r=Math.max(n.size,1);return Xi.map((t,n)=>({name:t,avg:Math.round(e[n]/r*10)/10}))},[t,s]),p=e=>({unit:e===`weight`?`g`:e===`time`?`h`:``,color:e===`weight`?`#00ae42`:e===`time`?`#3b82f6`:`#f59e0b`}),m=p(a),h=i(a===`weight`?`stats.filamentByWeight`:a===`time`?`stats.hours`:`common.prints`),g=p(s),_=i(s===`weight`?`stats.avgWeight`:s===`time`?`stats.avgTime`:`stats.avgPrints`);return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.printsByPrinter`)}),(0,Q.jsx)(Fi,{value:a,onChange:o})]}),l.length>0?(0,Q.jsx)(z,{width:`100%`,height:Math.max(140,l.length*40),children:(0,Q.jsxs)(_i,{data:l,layout:`vertical`,margin:{left:10},children:[(0,Q.jsx)(Ct,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(tt,{type:`number`,stroke:`#9ca3af`,tick:{fontSize:11},unit:m.unit}),(0,Q.jsx)(kt,{type:`category`,dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11},width:100}),(0,Q.jsx)(F,{contentStyle:$i,formatter:e=>[a===`weight`?K(Number(e??0)):`${e??0}${m.unit}`,h]}),(0,Q.jsx)(hi,{dataKey:`value`,fill:m.color,radius:[0,4,4,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(`stats.noPrinterData`)})]}),(0,Q.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:i(`stats.printDuration`)}),t.length>0?(0,Q.jsx)(z,{width:`100%`,height:160,children:(0,Q.jsxs)(_i,{data:d,children:[(0,Q.jsx)(Ct,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(tt,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,Q.jsx)(kt,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,Q.jsx)(F,{contentStyle:$i}),(0,Q.jsx)(hi,{dataKey:`count`,name:i(`common.prints`),fill:`#00ae42`,radius:[4,4,0,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(`stats.noArchiveData`)})]}),(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.printHabits`)}),(0,Q.jsx)(Fi,{value:s,onChange:c})]}),t.length>0?(0,Q.jsx)(z,{width:`100%`,height:160,children:(0,Q.jsxs)(_i,{data:f,children:[(0,Q.jsx)(Ct,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(tt,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,Q.jsx)(kt,{stroke:`#9ca3af`,tick:{fontSize:11},unit:g.unit}),(0,Q.jsx)(F,{contentStyle:$i,formatter:e=>[`${e??0}${g.unit}`,_]}),(0,Q.jsx)(hi,{dataKey:`avg`,fill:g.color,radius:[4,4,0,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(`stats.noArchiveData`)})]}),(0,Q.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,Q.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:i(`stats.printTimeOfDay`)}),t.length>0?(0,Q.jsx)(z,{width:`100%`,height:160,children:(0,Q.jsxs)(_i,{data:u,children:[(0,Q.jsx)(Ct,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(tt,{dataKey:`label`,stroke:`#9ca3af`,tick:{fontSize:10},interval:5}),(0,Q.jsx)(kt,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,Q.jsx)(F,{contentStyle:$i}),(0,Q.jsx)(hi,{dataKey:`total`,name:i(`stats.totalPrints`),fill:`#00ae42`,radius:[2,2,0,0]}),(0,Q.jsx)(hi,{dataKey:`failures`,name:i(`stats.failed`),fill:`#ef4444`,radius:[2,2,0,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(`stats.noArchiveData`)})]})]})]})}function oa({archives:e,currency:t,dateFrom:r,dateTo:i}){let{t:a}=n();return!e||e.length===0?(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:a(`stats.noPrintData`)}):(0,Q.jsx)(Bi,{archives:e,currency:t,dateFrom:r,dateTo:i})}function sa({size:e=1,dateFrom:t,dateTo:i,createdById:a}){let{t:s}=n(),c=!!(t||i),{data:l,isLoading:u}=o({queryKey:[`failureAnalysis`,t,i,a??`all`],queryFn:()=>r.getFailureAnalysis({...c?{dateFrom:t,dateTo:i}:{days:30},createdById:a})});if(u)return(0,Q.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,Q.jsx)(A,{className:`w-6 h-6 text-bambu-green animate-spin`})});if(!l||l.total_prints===0)return(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:s(c?`stats.noPrintDataInRange`:`stats.noPrintDataLast30Days`)});let d=e===1?5:e===2?8:999,f=Object.entries(l.failures_by_reason).sort(([,e],[,t])=>t-e),p=f.slice(0,d),m=f.length>d;return(0,Q.jsxs)(`div`,{className:`${e>=2?`flex gap-8`:`space-y-4`}`,children:[(0,Q.jsxs)(`div`,{className:e>=2?`flex-shrink-0`:``,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-4`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(qt,{className:`w-5 h-5 ${l.failure_rate>20?`text-status-error`:l.failure_rate>10?`text-status-warning`:`text-status-ok`}`}),(0,Q.jsxs)(`span`,{className:`font-bold text-white ${e>=2?`text-3xl`:`text-2xl`}`,children:[l.failure_rate.toFixed(1),`%`]})]})}),(0,Q.jsx)(`div`,{className:`text-sm text-bambu-gray mt-1`,children:s(`stats.failedPrintsCount`,{failed:l.failed_prints,total:l.total_prints})}),(l.rejected_prints??0)>0&&(0,Q.jsxs)(`div`,{className:`text-sm mt-1`,children:[(0,Q.jsx)(`span`,{className:`text-status-warning`,children:s(`stats.rejectedPrintsCount`,{rejected:l.rejected_prints})}),(0,Q.jsx)(`span`,{className:`text-bambu-gray ml-2`,children:s(`stats.yieldRate`,{rate:(l.yield_rate??0).toFixed(1)})})]}),l.trend&&l.trend.length>=2&&(0,Q.jsx)(`div`,{className:`${e>=2?`mt-4`:`mt-2 pt-2 border-t border-bambu-dark-tertiary`}`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Q.jsx)(Be,{className:`w-4 h-4 ${l.trend[l.trend.length-1].failure_rate<l.trend[l.trend.length-2].failure_rate?`text-status-ok`:`text-status-error`}`}),(0,Q.jsx)(`span`,{className:`text-bambu-gray`,children:s(`stats.lastWeekRate`,{rate:l.trend[l.trend.length-1].failure_rate.toFixed(1)})})]})})]}),p.length>0&&(0,Q.jsxs)(`div`,{className:`flex-1 ${e>=2?`border-l border-bambu-dark-tertiary pl-8`:`pt-2`}`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-bambu-gray font-medium mb-2`,children:s(e>=2?`stats.failureReasons`:`stats.topFailureReasons`)}),(0,Q.jsx)(`div`,{className:`${e===4?`grid grid-cols-2 gap-x-6 gap-y-1`:`space-y-1`}`,children:p.map(([t,n])=>(0,Q.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-white truncate ${e===4?`max-w-[200px]`:`max-w-[160px]`}`,children:t?s(`editArchive.failureReasons.${t}`,{defaultValue:t}):s(`common.unknown`)}),(0,Q.jsx)(`span`,{className:`text-bambu-gray ml-2`,children:n})]},t))}),m&&(0,Q.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:s(`common.more`,{count:f.length-d})})]})]})}function ca({archives:e,currency:t}){let{t:r}=n(),i=(0,q.useMemo)(()=>{let n=[];if(e.length===0)return n;let i=t=>{let n=null,r=0;return e.forEach(e=>{let i=t(e);i&&i>r&&(r=i,n=e)}),{archive:n,value:r}},a=i(e=>e.status===`completed`?e.actual_time_seconds:null);a.archive&&n.push({icon:E,iconColor:`text-blue-600 dark:text-blue-400`,label:r(`stats.longestPrint`),value:en(a.value),detail:a.archive.print_name||null});let o=i(e=>e.filament_used_grams);o.archive&&n.push({icon:N,iconColor:`text-orange-600 dark:text-orange-400`,label:r(`stats.heaviestPrint`),value:K(o.value),detail:o.archive.print_name||null});let s=i(e=>(e.cost??0)+(e.energy_cost??0)+(e.wear_cost??0));s.archive&&n.push({icon:D,iconColor:`text-green-600 dark:text-green-400`,label:r(`stats.mostExpensivePrint`),value:`${t}${s.value.toFixed(2)}`,detail:s.archive.print_name||null});let c=new Map;e.forEach(e=>{let t=tn(e.created_at)||new Date(e.created_at),n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`;c.set(n,(c.get(n)||0)+1)});let l=``,u=0;c.forEach((e,t)=>{e>u&&(u=e,l=t)}),u>1&&n.push({icon:b,iconColor:`text-purple-600 dark:text-purple-400`,label:r(`stats.busiestDay`),value:`${u} ${r(`common.prints`)}`,detail:(()=>{let[e,t,n]=l.split(`-`).map(Number);return new Date(e,t-1,n).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})})()});let d=[...e].filter(e=>e.status===`completed`||e.status===`failed`).sort((e,t)=>new Date(t.completed_at||t.created_at).getTime()-new Date(e.completed_at||e.created_at).getTime()),f=0;for(let e of d)if(e.status===`completed`)f++;else break;return f>0&&n.push({icon:Xt,iconColor:`text-yellow-600 dark:text-yellow-400`,label:r(`stats.successStreak`),value:`${f}`,detail:f===1?r(`stats.streakPrint`):r(`stats.streakPrints`,{count:f})}),n},[e,t,r]);return i.length===0?(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)}):(0,Q.jsx)(`div`,{className:`space-y-3`,children:i.map((e,t)=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(`div`,{className:`p-1.5 rounded-lg bg-bambu-dark ${e.iconColor}`,children:(0,Q.jsx)(e.icon,{className:`w-4 h-4`})}),(0,Q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.label}),(0,Q.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-bold text-white`,children:e.value}),e.detail&&(0,Q.jsx)(`span`,{className:`text-xs text-bambu-gray truncate`,children:e.detail})]})]})]},t))})}function la(){let{t:e}=n(),{showToast:t}=w(),{hasPermission:i,authEnabled:a}=Zt(),[s,c]=(0,q.useState)(!1),[l,u]=(0,q.useState)(!1),[d,f]=(0,q.useState)(0),[p,m]=(0,q.useState)(0),[h,g]=(0,q.useState)(!1),[_,v]=(0,q.useState)(null),[y,C]=(0,q.useState)(!1),T=a&&i(`stats:filter_by_user`),[E,D]=(0,q.useState)(()=>{try{let e=localStorage.getItem(`bambusy-stats-timeframe`);if(e){let t=JSON.parse(e);if(t.preset)return t}}catch{}return{preset:`all-time`,dateFrom:void 0,dateTo:void 0}}),[ee,k]=(0,q.useState)(!1);(0,q.useEffect)(()=>{localStorage.setItem(`bambusy-stats-timeframe`,JSON.stringify(E))},[E]);let j=(0,q.useMemo)(()=>E.preset===`custom`?{dateFrom:E.dateFrom,dateTo:E.dateTo}:Ji(E.preset),[E]);(0,q.useEffect)(()=>{let e=()=>{try{let e=localStorage.getItem(`bambusy-dashboard-layout-v2`);if(e){let t=JSON.parse(e);m(t.hidden?.length||0)}}catch{m(0)}};e(),window.addEventListener(`storage`,e);let t=setInterval(e,2e3);return()=>{window.removeEventListener(`storage`,e),clearInterval(t)}},[d]);let M=_===null?void 0:_,{data:N,isLoading:ie,isFetching:ae,refetch:oe}=o({queryKey:[`archiveStats`,j.dateFrom,j.dateTo,M??`all`],queryFn:()=>r.getArchiveStats({dateFrom:j.dateFrom,dateTo:j.dateTo,createdById:M})}),{data:se}=o({queryKey:[`printers`],queryFn:r.getPrinters}),{data:ce,isFetching:le,refetch:ue}=o({queryKey:[`archivesSlim`,j.dateFrom,j.dateTo,M??`all`],queryFn:()=>r.getArchivesSlim(j.dateFrom,j.dateTo,M)}),{data:de}=nn(),{data:fe,isPending:pe}=o({queryKey:[`spoolman-settings`],queryFn:r.getSpoolmanSettings,staleTime:300*1e3}),me=!pe,P=fe?.spoolman_enabled===`true`&&!!fe?.spoolman_url,{data:he}=o({queryKey:[`users`,`slim`],queryFn:r.getUsersSlim,enabled:T}),ge=(0,q.useMemo)(()=>_===null?e(`stats.allUsers`,`All Users`):_===-1?e(`stats.noUser`,`No User (System)`):he?.find(e=>e.id===_)?.username??`?`,[_,he,e]),_e=async n=>{u(!1),c(!0);try{let{blob:i,filename:a}=await r.exportStats({format:n,days:90,createdById:M}),o=URL.createObjectURL(i),s=document.createElement(`a`);s.href=o,s.download=a,s.click(),URL.revokeObjectURL(o),t(e(`stats.exportDownloaded`))}catch{t(e(`stats.exportFailed`),`error`)}finally{c(!1)}},ve=async()=>{g(!0);try{let n=await r.recalculateCosts();await Promise.all([oe(),ue()]),t(e(`stats.recalculatedCosts`,{count:n.updated}))}catch{t(e(`stats.recalculateFailed`),`error`)}finally{g(!1)}},ye=(ae||le)&&!ie,be=Qt(de?.currency||`USD`),xe=(0,q.useMemo)(()=>new Map([...Object.entries(N?.printer_names||{}),...se?.map(e=>[String(e.id),e.name])||[]]),[N?.printer_names,se]),Se=(0,q.useMemo)(()=>ce?.map(e=>e.created_at)||[],[ce]);if(ie)return(0,Q.jsx)(`div`,{className:`p-4 md:p-8`,children:(0,Q.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`stats.loadingStats`)})});let Ce=[{id:`quick-stats`,title:e(`stats.quickStats`),component:(0,Q.jsx)(ea,{stats:N,currency:be}),defaultSize:2},{id:`success-rate`,title:e(`stats.successRate`),component:e=>(0,Q.jsx)(ta,{stats:N,printerMap:xe,size:e}),defaultSize:1},{id:`time-accuracy`,title:e(`stats.timeAccuracy`),component:e=>(0,Q.jsx)(na,{stats:N,printerMap:xe,size:e}),defaultSize:1},{id:`failure-analysis`,title:e(`stats.failureAnalysis`),component:e=>(0,Q.jsx)(sa,{size:e,dateFrom:j.dateFrom,dateTo:j.dateTo,createdById:M}),defaultSize:1},{id:`print-activity`,title:e(`stats.printActivity`),component:e=>(0,Q.jsx)(ia,{printDates:Se,size:e,dateFrom:j.dateFrom,dateTo:j.dateTo}),defaultSize:2},{id:`records`,title:e(`stats.records`),component:(0,Q.jsx)(ca,{archives:ce||[],currency:be}),defaultSize:1},{id:`printer-stats`,title:e(`stats.printerStats`),component:(0,Q.jsx)(aa,{stats:N,archives:ce||[],printerMap:xe}),defaultSize:4},{id:`filament-trends`,title:e(`stats.filamentTrends`),component:(0,Q.jsx)(oa,{archives:ce||[],currency:be,dateFrom:j.dateFrom,dateTo:j.dateTo}),defaultSize:4},...!me||P?[]:[{id:`suppliers`,title:e(`stats.suppliers.title`),component:(0,Q.jsx)(Hi,{currency:be,dateFrom:j.dateFrom,dateTo:j.dateTo}),defaultSize:2}],...!me||P?[]:[{id:`material-numbers`,title:e(`stats.materialNumbers.title`),component:(0,Q.jsx)(Wi,{currency:be,dateFrom:j.dateFrom,dateTo:j.dateTo}),defaultSize:2}]];return(0,Q.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,Q.jsx)(x,{className:`w-7 h-7 text-bambu-green`}),e(`stats.title`)]}),ye&&(0,Q.jsx)(A,{className:`w-5 h-5 text-bambu-green animate-spin`})]}),(0,Q.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`stats.subtitle`)})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[p>0&&(0,Q.jsxs)(G,{variant:`secondary`,onClick:()=>{window.dispatchEvent(new CustomEvent(`toggle-hidden-panel`))},children:[(0,Q.jsx)(te,{className:`w-4 h-4`}),e(`stats.hiddenCount`,{count:p})]}),(0,Q.jsxs)(G,{variant:`secondary`,onClick:()=>{localStorage.removeItem(`bambusy-dashboard-layout-v2`),f(e=>e+1),t(e(`stats.layoutReset`))},disabled:!i(`settings:update`),title:i(`settings:update`)?void 0:e(`stats.noPermissionResetLayout`),children:[(0,Q.jsx)(re,{className:`w-4 h-4`}),e(`stats.resetLayout`)]}),(0,Q.jsxs)(G,{variant:`secondary`,onClick:ve,disabled:h||!i(`archives:update_all`),title:i(`archives:update_all`)?e(`stats.recalculateCostsHint`):e(`stats.noPermissionRecalculate`),children:[h?(0,Q.jsx)(A,{className:`w-4 h-4 animate-spin`}):(0,Q.jsx)(dn,{className:`w-4 h-4`}),e(`stats.recalculateCosts`)]}),(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(G,{variant:`secondary`,onClick:()=>u(!l),disabled:s,children:[s?(0,Q.jsx)(A,{className:`w-4 h-4 animate-spin`}):(0,Q.jsx)(O,{className:`w-4 h-4`}),e(`stats.exportStats`)]}),l&&(0,Q.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20`,children:[(0,Q.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-t-lg`,onClick:()=>_e(`csv`),children:[(0,Q.jsx)(ne,{className:`w-4 h-4`}),e(`stats.exportAsCsv`)]}),(0,Q.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-b-lg`,onClick:()=>_e(`xlsx`),children:[(0,Q.jsx)(O,{className:`w-4 h-4`}),e(`stats.exportAsExcel`)]})]})]}),T&&he&&he.length>0&&(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(G,{variant:`secondary`,onClick:()=>C(!y),children:[(0,Q.jsx)(Jt,{className:`w-4 h-4`}),ge,(0,Q.jsx)(S,{className:`w-3 h-3`})]}),y&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>C(!1)}),(0,Q.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 p-2 max-h-64 overflow-y-auto`,children:[(0,Q.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${_===null?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{v(null),C(!1)},children:e(`stats.allUsers`,`All Users`)}),(0,Q.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${_===-1?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{v(-1),C(!1)},children:e(`stats.noUser`,`No User (System)`)}),(0,Q.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary my-1`}),he.map(e=>(0,Q.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${_===e.id?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{v(e.id),C(!1)},children:e.username},e.id))]})]})]}),(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(G,{variant:`secondary`,onClick:()=>k(!ee),children:[(0,Q.jsx)(b,{className:`w-4 h-4`}),e(`stats.timeframe.${E.preset}`),(0,Q.jsx)(S,{className:`w-3 h-3`})]}),ee&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>k(!1)}),(0,Q.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-64 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 p-2`,children:[Yi.map(t=>(0,Q.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${E.preset===t?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{D({preset:t,dateFrom:void 0,dateTo:void 0}),k(!1)},children:e(`stats.timeframe.${t}`)},t)),(0,Q.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary my-2`}),(0,Q.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${E.preset===`custom`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>D(e=>({...e,preset:`custom`})),children:e(`stats.timeframe.custom`)}),E.preset===`custom`&&(0,Q.jsxs)(`div`,{className:`mt-2 px-1 pb-1 space-y-2`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:e(`stats.timeframe.from`)}),(0,Q.jsx)(`input`,{type:`date`,value:E.dateFrom||``,max:E.dateTo||$(new Date),onChange:e=>D(t=>({...t,dateFrom:e.target.value||void 0})),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-sm text-white`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:e(`stats.timeframe.to`)}),(0,Q.jsx)(`input`,{type:`date`,value:E.dateTo||``,min:E.dateFrom,max:$(new Date),onChange:e=>D(t=>({...t,dateTo:e.target.value||void 0})),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-sm text-white`})]}),(0,Q.jsx)(G,{variant:`primary`,onClick:()=>k(!1),className:`w-full`,children:e(`common.apply`)})]})]})]})]})]})]}),(0,Q.jsx)(Ki,{widgets:Ce,storageKey:`bambusy-dashboard-layout-v2`,stackBelow:640,hideControls:!0},d)]})}export{la as StatsPage};