(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=lW(lW({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=lW(lW({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&sW(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=lW(lW({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function Ube(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,{start:c,end:l}=t;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=lW(lW({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&sW(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=lW(lW({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=lW(lW({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=lW(lW({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&sW(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=lW(lW({},a),{},{isShow:!0}))},h=0;h{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?Pbe(mB(i,{fontSize:t,letterSpacing:n}),m,d):mB(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?HE(_.coordinate-g.coordinate):1,y=Fbe(a,v,p);return c===`equidistantPreserveStart`?Lbe(v,y,h,i,o):c===`equidistantPreserveEnd`?Rbe(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?Ube(v,y,h,i,o,c===`preserveStartEnd`):Hbe(v,y,h,i,o),f.filter(e=>e.isShow))}var Wbe=e=>{var{ticks:t,label:n,labelGapWithTick:r=5,tickSize:i=0,tickMargin:a=0}=e,o=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>o&&(o=t.width)}});var s=n?n.getBoundingClientRect().width:0,c=i+a,l=o+c+s+(n?r:0);return Math.round(l)}return 0},Gbe=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`];function Kbe(e,t){if(e==null)return{};var n,r,i=qbe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{ticks:n=[],tick:r,tickLine:i,stroke:a,tickFormatter:o,unit:s,padding:c,tickTextProps:l,orientation:u,mirror:d,x:f,y:p,width:m,height:h,tickSize:g,tickMargin:_,fontSize:v,letterSpacing:b,getTicksConfig:x,events:S,axisType:C}=e,w=uW(pW(pW({},x),{},{ticks:n}),v,b),T=$be(u,d),E=exe(u,d),D=IT(x),O=LT(r),k={};typeof i==`object`&&(k=i);var A=pW(pW({},D),{},{fill:`none`},k),j=w.map(e=>pW({entry:e},Qbe(e,f,p,m,h,u,g,d,_))),M=j.map(e=>{var{entry:t,line:n}=e;return y.createElement(HT,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},i&&y.createElement(`line`,dW({},A,n,{className:MT(`recharts-cartesian-axis-tick-line`,(0,VE.default)(i,`className`))})))}),N=j.map((e,t)=>{var{entry:n,tick:i}=e,u=pW(pW({},pW(pW(pW(pW({verticalAnchor:E},D),{},{textAnchor:T,stroke:`none`,fill:a},i),{},{index:t,payload:n,visibleTicksCount:w.length,tickFormatter:o,padding:c},l),{},{angle:l?.angle??D.angle??0})),O);return y.createElement(HT,dW({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},lD(S,n,t)),r&&y.createElement(txe,{option:r,tickProps:u,value:`${typeof o==`function`?o(n.value,t):n.value}${s||``}`}))});return y.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${C}-ticks`},N.length>0&&y.createElement(Wz,{zIndex:HI.label},y.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${C}-tick-labels`,ref:t},N)),M.length>0&&y.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${C}-tick-lines`},M))}),rxe=(0,y.forwardRef)((e,t)=>{var{axisLine:n,width:r,height:i,className:a,hide:o,ticks:s,axisType:c}=e,l=Kbe(e,Gbe),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),m=(0,y.useRef)(null);(0,y.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>Wbe({ticks:m.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var h=(0,y.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);m.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==u||a!==f)&&(d(i),p(a))}}},[u,f]);return o||r!=null&&r<=0||i!=null&&i<=0?null:y.createElement(Wz,{zIndex:e.zIndex},y.createElement(HT,{className:MT(`recharts-cartesian-axis`,a)},y.createElement(Zbe,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:IT(e)}),y.createElement(nxe,{ref:h,axisType:c,events:l,fontSize:u,getTicksConfig:e,height:e.height,letterSpacing:f,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y}),y.createElement(BB,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},y.createElement(GB,{label:e.label,labelRef:e.labelRef}),e.children)))}),hW=y.forwardRef((e,t)=>{var n=dD(e,mW);return y.createElement(rxe,dW({},n,{ref:t}))});hW.displayName=`CartesianAxis`;var ixe=[`x1`,`y1`,`x2`,`y2`,`key`],axe=[`offset`],oxe=[`xAxisId`,`yAxisId`],sxe=[`xAxisId`,`yAxisId`];function gW(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 _W(e){for(var t=1;t{var{fill:t}=e;if(!t||t===`none`)return null;var{fillOpacity:n,x:r,y:i,width:a,height:o,ry:s}=e;return y.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function bW(e){var{option:t,lineItemProps:n}=e,r;if(y.isValidElement(t))r=y.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var{x1:i,y1:a,x2:o,y2:s,key:c}=n,l=IT(yW(n,ixe))??{},{offset:u}=l,d=yW(l,axe);r=y.createElement(`line`,vW({},d,{x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function pxe(e){var{x:t,width:n,horizontal:r=!0,horizontalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=yW(e,oxe),c=i.map((e,i)=>{var a=_W(_W({},s),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${i}`,index:i});return y.createElement(bW,{key:`line-${i}`,option:r,lineItemProps:a})});return y.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},c)}function mxe(e){var{y:t,height:n,vertical:r=!0,verticalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=yW(e,sxe),c=i.map((e,i)=>{var a=_W(_W({},s),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${i}`,index:i});return y.createElement(bW,{option:r,lineItemProps:a,key:`line-${i}`})});return y.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},c)}function hxe(e){var{horizontalFill:t,fillOpacity:n,x:r,y:i,width:a,height:o,horizontalPoints:s,horizontal:c=!0}=e;if(!c||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return y.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function gxe(e){var{vertical:t=!0,verticalFill:n,fillOpacity:r,x:i,y:a,width:o,height:s,verticalPoints:c}=e;if(!t||!n||!n.length)return null;var l=c.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,t)=>{var c=l[t+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=t%n.length;return y.createElement(`rect`,{key:`react-${t}`,x:e,y:a,width:u,height:s,stroke:`none`,fill:n[d],fillOpacity:r,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},u)}var _xe=(e,t)=>{var{xAxis:n,width:r,height:i,offset:a}=e;return TA(uW(_W(_W(_W({},mW),n),{},{ticks:EA(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},vxe=(e,t)=>{var{yAxis:n,width:r,height:i,offset:a}=e;return TA(uW(_W(_W(_W({},mW),n),{},{ticks:EA(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},yxe={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:`#ccc`,fill:`none`,verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:HI.grid};function xW(e){var t=sj(),n=cj(),r=oj(),i=_W(_W({},dD(e,yxe)),{},{x:GE(e.x)?e.x:r.left,y:GE(e.y)?e.y:r.top,width:GE(e.width)?e.width:r.width,height:GE(e.height)?e.height:r.height}),{xAxisId:a,yAxisId:o,x:s,y:c,width:l,height:u,syncWithTicks:d,horizontalValues:f,verticalValues:p}=i,m=GA(),h=jD(e=>FR(e,`xAxis`,a,m)),g=jD(e=>FR(e,`yAxis`,o,m));if(!bA(l)||!bA(u)||!GE(s)||!GE(c))return null;var _=i.verticalCoordinatesGenerator||_xe,v=i.horizontalCoordinatesGenerator||vxe,{horizontalPoints:b,verticalPoints:x}=i;if((!b||!b.length)&&typeof v==`function`){var S=f&&f.length,C=v({yAxis:g?_W(_W({},g),{},{ticks:S?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},S?!0:d);JA(Array.isArray(C),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof C}]`),Array.isArray(C)&&(b=C)}if((!x||!x.length)&&typeof _==`function`){var w=p&&p.length,T=_({xAxis:h?_W(_W({},h),{},{ticks:w?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},w?!0:d);JA(Array.isArray(T),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(x=T)}return y.createElement(Wz,{zIndex:i.zIndex},y.createElement(`g`,{className:`recharts-cartesian-grid`},y.createElement(fxe,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),y.createElement(hxe,vW({},i,{horizontalPoints:b})),y.createElement(gxe,vW({},i,{verticalPoints:x})),y.createElement(pxe,vW({},i,{offset:r,horizontalPoints:b,xAxis:h,yAxis:g})),y.createElement(mxe,vW({},i,{offset:r,verticalPoints:x,xAxis:h,yAxis:g}))))}xW.displayName=`CartesianGrid`;var SW=Ok({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]||(e[n]=[]),e[n].push(r)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:r,next:i}=t.payload;e[n]&&(e[n]=e[n].map(e=>e.dataKey===r.dataKey&&e.direction===r.direction?i:e))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]&&(e[n]=e[n].filter(e=>e.dataKey!==r.dataKey||e.direction!==r.direction))}}}),{addErrorBar:bxe,replaceErrorBar:xxe,removeErrorBar:Sxe}=SW.actions,Cxe=SW.reducer,wxe=[`children`];function Txe(e,t){if(e==null)return{};var n,r,i=Exe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r({x:0,y:0,value:0}),errorBarOffset:0});function CW(e){var{children:t}=e,n=Txe(e,wxe);return y.createElement(Dxe.Provider,{value:n},t)}function wW(e,t){var n=jD(t=>wL(t,e)),r=jD(e=>DL(e,t)),i=n?.allowDataOverflow??SL.allowDataOverflow,a=r?.allowDataOverflow??TL.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function TW(e){var{xAxisId:t,yAxisId:n,clipPathId:r}=e,i=kU(),{needClipX:a,needClipY:o,needClip:s}=wW(t,n);if(!s||!i)return null;var{x:c,y:l,width:u,height:d}=i;return y.createElement(`clipPath`,{id:`clipPath-${r}`},y.createElement(`rect`,{x:a?c:c-u/2,y:o?l:l-d/2,width:a?u:u*2,height:o?d:d*2}))}var EW=(e,t,n,r)=>RR(e,`xAxis`,t,r),DW=(e,t,n,r)=>LR(e,`xAxis`,t,r),OW=(e,t,n,r)=>RR(e,`yAxis`,n,r),kW=(e,t,n,r)=>LR(e,`yAxis`,n,r),Oxe=ID([lj,EW,OW,DW,kW],(e,t,n,r,i)=>wA(e,`xAxis`)?MA(t,r,!1):MA(n,i,!1)),kxe=(e,t,n,r,i)=>i;function Axe(e){return e.type===`line`}var jxe=ID([lj,EW,OW,DW,kW,ID([NL,kxe],(e,t)=>e.filter(Axe).find(e=>e.id===t)),Oxe,CI],(e,t,n,r,i,a,o,s)=>{var{chartData:c,dataStartIndex:l,dataEndIndex:u}=s;if(!(a==null||t==null||n==null||r==null||i==null||r.length===0||i.length===0||o==null||e!==`horizontal`&&e!==`vertical`)){var{dataKey:d,data:f}=a,p=f!=null&&f.length>0?f:c?.slice(l,u+1);if(p!=null)return pSe({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:p})}});function AW(e){var t=LT(e),n=3,r=2;if(t!=null){var{r:i,strokeWidth:a}=t,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}var Mxe=o((e=>{var t=f();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));o(((e,t)=>{t.exports=Mxe()}))();function Nxe(e){e()}function Pxe(){let e=null,t=null;return{clear(){e=null,t=null},notify(){Nxe(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var jW={notify(){},get:()=>[]};function Fxe(e,t){let n,r=jW,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=Pxe())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=jW)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var Ixe=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,Lxe=typeof navigator<`u`&&navigator.product===`ReactNative`,Rxe=Ixe||Lxe?y.useLayoutEffect:y.useEffect;function MW(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function zxe(e,t){if(MW(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r({store:i,subscription:Fxe(i),getServerState:r?()=>r:void 0}),[i,r]),o=y.useMemo(()=>i.getState(),[i]);Rxe(()=>{let{subscription:e}=a;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[a,o]);let s=n||Uxe;return y.createElement(s.Provider,{value:a},t)}var Gxe=Wxe,Kxe=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`]);function qxe(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function NW(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(Kxe.has(n)){if(e[n]==null&&t[n]==null)continue;if(!zxe(e[n],t[n]))return!1}else if(!qxe(e[n],t[n]))return!1;return!0}var Jxe=[`id`],Yxe=[`type`,`layout`,`connectNulls`,`needClip`,`shape`],Xxe=[`activeDot`,`animateNewValues`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`hide`,`isAnimationActive`,`label`,`legendType`,`xAxisId`,`yAxisId`,`id`];function PW(){return PW=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,stroke:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:PA(n,t),payload:e}]},nSe=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:s,unit:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:n,getPosition:tD,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:PA(o,t),hide:s,type:l,color:r,unit:c,graphicalItemId:u}};return y.createElement(dH,{tooltipEntrySettings:d})}),RW=(e,t)=>`${t}px ${e-t}px`;function rSe(e,t){for(var n=e.length%2==0?e:[...e,0],r=[],i=0;i{var r=n.reduce((e,t)=>e+t);if(!r)return RW(t,e);for(var i=Math.floor(e/r),a=e%r,o=t-e,s=[],c=0,l=0;ca){s=[...n.slice(0,c),a-l];break}}var f=s.length%2==0?[0,o]:[o];return[...rSe(n,i),...s,...f].map(e=>`${e}px`).join(`, `)};function aSe(e){var{clipPathId:t,points:n,props:r}=e,{dot:i,dataKey:a,needClip:o}=r,{id:s}=r,c=IT(LW(r,Jxe));return y.createElement(pU,{points:n,dot:i,className:`recharts-line-dots`,dotClassName:`recharts-line-dot`,dataKey:a,baseProps:c,needClip:o,clipPathId:t})}function oSe(e){var{showLabels:t,children:n,points:r}=e,i=(0,y.useMemo)(()=>r?.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return IW(IW({},t),{},{value:e.value,payload:e.payload,viewBox:t,parentViewBox:void 0,fill:void 0})}),[r]);return y.createElement(YB,{value:t?i:void 0},n)}function zW(e){var{clipPathId:t,pathRef:n,points:r,strokeDasharray:i,props:a}=e,{type:o,layout:s,connectNulls:c,needClip:l,shape:u}=a,d=IW(IW({},RT(LW(a,Yxe))),{},{fill:`none`,className:`recharts-line-curve`,clipPath:l?`url(#clipPath-${t})`:void 0,points:r,type:o,layout:s,connectNulls:c,strokeDasharray:i??a.strokeDasharray});return y.createElement(y.Fragment,null,r?.length>1&&y.createElement(sH,PW({shapeType:`curve`,option:u},d,{pathRef:n})),y.createElement(aSe,{points:r,clipPathId:t,props:a}))}function sSe(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function cSe(e){var{clipPathId:t,props:n,pathRef:r,previousPointsRef:i,longestAnimatedLengthRef:a}=e,{points:o,strokeDasharray:s,isAnimationActive:c,animationBegin:l,animationDuration:u,animationEasing:d,animateNewValues:f,width:p,height:m,onAnimationEnd:h,onAnimationStart:g}=n,_=i.current,v=JM(o,`recharts-line-`),b=(0,y.useRef)(v),[x,S]=(0,y.useState)(!1),C=!x,w=(0,y.useCallback)(()=>{typeof h==`function`&&h(),S(!1)},[h]),T=(0,y.useCallback)(()=>{typeof g==`function`&&g(),S(!0)},[g]),E=sSe(r.current),D=(0,y.useRef)(0);b.current!==v&&(D.current=a.current,b.current=v);var O=D.current;return y.createElement(oSe,{points:o,showLabels:C},n.children,y.createElement(qM,{animationId:v,begin:l,duration:u,isActive:c,easing:d,onAnimationEnd:w,onAnimationStart:T,key:v},e=>{var l=XE(O,E+O,e),u=Math.min(l,E),d=c?s?iSe(u,E,`${s}`.split(/[,\s]+/gim).map(e=>parseFloat(e))):RW(E,u):s==null?void 0:String(s);if(e>0&&E>0&&(i.current=o,a.current=Math.max(a.current,u)),_){var h=_.length/o.length,g=e===1?o:o.map((t,n)=>{var r=Math.floor(n*h);if(_[r]){var i=_[r];return IW(IW({},t),{},{x:XE(i.x,t.x,e),y:XE(i.y,t.y,e)})}return f?IW(IW({},t),{},{x:XE(p*2,t.x,e),y:XE(m/2,t.y,e)}):IW(IW({},t),{},{x:t.x,y:t.y})});return i.current=g,y.createElement(zW,{props:n,points:g,clipPathId:t,pathRef:r,strokeDasharray:d})}return y.createElement(zW,{props:n,points:o,clipPathId:t,pathRef:r,strokeDasharray:d})}),y.createElement(eV,{label:n.label}))}function lSe(e){var{clipPathId:t,props:n}=e,r=(0,y.useRef)(null),i=(0,y.useRef)(0),a=(0,y.useRef)(null);return y.createElement(cSe,{props:n,clipPathId:t,previousPointsRef:r,longestAnimatedLengthRef:i,pathRef:a})}var uSe=(e,t)=>({x:e.x??void 0,y:e.y??void 0,value:e.value,errorVal:CA(e.payload,t)}),dSe=class extends y.Component{render(){var{hide:e,dot:t,points:n,className:r,xAxisId:i,yAxisId:a,top:o,left:s,width:c,height:l,id:u,needClip:d,zIndex:f}=this.props;if(e)return null;var p=MT(`recharts-line`,r),m=u,{r:h,strokeWidth:g}=AW(t),_=AV(t),v=h*2+g,b=d?`url(#clipPath-${_?``:`dots-`}${m})`:void 0;return y.createElement(Wz,{zIndex:f},y.createElement(HT,{className:p},d&&y.createElement(`defs`,null,y.createElement(TW,{clipPathId:m,xAxisId:i,yAxisId:a}),!_&&y.createElement(`clipPath`,{id:`clipPath-dots-${m}`},y.createElement(`rect`,{x:s-v/2,y:o-v/2,width:c+v,height:l+v}))),y.createElement(CW,{xAxisId:i,yAxisId:a,data:n,dataPointFormatter:uSe,errorBarOffset:0},y.createElement(lSe,{props:this.props,clipPathId:m}))),y.createElement(LU,{activeDot:this.props.activeDot,points:n,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:b}))}},BW={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,connectNulls:!1,dot:!0,fill:`#fff`,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:HI.line,type:`linear`};function fSe(e){var t=dD(e,BW),{activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,connectNulls:s,dot:c,hide:l,isAnimationActive:u,label:d,legendType:f,xAxisId:p,yAxisId:m,id:h}=t,g=LW(t,Xxe),{needClip:_}=wW(p,m),v=kU(),b=uj(),x=GA(),S=jD(e=>jxe(e,p,m,x,h));if(b!==`horizontal`&&b!==`vertical`||S==null||v==null)return null;var{height:C,width:w,x:T,y:E}=v;return y.createElement(dSe,PW({},g,{id:h,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:u,hide:l,label:d,legendType:f,xAxisId:p,yAxisId:m,points:S,layout:b,height:C,width:w,left:T,top:E,needClip:_}))}function pSe(e){var{layout:t,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,dataKey:o,bandSize:s,displayedData:c}=e;return c.map((e,c)=>{var l=CA(e,o);if(t===`horizontal`)return{x:OA({axis:n,ticks:i,bandSize:s,entry:e,index:c}),y:(QE(l)?null:r.scale.map(l))??null,value:l,payload:e};var u=QE(l)?null:n.scale.map(l),d=OA({axis:r,ticks:a,bandSize:s,entry:e,index:c});return u==null||d==null?null:{x:u,y:d,value:l,payload:e}}).filter(Boolean)}function mSe(e){var t=dD(e,BW),n=GA();return y.createElement(_H,{id:t.id,type:`line`},e=>y.createElement(y.Fragment,null,y.createElement(fH,{legendPayload:tSe(t)}),y.createElement(nSe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(TH,{type:`line`,id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),y.createElement(fSe,PW({},t,{id:e}))))}var VW=y.memo(mSe,NW);VW.displayName=`Line`;function HW(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function UW(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var WW=(e,t,n)=>RR(e,`xAxis`,HW(e,t),n),GW=(e,t,n)=>LR(e,`xAxis`,HW(e,t),n),KW=(e,t,n)=>RR(e,`yAxis`,UW(e,t),n),qW=(e,t,n)=>LR(e,`yAxis`,UW(e,t),n),hSe=ID([lj,WW,KW,GW,qW],(e,t,n,r,i)=>wA(e,`xAxis`)?MA(t,r,!1):MA(n,i,!1)),JW=ID([NL,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),YW=e=>wA(lj(e),`xAxis`)?`yAxis`:`xAxis`,gSe=(e,t)=>YW(e)===`yAxis`?UW(e,t):HW(e,t),_Se=ID([lj,WW,KW,GW,qW,ID([JW,(e,t,n)=>XL(e,YW(e),gSe(e,t),n)],(e,t)=>{if(!(e==null||t==null)){var{stackId:n}=e,r=cL(e);if(!(n==null||r==null)){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),wI,hSe,JW,mge],(e,t,n,r,i,a,o,s,c,l)=>{var{chartData:u,dataStartIndex:d,dataEndIndex:f}=o;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var{data:p}=c,m=p&&p.length>0?p:u?.slice(d,f+1);if(m!=null)return ISe({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:d,areaSettings:c,stackedData:a,displayedData:m,chartBaseValue:l,bandSize:s})}}),vSe=[`id`],ySe=[`activeDot`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`fill`,`fillOpacity`,`hide`,`isAnimationActive`,`legendType`,`stroke`,`xAxisId`,`yAxisId`];function XW(){return XW=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,stroke:r,fill:i,legendType:a,hide:o}=e;return[{inactive:o,dataKey:t,type:a,color:eG(r,i),value:PA(n,t),payload:e}]},TSe=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:s,unit:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:n,getPosition:tD,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:PA(o,t),hide:s,type:l,color:eG(r,a),unit:c,graphicalItemId:u}};return y.createElement(dH,{tooltipEntrySettings:d})});function ESe(e){var{clipPathId:t,points:n,props:r}=e,{needClip:i,dot:a,dataKey:o}=r,s=IT(r);return y.createElement(pU,{points:n,dot:a,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:o,baseProps:s,needClip:i,clipPathId:t})}function DSe(e){var{showLabels:t,children:n,points:r}=e,i=r.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return $W($W({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return y.createElement(YB,{value:t?i:void 0},n)}function tG(e){var{points:t,baseLine:n,needClip:r,clipPathId:i,props:a}=e,{layout:o,type:s,stroke:c,connectNulls:l,isRange:u}=a,{id:d}=a,f=ZW(a,vSe),p=IT(f),m=RT(f);return y.createElement(y.Fragment,null,t?.length>1&&y.createElement(HT,{clipPath:r?`url(#clipPath-${i})`:void 0},y.createElement(OM,XW({},m,{id:d,points:t,connectNulls:l,type:s,baseLine:n,layout:o,stroke:`none`,className:`recharts-area-area`})),c!==`none`&&y.createElement(OM,XW({},p,{className:`recharts-area-curve`,layout:o,type:s,connectNulls:l,fill:`none`,points:t})),c!==`none`&&u&&y.createElement(OM,XW({},p,{className:`recharts-area-curve`,layout:o,type:s,connectNulls:l,fill:`none`,points:n}))),y.createElement(ESe,{points:t,props:f,clipPathId:i}))}function OSe(e){var{alpha:t,baseLine:n,points:r,strokeWidth:i}=e,a=r[0]?.y,o=r[r.length-1]?.y;if(!yA(a)||!yA(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.x||0));return GE(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.x||0),c)),GE(c)?y.createElement(`rect`,{x:0,y:ae.y||0));return GE(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.y||0),c)),GE(c)?y.createElement(`rect`,{x:a({points:o,baseLine:s}),[o,s]),`recharts-area-`),h=dj(),[g,_]=(0,y.useState)(!1),v=!g,b=(0,y.useCallback)(()=>{typeof p==`function`&&p(),_(!1)},[p]),x=(0,y.useCallback)(()=>{typeof f==`function`&&f(),_(!0)},[f]);if(h==null)return null;var S=i.current,C=a.current;return y.createElement(DSe,{showLabels:v,points:o},r.children,y.createElement(qM,{animationId:m,begin:l,duration:u,isActive:c,easing:d,onAnimationEnd:b,onAnimationStart:x,key:m},e=>{if(S){var l=S.length/o.length,u=e===1?o:o.map((t,n)=>{var r=Math.floor(n*l);if(S[r]){var i=S[r];return $W($W({},t),{},{x:XE(i.x,t.x,e),y:XE(i.y,t.y,e)})}return t}),d=GE(s)?XE(C,s,e):QE(s)||UE(s)?XE(C,0,e):s.map((t,n)=>{var r=Math.floor(n*l);if(Array.isArray(C)&&C[r]){var i=C[r];return $W($W({},t),{},{x:XE(i.x,t.x,e),y:XE(i.y,t.y,e)})}return t});return e>0&&(i.current=u,a.current=d),y.createElement(tG,{points:u,baseLine:d,needClip:t,clipPathId:n,props:r})}return e>0&&(i.current=o,a.current=s),y.createElement(HT,null,c&&y.createElement(`defs`,null,y.createElement(`clipPath`,{id:`animationClipPath-${n}`},y.createElement(ASe,{alpha:e,points:o,baseLine:s,layout:h,strokeWidth:r.strokeWidth}))),y.createElement(HT,{clipPath:`url(#animationClipPath-${n})`},y.createElement(tG,{points:o,baseLine:s,needClip:t,clipPathId:n,props:r})))}),y.createElement(eV,{label:r.label}))}function MSe(e){var{needClip:t,clipPathId:n,props:r}=e,i=(0,y.useRef)(null),a=(0,y.useRef)();return y.createElement(jSe,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}var NSe=class extends y.PureComponent{render(){var{hide:e,dot:t,points:n,className:r,top:i,left:a,needClip:o,xAxisId:s,yAxisId:c,width:l,height:u,id:d,baseLine:f,zIndex:p}=this.props;if(e)return null;var m=MT(`recharts-area`,r),h=d,{r:g,strokeWidth:_}=AW(t),v=AV(t),b=g*2+_,x=o?`url(#clipPath-${v?``:`dots-`}${h})`:void 0;return y.createElement(Wz,{zIndex:p},y.createElement(HT,{className:m},o&&y.createElement(`defs`,null,y.createElement(TW,{clipPathId:h,xAxisId:s,yAxisId:c}),!v&&y.createElement(`clipPath`,{id:`clipPath-dots-${h}`},y.createElement(`rect`,{x:a-b/2,y:i-b/2,width:l+b,height:u+b}))),y.createElement(MSe,{needClip:o,clipPathId:h,props:this.props})),y.createElement(LU,{points:n,mainColor:eG(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}),this.props.isRange&&Array.isArray(f)&&y.createElement(LU,{points:f,mainColor:eG(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}))}},nG={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,xAxisId:0,yAxisId:0,zIndex:HI.area};function PSe(e){var t=dD(e,nG),{activeDot:n,animationBegin:r,animationDuration:i,animationEasing:a,connectNulls:o,dot:s,fill:c,fillOpacity:l,hide:u,isAnimationActive:d,legendType:f,stroke:p,xAxisId:m,yAxisId:h}=t,g=ZW(t,ySe),_=uj(),v=Mz(),{needClip:b}=wW(m,h),x=GA(),{points:S,isRange:C,baseLine:w}=jD(t=>_Se(t,e.id,x))??{},T=kU();if(_!==`horizontal`&&_!==`vertical`||T==null||v!==`AreaChart`&&v!==`ComposedChart`)return null;var{height:E,width:D,x:O,y:k}=T;return!S||!S.length?null:y.createElement(NSe,XW({},g,{activeDot:n,animationBegin:r,animationDuration:i,animationEasing:a,baseLine:w,connectNulls:o,dot:s,fill:c,fillOpacity:l,height:E,hide:u,layout:_,isAnimationActive:d===`auto`?!WM.isSsr:d,isRange:C,legendType:f,needClip:b,points:S,stroke:p,width:D,left:O,top:k,xAxisId:m,yAxisId:h}))}var FSe=(e,t,n,r,i)=>{var a=n??t;if(GE(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function ISe(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:r},stackedData:i,layout:a,chartBaseValue:o,xAxis:s,yAxis:c,displayedData:l,dataStartIndex:u,xAxisTicks:d,yAxisTicks:f,bandSize:p}=e,m=i&&i.length,h=FSe(a,o,n,s,c),g=a===`horizontal`,_=!1,v=l.map((e,n)=>{var a;if(m)a=i[u+n];else{var o=CA(e,r);Array.isArray(o)?(a=o,_=!0):a=[h,o]}var l=a?.[1]??null,v=l==null||m&&!t&&CA(e,r)==null;return g?{x:OA({axis:s,ticks:d,bandSize:p,entry:e,index:n}),y:v?null:c.scale.map(l)??null,value:a,payload:e}:{x:v?null:s.scale.map(l)??null,y:OA({axis:c,ticks:f,bandSize:p,entry:e,index:n}),value:a,payload:e}});return{points:v,baseLine:(m||_?v.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return g?{x:e.x,y:t!=null&&e.y!=null?c.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:s.scale.map(t)??null,y:e.y,payload:e.payload}}):g?c.scale.map(h):s.scale.map(h))??0,isRange:_}}function LSe(e){var t=dD(e,nG),n=GA();return y.createElement(_H,{id:t.id,type:`area`},e=>y.createElement(y.Fragment,null,y.createElement(fH,{legendPayload:wSe(t)}),y.createElement(TSe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(TH,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:DA(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),y.createElement(PSe,XW({},t,{id:e}))))}var rG=y.memo(LSe,NW);rG.displayName=`Area`;var RSe=!0,iG=`Invariant failed`;function zSe(e,t){if(!e){if(RSe)throw Error(iG);var n=typeof t==`function`?t():t,r=n?`${iG}: ${n}`:iG;throw Error(r)}}function aG(){return aG=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(GE(e))return e;var i=GE(n)||QE(n);return i?e(n,r):(!i&&zSe(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},VSe=(e,t,n)=>n,sG=ID([NL,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),HSe=ID([sG],e=>e?.maxBarSize),USe=(e,t,n,r)=>r,WSe=ID([lj,NL,HW,UW,VSe],(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`)),GSe=(e,t,n)=>{var r=lj(e),i=HW(e,t),a=UW(e,t);if(!(i==null||a==null))return r===`horizontal`?XL(e,`yAxis`,a,n):XL(e,`xAxis`,i,n)},KSe=ID([WSe,pge,(e,t)=>{var n=lj(e),r=HW(e,t),i=UW(e,t);if(!(r==null||i==null))return n===`horizontal`?AR(e,`xAxis`,r):AR(e,`yAxis`,i)}],zU),qSe=(e,t,n)=>{var r=sG(e,t);if(r==null)return 0;var i=HW(e,t),a=UW(e,t);if(i==null||a==null)return 0;var o=lj(e),s=PI(e),{maxBarSize:c}=r,l=QE(c)?s:c,u,d;return o===`horizontal`?(u=RR(e,`xAxis`,i,n),d=LR(e,`xAxis`,i,n)):(u=RR(e,`yAxis`,a,n),d=LR(e,`yAxis`,a,n)),MA(u,d,!0)??l??0},cG=(e,t,n)=>{var r=lj(e),i=HW(e,t),a=UW(e,t);if(!(i==null||a==null)){var o,s;return r===`horizontal`?(o=RR(e,`xAxis`,i,n),s=LR(e,`xAxis`,i,n)):(o=RR(e,`yAxis`,a,n),s=LR(e,`yAxis`,a,n)),MA(o,s)}},JSe=ID([UA,WA,(e,t,n)=>{var r=HW(e,t);if(r!=null)return RR(e,`xAxis`,r,n)},(e,t,n)=>{var r=UW(e,t);if(r!=null)return RR(e,`yAxis`,r,n)},(e,t,n)=>{var r=HW(e,t);if(r!=null)return LR(e,`xAxis`,r,n)},(e,t,n)=>{var r=UW(e,t);if(r!=null)return LR(e,`yAxis`,r,n)},ID([ID([KSe,PI,fge,FI,qSe,cG,HSe],KU),sG],JU),lj,wI,cG,ID([GSe,sG],qU),sG,USe],(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 SCe({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})}}),YSe=[`index`];function lG(){return lG=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,y.useContext)(uG);if(t!=null)return t.stackId;if(e!=null)return DA(e)},$Se=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,eCe=e=>{var t=(0,y.useContext)(uG);if(t!=null){var{stackId:n}=t;return`url(#${$Se(n,e)})`}},dG=e=>{var{index:t}=e,n=XSe(e,YSe),r=eCe(t);return y.createElement(HT,lG({className:`recharts-bar-stack-layer`,clipPath:r},n))},tCe=[`onMouseEnter`,`onMouseLeave`,`onClick`],nCe=[`value`,`background`,`tooltipPosition`],rCe=[`id`],iCe=[`onMouseEnter`,`onClick`,`onMouseLeave`];function fG(){return fG=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:PA(n,t),payload:e}]},uCe=y.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:tD,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:PA(a,t),hide:o,type:c,color:i,unit:s,graphicalItemId:l}};return y.createElement(dH,{tooltipEntrySettings:u})});function dCe(e){var t=jD(Cz),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:s,onClick:c}=a,l=hG(a,tCe),u=cH(o,r,a.id),d=lH(s),f=uH(c,r,a.id);if(!i||n==null)return null;var p=LT(i);return y.createElement(Wz,{zIndex:YU(i,HI.barBackground)},n.map((e,n)=>{var{value:a,background:o,tooltipPosition:s}=e,c=hG(e,nCe);if(!o)return null;var m=u(e,n),h=d(e,n),g=f(e,n),_=mG(mG(mG(mG(mG({option:i,isActive:String(n)===t},c),{},{fill:`#eee`},o),p),lD(l,e,n)),{},{onMouseEnter:m,onMouseLeave:h,onClick:g,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return y.createElement(oG,fG({key:`background-bar-${n}`},_))}))}function fCe(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 mG(mG({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return y.createElement(YB,{value:t?i:void 0},n)}function pCe(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,s=jD(Cz),c=jD(Tz),l=n&&String(a)===s&&(c==null||o===c),u=l?n:t;return l?y.createElement(Wz,{zIndex:HI.activeBar},y.createElement(dG,{index:a},y.createElement(oG,fG({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o})))):y.createElement(oG,fG({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o}))}function mCe(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return y.createElement(oG,fG({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function hCe(e){var{data:t,props:n}=e,r=IT(n)??{},{id:i}=r,a=hG(r,rCe),{shape:o,dataKey:s,activeBar:c}=n,{onMouseEnter:l,onClick:u,onMouseLeave:d}=n,f=hG(n,iCe),p=cH(l,s,i),m=lH(d),h=uH(u,s,i);return t?y.createElement(y.Fragment,null,t.map((e,t)=>y.createElement(dG,fG({index:t,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},lD(f,e,t),{onMouseEnter:p(e,t),onMouseLeave:m(e,t),onClick:h(e,t)}),c?y.createElement(pCe,{shape:o,activeBar:c,baseProps:a,entry:e,index:t,dataKey:s}):y.createElement(mCe,{shape:o,baseProps:a,entry:e,index:t,dataKey:s})))):null}function gCe(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=JM(t,`recharts-bar-`),[p,m]=(0,y.useState)(!1),h=!p,g=(0,y.useCallback)(()=>{typeof l==`function`&&l(),m(!1)},[l]),_=(0,y.useCallback)(()=>{typeof u==`function`&&u(),m(!0)},[u]);return y.createElement(fCe,{showLabels:h,rects:r},y.createElement(qM,{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 mG(mG({},t),{},{x:XE(r.x,t.x,e),y:XE(r.y,t.y,e),width:XE(r.width,t.width,e),height:XE(r.height,t.height,e)});if(i===`horizontal`){var a=XE(0,t.height,e),o=XE(t.stackedBarStart,t.y,e);return mG(mG({},t),{},{y:o,height:a})}var s=XE(0,t.width,e),c=XE(t.stackedBarStart,t.x,e);return mG(mG({},t),{},{width:s,x:c})});return e>0&&(n.current=a??null),a==null?null:y.createElement(HT,null,y.createElement(hCe,{props:t,data:a}))}),y.createElement(eV,{label:t.label}),t.children)}function _Ce(e){var t=(0,y.useRef)(null);return y.createElement(gCe,{previousRectanglesRef:t,props:e})}var gG=0,vCe=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:CA(e,t)}},yCe=class extends y.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=MT(`recharts-bar`,r),u=c;return y.createElement(HT,{className:l,id:c},o&&y.createElement(`defs`,null,y.createElement(TW,{clipPathId:u,xAxisId:i,yAxisId:a})),y.createElement(HT,{className:`recharts-bar-rectangles`,clipPath:o?`url(#clipPath-${u})`:void 0},y.createElement(dCe,{data:t,dataKey:n,background:s,allOtherBarProps:this.props}),y.createElement(_Ce,this.props)))}},bCe={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:gG,xAxisId:0,yAxisId:0,zIndex:HI.bar};function xCe(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}=wW(t,n),f=uj(),p=GA(),m=kV(e.children,cB),h=jD(t=>JSe(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,y.createElement(CW,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:vCe,errorBarOffset:g},y.createElement(yCe,fG({},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 SCe(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=Wue({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=Vue(T,_)}else g=CA(e,n),Array.isArray(g)||(g=[v,g]);var E=BSe(r,gG)(g[1],d);if(t===`horizontal`){var D=s.scale.map(g[0]),O=s.scale.map(g[1]);if(D==null||O==null)return null;b=kA({axis:o,ticks:c,bandSize:a,offset:i.offset,entry:e,index:d}),x=O??D??void 0,S=i.size;var k=D-O;if(C=UE(k)?0:k,w={x:b,y:f.top,width:S,height:f.height},Math.abs(E)>0&&Math.abs(C)0&&Math.abs(S)y.createElement(y.Fragment,null,y.createElement(fH,{legendPayload:lCe(t)}),y.createElement(uCe,{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}),y.createElement(TH,{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}),y.createElement(Wz,{zIndex:t.zIndex},y.createElement(xCe,fG({},t,{id:e})))))}var _G=y.memo(CCe,NW);_G.displayName=`Bar`;var wCe=[`domain`,`range`],TCe=[`domain`,`range`];function vG(e,t){if(e==null)return{};var n,r,i=ECe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{if(o!=null)return CG(CG({},a),{},{type:o})},[a,o]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(bU(s)):n.current!==s&&t(xU({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(SU(n.current)),null)},[t]),null}var FCe=e=>{var{xAxisId:t,className:n}=e,r=jD(WA),i=GA(),a=`xAxis`,o=jD(e=>IR(e,a,t,i)),s=jD(e=>OR(e,t)),c=jD(e=>s_e(e,t)),l=jD(e=>CL(e,t));if(s==null||c==null||l==null)return null;var{dangerouslySetInnerHTML:u,ticks:d,scale:f}=e,p=wG(e,OCe),{id:m,scale:h}=l,g=wG(l,kCe);return y.createElement(hW,xG({},p,g,{x:c.x,y:c.y,width:s.width,height:s.height,className:MT(`recharts-${a} ${a}`,n),viewBox:r,ticks:o,axisType:a}))},ICe={allowDataOverflow:SL.allowDataOverflow,allowDecimals:SL.allowDecimals,allowDuplicatedCategory:SL.allowDuplicatedCategory,angle:SL.angle,axisLine:mW.axisLine,height:SL.height,hide:!1,includeHidden:SL.includeHidden,interval:SL.interval,label:!1,minTickGap:SL.minTickGap,mirror:SL.mirror,orientation:SL.orientation,padding:SL.padding,reversed:SL.reversed,scale:SL.scale,tick:SL.tick,tickCount:SL.tickCount,tickLine:mW.tickLine,tickSize:mW.tickSize,type:SL.type,xAxisId:0},TG=y.memo(e=>{var t=dD(e,ICe);return y.createElement(y.Fragment,null,y.createElement(PCe,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit}),y.createElement(FCe,t))},bG);TG.displayName=`XAxis`;var LCe=[`type`],RCe=[`dangerouslySetInnerHTML`,`ticks`,`scale`],zCe=[`id`,`scale`];function EG(){return EG=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o!=null)return OG(OG({},a),{},{type:o})},[o,a]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(CU(s)):n.current!==s&&t(wU({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(TU(n.current)),null)},[t]),null}function GCe(e){var{yAxisId:t,className:n,width:r,label:i}=e,a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=jD(WA),c=GA(),l=kD(),u=`yAxis`,d=jD(e=>kR(e,t)),f=jD(e=>c_e(e,t)),p=jD(e=>IR(e,u,t,c)),m=jD(e=>EL(e,t));if((0,y.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||HB(i)||(0,y.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(EU({id:t,width:n}))}}},[p,d,l,i,t,r,m]),d==null||f==null||m==null)return null;var{dangerouslySetInnerHTML:h,ticks:g,scale:_}=e,v=kG(e,RCe),{id:b,scale:x}=m,S=kG(m,zCe);return y.createElement(hW,EG({},v,S,{ref:a,labelRef:o,x:f.x,y:f.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:d.width,height:d.height,className:MT(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u}))}var KCe={allowDataOverflow:TL.allowDataOverflow,allowDecimals:TL.allowDecimals,allowDuplicatedCategory:TL.allowDuplicatedCategory,angle:TL.angle,axisLine:mW.axisLine,hide:!1,includeHidden:TL.includeHidden,interval:TL.interval,label:!1,minTickGap:TL.minTickGap,mirror:TL.mirror,orientation:TL.orientation,padding:TL.padding,reversed:TL.reversed,scale:TL.scale,tick:TL.tick,tickCount:TL.tickCount,tickLine:mW.tickLine,tickSize:mW.tickSize,type:TL.type,width:TL.width,yAxisId:0},AG=y.memo(e=>{var t=dD(e,KCe);return y.createElement(y.Fragment,null,y.createElement(WCe,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter}),y.createElement(GCe,t))},bG);AG.displayName=`YAxis`;var jG=ID([(e,t)=>t,lj,aL,pL,gz,vz,eve,UA],sve),MG=e=>{var t=e.currentTarget.getBoundingClientRect(),n=t.width/e.currentTarget.offsetWidth,r=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/n),chartY:Math.round((e.clientY-t.top)/r)}},NG=sk(`mouseClick`),PG=mA();PG.startListening({actionCreator:NG,effect:(e,t)=>{var n=e.payload,r=jG(t.getState(),MG(n));r?.activeIndex!=null&&t.dispatch(v_e({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var FG=sk(`mouseMove`),IG=mA(),LG=null;IG.startListening({actionCreator:FG,effect:(e,t)=>{var n=e.payload;LG!==null&&cancelAnimationFrame(LG);var r=MG(n);LG=requestAnimationFrame(()=>{var e=t.getState();if(HR(e,e.tooltip.settings.shared)===`axis`){var n=jG(e,r);n?.activeIndex==null?t.dispatch(qR()):t.dispatch(JR({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}LG=null})}});function qCe(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<>`:t}var RG={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},zG=Ok({name:`rootProps`,initialState:RG,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??RG.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),JCe=zG.reducer,{updateOptions:YCe}=zG.actions,BG=Ok({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>t.payload}}),{updatePolarOptions:XCe}=BG.actions,ZCe=BG.reducer,VG=sk(`keyDown`),HG=sk(`focus`),UG=mA();UG.startListening({actionCreator:VG,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip,i=e.payload;if(!(i!==`ArrowRight`&&i!==`ArrowLeft`&&i!==`Enter`)){var a=ez(r,uz(n),JL(n),mz(n)),o=a==null?-1:Number(a);if(!(!Number.isFinite(o)||o<0)){var s=vz(n);if(i===`Enter`){var c=zz(n,`axis`,`hover`,String(r.index));t.dispatch(XR({active:!r.active,activeIndex:r.index,activeCoordinate:c}));return}var l=l_e(n)===`left-to-right`?1:-1,u=o+(i===`ArrowRight`?1:-1)*l;if(!(s==null||u>=s.length||u<0)){var d=zz(n,`axis`,`hover`,String(u));t.dispatch(XR({active:!0,activeIndex:u.toString(),activeCoordinate:d}))}}}}}}),UG.startListening({actionCreator:HG,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip;if(!r.active&&r.index==null){var i=`0`,a=zz(n,`axis`,`hover`,String(i));t.dispatch(XR({active:!0,activeIndex:i,activeCoordinate:a}))}}}});var WG=sk(`externalEvent`),GG=mA(),KG=new Map;GG.startListening({actionCreator:WG,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){r.persist();var i=r.type,a=KG.get(i);a!==void 0&&cancelAnimationFrame(a);var o=requestAnimationFrame(()=>{try{var e=t.getState();n({activeCoordinate:B_e(e),activeDataKey:Tz(e),activeIndex:Cz(e),activeLabel:wz(e),activeTooltipIndex:Cz(e),isTooltipActive:V_e(e)},r)}finally{KG.delete(i)}});KG.set(i,o)}}});var QCe=ID([ID([iz],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var{getPosition:i}=r;if(i!=null)return i(t)}}}),qG=sk(`touchMove`),JG=mA();JG.startListening({actionCreator:qG,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){var r=t.getState(),i=HR(r,r.tooltip.settings.shared);if(i===`axis`){var a=n.touches[0];if(a==null)return;var o=jG(r,MG({clientX:a.clientX,clientY:a.clientY,currentTarget:n.currentTarget}));o?.activeIndex!=null&&t.dispatch(JR({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if(i===`item`){var s=n.touches[0];if(document.elementFromPoint==null||s==null)return;var c=document.elementFromPoint(s.clientX,s.clientY);if(!c||!c.getAttribute)return;var l=c.getAttribute(BA),u=c.getAttribute(`data-recharts-item-id`)??void 0,d=lz(r).find(e=>e.id===u);if(l==null||d==null||u==null)return;var{dataKey:f}=d,p=QCe(r,l,u);t.dispatch(KR({activeDataKey:f,activeIndex:l,activeCoordinate:p,activeGraphicalItemId:u}))}}}});var $Ce=YD({brush:$U,cartesianAxis:DU,chartData:Pve,errorBars:Cxe,graphicalItems:wH,layout:Iue,legend:zde,options:kve,polarAxis:uV,polarOptions:ZCe,referenceElements:ybe,rootProps:JCe,tooltip:y_e,zIndex:bve}),ewe=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return vk({reducer:$Ce,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([PG.middleware,IG.middleware,UG.middleware,GG.middleware,JG.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(gk({type:`raf`}))},devTools:WM.devToolsEnabled&&{serialize:{replacer:qCe},name:`recharts-${t}`}})};function YG(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,i=GA(),a=(0,y.useRef)(null);if(i)return n;a.current??=ewe(t,r);var o=DD;return y.createElement(Gxe,{context:o,store:a.current},n)}function twe(e){var{layout:t,margin:n}=e,r=kD(),i=GA();return(0,y.useEffect)(()=>{i||(r(Nue(t)),r(_A(n)))},[r,i,t,n]),null}var XG=(0,y.memo)(twe,NW);function ZG(e){var t=kD();return(0,y.useEffect)(()=>{t(YCe(e))},[t,e]),null}function QG(e){var{zIndex:t,isPanorama:n}=e,r=(0,y.useRef)(null),i=kD();return(0,y.useLayoutEffect)(()=>(r.current&&i(vve({zIndex:t,element:r.current,isPanorama:n})),()=>{i(yve({zIndex:t,isPanorama:n}))}),[i,t,n]),y.createElement(`g`,{tabIndex:-1,ref:r})}function $G(e){var{children:t,isPanorama:n}=e,r=jD(lve);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return y.createElement(y.Fragment,null,i.map(e=>y.createElement(QG,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>y.createElement(QG,{key:e,zIndex:e,isPanorama:n})))}var nwe=[`children`];function rwe(e,t){if(e==null)return{};var n,r,i=iwe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=sj(),r=cj(),i=vM();if(!bA(n)||!bA(r))return null;var{children:a,otherAttributes:o,title:s,desc:c}=e,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),y.createElement(BT,eK({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:awe,ref:t}),a)}),swe=e=>{var{children:t}=e,n=jD(qA);if(!n)return null;var{width:r,height:i,y:a,x:o}=n;return y.createElement(BT,{width:r,height:i,x:o,y:a},t)},tK=(0,y.forwardRef)((e,t)=>{var{children:n}=e,r=rwe(e,nwe);return GA()?y.createElement(swe,null,y.createElement($G,{isPanorama:!0},n)):y.createElement(owe,eK({ref:t},r),y.createElement($G,{isPanorama:!1},n))});function cwe(){var e=kD(),[t,n]=(0,y.useState)(null),r=jD(Xue);return(0,y.useEffect)(()=>{if(t!=null){var n=t.getBoundingClientRect().width/t.offsetWidth;yA(n)&&n!==r&&e(Fue(n))}},[t,e,r]),n}function nK(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 lwe(e){for(var t=1;t(Uve(),null);function iK(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var mwe=(0,y.forwardRef)((e,t)=>{var n=(0,y.useRef)(null),[r,i]=(0,y.useState)({containerWidth:iK(e.style?.width),containerHeight:iK(e.style?.height)}),a=(0,y.useCallback)((e,t)=>{i(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),o=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null&&typeof ResizeObserver<`u`){var{width:r,height:i}=e.getBoundingClientRect();a(r,i);var o=new ResizeObserver(e=>{var t=e[0];if(t!=null){var{width:n,height:r}=t.contentRect;a(n,r)}});o.observe(e),n.current=o}},[t,a]);return(0,y.useEffect)(()=>()=>{n.current?.disconnect()},[a]),y.createElement(y.Fragment,null,y.createElement(pj,{width:r.containerWidth,height:r.containerHeight}),y.createElement(`div`,rK({ref:o},e)))}),hwe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e,[i,a]=(0,y.useState)({containerWidth:iK(n),containerHeight:iK(r)}),o=(0,y.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var{width:n,height:r}=e.getBoundingClientRect();o(n,r)}},[t,o]);return y.createElement(y.Fragment,null,y.createElement(pj,{width:i.containerWidth,height:i.containerHeight}),y.createElement(`div`,rK({ref:s},e)))}),gwe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e;return y.createElement(y.Fragment,null,y.createElement(pj,{width:n,height:r}),y.createElement(`div`,rK({ref:t},e)))}),_we=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e;return typeof n==`string`||typeof r==`string`?y.createElement(hwe,rK({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?y.createElement(gwe,rK({},e,{width:n,height:r,ref:t})):y.createElement(y.Fragment,null,y.createElement(pj,{width:n,height:r}),y.createElement(`div`,rK({ref:t},e)))});function vwe(e){return e?mwe:_we}var ywe=(0,y.forwardRef)((e,t)=>{var{children:n,className:r,height:i,onClick:a,onContextMenu:o,onDoubleClick:s,onMouseDown:c,onMouseEnter:l,onMouseLeave:u,onMouseMove:d,onMouseUp:f,onTouchEnd:p,onTouchMove:m,onTouchStart:h,style:g,width:_,responsive:v,dispatchTouchEvents:b=!0}=e,x=(0,y.useRef)(null),S=kD(),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(null),D=cwe(),O=nj(),k=O?.width>0?O.width:_,A=O?.height>0?O.height:i,j=(0,y.useCallback)(e=>{D(e),typeof t==`function`&&t(e),w(e),E(e),e!=null&&(x.current=e)},[D,t,w,E]),M=(0,y.useCallback)(e=>{S(NG(e)),S(WG({handler:a,reactEvent:e}))},[S,a]),N=(0,y.useCallback)(e=>{S(FG(e)),S(WG({handler:l,reactEvent:e}))},[S,l]),P=(0,y.useCallback)(e=>{S(qR()),S(WG({handler:u,reactEvent:e}))},[S,u]),F=(0,y.useCallback)(e=>{S(FG(e)),S(WG({handler:d,reactEvent:e}))},[S,d]),I=(0,y.useCallback)(()=>{S(HG())},[S]),L=(0,y.useCallback)(e=>{S(VG(e.key))},[S]),R=(0,y.useCallback)(e=>{S(WG({handler:o,reactEvent:e}))},[S,o]),z=(0,y.useCallback)(e=>{S(WG({handler:s,reactEvent:e}))},[S,s]),B=(0,y.useCallback)(e=>{S(WG({handler:c,reactEvent:e}))},[S,c]),ee=(0,y.useCallback)(e=>{S(WG({handler:f,reactEvent:e}))},[S,f]),te=(0,y.useCallback)(e=>{S(WG({handler:h,reactEvent:e}))},[S,h]),V=(0,y.useCallback)(e=>{b&&S(qG(e)),S(WG({handler:m,reactEvent:e}))},[S,b,m]),ne=(0,y.useCallback)(e=>{S(WG({handler:p,reactEvent:e}))},[S,p]),re=vwe(v);return y.createElement(Jz.Provider,{value:C},y.createElement(UT.Provider,{value:T},y.createElement(re,{width:k??g?.width,height:A??g?.height,className:MT(`recharts-wrapper`,r),style:lwe({position:`relative`,cursor:`default`,width:k,height:A},g),onClick:M,onContextMenu:R,onDoubleClick:z,onFocus:I,onKeyDown:L,onMouseDown:B,onMouseEnter:N,onMouseLeave:P,onMouseMove:F,onMouseUp:ee,onTouchEnd:ne,onTouchMove:V,onTouchStart:te,ref:j},y.createElement(pwe,null),n)))}),bwe=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function xwe(e,t){if(e==null)return{};var n,r,i=Swe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{width:n,height:r,responsive:i,children:a,className:o,style:s,compact:c,title:l,desc:u}=e,d=IT(xwe(e,bwe));return c?y.createElement(y.Fragment,null,y.createElement(pj,{width:n,height:r}),y.createElement(tK,{otherAttributes:d,title:l,desc:u},a)):y.createElement(ywe,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},y.createElement(tK,{otherAttributes:d,title:l,desc:u,ref:t},y.createElement(bbe,null,a)))});function oK(){return oK=Object.assign?Object.assign.bind():function(e){for(var t=1;ty.createElement(sK,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:wwe,tooltipPayloadSearcher:Qz,categoricalChartProps:e,ref:t})),Ewe=[`axis`,`item`],cK=(0,y.forwardRef)((e,t)=>y.createElement(sK,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:Ewe,tooltipPayloadSearcher:Qz,categoricalChartProps:e,ref:t}));function Dwe(e){var t=kD();return(0,y.useEffect)(()=>{t(XCe(e))},[t,e]),null}var Owe=[`layout`];function lK(){return lK=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var n=dD(e,Iwe);return y.createElement(jwe,{chartName:`PieChart`,defaultTooltipEventType:`item`,validateTooltipEventTypes:Fwe,tooltipPayloadSearcher:Qz,categoricalChartProps:n,ref:t})}),Lwe=[`axis`],mK=(0,y.forwardRef)((e,t)=>y.createElement(sK,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:Lwe,tooltipPayloadSearcher:Qz,categoricalChartProps:e,ref:t})),hK=[{value:`6h`,label:`6h`,hours:6},{value:`24h`,label:`24h`,hours:24},{value:`48h`,label:`48h`,hours:48},{value:`7d`,label:`7d`,hours:168}];function Rwe({isOpen:e,onClose:t,printerId:n,printerName:r,amsId:i,amsLabel:a,initialMode:o=`humidity`,thresholds:s}){let{t:c}=et(),{mode:l}=cd(),[u,d]=(0,y.useState)(`24h`),[f,p]=(0,y.useState)(o),m=l===`dark`,{data:h}=K({queryKey:[`settings`],queryFn:Z.getSettings}),g=h?.time_format||`system`;(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]);let _=hK.find(e=>e.value===u)?.hours||24,{data:v,isLoading:b,error:x}=K({queryKey:[`ams-history`,n,i,_],queryFn:()=>Z.getAMSHistory(n,i,_),enabled:e,refetchInterval:6e4});if(!e)return null;let S=v?.data.map(e=>({time:(nf(e.recorded_at)||new Date).getTime(),humidity:e.humidity,temperature:e.temperature}))||[],C=Date.now()-_*60*60*1e3,w=Date.now(),T=[...S];if(T.length>0){let e=T[0];e.time>C&&T.unshift({...e,time:C});let t=T[T.length-1];t.time{let t=e.filter(e=>e!=null);if(t.length<4)return`stable`;let n=t.slice(0,Math.floor(t.length/4)),r=t.slice(-Math.floor(t.length/4)),i=n.reduce((e,t)=>e+t,0)/n.length,a=r.reduce((e,t)=>e+t,0)/r.length-i;return Math.abs(a)<2?`stable`:a>0?`up`:`down`},P=N(T.map(e=>e.humidity)),F=N(T.map(e=>e.temperature)),I=({trend:e})=>e===`up`?(0,G.jsx)(gu,{className:`w-4 h-4 text-red-400`}):e===`down`?(0,G.jsx)(hu,{className:`w-4 h-4 text-green-400`}):(0,G.jsx)(el,{className:`w-4 h-4 text-gray-400 dark:text-bambu-gray`}),L=e=>e==null?`#9ca3af`:e<=E?`#22a352`:e<=D?`#d4a017`:`#c62828`,R=e=>e==null?`#9ca3af`:e<=O?`#22a352`:e<=k?`#d4a017`:`#c62828`,z=m?`#2d2d2d`:`#ffffff`,B=m?`#1d1d1d`:`#f3f4f6`,ee=m?`#3d3d3d`:`#e5e7eb`,te=m?`#ffffff`:`#111827`,V=m?`#9ca3af`:`#4b5563`;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,onClick:t,children:(0,G.jsxs)(`div`,{className:`rounded-xl w-full max-w-4xl max-h-[90vh] overflow-hidden shadow-xl`,style:{backgroundColor:z},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b`,style:{borderColor:ee},children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold`,style:{color:te},children:[a,` `,c(`common.history`,`History`)]}),(0,G.jsx)(`p`,{className:`text-sm`,style:{color:V},children:r})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-2 rounded-lg transition-colors`,style:{color:V},children:(0,G.jsx)(Nu,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-6 overflow-y-auto max-h-[calc(90vh-80px)]`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between max-[550px]:flex-col max-[550px]:items-start max-[550px]:gap-3`,children:[(0,G.jsxs)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:B},children:[(0,G.jsxs)(`button`,{onClick:()=>p(`humidity`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${f===`humidity`?`bg-blue-600 text-white`:``}`,style:f===`humidity`?void 0:{color:V},children:[(0,G.jsx)(Rs,{className:`w-4 h-4`}),c(`common.humidity`,`Humidity`)]}),(0,G.jsxs)(`button`,{onClick:()=>p(`temperature`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${f===`temperature`?`bg-orange-600 text-white`:``}`,style:f===`temperature`?void 0:{color:V},children:[(0,G.jsx)(fu,{className:`w-4 h-4`}),c(`common.temperature`,`Temperature`)]})]}),(0,G.jsx)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:B},children:hK.map(e=>(0,G.jsx)(`button`,{onClick:()=>d(e.value),className:`px-3 py-1 text-sm rounded-md transition-colors ${u===e.value?`bg-bambu-green text-white`:``}`,style:u===e.value?void 0:{color:V},children:e.label},e.value))})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-4 max-[550px]:grid-cols-2`,children:f===`humidity`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-2`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:L(j)},children:j==null?`—`:`${j}%`}),(0,G.jsx)(I,{trend:P})]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-4`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:te},children:v?.avg_humidity==null?`—`:`${v.avg_humidity}%`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-1`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-green-500`,children:v?.min_humidity==null?`—`:`${v.min_humidity}%`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-3`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-red-500`,children:v?.max_humidity==null?`—`:`${v.max_humidity}%`})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-2`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:R(M)},children:M==null?`—`:`${M}°C`}),(0,G.jsx)(I,{trend:F})]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-4`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:te},children:v?.avg_temperature==null?`—`:`${v.avg_temperature}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-1`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-blue-500`,children:v?.min_temperature==null?`—`:`${v.min_temperature}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-3`,style:{backgroundColor:B},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-red-500`,children:v?.max_temperature==null?`—`:`${v.max_temperature}°C`})]})]})}),(0,G.jsx)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:B},children:b?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center`,style:{color:V},children:c(`common.loading`,`Loading...`)}):x?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center text-red-500`,children:c(`common.error`,`Error loading data`)}):T.length===0?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center`,style:{color:V},children:c(`common.noData`,`No data available for this time range`)}):(0,G.jsx)(rj,{width:`100%`,height:300,children:(0,G.jsxs)(Twe,{data:T,children:[(0,G.jsx)(xW,{strokeDasharray:`3 3`,stroke:m?`#3d3d3d`:`#e5e7eb`}),(0,G.jsx)(TG,{dataKey:`time`,type:`number`,domain:[Date.now()-_*60*60*1e3,Date.now()],tickFormatter:e=>{let t=new Date(e);return _>24?t.toLocaleDateString([],{day:`numeric`,month:`short`}):t.toLocaleTimeString([],tf({hour:`2-digit`,minute:`2-digit`},g))},stroke:m?`#9ca3af`:`#6b7280`,tick:{fontSize:12}}),(0,G.jsx)(AG,{stroke:m?`#9ca3af`:`#6b7280`,tick:{fontSize:12},domain:f===`humidity`?[0,100]:[`auto`,`auto`],tickFormatter:e=>f===`humidity`?`${e}%`:`${e}°C`}),(0,G.jsx)(sB,{contentStyle:{backgroundColor:m?`#2d2d2d`:`#ffffff`,border:`1px solid ${m?`#3d3d3d`:`#e5e7eb`}`,borderRadius:`8px`,color:m?`#fff`:`#000`},labelFormatter:e=>new Date(e).toLocaleString(void 0,tf({year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`},g)),formatter:e=>[f===`humidity`?`${e??0}%`:`${e??0}°C`,f===`humidity`?`Humidity`:`Temperature`]}),(0,G.jsx)(cM,{}),f===`humidity`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(aW,{y:E,stroke:`#22a352`,strokeDasharray:`5 5`,label:{value:`Good`,fill:`#22a352`,fontSize:10}}),(0,G.jsx)(aW,{y:D,stroke:`#d4a017`,strokeDasharray:`5 5`,label:{value:`Fair`,fill:`#d4a017`,fontSize:10}})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(aW,{y:O,stroke:`#22a352`,strokeDasharray:`5 5`,label:{value:`Good`,fill:`#22a352`,fontSize:10}}),(0,G.jsx)(aW,{y:k,stroke:`#d4a017`,strokeDasharray:`5 5`,label:{value:`Fair`,fill:`#d4a017`,fontSize:10}})]}),(0,G.jsx)(VW,{type:`monotone`,dataKey:f,name:f===`humidity`?`Humidity`:`Temperature`,stroke:f===`humidity`?`#3b82f6`:`#f97316`,strokeWidth:2,dot:!1,activeDot:{r:4},connectNulls:!0})]})})}),(0,G.jsx)(`div`,{className:`text-xs text-center`,style:{color:V},children:c(`amsHistory.recordingInfo`,`Data is recorded every 5 minutes while the printer is connected`)})]})]})})}function gK({data:e,children:t,disabled:n,className:r=``,spoolman:i,inventory:a,configureSlot:o,actions:s}){let{t:c}=et(),l=Xn(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(`top`),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(null),S=(0,y.useRef)(null),C=(0,y.useRef)(null),w=()=>{let t=e.trayUuid;t&&(navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(t).then(()=>{_(!0),setTimeout(()=>_(!1),2e3)}).catch(()=>{T(t)}):T(t))},T=e=>{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();try{document.execCommand(`copy`),_(!0),setTimeout(()=>_(!1),2e3)}catch{console.error(`Failed to copy to clipboard`)}document.body.removeChild(t)};(0,y.useLayoutEffect)(()=>{if(!u){h(null);return}let e=()=>{if(!x.current||!S.current)return;let e=x.current.getBoundingClientRect(),t=S.current.offsetHeight,n=S.current.offsetWidth,r=e.top-56,i=window.innerHeight-e.bottom,a=rr?`bottom`:`top`,o=e.left+e.width/2,s=Math.max(8,Math.min(o-n/2,window.innerWidth-n-8)),c=a===`top`?e.top-t-8:e.bottom+8;p(a),h({top:c,left:s})};e();let t=requestAnimationFrame(e);return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{cancelAnimationFrame(t),window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[u]);let E=()=>{n||(C.current&&clearTimeout(C.current),C.current=setTimeout(()=>d(!0),80))},D=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>d(!1),100)};(0,y.useEffect)(()=>()=>{C.current&&clearTimeout(C.current)},[]);let O=e=>e<=15?`#ef4444`:e<=30?`#f97316`:e<=50?`#eab308`:`#22c55e`,k=e.colorHex?`#${e.colorHex.replace(`#`,``)}`:null,A=a?.assignedSpool?.remainingWeightGrams??null;return(0,G.jsxs)(`div`,{ref:x,"data-testid":`filament-slot`,className:`relative ${r}`,onMouseEnter:E,onMouseLeave:D,children:[t,u&&(0,Bf.createPortal)((0,G.jsxs)(`div`,{ref:S,className:`fixed z-[60] animate-in fade-in-0 zoom-in-95 duration-150`,style:{top:m?.top??-9999,left:m?.left??-9999,maxWidth:`calc(100vw - 24px)`,visibility:m?`visible`:`hidden`},onMouseEnter:E,onMouseLeave:D,children:[(0,G.jsxs)(`div`,{className:`
w-52 bg-bambu-dark-secondary border border-bambu-dark-tertiary
rounded-lg shadow-xl overflow-hidden
backdrop-blur-sm
@@ -8531,7 +8531,7 @@ void main() {
absolute left-0 z-50
${u===`top`?`bottom-full mb-2`:`top-full mt-2`}
animate-in fade-in-0 zoom-in-95 duration-150
- `,style:{maxWidth:`calc(100vw - 24px)`},onMouseEnter:w,onMouseLeave:T,children:(0,G.jsxs)(`div`,{className:`w-52 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl overflow-hidden backdrop-blur-sm p-2.5 space-y-2`,children:[(0,G.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-bambu-gray font-medium`,children:n}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.serialNumber`)}),(0,G.jsx)(`span`,{className:`text-[10px] text-white font-mono truncate`,children:e.serial_number||`—`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.firmwareVersion`)}),(0,G.jsx)(`span`,{className:`text-[10px] text-white font-mono truncate`,children:e.sw_ver||`—`})]}),(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.friendlyName`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary/50`})]}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>i&&p(e.target.value),onKeyDown:e=>e.key===`Enter`&&E(),onFocus:()=>b(!0),onBlur:()=>{b(!1),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>l(!1),200)},placeholder:i?s(`printers.amsPopup.friendlyNamePlaceholder`):r?.[e.id]||`—`,disabled:!i,title:i?void 0:s(`printers.amsPopup.noEditPermission`),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-xs text-white placeholder-bambu-gray/60 focus:outline-none focus:border-bambu-green disabled:opacity-50 disabled:cursor-not-allowed`,maxLength:100}),i&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[g&&(0,G.jsx)(`p`,{className:`text-[10px] text-red-400 break-words`,children:g}),(0,G.jsxs)(`div`,{className:`flex gap-1 justify-end`,children:[(0,G.jsx)(`button`,{onClick:E,disabled:m,className:`px-2 py-0.5 text-[10px] bg-bambu-green text-white rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:s(`printers.amsPopup.save`)}),r?.[e.id]&&(0,G.jsx)(`button`,{onClick:async()=>{if(i){h(!0),_(null);try{await Z.deleteAmsLabel(t,e.id,e.serial_number),a(),l(!1)}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(!1)}}},disabled:m,className:`px-2 py-0.5 text-[10px] bg-bambu-dark-tertiary text-bambu-gray rounded hover:bg-bambu-dark-tertiary/70 disabled:opacity-50`,children:s(`printers.amsPopup.clear`)})]})]})]})]})})]})}var qq={PLA:{n3f:45,n3s:45,n3f_hours:12,n3s_hours:12},PETG:{n3f:65,n3s:65,n3f_hours:12,n3s_hours:12},TPU:{n3f:65,n3s:75,n3f_hours:12,n3s_hours:18},ABS:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},ASA:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:12},PC:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PVA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:18}};function Jq({printer:e,hideIfDisconnected:t,maintenanceInfo:n,viewMode:r=`expanded`,cardSize:i=2,amsThresholds:a,spoolmanEnabled:o=!1,linkedSpools:s,spoolmanUrl:c,spoolmanSyncMode:l,onGetAssignment:u,onUnassignSpool:d,spoolmanSpools:f,spoolmanSlotAssignments:p,spoolmanLoading:m=!1,onUnassignSpoolmanSpool:h,timeFormat:g=`system`,cameraViewMode:_=`window`,onOpenEmbeddedCamera:v,checkPrinterFirmware:b=!0,dryingPresets:x=qq,requirePlateClear:S=!1,selectionMode:C=!1,isSelected:w=!1,onToggleSelect:T,onOpenCompactCard:E,nozzleTempPresets:D=Wf,bedTempPresets:O=Gf,chamberTempPresets:k=Kf,fanSpeedPresets:A=qf}){let{t:j}=et(),M=$a(),N=Xn(),{showToast:P}=yd(),{hasPermission:F}=ad(),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)(!1),[B,ee]=(0,y.useState)(!0),[te,V]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(!1),[ie,H]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(!1),[U,se]=(0,y.useState)(!1),[ce,le]=(0,y.useState)(null),[ue,de]=(0,y.useState)(!1),[fe,pe]=(0,y.useState)(!1),[me,he]=(0,y.useState)(!1),[ge,_e]=(0,y.useState)(null),[ve,ye]=(0,y.useState)(null),[be,xe]=(0,y.useState)(null),[Se,Ce]=(0,y.useState)(null),[we,Te]=(0,y.useState)(10),[Ee,De]=(0,y.useState)(null),[Oe,ke]=(0,y.useState)(!1),[Ae,je]=(0,y.useState)(!1),[Me,Ne]=(0,y.useState)(!1),[Pe,Fe]=(0,y.useState)(!1),[Ie,Le]=(0,y.useState)(!1),Re=(0,y.useCallback)(()=>Fe(!1),[]),[ze,Be]=(0,y.useState)(null),[Ve,He]=(0,y.useState)(null),[Ue,We]=(0,y.useState)(`n3f`),[Ge,Ke]=(0,y.useState)(`PLA`),[qe,Je]=(0,y.useState)(50),[Ye,Xe]=(0,y.useState)(4),[Ze,Qe]=(0,y.useState)(!1),[$e,tt]=(0,y.useState)(null),[nt,rt]=(0,y.useState)(!1),[it,at]=(0,y.useState)(!1),ot=(0,y.useRef)(null),st=(0,y.useRef)(0),[ct,lt]=(0,y.useState)(null),[ut,dt]=(0,y.useState)(null),[ft,pt]=(0,y.useState)(null),[mt,ht]=(0,y.useState)(null),[gt,_t]=(0,y.useState)(!1),[vt,yt]=(0,y.useState)(null),[bt,xt]=(0,y.useState)(!1),[St,Ct]=(0,y.useState)(!1),[wt,Tt]=(0,y.useState)(null),[Et,Dt]=(0,y.useState)(!1),[Ot,kt]=(0,y.useState)(!1),{data:W}=K({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:3e4}),{data:At}=K({queryKey:[`firmwareUpdate`,e.id],queryFn:()=>$u.checkPrinterUpdate(e.id),staleTime:300*1e3,refetchInterval:300*1e3,enabled:b&&F(`firmware:read`)}),jt=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_info_idx&&e.add(n.tray_info_idx);for(let t of W?.vt_tray??[])t.tray_info_idx&&e.add(t.tray_info_idx);if(W?.nozzle_rack)for(let t of W.nozzle_rack)t.filament_id&&e.add(t.filament_id);return Array.from(e)},[W?.ams,W?.vt_tray,W?.nozzle_rack]),Mt=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_type&&e.add(n.tray_type.toUpperCase());for(let t of W?.vt_tray??[])t.tray_type&&e.add(t.tray_type.toUpperCase());return e},[W?.ams,W?.vt_tray]),Nt=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams){for(let t of W.ams)for(let n of t.tray||[])if(n.tray_type&&n.tray_color){let t=n.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${n.tray_type.toUpperCase()}:${t}`)}}for(let t of W?.vt_tray??[])if(t.tray_type&&t.tray_color){let n=t.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${t.tray_type.toUpperCase()}:${n}`)}return e},[W?.ams,W?.vt_tray]),{data:Pt}=K({queryKey:[`filamentInfo`,jt],queryFn:()=>Z.getFilamentInfo(jt),enabled:jt.length>0,staleTime:300*1e3}),{data:Ft}=K({queryKey:[`slotPresets`,e.id],queryFn:()=>Z.getSlotPresets(e.id),staleTime:120*1e3}),It=W?.state===`RUNNING`||W?.state===`PAUSE`?W?.current_archive_id??null:null,{data:Lt}=K({queryKey:[`archive-plates`,It],queryFn:()=>Z.getArchivePlates(It),enabled:It!=null,staleTime:300*1e3}),Rt=!Lt?.is_multi_plate||W?.current_plate_id==null?null:Lt.plates.find(e=>e.index===W.current_plate_id)?.name||j(`printers.plateNumber`,`Plate {{number}}`,{number:W.current_plate_id}),{data:zt,refetch:Bt}=K({queryKey:[`amsLabels`,e.id],queryFn:()=>Z.getAmsLabels(e.id),staleTime:300*1e3}),[Vt,Ht]=(0,y.useState)(null);(0,y.useEffect)(()=>{W?.wifi_signal!=null&&Ht(W.wifi_signal)},[W?.wifi_signal]);let Ut=W?.wifi_signal??Vt,Wt=(0,y.useRef)(void 0);(0,y.useEffect)(()=>{W?.connected!==void 0&&(Wt.current=W.connected)},[W?.connected]);let Gt=W?.connected??Wt.current,Kt=(0,y.useRef)({});(0,y.useEffect)(()=>{W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0&&(Kt.current=W.ams_extruder_map)},[W?.ams_extruder_map]);let qt=W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0?W.ams_extruder_map:Kt.current,Jt=(0,y.useRef)([]);(0,y.useEffect)(()=>{W?.ams&&W.ams.length>0&&(Jt.current=W.ams)},[W?.ams]);let Yt=W?.ams&&W.ams.length>0?W.ams:Jt.current,Xt=(0,y.useRef)(void 0),Zt=W?.tray_now;Zt!==void 0&&Zt!==255?Xt.current=Zt:Zt===255&&(Xt.current=void 0);let Qt=Zt!==void 0&&Zt!==255?Zt:Xt.current,{data:$t}=K({queryKey:[`smartPlugByPrinter`,e.id],queryFn:()=>Z.getSmartPlugByPrinter(e.id)}),{data:en}=K({queryKey:[`scriptPlugsByPrinter`,e.id],queryFn:()=>Z.getScriptPlugsByPrinter(e.id)}),{data:tn}=K({queryKey:[`smartPlugStatus`,$t?.id],queryFn:()=>$t?Z.getSmartPlugStatus($t.id):null,enabled:!!$t,refetchInterval:1e4}),{data:nn}=K({queryKey:[`queue`,e.id,`pending`],queryFn:()=>Z.getQueue(e.id,`pending`)}),rn=(0,y.useMemo)(()=>nn?.length?AT(nn,Mt,Nt).length:0,[nn,Mt,Nt]),{data:an}=K({queryKey:[`queue`,e.id,`printing`],queryFn:()=>Z.getQueue(e.id,`printing`),enabled:W?.state===`RUNNING`}),{data:on}=K({queryKey:[`currentPrintUser`,e.id],queryFn:()=>Z.getCurrentPrintUser(e.id),enabled:W?.state===`RUNNING`}),sn=an?.[0]?.created_by_username||on?.username,{data:cn}=K({queryKey:[`archives`,e.id,`last`],queryFn:()=>Z.getArchives(e.id,1,0),enabled:W?.connected&&W?.state!==`RUNNING`}),ln=cn?.[0],un=W?.state===`RUNNING`||W?.state===`PAUSE`,dn=S&&W?.awaiting_plate_clear===!0,fn=W?.connected&&dn&&!un,pn=W?.current_print&&un?Hf(W.subtask_name||W.current_print||null,W.gcode_file,j,Rt):null,[mn,hn]=(0,y.useState)(null);(0,y.useEffect)(()=>{pn?hn({name:pn,coverUrl:W?.cover_url??null}):dn||hn(null)},[pn,dn,W?.cover_url]);let gn=!S||!W?.connected?null:un?{label:j(`printers.plateStatus.inUse`),className:`bg-blue-500/20 text-blue-400`}:W.awaiting_plate_clear?{label:j(`printers.plateStatus.notCleared`),className:`bg-yellow-500/20 text-yellow-400`}:{label:j(`printers.plateStatus.cleared`),className:`bg-status-ok/20 text-status-ok`},_n=gn?(0,G.jsx)(`span`,{className:`inline-flex flex-shrink-0 items-center rounded-full px-2 py-0.5 text-[10px] font-medium ${gn.className}`,children:gn.label}):null,vn=t&&Gt===!1,yn=q({mutationFn:t=>Z.deletePrinter(e.id,t.deleteArchives),onSuccess:()=>{M.invalidateQueries({queryKey:[`printers`]}),M.invalidateQueries({queryKey:[`archives`]}),M.invalidateQueries({queryKey:[`maintenanceOverview`]})},onError:e=>P(e.message||j(`printers.toast.failedToDelete`),`error`)}),bn=q({mutationFn:()=>Z.connectPrinter(e.id),onSuccess:()=>{M.invalidateQueries({queryKey:[`printerStatus`,e.id]})}}),xn=q({mutationFn:()=>Z.refreshPrinterStatus(e.id),onSuccess:()=>{M.invalidateQueries({queryKey:[`printerStatus`,e.id]}),P(j(`printers.forceRefreshSuccess`),`success`)},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Sn=q({mutationFn:e=>Z.unlinkSpool(e),onSuccess:e=>{P(j(`spoolman.unlinkSuccess`)||e?.message,`success`),M.invalidateQueries({queryKey:[`linked-spools`]}),M.invalidateQueries({queryKey:[`unlinked-spools`]}),M.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})},onError:e=>{P(e.message||j(`spoolman.unlinkFailed`),`error`)}}),Cn=q({mutationFn:({amsId:t,temp:n,duration:r,filament:i,rotateTray:a})=>Z.startDrying(e.id,t,n,r,i,a),onSuccess:()=>{He(null),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),wn=q({mutationFn:t=>Z.stopDrying(e.id,t),onSuccess:()=>{M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Tn=q({mutationFn:e=>$t?Z.controlSmartPlug($t.id,e):Promise.reject(`No plug`),onSuccess:()=>{M.invalidateQueries({queryKey:[`smartPlugStatus`,$t?.id]})}}),En=q({mutationFn:e=>$t?Z.updateSmartPlug($t.id,{auto_off:e}):Promise.reject(`No plug`),onSuccess:()=>{M.invalidateQueries({queryKey:[`smartPlugByPrinter`,e.id]}),M.invalidateQueries({queryKey:[`smart-plugs`]})}}),Dn=q({mutationFn:({id:e,action:t})=>Z.controlSmartPlug(e,t),onSuccess:()=>{P(j(`printers.toast.scriptTriggered`))},onError:e=>P(e.message||j(`printers.toast.failedToRunScript`),`error`)}),On=q({mutationFn:()=>Z.stopPrint(e.id),onSuccess:()=>{P(j(`printers.toast.printStopped`)),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToStopPrint`),`error`)}),kn=q({mutationFn:()=>Z.pausePrint(e.id),onSuccess:()=>{P(j(`printers.toast.printPaused`)),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToPausePrint`),`error`)}),An=q({mutationFn:()=>Z.resumePrint(e.id),onSuccess:()=>{P(j(`printers.toast.printResumed`)),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToResumePrint`),`error`)}),jn=q({mutationFn:()=>Z.clearPlate(e.id),onSuccess:()=>{P(j(`queue.clearPlateSuccess`)),M.setQueryData([`printerStatus`,e.id],e=>e&&{...e,awaiting_plate_clear:!1}),M.invalidateQueries({queryKey:[`printerStatus`,e.id]}),M.invalidateQueries({queryKey:[`queue`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Mn=q({mutationFn:({target:t,nozzle:n})=>Z.setNozzleTemperature(e.id,t,n),onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Nn=q({mutationFn:t=>Z.setBedTemperature(e.id,t),onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Pn=q({mutationFn:t=>Z.setChamberTemperature(e.id,t),onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Fn=q({mutationFn:({fan:t,speed:n})=>Z.setFanSpeed(e.id,t,n),onMutate:async({fan:t,speed:n})=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let r=M.getQueryData([`printerStatus`,e.id]),i={part:`cooling_fan_speed`,aux:`big_fan1_speed`,chamber:`big_fan2_speed`}[t];return M.setQueryData([`printerStatus`,e.id],e=>e&&{...e,[i]:n}),{previousStatus:r}},onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSendCommand`),`error`)}}),In=q({mutationFn:t=>Z.selectExtruder(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>e&&{...e,active_extruder:t}),{previousStatus:n}},onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSendCommand`),`error`)}}),Ln=q({mutationFn:t=>Z.setChamberLight(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>({...e,chamber_light:t})),{previousStatus:n}},onSuccess:(e,t)=>{P(`Chamber light ${t?`on`:`off`}`)},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToControlChamberLight`),`error`)}}),Rn=q({mutationFn:t=>Z.setPrintSpeed(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>({...e,speed_level:t})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSetSpeed`),`error`)}}),zn=q({mutationFn:t=>Z.setAirductMode(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>({...e,airduct_mode:t===`cooling`?0:1})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSendCommand`),`error`)}}),Bn=q({mutationFn:({distance:t,force:n})=>Z.bedJog(e.id,t,n??!1),onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Vn=q({mutationFn:({x:t,y:n})=>Z.xyJog(e.id,t,n),onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Hn=q({mutationFn:t=>Z.extruderJog(e.id,t),onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Un=q({mutationFn:t=>Z.homeAxes(e.id,t),onSuccess:()=>{try{sessionStorage.setItem(`bambuddy.bedJog.warned.${e.id}`,`1`)}catch{}P(j(`printers.bedJog.homingStarted`))},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Wn=q({mutationFn:t=>Z.updatePrinter(e.id,{plate_detection_enabled:t}),onSuccess:()=>{M.invalidateQueries({queryKey:[`printers`]}),P(Wn.variables?j(`printers.toast.plateCheckEnabled`):j(`printers.toast.plateCheckDisabled`))},onError:e=>P(e.message||j(`printers.toast.failedToUpdateSetting`),`error`)}),Gn=(W?.state===`RUNNING`||W?.state===`PAUSE`)&&(W?.printable_objects_count??0)>=2,{data:Kn}=K({queryKey:[`printableObjects`,e.id],queryFn:()=>Z.getPrintableObjects(e.id),enabled:Ae||Gn,refetchInterval:Ae?5e3:Gn?3e4:!1}),[qn,Jn]=(0,y.useState)(null),Yn=(0,y.useRef)(!1),Zn=(0,y.useRef)(null),Qn=(0,y.useRef)(!1),$n=q({mutationFn:({amsId:t,slotId:n})=>Z.refreshAmsSlot(e.id,t,n),onMutate:({amsId:e,slotId:t})=>{Zn.current&&clearTimeout(Zn.current),Yn.current=!1,Qn.current=!1,Jn({amsId:e,slotId:t}),setTimeout(()=>{Qn.current=!0},2e3),Zn.current=setTimeout(()=>{Jn(null)},3e4)},onSuccess:e=>{P(e.message||j(`printers.toast.rfidRereadInitiated`))},onError:e=>{P(e.message||j(`printers.toast.failedToRereadRfid`),`error`),Zn.current&&clearTimeout(Zn.current),Jn(null)}}),er=q({mutationFn:({trayId:t})=>Z.loadAmsTray(e.id,t),onSuccess:e=>{P(e.message||j(`printers.toast.loadInitiated`))},onError:e=>{P(e.message||j(`printers.toast.failedToLoad`),`error`)}}),tr=q({mutationFn:()=>Z.unloadAms(e.id),onSuccess:e=>{P(e.message||j(`printers.toast.unloadInitiated`))},onError:e=>{P(e.message||j(`printers.toast.failedToUnload`),`error`)}}),[nr,rr]=(0,y.useState)(null),[ir,ar]=(0,y.useState)(null),or=async()=>{try{rr(await Z.getPlateReferences(e.id))}catch{}},sr=()=>{Wn.mutate(!e.plate_detection_enabled)},cr=async()=>{xt(!0),yt(null);let t=W?.chamber_light===!1;kt(t),t&&(await Z.setChamberLight(e.id,!0),await new Promise(e=>setTimeout(e,2500)));try{yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0})),or()}catch(n){P(n instanceof Error?n.message:j(`printers.toast.failedToCheckPlate`),`error`),t&&(await Z.setChamberLight(e.id,!1),kt(!1))}finally{xt(!1)}},lr=(0,y.useCallback)(async()=>{yt(null),Ot&&(await Z.setChamberLight(e.id,!1),kt(!1))},[Ot,e.id]),ur=async t=>{Ct(!0);try{let n=await Z.calibratePlateDetection(e.id,{label:t});n.success?(P(n.message||j(`printers.toast.calibrationSaved`),`success`),or(),yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))):P(n.message||j(`printers.toast.calibrationFailed`),`error`)}catch(e){P(e instanceof Error?e.message:j(`printers.toast.calibrationFailed`),`error`)}finally{Ct(!1)}},dr=async(t,n)=>{try{await Z.updatePlateReferenceLabel(e.id,t,n),ar(null),or()}catch(e){P(e instanceof Error?e.message:j(`printers.toast.failedToUpdateLabel`),`error`)}},fr=async t=>{try{await Z.deletePlateReference(e.id,t),P(j(`printers.toast.referenceDeleted`),`success`),or(),yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){P(e instanceof Error?e.message:j(`printers.toast.failedToDeleteReference`),`error`)}},pr=async()=>{if(wt){Dt(!0);try{await Z.updatePrinter(e.id,{plate_detection_roi:wt}),P(j(`printers.toast.detectionAreaSaved`),`success`),Tt(null),yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){P(e instanceof Error?e.message:j(`printers.toast.failedToSaveDetectionArea`),`error`)}finally{Dt(!1)}}};(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&vt&&lr()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[vt,lr]);let mr=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(!qn)return;let e=W?.ams_status_main??0;return e!==0&&(Yn.current=!0,mr.current&&=(clearTimeout(mr.current),null)),Yn.current&&e===0&&(Qn.current?(Zn.current&&clearTimeout(Zn.current),Jn(null)):mr.current||=setTimeout(()=>{Zn.current&&clearTimeout(Zn.current),Jn(null)},2e3)),()=>{mr.current&&clearTimeout(mr.current)}},[W?.ams_status_main,qn]),(0,y.useEffect)(()=>{if(!I)return;let e=e=>{let t=e.target;ot.current?.contains(t)||L(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[I]),vn)return null;let hr=()=>{switch(i){case 1:return`w-10 h-10`;case 2:return`w-14 h-14`;case 3:return`w-16 h-16`;case 4:return`w-20 h-20`;default:return`w-14 h-14`}},gr=()=>{switch(i){case 1:return`text-base truncate`;case 2:return`text-lg`;case 3:return`text-xl`;case 4:return`text-2xl`;default:return`text-lg`}},_r=()=>{switch(i){case 1:return`mb-2`;case 2:return`mb-4`;case 3:return`mb-5`;case 4:return`mb-6`;default:return`mb-4`}},vr=Gt&&W?.state!==`RUNNING`&&W?.state!==`PAUSE`&&F(`printers:control`),yr=e=>{e.preventDefault(),st.current++,st.current===1&&rt(!0)},br=e=>{e.preventDefault(),e.dataTransfer.dropEffect=vr?`copy`:`none`},xr=e=>{e.preventDefault(),st.current--,st.current===0&&rt(!1)},Sr=async t=>{if(t.preventDefault(),st.current=0,rt(!1),!vr)return;let n=Array.from(t.dataTransfer.files)[0];if(!n)return;let r=n.name.toLowerCase();if(!r.endsWith(`.gcode`)&&!r.includes(`.gcode.`)){P(j(`printers.dropNotPrintable`,`Only .gcode and .gcode.3mf files can be printed`),`error`);return}at(!0);try{let t=await Z.uploadLibraryFile(n,null),r=t.metadata?.sliced_for_model,i=Gq(e.model);if(r&&i&&r.toLowerCase()!==i.toLowerCase()){await Z.deleteLibraryFile(t.id).catch(()=>{}),P(j(`printers.incompatibleFile`,`This file was sliced for {{slicedFor}}, but this printer is a {{printerModel}}`,{slicedFor:r,printerModel:i}),`error`);return}Be({id:t.id,filename:t.filename})}catch{P(j(`common.uploadFailed`,`Upload failed`),`error`)}finally{at(!1)}},Cr=t=>{r!==`compact`||C||t.target.closest(`button, a, input, select, textarea, [role="button"]`)||E?.(e.id)},wr=`!h-8 !min-h-8 !w-8 !px-0 !py-0`,Tr=({amsId:e,slotId:t,loadTrayId:n,isRefreshing:r,includeRfid:i=!0})=>{let a=W?.state===`RUNNING`;return(0,G.jsxs)(G.Fragment,{children:[i&&(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${F(`printers:ams_rfid`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:n=>{n.stopPropagation(),!(a||!F(`printers:ams_rfid`))&&$n.mutate({amsId:e,slotId:t})},disabled:a||r||!F(`printers:ams_rfid`),title:a?j(`printers.bedJog.disabledWhilePrinting`):F(`printers:ams_rfid`)?void 0:j(`printers.permission.noAmsRfid`),children:[(0,G.jsx)(Cl,{className:`w-3 h-3 ${r?`animate-spin`:``}`}),j(`printers.rfid.reread`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${F(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),!(a||!F(`printers:control`))&&er.mutate({trayId:n})},disabled:a||!F(`printers:control`),title:a?j(`printers.bedJog.disabledWhilePrinting`):F(`printers:control`)?void 0:j(`printers.permission.noControl`),children:[(0,G.jsx)(Uc,{className:`w-3 h-3`}),j(`printers.ams.load`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${F(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),!(a||!F(`printers:control`))&&tr.mutate()},disabled:a||!F(`printers:control`),title:a?j(`printers.bedJog.disabledWhilePrinting`):F(`printers:control`)?void 0:j(`printers.permission.noControl`),children:[(0,G.jsx)(Wc,{className:`w-3 h-3`}),j(`printers.ams.unload`)]})]})},Er=(0,G.jsxs)(`div`,{ref:ot,className:`relative flex-shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>L(!I),title:j(`common.more`,`More`),className:wr,children:(0,G.jsx)(zs,{className:`w-4 h-4`})}),I&&(0,G.jsxs)(`div`,{className:`absolute left-0 bottom-full mb-2 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${F(`printers:update`)?`hover:bg-bambu-dark-tertiary`:`opacity-50 cursor-not-allowed`}`,onClick:()=>{F(`printers:update`)&&(V(!0),L(!1))},title:F(`printers:update`)?void 0:j(`printers.permission.noEdit`),children:[(0,G.jsx)(pl,{className:`w-4 h-4`}),j(`common.edit`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{Fe(!0),L(!1)},children:[(0,G.jsx)(kc,{className:`w-4 h-4`}),j(`printers.printerInformation`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{bn.mutate(),L(!1)},children:[(0,G.jsx)(Cl,{className:`w-4 h-4`}),j(`printers.reconnect`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2 disabled:opacity-50`,disabled:xn.isPending,onClick:()=>{xn.mutate(),L(!1)},children:[(0,G.jsx)(Tl,{className:`w-4 h-4 ${xn.isPending?`animate-spin`:``}`}),j(`printers.forceRefresh`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{H(!0),L(!1)},children:[(0,G.jsx)(cu,{className:`w-4 h-4`}),j(`printers.mqttDebug`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{Le(!0),L(!1)},children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),j(`diagnostic.runButton`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${F(`printers:delete`)?`text-red-400 hover:bg-bambu-dark-tertiary`:`text-red-400/50 cursor-not-allowed`}`,onClick:()=>{F(`printers:delete`)&&(z(!0),L(!1))},title:F(`printers:delete`)?void 0:j(`printers.permission.noDelete`),children:[(0,G.jsx)(mu,{className:`w-4 h-4`}),j(`common.delete`)]})]})]});return(0,G.jsxs)(dd,{id:`printer-card-${e.id}`,className:`relative flex h-full flex-col ${w?`ring-2 ring-bambu-green`:``} ${C||r===`compact`?`cursor-pointer`:``}`,onClick:Cr,onDragEnter:yr,onDragOver:br,onDragLeave:xr,onDrop:Sr,children:[C&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-20 flex items-start p-2`,onClick:t=>{t.stopPropagation(),T?.(e.id)},children:w?(0,G.jsx)(Ql,{className:`w-5 h-5 text-bambu-green`}):(0,G.jsx)(eu,{className:`w-5 h-5 text-bambu-gray`})}),(nt||it)&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-10 rounded-xl border-2 border-dashed flex items-center justify-center transition-colors ${it?`bg-bambu-green/10 border-bambu-green/50`:vr?`bg-bambu-green/10 border-bambu-green`:`bg-red-500/10 border-red-500/50`}`,children:(0,G.jsx)(`div`,{className:`text-center`,children:it?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green animate-spin`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:j(`common.uploading`,`Uploading...`)})]}):vr?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(bl,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:j(`printers.dropToPrint`,`Drop to print`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Nu,{className:`w-8 h-8 mx-auto mb-2 text-red-400`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-red-400`,children:j(`printers.cannotPrint`,`Printer busy`)})]})})}),(0,G.jsxs)(pd,{className:`${i>=3?`p-5`:``} flex flex-1 flex-col`,children:[(0,G.jsxs)(`div`,{className:_r(),children:[(0,G.jsx)(`div`,{className:`flex items-start justify-between gap-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,G.jsx)(`img`,{src:OT(e.model),alt:e.model||j(`common.printer`),className:`object-contain rounded-lg flex-shrink-0 ${hr()}`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`font-semibold text-white ${gr()}`,children:e.name}),r===`compact`&&(()=>{let e=W?.connected&&W.hms_errors?ep(W.hms_errors):[],t=e.some(e=>e.severity<=2),n=e.length>0,r=W?.connected?t?`bg-status-error`:n?`bg-status-warning`:`bg-status-ok`:`bg-status-error`,i=W?.connected?n?`${e.length} HMS ${e.length===1?`error`:`errors`}`:j(`printers.connection.connected`):j(`printers.connection.offline`);return(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full flex-shrink-0 ${r}`,title:i})})()]}),r===`compact`&&fn&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>jn.mutate(),disabled:jn.isPending||!F(`printers:clear_plate`),"aria-label":j(`printers.plateStatus.markCleared`),className:`inline-flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-md bg-yellow-500/20 border border-yellow-400/40 text-yellow-400 hover:bg-yellow-500/30 transition-colors disabled:opacity-50`,title:F(`printers:clear_plate`)?j(`printers.plateStatus.markCleared`):j(`printers.permission.noControl`),children:jn.isPending?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):(0,G.jsx)(XK,{className:`w-3 h-3`})})]}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[e.model||`Unknown Model`,r===`expanded`&&W?.nozzles&&W.nozzles[0]?.nozzle_diameter&&(0,G.jsxs)(`span`,{className:`ml-1.5 text-bambu-gray`,title:W.nozzles[0].nozzle_type||`Nozzle`,children:[`• `,W.nozzles[0].nozzle_diameter,`mm`]}),r===`expanded`&&n&&n.total_print_hours>0&&(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray`,children:[(0,G.jsx)(_s,{className:`w-3 h-3 inline-block mr-1`}),Math.round(n.total_print_hours),`h`]})]})]})]})}),r===`expanded`&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-xs ${W?.connected?`bg-status-ok/20 text-status-ok`:`bg-status-error/20 text-status-error`}`,children:[W?.connected?(0,G.jsx)(Lc,{className:`w-3 h-3`}):(0,G.jsx)(bu,{className:`w-3 h-3`}),W?.connected?j(`printers.connection.connected`):j(`printers.connection.offline`)]}),!W?.connected&&(0,G.jsxs)(`button`,{onClick:()=>Le(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,title:j(`diagnostic.runButton`),children:[(0,G.jsx)(nu,{className:`w-3 h-3`}),j(`diagnostic.runButton`)]}),W?.connected&&W?.wired_network&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-status-ok/20 text-status-ok`,title:j(`printers.connection.ethernet`,`Ethernet`),children:[(0,G.jsx)(Wo,{className:`w-3 h-3`}),j(`printers.connection.ethernet`,`Ethernet`)]}),W?.connected&&!W?.wired_network&&Ut!=null&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs ${Ut>=-50||Ut>=-60?`bg-status-ok/20 text-status-ok`:Ut>=-70?`bg-status-warning/20 text-status-warning`:Ut>=-80?`bg-orange-500/20 text-orange-600`:`bg-status-error/20 text-status-error`}`,title:`WiFi: ${Ut} dBm - ${j(kT(Ut).labelKey)}`,children:[(0,G.jsx)(Ul,{className:`w-3 h-3`}),Ut,`dBm`]}),W?.connected&&(()=>{let e=W.hms_errors?ep(W.hms_errors):[];return(0,G.jsxs)(`button`,{onClick:()=>de(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${e.length>0?e.some(e=>e.severity<=2)?`bg-status-error/20 text-status-error`:`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:j(`printers.clickToViewHmsErrors`),children:[(0,G.jsx)(_u,{className:`w-3 h-3`}),e.length>0?e.length:`OK`]})})(),n&&(0,G.jsxs)(`button`,{onClick:()=>N(`/maintenance`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${n.due_count>0?`bg-status-error/20 text-status-error`:n.warning_count>0?`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:n.due_count>0||n.warning_count>0?`${n.due_count>0?`${n.due_count} maintenance due`:``}${n.due_count>0&&n.warning_count>0?`, `:``}${n.warning_count>0?`${n.warning_count} due soon`:``} - Click to view`:j(`printers.maintenanceUpToDate`),children:[(0,G.jsx)(Mu,{className:`w-3 h-3`}),n.due_count>0||n.warning_count>0?n.due_count+n.warning_count:`OK`]}),rn>0&&(0,G.jsxs)(`button`,{onClick:()=>N(`/queue`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-indigo-500/20 text-indigo-400 hover:opacity-80 transition-opacity`,title:j(`printers.queue.inQueue`,{count:rn}),children:[(0,G.jsx)(Nc,{className:`w-3 h-3`}),rn]}),b&&At?.current_version&&At?.latest_version?(0,G.jsxs)(`button`,{onClick:()=>_t(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs hover:opacity-80 transition-opacity ${At.update_available?`bg-orange-500/20 text-orange-400`:`bg-status-ok/20 text-status-ok`}`,title:At.update_available?j(`printers.firmwareUpdateAvailable`,{current:At.current_version,latest:At.latest_version}):j(`printers.firmwareUpToDate`,{version:At.current_version}),children:[At.update_available?(0,G.jsx)(Is,{className:`w-3 h-3`}):(0,G.jsx)(ls,{className:`w-3 h-3`}),At.current_version]}):W?.firmware_version?(0,G.jsx)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-bambu-dark-tertiary/50 text-bambu-gray`,children:W.firmware_version}):null,W?.connected&&[`X1C`,`X1`,`X1E`,`X2D`,`P1S`,`P1P`,`P2S`,`H2D`,`H2D Pro`,`H2C`,`H2S`].includes(e.model??``)&&(0,G.jsx)(`span`,{className:`flex items-center px-2 py-1 rounded-full text-xs ${W.door_open?`bg-yellow-500/20 text-yellow-400`:`bg-status-ok/20 text-status-ok`}`,title:W.door_open?j(`printers.door.open`):j(`printers.door.closed`),children:W.door_open?(0,G.jsx)(Fs,{className:`w-3 h-3`}):(0,G.jsx)(Ps,{className:`w-3 h-3`})})]})})]}),R&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsx)(dd,{className:`w-full max-w-md mx-4`,children:(0,G.jsxs)(pd,{children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-red-500/20`,children:(0,G.jsx)(_u,{className:`w-5 h-5 text-red-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:j(`printers.confirm.deleteTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:j(`printers.confirm.deleteMessage`,{name:e.name})})]})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-3 mb-4`,children:(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:B,onChange:e=>ee(e.target.checked),className:`mt-0.5 w-4 h-4 rounded border-bambu-gray bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:j(`printers.deleteArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:j(B?`printers.confirm.deleteArchivesNote`:`printers.confirm.keepArchivesNote`)})]})]})}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{z(!1),ee(!0)},children:j(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>{yn.mutate({deleteArchives:B}),z(!1),ee(!0)},children:`Delete`})]})]})})}),W?.connected&&(0,G.jsxs)(G.Fragment,{children:[r===`compact`?(()=>{let e=W.hms_errors?ep(W.hms_errors):[],t=W.state===`FAILED`||e.length>0,n=W.state===`RUNNING`||W.state===`PAUSE`?Math.max(0,Math.min(100,W.progress||0)):fn||t?100:0,r=W.state===`RUNNING`||W.state===`PAUSE`;return(0,G.jsxs)(`div`,{className:`relative mt-2 flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${t?`bg-status-error`:W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`} h-1.5 rounded-full transition-all`,style:{width:`${n}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 text-right text-[11px] leading-none ${r?`text-white`:`text-bambu-gray`}`,children:r?`${Math.round(n)}%`:`---%`})]})})():(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-bambu-gray font-medium`,children:j(`printers.status.title`,`Status`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(()=>{let t=!!(W.current_print&&(W.state===`RUNNING`||W.state===`PAUSE`)),n=!t&&dn&&mn,r=t?pn:n?mn.name:null,i=t?W.cover_url:n?mn.coverUrl:null,a=t?W.progress||0:n?100:0;return(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded-[10px] relative overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>je(!0),disabled:!t||(W.printable_objects_count??0)<2||!F(`printers:control`),className:`absolute top-2 right-2 p-1.5 rounded transition-colors z-10 ${t&&(W.printable_objects_count??0)>=2&&F(`printers:control`)?`text-bambu-gray hover:text-white hover:bg-white/10`:`text-bambu-gray/30 cursor-not-allowed`}`,title:F(`printers:control`)?t?(W.printable_objects_count??0)>=2?j(`printers.skipObjects.tooltip`):j(`printers.skipObjects.requiresMultiple`):j(`printers.skipObjects.onlyWhilePrinting`):j(`printers.permission.noControl`),children:[(0,G.jsx)(CT,{className:`w-4 h-4`}),Kn&&Kn.skipped_count>0&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[16px] h-4 px-1 flex items-center justify-center text-[10px] font-bold bg-red-500 text-white rounded-full`,children:Kn.skipped_count})]}),(0,G.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,G.jsx)(OTe,{url:i,printName:r||void 0,className:`w-24 h-24 max-[520px]:w-20 max-[520px]:h-20`}),(0,G.jsxs)(`div`,{className:`flex h-24 max-[520px]:h-20 min-w-0 flex-1 flex-col justify-between pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-h-[18px] items-center gap-2 pr-8`,children:[(0,G.jsx)(`p`,{className:`min-w-0 truncate text-sm text-bambu-gray`,children:MTe(W.state,W.stg_cur_name)}),_n]}),(0,G.jsx)(`p`,{className:`min-h-[18px] truncate pr-8 text-sm ${r?`text-white`:`text-bambu-gray/70`}`,children:r||j(`printers.noActiveJob`,`No active job`)}),(0,G.jsxs)(`div`,{className:`flex h-3 items-center gap-2 text-sm`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${t?W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`:n?`bg-bambu-green`:`bg-bambu-dark-tertiary`} h-1.5 rounded-full transition-all`,style:{width:`${a}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 pr-1 text-right text-[11px] leading-none ${t||n?`text-white`:`text-bambu-gray`}`,children:t||n?`${Math.round(a)}%`:`---%`})]}),(0,G.jsx)(`div`,{className:`flex min-h-[16px] items-center gap-2 text-xs text-bambu-gray`,children:t?(0,G.jsxs)(G.Fragment,{children:[W.remaining_time!=null&&W.remaining_time>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(_s,{className:`w-3 h-3`}),cf(W.remaining_time*60)]}),(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,title:j(`printers.estimatedCompletion`),children:[`ETA `,sf(W.remaining_time,g,j)]})]}),W.layer_num!=null&&W.total_layers!=null&&W.total_layers>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Nc,{className:`w-3 h-3`}),W.layer_num,`/`,W.total_layers]}),sn&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,title:`Started by ${sn}`,children:[(0,G.jsx)(Su,{className:`w-3 h-3`}),sn]})]}):ln?(0,G.jsxs)(`p`,{className:`truncate`,title:ln.print_name||ln.filename,children:[`Last: `,ln.print_name||ln.filename,ln.completed_at&&(0,G.jsxs)(`span`,{className:`ml-1 text-bambu-gray/60`,children:[`• `,rf(ln.completed_at,{month:`short`,day:`numeric`})]})]}):(0,G.jsx)(`span`,{children:j(`printers.readyToPrint`)})})]})]}),(0,G.jsx)(uce,{printerId:e.id,printerModel:e.model,loadedFilamentTypes:Mt,loadedFilaments:Nt,variant:`panelExtension`})]})})()]}),W.temperatures&&r===`expanded`&&(()=>{let t=W.temperatures.nozzle_heating||W.temperatures.nozzle_2_heating||!1,n=W.temperatures.bed_heating||!1,r=W.temperatures.chamber_heating||!1,i=e.nozzle_count===2||W.temperatures.nozzle_2!==void 0,a=W.active_extruder===1?`L`:`R`,o=W.nozzle_rack?.find(e=>e.id===1),s=W.nozzle_rack?.find(e=>e.id===0),c=s||o,l=W.connected&&F(`printers:control`),u=l?void 0:j(`printers.permission.noControl`),d=`relative text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center transition-colors ${l?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,f=[{key:`part`,label:j(`printers.fans.partCooling`),value:W.cooling_fan_speed??0,Icon:Ks,activeClass:`text-cyan-400`},{key:`aux`,label:j(`printers.fans.auxiliary`),value:W.big_fan1_speed??0,Icon:ju,activeClass:`text-blue-400`},{key:`chamber`,label:j(`printers.fans.chamber`),value:W.big_fan2_speed??0,Icon:wo,activeClass:`text-green-400`}];return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`mt-2 flex items-stretch gap-1.5 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:d,title:u,onClick:()=>l&&Ce(Se===`nozzle-temp`?null:`nozzle-temp`),children:[(0,G.jsx)(Pq,{className:`w-3.5 h-3.5 mb-0.5`,color:`text-orange-400`,isHeating:t}),W.temperatures.nozzle_2===void 0?c?(0,G.jsx)(Nq,{slot:c,index:0,activeStatus:!0,filamentName:c.filament_id?Pt?.[c.filament_id]?.name:void 0,children:(0,G.jsxs)(`div`,{className:`cursor-default`,children:[(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:`L / R`}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.nozzle||0),`° / `,Math.round(W.temperatures.nozzle_2||0),`°`]})]}),Se===`nozzle-temp`&&(i?(0,G.jsx)(Vq,{title:`Set Nozzle Temperatures`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:260,isPending:Mn.isPending,onClose:()=>Ce(null),children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 px-3 py-2.5`,children:[(0,G.jsx)(Hq,{label:`Left Temp`,current:W.temperatures.nozzle,target:W.temperatures.nozzle_target,isActive:a===`L`,isPending:Mn.isPending,onSubmit:e=>Mn.mutate({target:e,nozzle:1}),options:Xf(D,`C`)}),(0,G.jsx)(Hq,{label:`Right Temp`,current:W.temperatures.nozzle_2,target:W.temperatures.nozzle_2_target,isActive:a===`R`,isPending:Mn.isPending,onSubmit:e=>Mn.mutate({target:e,nozzle:0}),options:Xf(D,`C`)})]})}):(0,G.jsx)(Vq,{title:`Set Nozzle Temperature`,unit:`°C`,customMin:0,customMax:320,isPending:Mn.isPending,options:Xf(D,`C`),onClose:()=>Ce(null),onSubmit:e=>Mn.mutate({target:e,nozzle:W.active_extruder??0})}))]}),(0,G.jsxs)(`div`,{className:d,title:u,onClick:()=>l&&Ce(Se===`bed-temp`?null:`bed-temp`),children:[(0,G.jsx)(Pq,{className:`w-3.5 h-3.5 mb-0.5`,color:`text-blue-400`,isHeating:n}),(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.bed`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.bed||0),`°C`]}),Se===`bed-temp`&&(0,G.jsx)(Vq,{title:`Set Bed Temperature`,unit:`°C`,customMin:0,customMax:140,isPending:Nn.isPending,options:Xf(O,`C`),onClose:()=>Ce(null),onSubmit:e=>Nn.mutate(e)})]}),W.temperatures.chamber!==void 0&&(()=>{let e=W.supports_chamber_heater===!0;return(0,G.jsxs)(`div`,{className:e?d:`text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center`,title:e?u:void 0,onClick:e?()=>l&&Ce(Se===`chamber-temp`?null:`chamber-temp`):void 0,children:[(0,G.jsx)(Pq,{className:`w-3.5 h-3.5 mb-0.5`,color:`text-green-400`,isHeating:r}),(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.chamber`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.chamber||0),`°C`]}),e&&Se===`chamber-temp`&&(0,G.jsx)(Vq,{title:`Set Chamber Temperature`,unit:`°C`,customMin:0,customMax:60,isPending:Pn.isPending,options:Xf(k,`C`),onClose:()=>Ce(null),onSubmit:e=>Pn.mutate(e)})]})})(),i&&(0,G.jsx)(yTe,{leftSlot:o,rightSlot:s,activeNozzle:a,filamentInfo:Pt,children:(0,G.jsxs)(`div`,{className:`relative text-center px-3 py-1.5 bg-bambu-dark rounded-lg h-full flex flex-col justify-center items-center transition-colors ${l?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:l?j(`printers.activeNozzle`,{nozzle:j(a===`L`?`common.left`:`common.right`)}):u,onClick:()=>l&&Ce(Se===`nozzle-select`?null:`nozzle-select`),children:[(0,G.jsx)(DTe,{className:`w-3.5 h-3.5 mb-0.5 text-amber-400`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-[11px] font-bold ${a===`L`?`text-amber-400`:`text-gray-500`}`,children:[`L`,o?.nozzle_diameter?` ${o.nozzle_diameter}`:``]}),(0,G.jsx)(`span`,{className:`text-[9px] text-bambu-gray/40`,children:`·`}),(0,G.jsxs)(`span`,{className:`text-[11px] font-bold ${a===`R`?`text-amber-400`:`text-gray-500`}`,children:[`R`,s?.nozzle_diameter?` ${s.nozzle_diameter}`:``]})]}),(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.nozzle`)}),Se===`nozzle-select`&&(0,G.jsx)(Vq,{title:`Set Nozzle Selection`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:140,isPending:In.isPending,options:[{label:`Left`,value:1},{label:`Right`,value:0}],onClose:()=>Ce(null),onSubmit:e=>In.mutate(e)})]})}),W.nozzle_rack&&W.nozzle_rack.some(e=>e.id>=2)&&(0,G.jsx)(bTe,{slots:W.nozzle_rack,filamentInfo:Pt})]}),(0,G.jsx)(`div`,{className:`mt-2 flex items-center gap-1.5`,children:f.map(({key:e,label:t,value:n,Icon:r,activeClass:i})=>{let a=n>0;return(0,G.jsxs)(`div`,{className:`relative px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 min-w-0 flex items-center justify-center gap-1 transition-colors ${l?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:l?t:u,onClick:()=>l&&Ce(Se===`fan-${e}`?null:`fan-${e}`),children:[(0,G.jsx)(r,{className:`w-3 h-3 shrink-0 ${a?i:`text-bambu-gray/50`}`}),(0,G.jsxs)(`span`,{className:`text-[10px] leading-none ${a?`text-white`:`text-bambu-gray/50`}`,children:[n,`%`]}),Se===`fan-${e}`&&(0,G.jsx)(Vq,{title:`Set ${t} Speed`,unit:`%`,customMin:0,customMax:100,isPending:Fn.isPending,options:Xf(A,`%`),onClose:()=>Ce(null),onSubmit:t=>Fn.mutate({fan:e,speed:t})})]},e)})})]})})(),r===`expanded`&&fn&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>jn.mutate(),disabled:jn.isPending||!F(`printers:clear_plate`),className:`mt-2 w-full inline-flex items-center justify-center gap-2 px-3 py-1.5 rounded-lg bg-yellow-500/20 border border-yellow-400/40 text-yellow-400 hover:bg-yellow-500/30 transition-colors text-xs font-medium disabled:opacity-50`,title:F(`printers:clear_plate`)?j(`printers.plateStatus.markCleared`):j(`printers.permission.noControl`),children:[jn.isPending?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):(0,G.jsx)(XK,{className:`w-4 h-4`}),j(`printers.plateStatus.markCleared`)]}),r===`expanded`&&(()=>{let t=W.state===`RUNNING`,n=W.state===`PAUSE`,r=t||n,i=On.isPending||kn.isPending||An.isPending,a=`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed opacity-50`,o=`flex h-8 w-8 items-center justify-center rounded-lg text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,s=`flex h-8 w-20 items-center justify-center gap-1 px-2 rounded-lg text-xs font-medium transition-colors`;return(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-bambu-gray font-medium`,children:j(`printers.controls`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-x-2 gap-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 min-w-0`,children:[(0,G.jsx)(`button`,{onClick:()=>Ln.mutate(!W.chamber_light),disabled:!W.connected||Ln.isPending||!F(`printers:control`),className:`${o} ${W.chamber_light?`bg-yellow-500/10 text-yellow-400 hover:bg-yellow-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:F(`printers:control`)?W.chamber_light?j(`printers.chamberLightOff`):j(`printers.chamberLightOn`):j(`printers.permission.noControl`),children:(0,G.jsx)(ST,{on:W.chamber_light??!1,className:`w-4 h-4`})}),[`P2S`,`X2D`,`H2D`,`H2C`,`H2S`].includes(e.model??``)&&(()=>{let t=W.airduct_mode===1,n=t?ec:Xl,r=t?`text-orange-400`:`text-sky-400`,i=t?`bg-orange-500/10 text-orange-400 hover:bg-orange-500/20`:`bg-sky-500/10 text-sky-400 hover:bg-sky-500/20`;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>ye(ve===e.id?null:e.id),disabled:!F(`printers:control`),className:`${o} ${i}`,title:`${j(`printers.airduct.title`)}: ${j(t?`printers.airduct.heating`:`printers.airduct.cooling`)}`,children:(0,G.jsx)(n,{className:`w-4 h-4 ${r}`})}),ve===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>ye(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:`cooling`,label:j(`printers.airduct.cooling`),modeId:0},{mode:`heating`,label:j(`printers.airduct.heating`),modeId:1}].map(({mode:e,label:t,modeId:n})=>(0,G.jsxs)(`button`,{onClick:()=>{zn.mutate(e),ye(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors flex items-center gap-2 ${W.airduct_mode===n?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:[e===`heating`?(0,G.jsx)(ec,{className:`w-3 h-3`}):(0,G.jsx)(Xl,{className:`w-3 h-3`}),t]},e))})]})]})})(),(()=>{let t=F(`printers:control`),n=r||!t,i=`flex h-8 w-8 items-center justify-center rounded bg-indigo-500/15 text-indigo-300 transition-colors hover:bg-indigo-500/30 disabled:cursor-not-allowed disabled:opacity-50`,a=t=>{let n=t*we*1,r=`bambuddy.bedJog.warned.${e.id}`;(()=>{try{return sessionStorage.getItem(r)===`1`}catch{return!1}})()?Bn.mutate({distance:n,force:!0}):De({distance:n})},s=(e,t)=>{Vn.mutate({x:e,y:t})},c=e=>{Hn.mutate(e)};return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>xe(be===e.id?null:e.id),disabled:n,className:`${o} ${n?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-indigo-500/10 text-indigo-400 hover:bg-indigo-500/20`}`,title:j(t?r?`printers.bedJog.disabledWhilePrinting`:`printers.bedJog.title`:`printers.permission.noControl`),children:(0,G.jsx)(il,{className:`w-4 h-4`})}),be===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>xe(null)}),(0,G.jsxs)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 flex w-[216px] flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-2xl`,children:[(0,G.jsx)(`div`,{className:`shrink-0 px-3 py-2.5 text-center text-sm font-medium text-white`,children:j(`printers.bedJog.title`)}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex justify-center px-3 py-2.5`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-1`,children:[(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,we),disabled:Vn.isPending,className:i,"aria-label":`Move Y forward`,children:(0,G.jsx)(No,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(-we,0),disabled:Vn.isPending,className:i,"aria-label":`Move X left`,children:(0,G.jsx)(Oo,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{xe(null),Un.mutate(`all`)},disabled:Un.isPending,className:i,"aria-label":j(`printers.bedJog.homeZ`),children:(0,G.jsx)(Tc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>s(we,0),disabled:Vn.isPending,className:i,"aria-label":`Move X right`,children:(0,G.jsx)(Ao,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,-we),disabled:Vn.isPending,className:i,"aria-label":`Move Y back`,children:(0,G.jsx)(Do,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>a(-1),disabled:Bn.isPending,className:i,"aria-label":j(`printers.bedJog.up`),children:(0,G.jsx)(No,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(Nc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(1),disabled:Bn.isPending,className:i,"aria-label":j(`printers.bedJog.down`),children:(0,G.jsx)(Do,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>c(-we),disabled:Hn.isPending,className:i,"aria-label":`Retract filament`,children:(0,G.jsx)(No,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(`span`,{className:`text-sm font-semibold leading-none`,children:`E`})}),(0,G.jsx)(`button`,{onClick:()=>c(we),disabled:Hn.isPending,className:i,"aria-label":`Extrude filament`,children:(0,G.jsx)(Do,{className:`w-4 h-4`})})]})]})}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`px-3 pt-2.5 pb-3`,children:[(0,G.jsx)(`div`,{className:`mb-1 text-[9px] uppercase tracking-wider text-bambu-gray/70`,children:j(`printers.bedJog.step`)}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:[1,10,50].map(e=>(0,G.jsx)(`button`,{onClick:()=>Te(e),className:`flex-1 px-1 py-1 rounded text-[10px] transition-colors ${we===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:e},e))})]})]})]})]})})(),(0,G.jsxs)(`div`,{className:`inline-flex rounded-lg ${e.plate_detection_enabled?`ring-1 ring-green-500`:``}`,children:[(0,G.jsx)(`button`,{onClick:sr,disabled:!W.connected||Wn.isPending||!F(`printers:update`),className:`${o} rounded-r-none ${e.plate_detection_enabled?`bg-green-500/10 text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:F(`printers:update`)?e.plate_detection_enabled?j(`printers.plateDetection.enabledClick`):j(`printers.plateDetection.disabledClick`):j(`printers.plateDetection.noPermission`),children:Wn.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:cr,disabled:!W.connected||bt||!F(`printers:update`),className:`flex h-8 w-8 items-center justify-center rounded-r-lg border-l border-bambu-dark-tertiary transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${e.plate_detection_enabled?`bg-green-500/10 text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:F(`printers:update`)?j(`printers.plateDetection.manageCalibration`):j(`printers.plateDetection.noPermission`),children:bt?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(es,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>_e(ge===e.id?null:e.id),disabled:!r||!F(`printers:control`),className:`${o} ${r?`bg-amber-500/10 text-amber-400 hover:bg-amber-500/20`:`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`}`,title:r?j(`printers.speed.title`):void 0,children:(0,G.jsx)(uc,{className:`w-4 h-4`})}),ge===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>_e(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:1,label:j(`printers.speed.silent`)},{mode:2,label:j(`printers.speed.standard`)},{mode:3,label:j(`printers.speed.sport`)},{mode:4,label:j(`printers.speed.ludicrous`)}].map(({mode:e,label:t})=>(0,G.jsx)(`button`,{onClick:()=>{Rn.mutate(e),_e(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors ${W.speed_level===e?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:t},e))})]})]})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center justify-end gap-2 flex-shrink-0`,children:[(()=>{let e=!r||i||!F(`printers:control`);return(0,G.jsxs)(`button`,{onClick:()=>n?ke(!0):he(!0),disabled:e,className:`
+ `,style:{maxWidth:`calc(100vw - 24px)`},onMouseEnter:w,onMouseLeave:T,children:(0,G.jsxs)(`div`,{className:`w-52 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl overflow-hidden backdrop-blur-sm p-2.5 space-y-2`,children:[(0,G.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-bambu-gray font-medium`,children:n}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.serialNumber`)}),(0,G.jsx)(`span`,{className:`text-[10px] text-white font-mono truncate`,children:e.serial_number||`—`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.firmwareVersion`)}),(0,G.jsx)(`span`,{className:`text-[10px] text-white font-mono truncate`,children:e.sw_ver||`—`})]}),(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.friendlyName`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary/50`})]}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>i&&p(e.target.value),onKeyDown:e=>e.key===`Enter`&&E(),onFocus:()=>b(!0),onBlur:()=>{b(!1),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>l(!1),200)},placeholder:i?s(`printers.amsPopup.friendlyNamePlaceholder`):r?.[e.id]||`—`,disabled:!i,title:i?void 0:s(`printers.amsPopup.noEditPermission`),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-xs text-white placeholder-bambu-gray/60 focus:outline-none focus:border-bambu-green disabled:opacity-50 disabled:cursor-not-allowed`,maxLength:100}),i&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[g&&(0,G.jsx)(`p`,{className:`text-[10px] text-red-400 break-words`,children:g}),(0,G.jsxs)(`div`,{className:`flex gap-1 justify-end`,children:[(0,G.jsx)(`button`,{onClick:E,disabled:m,className:`px-2 py-0.5 text-[10px] bg-bambu-green text-white rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:s(`printers.amsPopup.save`)}),r?.[e.id]&&(0,G.jsx)(`button`,{onClick:async()=>{if(i){h(!0),_(null);try{await Z.deleteAmsLabel(t,e.id,e.serial_number),a(),l(!1)}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(!1)}}},disabled:m,className:`px-2 py-0.5 text-[10px] bg-bambu-dark-tertiary text-bambu-gray rounded hover:bg-bambu-dark-tertiary/70 disabled:opacity-50`,children:s(`printers.amsPopup.clear`)})]})]})]})]})})]})}var qq={PLA:{n3f:45,n3s:45,n3f_hours:12,n3s_hours:12},PETG:{n3f:65,n3s:65,n3f_hours:12,n3s_hours:12},TPU:{n3f:65,n3s:75,n3f_hours:12,n3s_hours:18},ABS:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},ASA:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:12},PC:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PVA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:18}};function Jq({printer:e,hideIfDisconnected:t,maintenanceInfo:n,viewMode:r=`expanded`,cardSize:i=2,amsThresholds:a,spoolmanEnabled:o=!1,linkedSpools:s,spoolmanUrl:c,spoolmanSyncMode:l,onGetAssignment:u,onUnassignSpool:d,spoolmanSpools:f,spoolmanSlotAssignments:p,spoolmanLoading:m=!1,onUnassignSpoolmanSpool:h,timeFormat:g=`system`,cameraViewMode:_=`window`,onOpenEmbeddedCamera:v,checkPrinterFirmware:b=!0,dryingPresets:x=qq,requirePlateClear:S=!1,selectionMode:C=!1,isSelected:w=!1,onToggleSelect:T,onOpenCompactCard:E,nozzleTempPresets:D=Wf,bedTempPresets:O=Gf,chamberTempPresets:k=Kf,fanSpeedPresets:A=qf}){let{t:j}=et(),M=$a(),N=Xn(),{showToast:P}=yd(),{hasPermission:F}=ad(),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)(!1),[B,ee]=(0,y.useState)(!0),[te,V]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(!1),[ie,H]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(!1),[U,se]=(0,y.useState)(!1),[ce,le]=(0,y.useState)(null),[ue,de]=(0,y.useState)(!1),[fe,pe]=(0,y.useState)(!1),[me,he]=(0,y.useState)(!1),[ge,_e]=(0,y.useState)(null),[ve,ye]=(0,y.useState)(null),[be,xe]=(0,y.useState)(null),[Se,Ce]=(0,y.useState)(null),[we,Te]=(0,y.useState)(10),[Ee,De]=(0,y.useState)(null),[Oe,ke]=(0,y.useState)(!1),[Ae,je]=(0,y.useState)(!1),[Me,Ne]=(0,y.useState)(!1),[Pe,Fe]=(0,y.useState)(!1),[Ie,Le]=(0,y.useState)(!1),Re=(0,y.useCallback)(()=>Fe(!1),[]),[ze,Be]=(0,y.useState)(null),[Ve,He]=(0,y.useState)(null),[Ue,We]=(0,y.useState)(`n3f`),[Ge,Ke]=(0,y.useState)(`PLA`),[qe,Je]=(0,y.useState)(50),[Ye,Xe]=(0,y.useState)(4),[Ze,Qe]=(0,y.useState)(!1),[$e,tt]=(0,y.useState)(null),[nt,rt]=(0,y.useState)(!1),[it,at]=(0,y.useState)(!1),ot=(0,y.useRef)(null),st=(0,y.useRef)(0),[ct,lt]=(0,y.useState)(null),[ut,dt]=(0,y.useState)(null),[ft,pt]=(0,y.useState)(null),[mt,ht]=(0,y.useState)(null),[gt,_t]=(0,y.useState)(!1),[vt,yt]=(0,y.useState)(null),[bt,xt]=(0,y.useState)(!1),[St,Ct]=(0,y.useState)(!1),[wt,Tt]=(0,y.useState)(null),[Et,Dt]=(0,y.useState)(!1),[Ot,kt]=(0,y.useState)(!1),{data:W}=K({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:3e4}),{data:At}=K({queryKey:[`firmwareUpdate`,e.id],queryFn:()=>$u.checkPrinterUpdate(e.id),staleTime:300*1e3,refetchInterval:300*1e3,enabled:b&&F(`firmware:read`)}),jt=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_info_idx&&e.add(n.tray_info_idx);for(let t of W?.vt_tray??[])t.tray_info_idx&&e.add(t.tray_info_idx);if(W?.nozzle_rack)for(let t of W.nozzle_rack)t.filament_id&&e.add(t.filament_id);return Array.from(e)},[W?.ams,W?.vt_tray,W?.nozzle_rack]),Mt=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_type&&e.add(n.tray_type.toUpperCase());for(let t of W?.vt_tray??[])t.tray_type&&e.add(t.tray_type.toUpperCase());return e},[W?.ams,W?.vt_tray]),Nt=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams){for(let t of W.ams)for(let n of t.tray||[])if(n.tray_type&&n.tray_color){let t=n.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${n.tray_type.toUpperCase()}:${t}`)}}for(let t of W?.vt_tray??[])if(t.tray_type&&t.tray_color){let n=t.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${t.tray_type.toUpperCase()}:${n}`)}return e},[W?.ams,W?.vt_tray]),{data:Pt}=K({queryKey:[`filamentInfo`,jt],queryFn:()=>Z.getFilamentInfo(jt),enabled:jt.length>0,staleTime:300*1e3}),{data:Ft}=K({queryKey:[`slotPresets`,e.id],queryFn:()=>Z.getSlotPresets(e.id),staleTime:120*1e3}),It=W?.state===`RUNNING`||W?.state===`PAUSE`?W?.current_archive_id??null:null,{data:Lt}=K({queryKey:[`archive-plates`,It],queryFn:()=>Z.getArchivePlates(It),enabled:It!=null,staleTime:300*1e3}),Rt=!Lt?.is_multi_plate||W?.current_plate_id==null?null:Lt.plates.find(e=>e.index===W.current_plate_id)?.name||j(`printers.plateNumber`,`Plate {{number}}`,{number:W.current_plate_id}),{data:zt,refetch:Bt}=K({queryKey:[`amsLabels`,e.id],queryFn:()=>Z.getAmsLabels(e.id),staleTime:300*1e3}),[Vt,Ht]=(0,y.useState)(null);(0,y.useEffect)(()=>{W?.wifi_signal!=null&&Ht(W.wifi_signal)},[W?.wifi_signal]);let Ut=W?.wifi_signal??Vt,Wt=(0,y.useRef)(void 0);(0,y.useEffect)(()=>{W?.connected!==void 0&&(Wt.current=W.connected)},[W?.connected]);let Gt=W?.connected??Wt.current,Kt=(0,y.useRef)({});(0,y.useEffect)(()=>{W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0&&(Kt.current=W.ams_extruder_map)},[W?.ams_extruder_map]);let qt=W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0?W.ams_extruder_map:Kt.current,Jt=(0,y.useRef)([]);(0,y.useEffect)(()=>{W?.ams&&W.ams.length>0&&(Jt.current=W.ams)},[W?.ams]);let Yt=W?.ams&&W.ams.length>0?W.ams:Jt.current,Xt=(0,y.useRef)(void 0),Zt=W?.tray_now;Zt!==void 0&&Zt!==255?Xt.current=Zt:Zt===255&&(Xt.current=void 0);let Qt=Zt!==void 0&&Zt!==255?Zt:Xt.current,{data:$t}=K({queryKey:[`smartPlugByPrinter`,e.id],queryFn:()=>Z.getSmartPlugByPrinter(e.id)}),{data:en}=K({queryKey:[`scriptPlugsByPrinter`,e.id],queryFn:()=>Z.getScriptPlugsByPrinter(e.id)}),{data:tn}=K({queryKey:[`smartPlugStatus`,$t?.id],queryFn:()=>$t?Z.getSmartPlugStatus($t.id):null,enabled:!!$t,refetchInterval:1e4}),{data:nn}=K({queryKey:[`queue`,e.id,`pending`],queryFn:()=>Z.getQueue(e.id,`pending`)}),rn=(0,y.useMemo)(()=>nn?.length?AT(nn,Mt,Nt).length:0,[nn,Mt,Nt]),{data:an}=K({queryKey:[`queue`,e.id,`printing`],queryFn:()=>Z.getQueue(e.id,`printing`),enabled:W?.state===`RUNNING`}),{data:on}=K({queryKey:[`currentPrintUser`,e.id],queryFn:()=>Z.getCurrentPrintUser(e.id),enabled:W?.state===`RUNNING`}),sn=an?.[0]?.created_by_username||on?.username,{data:cn}=K({queryKey:[`archives`,e.id,`last`],queryFn:()=>Z.getArchives(e.id,1,0),enabled:W?.connected&&W?.state!==`RUNNING`}),ln=cn?.[0],un=W?.state===`RUNNING`||W?.state===`PAUSE`,dn=S&&W?.awaiting_plate_clear===!0,fn=W?.connected&&dn&&!un,pn=W?.current_print&&un?Hf(W.subtask_name||W.current_print||null,W.gcode_file,j,Rt):null,[mn,hn]=(0,y.useState)(null);(0,y.useEffect)(()=>{pn?hn({name:pn,coverUrl:W?.cover_url??null}):dn||hn(null)},[pn,dn,W?.cover_url]);let gn=!S||!W?.connected?null:un?{label:j(`printers.plateStatus.inUse`),className:`bg-blue-500/20 text-blue-400`}:W.awaiting_plate_clear?{label:j(`printers.plateStatus.notCleared`),className:`bg-yellow-500/20 text-yellow-400`}:{label:j(`printers.plateStatus.cleared`),className:`bg-status-ok/20 text-status-ok`},_n=gn?(0,G.jsx)(`span`,{className:`inline-flex flex-shrink-0 items-center rounded-full px-2 py-0.5 text-[10px] font-medium ${gn.className}`,children:gn.label}):null,vn=t&&Gt===!1,yn=q({mutationFn:t=>Z.deletePrinter(e.id,t.deleteArchives),onSuccess:()=>{M.invalidateQueries({queryKey:[`printers`]}),M.invalidateQueries({queryKey:[`archives`]}),M.invalidateQueries({queryKey:[`maintenanceOverview`]})},onError:e=>P(e.message||j(`printers.toast.failedToDelete`),`error`)}),bn=q({mutationFn:()=>Z.connectPrinter(e.id),onSuccess:()=>{M.invalidateQueries({queryKey:[`printerStatus`,e.id]})}}),xn=q({mutationFn:()=>Z.refreshPrinterStatus(e.id),onSuccess:()=>{M.invalidateQueries({queryKey:[`printerStatus`,e.id]}),P(j(`printers.forceRefreshSuccess`),`success`)},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Sn=q({mutationFn:e=>Z.unlinkSpool(e),onSuccess:e=>{P(j(`spoolman.unlinkSuccess`)||e?.message,`success`),M.invalidateQueries({queryKey:[`linked-spools`]}),M.invalidateQueries({queryKey:[`unlinked-spools`]}),M.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})},onError:e=>{P(e.message||j(`spoolman.unlinkFailed`),`error`)}}),Cn=q({mutationFn:({amsId:t,temp:n,duration:r,filament:i,rotateTray:a})=>Z.startDrying(e.id,t,n,r,i,a),onSuccess:()=>{He(null),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),wn=q({mutationFn:t=>Z.stopDrying(e.id,t),onSuccess:()=>{M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Tn=q({mutationFn:e=>$t?Z.controlSmartPlug($t.id,e):Promise.reject(`No plug`),onSuccess:()=>{M.invalidateQueries({queryKey:[`smartPlugStatus`,$t?.id]})}}),En=q({mutationFn:e=>$t?Z.updateSmartPlug($t.id,{auto_off:e}):Promise.reject(`No plug`),onSuccess:()=>{M.invalidateQueries({queryKey:[`smartPlugByPrinter`,e.id]}),M.invalidateQueries({queryKey:[`smart-plugs`]})}}),Dn=q({mutationFn:({id:e,action:t})=>Z.controlSmartPlug(e,t),onSuccess:()=>{P(j(`printers.toast.scriptTriggered`))},onError:e=>P(e.message||j(`printers.toast.failedToRunScript`),`error`)}),On=q({mutationFn:()=>Z.stopPrint(e.id),onSuccess:()=>{P(j(`printers.toast.printStopped`)),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToStopPrint`),`error`)}),kn=q({mutationFn:()=>Z.pausePrint(e.id),onSuccess:()=>{P(j(`printers.toast.printPaused`)),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToPausePrint`),`error`)}),An=q({mutationFn:()=>Z.resumePrint(e.id),onSuccess:()=>{P(j(`printers.toast.printResumed`)),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToResumePrint`),`error`)}),jn=q({mutationFn:()=>Z.clearPlate(e.id),onSuccess:()=>{P(j(`queue.clearPlateSuccess`)),M.setQueryData([`printerStatus`,e.id],e=>e&&{...e,awaiting_plate_clear:!1}),M.invalidateQueries({queryKey:[`printerStatus`,e.id]}),M.invalidateQueries({queryKey:[`queue`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Mn=q({mutationFn:({target:t,nozzle:n})=>Z.setNozzleTemperature(e.id,t,n),onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Nn=q({mutationFn:t=>Z.setBedTemperature(e.id,t),onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Pn=q({mutationFn:t=>Z.setChamberTemperature(e.id,t),onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Fn=q({mutationFn:({fan:t,speed:n})=>Z.setFanSpeed(e.id,t,n),onMutate:async({fan:t,speed:n})=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let r=M.getQueryData([`printerStatus`,e.id]),i={part:`cooling_fan_speed`,aux:`big_fan1_speed`,chamber:`big_fan2_speed`}[t];return M.setQueryData([`printerStatus`,e.id],e=>e&&{...e,[i]:n}),{previousStatus:r}},onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSendCommand`),`error`)}}),In=q({mutationFn:t=>Z.selectExtruder(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>e&&{...e,active_extruder:t}),{previousStatus:n}},onSuccess:t=>{Ce(null),P(t.message),M.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSendCommand`),`error`)}}),Ln=q({mutationFn:t=>Z.setChamberLight(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>({...e,chamber_light:t})),{previousStatus:n}},onSuccess:(e,t)=>{P(`Chamber light ${t?`on`:`off`}`)},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToControlChamberLight`),`error`)}}),Rn=q({mutationFn:t=>Z.setPrintSpeed(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>({...e,speed_level:t})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSetSpeed`),`error`)}}),zn=q({mutationFn:t=>Z.setAirductMode(e.id,t),onMutate:async t=>{await M.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=M.getQueryData([`printerStatus`,e.id]);return M.setQueryData([`printerStatus`,e.id],e=>({...e,airduct_mode:t===`cooling`?0:1})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&M.setQueryData([`printerStatus`,e.id],r.previousStatus),P(t.message||j(`printers.toast.failedToSendCommand`),`error`)}}),Bn=q({mutationFn:({distance:t,force:n})=>Z.bedJog(e.id,t,n??!1),onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Vn=q({mutationFn:({x:t,y:n})=>Z.xyJog(e.id,t,n),onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Hn=q({mutationFn:t=>Z.extruderJog(e.id,t),onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Un=q({mutationFn:t=>Z.homeAxes(e.id,t),onSuccess:()=>{try{sessionStorage.setItem(`bambuddy.bedJog.warned.${e.id}`,`1`)}catch{}P(j(`printers.bedJog.homingStarted`))},onError:e=>P(e.message||j(`printers.toast.failedToSendCommand`),`error`)}),Wn=q({mutationFn:t=>Z.updatePrinter(e.id,{plate_detection_enabled:t}),onSuccess:()=>{M.invalidateQueries({queryKey:[`printers`]}),P(Wn.variables?j(`printers.toast.plateCheckEnabled`):j(`printers.toast.plateCheckDisabled`))},onError:e=>P(e.message||j(`printers.toast.failedToUpdateSetting`),`error`)}),Gn=(W?.state===`RUNNING`||W?.state===`PAUSE`)&&(W?.printable_objects_count??0)>=2,{data:Kn}=K({queryKey:[`printableObjects`,e.id],queryFn:()=>Z.getPrintableObjects(e.id),enabled:Ae||Gn,refetchInterval:Ae?5e3:Gn?3e4:!1}),[qn,Jn]=(0,y.useState)(null),Yn=(0,y.useRef)(!1),Zn=(0,y.useRef)(null),Qn=(0,y.useRef)(!1),$n=q({mutationFn:({amsId:t,slotId:n})=>Z.refreshAmsSlot(e.id,t,n),onMutate:({amsId:e,slotId:t})=>{Zn.current&&clearTimeout(Zn.current),Yn.current=!1,Qn.current=!1,Jn({amsId:e,slotId:t}),setTimeout(()=>{Qn.current=!0},2e3),Zn.current=setTimeout(()=>{Jn(null)},3e4)},onSuccess:e=>{P(e.message||j(`printers.toast.rfidRereadInitiated`))},onError:e=>{P(e.message||j(`printers.toast.failedToRereadRfid`),`error`),Zn.current&&clearTimeout(Zn.current),Jn(null)}}),er=q({mutationFn:({trayId:t})=>Z.loadAmsTray(e.id,t),onSuccess:e=>{P(e.message||j(`printers.toast.loadInitiated`))},onError:e=>{P(e.message||j(`printers.toast.failedToLoad`),`error`)}}),tr=q({mutationFn:()=>Z.unloadAms(e.id),onSuccess:e=>{P(e.message||j(`printers.toast.unloadInitiated`))},onError:e=>{P(e.message||j(`printers.toast.failedToUnload`),`error`)}}),[nr,rr]=(0,y.useState)(null),[ir,ar]=(0,y.useState)(null),or=async()=>{try{rr(await Z.getPlateReferences(e.id))}catch{}},sr=()=>{Wn.mutate(!e.plate_detection_enabled)},cr=async()=>{xt(!0),yt(null);let t=W?.chamber_light===!1;kt(t),t&&(await Z.setChamberLight(e.id,!0),await new Promise(e=>setTimeout(e,2500)));try{yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0})),or()}catch(n){P(n instanceof Error?n.message:j(`printers.toast.failedToCheckPlate`),`error`),t&&(await Z.setChamberLight(e.id,!1),kt(!1))}finally{xt(!1)}},lr=(0,y.useCallback)(async()=>{yt(null),Ot&&(await Z.setChamberLight(e.id,!1),kt(!1))},[Ot,e.id]),ur=async t=>{Ct(!0);try{let n=await Z.calibratePlateDetection(e.id,{label:t});n.success?(P(n.message||j(`printers.toast.calibrationSaved`),`success`),or(),yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))):P(n.message||j(`printers.toast.calibrationFailed`),`error`)}catch(e){P(e instanceof Error?e.message:j(`printers.toast.calibrationFailed`),`error`)}finally{Ct(!1)}},dr=async(t,n)=>{try{await Z.updatePlateReferenceLabel(e.id,t,n),ar(null),or()}catch(e){P(e instanceof Error?e.message:j(`printers.toast.failedToUpdateLabel`),`error`)}},fr=async t=>{try{await Z.deletePlateReference(e.id,t),P(j(`printers.toast.referenceDeleted`),`success`),or(),yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){P(e instanceof Error?e.message:j(`printers.toast.failedToDeleteReference`),`error`)}},pr=async()=>{if(wt){Dt(!0);try{await Z.updatePrinter(e.id,{plate_detection_roi:wt}),P(j(`printers.toast.detectionAreaSaved`),`success`),Tt(null),yt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){P(e instanceof Error?e.message:j(`printers.toast.failedToSaveDetectionArea`),`error`)}finally{Dt(!1)}}};(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&vt&&lr()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[vt,lr]);let mr=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(!qn)return;let e=W?.ams_status_main??0;return e!==0&&(Yn.current=!0,mr.current&&=(clearTimeout(mr.current),null)),Yn.current&&e===0&&(Qn.current?(Zn.current&&clearTimeout(Zn.current),Jn(null)):mr.current||=setTimeout(()=>{Zn.current&&clearTimeout(Zn.current),Jn(null)},2e3)),()=>{mr.current&&clearTimeout(mr.current)}},[W?.ams_status_main,qn]),(0,y.useEffect)(()=>{if(!I)return;let e=e=>{let t=e.target;ot.current?.contains(t)||L(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[I]),vn)return null;let hr=()=>{switch(i){case 1:return`w-10 h-10`;case 2:return`w-14 h-14`;case 3:return`w-16 h-16`;case 4:return`w-20 h-20`;default:return`w-14 h-14`}},gr=()=>{switch(i){case 1:return`text-base truncate`;case 2:return`text-lg`;case 3:return`text-xl`;case 4:return`text-2xl`;default:return`text-lg`}},_r=()=>{switch(i){case 1:return`mb-2`;case 2:return`mb-4`;case 3:return`mb-5`;case 4:return`mb-6`;default:return`mb-4`}},vr=Gt&&W?.state!==`RUNNING`&&W?.state!==`PAUSE`&&F(`printers:control`),yr=e=>{e.preventDefault(),st.current++,st.current===1&&rt(!0)},br=e=>{e.preventDefault(),e.dataTransfer.dropEffect=vr?`copy`:`none`},xr=e=>{e.preventDefault(),st.current--,st.current===0&&rt(!1)},Sr=async t=>{if(t.preventDefault(),st.current=0,rt(!1),!vr)return;let n=Array.from(t.dataTransfer.files)[0];if(!n)return;let r=n.name.toLowerCase();if(!r.endsWith(`.gcode`)&&!r.includes(`.gcode.`)){P(j(`printers.dropNotPrintable`,`Only .gcode and .gcode.3mf files can be printed`),`error`);return}at(!0);try{let t=await Z.uploadLibraryFile(n,null),r=t.metadata?.sliced_for_model,i=Gq(e.model);if(r&&i&&r.toLowerCase()!==i.toLowerCase()){await Z.deleteLibraryFile(t.id).catch(()=>{}),P(j(`printers.incompatibleFile`,`This file was sliced for {{slicedFor}}, but this printer is a {{printerModel}}`,{slicedFor:r,printerModel:i}),`error`);return}Be({id:t.id,filename:t.filename})}catch{P(j(`common.uploadFailed`,`Upload failed`),`error`)}finally{at(!1)}},Cr=t=>{r!==`compact`||C||t.target.closest(`button, a, input, select, textarea, [role="button"]`)||E?.(e.id)},wr=`!h-8 !min-h-8 !w-8 !px-0 !py-0`,Tr=({amsId:e,slotId:t,loadTrayId:n,isRefreshing:r,includeRfid:i=!0})=>{let a=W?.state===`RUNNING`;return(0,G.jsxs)(G.Fragment,{children:[i&&(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${F(`printers:ams_rfid`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:n=>{n.stopPropagation(),!(a||!F(`printers:ams_rfid`))&&$n.mutate({amsId:e,slotId:t})},disabled:a||r||!F(`printers:ams_rfid`),title:a?j(`printers.bedJog.disabledWhilePrinting`):F(`printers:ams_rfid`)?void 0:j(`printers.permission.noAmsRfid`),children:[(0,G.jsx)(Cl,{className:`w-3 h-3 ${r?`animate-spin`:``}`}),j(`printers.rfid.reread`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${F(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),!(a||!F(`printers:control`))&&er.mutate({trayId:n})},disabled:a||!F(`printers:control`),title:a?j(`printers.bedJog.disabledWhilePrinting`):F(`printers:control`)?void 0:j(`printers.permission.noControl`),children:[(0,G.jsx)(Uc,{className:`w-3 h-3`}),j(`printers.ams.load`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${F(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),!(a||!F(`printers:control`))&&tr.mutate()},disabled:a||!F(`printers:control`),title:a?j(`printers.bedJog.disabledWhilePrinting`):F(`printers:control`)?void 0:j(`printers.permission.noControl`),children:[(0,G.jsx)(Wc,{className:`w-3 h-3`}),j(`printers.ams.unload`)]})]})},Er=(0,G.jsxs)(`div`,{ref:ot,className:`relative flex-shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>L(!I),title:j(`common.more`,`More`),className:wr,children:(0,G.jsx)(zs,{className:`w-4 h-4`})}),I&&(0,G.jsxs)(`div`,{className:`absolute left-0 bottom-full mb-2 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${F(`printers:update`)?`hover:bg-bambu-dark-tertiary`:`opacity-50 cursor-not-allowed`}`,onClick:()=>{F(`printers:update`)&&(V(!0),L(!1))},title:F(`printers:update`)?void 0:j(`printers.permission.noEdit`),children:[(0,G.jsx)(pl,{className:`w-4 h-4`}),j(`common.edit`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{Fe(!0),L(!1)},children:[(0,G.jsx)(kc,{className:`w-4 h-4`}),j(`printers.printerInformation`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{bn.mutate(),L(!1)},children:[(0,G.jsx)(Cl,{className:`w-4 h-4`}),j(`printers.reconnect`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2 disabled:opacity-50`,disabled:xn.isPending,onClick:()=>{xn.mutate(),L(!1)},children:[(0,G.jsx)(Tl,{className:`w-4 h-4 ${xn.isPending?`animate-spin`:``}`}),j(`printers.forceRefresh`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{H(!0),L(!1)},children:[(0,G.jsx)(cu,{className:`w-4 h-4`}),j(`printers.mqttDebug`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{Le(!0),L(!1)},children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),j(`diagnostic.runButton`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${F(`printers:delete`)?`text-red-400 hover:bg-bambu-dark-tertiary`:`text-red-400/50 cursor-not-allowed`}`,onClick:()=>{F(`printers:delete`)&&(z(!0),L(!1))},title:F(`printers:delete`)?void 0:j(`printers.permission.noDelete`),children:[(0,G.jsx)(mu,{className:`w-4 h-4`}),j(`common.delete`)]})]})]});return(0,G.jsxs)(dd,{id:`printer-card-${e.id}`,className:`relative flex h-full flex-col ${w?`ring-2 ring-bambu-green`:``} ${C||r===`compact`?`cursor-pointer`:``}`,onClick:Cr,onDragEnter:yr,onDragOver:br,onDragLeave:xr,onDrop:Sr,children:[C&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-20 flex items-start p-2`,onClick:t=>{t.stopPropagation(),T?.(e.id)},children:w?(0,G.jsx)(Ql,{className:`w-5 h-5 text-bambu-green`}):(0,G.jsx)(eu,{className:`w-5 h-5 text-bambu-gray`})}),(nt||it)&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-10 rounded-xl border-2 border-dashed flex items-center justify-center transition-colors ${it?`bg-bambu-green/10 border-bambu-green/50`:vr?`bg-bambu-green/10 border-bambu-green`:`bg-red-500/10 border-red-500/50`}`,children:(0,G.jsx)(`div`,{className:`text-center`,children:it?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green animate-spin`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:j(`common.uploading`,`Uploading...`)})]}):vr?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(bl,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:j(`printers.dropToPrint`,`Drop to print`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Nu,{className:`w-8 h-8 mx-auto mb-2 text-red-400`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-red-400`,children:j(`printers.cannotPrint`,`Printer busy`)})]})})}),(0,G.jsxs)(pd,{className:`${i>=3?`p-5`:``} flex flex-1 flex-col`,children:[(0,G.jsxs)(`div`,{className:_r(),children:[(0,G.jsx)(`div`,{className:`flex items-start justify-between gap-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,G.jsx)(`img`,{src:OT(e.model),alt:e.model||j(`common.printer`),className:`object-contain rounded-lg flex-shrink-0 ${hr()}`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`font-semibold text-white ${gr()}`,children:e.name}),r===`compact`&&(()=>{let e=W?.connected&&W.hms_errors?ep(W.hms_errors):[],t=e.some(e=>e.severity<=2),n=e.length>0,r=W?.connected?t?`bg-status-error`:n?`bg-status-warning`:`bg-status-ok`:`bg-status-error`,i=W?.connected?n?`${e.length} HMS ${e.length===1?`error`:`errors`}`:j(`printers.connection.connected`):j(`printers.connection.offline`);return(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full flex-shrink-0 ${r}`,title:i})})()]}),r===`compact`&&fn&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>jn.mutate(),disabled:jn.isPending||!F(`printers:clear_plate`),"aria-label":j(`printers.plateStatus.markCleared`),className:`inline-flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-md bg-yellow-500/20 border border-yellow-400/40 text-yellow-400 hover:bg-yellow-500/30 transition-colors disabled:opacity-50`,title:F(`printers:clear_plate`)?j(`printers.plateStatus.markCleared`):j(`printers.permission.noControl`),children:jn.isPending?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):(0,G.jsx)(XK,{className:`w-3 h-3`})})]}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[e.model||`Unknown Model`,r===`expanded`&&W?.nozzles&&W.nozzles[0]?.nozzle_diameter&&(0,G.jsxs)(`span`,{className:`ml-1.5 text-bambu-gray`,title:W.nozzles[0].nozzle_type||`Nozzle`,children:[`• `,W.nozzles[0].nozzle_diameter,`mm`]}),r===`expanded`&&n&&n.total_print_hours>0&&(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray`,children:[(0,G.jsx)(_s,{className:`w-3 h-3 inline-block mr-1`}),Math.round(n.total_print_hours),`h`]})]})]})]})}),r===`expanded`&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-xs ${W?.connected?`bg-status-ok/20 text-status-ok`:`bg-status-error/20 text-status-error`}`,children:[W?.connected?(0,G.jsx)(Lc,{className:`w-3 h-3`}):(0,G.jsx)(bu,{className:`w-3 h-3`}),W?.connected?j(`printers.connection.connected`):j(`printers.connection.offline`)]}),!W?.connected&&(0,G.jsxs)(`button`,{onClick:()=>Le(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,title:j(`diagnostic.runButton`),children:[(0,G.jsx)(nu,{className:`w-3 h-3`}),j(`diagnostic.runButton`)]}),W?.connected&&W?.wired_network&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-status-ok/20 text-status-ok`,title:j(`printers.connection.ethernet`,`Ethernet`),children:[(0,G.jsx)(Wo,{className:`w-3 h-3`}),j(`printers.connection.ethernet`,`Ethernet`)]}),W?.connected&&!W?.wired_network&&Ut!=null&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs ${Ut>=-50||Ut>=-60?`bg-status-ok/20 text-status-ok`:Ut>=-70?`bg-status-warning/20 text-status-warning`:Ut>=-80?`bg-orange-500/20 text-orange-600`:`bg-status-error/20 text-status-error`}`,title:`WiFi: ${Ut} dBm - ${j(kT(Ut).labelKey)}`,children:[(0,G.jsx)(Ul,{className:`w-3 h-3`}),Ut,`dBm`]}),W?.connected&&(()=>{let e=W.hms_errors?ep(W.hms_errors):[];return(0,G.jsxs)(`button`,{onClick:()=>de(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${e.length>0?e.some(e=>e.severity<=2)?`bg-status-error/20 text-status-error`:`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:j(`printers.clickToViewHmsErrors`),children:[(0,G.jsx)(_u,{className:`w-3 h-3`}),e.length>0?e.length:`OK`]})})(),n&&(0,G.jsxs)(`button`,{onClick:()=>N(`/maintenance`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${n.due_count>0?`bg-status-error/20 text-status-error`:n.warning_count>0?`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:n.due_count>0||n.warning_count>0?`${n.due_count>0?`${n.due_count} maintenance due`:``}${n.due_count>0&&n.warning_count>0?`, `:``}${n.warning_count>0?`${n.warning_count} due soon`:``} - Click to view`:j(`printers.maintenanceUpToDate`),children:[(0,G.jsx)(Mu,{className:`w-3 h-3`}),n.due_count>0||n.warning_count>0?n.due_count+n.warning_count:`OK`]}),rn>0&&(0,G.jsxs)(`button`,{onClick:()=>N(`/queue`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-indigo-500/20 text-indigo-400 hover:opacity-80 transition-opacity`,title:j(`printers.queue.inQueue`,{count:rn}),children:[(0,G.jsx)(Nc,{className:`w-3 h-3`}),rn]}),b&&At?.current_version&&At?.latest_version?(0,G.jsxs)(`button`,{onClick:()=>_t(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs hover:opacity-80 transition-opacity ${At.update_available?`bg-orange-500/20 text-orange-400`:`bg-status-ok/20 text-status-ok`}`,title:At.update_available?j(`printers.firmwareUpdateAvailable`,{current:At.current_version,latest:At.latest_version}):j(`printers.firmwareUpToDate`,{version:At.current_version}),children:[At.update_available?(0,G.jsx)(Is,{className:`w-3 h-3`}):(0,G.jsx)(ls,{className:`w-3 h-3`}),At.current_version]}):W?.firmware_version?(0,G.jsx)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-bambu-dark-tertiary/50 text-bambu-gray`,children:W.firmware_version}):null,W?.connected&&[`X1C`,`X1`,`X1E`,`X2D`,`P1S`,`P1P`,`P2S`,`H2D`,`H2D Pro`,`H2C`,`H2S`].includes(e.model??``)&&(0,G.jsx)(`span`,{className:`flex items-center px-2 py-1 rounded-full text-xs ${W.door_open?`bg-yellow-500/20 text-yellow-400`:`bg-status-ok/20 text-status-ok`}`,title:W.door_open?j(`printers.door.open`):j(`printers.door.closed`),children:W.door_open?(0,G.jsx)(Fs,{className:`w-3 h-3`}):(0,G.jsx)(Ps,{className:`w-3 h-3`})})]})})]}),R&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsx)(dd,{className:`w-full max-w-md mx-4`,children:(0,G.jsxs)(pd,{children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-red-500/20`,children:(0,G.jsx)(_u,{className:`w-5 h-5 text-red-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:j(`printers.confirm.deleteTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:j(`printers.confirm.deleteMessage`,{name:e.name})})]})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-3 mb-4`,children:(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:B,onChange:e=>ee(e.target.checked),className:`mt-0.5 w-4 h-4 rounded border-bambu-gray bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:j(`printers.deleteArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:j(B?`printers.confirm.deleteArchivesNote`:`printers.confirm.keepArchivesNote`)})]})]})}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{z(!1),ee(!0)},children:j(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>{yn.mutate({deleteArchives:B}),z(!1),ee(!0)},children:`Delete`})]})]})})}),W?.connected&&(0,G.jsxs)(G.Fragment,{children:[r===`compact`?(()=>{let e=W.hms_errors?ep(W.hms_errors):[],t=W.state===`FAILED`||e.length>0,n=W.state===`RUNNING`||W.state===`PAUSE`?Math.max(0,Math.min(100,W.progress||0)):fn||t?100:0,r=W.state===`RUNNING`||W.state===`PAUSE`;return(0,G.jsxs)(`div`,{className:`relative mt-2 flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${t?`bg-status-error`:W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`} h-1.5 rounded-full transition-all`,style:{width:`${n}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 text-right text-[11px] leading-none ${r?`text-white`:`text-bambu-gray`}`,children:r?`${Math.round(n)}%`:`---%`})]})})():(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-bambu-gray font-medium`,children:j(`printers.status.title`,`Status`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(()=>{let t=!!(W.current_print&&(W.state===`RUNNING`||W.state===`PAUSE`)),n=!t&&dn&&mn,r=t?pn:n?mn.name:null,i=t?W.cover_url:n?mn.coverUrl:null,a=t?W.progress||0:n?100:0;return(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded-[10px] relative overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>je(!0),disabled:!t||(W.printable_objects_count??0)<2||!F(`printers:control`),className:`absolute top-2 right-2 p-1.5 rounded transition-colors z-10 ${t&&(W.printable_objects_count??0)>=2&&F(`printers:control`)?`text-bambu-gray hover:text-white hover:bg-white/10`:`text-bambu-gray/30 cursor-not-allowed`}`,title:F(`printers:control`)?t?(W.printable_objects_count??0)>=2?j(`printers.skipObjects.tooltip`):j(`printers.skipObjects.requiresMultiple`):j(`printers.skipObjects.onlyWhilePrinting`):j(`printers.permission.noControl`),children:[(0,G.jsx)(CT,{className:`w-4 h-4`}),Kn&&Kn.skipped_count>0&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[16px] h-4 px-1 flex items-center justify-center text-[10px] font-bold bg-red-500 text-white rounded-full`,children:Kn.skipped_count})]}),(0,G.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,G.jsx)(OTe,{url:i,printName:r||void 0,className:`w-24 h-24 max-[520px]:w-20 max-[520px]:h-20`}),(0,G.jsxs)(`div`,{className:`flex h-24 max-[520px]:h-20 min-w-0 flex-1 flex-col justify-between pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-h-[18px] items-center gap-2 pr-8`,children:[(0,G.jsx)(`p`,{className:`min-w-0 truncate text-sm text-bambu-gray`,children:MTe(W.state,W.stg_cur_name)}),_n]}),(0,G.jsx)(`p`,{className:`min-h-[18px] truncate pr-8 text-sm ${r?`text-white`:`text-bambu-gray/70`}`,children:r||j(`printers.noActiveJob`,`No active job`)}),(0,G.jsxs)(`div`,{className:`flex h-3 items-center gap-2 text-sm`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${t?W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`:n?`bg-bambu-green`:`bg-bambu-dark-tertiary`} h-1.5 rounded-full transition-all`,style:{width:`${a}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 pr-1 text-right text-[11px] leading-none ${t||n?`text-white`:`text-bambu-gray`}`,children:t||n?`${Math.round(a)}%`:`---%`})]}),(0,G.jsx)(`div`,{className:`flex min-h-[16px] items-center gap-2 text-xs text-bambu-gray`,children:t?(0,G.jsxs)(G.Fragment,{children:[W.remaining_time!=null&&W.remaining_time>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(_s,{className:`w-3 h-3`}),cf(W.remaining_time*60)]}),(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,title:j(`printers.estimatedCompletion`),children:[`ETA `,sf(W.remaining_time,g,j)]})]}),W.layer_num!=null&&W.total_layers!=null&&W.total_layers>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Nc,{className:`w-3 h-3`}),W.layer_num,`/`,W.total_layers]}),sn&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,title:`Started by ${sn}`,children:[(0,G.jsx)(Su,{className:`w-3 h-3`}),sn]})]}):ln?(0,G.jsxs)(`p`,{className:`truncate`,title:ln.print_name||ln.filename,children:[`Last: `,ln.print_name||ln.filename,ln.completed_at&&(0,G.jsxs)(`span`,{className:`ml-1 text-bambu-gray/60`,children:[`• `,rf(ln.completed_at,{month:`short`,day:`numeric`})]})]}):(0,G.jsx)(`span`,{children:j(`printers.readyToPrint`)})})]})]}),(0,G.jsx)(uce,{printerId:e.id,printerModel:e.model,loadedFilamentTypes:Mt,loadedFilaments:Nt,variant:`panelExtension`})]})})()]}),W.temperatures&&r===`expanded`&&(()=>{let t=W.temperatures.nozzle_heating||W.temperatures.nozzle_2_heating||!1,n=W.temperatures.bed_heating||!1,r=W.temperatures.chamber_heating||!1,i=e.nozzle_count===2||W.temperatures.nozzle_2!==void 0,a=W.active_extruder===1?`L`:`R`,o=W.nozzle_rack?.find(e=>e.id===1),s=W.nozzle_rack?.find(e=>e.id===0),c=s||o,l=W.connected&&F(`printers:control`),u=l?void 0:j(`printers.permission.noControl`),d=`relative text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center transition-colors ${l?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,f=[{key:`part`,label:j(`printers.fans.partCooling`),value:W.cooling_fan_speed??0,Icon:Ks,activeClass:`text-cyan-400`},{key:`aux`,label:j(`printers.fans.auxiliary`),value:W.big_fan1_speed??0,Icon:ju,activeClass:`text-blue-400`},{key:`chamber`,label:j(`printers.fans.chamber`),value:W.big_fan2_speed??0,Icon:wo,activeClass:`text-green-400`}];return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`mt-2 flex items-stretch gap-1.5 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:d,title:u,onClick:()=>l&&Ce(Se===`nozzle-temp`?null:`nozzle-temp`),children:[(0,G.jsx)(Pq,{className:`w-3.5 h-3.5 mb-0.5`,color:`text-orange-400`,isHeating:t}),W.temperatures.nozzle_2===void 0?c?(0,G.jsx)(Nq,{slot:c,index:0,activeStatus:!0,filamentName:c.filament_id?Pt?.[c.filament_id]?.name:void 0,children:(0,G.jsxs)(`div`,{className:`cursor-default`,children:[(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:`L / R`}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.nozzle||0),`° / `,Math.round(W.temperatures.nozzle_2||0),`°`]})]}),Se===`nozzle-temp`&&(i?(0,G.jsx)(Vq,{title:`Set Nozzle Temperatures`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:260,isPending:Mn.isPending,onClose:()=>Ce(null),children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 px-3 py-2.5`,children:[(0,G.jsx)(Hq,{label:`Left Temp`,current:W.temperatures.nozzle,target:W.temperatures.nozzle_target,isActive:a===`L`,isPending:Mn.isPending,onSubmit:e=>Mn.mutate({target:e,nozzle:1}),options:Xf(D,`C`)}),(0,G.jsx)(Hq,{label:`Right Temp`,current:W.temperatures.nozzle_2,target:W.temperatures.nozzle_2_target,isActive:a===`R`,isPending:Mn.isPending,onSubmit:e=>Mn.mutate({target:e,nozzle:0}),options:Xf(D,`C`)})]})}):(0,G.jsx)(Vq,{title:`Set Nozzle Temperature`,unit:`°C`,customMin:0,customMax:320,isPending:Mn.isPending,options:Xf(D,`C`),onClose:()=>Ce(null),onSubmit:e=>Mn.mutate({target:e,nozzle:W.active_extruder??0})}))]}),(0,G.jsxs)(`div`,{className:d,title:u,onClick:()=>l&&Ce(Se===`bed-temp`?null:`bed-temp`),children:[(0,G.jsx)(Pq,{className:`w-3.5 h-3.5 mb-0.5`,color:`text-blue-400`,isHeating:n}),(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.bed`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.bed||0),`°C`]}),Se===`bed-temp`&&(0,G.jsx)(Vq,{title:`Set Bed Temperature`,unit:`°C`,customMin:0,customMax:140,isPending:Nn.isPending,options:Xf(O,`C`),onClose:()=>Ce(null),onSubmit:e=>Nn.mutate(e)})]}),W.temperatures.chamber!==void 0&&(()=>{let e=W.supports_chamber_heater===!0;return(0,G.jsxs)(`div`,{className:e?d:`text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center`,title:e?u:void 0,onClick:e?()=>l&&Ce(Se===`chamber-temp`?null:`chamber-temp`):void 0,children:[(0,G.jsx)(Pq,{className:`w-3.5 h-3.5 mb-0.5`,color:`text-green-400`,isHeating:r}),(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.chamber`)}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white`,children:[Math.round(W.temperatures.chamber||0),`°C`]}),e&&Se===`chamber-temp`&&(0,G.jsx)(Vq,{title:`Set Chamber Temperature`,unit:`°C`,customMin:0,customMax:60,isPending:Pn.isPending,options:Xf(k,`C`),onClose:()=>Ce(null),onSubmit:e=>Pn.mutate(e)})]})})(),i&&(0,G.jsx)(yTe,{leftSlot:o,rightSlot:s,activeNozzle:a,filamentInfo:Pt,children:(0,G.jsxs)(`div`,{className:`relative text-center px-3 py-1.5 bg-bambu-dark rounded-lg h-full flex flex-col justify-center items-center transition-colors ${l?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:l?j(`printers.activeNozzle`,{nozzle:j(a===`L`?`common.left`:`common.right`)}):u,onClick:()=>l&&Ce(Se===`nozzle-select`?null:`nozzle-select`),children:[(0,G.jsx)(DTe,{className:`w-3.5 h-3.5 mb-0.5 text-amber-400`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-[11px] font-bold ${a===`L`?`text-amber-400`:`text-gray-500`}`,children:[`L`,o?.nozzle_diameter?` ${o.nozzle_diameter}`:``]}),(0,G.jsx)(`span`,{className:`text-[9px] text-bambu-gray/40`,children:`·`}),(0,G.jsxs)(`span`,{className:`text-[11px] font-bold ${a===`R`?`text-amber-400`:`text-gray-500`}`,children:[`R`,s?.nozzle_diameter?` ${s.nozzle_diameter}`:``]})]}),(0,G.jsx)(`p`,{className:`text-[9px] text-bambu-gray`,children:j(`printers.temperatures.nozzle`)}),Se===`nozzle-select`&&(0,G.jsx)(Vq,{title:`Set Nozzle Selection`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:140,isPending:In.isPending,options:[{label:`Left`,value:1},{label:`Right`,value:0}],onClose:()=>Ce(null),onSubmit:e=>In.mutate(e)})]})}),W.nozzle_rack&&W.nozzle_rack.some(e=>e.id>=2)&&(0,G.jsx)(bTe,{slots:W.nozzle_rack,filamentInfo:Pt})]}),(0,G.jsx)(`div`,{className:`mt-2 flex items-center gap-1.5`,children:f.map(({key:e,label:t,value:n,Icon:r,activeClass:i})=>{let a=n>0;return(0,G.jsxs)(`div`,{className:`relative px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 min-w-0 flex items-center justify-center gap-1 transition-colors ${l?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:l?t:u,onClick:()=>l&&Ce(Se===`fan-${e}`?null:`fan-${e}`),children:[(0,G.jsx)(r,{className:`w-3 h-3 shrink-0 ${a?i:`text-bambu-gray/50`}`}),(0,G.jsxs)(`span`,{className:`text-[10px] leading-none ${a?`text-white`:`text-bambu-gray/50`}`,children:[n,`%`]}),Se===`fan-${e}`&&(0,G.jsx)(Vq,{title:`Set ${t} Speed`,unit:`%`,customMin:0,customMax:100,isPending:Fn.isPending,options:Xf(A,`%`),onClose:()=>Ce(null),onSubmit:t=>Fn.mutate({fan:e,speed:t})})]},e)})})]})})(),r===`expanded`&&fn&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>jn.mutate(),disabled:jn.isPending||!F(`printers:clear_plate`),className:`mt-2 w-full inline-flex items-center justify-center gap-2 px-3 py-1.5 rounded-lg bg-yellow-500/20 border border-yellow-400/40 text-yellow-400 hover:bg-yellow-500/30 transition-colors text-xs font-medium disabled:opacity-50`,title:F(`printers:clear_plate`)?j(`printers.plateStatus.markCleared`):j(`printers.permission.noControl`),children:[jn.isPending?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):(0,G.jsx)(XK,{className:`w-4 h-4`}),j(`printers.plateStatus.markCleared`)]}),r===`expanded`&&(()=>{let t=W.state===`RUNNING`,n=W.state===`PAUSE`,r=t||n,i=On.isPending||kn.isPending||An.isPending,a=`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed opacity-50`,o=`flex h-8 w-8 items-center justify-center rounded-lg text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,s=`flex h-8 w-20 items-center justify-center gap-1 px-2 rounded-lg text-xs font-medium transition-colors`;return(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-bambu-gray font-medium`,children:j(`printers.controls`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-x-2 gap-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 min-w-0`,children:[(0,G.jsx)(`button`,{onClick:()=>Ln.mutate(!W.chamber_light),disabled:!W.connected||Ln.isPending||!F(`printers:control`),className:`${o} ${W.chamber_light?`bg-yellow-500/10 text-yellow-400 hover:bg-yellow-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:F(`printers:control`)?W.chamber_light?j(`printers.chamberLightOff`):j(`printers.chamberLightOn`):j(`printers.permission.noControl`),children:(0,G.jsx)(ST,{on:W.chamber_light??!1,className:`w-4 h-4`})}),[`P2S`,`X2D`,`H2D`,`H2C`,`H2S`].includes(e.model??``)&&(()=>{let t=W.airduct_mode===1,n=t?ec:Xl,r=t?`text-orange-400`:`text-sky-400`,i=t?`bg-orange-500/10 text-orange-400 hover:bg-orange-500/20`:`bg-sky-500/10 text-sky-400 hover:bg-sky-500/20`;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>ye(ve===e.id?null:e.id),disabled:!F(`printers:control`),className:`${o} ${i}`,title:`${j(`printers.airduct.title`)}: ${j(t?`printers.airduct.heating`:`printers.airduct.cooling`)}`,children:(0,G.jsx)(n,{className:`w-4 h-4 ${r}`})}),ve===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>ye(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:`cooling`,label:j(`printers.airduct.cooling`),modeId:0},{mode:`heating`,label:j(`printers.airduct.heating`),modeId:1}].map(({mode:e,label:t,modeId:n})=>(0,G.jsxs)(`button`,{onClick:()=>{zn.mutate(e),ye(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors flex items-center gap-2 ${W.airduct_mode===n?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:[e===`heating`?(0,G.jsx)(ec,{className:`w-3 h-3`}):(0,G.jsx)(Xl,{className:`w-3 h-3`}),t]},e))})]})]})})(),(()=>{let t=F(`printers:control`),n=r||!t,i=`flex h-8 w-8 items-center justify-center rounded bg-indigo-500/15 text-indigo-300 transition-colors hover:bg-indigo-500/30 disabled:cursor-not-allowed disabled:opacity-50`,a=t=>{let n=t*we*1,r=`bambuddy.bedJog.warned.${e.id}`;(()=>{try{return sessionStorage.getItem(r)===`1`}catch{return!1}})()?Bn.mutate({distance:n,force:!0}):De({distance:n})},s=(e,t)=>{Vn.mutate({x:e,y:t})},c=e=>{Hn.mutate(e)};return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>xe(be===e.id?null:e.id),disabled:n,className:`${o} ${n?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-indigo-500/10 text-indigo-400 hover:bg-indigo-500/20`}`,title:j(t?r?`printers.bedJog.disabledWhilePrinting`:`printers.bedJog.title`:`printers.permission.noControl`),children:(0,G.jsx)(il,{className:`w-4 h-4`})}),be===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>xe(null)}),(0,G.jsxs)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 flex w-[216px] flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-2xl`,children:[(0,G.jsx)(`div`,{className:`shrink-0 px-3 py-2.5 text-center text-sm font-medium text-white`,children:j(`printers.bedJog.title`)}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex justify-center px-3 py-2.5`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-1`,children:[(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,we),disabled:Vn.isPending,className:i,"aria-label":`Move Y forward`,children:(0,G.jsx)(No,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(-we,0),disabled:Vn.isPending,className:i,"aria-label":`Move X left`,children:(0,G.jsx)(Oo,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{xe(null),Un.mutate(`all`)},disabled:Un.isPending,className:i,"aria-label":j(`printers.bedJog.homeZ`),children:(0,G.jsx)(Tc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>s(we,0),disabled:Vn.isPending,className:i,"aria-label":`Move X right`,children:(0,G.jsx)(Ao,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,-we),disabled:Vn.isPending,className:i,"aria-label":`Move Y back`,children:(0,G.jsx)(Do,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>a(-1),disabled:Bn.isPending,className:i,"aria-label":j(`printers.bedJog.up`),children:(0,G.jsx)(No,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(Nc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(1),disabled:Bn.isPending,className:i,"aria-label":j(`printers.bedJog.down`),children:(0,G.jsx)(Do,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>c(-we),disabled:Hn.isPending,className:i,"aria-label":`Retract filament`,children:(0,G.jsx)(No,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(`span`,{className:`text-sm font-semibold leading-none`,children:`E`})}),(0,G.jsx)(`button`,{onClick:()=>c(we),disabled:Hn.isPending,className:i,"aria-label":`Extrude filament`,children:(0,G.jsx)(Do,{className:`w-4 h-4`})})]})]})}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`px-3 pt-2.5 pb-3`,children:[(0,G.jsx)(`div`,{className:`mb-1 text-[9px] uppercase tracking-wider text-bambu-gray/70`,children:j(`printers.bedJog.step`)}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:[1,10,50].map(e=>(0,G.jsx)(`button`,{onClick:()=>Te(e),className:`flex-1 px-1 py-1 rounded text-[10px] transition-colors ${we===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:e},e))})]})]})]})]})})(),(0,G.jsxs)(`div`,{className:`inline-flex rounded-lg ${e.plate_detection_enabled?`ring-1 ring-green-500`:``}`,children:[(0,G.jsx)(`button`,{onClick:sr,disabled:!W.connected||Wn.isPending||!F(`printers:update`),className:`${o} rounded-r-none ${e.plate_detection_enabled?`bg-green-500/10 text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:F(`printers:update`)?e.plate_detection_enabled?j(`printers.plateDetection.enabledClick`):j(`printers.plateDetection.disabledClick`):j(`printers.plateDetection.noPermission`),children:Wn.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:cr,disabled:!W.connected||bt||!F(`printers:update`),className:`flex h-8 w-8 items-center justify-center rounded-r-lg border-l border-bambu-dark-tertiary transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${e.plate_detection_enabled?`bg-green-500/10 text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:F(`printers:update`)?j(`printers.plateDetection.manageCalibration`):j(`printers.plateDetection.noPermission`),children:bt?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(es,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{"data-testid":`speed-control`,onClick:()=>_e(ge===e.id?null:e.id),disabled:!r||!F(`printers:control`),className:`${o} ${r?`bg-amber-500/10 text-amber-400 hover:bg-amber-500/20`:`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`}`,title:r?j(`printers.speed.title`):void 0,children:(0,G.jsx)(uc,{className:`w-4 h-4`})}),ge===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>_e(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:1,label:j(`printers.speed.silent`)},{mode:2,label:j(`printers.speed.standard`)},{mode:3,label:j(`printers.speed.sport`)},{mode:4,label:j(`printers.speed.ludicrous`)}].map(({mode:e,label:t})=>(0,G.jsx)(`button`,{onClick:()=>{Rn.mutate(e),_e(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors ${W.speed_level===e?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:t},e))})]})]})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center justify-end gap-2 flex-shrink-0`,children:[(()=>{let e=!r||i||!F(`printers:control`);return(0,G.jsxs)(`button`,{onClick:()=>n?ke(!0):he(!0),disabled:e,className:`
${s}
${e?a:n?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/30`}
`,title:F(`printers:control`)?j(n?`printers.resume`:`printers.pause`):j(`printers.permission.noControl`),children:[n?(0,G.jsx)(hl,{className:`w-3 h-3`}):(0,G.jsx)(ul,{className:`w-3 h-3`}),j(n?`printers.resume`:`printers.pause`)]})})(),(()=>{let e=!r||i||!F(`printers:control`);return(0,G.jsxs)(`button`,{onClick:()=>pe(!0),disabled:e,className:`
diff --git a/static/index.html b/static/index.html
index 80f1c040a..ca6b01fea 100644
--- a/static/index.html
+++ b/static/index.html
@@ -26,7 +26,7 @@
-
+