| 1 |
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{C as t,T as n,a as r,k as i,w as a}from"./client-DWQBE01c.js";import{n as o}from"./QueryClientProvider-CfzZA5MJ.js";import{t as s}from"./useQuery-Q4exvDrv.js";import{t as c}from"./useMutation-D7HomC3_.js";import{t as l}from"./box-2IRrqIPf.js";import{n as u,t as d}from"./fan-DFhlzhTj.js";import{t as f}from"./calendar-DCaqqD_3.js";import{t as p}from"./check-DWMoPMOi.js";import{a as m,i as h}from"./info-CPhSLaIW.js";import{n as g}from"./ToastContext-Bg6SLDR7.js";import{t as _}from"./clock-B_D089Yk.js";import{t as v}from"./cog-CzVm_nY6.js";import{t as y}from"./droplet-LWrt2qYt.js";import{t as b}from"./external-link-Dp7WgKqd.js";import{t as x}from"./flame-B4hkXht_.js";import{t as S}from"./funnel-wdX6_bRQ.js";import{t as C}from"./layers-CpeKWrvK.js";import{t as w}from"./loader-circle-QIogdiwG.js";import{t as T}from"./pen-line-D7Vf-tYE.js";import{t as ee}from"./plus-D5MKJLpO.js";import{t as E}from"./printer-B0-V64ms.js";import{t as D}from"./refresh-cw-CCtLKWuY.js";import{t as O}from"./rotate-ccw-iglXlH3a.js";import{t as k}from"./settings-B-xfKNHZ.js";import{t as A}from"./sparkles-DviWgAPD.js";import{t as j}from"./square-Cu6PTXpS.js";import{t as te}from"./target-vwITWjf5.js";import{n as M,t as N}from"./wind-CPeO2_tv.js";import{t as P}from"./timer-DlNNMxUG.js";import{t as ne}from"./trash-2-BeUbCuhB.js";import{t as F}from"./triangle-alert-C-5b4OJS.js";import{t as I}from"./wrench-COJ2wDge.js";import{t as re}from"./zap-B1QKtweI.js";import{n as ie}from"./AuthContext-dqmb9nDE.js";import{n as L,t as R}from"./Card-DwWt21H0.js";import{t as z}from"./Button-CDViejCk.js";import{t as ae}from"./ConfirmModal-FHGIQVx7.js";import{t as B}from"./Toggle-Ot8yEE6N.js";var V=t(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),H=t(`ruler`,[[`path`,{d:`M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z`,key:`icamh8`}],[`path`,{d:`m14.5 12.5 2-2`,key:`inckbg`}],[`path`,{d:`m11.5 9.5 2-2`,key:`fmmyf7`}],[`path`,{d:`m8.5 6.5 2-2`,key:`vc6u1g`}],[`path`,{d:`m17.5 15.5 2-2`,key:`wo5hmg`}]]),U=e(i(),1);function W(e,t){let n=(t||``).toUpperCase().replace(/[- ]/g,``),r=n.includes(`X1`),i=n.includes(`P1`),a=n.includes(`A1MINI`),o=n.includes(`A1`)&&!a,s=n.includes(`H2D`),c=n.includes(`H2C`),l=n.includes(`H2S`),u=s||c||l,d=n.includes(`P2S`),f=n.includes(`X2D`),p=d||f;switch(e){case`Lubricate Steel Rods`:return p?`https://wiki.bambulab.com/en/p2s/maintenance/lubricate-x-y-z-axis`:null;case`Clean Steel Rods`:return p?`https://wiki.bambulab.com/en/p2s/maintenance/lubricate-x-y-z-axis`:null;case`Lubricate Linear Rails`:return a?`https://wiki.bambulab.com/en/a1-mini/maintenance/lubricate-y-axis`:o?`https://wiki.bambulab.com/en/a1/maintenance/lubricate-y-axis`:u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;case`Clean Nozzle/Hotend`:return r||i?`https://wiki.bambulab.com/en/x1/troubleshooting/nozzle-clog`:a||o?`https://wiki.bambulab.com/en/a1-mini/troubleshooting/nozzle-clog`:u?`https://wiki.bambulab.com/en/h2/maintenance/nozzl-cold-pull-maintenance-and-cleaning`:p?`https://wiki.bambulab.com/en/p2s/maintenance/cold-pull-maintenance-hotend`:`https://wiki.bambulab.com/en/x1/troubleshooting/nozzle-clog`;case`Check Belt Tension`:return r?`https://wiki.bambulab.com/en/x1/maintenance/belt-tension`:i?`https://wiki.bambulab.com/en/p1/maintenance/p1p-maintenance`:a?`https://wiki.bambulab.com/en/a1-mini/maintenance/belt_tension`:o?`https://wiki.bambulab.com/en/a1/maintenance/belt_tension`:s?`https://wiki.bambulab.com/en/h2/maintenance/belt-tension`:c?`https://wiki.bambulab.com/en/h2c/maintenance/belt-tension`:l?`https://wiki.bambulab.com/en/h2s/maintenance/belt-tension`:p?`https://wiki.bambulab.com/en/p2s/maintenance/belt-tension`:`https://wiki.bambulab.com/en/x1/maintenance/belt-tension`;case`Clean Carbon Rods`:return r||i?`https://wiki.bambulab.com/en/general/carbon-rods-clearance`:null;case`Clean Linear Rails`:return a?`https://wiki.bambulab.com/en/a1-mini/maintenance/lubricate-y-axis`:o?`https://wiki.bambulab.com/en/a1/maintenance/lubricate-y-axis`:u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;case`Clean Build Plate`:return`https://wiki.bambulab.com/en/filament-acc/acc/pei-plate-clean-guide`;case`Check PTFE Tube`:return r||i?`https://wiki.bambulab.com/en/x1/maintenance/replace-ptfe-tube`:a||o?`https://wiki.bambulab.com/en/a1-mini/maintenance/ptfe-tube`:s?`https://wiki.bambulab.com/en/h2/maintenance/replace-ptfe-tube-on-h2d-printer`:l?`https://wiki.bambulab.com/en/h2s/maintenance/replace-ptfe-tube-on-h2s-printer`:c?`https://wiki.bambulab.com/en/h2/maintenance/replace-ptfe-tube-on-h2d-printer`:`https://wiki.bambulab.com/en/x1/maintenance/replace-ptfe-tube`;case`Replace HEPA Filter`:case`HEPA Filter`:case`Replace Carbon Filter`:case`Carbon Filter`:return u?`https://wiki.bambulab.com/en/h2/maintenance/replace-smoke-purifier-air-filte`:`https://wiki.bambulab.com/en/x1/maintenance/replace-carbon-filter`;case`Lubricate Left Nozzle Rail`:case`Left Nozzle Rail`:return u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;default:return null}}var G=a(),K={Droplet:y,Flame:x,Ruler:H,Sparkles:A,Square:j,Cable:u,Wrench:I,Calendar:f,Timer:P,Cog:v,Fan:d,Zap:re,Wind:N,Thermometer:M,Layers:C,Box:l,Target:te,RefreshCw:D,Settings:k,Filter:S,CircleDot:V};function q(e){return e&&K[e]||I}function J(e,t,n){if(t===`days`){if(e<1)return n?n(`common.today`):`Today`;if(e===1)return n?n(`maintenance.day`):`1 day`;if(e<7){let t=Math.round(e);return n?n(`maintenance.days`,{count:t}):`${t} days`}if(e<180){let t=Math.round(e/7);return t===1?n?n(`maintenance.week`):`1 week`:n?n(`maintenance.weeks`,{count:t}):`${t} weeks`}let t=Math.round(e/30);return t===1?n?n(`maintenance.month`):`1 month`:n?n(`maintenance.months`,{count:t}):`${t} months`}else{if(e<1)return`${Math.round(e*60)}m`;if(e<24)return`${e<10?e.toFixed(1):Math.round(e)}h`;let t=e/24;if(t<7)return`${t<2?t.toFixed(1):Math.round(t)}d`;let n=t/7;return n<12?`${n<2?n.toFixed(1):Math.round(n)}w`:`${Math.round(n/4)}mo`}}function Y(e,t,n){return t===`days`?e===1?n?n(`maintenance.day`):`1 day`:e===7?n?n(`maintenance.week`):`1 week`:e===14?n?n(`maintenance.weeks`,{count:2}):`2 weeks`:e===30?n?n(`maintenance.month`):`1 month`:e===60?n?n(`maintenance.months`,{count:2}):`2 months`:e===90?n?n(`maintenance.months`,{count:3}):`3 months`:e===180?n?n(`maintenance.months`,{count:6}):`6 months`:e===365?n?n(`maintenance.year`):`1 year`:n?n(`maintenance.days`,{count:e}):`${e} days`:`${e}h`}function X({item:e,onPerform:t,onToggle:n,hasPermission:r,t:i}){let a=q(e.maintenance_type_icon),o=e.interval_type||`hours`,s=(()=>{if(o===`days`){let t=e.days_since_maintenance??0;return Math.max(0,Math.min(100,t/e.interval_hours*100))}return Math.max(0,Math.min(100,(e.interval_hours-e.hours_until_due)/e.interval_hours*100))})(),c=()=>e.enabled?e.is_due?`text-red-700 dark:text-red-400`:e.is_warning?`text-amber-700 dark:text-amber-400`:`text-bambu-green`:`text-bambu-gray`;return(0,G.jsx)(`div`,{className:`rounded-xl border p-4 transition-all ${e.enabled?e.is_due?`bg-red-500/5 border-red-500/20`:e.is_warning?`bg-amber-500/5 border-amber-500/20`:`bg-bambu-dark-secondary border-bambu-dark-tertiary`:`bg-bambu-dark-secondary/50`}`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3 max-[550px]:flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`relative p-2.5 rounded-lg shrink-0 ${e.is_due?`bg-red-500/20`:e.is_warning?`bg-amber-500/20`:e.enabled?`bg-bambu-dark`:`bg-bambu-dark/50`}`,children:[(0,G.jsx)(a,{className:`w-5 h-5 ${c()}`}),e.enabled&&(e.is_due||e.is_warning)&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 w-2.5 h-2.5 rounded-full ${e.is_due?`bg-red-500`:`bg-amber-500`} animate-pulse`})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`font-medium truncate ${e.enabled?`text-white`:`text-bambu-gray`}`,children:e.maintenance_type_name}),o===`days`&&(0,G.jsx)(`span`,{title:i(`maintenance.timeBasedInterval`),children:(0,G.jsx)(f,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`})}),(()=>{let t=e.maintenance_type_wiki_url||W(e.maintenance_type_name,e.printer_model);return t?(0,G.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-gray hover:text-bambu-green transition-colors shrink-0`,title:i(`maintenance.viewDocumentation`),onClick:e=>e.stopPropagation(),children:(0,G.jsx)(b,{className:`w-3.5 h-3.5`})}):null})()]}),(0,G.jsx)(`div`,{className:`mt-2 mb-1.5`,children:(0,G.jsx)(`div`,{className:`w-full h-1.5 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500 ${e.enabled?e.is_due?`bg-red-500`:e.is_warning?`bg-amber-500`:`bg-bambu-green`:`bg-bambu-gray/30`}`,style:{width:`${s}%`}})})}),(0,G.jsxs)(`div`,{className:`text-xs flex items-center gap-1 ${c()}`,children:[e.is_due&&(0,G.jsx)(F,{className:`w-3 h-3`}),e.is_warning&&!e.is_due&&(0,G.jsx)(_,{className:`w-3 h-3`}),!e.is_due&&!e.is_warning&&e.enabled&&(0,G.jsx)(p,{className:`w-3 h-3`}),(()=>{if(!e.enabled)return i(`common.disabled`);if(o===`days`){let t=e.days_until_due??0;return e.is_due?i(`maintenance.overdueBy`,{duration:J(Math.abs(t),`days`,i)}):e.is_warning?i(`maintenance.dueIn`,{duration:J(t,`days`,i)}):i(`maintenance.timeLeft`,{duration:J(t,`days`,i)})}else return e.is_due?i(`maintenance.overdueBy`,{duration:J(Math.abs(e.hours_until_due),`hours`,i)}):e.is_warning?i(`maintenance.dueIn`,{duration:J(e.hours_until_due,`hours`,i)}):i(`maintenance.timeLeft`,{duration:J(e.hours_until_due,`hours`,i)})})()]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0 max-[550px]:w-full max-[550px]:justify-end max-[550px]:mt-1`,children:[(0,G.jsx)(`span`,{title:r(`maintenance:update`)?void 0:i(`maintenance.noPermissionUpdate`),children:(0,G.jsx)(B,{checked:e.enabled,onChange:t=>n(e.id,t),disabled:!r(`maintenance:update`)})}),(0,G.jsxs)(z,{size:`sm`,variant:e.is_due?`primary`:`secondary`,onClick:()=>t(e.id),disabled:!e.enabled||!r(`maintenance:update`),title:r(`maintenance:update`)?void 0:i(`maintenance.noPermissionPerform`),className:`!px-3`,children:[(0,G.jsx)(O,{className:`w-3.5 h-3.5`}),i(`common.reset`)]})]})]})})}function Z({overview:e,onPerform:t,onToggle:n,onSetHours:r,hasPermission:i,t:a}){let[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(!1),[u,d]=(0,U.useState)(e.total_print_hours.toFixed(1)),f=[...e.maintenance_items].sort((e,t)=>e.is_due&&!t.is_due?-1:!e.is_due&&t.is_due?1:e.is_warning&&!t.is_warning?-1:!e.is_warning&&t.is_warning?1:e.maintenance_type_id-t.maintenance_type_id),g=f.find(e=>e.enabled&&(e.is_due||e.is_warning)),v=()=>{let t=parseFloat(u);!isNaN(t)&&t>=0&&(r(e.printer_id,t),l(!1))};return(0,G.jsxs)(R,{className:`overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`p-5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:e.printer_name}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.due_count>0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-400 text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(F,{className:`w-3 h-3`}),a(`maintenance.overdueCount`,{count:e.due_count})]}),e.warning_count>0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400 text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(_,{className:`w-3 h-3`}),a(`maintenance.dueSoonCount`,{count:e.warning_count})]}),e.due_count===0&&e.warning_count===0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-bambu-green/20 text-bambu-green text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(p,{className:`w-3 h-3`}),a(`maintenance.allGood`)]})]})]}),(0,G.jsxs)(`button`,{onClick:()=>s(!o),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm text-bambu-gray hover:text-white hover:bg-bambu-dark rounded-lg transition-colors`,children:[o?(0,G.jsx)(h,{className:`w-4 h-4`}):(0,G.jsx)(m,{className:`w-4 h-4`}),a(o?`common.collapse`:`common.expand`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-6 mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 bg-bambu-dark/50 rounded-lg`,children:(0,G.jsx)(P,{className:`w-4 h-4 text-bambu-gray`})}),c?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&v(),e.key===`Escape`&&l(!1)},className:`w-24 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm`,min:`0`,step:`1`,autoFocus:!0}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:a(`common.hours`)}),(0,G.jsx)(z,{size:`sm`,onClick:v,children:a(`common.save`)}),(0,G.jsx)(z,{size:`sm`,variant:`secondary`,onClick:()=>l(!1),children:a(`common.cancel`)})]}):(0,G.jsxs)(`button`,{onClick:()=>{i(`maintenance:update`)&&(d(Math.round(e.total_print_hours).toString()),l(!0))},className:`group ${i(`maintenance:update`)?``:`cursor-not-allowed opacity-60`}`,title:i(`maintenance:update`)?void 0:a(`maintenance.noPermissionEditHours`),children:[(0,G.jsxs)(`div`,{className:`text-sm font-medium text-white ${i(`maintenance:update`)?`group-hover:text-bambu-green`:``} transition-colors flex items-center gap-1`,children:[Math.round(e.total_print_hours),` `,a(`common.hours`),(0,G.jsx)(T,{className:`w-3 h-3 text-bambu-gray ${i(`maintenance:update`)?`group-hover:text-bambu-green`:``}`})]}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:a(`maintenance.totalPrintTime`)})]})]}),(0,G.jsx)(`div`,{className:`w-px h-10 bg-bambu-dark-tertiary`}),g&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${g.is_due?`bg-red-500/20`:`bg-amber-500/20`}`,children:(0,G.jsx)(q(g.maintenance_type_icon),{className:`w-4 h-4 ${g.is_due?`text-red-600 dark:text-red-400`:`text-amber-600 dark:text-amber-400`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-sm font-medium ${g.is_due?`text-red-700 dark:text-red-400`:`text-amber-700 dark:text-amber-400`}`,children:g.maintenance_type_name}),(0,G.jsx)(`div`,{className:`text-xs ${g.is_due?`text-red-700/80 dark:text-red-400/70`:`text-amber-700/80 dark:text-amber-400/70`}`,children:g.is_due?a(`common.overdue`):a(`maintenance.dueSoon`)})]})]})]})]}),o&&(0,G.jsx)(L,{className:`pt-0 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-3 pt-4`,children:f.map(e=>(0,G.jsx)(X,{item:e,onPerform:t,onToggle:n,hasPermission:i,t:a},e.id))})})]})}function Q({overview:e,types:t,onUpdateInterval:n,onAddType:r,onUpdateType:i,onDeleteType:a,onRestoreDefaults:o,isRestoringDefaults:s,onAssignType:c,onRemoveItem:l,hasPermission:u,t:d}){let[p,h]=(0,U.useState)(null),[g,v]=(0,U.useState)(``),[y,b]=(0,U.useState)(`hours`),[x,S]=(0,U.useState)(!1),[C,w]=(0,U.useState)(``),[D,O]=(0,U.useState)(`100`),[k,A]=(0,U.useState)(`hours`),[j,te]=(0,U.useState)(`Wrench`),[M,N]=(0,U.useState)(``),[F,I]=(0,U.useState)(new Set),[re,ie]=(0,U.useState)(null),[B,V]=(0,U.useState)(null),H=(0,U.useMemo)(()=>e?e.map(e=>({id:e.printer_id,name:e.printer_name})):[],[e]),W=t=>e?e.filter(e=>e.maintenance_items.some(e=>e.maintenance_type_id===t)).map(e=>({printerId:e.printer_id,printerName:e.printer_name,itemId:e.maintenance_items.find(e=>e.maintenance_type_id===t)?.id})):[],J=t=>{if(!e)return[];let n=new Set(W(t).map(e=>e.printerId));return H.filter(e=>!n.has(e.id))},[X,Z]=(0,U.useState)(null),[Q,$]=(0,U.useState)(``),[oe,se]=(0,U.useState)(``),[ce,le]=(0,U.useState)(`hours`),[ue,de]=(0,U.useState)(`Wrench`),[fe,pe]=(0,U.useState)(``),me=e=>{Z(e),$(e.name),se(e.default_interval_hours.toString()),le(e.interval_type||`hours`),de(e.icon||`Wrench`),pe(e.wiki_url||``)},he=()=>{X&&Q.trim()&&parseFloat(oe)>0&&(i(X.id,{name:Q.trim(),default_interval_hours:parseFloat(oe),interval_type:ce,icon:ue,wiki_url:fe.trim()||null}),Z(null))},ge=(e,t,r)=>{let i=parseFloat(g);!isNaN(i)&&i>0&&n(e,{custom_interval_hours:Math.abs(i-t)<.01?null:i,custom_interval_type:y===r?null:y}),h(null)},_e=e=>{e.preventDefault(),C.trim()&&parseFloat(D)>0&&F.size>0&&(r({name:C.trim(),default_interval_hours:parseFloat(D),interval_type:k,icon:j,wiki_url:M.trim()||null},Array.from(F)),w(``),O(`100`),A(`hours`),N(``),I(new Set),S(!1))},ve=e=>{I(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},ye=e?.map(e=>({printerId:e.printer_id,printerName:e.printer_name,items:e.maintenance_items.sort((e,t)=>e.maintenance_type_id-t.maintenance_type_id)})).sort((e,t)=>e.printerName.localeCompare(t.printerName))||[],be=t.filter(e=>e.is_system),xe=t.filter(e=>!e.is_system);return(0,G.jsxs)(`div`,{className:`space-y-8`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:d(`maintenance.maintenanceTypes`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:d(`maintenance.maintenanceTypesDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(z,{variant:`secondary`,onClick:o,disabled:!u(`maintenance:delete`)||s,title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),children:d(`maintenance.restoreDefaults`)}),(0,G.jsxs)(z,{onClick:()=>S(!x),disabled:!u(`maintenance:create`),title:u(`maintenance:create`)?void 0:d(`maintenance.noPermissionEditTypes`),children:[(0,G.jsx)(ee,{className:`w-4 h-4`}),d(`maintenance.addCustomType`)]})]})]}),x&&(0,G.jsx)(R,{className:`mb-6`,children:(0,G.jsx)(L,{className:`py-4`,children:(0,G.jsxs)(`form`,{onSubmit:_e,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{className:`lg:col-span-2`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`common.name`)}),(0,G.jsx)(`input`,{type:`text`,value:C,onChange:e=>w(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`maintenance.exampleName`),autoFocus:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.intervalType`)}),(0,G.jsxs)(`select`,{value:k,onChange:e=>{A(e.target.value),e.target.value===`days`?O(`30`):O(`100`)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.intervalValue`,{type:k===`days`?d(`maintenance.calendarDays`).toLowerCase():d(`common.hours`)})}),(0,G.jsx)(`input`,{type:`number`,value:D,onChange:e=>O(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,min:`1`})]})]}),(0,G.jsx)(`div`,{className:`mt-4 flex items-end justify-between`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.icon`)}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:Object.keys(K).map(e=>{let t=K[e];return(0,G.jsx)(`button`,{type:`button`,onClick:()=>te(e),className:`p-2 rounded-lg transition-colors ${j===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(t,{className:`w-4 h-4`})},e)})})]})}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.documentationLink`)}),(0,G.jsx)(`input`,{type:`url`,value:M,onChange:e=>N(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:`https://wiki.bambulab.com/...`})]}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.assignToPrinters`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:H.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>ve(e.id),className:`px-3 py-1.5 rounded-lg text-sm transition-colors ${F.has(e.id)?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,children:e.name},e.id))}),F.size===0&&(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1`,children:d(`maintenance.selectAtLeastOnePrinter`)})]}),(0,G.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,G.jsx)(z,{type:`button`,variant:`secondary`,onClick:()=>{S(!1),I(new Set)},children:d(`common.cancel`)}),(0,G.jsx)(z,{type:`submit`,disabled:!C.trim()||F.size===0,children:d(`maintenance.addType`)})]})]})})}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3`,children:[be.map(e=>{let t=q(e.icon),n=e.interval_type||`hours`;return(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg`,children:(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-0.5 flex items-center gap-1`,children:[n===`days`?(0,G.jsx)(f,{className:`w-3 h-3`}):(0,G.jsx)(P,{className:`w-3 h-3`}),Y(e.default_interval_hours,n,d)]})]}),(0,G.jsx)(`button`,{onClick:()=>{u(`maintenance:delete`)&&V(e)},disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors ${u(`maintenance:delete`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(ne,{className:`w-4 h-4`})})]})},e.id)}),xe.map(e=>{let t=q(e.icon),n=e.interval_type||`hours`;if(X?.id===e.id)return(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-green`,children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:Q,onChange:e=>$(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`common.name`),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`select`,{value:ce,onChange:e=>le(e.target.value),className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]}),(0,G.jsx)(`input`,{type:`number`,value:oe,onChange:e=>se(e.target.value),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,min:`1`})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Object.keys(K).map(e=>{let t=K[e];return(0,G.jsx)(`button`,{type:`button`,onClick:()=>de(e),className:`p-1.5 rounded transition-colors ${ue===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:(0,G.jsx)(t,{className:`w-3.5 h-3.5`})},e)})}),(0,G.jsx)(`input`,{type:`url`,value:fe,onChange:e=>pe(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`maintenance.documentationLink`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(z,{size:`sm`,onClick:he,disabled:!Q.trim(),children:d(`common.save`)}),(0,G.jsx)(z,{size:`sm`,variant:`secondary`,onClick:()=>Z(null),children:d(`common.cancel`)})]})]})},e.id);let r=W(e.id),i=J(e.id),o=re===e.id;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-green/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2.5 bg-bambu-green/20 rounded-lg`,children:(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-green`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-bambu-green/20 text-bambu-green text-[10px] font-medium rounded`,children:d(`maintenance.custom`)})]}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-0.5 flex items-center gap-1`,children:[n===`days`?(0,G.jsx)(f,{className:`w-3 h-3`}):(0,G.jsx)(P,{className:`w-3 h-3`}),Y(e.default_interval_hours,n,d)]})]}),(0,G.jsxs)(`button`,{onClick:()=>ie(o?null:e.id),className:`px-2 py-1 rounded-lg border transition-colors flex items-center gap-1 ${r.length>0?`border-bambu-green/50 bg-bambu-green/10 text-bambu-green hover:bg-bambu-green/20`:`border-orange-300 bg-orange-50 text-orange-700 hover:bg-orange-100 dark:border-orange-400/50 dark:bg-orange-400/10 dark:text-orange-400 dark:hover:bg-orange-400/20`}`,title:d(`maintenance.printersAssignedClick`,{count:r.length}),children:[(0,G.jsx)(E,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:r.length}),(0,G.jsx)(m,{className:`w-3 h-3 transition-transform ${o?`rotate-180`:``}`})]}),(0,G.jsx)(`button`,{onClick:()=>me(e),disabled:!u(`maintenance:update`),title:u(`maintenance:update`)?void 0:d(`maintenance.noPermissionEditTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors ${u(`maintenance:update`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(T,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{confirm(`${d(`maintenance.deleteTypeConfirm`,{name:e.name})}\n\n${d(`maintenance.deleteTypeAllPrinters`)}`)&&a(e.id)},disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors ${u(`maintenance:delete`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(ne,{className:`w-4 h-4`})})]}),o&&(0,G.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:d(`maintenance.assignedToPrinters`)}),r.length===0?(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400`,children:d(`maintenance.noPrintersAssigned`)}):(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-2`,children:r.map(e=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-1 bg-bambu-dark rounded text-xs text-white`,children:[e.printerName,(0,G.jsx)(`button`,{onClick:()=>e.itemId&&l(e.itemId),disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?d(`maintenance.removeFromPrinter`):d(`maintenance.noPermissionRemovePrinter`),className:`ml-1 ${u(`maintenance:delete`)?`hover:text-red-600 dark:hover:text-red-400`:`opacity-50 cursor-not-allowed`}`,children:`×`})]},e.printerId))}),i.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray mr-1`,children:d(`maintenance.addPrinterShort`)}),i.map(t=>(0,G.jsxs)(`button`,{onClick:()=>c(t.id,e.id),disabled:!u(`maintenance:create`),title:u(`maintenance:create`)?void 0:d(`maintenance.noPermissionAssignPrinter`),className:`px-2 py-1 bg-bambu-dark rounded text-xs transition-colors ${u(`maintenance:create`)?`hover:bg-bambu-green/20 text-bambu-gray hover:text-bambu-green`:`opacity-50 cursor-not-allowed text-bambu-gray`}`,children:[`+ `,t.name]},t.id))]})]})]},e.id)})]})]}),ye.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:d(`maintenance.intervalOverrides`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:d(`maintenance.intervalOverridesDescription`)})]}),(0,G.jsx)(`div`,{className:`space-y-4`,children:ye.map(e=>(0,G.jsx)(R,{children:(0,G.jsxs)(L,{className:`py-4`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:e.printerName}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2`,children:e.items.map(e=>{let n=q(e.maintenance_type_icon),r=t.find(t=>t.id===e.maintenance_type_id),i=r?.default_interval_hours||e.interval_hours,a=r?.interval_type||`hours`,o=e.interval_type||`hours`,s=p===e.id;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-2.5 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(n,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray flex-1 truncate`,children:e.maintenance_type_name}),s?(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[y===`days`?(0,G.jsx)(f,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}):(0,G.jsx)(P,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}),(0,G.jsxs)(`select`,{value:y,onChange:e=>b(e.target.value),className:`px-1.5 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]}),(0,G.jsx)(`input`,{type:`number`,value:g,onChange:e=>v(e.target.value),onKeyDown:t=>{t.key===`Enter`&&ge(e.id,i,a),t.key===`Escape`&&h(null)},className:`w-16 px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs`,min:`1`}),(0,G.jsx)(z,{size:`sm`,onClick:()=>ge(e.id,i,a),children:`OK`})]}):(0,G.jsxs)(`button`,{onClick:()=>{u(`maintenance:update`)&&(h(e.id),v(e.interval_hours.toString()),b(o))},disabled:!u(`maintenance:update`),title:u(`maintenance:update`)?void 0:d(`maintenance.noPermissionEditIntervals`),className:`px-2 py-1 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-xs font-medium text-white transition-colors flex items-center gap-1 ${u(`maintenance:update`)?`hover:bg-bambu-dark-secondary hover:border-bambu-green`:`opacity-50 cursor-not-allowed`}`,children:[o===`days`?(0,G.jsx)(f,{className:`w-3 h-3`}):(0,G.jsx)(P,{className:`w-3 h-3`}),Y(e.interval_hours,o,d),(0,G.jsx)(T,{className:`w-3 h-3 text-bambu-gray`})]})]},e.id)})})]})},e.printerId))})]}),ye.length===0&&(0,G.jsx)(R,{children:(0,G.jsxs)(L,{className:`text-center py-12`,children:[(0,G.jsx)(_,{className:`w-12 h-12 mx-auto mb-4 text-bambu-gray/30`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:d(`common.noPrinters`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray/70 mt-1`,children:d(`maintenance.intervalOverridesDescription`)})]})}),B&&(0,G.jsx)(ae,{title:d(`maintenance.deleteSystemTypeTitle`),message:d(`maintenance.deleteSystemTypeMessage`,{name:B.name}),confirmText:d(`common.delete`),cancelText:d(`common.cancel`),variant:`danger`,cancelVariant:`primary`,cardClassName:`bg-red-950/70 border border-red-800/70`,onConfirm:()=>{a(B.id),V(null)},onCancel:()=>V(null)})]})}function $(){let{t:e}=n(),t=o(),{showToast:i}=g(),{hasPermission:a}=ie(),[l,u]=(0,U.useState)(`status`),{data:d,isLoading:f}=s({queryKey:[`maintenanceOverview`],queryFn:r.getMaintenanceOverview}),{data:p}=s({queryKey:[`maintenanceTypes`],queryFn:r.getMaintenanceTypes}),m=c({mutationFn:({id:e,notes:t})=>r.performMaintenance(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),t.invalidateQueries({queryKey:[`maintenanceSummary`]}),i(e(`maintenance.maintenanceComplete`))},onError:e=>{i(e.message,`error`)}}),h=c({mutationFn:({id:e,data:t})=>r.updateMaintenanceItem(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]})},onError:e=>{i(e.message,`error`)}}),_=c({mutationFn:({id:e,data:t})=>r.updateMaintenanceType(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),i(e(`maintenance.typeUpdated`))},onError:e=>{i(e.message,`error`)}}),v=c({mutationFn:r.deleteMaintenanceType,onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),i(e(`maintenance.typeDeleted`))},onError:e=>{i(e.message,`error`)}}),y=c({mutationFn:r.restoreDefaultMaintenanceTypes,onSuccess:n=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),i(e(`maintenance.defaultsRestored`,{count:n.restored}))},onError:e=>{i(e.message,`error`)}}),b=c({mutationFn:({printerId:e,hours:t})=>r.setPrinterHours(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),t.invalidateQueries({queryKey:[`maintenanceSummary`]}),i(e(`maintenance.printHoursUpdated`))},onError:e=>{i(e.message,`error`)}}),x=c({mutationFn:({printerId:e,typeId:t})=>r.assignMaintenanceType(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),i(e(`maintenance.printerAssigned`))},onError:e=>{i(e.message,`error`)}}),S=c({mutationFn:r.removeMaintenanceItem,onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),i(e(`maintenance.printerRemoved`))},onError:e=>{i(e.message,`error`)}}),C=e=>{m.mutate({id:e})},T=(e,t)=>{h.mutate({id:e,data:{enabled:t}})},ee=(e,t)=>{b.mutate({printerId:e,hours:t})};if(f)return(0,G.jsx)(`div`,{className:`p-4 md:p-8 flex justify-center`,children:(0,G.jsx)(w,{className:`w-8 h-8 text-bambu-green animate-spin`})});let E=d?.reduce((e,t)=>e+t.due_count,0)||0,D=d?.reduce((e,t)=>e+t.warning_count,0)||0;return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(I,{className:`w-7 h-7 text-bambu-green`}),e(`maintenance.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:l===`status`?(0,G.jsxs)(G.Fragment,{children:[E>0&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:e(`maintenance.dueCount`,{count:E})}),E>0&&D>0&&` · `,D>0&&(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400`,children:e(`maintenance.warningCount`,{count:D})}),E===0&&D===0&&(0,G.jsx)(`span`,{className:`text-bambu-green`,children:e(`maintenance.allOk`)})]}):e(`maintenance.configureSettings`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-1 mb-6 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>u(`status`),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${l===`status`?`text-bambu-green border-bambu-green`:`text-bambu-gray border-transparent hover:text-white`}`,children:e(`maintenance.statusTab`)}),(0,G.jsx)(`button`,{onClick:()=>u(`settings`),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${l===`settings`?`text-bambu-green border-bambu-green`:`text-bambu-gray border-transparent hover:text-white`}`,children:e(`maintenance.settingsTab`)})]}),l===`status`?(0,G.jsx)(`div`,{className:`space-y-6`,children:d&&d.length>0?[...d].sort((e,t)=>{let n=e.due_count*10+e.warning_count,r=t.due_count*10+t.warning_count;return n===r?e.printer_name.localeCompare(t.printer_name):r-n}).map(t=>(0,G.jsx)(Z,{overview:t,onPerform:C,onToggle:T,onSetHours:ee,hasPermission:a,t:e},t.printer_id)):(0,G.jsx)(R,{children:(0,G.jsxs)(L,{className:`text-center py-16`,children:[(0,G.jsx)(I,{className:`w-16 h-16 mx-auto mb-4 text-bambu-gray/30`}),(0,G.jsx)(`p`,{className:`text-lg font-medium text-white mb-2`,children:e(`common.noPrinters`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`maintenance.configureSettings`)})]})})}):(0,G.jsx)(Q,{overview:d,types:p||[],onUpdateInterval:(e,t)=>h.mutate({id:e,data:t}),onAddType:async(n,a)=>{let o=await r.createMaintenanceType(n);for(let e of a)await r.assignMaintenanceType(e,o.id);t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),i(e(`maintenance.typeUpdated`))},onUpdateType:(e,t)=>_.mutate({id:e,data:t}),onDeleteType:e=>v.mutate(e),onRestoreDefaults:()=>y.mutate(),isRestoringDefaults:y.isPending,onAssignType:(e,t)=>x.mutate({printerId:e,typeId:t}),onRemoveItem:e=>S.mutate(e),hasPermission:a,t:e})]})}export{$ as MaintenancePage};
|