| 12 |
- 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,x as o}from"./client-Wixdakxn.js";import{t as s}from"./react-dom-9hW1swN1.js";import{n as c}from"./QueryClientProvider-DEK0HFZS.js";import{t as l}from"./useQuery-DkJQ4hAK.js";import{t as u}from"./useMutation-C6DF_nPh.js";import{t as d}from"./useQueries-B12MfBID.js";import{t as f}from"./arrow-down-C8c3aFZX.js";import{t as p}from"./arrow-up-BaBYmkVO.js";import{t as m}from"./calendar-BJJ4YFbI.js";import{t as h}from"./check-COe945qP.js";import{a as g,i as _,r as v}from"./info-Cs6q0Q_N.js";import{n as y}from"./ToastContext-FG4Q6YJB.js";import{t as b}from"./clock-M9OLfc7b.js";import{t as x}from"./code-DGLbGShL.js";import{t as S}from"./flame-BgEz6o_y.js";import{t as C}from"./layers-CK1fp1GK.js";import{t as w}from"./loader-circle-HWxuHTYP.js";import{t as T}from"./palette-B4kfkzIu.js";import{t as ee}from"./pencil-DAgasOWC.js";import{t as E}from"./printer-iJmXXvF8.js";import{t as te}from"./refresh-cw-BALUgglx.js";import{t as ne}from"./rotate-ccw-CP7fZeaJ.js";import{t as re}from"./settings-Dbdb03o1.js";import{t as D}from"./square-check-big-DfFLDmui.js";import{t as O}from"./square-BJXrnkDa.js";import{t as k}from"./triangle-alert-B2iRG1RO.js";import{t as A}from"./users-DsBAz_HS.js";import{t as ie}from"./wand-sparkles-C-FG6ru-.js";import{t as j}from"./x-vFoBjOZn.js";import{n as ae}from"./AuthContext-CtlY1WKC.js";import{n as M,t as oe}from"./Card-FgTRnwUz.js";import{t as se}from"./Button-Bj3LhBE2.js";import{t as ce}from"./ConfirmModal-Cswi0gVe.js";import{_ as le,d as ue,g as de,m as fe,o as N,p as P,r as F,v as pe,y as me}from"./date-G9KUauqz.js";import{C as he,E as I,T as L,d as R,f as ge,i as _e,l as ve,o as ye,p as be,r as xe,s as Se,t as z,u as B,v as Ce,w as we,x as Te}from"./amsHelpers-DDsrDUnz.js";import{i as Ee,n as De}from"./colors-BBBvvSKR.js";import{n as Oe}from"./currency-LmqFrzn3.js";import{n as ke,t as Ae}from"./useUiSettings-BC4O5ZgX.js";import{t as je}from"./NumberInput-VlZYDJ-L.js";import{o as Me,s as Ne}from"./printer-DfB6SVGc.js";import{t as Pe}from"./FilamentSwatch-CAdwRRk_.js";var Fe=t(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),Ie=t(`hand`,[[`path`,{d:`M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2`,key:`1fvzgz`}],[`path`,{d:`M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2`,key:`1kc0my`}],[`path`,{d:`M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8`,key:`10h0bg`}],[`path`,{d:`M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15`,key:`1s1gnw`}]]),V=t(`list-ordered`,[[`path`,{d:`M11 5h10`,key:`1cz7ny`}],[`path`,{d:`M11 12h10`,key:`1438ji`}],[`path`,{d:`M11 19h10`,key:`11t30w`}],[`path`,{d:`M4 4h1v5`,key:`10yrso`}],[`path`,{d:`M4 9h2`,key:`r1h2o0`}],[`path`,{d:`M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02`,key:`xtkcd5`}]]),Le=t(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),Re=t(`thumbs-up`,[[`path`,{d:`M7 10v12`,key:`1qc93n`}],[`path`,{d:`M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z`,key:`emmmcr`}]]),H=e(i(),1);function U(e){if(!e)return null;let t=[e.brand,e.material,e.subtype].filter(Boolean);return t.length>0?t.join(` `):null}function ze(e,t){let n=[],r=e?.ams_extruder_map,i=!!e?.nozzles?.[1]?.nozzle_diameter||r&&Object.keys(r).length>0||(e?.vt_tray?.length??0)>1;e?.ams?.forEach(e=>{let i=Te(e.id);e.tray.forEach(a=>{if(a.tray_type){let o=we(a.tray_color),s=Ce(e.id,a.id,!1),c=t?.get(s);n.push({type:a.tray_type,color:o,colorName:c?.color_name?.trim()||Ee(o,a.tray_sub_brands,a.tray_info_idx),amsId:e.id,trayId:a.id,isHt:i,isExternal:!1,label:be(e.id,a.id,i,!1),globalTrayId:s,trayInfoIdx:a.tray_info_idx||``,traySubBrands:a.tray_sub_brands||``,spoolName:U(c)??void 0,extraColors:c?.extra_colors??void 0,effectType:c?.effect_type??void 0,spoolSubtype:c?.subtype??void 0,extruderId:r?.[String(e.id)],remain:a.remain??-1})}})});for(let r of e?.vt_tray??[])if(r.tray_type){let a=we(r.tray_color),o=r.id??254,s=(e?.vt_tray?.length??0)>1,c=t?.get(o);n.push({type:r.tray_type,color:a,colorName:c?.color_name?.trim()||Ee(a,r.tray_sub_brands,r.tray_info_idx),amsId:-1,trayId:o-254,isHt:!1,isExternal:!0,label:s?o===254?`Ext-L`:`Ext-R`:`External`,globalTrayId:o,trayInfoIdx:r.tray_info_idx||``,traySubBrands:r.tray_sub_brands||``,spoolName:U(c)??void 0,extraColors:c?.extra_colors??void 0,effectType:c?.effect_type??void 0,spoolSubtype:c?.subtype??void 0,extruderId:i?255-o:void 0,remain:r.remain??-1})}return n}function Be(e,t,n,r){let i=ze(t);if(i.length!==0)return We(Ue(e,i,{},n,r,t?.fila_switch?.installed===!0))}function Ve(e,t){return(0,H.useMemo)(()=>ze(e,t),[e,t])}function He(e,t){let n=L(t);return!n||L(e)===n||ye(e,t)}function Ue(e,t,n,r,i,a=!1){if(!e?.filaments||e.filaments.length===0)return[];let o=new Set(Object.values(n));return e.filaments.map(e=>{let s=e.slot_id||0;if(s>0&&n[s]!==void 0){let r=n[s],i=t.find(e=>e.globalTrayId===r);if(i){let t=B(i.type,e.type),n=He(i.color,e.color),r;return r=t&&n?`match`:t?`type_only`:`mismatch`,{...e,loaded:i,hasFilament:!0,typeMatch:t,colorMatch:n,status:r,isManual:!0}}}let c=e.tray_info_idx||``,l=t.filter(e=>!o.has(e.globalTrayId));e.nozzle_id!=null&&!a&&(l=l.filter(t=>t.extruderId===e.nozzle_id)),r&&(l=[...l].sort((e,t)=>Se(I(e,i),I(t,i))));let u,d,f,p;if(c){let t=l.filter(e=>e.trayInfoIdx===c);t.length===1?u=t[0]:t.length>1&&(r&&t.sort((e,t)=>Se(I(e,i),I(t,i))),d=t.find(t=>B(t.type,e.type)&&L(t.color)===L(e.color)),d||(f=ge(t.filter(t=>B(t.type,e.type)),e.color,e=>e.color)),!d&&!f&&(p=t.find(t=>B(t.type,e.type))))}!u&&!d&&!f&&!p&&(d=l.find(t=>B(t.type,e.type)&&L(t.color)===L(e.color)),d||(f=ge(l.filter(t=>B(t.type,e.type)),e.color,e=>e.color)),!d&&!f&&(p=l.find(t=>B(t.type,e.type))));let m=u||d||f||p||void 0;m&&o.add(m.globalTrayId);let h=!!m,g=h,_=h&&He(m.color,e.color),v;return v=h?_?`match`:`type_only`:`mismatch`,{...e,loaded:m,hasFilament:h,typeMatch:g,colorMatch:_,status:v,isManual:!1}})}function We(e){if(e.length===0)return;let t=Math.max(...e.map(e=>e.slot_id||0));if(t<=0)return;let n=Array(t).fill(-1);return e.forEach(e=>{e.slot_id&&e.slot_id>0&&(n[e.slot_id-1]=e.loaded?.globalTrayId??-1)}),n}function Ge(e,t,n,r,i,a){let o=Ve(t,a),s=t?.fila_switch?.installed===!0,c=(0,H.useMemo)(()=>Ue(e,o,n,r,i,s),[e,o,n,r,s,i]);return{loadedFilaments:o,filamentComparison:c,amsMapping:(0,H.useMemo)(()=>o.length===0?void 0:We(c),[c,o.length]),hasTypeMismatch:c.some(e=>e.status===`mismatch`),hasColorMismatch:c.some(e=>e.status===`type_only`)}}function W(e,t,n,r,i){if(!e||e.length===0)return{exactMatches:0,typeOnlyMatches:0,missingTypes:0,totalSlots:0,status:`full`};let a=0,o=0,s=0,c=new Set(Object.values(n));for(let l of e){let e=l.slot_id||0;if(e>0&&n[e]!==void 0){let r=n[e],i=t.find(e=>e.globalTrayId===r);if(i){let e=B(i.type,l.type),t=L(i.color)===L(l.color)||ye(i.color,l.color);e&&t?a++:e?o++:s++;continue}}let u=t.filter(e=>!c.has(e.globalTrayId));if(l.nozzle_id!=null){let e=u.filter(e=>e.extruderId===l.nozzle_id);e.length>0&&(u=e)}r&&(u=[...u].sort((e,t)=>Se(I(e,i),I(t,i))));let d=u.find(e=>B(e.type,l.type)&&L(e.color)===L(l.color)),f=d?void 0:ge(u.filter(e=>B(e.type,l.type)),l.color,e=>e.color),p=d||f?void 0:u.find(e=>B(e.type,l.type)),m=d??f??p;m&&c.add(m.globalTrayId),d||f?a++:p?o++:s++}let l=e.length,u=`full`;return s>0?u=`missing`:o>0&&(u=`partial`),{exactMatches:a,typeOnlyMatches:o,missingTypes:s,totalSlots:l,status:u}}function Ke(e,t,n,r,i){if(!e?.filaments||e.filaments.length===0)return;let a=ze(t);if(a.length===0)return;let o=new Set(Object.values(n)),s=[];for(let t of e.filaments){let e=t.slot_id||0;if(e>0&&n[e]!==void 0){s.push({slot_id:e,globalTrayId:n[e]});continue}let c=a.filter(e=>!o.has(e.globalTrayId));if(t.nozzle_id!=null){let e=c.filter(e=>e.extruderId===t.nozzle_id);e.length>0&&(c=e)}r&&(c=[...c].sort((e,t)=>Se(I(e,i),I(t,i))));let l=c.find(e=>B(e.type,t.type)&&L(e.color)===L(t.color)),u=l?void 0:ge(c.filter(e=>B(e.type,t.type)),t.color,e=>e.color),d=l||u?void 0:c.find(e=>B(e.type,t.type)),f=l??u??d;f&&o.add(f.globalTrayId),s.push({slot_id:e,globalTrayId:f?.globalTrayId??-1})}let c=Math.max(...s.map(e=>e.slot_id||0));if(c<=0)return;let l=Array(c).fill(-1);return s.forEach(e=>{e.slot_id&&e.slot_id>0&&(l[e.slot_id-1]=e.globalTrayId)}),l}var qe={useDefault:!0,manualMappings:{},autoConfigured:!1};function Je(e,t,n,i,a,o,s,c,l){let u=d({queries:e.map(t=>({queryKey:[`printer-status`,t],queryFn:()=>r.getPrinterStatus(t),enabled:e.length>0,staleTime:5e3}))}),f=(0,H.useMemo)(()=>e.map((e,r)=>{let o=u[r],d=o?.data,f=t?.find(t=>t.id===e)?.name||`Printer ${e}`,p=ze(d),m=a[e]||qe,h=c?.get(e),g=ve(s,d?.ams_filament_backup),_=Be(n,d,g,h),v=l!=null&&e===l,y=m.useDefault?v?i:{}:m.manualMappings,b=Ke(n,d,y,g,h),x=W(n?.filaments,p,y,g,h);return{printerId:e,printerName:f,status:d,isLoading:o?.isLoading??!1,loadedFilaments:p,autoMapping:_,finalMapping:b,matchStatus:x.status,exactMatches:x.exactMatches,typeOnlyMatches:x.typeOnlyMatches,missingTypes:x.missingTypes,totalSlots:x.totalSlots,config:m,inventoryByTrayId:h}}),[e,u,t,n,a,i,s,c,l]),p=u.some(e=>e.isLoading),m=(e,t)=>{o(n=>({...n,[e]:{...n[e]||qe,...t}}))},h=e=>{let t=f.find(t=>t.printerId===e);if(!t||!t.status||!n?.filaments)return;let r=Be(n,t.status,ve(s,t.status?.ams_filament_backup),c?.get(e));if(!r)return;let i={};r.forEach((e,t)=>{e!==-1&&(i[t+1]=e)}),m(e,{useDefault:!1,manualMappings:i,autoConfigured:!0})};return{printerResults:f,isLoading:p,perPrinterConfigs:a,updatePrinterConfig:m,autoConfigureAll:()=>{for(let t of e)h(t)},autoConfigurePrinter:h,getFinalMapping:e=>f.find(t=>t.printerId===e)?.finalMapping,allPrintersReady:f.every(e=>e.matchStatus!==`missing`)}}function Ye(e){let t=e.trim().split(/\s+/);return t.length<=1?e.trim():t.slice(1).join(` `)}function Xe(){let{data:e}=l({queryKey:[`builtin-filaments`],queryFn:()=>r.getBuiltinFilaments(),staleTime:300*1e3}),{data:t}=l({queryKey:[`filament-id-map`],queryFn:()=>r.getFilamentIdMap(),staleTime:300*1e3});return(0,H.useMemo)(()=>{let n={};for(let t of e||[])t.filament_id&&(n[t.filament_id]=t.name);for(let[e,r]of Object.entries(t||{}))e&&r&&(n[e]=r);return n},[e,t])}function Ze(e,t,n){return Ye(e&&n[e]||t)}function Qe(e){let t=Xe(),n=(0,H.useMemo)(()=>(e||[]).map(e=>{let n=e.tray_info_idx&&t[e.tray_info_idx]||e.type;return{resolvedName:n,materialHint:Ye(n),color:e.color}}),[e,t]),i=d({queries:n.map(({color:e,materialHint:t})=>({queryKey:[`color-by-material`,e,t],queryFn:()=>r.getColorByMaterial(e,t),enabled:!!e,staleTime:300*1e3}))});return n.map(({resolvedName:e,color:t},n)=>({resolvedName:e,colorLabel:(i[n]?.data?.color_name??null)||Ee(t)}))}var G=`/img/bed`,$e={"cool plate":{icon:`${G}/bed_cool.png`,label:`Cool Plate`},"pc plate":{icon:`${G}/bed_cool.png`,label:`Cool Plate`},"cool plate (supertack)":{icon:`${G}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"supertack plate":{icon:`${G}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"bambu cool plate supertack":{icon:`${G}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"engineering plate":{icon:`${G}/bed_engineering.png`,label:`Engineering Plate`},"high temp plate":{icon:`${G}/bed_high_templ.png`,label:`High Temp Plate`},"textured pei plate":{icon:`${G}/bed_pei.png`,label:`Textured PEI Plate`},"pei plate":{icon:`${G}/bed_pei.png`,label:`PEI Plate`},"smooth pei plate":{icon:`${G}/bed_pei_cool.png`,label:`Smooth PEI Plate`}};function et(e){return e?$e[e.trim().toLowerCase()]??null:null}function tt(e,t){if(t==null)return;let n=e?.slicer_ams_mapping;if(!(!n||typeof n!=`object`)&&n.printer_id===t&&!(!Array.isArray(n.mapping)||n.mapping.length===0))return n.mapping}var nt=e(s(),1),K=a(),rt=`w-3 h-3`,it=8;function at({value:e,options:t,placeholder:n,placeholderOption:r,onChange:i,disabled:a=!1,ariaLabel:o,title:s,className:c=``,exactMatchLabel:l}){let[u,d]=(0,H.useState)(!1),[f,p]=(0,H.useState)(0),[m,_]=(0,H.useState)(null),v=(0,H.useRef)(null),y=(0,H.useRef)(null),b=[{...r??{},value:``,label:n},...t],x=Math.max(0,b.findIndex(t=>t.value===e)),S=b[x],C=(0,H.useCallback)(()=>{let e=v.current;if(!e)return;let t=e.getBoundingClientRect(),n=window.innerHeight-t.bottom,r=Math.min(y.current?.scrollHeight??0,240),i=n<r+8&&t.top>n,a=document.documentElement.clientWidth||window.innerWidth,o=a-2*it,s=Math.min(t.width,o),c=y.current;c&&(c.style.minWidth=`${s}px`);let l=c?.offsetWidth??s;_({top:i?Math.max(8,t.top-r-4):t.bottom+4,left:Math.max(it,Math.min(t.left,a-it-l)),minWidth:s,maxWidth:o})},[]);(0,H.useLayoutEffect)(()=>{u&&C()},[u,C]),(0,H.useEffect)(()=>{if(!u)return;let e=e=>{let t=e.target;v.current?.contains(t)||y.current?.contains(t)||d(!1)},t=e=>{e.key===`Escape`&&(e.stopPropagation(),d(!1),v.current?.focus())},n=()=>C();return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t,!0),window.addEventListener(`scroll`,n,!0),window.addEventListener(`resize`,n),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t,!0),window.removeEventListener(`scroll`,n,!0),window.removeEventListener(`resize`,n)}},[u,C]);let w=e=>{i(b[e].value),d(!1),v.current?.focus()},T=e=>{p(e),d(!0)},ee=e=>{if(!a){if(!u){(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),T(x));return}e.key===`ArrowDown`?(e.preventDefault(),p(e=>Math.min(b.length-1,e+1))):e.key===`ArrowUp`?(e.preventDefault(),p(e=>Math.max(0,e-1))):e.key===`Home`?(e.preventDefault(),p(0)):e.key===`End`?(e.preventDefault(),p(b.length-1)):e.key===`Enter`||e.key===` `?(e.preventDefault(),w(f)):e.key===`Tab`&&d(!1)}},E=`slot-picker-${o.replace(/\W+/g,`-`)}`,te=e=>e.rgba?(0,K.jsx)(Pe,{rgba:e.rgba,extraColors:e.extraColors,effectType:e.effectType,subtype:e.subtype,className:rt,effectSize:`table`}):null;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{ref:v,type:`button`,role:`combobox`,"aria-label":o,"aria-haspopup":`listbox`,"aria-expanded":u,"aria-controls":u?E:void 0,"aria-activedescendant":u?`${E}-${f}`:void 0,disabled:a,title:s,onClick:()=>u?d(!1):T(x),onKeyDown:ee,className:`flex-1 min-w-0 flex items-center gap-1.5 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary text-left focus:outline-none focus:ring-1 focus:ring-bambu-green disabled:opacity-50 ${c}`,children:[te(S),(0,K.jsxs)(`span`,{className:`flex-1 min-w-0 truncate`,children:[S.label,S.meta?(0,K.jsx)(`span`,{className:`text-bambu-gray`,children:S.meta}):null]}),(0,K.jsx)(g,{className:`w-3 h-3 shrink-0 opacity-70`})]}),u&&(0,nt.createPortal)((0,K.jsx)(`div`,{ref:y,id:E,role:`listbox`,"aria-label":o,className:`fixed z-[60] max-h-60 overflow-y-auto rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary p-1 shadow-xl`,style:{top:m?.top??-9999,left:m?.left??-9999,width:`max-content`,minWidth:m?.minWidth,maxWidth:m?.maxWidth,visibility:m?`visible`:`hidden`},children:b.map((e,t)=>(0,K.jsxs)(`button`,{id:`${E}-${t}`,type:`button`,role:`option`,"data-value":e.value,"aria-selected":t===x,onMouseEnter:()=>p(t),onClick:()=>w(t),className:`w-full flex items-center gap-1.5 text-left px-2 py-1.5 rounded-md text-xs ${t===x?`bg-bambu-green/15 text-bambu-green`:t===f?`bg-bambu-dark text-white`:`text-white`}`,children:[te(e),(0,K.jsxs)(`span`,{className:`flex-1 min-w-0 truncate`,title:e.label,children:[e.label,e.meta?(0,K.jsx)(`span`,{className:`text-bambu-gray`,children:e.meta}):null]}),e.hex?(0,K.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] uppercase text-bambu-gray`,children:e.hex}):null,e.exactMatch?(0,K.jsx)(`span`,{title:l,className:`shrink-0 text-bambu-green`,children:(0,K.jsx)(h,{className:`w-3 h-3`})}):null]},e.key??`${e.value}-${t}`))}),document.body)]})}function ot(e){if(!e)return null;let t=e.trim().replace(/^#/,``);return/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(t)?`#${(t.length===8&&t.substring(6,8).toLowerCase()!==`ff`?t:t.substring(0,6)).toUpperCase()}`:null}var st=Array.from({length:6},(e,t)=>t+1),ct=0;function lt(e){let t=new Map,n;for(let r of e??[]){if(r.id===ct){n=r;continue}let e=r.id-15;e>=1&&e<=6&&t.set(e,r)}let r=st.filter(e=>!t.has(e));return r.length===1&&n&&(n.nozzle_diameter||n.nozzle_type)&&t.set(r[0],n),t}function ut(e,t){if(!e||!e.nozzle_diameter&&!e.nozzle_type)return!1;let n=Number.parseFloat(e.nozzle_diameter),r=Number.parseFloat(t.nozzle_diameter);if(!Number.isFinite(n)||!Number.isFinite(r)||Math.abs(n-r)>.005)return!1;let i=(t.volume_type||``).trim().toLowerCase();if(i&&e.nozzle_type){let t=e.nozzle_type.toUpperCase().startsWith(`HH`);if(i.startsWith(`high flow`)!==t)return!1}return!0}function dt(e,t,n){let r=lt(e);return st.map(e=>{let i=r.get(e),a=ut(i,t),o;return a||(o=i?n(`printModal.rackWrongNozzle`,{has:`${i.nozzle_diameter||`?`} ${i.nozzle_type||``}`.trim(),needs:`${t.nozzle_diameter} ${t.volume_type}`.trim()}):n(`printModal.rackEmptyPosition`)),{position:e,diameter:i?.nozzle_diameter??``,nozzleType:i?.nozzle_type??``,filamentColor:i?.filament_color??``,eligible:a,reason:o}})}function ft(e,t,n={}){let r=lt(e),i={},a=new Set,o=[...t.keys()].filter(e=>t.get(e).on_rack).sort((e,t)=>e-t);for(let e of o){let o=n[e];if(o!=null){if(a.has(o)||!ut(r.get(o),t.get(e)))return null;i[e]=o,a.add(o)}}for(let e of o){if(i[e]!=null)continue;let n=t.get(e),o=st.filter(e=>!a.has(e)&&ut(r.get(e),n));if(o.length===0)return null;let s=pt(n.filament_color),c=(s?o.find(e=>pt(r.get(e)?.filament_color)===s):void 0)??o[0];i[e]=c,a.add(c)}return i}function pt(e){return(e??``).trim().replace(/^#/,``).slice(0,6).toUpperCase()}function mt({printerId:e,filamentReqs:t,manualMappings:i,onManualMappingChange:a,onEstimatedCostChange:o,budgetAvailable:s,quantity:u=1,currencySymbol:d,defaultCostPerKg:f,defaultExpanded:p=!1,forceColorMatch:m,onForceColorMatchChange:v,plateLabel:y,archiveAmsMapping:b,nozzleRackChoice:x,onNozzleRackChoiceChange:S}){let{t:C}=n(),w=c(),[ee,E]=(0,H.useState)(!1),[ne,re]=(0,H.useState)(p),[D,O]=(0,H.useState)(!1),A=(0,H.useRef)([]);(0,H.useEffect)(()=>{O(!1),A.current=[]},[b,y,e]);let ie=()=>{if(!b||!t?.filaments)return;if(D){let e={...i};for(let t of A.current)delete e[t];a(e),A.current=[],O(!1);return}let e={...i},n=[];for(let r of t.filaments){let t=r.slot_id-1;r.slot_id>0&&t>=0&&t<b.length&&b[t]>=0&&(e[r.slot_id]=b[t],n.push(r.slot_id))}a(e),A.current=n,O(!0)},{data:j}=l({queryKey:[`printer-status`,e],queryFn:()=>r.getPrinterStatus(e),enabled:!!e}),{data:ae}=ke(),{data:M}=l({queryKey:[`printer-inventory-remain`,e],queryFn:()=>r.getInventoryRemain(e),enabled:!!e,staleTime:30*1e3,refetchOnMount:`always`}),oe=(0,H.useMemo)(()=>{if(!M?.inventory_remain_g)return;let e=new Map;return Object.entries(M.inventory_remain_g).forEach(([t,n])=>{let r=Number(t);Number.isNaN(r)||e.set(r,n)}),e},[M]),se=(0,H.useMemo)(()=>{let e=M?.slot_materials;if(!e?.length)return;let t=new Map;return e.forEach(e=>{e.spool&&t.set(e.global_tray_id,e.spool)}),t.size>0?t:void 0},[M]),{loadedFilaments:ce,filamentComparison:le,hasTypeMismatch:ue,hasColorMismatch:de}=Ge(t,j,i,ve(ae?.prefer_lowest_filament,j?.ams_filament_backup),oe,se),fe=Qe(t?.filaments),N=(0,H.useMemo)(()=>{let e=new Map;for(let t of M?.slot_materials??[])e.set(t.global_tray_id,t.cost_per_kg??null);return e},[M]),P=(0,H.useMemo)(()=>{let e=new Map;for(let t of M?.slot_materials??[])e.set(t.global_tray_id,Math.max(0,Math.round(t.remaining_g)));return e},[M]),F=(0,H.useMemo)(()=>{let e=0;for(let t of le){let n=t.loaded?.globalTrayId;if(n==null)continue;let r=N.get(n)??null??f;r>0&&(e+=t.used_grams/1e3*r)}return e},[le,N,f]),pe=(0,H.useRef)(o);(0,H.useEffect)(()=>{pe.current=o},[o]),(0,H.useEffect)(()=>{pe.current?.(F>0?F:null)},[F]);let me=(0,H.useMemo)(()=>Array.from(N.values()).some(e=>e!=null&&e>0),[N]),he=F*Math.max(1,u),I=s!=null&&he>s,R=t?.filaments&&t.filaments.length>0,ge=t?.filaments?.some(e=>e.nozzle_id!=null)??!1,_e=(0,H.useMemo)(()=>{let e=new Map;for(let n of t?.filaments??[])n.group_id!=null&&n.group&&e.set(n.group_id,n.group);return e},[t]),ye=(j?.nozzle_rack?.some(e=>e.id>=16)??!1)&&[..._e.values()].some(e=>e.on_rack),be=(0,H.useMemo)(()=>ye?ft(j?.nozzle_rack,_e,x??{})??x??{}:{},[ye,j?.nozzle_rack,_e,x]),xe=(e,t)=>{S&&S({...be,[e]:t})},Se=j?.fila_switch?.installed===!0,B=j?.ams_switch_inlet,Ce=e=>Se&&B?.[String(e)]||null,we=(0,H.useMemo)(()=>{if(!Se)return null;let e=new Set;for(let t of le){if(!t.loaded||t.loaded.isExternal)return null;let n=Ce(t.loaded.amsId);if(!n)return null;e.add(n)}return le.length<2||e.size!==1?null:[...e][0]},[Se,B,le]);if(!R||!j)return null;let Te=ue?`#f97316`:de?`#facc15`:`#00ae42`,Oe=(e,t)=>{if(e>0)if(t===``){let t={...i};delete t[e],a(t)}else a({...i,[e]:parseInt(t,10)})};return(0,K.jsxs)(`div`,{className:`mb-4`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>re(!ne),className:`flex items-center gap-2 text-sm text-bambu-gray hover:text-white transition-colors w-full`,children:[(0,K.jsx)(Fe,{className:`w-4 h-4`,fill:Te,stroke:`none`}),(0,K.jsx)(`span`,{children:y?`${C(`printModal.filamentMapping`)} — ${y}`:C(`printModal.filamentMapping`)}),ue?(0,K.jsxs)(`span`,{className:`text-xs text-orange-700 dark:text-orange-400`,children:[`(`,C(`printModal.statusTypeNotFound`),`)`]}):de?(0,K.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:[`(`,C(`printModal.statusColorMismatch`),`)`]}):(0,K.jsxs)(`span`,{className:`text-xs text-bambu-green`,children:[`(`,C(`printModal.statusReady`),`)`]}),ne?(0,K.jsx)(_,{className:`w-4 h-4 ml-auto`}):(0,K.jsx)(g,{className:`w-4 h-4 ml-auto`})]}),ne&&(0,K.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,K.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:C(`printModal.clickToChangeSlot`)}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[b&&(0,K.jsxs)(`button`,{type:`button`,onClick:ie,title:C(`printModal.useArchiveMappingTooltip`),className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border transition-colors ${D?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,K.jsx)(h,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{children:C(`printModal.useArchiveMapping`)})]}),(0,K.jsxs)(`button`,{type:`button`,onClick:async()=>{E(!0);try{await r.refreshPrinterStatus(e),await new Promise(e=>setTimeout(e,500)),await w.refetchQueries({queryKey:[`printer-status`,e]})}finally{E(!1)}},className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,disabled:ee,children:[(0,K.jsx)(te,{className:`w-3 h-3 ${ee?`animate-spin`:``}`}),(0,K.jsx)(`span`,{children:C(`printModal.reRead`)})]})]})]}),we&&(0,K.jsxs)(`div`,{className:`flex items-start gap-1.5 rounded border border-yellow-500/40 bg-yellow-500/10 px-2 py-1.5 text-xs text-yellow-700 dark:text-yellow-400`,children:[(0,K.jsx)(k,{className:`w-3 h-3 mt-0.5 shrink-0`}),(0,K.jsx)(`span`,{children:C(`printModal.ftsSameInletHint`,{inlet:we})})]}),le.map((e,t)=>{let n=e.slot_id??0,r=n>0&&v!=null,{resolvedName:i,colorLabel:a}=fe[t]??{resolvedName:e.type,colorLabel:Ee(e.color)},[o,s]=De({name:a,hex:e.color},{name:e.loaded?.colorName,hex:e.loaded?.color});return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`grid items-center gap-2 text-xs grid-cols-[16px_minmax(0,1fr)_16px] ${ye?`sm:grid-cols-[16px_minmax(210px,1.4fr)_auto_2fr_16px]`:`sm:grid-cols-[16px_minmax(70px,1fr)_auto_2fr_16px]`}`,children:[(0,K.jsx)(`span`,{title:C(`printModal.requiredTooltip`,{name:i,color:o}),children:(0,K.jsx)(Fe,{className:`w-3 h-3`,fill:e.color,stroke:e.color})}),(0,K.jsxs)(`span`,{className:`text-white flex items-center gap-1 min-w-0 col-span-2 sm:col-span-1`,children:[ye&&e.group_id!=null&&e.group?e.group.on_rack?(0,K.jsx)(`select`,{value:be[e.group_id]??``,onChange:t=>xe(e.group_id,Number(t.target.value)),disabled:!S,title:C(`printModal.rackPositionTooltip`),"aria-label":C(`printModal.rackPosition`),className:`shrink-0 bg-bambu-dark-tertiary text-white text-[10px] font-bold rounded px-1 py-0.5 border border-bambu-dark-tertiary focus:border-bambu-green outline-none disabled:opacity-60`,children:dt(j?.nozzle_rack,e.group,C).map(e=>(0,K.jsxs)(`option`,{value:e.position,disabled:!e.eligible,title:e.reason,children:[`R`,e.position,e.diameter?` · ${e.diameter}`:``]},e.position))}):(0,K.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded text-[9px] font-bold leading-none bg-bambu-gray/20 text-bambu-gray shrink-0`,title:C(`printModal.leftNozzleTooltip`),children:C(`printModal.leftNozzle`)}):ge&&e.nozzle_id!=null?(0,K.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded text-[9px] font-bold leading-none bg-bambu-gray/20 text-bambu-gray shrink-0`,title:e.nozzle_id===1?C(`printModal.leftNozzleTooltip`):C(`printModal.rightNozzleTooltip`),children:e.nozzle_id===1?C(`printModal.leftNozzle`):C(`printModal.rightNozzle`)}):null,(0,K.jsx)(`span`,{className:`truncate min-w-0`,title:i,children:i}),(0,K.jsxs)(`span`,{className:`text-bambu-gray shrink-0 whitespace-nowrap`,children:[`(`,e.used_grams,`g)`]})]}),(0,K.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,K.jsx)(at,{value:e.loaded?.globalTrayId==null?``:String(e.loaded.globalTrayId),onChange:e=>Oe(n,e),placeholder:`-- ${C(`printModal.selectSlot`)} --`,ariaLabel:C(`printModal.slotForFilament`,{name:i}),exactMatchLabel:C(`printModal.exactColorMatch`),className:`${e.status===`match`?`border-bambu-green/50 text-bambu-green`:e.status===`type_only`?`border-yellow-500 dark:border-yellow-400/50 text-yellow-700 dark:text-yellow-400`:`border-orange-500 dark:border-orange-400/50 text-orange-700 dark:text-orange-400`} ${e.isManual?`ring-1 ring-blue-400/50`:``}`,title:e.isManual?C(`printModal.manuallySelected`):C(`printModal.autoMatched`),options:ce.map(t=>{let n=P.get(t.globalTrayId),r=n==null?``:C(`printModal.slotRemainingShort`,{grams:n,defaultValue:` - ${n}g left`}),i=Ce(t.amsId),a=i==null?``:` [${z[i]}]`;return{value:String(t.globalTrayId),label:`${t.label}: ${t.spoolName||t.traySubBrands||t.type} (${t.colorName})`,meta:`${r}${a}`,rgba:t.color,extraColors:t.extraColors,effectType:t.effectType,subtype:t.spoolSubtype,hex:ot(t.color),exactMatch:L(e.color)!==``&&L(t.color)===L(e.color)}})}),e.status===`match`?(0,K.jsx)(h,{className:`w-3 h-3 text-bambu-green`}):e.status===`type_only`?(0,K.jsx)(`span`,{title:o&&s?C(`printModal.sameTypeDifferentColorDetail`,{required:o,loaded:s}):C(`printModal.sameTypeDifferentColor`),children:(0,K.jsx)(k,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`})}):(0,K.jsx)(`span`,{title:C(`printModal.filamentTypeNotLoaded`),children:(0,K.jsx)(k,{className:`w-3 h-3 text-orange-600 dark:text-orange-400`})})]}),r&&(0,K.jsxs)(`label`,{className:`inline-flex items-center gap-1.5 text-xs text-bambu-gray cursor-pointer select-none pl-5`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:m?.[n]??!1,onChange:e=>v(n,e.target.checked),className:`accent-bambu-green w-3 h-3`}),(0,K.jsx)(T,{className:`w-3 h-3`}),C(`printModal.forceColorMatch`)]})]},t)}),(0,K.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[C(`printModal.totalCost`),` `,(0,K.jsx)(`span`,{className:`text-white`,children:F>0||me?`${d}${F.toFixed(2)}`:`N/A`}),u>1&&F>0&&(0,K.jsx)(`span`,{className:`ml-2`,children:C(`printModal.totalCostForQuantity`,`total: {{cost}}`,{cost:`${d}${he.toFixed(2)}`})})]}),I&&(0,K.jsx)(`p`,{className:`text-xs text-red-400 mt-2`,children:C(`printModal.insufficientBudget`,`Insufficient budget for this cost center.`)}),ue&&(0,K.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-2`,children:C(`printModal.requiredTypeNotInPrinter`)})]})]})}function ht({filamentReqs:e,availableFilaments:t,overrides:r,onChange:i,forceColorMatch:a,onForceColorMatchChange:o,plateLabel:s,showHint:c=!0}){let{t:l}=n(),u=Qe(e?.filaments),d=(0,H.useMemo)(()=>{let e={};for(let n of t){let t=_e(n.type);e[t]||(e[t]=[]),e[t].push(n)}return e},[t]),f=e?.filaments;if(!f||f.length===0||t.length===0)return null;let p=(e,t)=>{if(t===``){let t={...r};delete t[e],i(t)}else{let[n,a]=t.split(`|`);i({...r,[e]:{type:n,color:a}})}};return(0,K.jsxs)(`div`,{className:`mb-4`,children:[(0,K.jsx)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray mb-2`,children:(0,K.jsx)(`span`,{children:s?`${l(`printModal.filamentOverride`)} — ${s}`:l(`printModal.filamentOverride`)})}),c&&(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:l(`printModal.filamentOverrideHint`)}),(0,K.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-3 space-y-2`,children:f.map((e,t)=>{let n=r[e.slot_id],i=!!n,s=d[_e(e.type)]||[],c=e.nozzle_id==null?s:s.filter(t=>t.extruder_id==null||t.extruder_id===e.nozzle_id),{resolvedName:f,colorLabel:m}=u[t]??{resolvedName:e.type,colorLabel:Ee(e.color)};return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`grid items-center gap-2 text-xs grid-cols-[16px_minmax(0,1fr)_20px] sm:grid-cols-[16px_minmax(70px,1fr)_auto_2fr_20px]`,children:[(0,K.jsx)(`span`,{title:`${l(`printModal.originalFilament`)}: ${f} - ${m}`,children:(0,K.jsx)(Fe,{className:`w-3 h-3`,fill:e.color,stroke:e.color})}),(0,K.jsxs)(`span`,{className:`text-white truncate col-span-2 sm:col-span-1`,children:[f,` `,(0,K.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,e.used_grams,`g)`]})]}),(0,K.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,K.jsx)(at,{value:i?`${n.type}|${n.color}`:``,onChange:t=>p(e.slot_id,t),placeholder:`${l(`printModal.originalFilament`)}: ${f} (${m})`,placeholderOption:{rgba:e.color,hex:ot(e.color)},disabled:c.length===0,ariaLabel:l(`printModal.overrideForFilament`,{name:f}),exactMatchLabel:l(`printModal.exactColorMatch`),className:i?`border-blue-500/50 dark:border-blue-400/50 text-blue-700 dark:text-blue-400`:`border-bambu-gray/30 text-bambu-gray`,options:c.map((t,n)=>({value:`${t.type}|${t.color}`,key:`${t.type}-${t.color}-${t.tray_sub_brands}-${n}`,label:`${t.tray_sub_brands||t.type} (${Ee(t.color,t.tray_sub_brands,t.tray_info_idx)})`,rgba:t.color,hex:ot(t.color),exactMatch:L(e.color)!==``&&L(t.color)===L(e.color)}))}),i?(0,K.jsx)(`button`,{type:`button`,onClick:()=>p(e.slot_id,``),className:`text-bambu-gray hover:text-white transition-colors`,title:l(`printModal.resetToOriginal`),children:(0,K.jsx)(ne,{className:`w-3 h-3`})}):(0,K.jsx)(`span`,{className:`w-3`})]}),(0,K.jsxs)(`label`,{className:`inline-flex items-center gap-1.5 text-xs text-bambu-gray cursor-pointer select-none pl-5`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:a?.[e.slot_id]??!1,onChange:t=>o?.(e.slot_id,t.target.checked),className:`accent-bambu-green w-3 h-3`}),(0,K.jsx)(T,{className:`w-3 h-3`}),l(`printModal.forceColorMatch`)]})]},e.slot_id)})})]})}function gt({plates:e,isMultiPlate:t,selectedPlates:r,onToggle:i,onSelectAll:a,onDeselectAll:s,multiSelect:c,quantities:l,onQuantityChange:u}){let{t:d}=n(),f=(0,H.useRef)(null),p=(0,H.useRef)(!1),m=t&&e.length>1;(0,H.useEffect)(()=>{p.current||!m||!f.current||(p.current=!0,f.current.scrollIntoView?.({block:`nearest`}))},[m,r]);let g=e.find(e=>r.has(e.index))?.index;if(!t||e.length<=1)return null;let _=r.size===e.length,v=!!l&&!!u,y=v?e.reduce((e,t)=>r.has(t.index)?e+(l[t.index]??1):e,0):0;return(0,K.jsxs)(`div`,{className:`mb-4`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,K.jsx)(C,{className:`w-4 h-4 text-bambu-gray`}),(0,K.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`Select Plate`,c?`s`:``,` to Print`]}),r.size===0&&(0,K.jsxs)(`span`,{className:`text-xs text-orange-700 dark:text-orange-400 flex items-center gap-1`,children:[(0,K.jsx)(k,{className:`w-3 h-3`}),`Selection required`]}),c&&a&&s&&(0,K.jsx)(`button`,{type:`button`,onClick:_?s:a,className:`ml-auto text-xs px-2 py-0.5 rounded-full border transition-colors ${_?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-gray`}`,children:_?d(`queue.deselectAll`):d(`queue.selectAllPlates`,{count:e.length})})]}),(0,K.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:e.map(e=>{let t=r.has(e.index);return(0,K.jsxs)(`div`,{ref:e.index===g?f:void 0,className:`flex items-center gap-2 p-2 rounded-lg border transition-colors ${t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`}`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>i(e.index),className:`flex items-center gap-2 text-left min-w-0 flex-1`,children:[c&&(t?(0,K.jsx)(D,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}):(0,K.jsx)(O,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`})),e.has_thumbnail&&e.thumbnail_url!=null?(0,K.jsx)(`img`,{src:o(e.thumbnail_url),alt:`Plate ${e.index}`,className:`w-10 h-10 rounded object-cover bg-bambu-dark-tertiary`}):(0,K.jsx)(`div`,{className:`w-10 h-10 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,K.jsx)(C,{className:`w-5 h-5 text-bambu-gray`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:e.name||`Plate ${e.index}`}),(0,K.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[e.objects.length>0?e.objects.slice(0,3).join(`, `)+(e.objects.length>3?`...`:``):`${e.filaments.length} filament${e.filaments.length===1?``:`s`}`,e.print_time_seconds==null?``:` • ${N(e.print_time_seconds)}`]}),(()=>{let t=et(e.bed_type);return t?(0,K.jsxs)(`p`,{className:`text-xs text-bambu-gray flex items-center gap-1 mt-0.5 truncate`,title:t.label,children:[(0,K.jsx)(`img`,{src:t.icon,alt:``,className:`w-3.5 h-3.5 object-contain flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:t.label})]}):null})()]}),!c&&t&&(0,K.jsx)(h,{className:`w-4 h-4 text-bambu-green flex-shrink-0`})]}),v&&t&&(0,K.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,K.jsx)(`span`,{className:`text-xs text-bambu-gray`,"aria-hidden":`true`,children:`×`}),(0,K.jsx)(je,{min:1,max:999,value:l[e.index]??1,"aria-label":d(`queue.plateQuantityLabel`,{plate:e.name||d(`queue.plateNumber`,{index:e.index})}),onChange:t=>u(e.index,t),fallback:1,className:`w-14 px-1.5 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center focus:outline-none focus:ring-1 focus:ring-bambu-green`})]})]},e.index)})}),v&&y>r.size&&(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:d(`queue.plateQuantityTotal`,{count:y})})]})}var _t=new Set([`IDLE`,`FINISH`,`FAILED`]);function vt({printerResult:e,filamentReqs:t,onUpdateConfig:n}){let i=c(),{data:a}=ke(),[o,s]=(0,H.useState)(!1),l=(t,r)=>{if(t<=0)return;let i={...e.config.manualMappings};r===``?delete i[t]:i[t]=parseInt(r,10),n({useDefault:!1,manualMappings:i,autoConfigured:!1})},u=async()=>{s(!0);try{await r.refreshPrinterStatus(e.printerId),await new Promise(e=>setTimeout(e,500)),await i.refetchQueries({queryKey:[`printer-status`,e.printerId]})}finally{s(!1)}},d=t.map(t=>{let n=t.slot_id||0,r=e.config.manualMappings[n],i,o=!1;if(r!==void 0)i=e.loadedFilaments.find(e=>e.globalTrayId===r),o=!0;else{let n=new Set(Object.values(e.config.manualMappings));i=xe(t,e.loadedFilaments,n,ve(a?.prefer_lowest_filament,e.status?.ams_filament_backup),e.inventoryByTrayId)}let s=`mismatch`;if(i){let e=B(i.type,t.type),n=L(i.color)===L(t.color)||ye(i.color,t.color);e&&n?s=`match`:e&&(s=`type_only`)}return{req:t,loaded:i,status:s,isManual:o}});return(0,K.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,K.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Custom slot mapping`}),(0,K.jsxs)(`button`,{type:`button`,onClick:u,className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,disabled:o,children:[(0,K.jsx)(te,{className:`w-3 h-3 ${o?`animate-spin`:``}`}),(0,K.jsx)(`span`,{children:`Re-read`})]})]}),d.map(({req:t,loaded:n,status:r,isManual:i},a)=>(0,K.jsxs)(`div`,{className:`grid items-center gap-2 text-xs grid-cols-[16px_minmax(0,1fr)_16px] sm:grid-cols-[16px_minmax(70px,1fr)_auto_2fr_16px]`,children:[(0,K.jsx)(`span`,{title:`Required: ${t.type} - ${Ee(t.color)}`,children:(0,K.jsx)(Fe,{className:`w-3 h-3`,fill:t.color,stroke:t.color})}),(0,K.jsxs)(`span`,{className:`text-white flex items-center gap-1 min-w-0 col-span-2 sm:col-span-1`,children:[(0,K.jsx)(`span`,{className:`truncate min-w-0`,title:t.type,children:t.type}),(0,K.jsxs)(`span`,{className:`text-bambu-gray shrink-0 whitespace-nowrap`,children:[`(`,t.used_grams,`g)`]})]}),(0,K.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,K.jsxs)(`select`,{value:n?.globalTrayId??``,onChange:e=>l(t.slot_id||0,e.target.value),className:`flex-1 min-w-0 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary focus:outline-none focus:ring-1 focus:ring-bambu-green ${r===`match`?`border-bambu-green/50 text-bambu-green`:r===`type_only`?`border-yellow-500 dark:border-yellow-400/50 text-yellow-700 dark:text-yellow-400`:`border-orange-500 dark:border-orange-400/50 text-orange-700 dark:text-orange-400`} ${i?`ring-1 ring-blue-400/50`:``}`,title:i?`Manually selected`:`Auto-matched`,children:[(0,K.jsx)(`option`,{value:``,className:`bg-bambu-dark text-bambu-gray`,children:`-- Select slot --`}),R(e.loadedFilaments,t.nozzle_id).map(e=>(0,K.jsxs)(`option`,{value:e.globalTrayId,className:`bg-bambu-dark text-white`,children:[e.label,`: `,e.traySubBrands||e.type,` (`,e.colorName,`)`]},e.globalTrayId))]}),r===`match`?(0,K.jsx)(h,{className:`w-3 h-3 text-bambu-green`}):r===`type_only`?(0,K.jsx)(`span`,{title:`Same type, different color`,children:(0,K.jsx)(k,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`})}):(0,K.jsx)(`span`,{title:`Filament type not loaded`,children:(0,K.jsx)(k,{className:`w-3 h-3 text-orange-600 dark:text-orange-400`})})]},a))]})}function yt({printers:e,selectedPrinterIds:t,onMultiSelect:n,isLoading:i=!1,allowMultiple:a=!1,showInactive:o=!1,disableBusy:s=!1,printerMappingResults:c,filamentReqs:l,onAutoConfigurePrinter:u,onUpdatePrinterConfig:f,assignmentMode:p=`printer`,onAssignmentModeChange:m,targetModel:g,onTargetModelChange:_,targetLocation:y,onTargetLocationChange:b,slicedForModel:x}){let[S,C]=(0,H.useState)(!1),T=o?e:e.filter(e=>e.is_active),ee=d({queries:T.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>r.getPrinterStatus(e.id),staleTime:5e3}))}),ne=(0,H.useMemo)(()=>{let e=new Map;return T.forEach((t,n)=>{let r=ee[n];r?.data&&e.set(t.id,r.data)}),e},[T,ee]),re=e=>{let t=ne.get(e);return t?!t.connected||!_t.has(t.state??``):!1},D=e=>{let t=ne.get(e);if(!t)return null;if(!t.connected)return`Offline`;let n=t.state;return n?n===`RUNNING`?t.stg_cur_name||`Printing`:n===`PREPARE`?`Preparing`:n===`PAUSE`?`Paused`:n===`IDLE`?`Idle`:n===`FINISH`?`Finished`:n===`FAILED`?`Failed`:n:null},O=(0,H.useMemo)(()=>{if(p!==`printer`||!x||S)return T;let e=T.filter(e=>e.model===x);return e.length>0?e:T},[T,p,x,S]),j=T.length-O.length,ae=(0,H.useMemo)(()=>{let e=T.map(e=>e.model).filter(e=>!!e);return[...new Set(e)].sort()},[T]),M=(0,H.useMemo)(()=>{if(!g)return[];let e=T.filter(e=>e.model===g&&e.location).map(e=>e.location).filter(e=>!!e);return[...new Set(e)].sort()},[T,g]),oe=m&&_&&ae.length>0,se=a&&t.length>1&&c&&l?.filaments&&l.filaments.length>0&&u&&f;if(i)return(0,K.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,K.jsx)(w,{className:`w-6 h-6 text-bambu-green animate-spin`})});if(O.length===0)return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400 text-sm mb-4`,children:[(0,K.jsx)(v,{className:`w-4 h-4`}),`No `,o?``:`active `,`printers available`]});let ce=e=>{s&&re(e)||(a?t.includes(e)?n(t.filter(t=>t!==e)):n([...t,e]):n([e]))},le=()=>{n((s?O.filter(e=>!re(e.id)):O).map(e=>e.id))},ue=()=>{n([])},de=(e,t,n)=>{n.stopPropagation(),!(!u||!f)&&(t?u(e):f(e,{useDefault:!0,manualMappings:{},autoConfigured:!1}))},fe=e=>t.includes(e),N=t.length,P=e=>c?.find(t=>t.printerId===e);return(0,K.jsxs)(`div`,{className:`space-y-2 mb-6`,children:[oe&&(0,K.jsxs)(`div`,{className:`flex gap-2 mb-4`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{m(`printer`),_(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${p===`printer`?`border-bambu-green bg-bambu-green/10 text-white`:`border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray hover:border-bambu-gray`}`,children:[(0,K.jsx)(E,{className:`w-4 h-4`}),(0,K.jsx)(`span`,{className:`text-sm`,children:`Specific Printer`})]}),(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{m(`model`),n([]),_(x&&ae.includes(x)?x:null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${p===`model`?`border-bambu-green bg-bambu-green/10 text-white`:`border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray hover:border-bambu-gray`}`,children:[(0,K.jsx)(A,{className:`w-4 h-4`}),(0,K.jsxs)(`span`,{className:`text-sm`,children:[`Any `,(p===`model`?g:null)||x||`Model`]})]})]}),p===`model`&&oe&&(0,K.jsxs)(`div`,{className:`space-y-3 mb-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:[`Target Model`,x&&(0,K.jsxs)(`span`,{className:`ml-2 text-bambu-gray/70`,children:[`(sliced for `,x,`)`]})]}),(0,K.jsxs)(`select`,{value:g||``,onChange:e=>{_(e.target.value||null),b&&b(null)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,children:[(0,K.jsx)(`option`,{value:``,children:`Select a model...`}),ae.map(e=>{let t=Me(x,e);return(0,K.jsxs)(`option`,{value:e,disabled:!t,children:[e,t?``:` — incompatible with ${x} G-code`]},e)})]})]}),x&&g&&g!==x&&(Me(x,g)?(0,K.jsxs)(`div`,{className:`p-3 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg flex items-center gap-2`,children:[(0,K.jsx)(k,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,K.jsxs)(`span`,{className:`text-sm text-yellow-700 dark:text-yellow-400`,children:[`File was sliced for `,x,`, but will be dispatched to a `,g,` printer`]})]}):(0,K.jsxs)(`div`,{className:`p-3 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg flex items-center gap-2`,children:[(0,K.jsx)(v,{className:`w-4 h-4 text-red-600 dark:text-red-400 flex-shrink-0`}),(0,K.jsxs)(`span`,{className:`text-sm text-red-700 dark:text-red-400`,children:[`File was sliced for `,x,` and cannot be dispatched to `,g,` printers — select a compatible model`]})]})),g&&M.length>0&&b&&(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:`Location Filter (optional)`}),(0,K.jsxs)(`select`,{value:y||``,onChange:e=>b(e.target.value||null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,children:[(0,K.jsx)(`option`,{value:``,children:`Any location`}),M.map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))]})]}),g&&(0,K.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[`Scheduler will assign to first available idle `,g,` printer`,y?` in ${y}`:``]})]}),p===`printer`&&a&&O.length>1&&(0,K.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray mb-2`,children:[(0,K.jsx)(`span`,{children:N===0?`Select printers`:`${N} printer${N===1?``:`s`} selected`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[N<O.length&&(0,K.jsx)(`button`,{type:`button`,onClick:le,className:`text-bambu-green hover:text-bambu-green/80 transition-colors`,children:`Select all`}),N>0&&(0,K.jsx)(`button`,{type:`button`,onClick:ue,className:`text-bambu-gray hover:text-white transition-colors`,children:`Clear`})]})]}),p===`printer`&&O.map(e=>{let t=fe(e.id),n=P(e.id),r=n&&!n.config.useDefault,i=re(e.id),o=s&&i,c=D(e.id);return(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>ce(e.id),disabled:o,className:`w-full flex items-center gap-3 p-3 rounded-lg border transition-colors ${o?`border-bambu-dark-tertiary bg-bambu-dark opacity-50 cursor-not-allowed`:t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`} ${e.is_active?``:`opacity-60`}`,children:[(0,K.jsx)(`div`,{className:`p-2 rounded-lg ${o?`bg-bambu-dark-tertiary`:t?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,K.jsx)(E,{className:`w-5 h-5 ${o?`text-bambu-gray/50`:t?`text-bambu-green`:`text-bambu-gray`}`})}),(0,K.jsxs)(`div`,{className:`text-left flex-1`,children:[(0,K.jsxs)(`p`,{className:`font-medium ${o?`text-bambu-gray`:`text-white`}`,children:[e.name,!e.is_active&&(0,K.jsx)(`span`,{className:`text-bambu-gray text-xs ml-2`,children:`(inactive)`})]}),(0,K.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[e.model||`Unknown model`,` • `,e.ip_address]})]}),c&&(0,K.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full ${i?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`bg-bambu-green/20 text-bambu-green`}`,children:c}),a&&(0,K.jsx)(`div`,{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-colors ${o?`border-bambu-gray/30`:t?`bg-bambu-green border-bambu-green`:`border-bambu-gray/50`}`,children:t&&(0,K.jsx)(h,{className:`w-3 h-3 text-white`})})]}),t&&se&&n&&(0,K.jsxs)(`div`,{className:`ml-4 mt-2 mb-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,onClick:e=>e.stopPropagation(),children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:r,onChange:t=>de(e.id,t.target.checked,t),className:`w-3.5 h-3.5 rounded border-bambu-gray/30 bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,K.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Custom mapping`})]}),(0,K.jsxs)(`span`,{className:`text-xs ml-2 ${n.matchStatus===`full`?`text-bambu-green`:n.matchStatus===`partial`?`text-yellow-700 dark:text-yellow-400`:`text-orange-700 dark:text-orange-400`}`,children:[`(`,n.exactMatches,`/`,n.totalSlots,` matched)`]}),n.isLoading&&(0,K.jsx)(te,{className:`w-3 h-3 text-bambu-gray animate-spin`}),r&&(0,K.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),u(e.id)},className:`ml-auto flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,children:[(0,K.jsx)(ie,{className:`w-3 h-3`}),`Auto`]})]}),r&&(0,K.jsx)(vt,{printerResult:n,filamentReqs:l.filaments,onUpdateConfig:t=>f(e.id,t)})]})]},e.id)}),p===`printer`&&j>0&&!S&&(0,K.jsxs)(`button`,{type:`button`,onClick:()=>C(!0),className:`text-xs text-bambu-gray hover:text-white transition-colors mt-2 flex items-center gap-1`,children:[(0,K.jsx)(k,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`}),j,` other printer`,j>1?`s`:``,` hidden (different model) —`,(0,K.jsx)(`span`,{className:`underline`,children:`show all`})]}),p===`printer`&&S&&x&&(0,K.jsx)(`button`,{type:`button`,onClick:()=>C(!1),className:`text-xs text-bambu-gray hover:text-white transition-colors mt-2`,children:(0,K.jsxs)(`span`,{className:`underline`,children:[`Show only `,x,` printers`]})}),p===`printer`&&N===0&&(0,K.jsxs)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1 flex items-center gap-1`,children:[(0,K.jsx)(v,{className:`w-3 h-3`}),`Select at least one printer`]}),p===`model`&&!g&&(0,K.jsxs)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1 flex items-center gap-1`,children:[(0,K.jsx)(v,{className:`w-3 h-3`}),`Select a target printer model`]})]})}var q=[`off`,`auto`,`on`],J={off:`bg-red-500 text-white`,auto:`bg-blue-500 text-white`,on:`bg-bambu-green text-white`},bt=`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`,xt=[`off`,`on`];function St({options:e,onChange:t,defaultExpanded:r=!1,showDualNozzleOptions:i=!1}){let{t:a}=n(),[o,s]=(0,H.useState)(r),c=[{key:`bed_levelling`,label:a(`settings.defaultBedLevelling`),desc:a(`settings.defaultBedLevellingDesc`),tristate:!0},{key:`flow_cali`,label:a(`settings.defaultFlowCali`),desc:a(`settings.defaultFlowCaliDesc`),tristate:!0},{key:`vibration_cali`,label:a(`settings.defaultVibrationCali`),desc:a(`settings.defaultVibrationCaliDesc`)},{key:`layer_inspect`,label:a(`settings.defaultLayerInspect`),desc:a(`settings.defaultLayerInspectDesc`)},{key:`timelapse`,label:a(`settings.defaultTimelapse`),desc:a(`settings.defaultTimelapseDesc`)},{key:`nozzle_offset_cali`,label:a(`settings.defaultNozzleOffsetCali`),desc:a(`settings.defaultNozzleOffsetCaliDesc`),dualNozzleOnly:!0,tristate:!0},{key:`confirm_outcome`,label:a(`settings.defaultConfirmOutcome`),desc:a(`settings.defaultConfirmOutcomeDesc`)}].filter(e=>!e.dualNozzleOnly||i),l=(n,r)=>{t({...e,[n]:r})},u=(n,r)=>{t({...e,[n]:r})},d=n=>{t({...e,preheat_override:n,...n===`off`?{preheat_chamber_target_override:null}:{}})},f=n=>{if(n===``){t({...e,preheat_chamber_target_override:null});return}let r=parseInt(n,10);Number.isNaN(r)||t({...e,preheat_chamber_target_override:Math.max(0,Math.min(65,r))})};return(0,K.jsxs)(`div`,{className:`mb-4`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>s(!o),className:`flex items-center gap-2 text-sm text-bambu-gray hover:text-white transition-colors w-full`,children:[(0,K.jsx)(re,{className:`w-4 h-4`}),(0,K.jsx)(`span`,{children:a(`queue.bulkEdit.printOptions`)}),o?(0,K.jsx)(_,{className:`w-4 h-4 ml-auto`}):(0,K.jsx)(g,{className:`w-4 h-4 ml-auto`})]}),o&&(0,K.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[c.map(({key:t,label:n,desc:r,tristate:i})=>i?(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`text-sm text-white`,children:n}),(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r})]}),(0,K.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:q.map(n=>(0,K.jsx)(`button`,{type:`button`,onClick:()=>u(t,n),className:`px-2.5 py-1 text-xs rounded transition-colors ${e[t]===n?J[n]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:a(`settings.calibrationMode_${n}`)},n))})]},t):(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`text-sm text-white`,children:n}),(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r})]}),(0,K.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:xt.map(n=>(0,K.jsx)(`button`,{type:`button`,onClick:()=>l(t,n===`on`),className:`px-2.5 py-1 text-xs rounded transition-colors ${(e[t]?`on`:`off`)===n?J[n]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:a(`settings.calibrationMode_${n}`)},n))})]},t)),(0,K.jsxs)(`div`,{className:`pt-2 mt-1 border-t border-bambu-dark-tertiary/60`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,K.jsx)(S,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400`}),(0,K.jsx)(`span`,{className:`text-sm text-white`,children:a(`settings.preheatTitle`,`Preheat & Heat Soak`)})]}),(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:a(`settings.preheatPerItemDesc`,`Heat the bed and chamber before this print starts. Defaults to the global Settings → Workflow toggle.`)}),(0,K.jsx)(`div`,{className:`flex gap-1.5 mb-2`,children:[`inherit`,`on`,`off`].map(t=>(0,K.jsx)(`button`,{type:`button`,onClick:()=>d(t),className:`flex-1 px-2 py-1.5 text-xs rounded transition-colors ${e.preheat_override===t?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:a(`settings.preheatOverride_${t}`,t===`inherit`?`Inherit`:t===`on`?`On`:`Off`)},t))}),e.preheat_override!==`off`&&(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`label`,{className:`text-xs text-bambu-gray flex-1`,children:a(`settings.preheatTargetOverride`,`Chamber target override (°C, blank = filament default)`)}),(0,K.jsx)(`input`,{type:`number`,min:0,max:65,step:1,value:e.preheat_chamber_target_override??``,onChange:e=>f(e.target.value),placeholder:`—`,className:`w-16 px-2 py-1 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-white text-xs text-right focus:outline-none focus:border-bambu-green`})]}),e.preheat_override!==`off`&&(0,K.jsx)(`p`,{className:`text-[11px] text-bambu-gray mt-1`,children:a(`settings.preheatTargetOverrideHelp`,`0 heats the bed and runs the soak without the chamber. Leave blank and a print with no chamber requirement skips preheat entirely.`)})]})]})]})}function Ct({options:e,onChange:t,dateFormat:r=`system`,timeFormat:i=`system`,canControlPrinter:a=!0,showStagger:o=!1,printerCount:s=0,hasGcodeSnippets:c=!1,needsReview:l=!1}){let{t:u}=n(),[d,f]=(0,H.useState)(``),[p,h]=(0,H.useState)(``),[g,_]=(0,H.useState)(!0),[v,y]=(0,H.useState)(!0),S=(0,H.useRef)(null),w=(0,H.useRef)(!1);(0,H.useEffect)(()=>{if(e.scheduleType!==`scheduled`){w.current=!1;return}if(!w.current){w.current=!0;let n;e.scheduledTime?(n=new Date(e.scheduledTime),isNaN(n.getTime())&&(n=new Date,n.setHours(n.getHours()+1,0,0,0))):(n=new Date,n.setHours(n.getHours()+1,0,0,0),t({...e,scheduledTime:me(n)})),f(F(n,r)),h(ue(n,i)),_(!0),y(!0)}},[e.scheduleType,e.scheduledTime,r,i,t,e]);let T=n=>{t({...e,scheduleType:n,requireManualStart:n===`queue`&&e.requireManualStart})},ee=(n,i)=>{let a=de(n,r),o=le(i);_(!!a),y(!!o),a&&o&&(a.setHours(o.hours,o.minutes,0,0),a>new Date&&t({...e,scheduledTime:me(a)}))},E=e=>{f(e),ee(e,p)},te=e=>{h(e),ee(d,e)};return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:u(`printModal.whenToPrint`)}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`asap`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>T(`asap`),children:[(0,K.jsx)(b,{className:`w-4 h-4`}),u(`printModal.asap`)]}),(0,K.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`queue`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>T(`queue`),children:[(0,K.jsx)(V,{className:`w-4 h-4`}),u(`printModal.queue`)]}),(0,K.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`scheduled`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>T(`scheduled`),children:[(0,K.jsx)(m,{className:`w-4 h-4`}),u(`printModal.schedule`)]})]})]}),e.scheduleType===`scheduled`&&(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:u(`printModal.dateTime`)}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(`div`,{className:`flex-1 relative`,children:[(0,K.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 pr-10 bg-bambu-dark border rounded-lg text-white focus:outline-none ${g?`border-bambu-dark-tertiary focus:border-bambu-green`:`border-red-500`}`,value:d,onChange:e=>E(e.target.value),placeholder:P(r)}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>{S.current?.showPicker()},className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,title:u(`printModal.openCalendar`),children:(0,K.jsx)(m,{className:`w-4 h-4`})}),(0,K.jsx)(`input`,{ref:S,type:`datetime-local`,className:`absolute top-0 left-0 w-0 h-0 opacity-0 pointer-events-none`,value:e.scheduledTime,onChange:n=>{let a=n.target.value;if(a){let n=new Date(a);isNaN(n.getTime())||(f(F(n,r)),h(ue(n,i)),_(!0),y(!0),t({...e,scheduledTime:a}))}},tabIndex:-1})]}),(0,K.jsx)(`div`,{className:`w-32`,children:(0,K.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border rounded-lg text-white focus:outline-none ${v?`border-bambu-dark-tertiary focus:border-bambu-green`:`border-red-500`}`,value:p,onChange:e=>te(e.target.value),placeholder:fe(i)})})]}),(!g||!v)&&(0,K.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:u(`printModal.invalidDateTime`)})]}),l&&(0,K.jsxs)(`p`,{className:`flex items-start gap-1.5 text-sm text-bambu-gray`,children:[(0,K.jsx)(Ie,{className:`w-3.5 h-3.5 mt-0.5 flex-shrink-0`}),u(`printModal.awaitingReviewNote`)]}),!l&&e.scheduleType===`queue`&&(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`checkbox`,id:`requireManualStart`,checked:e.requireManualStart,onChange:n=>t({...e,requireManualStart:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,K.jsxs)(`label`,{htmlFor:`requireManualStart`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,K.jsx)(Ie,{className:`w-3.5 h-3.5`}),u(`printModal.requireManualStart`)]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`checkbox`,id:`requirePrevious`,checked:e.requirePreviousSuccess,onChange:n=>t({...e,requirePreviousSuccess:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,K.jsx)(`label`,{htmlFor:`requirePrevious`,className:`text-sm text-bambu-gray`,children:u(`printModal.requirePreviousSuccess`)})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`checkbox`,id:`autoOffAfter`,checked:e.autoOffAfter,onChange:n=>t({...e,autoOffAfter:n.target.checked}),disabled:!a,className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green disabled:opacity-50`}),(0,K.jsxs)(`label`,{htmlFor:`autoOffAfter`,className:`text-sm flex items-center gap-1 ${a?`text-bambu-gray`:`text-bambu-gray/50`}`,children:[(0,K.jsx)(Le,{className:`w-3.5 h-3.5`}),u(`printModal.autoOffAfter`)]})]}),c&&(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`checkbox`,id:`gcodeInjection`,checked:e.gcodeInjection,onChange:n=>t({...e,gcodeInjection:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,K.jsxs)(`label`,{htmlFor:`gcodeInjection`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,K.jsx)(x,{className:`w-3.5 h-3.5`}),u(`printModal.gcodeInjection`,`Inject auto-print G-code`)]})]}),o&&e.scheduleType!==`queue`&&(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`checkbox`,id:`staggerEnabled`,checked:e.staggerEnabled,onChange:n=>t({...e,staggerEnabled:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,K.jsxs)(`label`,{htmlFor:`staggerEnabled`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,K.jsx)(C,{className:`w-3.5 h-3.5`}),u(`printModal.staggerPrinterStarts`,`Stagger printer starts`)]})]}),e.staggerEnabled&&(0,K.jsxs)(`div`,{className:`ml-6 space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:u(`printModal.staggerGroupSize`,`Group size`)}),(0,K.jsx)(je,{min:1,max:s,value:e.staggerGroupSize,onChange:n=>t({...e,staggerGroupSize:n}),fallback:1,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]}),(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:u(`printModal.staggerInterval`,`Interval (min)`)}),(0,K.jsx)(je,{min:1,max:60,value:e.staggerIntervalMinutes,onChange:n=>t({...e,staggerIntervalMinutes:n}),fallback:1,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]})]}),s>0&&(()=>{let t=Math.ceil(s/e.staggerGroupSize),n=s%e.staggerGroupSize,r=(t-1)*e.staggerIntervalMinutes;return(0,K.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[u(`printModal.staggerPreview`,`{{printers}} printers → {{groups}} groups of {{size}}, starting every {{interval}} min`,{printers:s,groups:t,size:e.staggerGroupSize,interval:e.staggerIntervalMinutes}),n!==0&&e.staggerGroupSize<s?` (${u(`printModal.staggerLastGroup`,`last group: {{count}}`,{count:n})})`:``,t>1?` (${u(`printModal.staggerTotal`,`total: {{minutes}} min`,{minutes:r})})`:``]})})()]})]}),(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.scheduleType===`asap`?u(`printModal.helpAsap`):e.scheduleType===`scheduled`?u(`printModal.helpSchedule`):u(`printModal.helpQueue`)})]})}function wt({candidates:e,onReorder:t,plateByFile:i,onPlateChange:a,readOnly:o=!1,readOnlyNote:s}){let{t:c}=n(),l=d({queries:o?[]:e.map(e=>({queryKey:[`library-file-plates`,e.id],queryFn:()=>r.getLibraryFilePlates(e.id),staleTime:6e4}))}),u=(0,H.useMemo)(()=>{let t={};return e.forEach((e,n)=>{let r=l[n]?.data;r?.is_multi_plate&&r.plates.length>1&&(t[e.id]=r.plates.map(e=>({index:e.index,name:e.name})))}),t},[e,l]);(0,H.useEffect)(()=>{if(!o)for(let[e,t]of Object.entries(u)){let n=Number(e);i[n]==null&&t.length>0&&a(n,t[0].index)}},[u,i,a,o]);let m=(n,r)=>{if(r<0||r>=e.length)return;let i=[...e],[a]=i.splice(n,1);i.splice(r,0,a),t(i)};return(0,K.jsxs)(`div`,{className:`mb-4`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,K.jsx)(E,{className:`w-4 h-4 text-bambu-gray`}),(0,K.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:c(`printModal.variants.title`)})]}),(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:o?s??c(`printModal.variants.help`):c(`printModal.variants.help`)}),(0,K.jsx)(`div`,{className:`space-y-2`,children:e.map((t,n)=>{let r=u[t.id],s=t.sliced_for_model;return(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-bambu-dark-tertiary p-2`,children:[(0,K.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray w-5 shrink-0`,children:[n+1,`.`]}),(0,K.jsx)(`span`,{className:`px-2 py-0.5 rounded-full bg-bambu-green/10 text-bambu-green text-xs shrink-0`,children:s||c(`printModal.variants.unknownModel`)}),(0,K.jsx)(`span`,{className:`text-sm text-white truncate min-w-0 flex-1`,title:t.filename,children:t.filename}),r&&(0,K.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-bambu-gray shrink-0`,children:[(0,K.jsx)(C,{className:`w-3 h-3`}),(0,K.jsx)(`select`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-1 py-0.5 text-xs text-white`,value:i[t.id]??r[0].index,onChange:e=>a(t.id,Number(e.target.value)),"aria-label":c(`printModal.variants.plateFor`,{filename:t.filename}),children:r.map(e=>(0,K.jsx)(`option`,{value:e.index,children:e.name||c(`printModal.plateN`,{n:e.index})},e.index))})]}),!o&&(0,K.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>m(n,n-1),disabled:n===0,className:`p-1 rounded text-bambu-gray hover:text-white disabled:opacity-30`,"aria-label":c(`printModal.variants.moveUp`),children:(0,K.jsx)(p,{className:`w-3.5 h-3.5`})}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>m(n,n+1),disabled:n===e.length-1,className:`p-1 rounded text-bambu-gray hover:text-white disabled:opacity-30`,"aria-label":c(`printModal.variants.moveDown`),children:(0,K.jsx)(f,{className:`w-3.5 h-3.5`})})]})]},t.id)})})]})}function Tt({costCenters:e,selectedCostCenterId:t,onChange:r}){let{t:i}=n();if(e.length===0)return null;let a=e.find(e=>e.id===t);return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{htmlFor:`printCostCenter`,className:`text-sm text-bambu-gray`,children:i(`printModal.costCenter`,`Cost center`)}),(0,K.jsx)(`select`,{id:`printCostCenter`,value:t??``,onChange:e=>r(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`,children:e.map(e=>(0,K.jsxs)(`option`,{value:e.id,children:[e.name,e.is_private?` (${i(`printModal.personalDefault`,`Personal`)})`:``]},e.id))}),a?.budget_mode===`none`&&(0,K.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`printModal.unlimitedNoBudget`,`Unlimited – no budget limit is set.`)})]})}var Y={bed_levelling:`auto`,flow_cali:`auto`,vibration_cali:!0,layer_inspect:!1,timelapse:!1,nozzle_offset_cali:`auto`,confirm_outcome:!1,preheat_override:`inherit`,preheat_chamber_target_override:null},Et={scheduleType:`asap`,scheduledTime:``,requireManualStart:!1,requirePreviousSuccess:!1,autoOffAfter:!1,gcodeInjection:!1,staggerEnabled:!1,staggerGroupSize:2,staggerIntervalMinutes:5};function Dt(e,t){let n=e=>(e||``).replace(`#`,``).toLowerCase().slice(0,6);return(e.type||``).toUpperCase()===(t.type||``).toUpperCase()&&n(e.color)===n(t.color)}function Ot(e,t){let n=e=>{let n=t[e.slot_id];return!!n&&!Dt(n,e)};return!e?.filaments||!e.filaments.some(n)?e:{...e,filaments:e.filaments.map(e=>n(e)?{...e,type:t[e.slot_id].type,color:t[e.slot_id].color,tray_info_idx:``}:e)}}function kt({mode:e,archiveId:t,libraryFileId:i,archiveName:a,queueItem:o,initialSelectedPrinterIds:s,preselectPlateId:f,onClose:p,onSuccess:m,projectId:h,cleanupLibraryAfterDispatch:g,variantFiles:_}){let{t:b}=n(),x=c(),{showToast:S}=y(),{hasPermission:T,hasAnyPermission:te,user:ne}=ae(),re=!te(`queue:start_unreviewed`,`queue:update_all`),D=!!i&&!t,O=e===`edit-queue-item`,A=e===`create`&&(_?.length??0)>1,ie=e===`edit-queue-item`&&(o?.variants?.length??0)>1?o.variants.map(e=>({id:e.library_file_id,filename:e.filename,sliced_for_model:e.target_model})):[],le=ie.length>0,[ue,de]=(0,H.useState)(_??[]),[fe,N]=(0,H.useState)({}),[P,F]=(0,H.useState)(()=>e===`edit-queue-item`&&o?.printer_id?[o.printer_id]:s?.length?s:[]),[I,L]=(0,H.useState)(()=>e===`edit-queue-item`&&o?.plate_id!=null?new Set([o.plate_id]):e===`create`&&!A&&f!=null?new Set([f]):new Set),R=I.size===1?[...I][0]:null,[ge,_e]=(0,H.useState)(1),[ye,be]=(0,H.useState)({}),[xe,Se]=(0,H.useState)(()=>e===`edit-queue-item`&&o?{bed_levelling:o.bed_levelling??Y.bed_levelling,flow_cali:o.flow_cali??Y.flow_cali,vibration_cali:o.vibration_cali??Y.vibration_cali,layer_inspect:o.layer_inspect??Y.layer_inspect,timelapse:o.timelapse??Y.timelapse,nozzle_offset_cali:o.nozzle_offset_cali??Y.nozzle_offset_cali,confirm_outcome:o.confirm_outcome??Y.confirm_outcome,preheat_override:o.preheat_override??Y.preheat_override,preheat_chamber_target_override:o.preheat_chamber_target_override??Y.preheat_chamber_target_override}:Y),[z,Ce]=(0,H.useState)(()=>{if(e===`edit-queue-item`&&o){let e=`queue`;o.scheduled_time&&!he(o.scheduled_time)&&(e=`scheduled`);let t=``;return o.scheduled_time&&!he(o.scheduled_time)&&(t=me(pe(o.scheduled_time)??new Date)),{scheduleType:e,scheduledTime:t,requireManualStart:o.manual_start,requirePreviousSuccess:o.require_previous_success,autoOffAfter:o.auto_off_after,gcodeInjection:o.gcode_injection??!1,staggerEnabled:!1,staggerGroupSize:Et.staggerGroupSize,staggerIntervalMinutes:Et.staggerIntervalMinutes}}return Et}),[we,Te]=(0,H.useState)(()=>{if(e===`edit-queue-item`&&o?.ams_mapping&&Array.isArray(o.ams_mapping)){let e={};return o.ams_mapping.forEach((t,n)=>{t!==-1&&(e[n+1]=t)}),e}return{}}),[De,Pe]=(0,H.useState)(()=>e===`edit-queue-item`?o?.printer_id??null:null),[Fe,Ie]=(0,H.useState)({}),[V,Le]=(0,H.useState)(()=>A||e===`edit-queue-item`&&o?.target_model?`model`:`printer`),[U,Be]=(0,H.useState)(()=>e===`edit-queue-item`&&o?.target_model?o.target_model:null),[Ve,He]=(0,H.useState)(()=>e===`edit-queue-item`&&o?.target_location?o.target_location:null),[W,Ke]=(0,H.useState)(()=>e===`edit-queue-item`?o?.cost_center_id??null:null),[qe,Ye]=(0,H.useState)(o?.estimated_cost??null),[Qe,G]=(0,H.useState)({}),[$e,nt]=(0,H.useState)(()=>{if(e===`edit-queue-item`&&o?.filament_overrides){let e={};for(let t of o.filament_overrides)e[t.slot_id]={type:t.type,color:t.color};return e}return{}}),[rt,it]=(0,H.useState)(()=>{if(e===`edit-queue-item`&&o?.filament_overrides){let e={};for(let t of o.filament_overrides)e[t.slot_id]=t.force_color_match===!0;return e}return{}}),[at]=(0,H.useState)(()=>e===`edit-queue-item`&&o?.printer_id?[o.printer_id]:[]),[ot]=(0,H.useState)(()=>e===`edit-queue-item`&&o?o.plate_id:null),[st,ct]=(0,H.useState)(!1),[lt,ut]=(0,H.useState)({current:0,total:0}),[dt,ft]=(0,H.useState)(null),[pt,_t]=(0,H.useState)(new Set),vt=P.length,q=P.length>0?P[0]:null,{data:J}=ke(),bt=(0,H.useRef)(!1);(0,H.useEffect)(()=>{!J||bt.current||e===`edit-queue-item`||(bt.current=!0,Se({bed_levelling:J.default_bed_levelling??Y.bed_levelling,flow_cali:J.default_flow_cali??Y.flow_cali,vibration_cali:J.default_vibration_cali??Y.vibration_cali,layer_inspect:J.default_layer_inspect??Y.layer_inspect,timelapse:J.default_timelapse??Y.timelapse,nozzle_offset_cali:J.default_nozzle_offset_cali??Y.nozzle_offset_cali,confirm_outcome:J.default_confirm_outcome??Y.confirm_outcome,preheat_override:Y.preheat_override,preheat_chamber_target_override:Y.preheat_chamber_target_override}))},[J,e]);let xt=(0,H.useRef)(!1);(0,H.useEffect)(()=>{!J||xt.current||e===`edit-queue-item`||(xt.current=!0,Ce(e=>({...e,staggerGroupSize:J.stagger_group_size??e.staggerGroupSize,staggerIntervalMinutes:J.stagger_interval_minutes??e.staggerIntervalMinutes})))},[J,e]);let kt=Oe(J?.currency||`USD`),At=J?.default_filament_cost??0,X=J?.billing_enabled===!0,{data:Z,isLoading:jt}=l({queryKey:[`printers`],queryFn:r.getPrinters}),{data:Mt,isLoading:Nt}=l({queryKey:[`finance`,`cost-centers`,`mine`],queryFn:r.getMyCostCenters,enabled:!!ne&&X}),Pt=(0,H.useMemo)(()=>(Mt||[]).filter(e=>e.can_print&&e.is_active),[Mt]),Ft=(0,H.useMemo)(()=>Pt.find(e=>e.id===W)??null,[Pt,W]);(0,H.useEffect)(()=>{if(Pt.length===0||W!=null&&Pt.some(e=>e.id===W))return;let e=Pt.find(e=>e.is_private);Ke(e?.id??Pt[0].id)},[Pt,W]);let It=d({queries:P.map(e=>({queryKey:[`printer-inventory-remain`,e],queryFn:()=>r.getInventoryRemain(e),staleTime:30*1e3,refetchOnMount:`always`,enabled:P.length>0}))}),Lt=(0,H.useMemo)(()=>{let e=new Map;return P.forEach((t,n)=>{let r=It[n]?.data?.inventory_remain_g;if(!r)return;let i=new Map;Object.entries(r).forEach(([e,t])=>{let n=Number(e);Number.isNaN(n)||i.set(n,t)}),e.set(t,i)}),e},[P,It]),Rt=(0,H.useMemo)(()=>{let e=new Map;return P.forEach((t,n)=>{let r=It[n]?.data?.slot_materials;if(!r)return;let i=new Map;r.forEach(e=>i.set(e.global_tray_id,e)),e.set(t,i)}),e},[P,It]),{data:zt,isError:Bt}=l({queryKey:[`archive`,t],queryFn:()=>r.getArchive(t),enabled:!!t&&!D}),{data:Vt,isError:Ht}=l({queryKey:[`library-file`,i],queryFn:()=>r.getLibraryFile(i),enabled:D&&!!i}),Q=zt?.sliced_for_model||Vt?.sliced_for_model||null,Ut=!!t&&!D&&!zt&&!Bt||D&&!Vt&&!Ht,Wt=(0,H.useMemo)(()=>D?void 0:tt(zt?.extra_data,q),[D,zt?.extra_data,q]),{data:Gt,isError:Kt}=l({queryKey:[`archive-plates`,t],queryFn:()=>r.getArchivePlates(t),enabled:!!t&&!D,retry:!1}),{data:qt}=l({queryKey:[`library-file-plates`,i],queryFn:()=>r.getLibraryFilePlates(i),enabled:D&&!!i}),Jt=D?qt:Gt,{data:Yt,isError:Xt}=l({queryKey:[`archive-filaments`,t,R],queryFn:()=>r.getArchiveFilamentRequirements(t,R??void 0),enabled:!!t&&!D&&(R!==null||!Jt?.is_multi_plate),retry:!1}),{data:Zt}=l({queryKey:[`library-file-filaments`,i,R],queryFn:()=>r.getLibraryFileFilamentRequirements(i,R??void 0),enabled:D&&!!i&&(R!==null||!Jt?.is_multi_plate)}),Qt=!D&&(Kt||Xt),$t=D?Zt:Yt,en=(0,H.useMemo)(()=>Ot($t,$e),[$t,$e]),tn=Xe(),{data:nn}=l({queryKey:[`available-filaments`,U,Ve],queryFn:()=>r.getAvailableFilaments(U,Ve??void 0),enabled:V===`model`&&!!U}),rn=(0,H.useMemo)(()=>Array.from(new Set(ue.map(e=>e.sliced_for_model).filter(e=>!!e))),[ue]),an=d({queries:A?rn.map(e=>({queryKey:[`available-filaments`,e,Ve],queryFn:()=>r.getAvailableFilaments(e,Ve??void 0)})):[]}),on=(0,H.useMemo)(()=>{let e=new Set,t=[];for(let n of an)for(let r of n.data??[]){let n=`${r.type}|${r.color}|${r.tray_info_idx}`;e.has(n)||(e.add(n),t.push(r))}return t},[an]),sn=A?on:nn,{data:cn,isLoading:ln}=l({queryKey:[`printer-status`,q],queryFn:()=>r.getPrinterStatus(q),enabled:!!q}),un=ve(J?.prefer_lowest_filament,cn?.ams_filament_backup),dn=async()=>{if(z.scheduleType!==`asap`||V!==`printer`||P.length===0)return!1;try{return(await Promise.all(P.map(e=>x.fetchQuery({queryKey:[`printer-status`,e],queryFn:()=>r.getPrinterStatus(e),staleTime:0})))).some(e=>!Ne(e))}catch{return!0}},{amsMapping:fn}=Ge(en,cn,we,un,q?Lt.get(q):void 0),pn=(0,H.useMemo)(()=>[...I].sort((e,t)=>e-t),[I]),$=I.size>1,mn=d({queries:($?pn:[]).map(e=>({queryKey:D?[`library-file-filaments`,i,e]:[`archive-filaments`,t,e],queryFn:()=>D?r.getLibraryFileFilamentRequirements(i,e):r.getArchiveFilamentRequirements(t,e),enabled:D?!!i:!!t,retry:!1}))}),hn=mn.some(e=>e.isPending),gn=mn.some(e=>e.isError),_n=(0,H.useMemo)(()=>{let e=new Map;return pn.forEach((t,n)=>{let r=mn[n]?.data;r&&e.set(t,r)}),e},[pn,mn.map(e=>e.dataUpdatedAt).join(`|`)]),vn=(0,H.useMemo)(()=>{let e=new Map;for(let[t,n]of _n)e.set(t,Ot(n,$e)??n);return e},[_n,$e]),[yn,bn]=(0,H.useState)({}),[xn,Sn]=(0,H.useState)(()=>{if(e===`edit-queue-item`&&o?.nozzle_rack_choice){let e={};for(let[t,n]of Object.entries(o.nozzle_rack_choice)){let r=Number(t);Number.isInteger(r)&&Number.isInteger(n)&&(e[r]=n)}return e}return{}}),[Cn,wn]=(0,H.useState)({}),Tn=(0,H.useMemo)(()=>{let e=new Map;if(!$||!q||P.length!==1)return e;let t=ze(cn),n=cn?.fila_switch?.installed===!0,r=Lt.get(q);for(let i of pn){let a=vn.get(i);if(!a)continue;let o=Ue(a,t,yn[i]??{},un,r,n);e.set(i,We(o))}return e},[$,q,cn,Lt,pn,vn,yn,un,P.length]),En=Je(P,Z,en,we,Fe,Ie,J?.prefer_lowest_filament,Lt,De);(0,H.useEffect)(()=>{let e=Jt?.plates;e?.length&&L(t=>{let n=[...t].filter(t=>e.some(e=>e.index===t));return n.length>0&&n.length===t.size?t:new Set(n.length>0?n:[e[0].index])})},[Jt,I.size]),(0,H.useEffect)(()=>{if(!A||!i)return;let e=fe[i];e!=null&&L(t=>t.size===1&&t.has(e)?t:new Set([e]))},[A,i,fe]);let Dn=(0,H.useRef)(!1);(0,H.useEffect)(()=>{if(e===`edit-queue-item`)return;if(P.length>0){Dn.current=!0;return}let t=Z?.filter(e=>e.is_active)||[],n=J?.default_printer_id,r=n!=null&&!A&&V===`printer`&&!Ut?t.find(e=>e.id===n&&(!Q||e.model===Q)):void 0;r&&!Dn.current?(Dn.current=!0,F([r.id])):t.length===1&&F([t[0].id])},[e,Z,P.length,J?.default_printer_id,A,V,Q,Ut]),(0,H.useEffect)(()=>{if(e===`edit-queue-item`){let e=JSON.stringify(P.sort())!==JSON.stringify(at.sort());(e||R!==ot)&&(Te({}),bn({}),Ie({}),_t(new Set)),e&&(Sn({}),wn({}))}else Te({}),bn({}),Ie({}),_t(new Set)},[e,P,R,at,ot]);let[On,kn]=(0,H.useState)(U),[An,jn]=(0,H.useState)(R);(0,H.useEffect)(()=>{let t=U!==null&&U!==On,n=R!==An;!t&&!n||(t&&kn(U),n&&jn(R),!(t&&!n&&On===null)&&(e!==`edit-queue-item`||On!==null)&&(nt({}),it({})))},[U,R,On,An,e]),(0,H.useEffect)(()=>{V!==`model`||U||!Q||Z?.some(e=>e.is_active&&e.model===Q)&&Be(Q)},[V,U,Q,Z]),(0,H.useEffect)(()=>{if(!J?.per_printer_mapping_expanded||P.length<=1)return;let e=P.filter(e=>{if(pt.has(e))return!1;let t=En.printerResults.find(t=>t.printerId===e);return t&&t.status&&!t.isLoading});e.length>0&&(_t(t=>{let n=new Set(t);return e.forEach(e=>n.add(e)),n}),e.forEach(e=>{En.autoConfigurePrinter(e)}))},[J?.per_printer_mapping_expanded,P,pt,En]),(0,H.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!st&&p()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[p,st]);let Mn=Jt?.is_multi_plate??!1,Nn=Jt?.plates??[],Pn=!A&&Mn&&Nn.length>1?Nn.filter(e=>I.has(e.index)).map(e=>{let t=b(`printModal.plateN`,`Plate {{n}}`,{n:e.index}),n=e.name?.trim();return n&&n!==t?`${t} – ${n}`:t}).join(`, `):``,Fn=(0,H.useMemo)(()=>{if(!dt||dt.length===0)return``;let e=dt.map(e=>e.pooled?b(`printModal.insufficientFilamentLinePooled`,{printer:e.printerName,slot:e.slotLabel,required:Math.round(e.requiredGrams),remaining:Math.round(e.remainingGrams)}):b(`printModal.insufficientFilamentLine`,{printer:e.printerName,slot:e.slotLabel,required:Math.round(e.requiredGrams),remaining:Math.round(e.remainingGrams)}));return[b(`printModal.insufficientFilamentMessage`),...e].join(`
- `)},[dt,b]),In=u({mutationFn:e=>r.addToQueue(e)}),Ln=u({mutationFn:e=>r.updateQueueItem(o.id,e)}),Rn=(e,t)=>$?t===null||P.length!==1?void 0:Tn.get(t):P.length>1||De!==null&&De!==e?En.getFinalMapping(e):fn,zn=(t,n,r)=>{if(!(e!==`edit-queue-item`||!Array.isArray(o?.ams_mapping))&&!(t!==o.printer_id||n!==ot))return o.ams_mapping[r-1]},Bn=(e,t,n)=>{if(!n)return!1;let r=$?t==null?void 0:vn.get(t)?.filaments:en?.filaments;if(!r)return!1;let i=ze(P.length>1?En.printerResults.find(t=>t.printerId===e)?.status:cn);return r.some(r=>{let a=r.slot_id??0,o=a>0?n[a-1]:void 0;if(o==null||o<0||zn(e,t,a)===o)return!1;let s=i.find(e=>e.globalTrayId===o);return!!s?.type&&!!r.type&&!B(s.type,r.type)})},Vn=re||(z.scheduleType===`queue`?z.requireManualStart:z.scheduleType===`scheduled`&&!!o?.manual_start),Hn=async(n,s)=>{if(n?.preventDefault(),X&&Ft==null){S(b(`printModal.noPrintableCostCenters`),`error`);return}if(!s?.skipFilamentCheck&&!J?.disable_filament_warnings&&!O&&V===`printer`){let e=[],t=$?pn.map(e=>({plateId:e,reqs:_n.get(e)?.filaments??[]})):[{plateId:R,reqs:$t?.filaments??[]}];if(t.some(e=>e.reqs.length>0)&&Rt.size>0)for(let n of P){let r=P.length>1?En.printerResults.find(e=>e.printerId===n)?.status:cn,i=ze(r),a=new Map(i.map(e=>[e.globalTrayId,e.label])),o=Rt.get(n),s=Z?.find(e=>e.id===n)?.name??`Printer ${n}`;if(!o||o.size===0)continue;let c=new Map;for(let e of t){let t=Rn(n,e.plateId);t&&e.reqs.forEach(e=>{if(!e.slot_id||e.slot_id<=0)return;let n=t[e.slot_id-1];!Number.isFinite(n)||n<0||c.set(n,(c.get(n)??0)+e.used_grams)})}let l=r?.ams_filament_backup===!0,u=e=>`${e.material_key}#${e.extruder}`,d=new Map,f=new Map,p=new Map;if(l){o.forEach(e=>{let t=u(e);d.set(t,(d.get(t)??0)+e.remaining_g),f.set(t,(f.get(t)??0)+1)});for(let[e,t]of c){let n=o.get(e);if(!n)continue;let r=u(n);p.set(r,(p.get(r)??0)+t)}}for(let[t,r]of c){let i=o.get(t);if(!i)continue;let c=a.get(t)??`Tray ${t}`;if(l){let t=u(i),r=d.get(t)??0,a=p.get(t)??0;if(r>=a)continue;e.push({printerId:n,printerName:s,slotLabel:c,requiredGrams:a,remainingGrams:r,pooled:(f.get(t)??1)>1});continue}i.remaining_g>=r||e.push({printerId:n,printerName:s,slotLabel:c,requiredGrams:r,remainingGrams:i.remaining_g})}}if(e.length>0){ft(e);return}}if(V===`printer`&&P.length===0){S(`Please select at least one printer`,`error`);return}if(!A&&V===`model`&&!U){S(`Please select a target printer model`,`error`);return}if(!A&&V===`model`&&!Me(Q,U)){S(`File was sliced for ${Q} and cannot be dispatched to ${U} printers`,`error`);return}ct(!0);let c=I.size>1?Nn.filter(e=>I.has(e.index)):[null],l=V===`model`?c.length:P.length*c.length;ut({current:0,total:l});let u={success:0,failed:0,errors:[]},d=new Map((e===`edit-queue-item`?o?.filament_overrides??[]:[]).map(e=>[e.slot_id,e])),f=(e,t,n)=>{let r=d.get(e);return r?.tray_info_idx&&Dt(r,{type:t,color:n})?{tray_info_idx:r.tray_info_idx}:{}},_=e=>{let t=[];if(e?.filaments)for(let n of e.filaments){let e=$e[n.slot_id],r=rt[n.slot_id]??!1,i=e?.type??n.type,a=e?.color??n.color;if(e||r){let o=f(n.slot_id,i,a),s=Ee(a,Ze(o.tray_info_idx??(e?void 0:n.tray_info_idx),i,tn));t.push({slot_id:n.slot_id,type:i,color:a,color_name:s,...o,force_color_match:r})}}else for(let[e,{type:n,color:r}]of Object.entries($e)){let i=parseInt(e,10),a=rt[i]??!1,o=f(i,n,r),s=Ee(r,Ze(o.tray_info_idx,n,tn));t.push({slot_id:i,type:n,color:r,color_name:s,...o,force_color_match:a})}return t.length>0?t:void 0},v=_($t),y=e=>$&&e!==null?_(_n.get(e)):v,C=e=>{let t=y(e)?.filter(e=>$e[e.slot_id]);return t&&t.length>0?t:void 0};if(A){try{await r.addToQueue({variants:ue.map(e=>({library_file_id:e.id,plate_id:fe[e.id]??null,filament_overrides:v})),target_location:Ve,require_previous_success:z.requirePreviousSuccess,auto_off_after:z.autoOffAfter,gcode_injection:z.gcodeInjection,manual_start:re||z.scheduleType===`queue`&&z.requireManualStart,scheduled_time:z.scheduleType===`scheduled`&&z.scheduledTime?new Date(z.scheduledTime).toISOString():void 0,quantity:ge,...xe,project_id:h??void 0}),S(b(`printModal.variants.queued`,{count:ue.length}),`success`),x.invalidateQueries({queryKey:[`queue`]}),m?.(),p()}catch(e){S(e instanceof Error?e.message:String(e),`error`)}finally{ct(!1)}return}let w=c.map((e,t)=>{let n=e?e.index:R;return{plate_id:n,plate_name:e&&e.name||null,quantity_target:qn(n),sort_order:t}}),T=w.reduce((e,t)=>e+t.quantity_target,0),ee=e===`create`&&(c.length>1||T>1)&&(V===`model`||P.length===1),E=null;if(ee)try{let e=(a||``).replace(/\.gcode\.3mf$/i,``).replace(/\.3mf$/i,``),n=c.length>1?`${e||`Batch`} · ${c.length} plates`:`${e||`Batch`} ×${T}`;E=(await r.createBatch({name:n,archive_id:D?void 0:t,library_file_id:D?i:void 0,plates:w})).id}catch{E=null}let te=0,ne=(e,t=1)=>{z.scheduleType===`asap`&&(e.insert_at_top=!0,e.insert_position=te+1,te+=t)},k=e=>{let t=e!=null&&$?Cn[e]:xn;return t&&Object.keys(t).length>0?t:void 0},ie=(e,n)=>{let r=n===void 0?R:n,a=r!=null&&$?Qe[r]??null:qe;return{printer_id:V===`printer`?e:null,target_model:V===`model`?U:null,target_location:V===`model`?Ve:null,filament_overrides:V===`model`?y(r):C(r),archive_id:D?void 0:t,library_file_id:D?i:void 0,require_previous_success:z.requirePreviousSuccess,auto_off_after:z.autoOffAfter,gcode_injection:z.gcodeInjection,manual_start:re||z.scheduleType===`queue`&&z.requireManualStart,skip_filament_check:e!=null&&s?.acknowledgedPrinters?.includes(e)||e!=null&&Bn(e,r,Rn(e,r))?!0:void 0,ams_mapping:e?Rn(e,r):void 0,nozzle_rack_choice:e?k(r):void 0,plate_id:r,scheduled_time:z.scheduleType===`scheduled`&&z.scheduledTime?new Date(z.scheduledTime).toISOString():void 0,...xe,project_id:h??void 0,cost_center_id:X?W:void 0,estimated_cost:X&&W!=null?a:void 0,batch_id:E??void 0,cleanup_library_after_dispatch:g}};if(V===`model`){let t=0;for(let n of c){t++,ut({current:t,total:l});let r=n?n.index:R;try{if(e===`edit-queue-item`&&!n){let e={printer_id:null,target_model:U,target_location:Ve,filament_overrides:v||null,require_previous_success:z.requirePreviousSuccess,auto_off_after:z.autoOffAfter,gcode_injection:z.gcodeInjection,manual_start:Vn,ams_mapping:void 0,plate_id:r,scheduled_time:z.scheduleType===`scheduled`&&z.scheduledTime?new Date(z.scheduledTime).toISOString():null,...xe,cost_center_id:X?W:void 0,estimated_cost:X&&W!=null?qe:void 0};await Ln.mutateAsync(e)}else{let e=ie(null,r),t=qn(r);t>1&&(e.quantity=t),ne(e,t),await In.mutateAsync(e)}u.success++}catch(e){u.failed++;let t=n?n.name||`Plate ${n.index}`:``;u.errors.push(t?`${t}: ${e.message}`:e.message)}}}else{let e=z.staggerEnabled&&!O&&P.length>1,t=e?z.scheduleType===`scheduled`&&z.scheduledTime?new Date(z.scheduledTime).getTime():Date.now():0,n=0;for(let r of c){let i=r?r.index:R;for(let a=0;a<P.length;a++){let o=P[a];n++,ut({current:n,total:l});try{if(O&&n===1){let e=Rn(o,i),t={printer_id:o,target_model:null,target_location:null,filament_overrides:C(i)??null,require_previous_success:z.requirePreviousSuccess,auto_off_after:z.autoOffAfter,gcode_injection:z.gcodeInjection,manual_start:Vn,ams_mapping:e,skip_filament_check:Bn(o,i,e)?!0:void 0,nozzle_rack_choice:k(i)??null,plate_id:i,scheduled_time:z.scheduleType===`scheduled`&&z.scheduledTime?new Date(z.scheduledTime).toISOString():null,...xe,cost_center_id:X?W:void 0,estimated_cost:X&&W!=null?i!=null&&$?Qe[i]??null:qe:void 0};await Ln.mutateAsync(t)}else{let n=ie(o,i),r=qn(i);if(r>1&&(n.quantity=r),ne(n,r),e){let e=Math.floor(a/z.staggerGroupSize);if(e>0){let r=e*z.staggerIntervalMinutes*6e4;n.scheduled_time=new Date(t+r).toISOString()}}await In.mutateAsync(n)}u.success++}catch(e){u.failed++;let t=Z?.find(e=>e.id===o)?.name||`Printer ${o}`,n=r?r.name||`Plate ${r.index}`:``,i=n?`${t} (${n})`:t;u.errors.push(`${i}: ${e.message}`)}}}}if(ct(!1),u.failed===0){if(O)e===`edit-queue-item`&&S(`Queue item updated`);else if(u.success===1){let e=await dn();S(e?b(`queue.printQueuedWillStartWhenIdle`):V===`model`?`Queued for any ${U}`:b(`queue.printQueued`))}else{let e=await dn();S(e?b(`queue.printQueuedWillStartWhenIdle`):b(`queue.itemsQueued`,{count:u.success}))}x.invalidateQueries({queryKey:[`queue`]}),m?.(),p()}else u.success===0?S(`Failed: ${u.errors[0]}`,`error`):(S(`${u.success} succeeded, ${u.failed} failed`,`error`),x.invalidateQueries({queryKey:[`queue`]}))},Un=st||Ln.isPending,Wn=(0,H.useMemo)(()=>!(Un||X&&(Nt||Ft==null)||V===`printer`&&P.length===0||!A&&V===`model`&&!U||!A&&V===`model`&&!Me(Q,U)||Mn&&I.size===0||hn||gn||V===`printer`&&P.length===1&&ln),[P.length,V,U,Q,Mn,I.size,Un,hn,gn,ln,A,X,Nt,Ft]),Gn=V===`printer`&&P.length>1?1:ge,Kn=e===`create`&&!A&&Mn&&Nn.length>1,qn=e=>!Kn||e==null?Gn:V===`printer`&&P.length>1?1:Math.max(1,ye[e]??1);(0,H.useEffect)(()=>{e===`create`&&z.gcodeInjection&&!Ae(J)&&Ce(e=>({...e,gcodeInjection:!1}))},[e,J,z.gcodeInjection]);let Jn=O?{title:b(`queue.editQueueItem`),icon:ee,submitText:b(`common.save`),submitIcon:ee,loadingText:lt.total>1?b(`queue.savingProgress`,{current:lt.current,total:lt.total}):b(`common.saving`)}:{title:b(`common.print`),icon:E,submitText:b(`common.print`),submitIcon:E,loadingText:lt.total>1?b(`queue.addingProgress`,{current:lt.current,total:lt.total}):b(`queue.adding`)},Yn=Jn.icon,Xn=Jn.submitIcon,Zn=q&&I.size<=1&&(D||!Mn||R!==null);(0,H.useEffect)(()=>{(!Zn||Qt||P.length!==1)&&Ye(null)},[Qt,P.length,Zn]);let Qn=!!q&&$&&P.length===1,$n=V===`model`&&(A||!!U)&&!!sn&&sn.length>0,er=(0,H.useMemo)(()=>new Set([`H2D`,`H2DPRO`,`H2C`,`X2D`]),[]),tr=(0,H.useMemo)(()=>V===`model`?U?er.has(U.toUpperCase().replace(/[\s-]/g,``)):!1:!Z||P.length===0?!1:P.some(e=>Z.find(t=>t.id===e)?.nozzle_count===2),[V,U,Z,P,er]);return(0,K.jsxs)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:st?void 0:p,children:[(0,K.jsx)(oe,{className:`w-full max-w-4xl max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,K.jsxs)(M,{className:`p-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(Yn,{className:`w-5 h-5 text-bambu-green`}),(0,K.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:Jn.title})]}),(0,K.jsx)(se,{variant:`ghost`,size:`sm`,onClick:p,disabled:st,children:(0,K.jsx)(j,{className:`w-5 h-5`})})]}),(0,K.jsxs)(`form`,{onSubmit:Hn,className:`p-4 space-y-4`,children:[(0,K.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[(0,K.jsx)(`span`,{className:`block text-bambu-gray mb-1`,children:`Print Job`}),(0,K.jsx)(`span`,{className:`text-white font-medium truncate block`,children:a})]}),(()=>{if(!Nn.length)return null;let e=et((R==null?Nn[0]:Nn.find(e=>e.index===R))?.bed_type);return e?(0,K.jsxs)(`p`,{className:`flex items-center gap-1.5 text-xs text-bambu-gray -mt-2`,title:e.label,children:[(0,K.jsx)(`img`,{src:e.icon,alt:``,className:`w-4 h-4 object-contain flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:e.label})]}):null})(),!A&&(0,K.jsx)(gt,{plates:Nn,isMultiPlate:Mn,selectedPlates:I,onToggle:e=>{L(t=>{let n=new Set(t);return O?(n.clear(),n.add(e)):n.has(e)?n.delete(e):n.add(e),n})},onSelectAll:O?void 0:()=>L(new Set(Nn.map(e=>e.index))),onDeselectAll:O?void 0:()=>L(new Set),multiSelect:!O,quantities:Kn?ye:void 0,onQuantityChange:Kn?(e,t)=>be(n=>({...n,[e]:t})):void 0}),A&&(0,K.jsx)(wt,{candidates:ue,onReorder:de,plateByFile:fe,onPlateChange:(e,t)=>N(n=>({...n,[e]:t}))}),le&&(0,K.jsx)(wt,{candidates:ie,readOnly:!0,readOnlyNote:b(`printModal.variants.editNote`),onReorder:()=>{},plateByFile:{},onPlateChange:()=>{}}),!A&&!le&&!s?.length&&(0,K.jsx)(yt,{printers:Z||[],selectedPrinterIds:P,onMultiSelect:F,isLoading:jt,allowMultiple:!0,showInactive:e===`edit-queue-item`,disableBusy:!1,printerMappingResults:En.printerResults,filamentReqs:$?void 0:en,onAutoConfigurePrinter:En.autoConfigurePrinter,onUpdatePrinterConfig:En.updatePrinterConfig,assignmentMode:V,onAssignmentModeChange:Le,targetModel:U,onTargetModelChange:Be,targetLocation:Ve,onTargetLocationChange:He,slicedForModel:Q}),$n&&!$&&$t&&(0,K.jsx)(ht,{filamentReqs:$t,availableFilaments:sn,overrides:$e,onChange:nt,forceColorMatch:rt,onForceColorMatchChange:(e,t)=>it(n=>({...n,[e]:t}))}),$n&&$&&pn.map((e,t)=>{let n=Nn.find(t=>t.index===e),r=_n.get(e);return r?(0,K.jsx)(ht,{plateLabel:n?.name||b(`printModal.plateN`,`Plate {{n}}`,{n:e}),showHint:t===0,filamentReqs:r,availableFilaments:nn,overrides:$e,onChange:nt,forceColorMatch:rt,onForceColorMatchChange:(e,t)=>it(n=>({...n,[e]:t}))},e):null}),Q&&V===`printer`&&P.length===1&&(()=>{let e=Z?.find(e=>e.id===P[0]);return e&&e.model&&Q!==e.model?(0,K.jsxs)(`div`,{className:`p-3 mb-2 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg flex items-center gap-2`,children:[(0,K.jsx)(k,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,K.jsxs)(`span`,{className:`text-sm text-yellow-700 dark:text-yellow-400`,children:[`File was sliced for `,Q,`, but printing on `,e.model]})]}):null})(),Qt&&(0,K.jsxs)(`div`,{className:`flex items-start gap-2 p-3 mb-2 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg text-sm`,children:[(0,K.jsx)(v,{className:`w-4 h-4 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`p`,{className:`text-orange-700 dark:text-orange-400`,children:`Archive data unavailable. The source file may have been deleted. Filament mapping is disabled.`})]}),gn&&(0,K.jsxs)(`div`,{className:`flex items-start gap-2 p-3 mb-2 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg text-sm`,children:[(0,K.jsx)(v,{className:`w-4 h-4 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`p`,{className:`text-orange-700 dark:text-orange-400`,children:b(`printModal.plateFilamentsUnreadable`,`The filaments of a selected plate could not be read, so it can't be mapped. Deselect it to queue the others.`)})]}),Zn&&!Qt&&P.length===1&&(0,K.jsx)(mt,{printerId:q,filamentReqs:en,manualMappings:we,onManualMappingChange:e=>{Pe(q),Te(e)},onEstimatedCostChange:Ye,budgetAvailable:X?Ft?.budget_available??null:null,quantity:Gn,defaultExpanded:!!s?.length||(J?.per_printer_mapping_expanded??!1),currencySymbol:kt,defaultCostPerKg:At,forceColorMatch:rt,onForceColorMatchChange:(e,t)=>it(n=>({...n,[e]:t})),archiveAmsMapping:Wt,nozzleRackChoice:xn,onNozzleRackChoiceChange:Sn}),Qn&&!Qt&&pn.map(e=>{let t=Nn.find(t=>t.index===e),n=vn.get(e);return n?(0,K.jsx)(mt,{printerId:q,plateLabel:t?.name||b(`printModal.plateN`,`Plate {{n}}`,{n:e}),filamentReqs:n,manualMappings:yn[e]??{},onManualMappingChange:t=>bn(n=>({...n,[e]:t})),onEstimatedCostChange:t=>G(n=>({...n,[e]:t})),budgetAvailable:X?Ft?.budget_available??null:null,quantity:qn(e),defaultExpanded:!1,currencySymbol:kt,defaultCostPerKg:At,forceColorMatch:rt,onForceColorMatchChange:(e,t)=>it(n=>({...n,[e]:t})),archiveAmsMapping:Wt,nozzleRackChoice:Cn[e]??{},onNozzleRackChoiceChange:t=>wn(n=>({...n,[e]:t}))},e):null}),(e===`create`||vt>0||V===`model`&&U)&&(0,K.jsx)(St,{options:xe,onChange:Se,defaultExpanded:!!s?.length,showDualNozzleOptions:tr}),X&&Pt.length>0&&(0,K.jsx)(Tt,{costCenters:Pt,selectedCostCenterId:W,onChange:Ke}),X&&!Nt&&Pt.length===0&&(0,K.jsxs)(`div`,{role:`alert`,className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-500/50 rounded-lg text-sm text-yellow-800 dark:text-yellow-300 flex items-start gap-2`,children:[(0,K.jsx)(k,{className:`w-4 h-4 mt-0.5 shrink-0`}),b(`printModal.noPrintableCostCenters`)]}),e!==`edit-queue-item`&&!Kn&&(V===`model`||P.length<=1)&&(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`label`,{htmlFor:`printQuantity`,className:`text-sm text-bambu-gray whitespace-nowrap`,children:b(`queue.quantity`,`Quantity`)}),(0,K.jsx)(je,{id:`printQuantity`,min:1,max:999,value:ge,onChange:_e,fallback:1,className:`w-20 px-2 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`}),ge>1&&(0,K.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:b(`queue.quantityHint`,`Creates {{count}} queue items`,{count:ge})})]}),(0,K.jsx)(Ct,{options:z,onChange:Ce,dateFormat:J?.date_format||`system`,timeFormat:J?.time_format||`system`,canControlPrinter:T(`printers:control`),showStagger:!O&&V===`printer`&&P.length>1,printerCount:P.length,hasGcodeSnippets:Ae(J),needsReview:re}),(0,K.jsxs)(`button`,{type:`button`,"aria-pressed":xe.confirm_outcome,title:b(`printModal.askForOutcomeTitle`),onClick:()=>Se(e=>({...e,confirm_outcome:!e.confirm_outcome})),className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full border text-sm transition-colors ${xe.confirm_outcome?`bg-bambu-green/20 border-bambu-green text-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,K.jsx)(Re,{className:`w-4 h-4`}),b(`printModal.askForOutcome`)]}),Ln.isError&&(0,K.jsx)(`div`,{className:`mb-4 p-3 bg-red-100 dark:bg-red-500/20 border border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:Ln.error?.message||`Failed to complete operation`}),V===`printer`&&P.length===1&&ln&&(0,K.jsxs)(`div`,{className:`mb-4 p-3 bg-blue-100 dark:bg-blue-500/20 border border-blue-500/50 rounded-lg text-sm text-blue-700 dark:text-blue-400 flex items-center gap-2`,children:[(0,K.jsx)(w,{className:`w-4 h-4 animate-spin`}),b(`printModal.waitingForAmsStatus`,{printer:Z?.find(e=>e.id===q)?.name??``})]}),Pn&&(0,K.jsxs)(`p`,{className:`flex items-center gap-1.5 text-sm text-bambu-gray min-w-0`,title:Pn,"data-testid":`selected-plates-summary`,children:[(0,K.jsx)(C,{className:`w-4 h-4 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:Pn})]}),(0,K.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,K.jsx)(se,{type:`button`,variant:`secondary`,onClick:p,className:`flex-1`,disabled:st,children:`Cancel`}),(0,K.jsx)(se,{type:`submit`,disabled:!Wn,className:`flex-1`,children:Un?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(w,{className:`w-4 h-4 animate-spin`}),Jn.loadingText]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Xn,{className:`w-4 h-4`}),Jn.submitText]})})]})]})]})}),dt&&dt.length>0&&(0,K.jsx)(ce,{title:b(`printModal.insufficientFilamentTitle`),message:Fn,confirmText:b(`printModal.printAnyway`),cancelText:b(`common.cancel`),variant:`warning`,onConfirm:()=>{let e=[...new Set(dt.map(e=>e.printerId))];ft(null),Hn(void 0,{skipFilamentCheck:!0,acknowledgedPrinters:e})},onCancel:()=>ft(null)})]})}export{et as a,ze as c,V as d,Ie as f,bt as i,Re as l,q as n,Ze as o,Fe as p,J as r,Xe as s,kt as t,Le as u};
|