StatsPage-D0cqrND3.js 89 KB

1
  1. import{i as e}from"./chunk-aKtaBQYM.js";import{C as t,D as n,a as r,w as i}from"./client-BdOyoZJz.js";import{t as a}from"./useQuery-CCy0EwsM.js";import{t as o}from"./createLucideIcon-Yo2YoYjm.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-uF6WmP46.js";import{t as b}from"./calendar-DiVEdzUw.js";import{a as x,n as S}from"./info-DcT0QU8O.js";import{n as C,r as w}from"./ToastContext-VFOrCCoA.js";import{t as T}from"./dollar-sign-ChtX2KHo.js";import{t as E}from"./eye-off-B6dY82pM.js";import{t as D}from"./file-spreadsheet-8-W2zdLi.js";import{t as ee}from"./grip-vertical-D4urhrwn.js";import{t as O}from"./loader-circle-CB4leTZa.js";import{t as k}from"./maximize-2-Cggm3z8J.js";import{t as A}from"./minimize-2-BLq3FJZO.js";import{t as j}from"./package-D9xR0eOt.js";import{t as M}from"./target-PpftuQXz.js";import{$ as te,$t as ne,A as re,An as ie,At as ae,Bt as oe,C as se,Cn as ce,Ct as le,D as ue,Dn as N,Dt as de,E as fe,En as pe,Et as me,Fn as he,G as ge,H as _e,I as ve,In as ye,It as be,J as xe,K as Se,Kt as Ce,L as P,Ln as we,Lt as Te,M as Ee,Mn as F,N as De,Nt as Oe,O as ke,On as Ae,Ot as je,Pt as Me,Q as Ne,Qt as Pe,R as Fe,Rn as Ie,S as Le,Sn as I,St as Re,T as ze,U as Be,Ut as L,V as Ve,W as He,X as Ue,Xt as R,Y as We,Z as Ge,Zt as Ke,_t as qe,a as Je,at as Ye,bt as Xe,c as Ze,cn as z,ct as Qe,d as $e,dn as et,dt as tt,en as nt,et as rt,f as it,ft as at,gn as B,hn as ot,i as st,in as ct,j as lt,kt as ut,l as dt,lt as ft,mn as V,mt as pt,n as mt,nn as ht,nt as gt,o as _t,on as vt,ot as H,p as yt,pt as bt,q as xt,r as St,rn as Ct,rt as wt,s as Tt,sn as Et,st as Dt,t as Ot,tn as kt,tt as At,un as jt,ut as Mt,v as Nt,vn as Pt,vt as Ft,w as It,wn as Lt,wt as Rt,xn as U,xt as zt,yn as Bt,yt as Vt,z as Ht}from"./CartesianChart-DcboTNtX.js";import{t as Ut}from"./triangle-alert-gIik0G2C.js";import{t as W}from"./Button-pwVKPiYn.js";import{h as Wt,o as Gt,v as Kt}from"./date-G9KUauqz.js";import{Dt as qt,Gt as Jt,Nn as Yt,On as Xt,Sn as Zt,at as Qt,bt as $t,xn as en,xt as tn,yt as nn}from"./index-BoVbGTav.js";import{n as rn,t as an}from"./ErrorBarContext-6wvnfk_q.js";import{i as G,n as on,r as K,t as sn}from"./AreaChart-J0I0YlYN.js";var cn=o(`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`}]]),ln=e=>null;ln.displayName=`Cell`;var un=e=>e.graphicalItems.polarItems,dn=V([un,H,V([zt,Xe],gt)],te),fn=V([V([dn],Ne),ut],Ue),pn=V([fn,H,dn],xt);V([fn,H,dn],(e,t,n)=>n.length>0?e.flatMap(e=>n.flatMap(n=>({value:z(e,t.dataKey??n.dataKey),errorDomain:[]}))).filter(Boolean):t?.dataKey==null?e.map(e=>({value:e,errorDomain:[]})):e.map(e=>({value:z(e,t.dataKey),errorDomain:[]})));var mn=()=>void 0,hn=V([H,L,fn,pn,je,zt,V([H,Qe,ft,mn,V([fn,H,dn,wt,zt],Ge),mn,L,zt],At)],xe);V([Mt,V([H,hn,V([hn,tt,Mt],rt),zt],We)],qe);function gn(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 _n(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?gn(Object(n),!0).forEach(function(t){vn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vn(e,t,n){return(t=yn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yn(e){var t=bn(e,`string`);return typeof t==`symbol`?t:t+``}function bn(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 xn=V([un,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`pie`).find(e=>e.id===t)),Sn=[],Cn=(e,t,n)=>n?.length===0?Sn:n,wn=V([ut,xn,Cn],(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=>_n(_n({},t.presentationProps),e.props))),i!=null)return i}}),Tn=V([wn,xn,Cn],(e,t,n)=>{if(!(e==null||t==null))return e.map((e,r)=>{var i,a=z(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:Et(a,t.dataKey),color:o,payload:e,type:t.legendType}})}),En=V([wn,xn,Cn,ne],(e,t,n,r)=>{if(!(t==null||e==null))return Qn({offset:r,pieSettings:t,displayedData:e,cells:n})}),Dn=(e,t,n)=>{var r=ot();return(i,a)=>o=>{e?.(i,a,o),r(Se({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},On=e=>{var t=ot();return(n,r)=>i=>{e?.(n,r,i),t(He())}},kn=(e,t,n)=>{var r=ot();return(i,a)=>o=>{e?.(i,a,o),r(ge({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},q=e(n()),An=e(ie()),jn=[`key`],Mn=[`onMouseEnter`,`onClick`,`onMouseLeave`],Nn=[`id`],Pn=[`id`];function Fn(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?Fn(Object(n),!0).forEach(function(t){In(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function In(e,t,n){return(t=Ln(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ln(e){var t=Rn(e,`string`);return typeof t==`symbol`?t:t+``}function Rn(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 zn(e,t){if(e==null)return{};var n,r,i=Bn(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 Bn(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 Vn(e){var t=(0,q.useMemo)(()=>ke(e.children,ln),[e.children]),n=B(n=>Tn(n,e.id,t));return n==null?null:q.createElement(fe,{legendPayload:n})}var Hn=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:Et(s,t),hide:c,type:l,color:o,unit:``,graphicalItemId:u}};return q.createElement(ue,{tooltipEntrySettings:d})}),Un=(e,t)=>e>t?`start`:e<t?`end`:`middle`,Wn=(e,t,n)=>U(typeof t==`function`?t(e):t,n,n*.8),Gn=(e,t,n)=>{var{top:r,left:i,width:a,height:o}=t,s=Oe(a,o);return{cx:i+U(e.cx,a,a/2),cy:r+U(e.cy,o,o/2),innerRadius:U(e.innerRadius,s,0),outerRadius:Wn(n,e.outerRadius,s),maxRadius:e.maxRadius||Math.sqrt(a*a+o*o)/2}},Kn=(e,t)=>N(t-e)*Math.min(Math.abs(t-e),360),qn=(e,t)=>{if(q.isValidElement(e))return q.cloneElement(e,t);if(typeof e==`function`)return e(t);var n=we(`recharts-pie-label-line`,typeof e==`boolean`?``:e.className),{key:r}=t,i=zn(t,jn);return q.createElement(oe,Y({},i,{type:`linear`,className:n}))},Jn=(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=we(`recharts-pie-label-text`,re(e));return q.createElement(ve,Y({},t,{alignmentBaseline:`middle`,className:i}),r)};function Yn(e){var{sectors:t,props:n,showLabels:r}=e,{label:i,labelLine:a,dataKey:o}=n;if(!r||!i||!t)return null;var s=he(n),c=ye(i),l=ye(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=Me(e.cx,e.cy,e.outerRadius+u,n),d=J(J(J(J({},s),e),{},{stroke:`none`},c),{},{index:t,textAnchor:Un(r.x,e.cx)},r),f=J(J(J(J({},s),e),{},{fill:`none`,stroke:e.fill},l),{},{index:t,points:[Me(e.cx,e.cy,e.outerRadius,n),r],key:`line`});return q.createElement(Ht,{zIndex:Re.label,key:`label-${e.startAngle}-${e.endAngle}-${e.midAngle}-${t}`},q.createElement(F,null,a&&qn(a,f),Jn(i,d,z(e,o))))});return q.createElement(F,{className:`recharts-pie-labels`},d)}function Xn(e){var{sectors:t,props:n,showLabels:r}=e,{label:i}=n;return typeof i==`object`&&i&&`position`in i?q.createElement(Ee,{label:i}):q.createElement(Yn,{sectors:t,props:n,showLabels:r})}function Zn(e){var{sectors:t,activeShape:n,inactiveShape:r,allOtherPieProps:i,shape:a,id:o}=e,s=B(Be),c=B(Ve),l=B(_e),{onMouseEnter:u,onClick:d,onMouseLeave:f}=i,p=zn(i,Mn),m=Dn(u,i.dataKey,o),h=On(f),g=kn(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,[kt]:u,[nt]:o});return q.createElement(F,Y({key:`sector-${e?.startAngle}-${e?.endAngle}-${e.midAngle}-${u}`,tabIndex:-1,className:`recharts-pie-sector`},Bt(p,e,u),{onMouseEnter:m(e,u),onMouseLeave:h(e,u),onClick:g(e,u)}),q.createElement(rn,Y({option:a??_,index:u,shapeType:`sector`,isActive:f},v)))}))}function Qn(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=Kn(o,s),p=Math.abs(f),m=n.length<=1?0:t.paddingAngle??0,h=n.filter(e=>z(e,c,0)!==0).length,g=(p>=360?h:h-1)*m,_=p-h*d-g,v=n.reduce((e,t)=>{var n=z(t,c,0);return e+(pe(n)?n:0)},0),y;if(v>0){var b;y=n.map((e,n)=>{var s=z(e,c,0),p=z(e,l,n),h=Gn(t,i,e),g=(pe(s)?s:0)/v,y,x=J(J({},e),r&&r[n]&&r[n].props);y=n?b.endAngle+N(f)*m*(s===0?0:1):o;var S=y+N(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=Me(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:N(f)*m}),b})}return y}function $n(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(De,{value:t?i:void 0},r)}function er(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=be(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($n,{showLabels:!h,sectors:i},q.createElement(Te,{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,An.default)(t,`paddingAngle`,0):0;if(r){var s=I(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=I(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(F,null,q.createElement(Zn,{sectors:a,activeShape:l,inactiveShape:u,allOtherPieProps:t,shape:t.shape,id:r}))}),q.createElement(Xn,{showLabels:!h,sectors:i,props:t}),t.children)}var tr={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:Re.area};function nr(e){var{id:t}=e,n=zn(e,Nn),{hide:r,className:i,rootTabIndex:a}=e,o=(0,q.useMemo)(()=>ke(e.children,ln),[e.children]),s=B(e=>En(e,t,o)),c=(0,q.useRef)(null),l=we(`recharts-pie`,i);return r||s==null?(c.current=null,q.createElement(F,{tabIndex:a,className:l})):q.createElement(Ht,{zIndex:e.zIndex},q.createElement(Hn,{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(F,{tabIndex:a,className:l},q.createElement(er,{props:J(J({},n),{},{sectors:s}),previousSectorsRef:c,id:t})))}function rr(e){var t=Pt(e,tr),{id:n}=t,r=zn(t,Pn),i=he(r);return q.createElement(It,{id:n,type:`pie`},e=>q.createElement(q.Fragment,null,q.createElement(se,{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(Vn,Y({},r,{id:e})),q.createElement(nr,Y({},r,{id:e}))))}rr.displayName=`Pie`;var ir=(e,t,n)=>{var r=n??e;if(!Lt(r))return U(r,t,0)},ar=(e,t,n)=>{var r={},i=e.filter(Ft),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:ir(t,n,i[0]?.barSize)}}),c=a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>e!=null),barSize:ir(t,n,e.barSize)}));return[...s,...c]};function or(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 sr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?or(Object(n),!0).forEach(function(t){cr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):or(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cr(e,t,n){return(t=lr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lr(e){var t=ur(e,`string`);return typeof t==`symbol`?t:t+``}function ur(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 dr(e,t,n,r,i){var a=r.length;if(!(a<1)){var o=U(e,n,0,!0),s,c=[];if(et(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=U(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=et(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 fr=(e,t,n,r,i,a,o)=>{var s=Lt(o)?t:o,c=dr(n,r,i===a?a:i,e,s);return i!==a&&c!=null&&(c=c.map(e=>sr(sr({},e),{},{position:sr(sr({},e.position),{},{offset:e.position.offset-i/2})}))),c},pr=(e,t)=>{var n=Vt(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)}}}},mr=(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 hr(e,t){return e&&typeof e==`object`&&`zIndex`in e&&typeof e.zIndex==`number`&&et(e.zIndex)?e.zIndex:t}var gr=!0,_r=`Invariant failed`;function vr(e,t){if(!e){if(gr)throw Error(_r);var n=typeof t==`function`?t():t,r=n?`${_r}: ${n}`:_r;throw Error(r)}}function yr(){return yr=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},yr.apply(null,arguments)}function br(e){return q.createElement(rn,yr({shapeType:`rectangle`,activeClassName:`recharts-active-bar`},e))}var xr=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(pe(e))return e;var i=pe(n)||Lt(n);return i?e(n,r):(!i&&vr(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},Sr=(e,t,n)=>n,Cr=V([pt,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),wr=V([Cr],e=>e?.maxBarSize),Tr=(e,t,n,r)=>r,Er=V([L,pt,K,G,Sr],(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`)),Dr=(e,t,n)=>{var r=L(e),i=K(e,t),a=G(e,t);if(!(i==null||a==null))return r===`horizontal`?at(e,`yAxis`,a,n):at(e,`xAxis`,i,n)},Or=V([Er,me,(e,t)=>{var n=L(e),r=K(e,t),i=G(e,t);if(!(r==null||i==null))return n===`horizontal`?Dt(e,`xAxis`,r):Dt(e,`yAxis`,i)}],ar),kr=(e,t,n)=>{var r=Cr(e,t);if(r==null)return 0;var i=K(e,t),a=G(e,t);if(i==null||a==null)return 0;var o=L(e),s=de(e),{maxBarSize:c}=r,l=Lt(c)?s:c,u,d;return o===`horizontal`?(u=Ye(e,`xAxis`,i,n),d=bt(e,`xAxis`,i,n)):(u=Ye(e,`yAxis`,a,n),d=bt(e,`yAxis`,a,n)),ht(u,d,!0)??l??0},Ar=(e,t,n)=>{var r=L(e),i=K(e,t),a=G(e,t);if(!(i==null||a==null)){var o,s;return r===`horizontal`?(o=Ye(e,`xAxis`,i,n),s=bt(e,`xAxis`,i,n)):(o=Ye(e,`yAxis`,a,n),s=bt(e,`yAxis`,a,n)),ht(o,s)}},jr=V([ne,Pe,(e,t,n)=>{var r=K(e,t);if(r!=null)return Ye(e,`xAxis`,r,n)},(e,t,n)=>{var r=G(e,t);if(r!=null)return Ye(e,`yAxis`,r,n)},(e,t,n)=>{var r=K(e,t);if(r!=null)return bt(e,`xAxis`,r,n)},(e,t,n)=>{var r=G(e,t);if(r!=null)return bt(e,`yAxis`,r,n)},V([V([Or,de,Rt,le,kr,Ar,wr],fr),Cr],mr),L,ae,Ar,V([Dr,Cr],pr),Cr,Tr],(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 di({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})}}),Mr=[`index`];function Nr(){return Nr=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},Nr.apply(null,arguments)}function Pr(e,t){if(e==null)return{};var n,r,i=Fr(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 Fr(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 Ir=(0,q.createContext)(void 0),Lr=e=>{var t=(0,q.useContext)(Ir);if(t!=null)return t.stackId;if(e!=null)return vt(e)},Rr=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,zr=e=>{var t=(0,q.useContext)(Ir);if(t!=null){var{stackId:n}=t;return`url(#${Rr(n,e)})`}},Br=e=>{var{index:t}=e,n=Pr(e,Mr),r=zr(t);return q.createElement(F,Nr({className:`recharts-bar-stack-layer`,clipPath:r},n))},Vr=[`onMouseEnter`,`onMouseLeave`,`onClick`],Hr=[`value`,`background`,`tooltipPosition`],Ur=[`id`],Wr=[`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 Gr(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?Gr(Object(n),!0).forEach(function(t){Kr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Gr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Kr(e,t,n){return(t=qr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qr(e){var t=Jr(e,`string`);return typeof t==`symbol`?t:t+``}function Jr(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 Yr(e,t){if(e==null)return{};var n,r,i=Xr(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 Xr(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 Zr=e=>{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:Et(n,t),payload:e}]},Qr=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:Ae,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:Et(a,t),hide:o,type:c,color:i,unit:s,graphicalItemId:l}};return q.createElement(ue,{tooltipEntrySettings:u})});function $r(e){var t=B(Be),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:s,onClick:c}=a,l=Yr(a,Vr),u=Dn(o,r,a.id),d=On(s),f=kn(c,r,a.id);if(!i||n==null)return null;var p=ye(i);return q.createElement(Ht,{zIndex:hr(i,Re.barBackground)},n.map((e,n)=>{var{value:a,background:o,tooltipPosition:s}=e,c=Yr(e,Hr);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),Bt(l,e,n)),{},{onMouseEnter:m,onMouseLeave:h,onClick:g,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return q.createElement(br,X({key:`background-bar-${n}`},_))}))}function ei(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(lt,{value:t?i:void 0},n)}function ti(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,s=B(Be),c=B(Ve),l=n&&String(a)===s&&(c==null||o===c),u=l?n:t;return l?q.createElement(Ht,{zIndex:Re.activeBar},q.createElement(Br,{index:a},q.createElement(br,X({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o})))):q.createElement(br,X({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o}))}function ni(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return q.createElement(br,X({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function ri(e){var{data:t,props:n}=e,r=he(n)??{},{id:i}=r,a=Yr(r,Ur),{shape:o,dataKey:s,activeBar:c}=n,{onMouseEnter:l,onClick:u,onMouseLeave:d}=n,f=Yr(n,Wr),p=Dn(l,s,i),m=On(d),h=kn(u,s,i);return t?q.createElement(q.Fragment,null,t.map((e,t)=>q.createElement(Br,X({index:t,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},Bt(f,e,t),{onMouseEnter:p(e,t),onMouseLeave:m(e,t),onClick:h(e,t)}),c?q.createElement(ti,{shape:o,activeBar:c,baseProps:a,entry:e,index:t,dataKey:s}):q.createElement(ni,{shape:o,baseProps:a,entry:e,index:t,dataKey:s})))):null}function ii(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=be(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(ei,{showLabels:h,rects:r},q.createElement(Te,{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:I(r.x,t.x,e),y:I(r.y,t.y,e),width:I(r.width,t.width,e),height:I(r.height,t.height,e)});if(i===`horizontal`){var a=I(0,t.height,e),o=I(t.stackedBarStart,t.y,e);return Z(Z({},t),{},{y:o,height:a})}var s=I(0,t.width,e),c=I(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(F,null,q.createElement(ri,{props:t,data:a}))}),q.createElement(Ee,{label:t.label}),t.children)}function ai(e){var t=(0,q.useRef)(null);return q.createElement(ii,{previousRectanglesRef:t,props:e})}var oi=0,si=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:z(e,t)}},ci=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=we(`recharts-bar`,r),u=c;return q.createElement(F,{className:l,id:c},o&&q.createElement(`defs`,null,q.createElement($e,{clipPathId:u,xAxisId:i,yAxisId:a})),q.createElement(F,{className:`recharts-bar-rectangles`,clipPath:o?`url(#clipPath-${u})`:void 0},q.createElement($r,{data:t,dataKey:n,background:s,allOtherBarProps:this.props}),q.createElement(ai,this.props)))}},li={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:oi,xAxisId:0,yAxisId:0,zIndex:Re.bar};function ui(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}=it(t,n),f=Ce(),p=Ke(),m=ke(e.children,ln),h=B(t=>jr(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(an,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:si,errorBarOffset:g},q.createElement(ci,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 di(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=Ct({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=jt(T,_)}else g=z(e,n),Array.isArray(g)||(g=[v,g]);var E=xr(r,oi)(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=ct({axis:o,ticks:c,bandSize:a,offset:i.offset,entry:e,index:d}),x=ee??D??void 0,S=i.size;var O=D-ee;if(C=ce(O)?0:O,w={x:b,y:f.top,width:S,height:f.height},Math.abs(E)>0&&Math.abs(C)<Math.abs(E)){var k=N(C||E)*(Math.abs(E)-Math.abs(C));x-=k,C+=k}}else{var A=o.scale.map(g[0]),j=o.scale.map(g[1]);if(A==null||j==null)return null;if(b=A,x=ct({axis:s,ticks:l,bandSize:a,offset:i.offset,entry:e,index:d}),S=j-A,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 M=N(S||E)*(Math.abs(E)-Math.abs(S));S+=M}}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 fi(e){var t=Pt(e,li),n=Lr(t.stackId),r=Ke();return q.createElement(It,{id:t.id,type:`bar`},e=>q.createElement(q.Fragment,null,q.createElement(ze,{legendPayload:Zr(t)}),q.createElement(Qr,{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(Le,{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(Ht,{zIndex:t.zIndex},q.createElement(ui,X({},t,{id:e})))))}var pi=q.memo(fi,dt);pi.displayName=`Bar`;var mi=[`axis`,`item`],hi=(0,q.forwardRef)((e,t)=>q.createElement(Ot,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:mi,tooltipPayloadSearcher:Fe,categoricalChartProps:e,ref:t}));function gi(e){var t=ot();return(0,q.useEffect)(()=>{t(_t(e))},[t,e]),null}var _i=[`layout`];function vi(){return vi=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},vi.apply(null,arguments)}function yi(e,t){if(e==null)return{};var n,r,i=bi(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 bi(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 xi={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%`},Si=(0,q.forwardRef)(function(e,t){var n=Pt(e.categoricalChartProps,xi),{layout:r}=n,i=yi(n,_i),{chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:s,tooltipPayloadSearcher:c}=e,l={chartName:a,defaultTooltipEventType:o,validateTooltipEventTypes:s,tooltipPayloadSearcher:c,eventEmitter:void 0};return q.createElement(Je,{preloadedState:{options:l},reduxStoreName:n.id??a},q.createElement(Nt,{chartData:n.data}),q.createElement(st,{layout:r,margin:n.margin}),q.createElement(St,{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(gi,{cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius}),q.createElement(mt,vi({},i,{ref:t})))});function Ci(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 wi(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Ci(Object(n),!0).forEach(function(t){Ti(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ci(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ti(e,t,n){return(t=Ei(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ei(e){var t=Di(e,`string`);return typeof t==`symbol`?t:t+``}function Di(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 Oi=[`item`],ki=wi(wi({},xi),{},{layout:`centric`,startAngle:0,endAngle:360}),Ai=(0,q.forwardRef)((e,t)=>{var n=Pt(e,ki);return q.createElement(Si,{chartName:`PieChart`,defaultTooltipEventType:`item`,validateTooltipEventTypes:Oi,tooltipPayloadSearcher:Fe,categoricalChartProps:n,ref:t})}),Q=t();function ji({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=>{i(e[0]?.contentRect.width||0)});return t.observe(e),()=>t.disconnect()},[]);let{weeks:a,monthLabels:o,printCounts:s}=(0,q.useMemo)(()=>{let n={};e.forEach(e=>{let t=Wt(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=Wt(n),i=s[r]||0,a=r===Wt(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 Mi=[`weight`,`prints`,`time`];function Ni({value:e,onChange:t,exclude:n}){let{t:r}=i(),a={weight:r(`stats.filamentByWeight`),prints:r(`stats.filamentByPrints`),time:r(`stats.filamentByTime`)};return(0,Q.jsx)(`div`,{className:`flex gap-0.5 bg-bambu-dark rounded-lg p-0.5`,children:(n?Mi.filter(e=>!n.includes(e)):Mi).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 $(e){if(e>=1e6){let t=e/1e6;return`${t%1==0?t.toFixed(0):t.toFixed(1)}t`}if(e>=1e3){let t=e/1e3;return`${t%1==0?t.toFixed(0):t.toFixed(1)}kg`}return`${Math.round(e)}g`}var Pi=[`#00ae42`,`#3b82f6`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#ec4899`,`#14b8a6`,`#f97316`],Fi=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],Ii=[`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 Li({archives:e,currency:t=`$`,dateFrom:n,dateTo:r}){let{t:a}=i(),[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=Kt(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(n&&r)return Math.max((new Date(r).getTime()-new Date(n).getTime())/864e5,0)+1;if(n)return Math.max((Date.now()-new Date(n).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,n,r]),f=(0,q.useMemo)(()=>{if(d>7)return[];let t=new Map,n=d>1;return e.forEach(e=>{let n=Kt(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?`${Fi[i.getDay()]} ${Ii[a]}`:Ii[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=(e.filament_type||`Unknown`).split(`, `);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=>{(e.filament_type||`Unknown`).split(`, `).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=(e.filament_type||`Unknown`).split(`, `),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`||(e.filament_type||`Unknown`).split(`, `).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:$(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)(R,{width:`100%`,height:250,children:(0,Q.jsxs)(sn,{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)(yt,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(Ze,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,Q.jsx)(Tt,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}g`}),(0,Q.jsx)(P,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},labelStyle:{color:`#fff`},formatter:e=>[`${Number(e??0).toFixed(0)}g`,`Filament`]}),(0,Q.jsx)(on,{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)(R,{width:`100%`,height:250,children:(0,Q.jsxs)(sn,{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)(yt,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(Ze,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,Q.jsx)(Tt,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}kWh`}),(0,Q.jsx)(P,{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)(on,{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)(Ni,{value:o,onChange:s})]}),y.length>0?(0,Q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Q.jsx)(R,{width:160,height:160,children:(0,Q.jsxs)(Ai,{children:[(0,Q.jsx)(rr,{data:y,cx:`50%`,cy:`50%`,innerRadius:40,outerRadius:70,paddingAngle:2,dataKey:`value`,children:y.map((e,t)=>(0,Q.jsx)(ln,{fill:Pi[t%Pi.length]},`cell-${t}`))}),(0,Q.jsx)(P,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[o===`weight`?$(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:Pi[t%Pi.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`?$(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)(Ni,{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)(R,{width:`100%`,height:`100%`,children:(0,Q.jsxs)(Ai,{children:[(0,Q.jsx)(rr,{data:v,cx:`50%`,cy:`50%`,innerRadius:45,outerRadius:70,paddingAngle:2,dataKey:`value`,children:v.map((e,t)=>(0,Q.jsx)(ln,{fill:e.hex,stroke:`#1a1a1a`,strokeWidth:1},`color-${t}`))}),(0,Q.jsx)(P,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[c===`weight`?$(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`?$(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 Ri(e){return Math.abs(e)>=1e3?`${(e/1e3).toFixed(2)} kg`:`${Math.round(e)} g`}function zi({currency:e,dateFrom:t,dateTo:n}){let{t:o}=i(),{data:s,isLoading:c,isError:l}=a({queryKey:[`supplier-stats`,t??`all`,n??`all`],queryFn:()=>r.getSupplierStats(t,n)});return c?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(O,{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)(Ut,{className:`w-4 h-4`}),o(`stats.suppliers.error`)]}):!s||s.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray py-4`,children:o(`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:o(`stats.suppliers.supplier`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:o(`stats.suppliers.spools`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:o(`stats.suppliers.remaining`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:o(`stats.suppliers.consumed`)}),(0,Q.jsx)(`th`,{className:`py-2 font-medium text-right`,children:o(`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:Ri(t.remaining_g)}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:Ri(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 Bi(e){return Math.abs(e)>=1e3?`${(e/1e3).toFixed(2)} kg`:`${Math.round(e)} g`}function Vi({currency:e,dateFrom:t,dateTo:n}){let{t:o}=i(),{data:s,isLoading:c,isError:l}=a({queryKey:[`material-number-stats`,t??null,n??null],queryFn:()=>r.getMaterialNumberStats({dateFrom:t,dateTo:n})});return c?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(O,{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:o(`stats.materialNumbers.loadFailed`)}):!s||s.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-bambu-gray py-4`,children:o(`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:o(`inventory.materialNumber`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:o(`stats.materialNumbers.spools`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:o(`stats.materialNumbers.remaining`)}),(0,Q.jsx)(`th`,{className:`py-2 pr-4 font-medium text-right`,children:o(`stats.materialNumbers.consumed`)}),(0,Q.jsx)(`th`,{className:`py-2 font-medium text-right`,children:o(`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:Bi(t.remaining_g)}),(0,Q.jsx)(`td`,{className:`py-2 pr-4 text-bambu-gray text-right`,children:Bi(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 Hi({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)(ee,{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)(A,{className:`w-4 h-4 text-bambu-gray hover:text-white`}):(0,Q.jsx)(k,{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)(E,{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 Ui({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=()=>{p({order:e.map(e=>e.id),hidden:e.filter(e=>e.defaultVisible===!1).map(e=>e.id),sizes:s()}),a?.()},k=u.order.map(t=>e.find(e=>e.id===t)).filter(Boolean),A=k.filter(e=>!u.hidden.includes(e.id)),j=k.filter(e=>u.hidden.includes(e.id)),M=o?.({hiddenCount:j.length,showHiddenPanel:b,setShowHiddenPanel:x,resetLayout:O});return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[M,!i&&!o&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Q.jsxs)(W,{variant:`secondary`,size:`sm`,onClick:O,children:[(0,Q.jsx)(Jt,{className:`w-4 h-4`}),`Reset Layout`]}),j.length>0&&(0,Q.jsxs)(W,{variant:`secondary`,size:`sm`,onClick:()=>x(!b),children:[(0,Q.jsx)(Zt,{className:`w-4 h-4`}),j.length,` Hidden`]})]}),b&&j.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:j.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)(Zt,{className:`w-3 h-3`}),e.title]},e.id))})]}),(0,Q.jsx)(_,{sensors:T,collisionDetection:c,onDragEnd:E,children:(0,Q.jsx)(v,{items:A.map(e=>e.id),strategy:g,children:(0,Q.jsx)(`div`,{className:`grid gap-6`,style:{gridTemplateColumns:`repeat(${w}, minmax(0, 1fr))`},children:A.map(e=>{let t=u.sizes[e.id]||2,n=Math.min(t,w);return(0,Q.jsx)(Hi,{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)})})})}),A.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)(W,{className:`mt-4`,onClick:O,children:`Reset Layout`})]})]})}function Wi(e){let t=new Date,n=t.getUTCFullYear(),r=t.getUTCMonth(),i=t.getUTCDate(),a=e=>e.toISOString().split(`T`)[0],o=a(t);switch(e){case`today`:return{dateFrom:o,dateTo:o};case`this-week`:{let e=t.getUTCDay();return{dateFrom:a(new Date(Date.UTC(n,r,i-(e===0?6:e-1)))),dateTo:o}}case`this-month`:return{dateFrom:a(new Date(Date.UTC(n,r,1))),dateTo:o};case`last-7`:return{dateFrom:a(new Date(Date.UTC(n,r,i-6))),dateTo:o};case`last-30`:return{dateFrom:a(new Date(Date.UTC(n,r,i-29))),dateTo:o};case`last-90`:return{dateFrom:a(new Date(Date.UTC(n,r,i-89))),dateTo:o};case`this-year`:return{dateFrom:a(new Date(Date.UTC(n,0,1))),dateTo:o};case`all-time`:return{dateFrom:void 0,dateTo:void 0};case`custom`:return{}}}var Gi=[`today`,`this-week`,`this-month`,`last-7`,`last-30`,`last-90`,`this-year`,`all-time`],Ki=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],qi=[`12am`,`1am`,`2am`,`3am`,`4am`,`5am`,`6am`,`7am`,`8am`,`9am`,`10am`,`11am`,`12pm`,`1pm`,`2pm`,`3pm`,`4pm`,`5pm`,`6pm`,`7pm`,`8pm`,`9pm`,`10pm`,`11pm`],Ji=[{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}],Yi={backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`};function Xi({stats:e,currency:t}){let{t:n}=i(),r=e?.energy_data_warming_up===!0,a=r?n(`stats.energyWarmingUpTooltip`):void 0;return(0,Q.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-4`,children:[{icon:j,color:`text-bambu-green`,label:n(`stats.totalPrints`),value:`${e?.total_prints||0}`},{icon:Xt,color:`text-blue-600 dark:text-blue-400`,label:n(`stats.printTime`),value:`${e?.total_print_time_hours?.toFixed(1)??`0`}h`},{icon:j,color:`text-orange-600 dark:text-orange-400`,label:n(`stats.filamentUsed`),value:$(e?.total_filament_grams||0)},{icon:T,color:`text-green-600 dark:text-green-400`,label:n(`stats.filamentCost`),value:`${t} ${e?.total_cost?.toFixed(2)??`0.00`}`},{icon:$t,color:`text-yellow-600 dark:text-yellow-400`,label:n(`stats.energyUsed`),value:`${e?.total_energy_kwh?.toFixed(3)??`0.000`} kWh`,warning:r,tooltip:a},{icon:T,color:`text-yellow-500`,label:n(`stats.energyCost`),value:`${t} ${e?.total_energy_cost?.toFixed(2)??`0.00`}`,warning:r,tooltip:a},...(e?.total_wear_cost??0)>0?[{icon:tn,color:`text-slate-500 dark:text-slate-300`,label:n(`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)(Ut,{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 Zi({stats:e,printerMap:t,size:n=1}){let{t:r}=i(),a=(e?.successful_prints||0)+(e?.failed_prints||0),o=a?Math.round((e?.successful_prints||0)/a*100):0,s=n===1?112:n===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 ${n>=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)(w,{className:`w-4 h-4 text-status-ok flex-shrink-0`}),(0,Q.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`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)(S,{className:`w-4 h-4 text-status-error flex-shrink-0`}),(0,Q.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`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:r(`stats.cancelled`)}),(0,Q.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.cancelled_prints||0})]})]}),n>=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:r(`stats.printsByPrinter`)}),(0,Q.jsx)(`div`,{className:`grid gap-x-6 gap-y-1 ${n===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)||`${r(`common.printer`)} ${e}`}),(0,Q.jsx)(`span`,{className:`text-white font-medium`,children:n})]},e))})]})]})]})}function Qi({stats:e,printerMap:t,size:n=1}){let{t:r}=i(),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:r(`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=n===1?112:n===2?128:144,u=l/2-8,d=u*2*Math.PI,f=n===1?3:n===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 ${n>=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)(M,{className:`w-3 h-3 flex-shrink-0`}),(0,Q.jsx)(`span`,{children:r(`stats.perfectEstimate`)})]}),p.length>0&&(0,Q.jsx)(`div`,{className:`mt-2 ${n===4?`grid grid-cols-3 gap-x-6 gap-y-1`:n===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)||`${r(`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 $i({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=Kt(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:qi.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} ${qi[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 ea({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)($i,{printDates:e,dateFrom:n,dateTo:r}):(0,Q.jsx)(ji,{printDates:e,months:i===1/0?t===1?3:t===2?6:12:Math.max(1,Math.ceil(i/30))})}function ta({stats:e,archives:t,printerMap:n}){let{t:r}=i(),[a,o]=(0,q.useState)(`weight`),[s,c]=(0,q.useState)(`weight`),l=(0,q.useMemo)(()=>{let i=new Map;return e?.prints_by_printer&&Object.entries(e.prints_by_printer).forEach(([e,t])=>{let n=i.get(e)||{prints:0,weight:0,time:0};n.prints=t,i.set(e,n)}),t.forEach(t=>{if(!t.printer_id)return;let n=String(t.printer_id),r=i.get(n)||{prints:0,weight:0,time:0};r.weight+=t.filament_used_grams||0,r.time+=t.actual_time_seconds||t.print_time_seconds||0,e?.prints_by_printer||r.prints++,i.set(n,r)}),Array.from(i.entries()).map(([e,t])=>({name:n.get(e)||`${r(`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,n,a,r]),u=(0,q.useMemo)(()=>{let e=Array.from({length:24},(e,t)=>({hour:t,label:qi[t],total:0,failures:0}));return t.forEach(t=>{if(!t.started_at)return;let n=Kt(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=Ji.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<Ji.length;t++)if(n<=Ji[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=Kt(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 Ki.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=r(a===`weight`?`stats.filamentByWeight`:a===`time`?`stats.hours`:`common.prints`),g=p(s),_=r(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:r(`stats.printsByPrinter`)}),(0,Q.jsx)(Ni,{value:a,onChange:o})]}),l.length>0?(0,Q.jsx)(R,{width:`100%`,height:Math.max(140,l.length*40),children:(0,Q.jsxs)(hi,{data:l,layout:`vertical`,margin:{left:10},children:[(0,Q.jsx)(yt,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(Ze,{type:`number`,stroke:`#9ca3af`,tick:{fontSize:11},unit:m.unit}),(0,Q.jsx)(Tt,{type:`category`,dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11},width:100}),(0,Q.jsx)(P,{contentStyle:Yi,formatter:e=>[a===`weight`?$(Number(e??0)):`${e??0}${m.unit}`,h]}),(0,Q.jsx)(pi,{dataKey:`value`,fill:m.color,radius:[0,4,4,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`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:r(`stats.printDuration`)}),t.length>0?(0,Q.jsx)(R,{width:`100%`,height:160,children:(0,Q.jsxs)(hi,{data:d,children:[(0,Q.jsx)(yt,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(Ze,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,Q.jsx)(Tt,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,Q.jsx)(P,{contentStyle:Yi}),(0,Q.jsx)(pi,{dataKey:`count`,name:r(`common.prints`),fill:`#00ae42`,radius:[4,4,0,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`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:r(`stats.printHabits`)}),(0,Q.jsx)(Ni,{value:s,onChange:c})]}),t.length>0?(0,Q.jsx)(R,{width:`100%`,height:160,children:(0,Q.jsxs)(hi,{data:f,children:[(0,Q.jsx)(yt,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(Ze,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,Q.jsx)(Tt,{stroke:`#9ca3af`,tick:{fontSize:11},unit:g.unit}),(0,Q.jsx)(P,{contentStyle:Yi,formatter:e=>[`${e??0}${g.unit}`,_]}),(0,Q.jsx)(pi,{dataKey:`avg`,fill:g.color,radius:[4,4,0,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`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:r(`stats.printTimeOfDay`)}),t.length>0?(0,Q.jsx)(R,{width:`100%`,height:160,children:(0,Q.jsxs)(hi,{data:u,children:[(0,Q.jsx)(yt,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,Q.jsx)(Ze,{dataKey:`label`,stroke:`#9ca3af`,tick:{fontSize:10},interval:5}),(0,Q.jsx)(Tt,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,Q.jsx)(P,{contentStyle:Yi}),(0,Q.jsx)(pi,{dataKey:`total`,name:r(`stats.totalPrints`),fill:`#00ae42`,radius:[2,2,0,0]}),(0,Q.jsx)(pi,{dataKey:`failures`,name:r(`stats.failed`),fill:`#ef4444`,radius:[2,2,0,0]})]})}):(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)})]})]})]})}function na({archives:e,currency:t,dateFrom:n,dateTo:r}){let{t:a}=i();return!e||e.length===0?(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:a(`stats.noPrintData`)}):(0,Q.jsx)(Li,{archives:e,currency:t,dateFrom:n,dateTo:r})}function ra({size:e=1,dateFrom:t,dateTo:n,createdById:o}){let{t:s}=i(),c=!!(t||n),{data:l,isLoading:u}=a({queryKey:[`failureAnalysis`,t,n,o??`all`],queryFn:()=>r.getFailureAnalysis({...c?{dateFrom:t,dateTo:n}:{days:30},createdById:o})});if(u)return(0,Q.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,Q.jsx)(O,{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)(Ut,{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)(Ie,{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 ia({archives:e,currency:t}){let{t:n}=i(),r=(0,q.useMemo)(()=>{let r=[];if(e.length===0)return r;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&&r.push({icon:Xt,iconColor:`text-blue-600 dark:text-blue-400`,label:n(`stats.longestPrint`),value:Gt(a.value),detail:a.archive.print_name||null});let o=i(e=>e.filament_used_grams);o.archive&&r.push({icon:j,iconColor:`text-orange-600 dark:text-orange-400`,label:n(`stats.heaviestPrint`),value:$(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&&r.push({icon:T,iconColor:`text-green-600 dark:text-green-400`,label:n(`stats.mostExpensivePrint`),value:`${t}${s.value.toFixed(2)}`,detail:s.archive.print_name||null});let c=new Map;e.forEach(e=>{let t=Kt(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&&r.push({icon:b,iconColor:`text-purple-600 dark:text-purple-400`,label:n(`stats.busiestDay`),value:`${u} ${n(`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&&r.push({icon:$t,iconColor:`text-yellow-600 dark:text-yellow-400`,label:n(`stats.successStreak`),value:`${f}`,detail:f===1?n(`stats.streakPrint`):n(`stats.streakPrints`,{count:f})}),r},[e,t,n]);return r.length===0?(0,Q.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:n(`stats.noArchiveData`)}):(0,Q.jsx)(`div`,{className:`space-y-3`,children:r.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 aa(){let{t:e}=i(),{showToast:t}=C(),{hasPermission:n,authEnabled:o}=nn(),[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,S]=(0,q.useState)(!1),w=o&&n(`stats:filter_by_user`),[T,E]=(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(T))},[T]);let A=(0,q.useMemo)(()=>T.preset===`custom`?{dateFrom:T.dateFrom,dateTo:T.dateTo}:Wi(T.preset),[T]);(0,q.useEffect)(()=>{let e=()=>{try{let e=localStorage.getItem(`bambusy-dashboard-layout-v2`);e&&m(JSON.parse(e).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 j=_===null?void 0:_,{data:M,isLoading:te,isFetching:ne,refetch:re}=a({queryKey:[`archiveStats`,A.dateFrom,A.dateTo,j??`all`],queryFn:()=>r.getArchiveStats({dateFrom:A.dateFrom,dateTo:A.dateTo,createdById:j})}),{data:ie}=a({queryKey:[`printers`],queryFn:r.getPrinters}),{data:ae,isFetching:oe,refetch:se}=a({queryKey:[`archivesSlim`,A.dateFrom,A.dateTo,j??`all`],queryFn:()=>r.getArchivesSlim(A.dateFrom,A.dateTo,j)}),{data:ce}=a({queryKey:[`settings`],queryFn:r.getSettings}),{data:le,isPending:ue}=a({queryKey:[`spoolman-settings`],queryFn:r.getSpoolmanSettings,staleTime:300*1e3}),N=!ue,de=le?.spoolman_enabled===`true`&&!!le?.spoolman_url,{data:fe}=a({queryKey:[`users`,`slim`],queryFn:r.getUsersSlim,enabled:w}),pe=(0,q.useMemo)(()=>_===null?e(`stats.allUsers`,`All Users`):_===-1?e(`stats.noUser`,`No User (System)`):fe?.find(e=>e.id===_)?.username??`?`,[_,fe,e]),me=async n=>{u(!1),c(!0);try{let{blob:i,filename:a}=await r.exportStats({format:n,days:90,createdById:j}),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)}},he=async()=>{g(!0);try{let n=await r.recalculateCosts();await Promise.all([re(),se()]),t(e(`stats.recalculatedCosts`,{count:n.updated}))}catch{t(e(`stats.recalculateFailed`),`error`)}finally{g(!1)}},ge=(ne||oe)&&!te,_e=Qt(ce?.currency||`USD`),ve=(0,q.useMemo)(()=>new Map([...Object.entries(M?.printer_names||{}),...ie?.map(e=>[String(e.id),e.name])||[]]),[M?.printer_names,ie]),ye=(0,q.useMemo)(()=>ae?.map(e=>e.created_at)||[],[ae]);if(te)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 be=[{id:`quick-stats`,title:e(`stats.quickStats`),component:(0,Q.jsx)(Xi,{stats:M,currency:_e}),defaultSize:2},{id:`success-rate`,title:e(`stats.successRate`),component:e=>(0,Q.jsx)(Zi,{stats:M,printerMap:ve,size:e}),defaultSize:1},{id:`time-accuracy`,title:e(`stats.timeAccuracy`),component:e=>(0,Q.jsx)(Qi,{stats:M,printerMap:ve,size:e}),defaultSize:1},{id:`failure-analysis`,title:e(`stats.failureAnalysis`),component:e=>(0,Q.jsx)(ra,{size:e,dateFrom:A.dateFrom,dateTo:A.dateTo,createdById:j}),defaultSize:1},{id:`print-activity`,title:e(`stats.printActivity`),component:e=>(0,Q.jsx)(ea,{printDates:ye,size:e,dateFrom:A.dateFrom,dateTo:A.dateTo}),defaultSize:2},{id:`records`,title:e(`stats.records`),component:(0,Q.jsx)(ia,{archives:ae||[],currency:_e}),defaultSize:1},{id:`printer-stats`,title:e(`stats.printerStats`),component:(0,Q.jsx)(ta,{stats:M,archives:ae||[],printerMap:ve}),defaultSize:4},{id:`filament-trends`,title:e(`stats.filamentTrends`),component:(0,Q.jsx)(na,{archives:ae||[],currency:_e,dateFrom:A.dateFrom,dateTo:A.dateTo}),defaultSize:4},...!N||de?[]:[{id:`suppliers`,title:e(`stats.suppliers.title`),component:(0,Q.jsx)(zi,{currency:_e,dateFrom:A.dateFrom,dateTo:A.dateTo}),defaultSize:2}],...!N||de?[]:[{id:`material-numbers`,title:e(`stats.materialNumbers.title`),component:(0,Q.jsx)(Vi,{currency:_e,dateFrom:A.dateFrom,dateTo:A.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)(Yt,{className:`w-7 h-7 text-bambu-green`}),e(`stats.title`)]}),ge&&(0,Q.jsx)(O,{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)(W,{variant:`secondary`,onClick:()=>{window.dispatchEvent(new CustomEvent(`toggle-hidden-panel`))},children:[(0,Q.jsx)(Zt,{className:`w-4 h-4`}),e(`stats.hiddenCount`,{count:p})]}),(0,Q.jsxs)(W,{variant:`secondary`,onClick:()=>{localStorage.removeItem(`bambusy-dashboard-layout-v2`),f(e=>e+1),t(e(`stats.layoutReset`))},disabled:!n(`settings:update`),title:n(`settings:update`)?void 0:e(`stats.noPermissionResetLayout`),children:[(0,Q.jsx)(Jt,{className:`w-4 h-4`}),e(`stats.resetLayout`)]}),(0,Q.jsxs)(W,{variant:`secondary`,onClick:he,disabled:h||!n(`archives:update_all`),title:n(`archives:update_all`)?e(`stats.recalculateCostsHint`):e(`stats.noPermissionRecalculate`),children:[h?(0,Q.jsx)(O,{className:`w-4 h-4 animate-spin`}):(0,Q.jsx)(cn,{className:`w-4 h-4`}),e(`stats.recalculateCosts`)]}),(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(W,{variant:`secondary`,onClick:()=>u(!l),disabled:s,children:[s?(0,Q.jsx)(O,{className:`w-4 h-4 animate-spin`}):(0,Q.jsx)(D,{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:()=>me(`csv`),children:[(0,Q.jsx)(en,{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:()=>me(`xlsx`),children:[(0,Q.jsx)(D,{className:`w-4 h-4`}),e(`stats.exportAsExcel`)]})]})]}),w&&fe&&fe.length>0&&(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(W,{variant:`secondary`,onClick:()=>S(!y),children:[(0,Q.jsx)(qt,{className:`w-4 h-4`}),pe,(0,Q.jsx)(x,{className:`w-3 h-3`})]}),y&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>S(!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),S(!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),S(!1)},children:e(`stats.noUser`,`No User (System)`)}),(0,Q.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary my-1`}),fe.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),S(!1)},children:e.username},e.id))]})]})]}),(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsxs)(W,{variant:`secondary`,onClick:()=>k(!ee),children:[(0,Q.jsx)(b,{className:`w-4 h-4`}),e(`stats.timeframe.${T.preset}`),(0,Q.jsx)(x,{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:[Gi.map(t=>(0,Q.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${T.preset===t?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{E({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 ${T.preset===`custom`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>E(e=>({...e,preset:`custom`})),children:e(`stats.timeframe.custom`)}),T.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:T.dateFrom||``,max:T.dateTo||new Date().toISOString().split(`T`)[0],onChange:e=>E(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:T.dateTo||``,min:T.dateFrom,max:new Date().toISOString().split(`T`)[0],onChange:e=>E(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)(W,{variant:`primary`,onClick:()=>k(!1),className:`w-full`,children:e(`common.apply`)})]})]})]})]})]})]}),(0,Q.jsx)(Ui,{widgets:be,storageKey:`bambusy-dashboard-layout-v2`,stackBelow:640,hideControls:!0},d)]})}export{aa as StatsPage};