@miravo/cli-linux-arm64-musl 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/console-dist/assets/api-Dw9ti2cu.js +1 -0
- package/console-dist/assets/{api-B2QJEzbS.js → api-tM5PSXjr.js} +1 -1
- package/console-dist/assets/asset-detail-C4zF_8rm.js +1 -0
- package/console-dist/assets/asset-detail-actions-Dv9g2Z9t.js +1 -0
- package/console-dist/assets/{backup-power-BDMAO2bO.js → backup-power-CAc85zvh.js} +1 -1
- package/console-dist/assets/{boiler-CWAR1Nq2.js → boiler-BQwqgoVY.js} +1 -1
- package/console-dist/assets/by-path-DmADo_qX.js +1 -0
- package/console-dist/assets/catalog-BMLSbdye.js +1 -0
- package/console-dist/assets/catalog-Ccubt-hm.js +1 -0
- package/console-dist/assets/catalog-template-icons-DGyxSm-F.js +1 -0
- package/console-dist/assets/chevron-right-CrNKVFcI.js +1 -0
- package/console-dist/assets/{chiller-BSx8eUMN.js → chiller-Jug0vRg-.js} +1 -1
- package/console-dist/assets/{commercial-building-CNvi6IZK.js → commercial-building-CINKWcQV.js} +1 -1
- package/console-dist/assets/{compressor-D63w6Ir2.js → compressor-BkWNdwvy.js} +1 -1
- package/console-dist/assets/{console-panel-CMDoBJiO.js → console-panel-Cg2sBJcN.js} +1 -1
- package/console-dist/assets/control-B-TcWj5c.js +1 -0
- package/console-dist/assets/control-DXA-_1Gu.js +1 -0
- package/console-dist/assets/{district-heating-Cr4CrgCA.js → district-heating-DqGtrEKq.js} +1 -1
- package/console-dist/assets/{events-RmbRTKFV.js → events-Dz_zsLGE.js} +1 -1
- package/console-dist/assets/events-iYGC0JpW.js +1 -0
- package/console-dist/assets/{export-tab-fZDO4r2u.js → export-tab-BS4GlLBV.js} +1 -1
- package/console-dist/assets/factory-BCPLmUx4.js +1 -0
- package/console-dist/assets/factory-CBXx3oBo.js +1 -0
- package/console-dist/assets/floor-page-BOlkyLaW.js +1 -0
- package/console-dist/assets/{genset-BRgqR1AT.js → genset-DBpkUT9p.js} +1 -1
- package/console-dist/assets/{get-error-message-dM0BMfdP.js → get-error-message-CEvauOXv.js} +1 -1
- package/console-dist/assets/{index-CvuwOe37.js → index-B7ZG1VO6.js} +3 -3
- package/console-dist/assets/{integration-api-D2tA69Yb.js → integration-api-iM6SWQ6d.js} +1 -1
- package/console-dist/assets/integrations-Bw0jY-xH.js +1 -0
- package/console-dist/assets/{integrations-iAjWxaDS.js → integrations-NcPRP3je.js} +1 -1
- package/console-dist/assets/{login-DpNKicxy.js → login-snbitj6V.js} +1 -1
- package/console-dist/assets/models-CsdLFBfC.js +1 -0
- package/console-dist/assets/models-Dy_JFNac.js +1 -0
- package/console-dist/assets/{pharma-cleanroom-ClJRwROz.js → pharma-cleanroom-CBgNUnIv.js} +1 -1
- package/console-dist/assets/protocol-card-Cp8O59cX.js +1 -0
- package/console-dist/assets/registry-Kj-oMlVm.js +2 -0
- package/console-dist/assets/{rtu-D-1lltcO.js → rtu-BR4DhLbE.js} +1 -1
- package/console-dist/assets/shallow-Cin0mLuv.js +1 -0
- package/console-dist/assets/{smart-factory-cem4tLAv.js → smart-factory-DozakG3N.js} +1 -1
- package/console-dist/assets/{stages-hidkaJPI.js → stages-C0cErwSQ.js} +1 -1
- package/console-dist/assets/{status-CZFZLqVk.js → status-DNfdEhTs.js} +1 -1
- package/console-dist/assets/status-kit-BLG7OeIE.js +1 -0
- package/console-dist/assets/tags-BRYVC9vb.js +1 -0
- package/console-dist/assets/{tags-BBz30-eV.js → tags-bloWH2Qa.js} +1 -1
- package/console-dist/assets/{tank-THHXGdzg.js → tank-xgQfMS2d.js} +1 -1
- package/console-dist/assets/{transition-nav-link-B11-gXld.js → transition-nav-link-CBN2nulP.js} +1 -1
- package/console-dist/assets/use-engine-command-mutation-oLQW2r4F.js +1 -0
- package/console-dist/assets/use-transition-navigate-BDkvJJsk.js +2 -0
- package/console-dist/assets/{useQuery-M9KTdi7Q.js → useQuery-smgfSdOx.js} +1 -1
- package/console-dist/assets/{validation-BkfmaBBi.js → validation-BOdAwXQ_.js} +1 -1
- package/console-dist/assets/{water-treatment-CfVR0p0L.js → water-treatment-BJXMtYlP.js} +1 -1
- package/console-dist/index.html +30 -30
- package/miravo +1 -1
- package/package.json +1 -1
- package/console-dist/assets/api-Vq4lny_H.js +0 -1
- package/console-dist/assets/asset-detail-E-TllNHT.js +0 -1
- package/console-dist/assets/asset-detail-actions-jjbvaDES.js +0 -1
- package/console-dist/assets/asset-panel-DDziFlFl.js +0 -1
- package/console-dist/assets/by-path-VBqTBdlG.js +0 -1
- package/console-dist/assets/catalog-BlkPPAWE.js +0 -1
- package/console-dist/assets/catalog-CQopEu5C.js +0 -1
- package/console-dist/assets/catalog-template-icons-BOSywIKV.js +0 -1
- package/console-dist/assets/chevron-left-XHFooLn1.js +0 -1
- package/console-dist/assets/chevron-right-CMSQPSEo.js +0 -1
- package/console-dist/assets/control-CBviLxJB.js +0 -1
- package/console-dist/assets/control-jNqzZWa9.js +0 -1
- package/console-dist/assets/events-D531_1EZ.js +0 -1
- package/console-dist/assets/factory-C2OucdpQ.js +0 -1
- package/console-dist/assets/factory-CgSIjU5V.js +0 -1
- package/console-dist/assets/factory-DLE12zAd.js +0 -1
- package/console-dist/assets/floor-page-D0mX5OuA.js +0 -1
- package/console-dist/assets/integrations-BLG4PT3c.js +0 -1
- package/console-dist/assets/model-schemas-3w38IPdc.js +0 -1
- package/console-dist/assets/models-CMN9Eppf.js +0 -1
- package/console-dist/assets/models-I_V8J5Y0.js +0 -1
- package/console-dist/assets/play-kg50os4l.js +0 -1
- package/console-dist/assets/protocol-card-ARSwIjkN.js +0 -1
- package/console-dist/assets/registry-Dau_GjK6.js +0 -2
- package/console-dist/assets/tags-K96jT8PY.js +0 -1
- package/console-dist/assets/use-engine-command-mutation-CHqjOqfS.js +0 -1
- package/console-dist/assets/use-transition-navigate-B-nk4aWh.js +0 -2
- /package/console-dist/assets/{circle-x-_o0nl0Rg.js → circle-x-6JtFdy1_.js} +0 -0
- /package/console-dist/assets/{dom-Cm_OH5jc.js → dom-CQuChC3G.js} +0 -0
- /package/console-dist/assets/{not-found-C4YVKP97.js → not-found-Cc35S-lZ.js} +0 -0
- /package/console-dist/assets/{runtime-link-vBANRqcD.js → runtime-link-BRnaEnOm.js} +0 -0
- /package/console-dist/assets/{tabs-BbQkzBZZ.js → tabs-Ch_VG8_S.js} +0 -0
- /package/console-dist/assets/{vendor-table-B0Z9e_sn.js → vendor-table-BQAIXM34.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{C as r,F as i,I as a,N as o,T as s,_ as c,a as l,b as u,c as d,d as f,f as p,l as m,m as h,n as g,o as _,p as v,s as y,t as b,v as x,x as S,y as C,z as w}from"./dom-Cm_OH5jc.js";import{B as T,C as E,D,E as O,F as k,G as A,H as j,I as M,J as N,K as P,L as ee,M as te,P as ne,R as F,S as re,T as I,U as ie,V as ae,W as oe,X as se,Y as ce,_ as L,a as le,b as ue,g as de,h as fe,i as pe,j as me,l as he,m as ge,n as _e,o as ve,p as ye,q as R,r as be,t as xe,u as Se,v as z,w as Ce,x as we,y as Te,z as Ee}from"./status-CZFZLqVk.js";import{n as De,r as Oe,t as ke}from"./chiller-BSx8eUMN.js";import{n as Ae,t as je}from"./compressor-D63w6Ir2.js";var Me=7.2,B=-156,V=4.8,H=33.6,Ne=H+4.4,Pe=59,Fe=[[B,28.4,V],[B,H+2.4,V]],Ie=[[B,Ne,V+4.2],[B,Ne,Pe],[B,22,Pe],[-112,22,Pe]],Le=1.2,Re=1.6,ze=4;function Be(e){let t=(t,n,r,i)=>({id:t,medium:`water`,r,path:e.G.fillet(n,i,12,{P:e.P,tube:r}),reverse:!1,capped:[!0,!0],slots:[],group:t});return[t(`wash-suction`,Fe,Le,2),t(`wash-spray`,Ie,Re,ze)]}function Ve(e,t,n){let{k:r,G:i,P:a,at:o,S:s,L:c,slab:l,cyl:u,hmi:d,andon:f,screws:p,conveyor:m}=e,h=m(-176,92,4,24,23),g={x:-150,y:0,w:42,d:32,r:2},_=[0,1,2,3].map(e=>r.pathOf(r.roundedPlan({x:g.y+6+e*5.4,y:35,w:1.8,d:14,r:.9},3).map(([e,t])=>o([g.x+g.w,e,t])),!0)).join(``),v={x:-168,y:5,w:74,d:22,r:1},y=i.frameAlong([-98,34.5,10],[0,1,0]);return[l(v,0,Me,{tone:`lo`},2,0),`<path class="sf-void" d="${r.pathOf(r.roundedPlan(r.insetPlan(v,1),2).map(([e,t])=>o([e,t,Me])),!0)}"/>`,`<path class="sf-water" d="${r.pathOf(r.roundedPlan(r.insetPlan(v,3),2).map(([e,t])=>o([e,t,Me])),!0)}"/>`,h.back,h.belt,l({x:-85,y:8,w:4,d:14,r:.3},23.4,.6,{tone:`mid`},2,0),`<g data-belt="wash" data-x0="-175" data-x1="-86" data-y0="4" data-y1="28" data-z="${h.top}"><path class="iso-line" data-tone="faint" data-cleats="" d=""/><g data-parts-back=""></g></g>`,`<g data-robot-late="1" data-asset="${n}" class="sf-robot"></g>`,s(r.slabOf(g,24,30,a,3,.8),{tone:`mid`,inner:c(r.sideSeam(g,43,a,3)+r.sideSeam(g,27,a,3),{tone:`faint`})+c(_,{tone:`lo`})}),p(r.corners(g,2.2),54),u(-121,10,4,54,10,{tone:`mid`,inner:c(r.sideArc(-121,10,4,59,a,24),{tone:`faint`})},24),u(-121,10,5.2,64,1.6,{tone:`mid`},24),`<g data-steam="-121,10,66"></g>`,f(t,-144,6,54),u(-128,22,1.4,54,4,{tone:`mid`},12),u(-117,22,1.4,54,4,{tone:`mid`},12),d(t,32,-146,-112,28,49),`<path class="sf-void" d="${r.pathOf([[-108,5,24.2],[-108,27,24.2],[-108,27,33.4],[-108,5,33.4]].map(e=>o(e)),!0)}"/>`,`<path class="sf-flaps" data-flaps="" d=""/>`,l({x:-104,y:.4,w:2,d:2,r:.4},27,11,{tone:`mid`},2,0),l({x:-104,y:29.6,w:2,d:2,r:.4},27,11,{tone:`mid`},2,0),s(i.solidOf([[0,1.3],[31.2,1.3]],i.frameAlong([-103,.4,37.4],[0,1,0]),a),{tone:`mid`,crease:`none`}),`<g class="sf-fx" data-airknife="-103,16,35.4"></g>`,`<g data-parts-front="wash"></g>`,`<g class="sf-fx" data-drips=""></g>`,h.front,l({x:-103,y:30.5,w:10,d:4,r:.8},4,12,{tone:`mid`},2,.3),s(i.solidOf([[0,3.6],[.6,4.2],[9,4.2],[9.6,3.6]],y,a),{tone:`mid`,inner:r.fadedSvg(i.ribsOf(i.frameAlong([-98,34.5,10],[0,1,0]),.6,9,4.2,14,a,{fade:[.1,.55],seams:!0}),{tone:`lo`})}),s(i.disc(9.6,11,2.8,y,a),{tone:`mid`}),He(e)].join(``)}function He(e){let{k:t,G:n,P:r,S:i,D:a,slab:o,cyl:s,screws:c}=e,l=n.frameAlong([B,H,V],[0,1,0]);return[i(n.disc(0,1.2,2.2,n.frameAlong([B,27,V],[0,1,0]),r),{tone:`mid`}),T(e,Fe,Le,`mid`,2,`water`,[!1,!1]),`<g data-glints="wash-suction"></g>`,o({x:B-5,y:H+1,w:10,d:18,r:.8},0,1.2,{tone:`lo`},2,.3),c([[B-3.6,H+2.4],[B+3.6,H+2.4],[B-3.6,H+17.6],[B+3.6,H+17.6]],1.2),i(n.disc(2.4,6.4,3.6,l,r),{tone:`mid`,crease:`lo`}),i(n.disc(6.4,8,2.2,l,r),{tone:`mid`}),i(n.solidOf([[8,2.8],[8.4,3.2],[16.4,3.2],[16.8,2.8]],l,r),{tone:`mid`,inner:t.fadedSvg(n.ribsOf(l,8.4,16.4,3.2,12,r,{fade:[.1,.55],seams:!0}),{tone:`lo`})}),i(n.disc(16.8,18,2.6,l,r),{tone:`mid`}),a(n.dotsOf(n.frameAlong([B,H+18,V],[0,1,0]),0,1.6,6,r,{all:!0}),{size:.35}),s(B,Ne,2.4,V+3,1.2,{tone:`mid`},20),T(e,Ie,Re,`mid`,ze,`water`,[!1,!1]),`<g data-glints="wash-spray"></g>`,i(n.disc(0,1.2,2.2,n.frameAlong([-112,22,Pe],[1,0,0]),r),{tone:`mid`})].join(``)}var Ue=[[`cnc`,`cnc-spindle`],[`robot`,`industrial-robot`],[`wash`,`belt-conveyor`],[`press`,`hydraulic-press`],[`test`,`belt-conveyor`],[`packer`,`industrial-robot`]],We=[[`chiller`,`industrial-chiller`],[`comp`,`air-compressor`],[`pump`,`centrifugal-pump`],[`amr`,`industrial-robot`]];function Ge({template:e,assets:t,line:n}){if(n===void 0)return{status:`pending`};let r=new Set(e.assetIds),i=new Map(t.filter(e=>r.has(e.id)).map(e=>[e.id,e.model])),a=new Map;for(let[e,[t,r]]of Ue.entries()){let o=n.stations[e]?.id;if(!o||i.get(o)!==r)return{status:`mismatch`};a.set(t,o)}let o=new Set(a.values());for(let[e,t]of We){let n=[...i].filter(([e,n])=>n===t&&!o.has(e)),r=n.length===1?n[0]?.[0]:void 0;if(!r)return{status:`mismatch`};a.set(e,r)}let s=e=>a.get(e)??``;return{status:`ready`,ids:{cnc:s(`cnc`),robot:s(`robot`),wash:s(`wash`),press:s(`press`),test:s(`test`),packer:s(`packer`),chiller:s(`chiller`),comp:s(`comp`),pump:s(`pump`),amr:s(`amr`)}}}function Ke(e){return[{key:e.cnc,assetId:e.cnc,name:`CNC machining centre`,kind:`station`},{key:e.robot,assetId:e.robot,name:`Unload robot`,kind:`station`},{key:e.wash,assetId:e.wash,name:`Parts washer`,kind:`station`},{key:e.press,assetId:e.press,name:`Hydraulic press`,kind:`station`},{key:e.test,assetId:e.test,name:`Inspection conveyor`,kind:`station`},{key:e.packer,assetId:e.packer,name:`Packing robot`,kind:`station`},{key:e.chiller,assetId:e.chiller,name:`Process chiller`,kind:`utility`},{key:e.comp,assetId:e.comp,name:`Air compressor`,kind:`utility`},{key:e.pump,assetId:e.pump,name:`Coolant pump`,kind:`utility`},{key:e.amr,assetId:e.amr,name:`AMR tote shuttle`,kind:`utility`}]}var qe=9.5,Je=162,Ye=176.8;function Xe(e,t){let n=e.id===`wash`?t.wash:e.id===`test`?t.test:null;return{...e,station:n,phase:0,speed:0,items:[],good:-1,scrap:-1,starved:0}}var Ze=(e,t)=>!e.items.some(e=>!e.push&&Math.abs(e.x-t)<9.5),U=(e,t)=>e.find(e=>e.id===t),Qe=(e,t)=>{e.items.push({x:t,push:0,out:!1})};function $e(e,t,n,r,i,a){let o=e.id===`feed`?e.items.some(t=>t.x<e.x1-6.5):n?.state===`running`;if(e.speed=L(e.speed,o?7*a:0,t,.4,i),e.phase=(e.phase+e.speed*t)%6,n){if(e.starved=n.state===`starved`?e.starved+t:0,e.starved>3)for(let t of e.items)t.push||(t.out=!0);if(e.good>=0&&n.good>e.good)for(let t=n.good-e.good;t>0;t--){let t=e.items.filter(e=>!e.out&&!e.push).sort((e,t)=>t.x-e.x)[0];t&&(t.out=!0)}if(e.scrap>=0&&n.scrap>e.scrap){let t=e.items.filter(e=>!e.out&&!e.push).sort((e,t)=>Math.abs(e.x-Je)-Math.abs(t.x-Je))[0];t&&(t.push=.001,t.x0=t.x)}e.good=n.good,e.scrap=n.scrap}let s=e.id===`test`?Ye:e.x1-6,c=e.id===`wash`&&r!==void 0&&!Ze(r,e.x1+3),l=s,u=c?e.x1+2.9:1/0;for(let n of[...e.items].sort((e,t)=>t.x-e.x)){if(n.push){n.push+=t/1.1,n.x=(n.x0??n.x)+(Je-(n.x0??n.x))*Math.min(1,n.push*3);continue}if(n.out){e.id===`test`?n.x=Math.min(n.x+Math.max(e.speed,5)*t,l,Ye):n.x=Math.max(n.x,Math.min(n.x+Math.max(e.speed,5)*t,u)),l=u=n.x-qe;continue}n.x=Math.min(n.x+e.speed*t,l),l=u=n.x-qe}if(e.id===`wash`&&r)for(let t of e.items)!t.push&&t.x>=e.x1+3&&r.items.push({x:t.x,push:0,out:!1});e.items=e.items.filter(t=>t.push?t.push<1:t.x<e.x1+3)}function et(e,t,n,r,i){let a=U(e,`feed`);for(let o of e)$e(o,t,o.station?n(o.station):void 0,a,r,o.station?i(o.station):1)}function tt(e,t){for(let[n,r]of t){let t=e.get(n);if(t&&r.good+r.scrap-t.good-t.scrap>2)return!0}return!1}var nt=42.4,rt=3.6,it=5.8,at=41,ot=50.9,st=18.9,ct=[32,83],lt=87,ut=e=>{let t=1.5/it,n=2.3/it,r=4.3/it;return e<t?.85*z(e/t):e<n?.85+.15*((e-t)/(n-t)):e<r?1:1-z((e-r)/(1-r))},dt=e=>-((e-28)/56)*2.6,ft=e=>Math.min(3,Math.max(1,e/3));function pt(){return{stroke:{t:-1},ram:0,die:{has:!1,pressed:!1,done:0,good:-1,h:null,hit:!1,jolt:0},loader:{phase:`idle`,t:0,x:0,lead:!1},unloader:{phase:`idle`,t:0,x:0,z:6},chute:{x:null,v:0},counts:{strokes:0,loads:0,unloads:0}}}function mt(e){Object.assign(e.die,{has:!1,done:0,good:-1}),e.chute.x=null}var ht=(e,t)=>e.ram<20&&(t.simSpeed>=5?e.stroke.t<0:t.phase===0||t.phase===6),gt=e=>70-Math.max(0,Math.min(278,e))/278*nt;function _t(e,t,n){e.stroke.t<0&&e.die.has&&!e.die.pressed&&e.loader.phase===`idle`&&(n.simSpeed>=5||n.phase>=1&&n.phase<=4)&&(e.stroke.t=0,e.counts.strokes++),e.stroke.t>=0?(e.stroke.t+=t/Math.max(1.2,it/n.simSpeed),e.ram=278*ut(Math.min(1,e.stroke.t)),e.stroke.t>=1&&(e.stroke.t=-1)):e.ram=L(e.ram,0,t,.3,n.still)}var W=(e,t,n,r)=>(e.t+=n/(r.still?.01:t/ft(r.simSpeed)),z(Math.min(1,e.t)));function vt(e,t,n,r,i){let{die:a,loader:o,unloader:s,chute:c}=e;n.pressGood!==void 0&&(a.good>=0&&n.pressGood>a.good&&(a.done=Math.min(a.done+n.pressGood-a.good,3)),a.good=n.pressGood);let l=r.items.find(e=>e.x>=-41.5);o.lead=!!l,l&&o.phase===`idle`&&s.phase===`idle`&&!a.has&&ht(e,n)&&(r.items.splice(r.items.indexOf(l),1),o.phase=`push`,o.t=0),o.phase===`push`?(o.x=W(o,1.5,t,n)*at,o.t>=1&&(a.has=!0,a.pressed=!1,a.h=null,e.counts.loads++,o.phase=`back`,o.t=0)):o.phase===`back`&&(o.x=(1-W(o,.9,t,n))*at,o.t>=1&&(o.phase=`idle`,o.t=0)),s.phase===`idle`&&o.phase===`idle`&&a.has&&a.pressed&&a.done>0&&c.x===null&&ht(e,n)&&(s.phase=`lower`,s.t=0),s.phase===`lower`?(s.z=6*(1-W(s,.25,t,n)),s.t>=1&&(s.phase=`push`,s.t=0,a.has=!1,a.done--,e.counts.unloads++)):s.phase===`push`?(s.x=W(s,1.4,t,n)*ot,s.t>=1&&(s.phase=`lift`,s.t=0,c.x=ct[0],c.v=0)):s.phase===`lift`?(s.z=6*W(s,.2,t,n),s.t>=1&&(s.phase=`back`,s.t=0)):s.phase===`back`&&(s.x=(1-W(s,.9,t,n))*ot,s.t>=1&&(s.phase=`idle`,s.t=0)),c.x!==null&&(c.v=Math.min(14,c.v+16*t),c.x=Math.min(ct[1],c.x+c.v*t),c.x>=ct[1]&&(c.v=0,Ze(i,lt)&&(Qe(i,lt),c.x=null)));let u=gt(e.ram);if(a.has){o.phase===`push`&&(a.pressed=!1);let e=a.pressed?rt:Math.max(rt,Math.min(5,u-24));e<=3.75&&(a.pressed=!0);let t=e.toFixed(2);a.h!==t&&(a.h=t),u<27.900000000000002&&!a.hit&&(a.hit=!0,a.jolt=.22),u>40&&(a.hit=!1)}a.jolt=Math.max(0,a.jolt-t)}function yt(e){return g(e,`[data-belt]`).map(e=>({id:e.dataset.belt??``,x0:+(e.dataset.x0??0),x1:+(e.dataset.x1??0),y0:+(e.dataset.y0??0),y1:+(e.dataset.y1??0),z:+(e.dataset.z??0)}))}var bt=new Map([[`wash`,[-152,-106]]]),G=-108,xt=129;function St(e,t){let{svg:n,P:i}=e,o=i.scale,c=t.map(e=>{let t=b(n,`[data-belt="${e.id}"]`),r=t?b(t,`[data-parts-back]`):null,a=b(n,`[data-parts-front="${e.id}"]`),o=ge(he,e.z,e.id===`test`?rt:5,i),s=Array.from({length:7},()=>{let e=_(`g`,{}),t=_(`g`,{});return e.innerHTML=t.innerHTML=o,e.style.display=t.style.display=`none`,r?.append(e),a?.append(t),{back:e,front:t}});return{b:e,cleats:t?b(t,`[data-cleats]`):null,pool:s}}),u=b(n,`[data-flaps]`),f=b(n,`[data-airknife]`),p=y(f?.dataset.airknife),m=Array.from({length:10},(e,t)=>({el:_(`circle`,{class:`sf-hiss`,style:`display:none`},f),seed:t*.618%1})),h=b(n,`[data-drips]`),g=Array.from({length:10},(e,t)=>({el:_(`ellipse`,{class:`sf-drip-w`,rx:`0.4`,ry:`0.7`,style:`display:none`},h),seed:t*.382%1})),v=b(n,`[data-eye="test"]`);function x(e,n){let a=U(t,`wash`);if(!a)return;let s=0;for(let e of a.items)s=Math.max(s,Math.exp(-(((e.x-G)/3.2)**2)));let c=``;for(let t=0;t<7;t++){let n=6.2+t*3.25,a=s*3.4+Math.sin(e*6+t)*.12,[o,l]=r([G,n,33.2],i),[u,d]=r([G+a,n,24.6+s*1.2],i);c+=`M${o.toFixed(2)} ${l.toFixed(2)}L${u.toFixed(2)} ${d.toFixed(2)}`}d(u,`d`,c);let f=a.items.filter(e=>e.x>G&&e.x<G+12);g.forEach((t,a)=>{let o=f[a%Math.max(1,f.length)];if(!o||n){l(t.el,`0`);return}let s=(e*1.4+t.seed)%1,c=24-s*s*(24-Me),[u,d]=r([o.x-3+t.seed*6,10+t.seed*7%1*12,c],i);t.el.setAttribute(`cx`,u.toFixed(1)),t.el.setAttribute(`cy`,d.toFixed(1)),l(t.el,((1-(o.x-G)/12)*.85).toFixed(2))});let h=a.items.some(e=>Math.abs(e.x-(p[0]??0))<4.5)&&!n;for(let t of m){if(!h){l(t.el,`0`);continue}let n=(e*3+t.seed)%1,[a,s]=r([(p[0]??0)-1-n*5,(p[1]??0)-11+t.seed*22,(p[2]??0)-n*6],i);t.el.setAttribute(`cx`,a.toFixed(1)),t.el.setAttribute(`cy`,s.toFixed(1)),t.el.setAttribute(`r`,((.4+n*1.4)*o*.5).toFixed(2)),l(t.el,(Math.sin(Math.PI*n)*.4).toFixed(2))}}return{draw(t){x(t,e.reducedMotion());let n=!1;for(let{b:e,cleats:t,pool:r}of c){let o=``;for(let t=e.x0+2+e.phase;t<e.x1-1;t+=6)o+=s([t,e.y0+.6],[t,e.y1-.6],e.z,i);d(t,`d`,o);let c=bt.get(e.id);r.forEach((t,r)=>{let o=e.items[r],s=!!o,l=0,u=0;if(o?.push){let e=Math.max(0,(o.push-.3)/.7);l=Math.min(1,e*1.6)*24,u=e>.62?-(((e-.62)/.38)**2)*16:0}let d=o?a(i,[o.x,l,u]):``,f=s&&!!c&&o.x<c[0],p=s&&(!c||o.x>c[1]);d&&(t.back.setAttribute(`transform`,d),t.front.setAttribute(`transform`,d)),t.back.style.display=f?``:`none`,t.front.style.display=p?``:`none`,e.id===`test`&&o&&!o.push&&Math.abs(o.x-xt)<5&&(n=!0)})}return d(v,`data-on`,n?``:null),n}}}var Ct=(e,t)=>[e[0],e[1],e[2]+t],wt=e=>[e.base[0],e.base[1],e.shoulder];function Tt(e,t){let n=wt(e),r=[t[0],t[1],t[2]+e.tool],i=r[0]-n[0],a=r[1]-n[1],o=Math.hypot(i,a)||1e-6,s=r[2]-n[2],c=[i/o,a/o],l=Math.min(e.L1+e.L2-.01,Math.hypot(o,s)),u=Math.atan2(s,o)+Math.acos(Math.max(-1,Math.min(1,(e.L1*e.L1+l*l-e.L2*e.L2)/(2*e.L1*l))));return{E:[n[0]+c[0]*e.L1*Math.cos(u),n[1]+c[1]*e.L1*Math.cos(u),n[2]+e.L1*Math.sin(u)],W:r,n:[-c[1],c[0],0],yaw:Math.atan2(a,i)}}var Et=(e,t)=>[Math.atan2(t[1]-e.base[1],t[0]-e.base[0]),Math.hypot(t[0]-e.base[0],t[1]-e.base[1]),t[2]],Dt=(e,[t,n,r])=>[e.base[0]+Math.cos(t)*n,e.base[1]+Math.sin(t)*n,r];function Ot(e,t,n,r,i=0){let a=Et(e,t),o=Et(e,n),s=Math.atan2(Math.sin(o[0]-a[0]),Math.cos(o[0]-a[0]));if(i){let e=s-Math.sign(s)*2*Math.PI;Math.sin(a[0]+e/2)>Math.sin(a[0]+s/2)&&(s=e)}let c=a[1]+(o[1]-a[1])*r-i*Math.sin(Math.PI*r)*Math.min(1,Math.abs(s)/1.5);return Dt(e,[a[0]+s*r,c,a[2]+(o[2]-a[2])*r])}function kt(e,t,n,r,i){let a=Math.max(t[2],n[2])+r,o=Ot(e,t,n,z(de((i-.16)/.68)),e.tuck),s=i<.5?t[2]+(a-t[2])*z(de(i/.34)):a+(n[2]-a)*z(de((i-.66)/.34));return[o[0],o[1],s]}function At(e,t,n){return[{arc:Ct(e.pick,12),lift:4,s:1},{wait:`pick`},{lin:e.pick,s:.5},{grip:!0,s:.28},{pause:.12},{wait:`place`},{arc:t,lift:12,s:1.7},{grip:!1,s:.26},{lin:Ct(t,n?14:9),s:.32},{arc:e.home,lift:0,s:1.1,home:!0}]}function jt(e,t){let n=e.place??t.placeAt?.();if(!n)throw Error(`Robot ${e.id} has no place point. Give its RobotSpec a 'place' or its hooks a 'placeAt'.`);return{spec:e,hooks:t,state:{id:e.id,tip:e.home,from:e.home,step:-1,t:0,holding:!1,grip:0,queue:0,last:-1,dirty:!0,moved:0,eject:void 0,nestLast:-1,onNest:!1},plan:At(e,n,!!t.placeAt)}}function Mt(e){e.state.queue=0,e.state.last=-1,e.state.nestLast=-1,e.state.onNest=!1}function Nt(e,t){if(t===`pick`)return e.hooks.pending?.()??!0;if(e.hooks.canPlace)return e.hooks.canPlace();let n=e.spec.place;return!e.hooks.belt||!n?!0:Ze(e.hooks.belt,n[0])}function Pt(e,t,{own:n,nest:r,halted:i},a,o){let{spec:s,hooks:c,state:l}=e;if(n&&(l.last>=0&&n.good>l.last&&(l.queue=Math.min(2,l.queue+n.good-l.last)),l.last=n.good),r&&(l.nestLast>=0&&r.good>l.nestLast&&(l.eject=0,l.onNest=!0),l.nestLast=r.good),s.nestSel&&l.eject!==void 0&&(l.eject=Math.min(1,l.eject+t/(a?.01:.7))),!i&&(l.step<0&&l.queue>0&&o&&(l.step=0,l.t=0,l.from=l.tip,c.placeAt&&(e.plan=At(s,c.placeAt(),!0))),l.step>=0)){let n=e.plan[l.step];if(!n)throw Error(`Robot ${s.id} stepped past its plan (step ${l.step}). Plans are rebuilt on cycle start.`);let r=!1;if(n.wait)r=Nt(e,n.wait);else{l.t+=t/(a?.01:n.s??n.pause??1);let e=Math.min(1,l.t);n.arc?l.tip=kt(s,l.from,n.arc,n.lift??0,e):n.lin?l.tip=Ot(s,l.from,n.lin,z(e)):n.grip!==void 0&&(l.grip=n.grip?z(e):1-z(e)),r=l.t>=1,n.home&&l.queue>0&&e>.35&&(r=!0,l.step=-1)}r&&(n.grip===!0&&(l.holding=!0,l.onNest=!1,l.queue=Math.max(0,l.queue-1),c.onPick?.()),n.grip===!1&&(l.holding=!1,c.onPlace?c.onPlace():c.belt&&s.place&&Qe(c.belt,s.place[0]),l.moved++),l.step=l.step>=0&&l.step+1<e.plan.length?l.step+1:l.queue>0&&l.step===-1?0:-1,l.step===0&&c.placeAt&&(e.plan=At(s,c.placeAt(),!0)),l.t=0,l.from=l.tip),l.dirty=!0}}var Ft=[[`bearing_failure`,.3],[`belt_misalignment`,.15],[`belt_slip`,.1]];function It(e,t,n){let{svg:i,P:a,feed:o,ids:s}=e,c=a.scale,u=(e,...t)=>Ce(o,e,...t),f=e=>E(i,e),p=ue(i),m=f(s.press),h={age:0,puddle:_(`path`,{class:`sf-puddle`},m),sheen:_(`path`,{class:`sf-puddle-sheen`},m),drops:I(m,3,`ellipse`,`sf-drip`),splash:_(`path`,{class:`sf-splash`},m)},g=[{at:[70,-19,19],dir:[.6,1],on:()=>u(s.press,`air_pressure_loss`),hiss:Te(f(s.press))},{at:[56,-24,22],dir:[.4,-.5],on:()=>u(s.press,`overpressure`),hiss:Te(f(s.press))}],v=we(m,3,4),x=e=>e.id===`wash`?[-98,40,14]:[e.x1-3,e.y1,e.z],S=n.flatMap(e=>e.station?[{id:e.station,at:x(e),smoke:Te(f(e.station)),heat:we(f(e.station),2,3)}]:[]),C=f(s.cnc),w=[-266,30,34],T=I(C,24,`path`,`sf-spark`),D=we(C),O=b(i,`[data-spark="${s.cnc}"]`)?.parentElement?.querySelector(`.sf-hmi-head`),k=t.map(({id:e,motion:t})=>({id:e,motion:t,bleed:Te(f(e)),heat:we(f(e),3,3),hit:-1})),A=b(i,`[data-drain]`),j=y(A?.dataset.drain),M=A?I(A,9,`circle`,`sf-hiss`):[],N=b(i,`[data-drain-led]`);return{shake:p,draw(t,n,i,o){if(!o)return;let f=e.reducedMotion(),m=n%24/24,_=m<.035&&!f;d(N,`data-on`,m<.06?``:null);for(let e of M){if(!_){l(e.el,`0`);continue}let t=(m/.035+e.seed)%1,[n,i]=r([(j[0]??0)+t*6+Math.sin(e.seed*30)*1.5,(j[1]??0)+Math.cos(e.seed*20)*2,(j[2]??0)-t*t*4],a);re(e.el,n,i),e.el.setAttribute(`r`,((.4+t*1.8)*c*.5).toFixed(2)),l(e.el,(Math.sin(Math.PI*t)*.5).toFixed(2))}let y=u(s.press,`seal_leak`);h.age=y?Math.min(h.age+t,90):Math.max(0,h.age-t*.5);let b=h.age>0?4+5*(1-Math.exp(-h.age/12)):0,x=b*.62;d(h.puddle,`d`,b?Se([8,29],x,19.05,a,36):``),d(h.sheen,`d`,x>2?Se([7.4,28.4],x*.45,19.1,a,24):``);let C=76-Math.max(0,Math.min(278,i))/278*nt,E=``;for(let e of h.drops){if(!y||f){l(e.el,`0`);continue}let t=(n*.55+e.seed)%1,i=t<.35?0:((t-.35)/.65)**2,[o,s]=r([8,32.2,C-.4-i*(C-19.4)],a);re(e.el,o,s),e.el.setAttribute(`rx`,`0.55`),e.el.setAttribute(`ry`,(t<.35?.4+t*1.6:.95).toFixed(2)),l(e.el,`0.95`),t>.96&&(E=Se([8,32.2],.8+(t-.96)*40,19.1,a,16))}d(h.splash,`d`,E);for(let e of g)e.hiss.draw(e.on()&&!f,n,a,e.at,e.dir);let A=u(s.cnc,`tool_breakage`,`spindle_seizure`);for(let e of T){let t=(n*1.3+e.seed*.3)%1;if(!A||f||t>.45){l(e.el,`0`);continue}let i=t/.45,o=e.seed*6.283+Math.floor(n*1.3)*2.1,s=10+e.seed*9,c=e=>r([w[0]+Math.cos(o)*s*e,w[1]+Math.sin(o)*s*e,w[2]+7*e-24*e*e],a),[u,d]=c(Math.max(0,i-.08)),[p,m]=c(i);e.el.setAttribute(`d`,`M${u.toFixed(1)} ${d.toFixed(1)}L${p.toFixed(1)} ${m.toFixed(1)}`),l(e.el,(1-i).toFixed(2))}d(O,`data-s`,u(s.cnc,`coolant_sensor_failure`)&&(f||Math.sin(n*6)>0)?`a`:null),D.draw(u(s.cnc,`thermal_overload`,`spindle_seizure`)&&!f,n,a,[-294,-12,116]),v.draw(u(s.press,`pump_failure`)&&!f,n,a,[38,-14,22]);for(let e of S)e.smoke.draw(u(e.id,`belt_slip`)&&!f,n,a,e.at,[.5,-.3]),e.heat.draw(u(e.id,`drive_failure`)&&!f,n,a,e.at);for(let e of k){e.bleed.draw(u(e.id,`gripper_misgrip`)&&!f,n,a,e.motion.state.tip,[.4,1]);let t=wt(e.motion.spec);e.heat.draw(u(e.id,`joint_overtemp`)&&!f,n,a,[t[0]-3,t[1],t[2]+6]),u(e.id,`collision_stop`)?e.hit<0&&(e.hit=n):e.hit=-1}let P=+!f;p(s.cnc,P*(u(s.cnc,`spindle_seizure`)?.5:u(s.cnc,`bearing_wear`)?.2:0),n);for(let e of[s.wash,s.test])p(e,P*(Ft.find(([t])=>u(e,t))?.[1]??0),n);for(let e of k)p(e.id,e.hit<0?0:P*.8*Math.exp(-(n-e.hit)*4),n);u(s.press,`valve_stuck`)&&p(s.press,P*.12,n)}}}var K={x:189.6,y:1.6,cols:3,rows:3,layers:4,w:7,d:10,h:3.6,gap:.9},Lt={w:22.8,d:31.8};function Rt(e){let t=[];for(let n=0;n<K.layers;n++){let r=[];for(let e=0;e<K.rows;e++)for(let t=0;t<K.cols;t++)r.push([K.x+t*(K.w+K.gap),K.y+e*(K.d+K.gap)]);r.sort((t,n)=>e([t[0],t[1],0])-e([n[0],n[1],0]));for(let[e,i]of r){let r=1+n*K.h;t.push({cx:e,cy:i,x:e+K.w/2,y:i+K.d/2,z:r,top:r+K.h})}}return t}var zt=(e,t)=>{let n=e[Math.min(t,e.length-1)];if(!n)throw Error(`Tote has no slots. Build them with buildToteSlots() before placing.`);return[n.x,n.y,n.top]},Bt=[[`out`,[0,-143]],[`out`,[60,-143]],[`away`,[60,-143]],[`in`,[0,-143]],[`dock`,[0,0]]],Vt=8;function Ht(){return{count:-1,swap:{t:-1,pending:!1},lane:{has:!1,t:-1},amr:{leg:-1,t:0,at:[0,0],from:[0,0],carrying:!1,trips:0},lastScrap:-1,pusher:{ext:0,until:0}}}function Ut(e){e.lastScrap=-1}var Wt=e=>{e.swap.pending=!0},Gt=(e,t)=>e.swap.t<0&&e.count>=0&&e.count<t;function Kt(e,t){e.count++,e.count>=t&&Wt(e)}function qt(e,t,n){return t>K.x&&t<K.x+Lt.w&&n>K.y&&n<K.y+Lt.d?1+Math.floor(Math.max(0,e.count)/(K.cols*K.rows))*K.h:null}function Jt(e,t,n,{test:r,packer:i,amrMoving:a},o,s){i&&e.count<0&&(e.count=i.good%o),r&&(e.lastScrap>=0&&r.scrap>e.lastScrap&&(e.pusher.until=n+.6),e.lastScrap=r.scrap),e.swap.pending&&e.swap.t<0&&!e.lane.has&&(e.swap.pending=!1,e.swap.t=0,e.count=0),e.swap.t>=0&&(e.swap.t+=t/(s?.01:1),e.swap.t>=2&&(e.swap.t=-1,e.lane.has=!0)),e.lane.has&&e.amr.leg<0&&!e.amr.carrying&&e.lane.t<0&&a&&(e.lane.t=0),e.lane.t>=0&&(e.lane.t+=t/(s?.01:1.4),e.lane.t>=1&&(e.lane.t=-1,e.lane.has=!1,e.amr.carrying=!0,e.amr.leg=0,e.amr.t=0,e.amr.from=[...e.amr.at]));let c=e.amr,l=c.leg>=0&&a?Bt[c.leg]:void 0;if(l){let[e,n]=l,r=Math.hypot(n[0]-c.from[0],n[1]-c.from[1]);c.t+=t/(s?.01:e===`away`?Vt:Math.max(.6,r/16));let i=z(Math.min(1,c.t));c.at=[c.from[0]+(n[0]-c.from[0])*i,c.from[1]+(n[1]-c.from[1])*i],c.t>=1&&(e===`away`&&c.carrying&&(c.carrying=!1,c.trips++),c.leg=c.leg+1<Bt.length?c.leg+1:-1,c.t=0,c.from=[...c.at])}e.pusher.ext=L(e.pusher.ext,n<e.pusher.until?24:0,t,n<e.pusher.until?.06:.22,s)}function Yt(e){let{ids:t}=e,n=e.belts.map(e=>Xe(e,t)),r=pt(),i=Ht(),a=Rt(e.depth),o=U(n,`test`),s=U(n,`wash`),c=()=>o?.items.find(e=>e.out&&!e.push&&e.x>=176.60000000000002);return{ids:t,belts:n,press:r,pack:i,slots:a,robots:e.robots.map(e=>e.pack?jt(e,{station:t.packer,pending:()=>!!c(),placeAt:()=>zt(a,Math.max(0,i.count)),canPlace:()=>Gt(i,a.length),onPick:()=>{let e=c();o&&e&&o.items.splice(o.items.indexOf(e),1)},onPlace:()=>Kt(i,a.length),floorAt:(e,t)=>qt(i,e,t)}):jt(e,{station:t.robot,nest:t.cnc,belt:s})),readings:new Map,introDone:!0}}function Xt(e){for(let t of e.belts)t.items=[],t.good=t.scrap=-1;for(let t of e.robots)Mt(t);mt(e.press),Ut(e.pack)}var Zt=e=>[e.cnc,e.robot,e.wash,e.press,e.test,e.packer];function Qt(e,t){let n=new Map;for(let r of Zt(e.ids)){let e=t.station(r);e&&n.set(r,e)}let r=tt(e.readings,n);e.readings.clear();for(let[t,r]of n)e.readings.set(t,r);return r&&Xt(e),r}function $t(e,t,n,r,i){let{ids:a,press:o,pack:s}=e;Qt(e,t);let c={simSpeed:t.simSpeed(),phase:Math.round(t.num(a.press,`press_phase`)),pressGood:t.station(a.press)?.good,still:i};_t(o,n,c);let l=i?.85:.6+.4*Math.abs(Math.sin(r*4));et(e.belts,n,e=>t.station(e),i,e=>t.faults(e).includes(`belt_slip`)?l:1),Jt(s,n,r,{test:t.station(a.test),packer:t.station(a.packer),amrMoving:t.num(a.amr,`running`)>0},e.slots.length,i);for(let r of e.robots){let a=t.station(r.hooks.station);Pt(r,n,{own:a,nest:r.hooks.nest?t.station(r.hooks.nest):void 0,halted:a?.state===`down_unplanned`},i,e.introDone)}let u=U(e.belts,`feed`),d=U(e.belts,`test`);u&&d&&vt(o,n,c,u,d)}function en(e){let{svg:t,feed:n,ids:r}=e,i=b(t,`[data-work="cnc"]`);return{draw(){n.buffers().forEach((e,n)=>{for(let r of g(t,`[data-slot^="b${n}:"]`))d(r,`data-on`,+(r.dataset.slot?.split(`:`)[1]??0)<e.level?``:null)}),d(i,`data-on`,n.station(r.cnc)?.state===`running`?``:null)}}}function tn(e){let{svg:t,P:n,feed:i,ids:s}=e,c=n.scale,u=(e,t,n=0)=>i.num(e,t,n),f={cncSpin:0,cncHead:0,cncRpm:0,washing:0,flash:0},p=b(t,`[data-move="cnc-head"]`),m=b(t,`[data-spin="cnc"]`),h=b(t,`[data-carousel]`),[v=0,x=0,S=0,C=0]=y(h?.dataset.carousel),w={rings:Array.from({length:12},()=>_(`path`,{class:`iso-line`,"data-tone":`lo`},h)),tools:Array.from({length:12},()=>_(`path`,{class:`iso-line`,"data-tone":`mid`},h)),angle:0,target:0},T=-1,E=b(t,`[data-mist]`),D=y(E?.dataset.mist),O=Array.from({length:14},(e,t)=>({el:_(`circle`,{class:`sf-mist`,style:`display:none`},E),seed:t*1.37})),k=b(t,`[data-steam]`),A=y(k?.dataset.steam),j=Array.from({length:7},(e,t)=>({el:_(`circle`,{class:`sf-steam`,style:`display:none`},k),seed:t/7})),M=g(t,`[data-beam]`),N=b(t,`[data-oil]`),P=y(N?.dataset.oil),ee=b(t,`[data-flash]`);return{resync(){T=-1},draw(t,h,g){let _=e.reducedMotion(),y=i.station(s.cnc),b=y?.state===`running`;f.cncRpm=L(f.cncRpm,u(s.cnc,`spindle_speed_feedback`),t,.8,_),_||(f.cncSpin+=f.cncRpm/8500*2.4*fe*t),f.cncHead=L(f.cncHead,b?-3.2-.8*Math.sin(h*.8)*Math.min(1,u(s.cnc,`feed_rate`)/1750):2,t,.5,_),d(p,`transform`,a(n,[0,0,f.cncHead])),d(m,`d`,ye(n,`z`,[-266,30,0],4.2,44.3,49.7,f.cncSpin,8)),y&&(T>=0&&y.good>T&&(w.target+=fe/12),T=y.good),w.angle=L(w.angle,w.target,t,.35,_),w.rings.forEach((e,t)=>{let r=w.angle+t*fe/12,i=[v,x+C*Math.cos(r),S+C*Math.sin(r)];d(e,`d`,o(i,1.5,`x`,n)),d(w.tools[t],`d`,o(i,.6,`x`,n)),d(e,`data-tone`,Math.abs(Math.sin(r/2-Math.PI/4))<.14?`lit`:`lo`)});let E=+!!b;for(let e of O){let t=(h*1.7+e.seed)%1,i=e.seed*4.1+h*.6,a=1.6+t*5,[o,s]=r([(D[0]??0)+Math.cos(i)*a,(D[1]??0)+Math.sin(i)*a,(D[2]??0)-2+t*3-t*t*5],n);re(e.el,o,s),e.el.setAttribute(`r`,(.25+t*.5).toFixed(2)),l(e.el,(E*Math.sin(Math.PI*t)*.7).toFixed(2))}f.washing=L(f.washing,+(i.station(s.wash)?.state===`running`),t,2.5,_);for(let e of j){let t=(h*.22+e.seed)%1,[i,a]=r([(A[0]??0)+t*6+Math.sin(h+e.seed*9)*1.5,(A[1]??0)-t*3,(A[2]??0)+t*26],n);re(e.el,i,a),e.el.setAttribute(`r`,((1.6+t*6)*c*.6).toFixed(2)),l(e.el,(f.washing*Math.sin(Math.PI*t)**1.5*.16).toFixed(3))}let k=i.station(s.press),te=k&&k.state!==`off_shift`?Math.floor(h*14)%(M.length+6):-1;for(let[e,t]of M.entries())d(t,`data-on`,e===te?``:null);let ne=de(u(s.press,`oil_level`,90)/100),[F=0,I=0,ie=0,ae=0]=P;d(N,`d`,`M${F} ${-(I+(ae-I)*ne)}H${ie}V${-I}H${F}Z`),f.flash=g?1:f.flash*Math.exp(-t/.25),ee&&(ee.style.opacity=(f.flash*.55).toFixed(2))}}}var nn=[[162,37,0],[167.6,38.4,0],[163.4,40.6,0],[168.8,36.6,1],[161.8,39,1],[166,41,1],[164.6,37.4,2],[169,40,2],[162.6,40.8,2],[166.4,38.6,3]],rn=55,an=`M246 4H258V4.6H246Z`,on=`M246 4H249V4.6H246Z`,q=[272,17.5,-14],sn=22,cn=.9;function ln(e,t,n){let{svg:o,P:s}=e,c=b(o,`[data-move="pusher"]`),u=b(o,`[data-rod="pusher"]`),f=b(o,`[data-tote]`),p=f?b(f,`[data-tote-parts]`):null,m=b(o,`[data-tote-over]`),h=b(o,`[data-tote-full]`),g=h?b(h,`[data-tote-parts]`):null,v=b(o,`[data-amr]`),y=_(`g`,{transform:a(s,[rn,0,0])},v?b(v,`[data-tote-parts]`):null),x=b(o,`[data-tote-amr]`),S=b(o,`[data-amr-led]`),C=_(`path`,{class:`sf-scan`},v),T=_(`path`,{class:`sf-scan-beam`},v),E=(()=>{let e=Array.from({length:13},(e,t)=>{let n=-cn+t/12*2*cn;return r([q[0]+Math.cos(n)*sn,q[1]+Math.sin(n)*sn,q[2]],s)}),[t,n]=r(q,s);return`M${t.toFixed(1)} ${n.toFixed(1)}${e.map(([e,t])=>`L${e.toFixed(1)} ${t.toFixed(1)}`).join(``)}Z`})(),D=b(o,`[data-scrap]`),O=nn.map(([e,t,n])=>{let r=_(`g`,{class:`sf-part`},D);return r.innerHTML=ge({x:e,y:t,w:5,d:3.6,r:.6},5.4+n*1.6,2.4,s),r}),k=n.map(e=>{let t=ge({x:e.cx,y:e.cy,w:K.w,d:K.d,r:.8},e.z,K.h,s),n=_(`g`,{class:`sf-part`},p);n.innerHTML=t;for(let e of[g,y])_(`g`,{class:`sf-part`,"data-on":``},e).innerHTML=t;return n}),A=!1,j=!1;return{draw(e,n,o,p){let{swap:g,lane:_,amr:y}=t;if(g.t>=0){let e=z(Math.min(1,g.t/1.1)),t=z(Math.max(0,Math.min(1,(g.t-1.1)/.9)));d(h,`data-on`,``),h?.setAttribute(`transform`,a(s,[e*27,0,0]));let n=a(s,[0,(1-t)*44,0]),r=g.t>1.1?`1`:`0`;for(let e of[f,m])e?.setAttribute(`transform`,n),e&&(e.style.opacity=r)}else if(A){h?.setAttribute(`transform`,a(s,[27,0,0]));for(let e of[f,m])e&&(e.style.opacity=``),e?.removeAttribute(`transform`)}A=g.t>=0,_.t>=0?h?.setAttribute(`transform`,a(s,[27+z(Math.min(1,_.t))*28,0,0])):j&&(d(h,`data-on`,null),h?.removeAttribute(`transform`)),j=_.t>=0,v?.setAttribute(`transform`,a(s,[y.at[0],y.at[1],0])),v&&(v.style.opacity=(1-Math.max(0,Math.min(1,(y.at[0]-20)/30))).toFixed(2)),d(x,`data-on`,y.carrying?``:null);let b=n.includes(`low_battery`),D=n.includes(`nav_blocked`),M=p||Math.sin(o*6)>0;d(S,`d`,b?on:an),d(S,`data-s`,b||D?M?`warn`:null:n.length?`fault`:y.leg<0&&_.has?`warn`:`live`),d(C,`d`,D?E:``),l(C,D?p?`0.5`:(.35+.25*Math.sin(o*6)).toFixed(2):`0`);let N=``;if(D&&!p){let e=-cn+(Math.sin(o*2.4)+1)/2*2*cn,[t,n]=r(q,s),[i,a]=r([q[0]+Math.cos(e)*sn,q[1]+Math.sin(e)*sn,q[2]],s);N=`M${t.toFixed(1)} ${n.toFixed(1)}L${i.toFixed(1)} ${a.toFixed(1)}`}if(d(T,`d`,N),e!==void 0)for(let[t,n]of O.entries())d(n,`data-on`,t<e?``:null);for(let[e,n]of k.entries())d(n,`data-on`,e<t.count?``:null);c?.setAttribute(`transform`,a(s,[0,t.pusher.ext,0])),u&&(u.innerHTML=w(i({x:161.2,y:-4.4,w:1.6,d:1.2+t.pusher.ext,r:.6},25.6,1.6,s,2),{tone:`hi`,crease:`none`}))}}}var un={x:-3.5,y:10,w:7,d:10,r:1},dn=24;function fn(e,t,n){let{svg:r,P:i}=e,o=g(r,`[data-move="press-ram"]`),s=g(r,`[data-colstub]`),c=b(r,`[data-rod="press"]`),l=b(r,`[data-work="press"]`),u=b(r,`[data-move="loader"]`),f=b(r,`[data-push-part]`),p=b(r,`[data-feed-eye]`),m=b(r,`[data-move="unloader"]`),h=m?b(m,`[data-lift]`):null,_=b(r,`[data-pull-part]`),v=b(r,`[data-chute-part]`),S=null;return{draw(r){let{ram:g,loader:b,unloader:C,chute:T,die:E}=t,D=-(Math.max(0,Math.min(278,g))/278)*nt;for(let e of o)d(e,`transform`,a(i,[0,0,D]));let O=84+D;for(let e of s){let[t=0,n=0]=y(e.dataset.colstub);e.innerHTML=w(x(t,n,3.2,O,92-O,i,20),{tone:`mid`,crease:`none`})}c&&(c.innerHTML=w(x(0,15,4.6,O,92-O,i,28),{tone:`hi`,crease:`none`})),d(p,`data-s`,b.lead?`g`:null),d(u,`transform`,b.x?a(i,[b.x,0,0]):null),d(f,`data-on`,b.phase===`push`?``:null),d(f,`transform`,a(i,[-41+b.x,0,0])),d(m,`transform`,a(i,[C.x,0,0])),d(h,`transform`,a(i,[0,0,C.z]));let k=C.phase===`push`;d(_,`data-on`,k?``:null),d(_,`transform`,a(i,[Math.max(0,C.x-st),0,0])),d(v,`data-on`,T.x===null?null:``),T.x!==null&&d(v,`transform`,a(i,[T.x,0,dt(T.x)])),d(l,`data-on`,E.has&&b.phase!==`push`&&!k?``:null),E.has&&E.h!==null&&l&&S!==E.h&&(S=E.h,l.innerHTML=ge(un,dn,Math.max(rt,+E.h),i)),n(e.ids.press,e.reducedMotion()?0:E.jolt*2.2,r)}}}var pn=e=>`<g class="sf-steel">${e}</g>`;function mn(e,t,n){let{svg:o,P:c}=e,{spec:l,state:u}=t,f=wt(l),p=b(o,`[data-robot="${l.id}"]`),m=l.late==null?null:b(o,`[data-robot-late="${l.id}"]`),h=l.nestSel?b(o,l.nestSel):null,g=b(o,`[data-work="cnc"]`),[_,v,y]=l.part,x=e=>ge({x:e[0]-_/2,y:e[1]-v/2,w:_,d:v,r:1},e[2]-y,y,c);function S(e,r){if(Math.abs(e-l.pick[0])<_&&Math.abs(r-l.pick[1])<v)return l.pick[2]-y;let i=t.hooks.floorAt?.(e,r);if(i!=null)return i;for(let t of n)if(e>t.x0&&e<t.x1&&r>t.y0&&r<t.y1)return t.z;return 0}function T(){let{E:e,W:t,n,yaw:a}=Tt(l,u.tip),o=[],d=(e,t,n)=>{o.push({key:n??C(e,c),x:e[0],svg:t})},h=(e,t)=>ce(N(t,e)),g=S(u.tip[0],u.tip[1]),b=u.tip[2]-(u.holding?y:0)-g,T=.5*Math.exp(-Math.max(0,b)/16);T>.03&&d([u.tip[0],u.tip[1],g],`<path class="sf-shadow" style="opacity:${T.toFixed(2)}" d="${Se([u.tip[0],u.tip[1]],(u.holding?Math.max(_,v)*.5:2.6)+b*.04,g+.06,c,24)}"/>`,-1e9),d(f,`<path class="sf-j1" d="${s([l.base[0]+Math.cos(a)*2.2,l.base[1]+Math.sin(a)*2.2],[l.base[0]+Math.cos(a)*5.6,l.base[1]+Math.sin(a)*5.6],14.45,c)}"/>`,-1e8),d(f,w(ie(-5.4,5.4,6.2,P(f,n),c),{tone:`mid`})),d(A(f,R(n,5.6)),w(ie(5.4,6.4,3.4,P(f,n),c),{tone:`mid`}));let E=R(A(f,e),.5);d(E,w(oe([[0,3.6],[l.L1,2.9]],P(f,h(f,e)),c),{tone:`mid`})),d(e,w(ie(-4.2,4.2,4.4,P(e,n),c),{tone:`mid`})),d(R(A(e,t),.5),w(oe([[0,2.7],[l.L2,2.1]],P(e,h(e,t)),c),{tone:`mid`})),d(t,w(ie(-3,3,2.8,P(t,n),c),{tone:`mid`})),d(A(t,[0,0,-1]),pn(w(oe([[0,2.2],[1.6,2.2]],P(A(t,[0,0,-.2]),[0,0,-1]),c),{tone:`mid`,crease:`lo`}))),d(A(t,[0,0,-3.6]),w(i({x:t[0]-3,y:t[1]-2.4,w:6,d:4.8,r:.8},t[2]-5.6,4,c,2,.3),{tone:`mid`}));let[D,O]=r([t[0]+1.6,t[1]+2.45,t[2]-3.2],c);if(d(A(t,[.5,2.6,-3.2]),`<circle class="sf-gled" data-s="${u.holding?`g`:u.step>=0?`a`:``}" cx="${D.toFixed(2)}" cy="${O.toFixed(2)}" r="0.42"/>`),l.vacuum){let e=t[2]-5.6,n=u.tip[2]+.8;d([t[0],t[1],(e+n)/2],pn(w(oe([[0,.8],[e-n,.8]],P([t[0],t[1],e],[0,0,-1]),c),{tone:`mid`,crease:`none`}))),d([u.tip[0],u.tip[1],u.tip[2]+.4],w(oe([[0,1.1],[.8,2.3]],P([u.tip[0],u.tip[1],n],[0,0,-1]),c),{tone:`lo`}))}else{let e=_/2+.6+(1-u.grip)*1.8;d(A(t,[0,0,-6.2]),pn(w(i({x:t[0]-e-1.2,y:t[1]-1.6,w:2*e+2.4,d:3.2,r:.6},t[2]-6.8,1.2,c,2,.2),{tone:`mid`})));let n=u.tip[2]-y*.7;for(let r of[-1,1]){let a=t[0]+r*(e+.6);d([a,t[1],(n+t[2]-6.8)/2],pn(w(i({x:a-.6,y:t[1]-1.6,w:1.2,d:3.2,r:.3},n,t[2]-6.8-n,c,2),{tone:`mid`,crease:`lo`}))),d([a-r*.7,t[1],n+1.2],w(i({x:a-r*.6-(r>0?.35:0),y:t[1]-1.3,w:.35,d:2.6,r:.1},n+.2,2,c,2),{tone:`lo`,crease:`none`}))}}let k=(e,t)=>A(e,R(n,t)),j=[k([f[0],f[1],12],6.9),k(f,6.6),k(A(f,R(h(f,e),l.L1*.5)),3.9),k(e,4.8),k(A(e,R(h(e,t),6)),3.2)],M=e=>e.map((e,t)=>{let[n,i]=r(e,c);return`${t?`L`:`M`}${n.toFixed(2)} ${i.toFixed(2)}`}).join(``),ee=M(j),te=[j[2],j[4]].map(e=>r(e,c));d(k(E,5),`<path class="sf-cable" d="${ee}"/><path class="sf-cable-hi" d="${ee}"/>${te.map(([e,t])=>`<circle class="sf-clip" cx="${e.toFixed(1)}" cy="${t.toFixed(1)}" r="0.9"/>`).join(``)}`);let ne=k(A(e,R(h(e,t),l.L2*.72)),2.6);for(let[e,n]of[[2.2,-2.2],[2.8,-3.8]]){let r=k(A(t,[0,0,n]),e),i=A(R(A(r,ne),.5),[0,0,1.8]);d(A(r,[0,0,2]),`<path class="sf-hose" d="${M([r,k(A(t,[0,0,n+2.4]),e+.6),i,ne])}"/>`)}u.holding&&d(A(u.tip,[0,0,-y/2]),x(u.tip)),o.sort((e,t)=>e.key-t.key);let F=e=>!!m&&l.late!==void 0&&e.x>=l.late&&e.key>-1e8;m&&(m.innerHTML=o.filter(F).map(e=>e.svg).join(``)),p&&(p.innerHTML=o.filter(e=>!F(e)).map(e=>e.svg).join(``))}return{draw(){h&&(d(h,`data-on`,u.onNest?``:null),d(h,`transform`,u.eject!==void 0&&u.eject<1?a(c,[-(1-z(u.eject))*10,0,0]):null),u.eject!==void 0&&u.eject<1&&d(g,`data-on`,null)),u.dirty&&=(T(),!1)}}}var hn=1e3,gn={x:-318,y:-32,w:540,d:96,r:8},_n={x:-262,y:-176,w:410,d:92,r:8},J=[60,-90,0],vn={..._n,x:_n.x+J[0],y:_n.y+J[1]},Y={x:-338,y:-286,w:660,d:368,r:16},yn=u([...h(Y,-21,-14),...h(gn,-14,0),...h(vn,-14,0),[-288,-12,122],[0,15,134],[-200+J[0],-150+J[1],60]],hn,470,{pad:26,azimuth:60}),bn=[{id:`1`,base:[-205,-12],shoulder:20,L1:38,L2:34,tool:9,pick:[-244.5,29,29],place:[-166,15,29],home:[-206,8,52],part:[7,10,5],nestSel:`[data-nest]`,tuck:12,late:-182},{id:`2`,pack:!0,vacuum:!0,base:[198,-12],shoulder:20,L1:30,L2:28,tool:24,pick:[176.8,15,24.6],home:[194,6,44],part:[7,10,3.6],tuck:0}],xn=[94,-130,0],Sn=[-84,-130,0],Cn=.5625,wn=[-68,-128,0],Tn=[52,-128,0],En=e=>[Sn[0]+J[0]+(e[0]-xn[0])*Cn,Sn[1]+J[1]+(e[1]-xn[1])*Cn,e[2]*Cn],Dn=En(ne),On=En(te),X=2.2,kn=-182,An=-176.5,jn=-268,Mn=-256,Nn=[De[0]+J[0],De[1]+J[1],De[2]],Pn=Dn[0]+8,Fn={z:X,flowAloftBeforeY:-174,routes:[{id:`supply`,medium:`coolant`,r:1.8,pts:[[-176,-188.4,40],[-176,-182,40],[-176,kn,X],[jn,kn,X],[jn,-22,X]]},{id:`return`,medium:`coolant`,r:1.8,reverse:!0,pts:[Dn,[Pn,Dn[1],Dn[2]],[Pn,Dn[1],X],[Pn,An,X],[Mn,An,X],[Mn,-22,X]]},{id:`discharge`,medium:`coolant`,r:1.8,pts:[On,[On[0],On[1],Nn[2]],Nn]},{id:`air`,medium:`air`,r:1.2,pts:[[70,-204,24],[70,-192,24],[70,-192,X],[70,-24,X]]}],posts:[[-236,kn,1.8],[jn,-130,1.8],[jn,-80,1.8],[Mn,-110,1.8],[Mn,-60,1.8],[-110,An,1.8],[-40,An,1.8],[70,-150,1.2],[70,-106,1.2],[70,-62,1.2]]};function In(e){let{L:t,screws:n}=e,r=[ee(e,Y)],i=Y.x+6,a=Y.x+Y.w-6;r.push(t([-150,-146.6,-106,-102.6].map(e=>s([i,e],[a,e],-14,yn)).join(``),{className:`sf-aisle`}));let o=[];for(let e=Y.x+40;e<Y.x+Y.w-20;e+=40)o.push(s([e,Y.y+6],[e,Y.y+Y.d-6],-14,yn));return r.push(t(o.join(``),{className:`sf-joint`})),r.push(n(c(Y,12),-14)),r.join(``)}var Ln=e=>{let{svg:t,P:n,feed:r,ids:i}=e,a=Yt({ids:i,robots:bn,belts:yt(t),depth:e=>C(e,n)}),o=[i.robot,i.packer],s=It(e,a.robots.map((e,t)=>({id:o[t]??``,motion:e})),a.belts),c=be(e,s.shake),l=je(e,s.shake),u=ke(e,s.shake),d=new Set([i.cnc,i.robot,i.wash,i.press,i.test,i.packer]),f=(e,t,n=0)=>r.num(e,t,n),p=new Map([[i.cnc,()=>f(i.cnc,`spindle_load`)/100],[i.wash,()=>f(i.wash,`motor_current`)/12],[i.press,()=>f(i.press,`system_pressure`)/315],[i.test,()=>{let e=r.station(i.test);return e?e.good/Math.max(1,e.good+e.scrap):0}]]),m=new Map([[`press`,()=>f(i.press,`system_pressure`)/315],[`frl`,()=>f(i.press,`clamp_pressure`,f(i.comp,`header_pressure`))/10]]),h=ve(e,{needle:e=>l.needle(e)??u.needle(e)??m.get(e)?.()??0,bar:e=>c.bar(e)??l.bar(e)??u.bar(e)??p.get(e)?.()??0,alertsHigh:e=>e!==i.test,ready:()=>!!r.station(i.cnc)}),g=e=>r.station(e)?.state===`running`,_=le(e,e=>e.id===`air`?g(i.press)?6+26*f(i.press,`clamping_demand`):0:e.id.startsWith(`wash-`)?g(i.wash)?12:0:g(i.cnc)?f(i.chiller,`coolant_flow_rate`)/4:0),v=e=>d.has(e)&&!r.station(e)&&!r.faults(e).length?``:_e(r,e,`run_command`),y=pe(e,v),b=tn(e),x=en(e),S=St(e,a.belts),w=fn(e,a.press,s.shake),T=ln(e,a.pack,a.slots),E=a.robots.map(t=>mn(e,t,a.belts));return{data(e){y.draw(e),x.draw()},draw({sdt:e,t,still:n,introDone:o}){a.introDone=o,$t(a,r,e,t,n);let d=S.draw(t);w.draw(t),b.draw(e,t,d),_.draw(e),h.draw(e,t),c.draw(e,t,o),l.draw(e,t,o),u.draw(e,t,o),T.draw(r.station(i.test)?.scrap,r.faults(i.amr),t,n);for(let e of E)e.draw();s.draw(e,t,a.press.ram,o)},resync(){Xt(a),b.resync()},status(e){return d.has(e)&&!r.faults(e).length?[r.station(e)?.state??`--`,v(e)]:xe(r,e,`run_command`)},debug:{robots:a.robots.map(e=>e.state),belts:a.belts,loader:a.press.loader,unloader:a.press.unloader,chute:a.press.chute,die:a.press.die,tote:{fill:e=>{a.pack.count=e},swap:a.pack.swap,lane:a.pack.lane,amr:a.pack.amr},sim:a}}},Z=e(t(),1);function Rn(e,t){let{k:n,P:r,L:i,slab:a,screws:o}=e,s=t.x+5,c=t.x+t.w-5,l=[-284,-136,112].map(e=>a({x:e,y:49.6,w:12,d:3.6,r:.6},0,.5,{tone:`lo`,crease:`none`},2,0)+i(n.lineOnTop([e+1.6,51.4],[e+7.6,51.4],.5,r),{tone:`mid`,free:!0})+o([[e+10.4,51.4]],.5)).join(``);return i([55,57.4].map(e=>n.lineOnTop([s,e],[c,e],0,r)).join(``),{className:`sf-walk`})+l}var Q=n();function zn(e){return(0,Q.jsx)(m,{...e,draw:Ae})}function Bn(e,t){let{k:n,P:r,at:i,S:a,L:o,front:s,faceRule:c}=e,l={x:243,y:-1,w:28,d:37,r:3},u={x:243.6,y:-.4,w:26.8,d:35.8,r:1.2},d=Array.from({length:7},(e,t)=>n.lineOnTop([u.x+1.8+t*3.9,u.y+.4],[u.x+1.8+t*3.9,u.y+u.d-.4],0,r)).join(``),f={x:243,y:0,w:26,d:35,r:1.6},p=n.pathOf(n.roundedPlan(n.insetPlan(f,1.6),3).map(([e,t])=>i([e,t,16])),!0),m=`<g data-tote-amr="">${a(n.slabOf(f,0,16,r,3,.4),{tone:`mid`,inner:o(n.sideSeam(f,12,r,3),{tone:`faint`})})}<path class="sf-void" d="${p}"/><clipPath id="tote-open-amr"><path d="${p}"/></clipPath><g clip-path="url(#tote-open-amr)" data-tote-parts=""></g>${o(n.planOutline(n.insetPlan(f,1.6),16,r,3),{tone:`lo`})}${c(35,246,4,14,5)}</g>`;return`<g data-amr="" data-asset="${t}"><path class="iso-halo sf-contact" d="${n.haloOf(l,-14,1,r)}"/><path class="sf-alarm" data-alarm="${t}" d="${n.haloOf(l,-14,1,r)}"/>${a(n.slabOf(l,-13.2,10.8,r,3,.6),{tone:`mid`,inner:o(n.sideSeam(l,-10,r,3),{tone:`faint`})})}${Ee(e,l.y+l.d,262,-11,268,-8.8,`sf-void`)}<g transform="${s(l.y+l.d)}"><path class="sf-amr-led" data-amr-led="" d="M246 4H258V4.6H246Z"/></g>${a(n.slabOf(u,-2.4,2.4,r,2,.3),{tone:`lo`,inner:o(d,{tone:`mid`})})}${m}</g>`}function Vn({id:e,intro:t}){let n=p();return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>Bn(n,e),[n,e]),intro:t})}function Hn({name:e,at:t,capacity:n,intro:r}){let i=p(),[a,o]=t;return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>i.buffer(e,a,o,n),[i,e,a,o,n]),intro:r})}function Un(e,t){let{k:n,G:r,P:i,S:a,L:o,slab:s,cyl:c,andon:l,screws:u,faceRule:d,workpiece:f}=e,p=[],m={x:-304,y:-22,w:74,d:70,r:3};p.push(a(n.slabOf(m,0,12,i,3,.8),{tone:`mid`,inner:o(n.sideSeam(m,3,i,3),{tone:`faint`})})),p.push(d(48,-298,4.6,20,5.6));let h={x:-296,y:-20,w:32,d:26,r:2};p.push(a(n.slabOf(h,12,90,i,3,.8),{tone:`mid`,inner:o([30,34,38,42,46,50,54,58].map(e=>n.sideSeam(h,e,i,3)).join(``),{tone:`faint`})}));let g=r.frameAlong([-264,-8,80],[1,0,0]);p.push(a(r.disc(0,2,12.4,g,i),{tone:`mid`}),a(r.disc(2,3.6,11,g,i),{tone:`mid`}),a(r.disc(3.6,5,3,g,i),{tone:`mid`})),p.push(`<g data-carousel="-260.4,-8,80,8.4"></g>`),p.push(l(t,-290,-14,102)),p.push(s({x:-300,y:14,w:64,d:30,r:2},12,6,{tone:`mid`},3,.4)),p.push(s({x:-302,y:16,w:68,d:26,r:1.5},18,4,{tone:`lo`},3,.4)),p.push(o([21,26,31,36].map(e=>n.lineOnTop([-302,e],[-234,e],22,i)).join(``),{tone:`faint`})),p.push(s({x:-282,y:20,w:4,d:18,r:.6},22,6,{tone:`mid`},2,.3)),p.push(s({x:-258,y:20,w:4,d:18,r:.6},22,6,{tone:`mid`},2,.3)),p.push(c(-256,40,1.2,24,2,{tone:`mid`},12)),p.push(`<g class="sf-work" data-work="cnc">${f({x:-276,y:22,w:16,d:14,r:1},22,8)}</g>`);let _=[s({x:-280,y:6,w:28,d:32,r:3},62,18,{tone:`mid`},3,.8),c(-266,18,6.4,80,14,{tone:`mid`,inner:n.fadedSvg([82,84,86,88,90].map(e=>({d:n.sideArc(-266,18,6.4,e,i,24),alpha:.7})),{tone:`lo`})}),c(-266,18,4,94,1.6,{tone:`mid`},20),c(-266,30,7,50,12,{tone:`mid`,inner:o(n.sideArc(-266,30,7,56,i,32),{tone:`faint`})},36),c(-266,30,4.2,44,6,{tone:`mid`,crease:`lo`},28),`<path class="iso-line" data-tone="lo" data-spin="cnc" d=""/>`,c(-266,30,1.5,34,10,{tone:`hi`,lit:!0,crease:`none`},14),`<g data-mist="-266,30,36"></g>`,c(-255,34,1.5,60.4,1.6,{tone:`mid`},12),T(e,[[-255,34,60.6],[-255,34,52],[-261,32,41.5]],.8,`mid`,4,`coolant`,[!1,!0]),c(-261.6,32,1.1,40,1.6,{tone:`mid`},10)].join(``);return p.push(`<g data-move="cnc-head">${_}</g>`),p.push(s({x:-249,y:23,w:9,d:12,r:.8},22,2,{tone:`mid`},2,.3)),p.push(u([[-247.6,24.4],[-241.4,33.6]],24)),p.push(`<g class="sf-part" data-nest="">${f({x:-248,y:24,w:7,d:10,r:1},24,5)}</g>`),p.join(``)}function Wn(e,t){let{slab:n,hmi:r,screws:i}=e;return[n({x:-226,y:30,w:4,d:4,r:.8},0,36,{tone:`mid`},2,.3),n({x:-230,y:34,w:26,d:6,r:1},30,18,{tone:`mid`},2,.4),r(t,40,-228,-206,32,47),i([[-228.6,39.6],[-205.4,39.6]],47.4),F(e,-217,40,48)].join(``)}function Gn(e){return(0,Q.jsx)(m,{...e,draw:Un})}function Kn({id:e,intro:t}){let n=p();return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>Wn(n,e),[n,e]),asset:e,intro:t})}function qn(e){let{at:t,cyl:n,conveyor:r}=e,i=r(-82,44,8,14,23),a=t([-44,26.6,27.6]);return[i.back,i.belt,`<g data-belt="feed" data-x0="-81" data-x1="-35" data-y0="8" data-y1="22" data-z="${i.top}"><path class="iso-line" data-tone="faint" data-cleats="" d=""/><g data-parts-back=""></g></g>`,`<g data-parts-front="feed"></g>`,n(-44,25.5,1,24,4.4,{tone:`mid`,crease:`none`},12),`<circle class="sf-gled" data-feed-eye="" cx="${a[0].toFixed(2)}" cy="${a[1].toFixed(2)}" r="0.5"/>`,i.front].join(``)}function Jn({intro:e}){return(0,Q.jsx)(f,{html:v(qn),intro:e})}var Yn=e=>24-(e-28)/56*2.6,Xn=(()=>{let e=Math.hypot(56,2.6);return[56/e,0,-2.6/e]})();function Zn(e){let{G:t,P:n,S:r,cyl:i}=e,a=[];for(let[e,t]of[[40,8.2],[72,8.2]])a.push(i(e,t,.9,0,Yn(e)-2.2,{tone:`mid`,crease:`none`},12));a.push(r(t.solidOf([[0,.8],[57,.8]],t.frameAlong([28,8.2,25],Xn),n),{tone:`mid`,crease:`none`}));for(let e=30;e<=82;e+=3.5)a.push(r(t.solidOf([[0,.9],[12.4,.9]],t.frameAlong([e,8.8,Yn(e)-.9],[0,1,0]),n),{tone:`mid`,crease:`none`}));return a.join(``)}function Qn(e){let{G:t,P:n,S:r,cyl:i,workpiece:a}=e,o=[`<g class="sf-work" data-chute-part="">${a({x:-3.5,y:10,w:7,d:10,r:1},24,3.6)}</g>`];for(let[e,t]of[[40,21.8],[72,21.8]])o.push(i(e,t,.9,0,Yn(e)-2.2,{tone:`mid`,crease:`none`},12));return o.push(r(t.solidOf([[0,.8],[57,.8]],t.frameAlong([28,21.8,25],Xn),n),{tone:`mid`,crease:`none`})),o.join(``)}function $n(e,t,n){let{k:r,P:i,S:a,L:o,cyl:s}=e,c=[`<path class="iso-halo sf-contact" d="${r.haloOf({x:t-4,y:n-4,w:8,d:8,r:4},0,.5,i)}"/>`];c.push(s(t,n,3.2,0,1,{tone:`lo`},20),s(t,n,1.2,1,24,{tone:`mid`,crease:`none`},12));let l={x:t-11,y:n-3,w:22,d:6,r:1};c.push(a(r.slabOf(l,25,4,i,2,.4),{tone:`mid`,inner:o(r.sideSeam(l,26.4,i,2),{tone:`faint`})}));for(let e of[t-7,t+7])c.push(s(e,n,2.2,29,.6,{tone:`mid`},18),`<g class="sf-green">${s(e,n,1.7,29.6,1.2,{tone:`mid`},18)}</g>`);return c.push(F(e,t,n,29)),c.join(``)}var er=[[-5,54,93],[-1.8,57.5,101]];function tr(e,t){let{k:n,G:r,P:i,at:a,S:o,L:s,D:c,slab:l,cyl:u,hmi:d,andon:f,dial:p,screws:m,faceRule:h,front:g,workpiece:_}=e,v=[],y={x:34,y:-28,w:26,d:30,r:1.6};v.push(o(n.slabOf(y,0,22,i,3,.6),{tone:`mid`,inner:s(n.sideSeam(y,4,i,3),{tone:`faint`})})),v.push(`<g transform="${g(y.y+y.d)}"><path class="sf-hmi" d="M48 -19H51V-4H48Z"/><path class="sf-oil" data-oil="48,4,51,19" d=""/><path class="iso-line" data-tone="lo" d="M48 -19H51V-4H48Z"/></g>`),v.push(h(y.y+y.d,36,12,12,5)),v.push(M(g(y.y+y.d),`press`,42,7,4.2));let b=r.frameAlong([37,-13,29.4],[1,0,0]);v.push(l({x:38,y:-18,w:12,d:10,r:1},22,2,{tone:`lo`},2,0)),v.push(o(r.solidOf([[0,4.6],[.5,5.2],[12,5.2],[12.5,4.6]],b,i),{tone:`mid`,inner:n.fadedSvg(r.ribsOf(b,.5,12,5.2,14,i,{fade:[.1,.55],seams:!0}),{tone:`lo`})})),v.push(o(r.disc(12.5,16,3.4,b,i),{tone:`mid`}),o(r.disc(16,21,4.2,b,i),{tone:`mid`})),v.push(u(55,-22,2,22,3,{tone:`mid`},14)),v.push(o(r.disc(0,.8,1.8,r.frameAlong([60,-19,15.5],[1,0,0]),i),{tone:`mid`}),T(e,[[60.8,-19,15.5],[66.8,-19,15.5]],.8,`mid`,2.2,`air`,[!1,!1])),v.push(l({x:64,y:-24,w:12,d:10,r:1},0,6,{tone:`mid`},2,.3)),v.push(u(70,-19,2.6,6,8,{tone:`mid`,inner:s(n.sideArc(70,-19,2.6,9,i,16),{tone:`faint`})},20),u(70,-19,3.2,14,4,{tone:`mid`},20)),v.push(p(`frl`,70,-19,18,3)),v.push(l({x:-30,y:-12,w:60,d:54,r:3},0,16,{tone:`mid`},3,1)),v.push(l({x:-22,y:-4,w:44,d:38,r:1.5},16,3,{tone:`lo`},3,.4)),v.push(m([[-20.4,-2.4],[20.4,-2.4],[-20.4,32.4],[20.4,32.4]],19)),v.push(l({x:-18,y:-3.5,w:36,d:37,r:1.2},19,2.5,{tone:`mid`},2,.4));for(let e of[-14.5,14.5])v.push(u(e,-.5,1.3,21.5,11.5,{tone:`mid`,crease:`none`},14));v.push(l({x:-10,y:6,w:20,d:18,r:1},21.5,2.5,{tone:`mid`},2,.4)),v.push(s(n.planOutline({x:-4.4,y:9.1,w:8.8,d:11.8,r:1.2},24,i,3),{tone:`lo`})),v.push(`<g class="sf-work" data-work="press">${_({x:-3.5,y:10,w:7,d:10,r:1},24,5)}</g>`,`<g class="sf-fx" data-fx-slot="${t}"></g>`);for(let e of[-24,24])v.push(u(e,-6,3.2,19,73,{tone:`mid`,crease:`none`},20));v.push(l({x:-36,y:11,w:3,d:8,r:.5},0,23,{tone:`lo`},2,.2)),v.push(l({x:-16,y:11,w:3,d:8,r:.5},21.5,1.5,{tone:`lo`},2,0)),v.push(l({x:-38,y:9,w:28,d:12,r:.6},23,1,{tone:`mid`},2,.2)),v.push(l({x:-50,y:2.6,w:4,d:4.8,r:.6},0,29,{tone:`mid`},2,.3)),v.push(l({x:-50,y:3.4,w:46,d:3.2,r:1},25.6,2.8,{tone:`mid`,inner:s(n.lineOnTop([-48,5],[-6,5],28.4,i),{tone:`faint`})},2,.3)),v.push(l({x:-51,y:3,w:2.4,d:4,r:.4},25,4,{tone:`mid`},2,0),l({x:-5,y:3,w:2.4,d:4,r:.4},25,4,{tone:`mid`},2,0)),v.push(`<g data-move="loader">${l({x:-48.6,y:2.8,w:5,d:4.4,r:.6},26.2,3.6,{tone:`mid`},2,.3)}${l({x:-46.4,y:6.6,w:1.6,d:13,r:.4},24.4,3.4,{tone:`mid`},2,.2)}</g>`),v.push(`<g class="sf-work" data-push-part="">${_({x:-3.5,y:10,w:7,d:10,r:1},24,5)}</g>`),v.push(l({x:-27,y:-3,w:6,d:6.6,r:.6},33,2.8,{tone:`mid`},2,.3)),v.push(l({x:31.4,y:3.2,w:3.6,d:3.6,r:.6},0,33,{tone:`mid`},2,.3)),v.push(l({x:-28,y:3.6,w:62,d:2.8,r:1},33,2.8,{tone:`mid`,inner:s(n.lineOnTop([-26,5],[32,5],35.8,i),{tone:`faint`})},2,.3)),v.push(l({x:-29,y:3.2,w:2.4,d:3.6,r:.4},32.4,4,{tone:`mid`},2,0),l({x:33,y:3.2,w:2.4,d:3.6,r:.4},32.4,4,{tone:`mid`},2,0));let x=l({x:-24,y:7,w:1.6,d:1.8,r:.3},24.4,11.6,{tone:`mid`},2,0)+l({x:-24,y:8.6,w:1.6,d:12.8,r:.4},24.4,6,{tone:`mid`},2,.2);v.push(`<g data-move="unloader">${l({x:-26,y:3,w:5,d:4,r:.6},32.6,4,{tone:`mid`},2,.3)}${l({x:-25,y:7,w:3,d:2,r:.4},33,3.4,{tone:`lo`},2,0)}<g data-lift="">${x}</g></g>`),v.push(Zn(e)),v.push(`<g class="sf-work" data-pull-part="">${_({x:-3.5,y:10,w:7,d:10,r:1},24,3.6)}</g>`),v.push(Qn(e));for(let e of[-14.5,14.5])v.push(u(e,30.5,1.3,21.5,11.5,{tone:`mid`,crease:`none`},14));let S=[...[-24,24].map(e=>u(e,-6,4.6,76,8,{tone:`mid`},28)),...[-14.5,14.5].map(e=>u(e,-.5,2.2,65,11,{tone:`mid`},18)),l({x:-4.4,y:9.1,w:8.8,d:11.8,r:1.2},70,2,{tone:`hi`,lit:!0},2,.2),l({x:-12,y:4,w:24,d:22,r:1},72,4,{tone:`mid`},2,.4),...[-14.5,14.5].map(e=>u(e,30.5,2.2,65,11,{tone:`mid`},18)),l({x:-19,y:-4,w:38,d:36,r:2},76,8,{tone:`mid`},3,.6),m([[-15,0],[15,0],[-15,28],[15,28]],84)].join(``);v.push(`<g data-move="press-ram">${S}</g>`),v.push(`<g data-colstub="-24,-6"></g><g data-colstub="24,-6"></g>`),v.push(`<g data-rod="press"></g>`);for(let e of[-24,24])v.push(u(e,36,3.2,19,73,{tone:`mid`,crease:`none`},20));v.push(`<g data-move="press-ram">${[-24,24].map(e=>u(e,36,4.6,76,8,{tone:`mid`},28)).join(``)}</g>`),v.push(`<g data-colstub="-24,36"></g><g data-colstub="24,36"></g>`),v.push(l({x:-30,y:-12,w:60,d:54,r:3},92,14,{tone:`mid`},3,1)),v.push(m([[-24,-6],[24,-6],[-24,36],[24,36]],106)),v.push(u(0,15,12,106,22,{tone:`mid`,inner:s(n.sideArc(0,15,12,110,i,40)+n.sideArc(0,15,12,124,i,40),{tone:`faint`})},48)),v.push(u(0,15,13,128,3,{tone:`mid`},48)),v.push(c(r.dotsOf(r.frameAlong([0,15,131],[0,0,1]),0,10.6,8,i,{all:!0}),{size:.45})),v.push(u(0,15,3,131,2,{tone:`mid`},16)),v.push(f(t,-24,-6,106));for(let[e,,t]of er)v.push(o(r.disc(0,1.2,2.4,r.frameAlong([30,e,t],[1,0,0]),i),{tone:`mid`}));for(let[t,n,r]of er)v.push(u(n,t,2.1,22,.9,{tone:`mid`},16),T(e,[[n,t,22.9],[n,t,r],[31.2,t,r]],1.3,`mid`,5,`hyd`));v.push(d(t,42,-24,16,2.4,14));let C={x0:-28,x1:28,y0:48.6,y1:53},w=[];for(let e=C.x0-(C.y1-C.y0);e<C.x1;e+=3){let t=[Math.max(C.x0,e),0],r=[Math.min(C.x1,e+(C.y1-C.y0)),0];t[1]=C.y1-(t[0]-e),r[1]=C.y1-(r[0]-e),w.push(n.lineOnTop(t,r,0,i))}v.push(s(w.join(``),{className:`sf-hatch`}),s(n.onTop([[C.x0,C.y0],[C.x1,C.y0],[C.x1,C.y1],[C.x0,C.y1]],0,i,!0),{className:`sf-hatch-edge`}));for(let e of[-31,29])v.push(l({x:e,y:44.4,w:2.6,d:2.6,r:.5},0,60,{tone:`mid`},2,.2)),v.push(l({x:e-.4,y:44,w:3.4,d:3.4,r:.6},0,1.2,{tone:`lo`},2,0));v.push($n(e,-44,47));let E=[];for(let e=0,t=22;t<=56;t+=3.4,e++)E.push(`<path class="sf-beam" data-beam="${e}" d="${n.segment([-28.4,45.7,t],[29,45.7,t],i)}"/>`);let D=[];for(let e=22;e<=56;e+=3.4)D.push(a([-28.4,45.7,e]));return v.push(`<g class="sf-curtain">${E.join(``)}${D.map(([e,t])=>`<circle class="sf-led" cx="${e.toFixed(1)}" cy="${t.toFixed(1)}" r="0.55"/>`).join(``)}</g>`),v.join(``)}function nr(e){return(0,Q.jsx)(m,{...e,draw:tr})}var rr=26,ir=35;function ar(e){let t=[...e].sort((e,t)=>e[0]-t[0]||e[1]-t[1]),n=(e,t,n)=>(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0]),r=e=>{let t=[];for(let r of e){for(;t.length>=2&&n(t[t.length-2],t[t.length-1],r)<=0;)t.pop();t.push(r)}return t.pop(),t};return[...r(t),...r([...t].reverse())]}var or=e=>`M${e.map(([e,t])=>`${e.toFixed(2)} ${t.toFixed(2)}`).join(`L`)}Z`;function sr(e,t,n){let{k:r,G:i,P:a,at:o,S:s,L:c,slab:l,cyl:u,hmi:d,andon:f,screws:p,conveyor:m,faceRule:h}=e,g=m(84,100,4,24,20),_=[g.back,g.belt,`<g data-belt="test" data-x0="85" data-x1="182" data-y0="4" data-y1="28" data-z="${g.top}"><path class="iso-line" data-tone="faint" data-cleats="" d=""/><g data-parts-back=""></g></g>`],v=i.frameAlong([162,-14,26.4],[0,1,0]);_.push(l({x:158,y:-16,w:8,d:4,r:.6},0,24,{tone:`mid`},2,.3)),_.push(s(i.solidOf([[0,2.6],[10,2.6]],v,a),{tone:`mid`,inner:c(i.arcOf(v,2,2.6,a)+i.arcOf(v,8,2.6,a),{tone:`faint`})})),_.push(`<g data-rod="pusher"></g><g data-move="pusher">${l({x:156,y:-3.4,w:12,d:1.6,r:.4},23.6,6,{tone:`mid`},2,.2)}</g>`),_.push(l({x:126,y:-4,w:6,d:4,r:.8},0,54,{tone:`mid`},2,.3)),_.push(l({x:124,y:-5,w:10,d:39,r:1.5},54,6,{tone:`mid`},3,.5)),_.push(p([[126,-3],[132,-3],[126,32],[132,32]],60)),_.push(f(t,129,-1,60)),_.push(u(129,16,4,42,12,{tone:`mid`,inner:c(r.sideArc(129,16,4,48,a,24),{tone:`faint`})},24)),_.push(u(129,16,5.6,40.4,1.6,{tone:`mid`},28)),_.push(`<g class="sf-eye" data-eye="test">${u(129,16,2.6,38,2.4,{tone:`hi`,lit:!0},20)}</g>`),_.push(`<path class="sf-flash" data-flash="" d="${r.pathOf(r.circleRing(129,16,9,40).map(([e,t])=>o([e,t,21.2])),!0)}"/>`),_.push(`<g data-parts-front="test"></g>`),_.push(l({x:180.4,y:4.2,w:1,d:23.6,r:.3},21.6,4,{tone:`mid`},2,0)),_.push(g.front);let y=o([183.4,31,27]),b=l({x:180,y:1,w:2,d:30,r:.4},24,1.4,{tone:`mid`},2,.2)+u(183.4,30,.9,25.4,2.6,{tone:`mid`,crease:`none`},12)+`<circle class="sf-gled" data-pack-eye="" cx="${y[0].toFixed(2)}" cy="${y[1].toFixed(2)}" r="0.45"/>`;_.push(b),_.push(l({x:126,y:30,w:6,d:4,r:.8},0,54,{tone:`mid`},2,.3)),_.push(l({x:134,y:31,w:26,d:4,r:1},28,18,{tone:`mid`},2,.4)),_.push(d(t,35,135.2,158.8,29.4,45.4)),_.push(F(e,155,33,46));let x={x:160,y:35,w:16,d:11,r:1.2};_.push(l(x,0,11,{tone:`mid`},3,.3));let S=r.pathOf(r.roundedPlan(r.insetPlan(x,1.2),3).map(([e,t])=>o([e,t,11])),!0);_.push(`<path class="sf-void" d="${S}"/>`),_.push(`<clipPath id="bin-open"><path d="${S}"/></clipPath><g clip-path="url(#bin-open)" data-scrap=""></g>`),_.push(c(r.planOutline(r.insetPlan(x,1.2),11,a,3),{tone:`lo`})),_.push(h(x.y+x.d,x.x+2,3,12,4.4));let C=e=>({x:e,y:0,w:rr,d:ir,r:1.6}),w=e=>s(r.slabOf(C(e),0,16,a,3,.4),{tone:`mid`,inner:c(r.sideSeam(C(e),12,a,3),{tone:`faint`})}),T=e=>r.pathOf(r.roundedPlan(r.insetPlan(C(e),1.6),3).map(([e,t])=>o([e,t,16])),!0),E=e=>c(r.planOutline(r.insetPlan(C(e),1.6),16,a,3),{tone:`lo`})+h(ir,e+3,4,14,5),D=(e,t,n)=>`<g ${n}>${w(e)}<path class="sf-void" d="${T(e)}"/><clipPath id="${t}"><path d="${T(e)}"/></clipPath><g clip-path="url(#${t})" data-tote-parts=""></g>${E(e)}</g>`;_.push(D(188,`tote-open`,`data-tote=""`));let O={x:214,y:-1,w:28,d:37,r:1};_.push(l({x:239,y:0,w:2.4,d:2.4,r:.4},-14,12.4,{tone:`lo`},2,0),l({x:239,y:33.6,w:2.4,d:2.4,r:.4},-14,12.4,{tone:`lo`},2,0)),_.push(s(r.slabOf(O,-1.6,1.6,a,2,.3),{tone:`mid`,inner:c([0,1,2,3,4,5,6].map(e=>r.lineOnTop([O.x+2+e*3.9,O.y+.3],[O.x+2+e*3.9,O.y+O.d-.3],0,a)).join(``),{tone:`lo`})})),_.push(D(188,`tote-open-full`,`data-tote-full=""`)),_.push(`<g data-robot="2" data-asset="${n}" class="sf-robot"></g>`);let k=[[189.6,1.6],[188+rr-1.6,1.6],[188+rr-1.6,ir-1.6],[189.6,ir-1.6]].map(([e,t])=>o([e,t,16])),A=k.reduce((e,t)=>t[0]<e[0]?t:e),j=k.reduce((e,t)=>t[0]>e[0]?t:e),M=k.reduce((e,t)=>t[1]>e[1]?t:e),N=[[A[0]-30,A[1]-.6],[A[0],A[1]-.6],[M[0],M[1]-.6],[j[0],j[1]-.6],[j[0]+30,j[1]-.6],[j[0]+30,4e3],[A[0]-30,4e3]];_.push(`<g data-tote-over=""><clipPath id="tote-over-clip"><path d="${or(N)}"/></clipPath><g clip-path="url(#tote-over-clip)">${w(188)}${E(188)}</g></g>`);let P=ar([166,186].flatMap(e=>[-2,34].flatMap(t=>[14,48].map(n=>o([e,t,n])))));return _.push(`<clipPath id="pick-clip"><path d="${or(P)}"/></clipPath><g clip-path="url(#pick-clip)">${g.front}${b}</g>`),_.join(``)}function cr({packer:e,...t}){let n=(0,Z.useCallback)((t,n)=>sr(t,n,e),[e]);return(0,Q.jsx)(m,{...t,draw:n})}function lr(e,t,n,r){let{k:i,G:a,P:o,D:s,L:c,slab:l,cyl:u,screws:d,andon:f}=e,p=[`<path class="iso-halo sf-contact" d="${i.haloOf({x:t-10,y:n-10,w:20,d:20,r:10},0,.5,o)}"/>`];return p.push(l({x:t-11,y:n-11,w:22,d:22,r:3},0,2.4,{tone:`lo`},3,.4)),p.push(d(i.corners({x:t-11,y:n-11,w:22,d:22},2.4),2.4)),p.push(u(t,n,8.4,2.4,3,{tone:`mid`},40)),p.push(s(a.dotsOf(a.frameAlong([t,n,5.4],[0,0,1]),0,7,10,o,{all:!0}),{size:.4})),p.push(`<g class="sf-robot">${u(t,n,6.4,5.4,9,{tone:`mid`,inner:c(i.sideArc(t,n,6.4,9,o,32),{tone:`faint`})},36)}</g>`),p.push(l({x:t-9,y:n+7,w:6,d:3,r:.6},2.4,5,{tone:`mid`},2,.3)),p.push(f(r,t+8,n-8,2.4)),p.join(``)}function ur({id:e,base:t,intro:n}){let r=p(),[i,a]=t;return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>`<path class="sf-alarm" data-alarm="${e}" d="${S({x:i-14,y:a-14,w:28,d:28,r:8},0,1,r.P)}"/>${lr(r,i,a,e)}`,[r,i,a,e]),asset:e,intro:n})}function dr({id:e,robot:t,intro:n}){return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`g`,{"data-robot":t,"data-asset":e,"data-intro":n,className:`sf-robot`}),(0,Q.jsx)(`g`,{"data-fx-slot":e})]})}var $=-14;function fr(e){let{k:t,P:n,at:r,S:i,slab:a,front:o,faceRule:s,screws:c}=e,l=[],u={x:-322,y:-262,w:96,d:26,r:1};l.push(`<path class="iso-halo sf-contact" d="${t.haloOf(u,$,1,n)}"/>`),l.push(a(u,$,4,{tone:`lo`},2,.3));let d=u.y+u.d-1;[0,1,2].forEach(e=>{let f=u.x+1+e*31.4,p={x:f,y:u.y+1,w:31,d:u.d-2,r:.8},m=$+4+54,h=[];for(let e=$+10;e<$+20;e+=2.2)h.push(`M${f+5} ${-e}H${f+26}`);h.push(`M${f+5} ${-($+8.8)}H${f+26}V${-($+20)}H${f+5}Z`);let g=`<g transform="${o(d)}"><path class="iso-line" data-tone="lo" d="M${f+2} ${-(m-2)}H${f+29}V${-($+6)}H${f+2}Z"/><path class="iso-line" data-tone="faint" d="${h.join(``)}"/></g>`;l.push(i(t.slabOf(p,$+4,54,n,2,.6),{tone:`mid`,inner:g})),l.push(a({x:f+25.4,y:d,w:1.6,d:1.2,r:.4},$+30,8,{tone:`mid`},2,0));let _=r([f+7,d,m-7]),v=r([f+10.5,d,m-7]);l.push(`<circle class="sf-pilot" data-pilot="${e}" cx="${_[0].toFixed(1)}" cy="${_[1].toFixed(1)}" r="0.9"/>`),l.push(`<circle class="sf-pilot sf-pilot-off" cx="${v[0].toFixed(1)}" cy="${v[1].toFixed(1)}" r="0.9"/>`),l.push(s(d,f+15,m-10,11,5)),l.push(c([[f+3,p.y+3],[f+28,p.y+3]],m))});let f={x:u.x+70,y:u.y+4,w:14,d:8,r:.4};return l.push(a(f,$+58,4,{tone:`lo`},2,0)),l.join(``)}function pr(e,t,n){let{k:r,P:i,L:a,slab:o,cyl:s,front:c}=e,l=[];return l.push(`<path class="iso-halo sf-contact" d="${r.haloOf({x:t-5,y:n-5,w:10,d:10,r:5},$,1,i)}"/>`),l.push(o({x:t-4,y:n-8,w:8,d:2,r:.4},$,40,{tone:`mid`},2,.2)),l.push(`<g transform="${c(n-6)}"><path class="sf-sign" d="M${t-3.4} ${-($+38)}H${t+3.4}V${-($+30)}H${t-3.4}Z"/><path class="sf-sign-mark" d="M${t-1.2} ${-($+31.6)}H${t+1.2}V${-($+36.4)}H${t-1.2}Z"/></g>`),l.push(`<g class="sf-red">${s(t,n-2.6,2.6,$+6,13,{tone:`mid`,inner:a(r.sideArc(t,n-2.6,2.6,$+15,i,20),{tone:`faint`})},24)}${s(t,n-2.6,1.2,$+19,2,{tone:`mid`},14)}</g>`),l.push(o({x:t-1.6,y:n-3.6,w:3.2,d:2,r:.4},$+21,1.2,{tone:`mid`},2,0)),l.push(o({x:t-3.4,y:n-6.2,w:6.8,d:1.2,r:.3},$+4.4,1.4,{tone:`lo`},2,0)),l.join(``)}function mr(e){let{k:t,P:n,at:r,L:i}=e;return[[-120,-126],[120,-126]].map(([e,a])=>{let o={x:e-10,y:a-3,w:20,d:6,r:1},s=[];for(let e=1;e<10;e++)s.push(t.lineOnTop([o.x+e*2,o.y+1],[o.x+e*2,o.y+5],$,n));return`<path class="sf-void" d="${t.pathOf(t.roundedPlan(o,2).map(([e,t])=>r([e,t,$])),!0)}"/>`+i(t.planOutline(o,$,n,2),{tone:`mid`})+i(s.join(``),{tone:`lo`})}).join(``)}function hr(e,t,n){let{k:r,P:i,at:a,L:o}=e,s=17.6,c=19.6,l=e=>r.pathOf(r.circleRing(t,n,e,56).map(([e,t])=>a([e,t,0])),!0),u=[];for(let e=0;e<28;e++){let a=e/28*Math.PI*2;u.push(r.lineOnTop([t+Math.cos(a)*s,n+Math.sin(a)*s],[t+Math.cos(a+.12)*c,n+Math.sin(a+.12)*c],0,i))}return`<path class="sf-hatch-edge" d="${l(s)+l(c)}" fill="none"/>`+o(u.join(``),{className:`sf-hatch`})}function gr(e,t,n){let{k:r,P:i,at:a,S:o,L:s,slab:c,workpiece:l}=e,u=[],d={x:t,y:n,w:54,d:37,r:.6};u.push(`<path class="iso-halo sf-contact" d="${r.haloOf(d,$,1,i)}"/>`);for(let e of[n+1,n+17,n+33])for(let n of[t+1,t+25,t+49])u.push(c({x:n,y:e,w:4,d:3,r:.3},$,2.4,{tone:`lo`},2,0));let f=[];for(let e=1;e<9;e++)f.push(r.lineOnTop([t+e*6,n+.6],[t+e*6,n+36.4],$+4,i));u.push(o(r.slabOf(d,$+2.4,1.6,i,2,.2),{tone:`lo`,inner:s(f.join(``),{tone:`faint`})}));let p=0;for(let e of[0,1])for(let c of[t+.5,t+27.5]){let t={x:c,y:n+1,w:26,d:35,r:1.6},d=$+4+e*16;if(u.push(o(r.slabOf(t,d,16,i,3,.4),{tone:`mid`,inner:s(r.sideSeam(t,d+12,i,3),{tone:`faint`})})),!e)continue;let f=r.pathOf(r.roundedPlan(r.insetPlan(t,1.6),3).map(([e,t])=>a([e,t,d+16])),!0),m=[];for(let e=0;e<3;e++)for(let t=0;t<3;t++)m.push([c+1.6+t*7.9,n+2.6+e*10.9]);m.sort((e,t)=>r.depthOf([e[0],e[1],0],i)-r.depthOf([t[0],t[1],0],i)),u.push(`<path class="sf-void" d="${f}"/><clipPath id="pallet-tote-${p}"><path d="${f}"/></clipPath><g clip-path="url(#pallet-tote-${p++})">${m.map(([e,t])=>l({x:e,y:t,w:7,d:10,r:.8},d+1+3*3.6,3.6)).join(``)}</g>`),u.push(s(r.planOutline(r.insetPlan(t,1.6),d+16,i,3),{tone:`lo`}))}return u.join(``)}function _r(e,t,n){let{G:r,P:i,S:a,slab:o,cyl:s}=e,c=[];c.push(o({x:t,y:n-4,w:6,d:8,r:1},$,4,{tone:`mid`},2,.3)),c.push(s(t+3,n,2.2,$+4,5,{tone:`mid`},18));let l=r.frameAlong([t+3,n,$+8.6],[.48,0,.88]);c.push(a(r.solidOf([[0,.7],[22,.7]],l,i),{tone:`mid`,crease:`none`}));let u=r.frameAlong([t+3+.48*22,n-3.2,$+8.6+.88*22],[0,1,0]);return c.push(a(r.solidOf([[0,.8],[6.4,.8]],u,i),{tone:`mid`,crease:`none`})),`<g class="sf-yellow">${c.join(``)}</g>`}function vr(e,t,n){let{k:r,P:i,L:a,cyl:o}=e;return`<path class="iso-halo sf-contact" d="${r.haloOf({x:t-3,y:n-3,w:6,d:6,r:3},$,1,i)}"/><g class="sf-yellow">${o(t,n,3.2,$,1,{tone:`mid`},20)}${o(t,n,2.2,$+1,20,{tone:`mid`,inner:a(r.sideArc(t,n,2.2,$+12,i,20)+r.sideArc(t,n,2.2,$+15,i,20),{tone:`faint`})},22)}</g>${o(t,n,2.3,$+21,1.4,{tone:`mid`},22)}`}function yr(e,t){let n=p(),[r,i]=t;return(0,Z.useMemo)(()=>e(n,r,i),[n,e,r,i])}function br({intro:e}){return(0,Q.jsx)(f,{html:v(fr),intro:e})}function xr(){return v(mr)}function Sr({at:e,intro:t}){return(0,Q.jsx)(f,{html:yr(pr,e),intro:t})}function Cr({at:e,intro:t}){let n=p();return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>e.map(([e,t])=>vr(n,e,t)).join(``),[n,e]),intro:t})}function wr({pallet:e,jack:t,intro:n}){return(0,Q.jsx)(f,{html:yr(gr,e)+yr(_r,t),intro:n})}function Tr(e){return yr(hr,e)}function Er({robot:e,...t}){let n=(0,Z.useCallback)((t,n)=>Ve(t,n,e),[e]);return(0,Q.jsx)(m,{...t,draw:n})}var Dr={chiller:{x:-248,y:-164,w:92,d:58,r:3},comp:{x:-132,y:-150,w:128,d:44,r:3},cnc:{x:-304,y:-22,w:74,d:70,r:3},wash:{x:-176,y:1,w:92,d:30,r:3},press:{x:-30,y:-12,w:60,d:54,r:3},test:{x:84,y:1,w:100,d:30,r:3}},Or=(e,t)=>k(e,t,`coolant`,!0),kr=(e,t)=>Oe(e,t,!0),Ar=[[-326,-42],[230,-42]],jr=bn[0],Mr=bn[1];function Nr({ids:e}){if(!jr||!Mr)throw Error(`Smart Factory layout needs two robots in ROBOTS.`);let t=p(),n=xr(),r=O(Fn,gn.y),i=Tr(jr.base),o=Tr(Mr.base),s=(0,Z.useMemo)(()=>In(t),[t]),c=(0,Z.useMemo)(()=>t.plinth(_n),[t]),l=(0,Z.useMemo)(()=>t.plinth(gn)+Rn(t,gn),[t]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(f,{html:s+n,data:{plinth:``}}),(0,Q.jsx)(br,{intro:0}),(0,Q.jsxs)(`g`,{transform:a(yn,J),children:[(0,Q.jsx)(f,{html:c,data:{plinth:``}}),(0,Q.jsx)(m,{id:e.chiller,plan:Dr.chiller,intro:1,draw:kr}),(0,Q.jsx)(D,{from:xn,to:Sn,scale:Cn,children:(0,Q.jsx)(m,{id:e.pump,plan:me,intro:2,draw:Or})}),(0,Q.jsx)(D,{from:wn,to:Tn,children:(0,Q.jsx)(zn,{id:e.comp,plan:Dr.comp,intro:3})})]}),(0,Q.jsx)(f,{html:`${r.off}<g data-flows=""></g>`,data:{pipes:``}}),(0,Q.jsx)(Sr,{at:[-328,54],intro:4}),(0,Q.jsx)(Cr,{at:Ar,intro:5}),(0,Q.jsx)(wr,{pallet:[100,-98],jack:[155,-79.5],intro:6}),(0,Q.jsx)(f,{html:l+i+o,data:{plinth:``}}),(0,Q.jsx)(f,{html:r.on,data:{pipes:``}}),(0,Q.jsx)(Gn,{id:e.cnc,plan:Dr.cnc,intro:7}),(0,Q.jsx)(ur,{id:e.robot,base:jr.base,intro:8}),(0,Q.jsx)(Hn,{name:`b0`,at:[-220,2],capacity:10,intro:9}),(0,Q.jsx)(dr,{id:e.robot,robot:jr.id,intro:8}),(0,Q.jsx)(Kn,{id:e.cnc,intro:10}),(0,Q.jsx)(Hn,{name:`b1`,at:[-78,-28],capacity:5,intro:11}),(0,Q.jsx)(Er,{id:e.wash,robot:e.robot,plan:Dr.wash,intro:12}),(0,Q.jsx)(Jn,{intro:13}),(0,Q.jsx)(nr,{id:e.press,plan:Dr.press,intro:14}),(0,Q.jsx)(Hn,{name:`b2`,at:[40,46],capacity:5,intro:15}),(0,Q.jsx)(ur,{id:e.packer,base:Mr.base,intro:16}),(0,Q.jsx)(cr,{id:e.test,packer:e.packer,plan:Dr.test,intro:17}),(0,Q.jsx)(`g`,{"data-fx-slot":e.packer}),(0,Q.jsx)(Vn,{id:e.amr,intro:18})]})}var Pr=ae(yn),Fr=j(Pr,Fn,gn.y),Ir=se({layout:{width:hn,height:470,label:`Isometric model of the Smart Factory: a machining line of CNC, wash conveyor, hydraulic press and inspection conveyor with buffers between them, and a utilities plinth behind with a chiller, an air compressor and a centrifugal pump, joined to the line by a coolant loop and an air line. Every moving part follows live values from the running engine.`,kit:Pr,flows:[...Fr.flows,...Be(Pr)],joints:Fr.joints,Scene:Nr,compose:Ln},resolve:Ge,things:Ke,caption:`production · utilities`,mismatch:`This floor expects the Smart Factory line (CNC, washer, press, inspection) and its utilities.`,statusBasis:`run_command`});export{Ir as smartFactoryFloor};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{C as r,F as i,I as a,N as o,T as s,_ as c,a as l,b as u,c as d,d as f,f as p,l as m,m as h,n as g,o as _,p as v,s as y,t as b,v as x,x as S,y as C,z as w}from"./dom-CQuChC3G.js";import{B as T,C as E,D,E as O,F as k,G as A,H as j,I as M,J as N,K as P,L as ee,M as te,P as ne,R as F,S as re,T as I,U as ie,V as ae,W as oe,X as se,Y as ce,_ as L,a as le,b as ue,g as de,h as fe,i as pe,j as me,l as he,m as ge,n as _e,o as ve,p as ye,q as R,r as be,t as xe,u as Se,v as z,w as Ce,x as we,y as Te,z as Ee}from"./status-DNfdEhTs.js";import{n as De,r as Oe,t as ke}from"./chiller-Jug0vRg-.js";import{n as Ae,t as je}from"./compressor-BkWNdwvy.js";var Me=7.2,B=-156,V=4.8,H=33.6,Ne=H+4.4,Pe=59,Fe=[[B,28.4,V],[B,H+2.4,V]],Ie=[[B,Ne,V+4.2],[B,Ne,Pe],[B,22,Pe],[-112,22,Pe]],Le=1.2,Re=1.6,ze=4;function Be(e){let t=(t,n,r,i)=>({id:t,medium:`water`,r,path:e.G.fillet(n,i,12,{P:e.P,tube:r}),reverse:!1,capped:[!0,!0],slots:[],group:t});return[t(`wash-suction`,Fe,Le,2),t(`wash-spray`,Ie,Re,ze)]}function Ve(e,t,n){let{k:r,G:i,P:a,at:o,S:s,L:c,slab:l,cyl:u,hmi:d,andon:f,screws:p,conveyor:m}=e,h=m(-176,92,4,24,23),g={x:-150,y:0,w:42,d:32,r:2},_=[0,1,2,3].map(e=>r.pathOf(r.roundedPlan({x:g.y+6+e*5.4,y:35,w:1.8,d:14,r:.9},3).map(([e,t])=>o([g.x+g.w,e,t])),!0)).join(``),v={x:-168,y:5,w:74,d:22,r:1},y=i.frameAlong([-98,34.5,10],[0,1,0]);return[l(v,0,Me,{tone:`lo`},2,0),`<path class="sf-void" d="${r.pathOf(r.roundedPlan(r.insetPlan(v,1),2).map(([e,t])=>o([e,t,Me])),!0)}"/>`,`<path class="sf-water" d="${r.pathOf(r.roundedPlan(r.insetPlan(v,3),2).map(([e,t])=>o([e,t,Me])),!0)}"/>`,h.back,h.belt,l({x:-85,y:8,w:4,d:14,r:.3},23.4,.6,{tone:`mid`},2,0),`<g data-belt="wash" data-x0="-175" data-x1="-86" data-y0="4" data-y1="28" data-z="${h.top}"><path class="iso-line" data-tone="faint" data-cleats="" d=""/><g data-parts-back=""></g></g>`,`<g data-robot-late="1" data-asset="${n}" class="sf-robot"></g>`,s(r.slabOf(g,24,30,a,3,.8),{tone:`mid`,inner:c(r.sideSeam(g,43,a,3)+r.sideSeam(g,27,a,3),{tone:`faint`})+c(_,{tone:`lo`})}),p(r.corners(g,2.2),54),u(-121,10,4,54,10,{tone:`mid`,inner:c(r.sideArc(-121,10,4,59,a,24),{tone:`faint`})},24),u(-121,10,5.2,64,1.6,{tone:`mid`},24),`<g data-steam="-121,10,66"></g>`,f(t,-144,6,54),u(-128,22,1.4,54,4,{tone:`mid`},12),u(-117,22,1.4,54,4,{tone:`mid`},12),d(t,32,-146,-112,28,49),`<path class="sf-void" d="${r.pathOf([[-108,5,24.2],[-108,27,24.2],[-108,27,33.4],[-108,5,33.4]].map(e=>o(e)),!0)}"/>`,`<path class="sf-flaps" data-flaps="" d=""/>`,l({x:-104,y:.4,w:2,d:2,r:.4},27,11,{tone:`mid`},2,0),l({x:-104,y:29.6,w:2,d:2,r:.4},27,11,{tone:`mid`},2,0),s(i.solidOf([[0,1.3],[31.2,1.3]],i.frameAlong([-103,.4,37.4],[0,1,0]),a),{tone:`mid`,crease:`none`}),`<g class="sf-fx" data-airknife="-103,16,35.4"></g>`,`<g data-parts-front="wash"></g>`,`<g class="sf-fx" data-drips=""></g>`,h.front,l({x:-103,y:30.5,w:10,d:4,r:.8},4,12,{tone:`mid`},2,.3),s(i.solidOf([[0,3.6],[.6,4.2],[9,4.2],[9.6,3.6]],y,a),{tone:`mid`,inner:r.fadedSvg(i.ribsOf(i.frameAlong([-98,34.5,10],[0,1,0]),.6,9,4.2,14,a,{fade:[.1,.55],seams:!0}),{tone:`lo`})}),s(i.disc(9.6,11,2.8,y,a),{tone:`mid`}),He(e)].join(``)}function He(e){let{k:t,G:n,P:r,S:i,D:a,slab:o,cyl:s,screws:c}=e,l=n.frameAlong([B,H,V],[0,1,0]);return[i(n.disc(0,1.2,2.2,n.frameAlong([B,27,V],[0,1,0]),r),{tone:`mid`}),T(e,Fe,Le,`mid`,2,`water`,[!1,!1]),`<g data-glints="wash-suction"></g>`,o({x:B-5,y:H+1,w:10,d:18,r:.8},0,1.2,{tone:`lo`},2,.3),c([[B-3.6,H+2.4],[B+3.6,H+2.4],[B-3.6,H+17.6],[B+3.6,H+17.6]],1.2),i(n.disc(2.4,6.4,3.6,l,r),{tone:`mid`,crease:`lo`}),i(n.disc(6.4,8,2.2,l,r),{tone:`mid`}),i(n.solidOf([[8,2.8],[8.4,3.2],[16.4,3.2],[16.8,2.8]],l,r),{tone:`mid`,inner:t.fadedSvg(n.ribsOf(l,8.4,16.4,3.2,12,r,{fade:[.1,.55],seams:!0}),{tone:`lo`})}),i(n.disc(16.8,18,2.6,l,r),{tone:`mid`}),a(n.dotsOf(n.frameAlong([B,H+18,V],[0,1,0]),0,1.6,6,r,{all:!0}),{size:.35}),s(B,Ne,2.4,V+3,1.2,{tone:`mid`},20),T(e,Ie,Re,`mid`,ze,`water`,[!1,!1]),`<g data-glints="wash-spray"></g>`,i(n.disc(0,1.2,2.2,n.frameAlong([-112,22,Pe],[1,0,0]),r),{tone:`mid`})].join(``)}var Ue=[[`cnc`,`cnc-spindle`],[`robot`,`industrial-robot`],[`wash`,`belt-conveyor`],[`press`,`hydraulic-press`],[`test`,`belt-conveyor`],[`packer`,`industrial-robot`]],We=[[`chiller`,`industrial-chiller`],[`comp`,`air-compressor`],[`pump`,`centrifugal-pump`],[`amr`,`industrial-robot`]];function Ge({template:e,assets:t,line:n}){if(n===void 0)return{status:`pending`};let r=new Set(e.assetIds),i=new Map(t.filter(e=>r.has(e.id)).map(e=>[e.id,e.model])),a=new Map;for(let[e,[t,r]]of Ue.entries()){let o=n.stations[e]?.id;if(!o||i.get(o)!==r)return{status:`mismatch`};a.set(t,o)}let o=new Set(a.values());for(let[e,t]of We){let n=[...i].filter(([e,n])=>n===t&&!o.has(e)),r=n.length===1?n[0]?.[0]:void 0;if(!r)return{status:`mismatch`};a.set(e,r)}let s=e=>a.get(e)??``;return{status:`ready`,ids:{cnc:s(`cnc`),robot:s(`robot`),wash:s(`wash`),press:s(`press`),test:s(`test`),packer:s(`packer`),chiller:s(`chiller`),comp:s(`comp`),pump:s(`pump`),amr:s(`amr`)}}}function Ke(e){return[{key:e.cnc,assetId:e.cnc,name:`CNC machining centre`,kind:`station`},{key:e.robot,assetId:e.robot,name:`Unload robot`,kind:`station`},{key:e.wash,assetId:e.wash,name:`Parts washer`,kind:`station`},{key:e.press,assetId:e.press,name:`Hydraulic press`,kind:`station`},{key:e.test,assetId:e.test,name:`Inspection conveyor`,kind:`station`},{key:e.packer,assetId:e.packer,name:`Packing robot`,kind:`station`},{key:e.chiller,assetId:e.chiller,name:`Process chiller`,kind:`utility`},{key:e.comp,assetId:e.comp,name:`Air compressor`,kind:`utility`},{key:e.pump,assetId:e.pump,name:`Coolant pump`,kind:`utility`},{key:e.amr,assetId:e.amr,name:`AMR tote shuttle`,kind:`utility`}]}var qe=9.5,Je=162,Ye=176.8;function Xe(e,t){let n=e.id===`wash`?t.wash:e.id===`test`?t.test:null;return{...e,station:n,phase:0,speed:0,items:[],good:-1,scrap:-1,starved:0}}var Ze=(e,t)=>!e.items.some(e=>!e.push&&Math.abs(e.x-t)<9.5),U=(e,t)=>e.find(e=>e.id===t),Qe=(e,t)=>{e.items.push({x:t,push:0,out:!1})};function $e(e,t,n,r,i,a){let o=e.id===`feed`?e.items.some(t=>t.x<e.x1-6.5):n?.state===`running`;if(e.speed=L(e.speed,o?7*a:0,t,.4,i),e.phase=(e.phase+e.speed*t)%6,n){if(e.starved=n.state===`starved`?e.starved+t:0,e.starved>3)for(let t of e.items)t.push||(t.out=!0);if(e.good>=0&&n.good>e.good)for(let t=n.good-e.good;t>0;t--){let t=e.items.filter(e=>!e.out&&!e.push).sort((e,t)=>t.x-e.x)[0];t&&(t.out=!0)}if(e.scrap>=0&&n.scrap>e.scrap){let t=e.items.filter(e=>!e.out&&!e.push).sort((e,t)=>Math.abs(e.x-Je)-Math.abs(t.x-Je))[0];t&&(t.push=.001,t.x0=t.x)}e.good=n.good,e.scrap=n.scrap}let s=e.id===`test`?Ye:e.x1-6,c=e.id===`wash`&&r!==void 0&&!Ze(r,e.x1+3),l=s,u=c?e.x1+2.9:1/0;for(let n of[...e.items].sort((e,t)=>t.x-e.x)){if(n.push){n.push+=t/1.1,n.x=(n.x0??n.x)+(Je-(n.x0??n.x))*Math.min(1,n.push*3);continue}if(n.out){e.id===`test`?n.x=Math.min(n.x+Math.max(e.speed,5)*t,l,Ye):n.x=Math.max(n.x,Math.min(n.x+Math.max(e.speed,5)*t,u)),l=u=n.x-qe;continue}n.x=Math.min(n.x+e.speed*t,l),l=u=n.x-qe}if(e.id===`wash`&&r)for(let t of e.items)!t.push&&t.x>=e.x1+3&&r.items.push({x:t.x,push:0,out:!1});e.items=e.items.filter(t=>t.push?t.push<1:t.x<e.x1+3)}function et(e,t,n,r,i){let a=U(e,`feed`);for(let o of e)$e(o,t,o.station?n(o.station):void 0,a,r,o.station?i(o.station):1)}function tt(e,t){for(let[n,r]of t){let t=e.get(n);if(t&&r.good+r.scrap-t.good-t.scrap>2)return!0}return!1}var nt=42.4,rt=3.6,it=5.8,at=41,ot=50.9,st=18.9,ct=[32,83],lt=87,ut=e=>{let t=1.5/it,n=2.3/it,r=4.3/it;return e<t?.85*z(e/t):e<n?.85+.15*((e-t)/(n-t)):e<r?1:1-z((e-r)/(1-r))},dt=e=>-((e-28)/56)*2.6,ft=e=>Math.min(3,Math.max(1,e/3));function pt(){return{stroke:{t:-1},ram:0,die:{has:!1,pressed:!1,done:0,good:-1,h:null,hit:!1,jolt:0},loader:{phase:`idle`,t:0,x:0,lead:!1},unloader:{phase:`idle`,t:0,x:0,z:6},chute:{x:null,v:0},counts:{strokes:0,loads:0,unloads:0}}}function mt(e){Object.assign(e.die,{has:!1,done:0,good:-1}),e.chute.x=null}var ht=(e,t)=>e.ram<20&&(t.simSpeed>=5?e.stroke.t<0:t.phase===0||t.phase===6),gt=e=>70-Math.max(0,Math.min(278,e))/278*nt;function _t(e,t,n){e.stroke.t<0&&e.die.has&&!e.die.pressed&&e.loader.phase===`idle`&&(n.simSpeed>=5||n.phase>=1&&n.phase<=4)&&(e.stroke.t=0,e.counts.strokes++),e.stroke.t>=0?(e.stroke.t+=t/Math.max(1.2,it/n.simSpeed),e.ram=278*ut(Math.min(1,e.stroke.t)),e.stroke.t>=1&&(e.stroke.t=-1)):e.ram=L(e.ram,0,t,.3,n.still)}var W=(e,t,n,r)=>(e.t+=n/(r.still?.01:t/ft(r.simSpeed)),z(Math.min(1,e.t)));function vt(e,t,n,r,i){let{die:a,loader:o,unloader:s,chute:c}=e;n.pressGood!==void 0&&(a.good>=0&&n.pressGood>a.good&&(a.done=Math.min(a.done+n.pressGood-a.good,3)),a.good=n.pressGood);let l=r.items.find(e=>e.x>=-41.5);o.lead=!!l,l&&o.phase===`idle`&&s.phase===`idle`&&!a.has&&ht(e,n)&&(r.items.splice(r.items.indexOf(l),1),o.phase=`push`,o.t=0),o.phase===`push`?(o.x=W(o,1.5,t,n)*at,o.t>=1&&(a.has=!0,a.pressed=!1,a.h=null,e.counts.loads++,o.phase=`back`,o.t=0)):o.phase===`back`&&(o.x=(1-W(o,.9,t,n))*at,o.t>=1&&(o.phase=`idle`,o.t=0)),s.phase===`idle`&&o.phase===`idle`&&a.has&&a.pressed&&a.done>0&&c.x===null&&ht(e,n)&&(s.phase=`lower`,s.t=0),s.phase===`lower`?(s.z=6*(1-W(s,.25,t,n)),s.t>=1&&(s.phase=`push`,s.t=0,a.has=!1,a.done--,e.counts.unloads++)):s.phase===`push`?(s.x=W(s,1.4,t,n)*ot,s.t>=1&&(s.phase=`lift`,s.t=0,c.x=ct[0],c.v=0)):s.phase===`lift`?(s.z=6*W(s,.2,t,n),s.t>=1&&(s.phase=`back`,s.t=0)):s.phase===`back`&&(s.x=(1-W(s,.9,t,n))*ot,s.t>=1&&(s.phase=`idle`,s.t=0)),c.x!==null&&(c.v=Math.min(14,c.v+16*t),c.x=Math.min(ct[1],c.x+c.v*t),c.x>=ct[1]&&(c.v=0,Ze(i,lt)&&(Qe(i,lt),c.x=null)));let u=gt(e.ram);if(a.has){o.phase===`push`&&(a.pressed=!1);let e=a.pressed?rt:Math.max(rt,Math.min(5,u-24));e<=3.75&&(a.pressed=!0);let t=e.toFixed(2);a.h!==t&&(a.h=t),u<27.900000000000002&&!a.hit&&(a.hit=!0,a.jolt=.22),u>40&&(a.hit=!1)}a.jolt=Math.max(0,a.jolt-t)}function yt(e){return g(e,`[data-belt]`).map(e=>({id:e.dataset.belt??``,x0:+(e.dataset.x0??0),x1:+(e.dataset.x1??0),y0:+(e.dataset.y0??0),y1:+(e.dataset.y1??0),z:+(e.dataset.z??0)}))}var bt=new Map([[`wash`,[-152,-106]]]),G=-108,xt=129;function St(e,t){let{svg:n,P:i}=e,o=i.scale,c=t.map(e=>{let t=b(n,`[data-belt="${e.id}"]`),r=t?b(t,`[data-parts-back]`):null,a=b(n,`[data-parts-front="${e.id}"]`),o=ge(he,e.z,e.id===`test`?rt:5,i),s=Array.from({length:7},()=>{let e=_(`g`,{}),t=_(`g`,{});return e.innerHTML=t.innerHTML=o,e.style.display=t.style.display=`none`,r?.append(e),a?.append(t),{back:e,front:t}});return{b:e,cleats:t?b(t,`[data-cleats]`):null,pool:s}}),u=b(n,`[data-flaps]`),f=b(n,`[data-airknife]`),p=y(f?.dataset.airknife),m=Array.from({length:10},(e,t)=>({el:_(`circle`,{class:`sf-hiss`,style:`display:none`},f),seed:t*.618%1})),h=b(n,`[data-drips]`),g=Array.from({length:10},(e,t)=>({el:_(`ellipse`,{class:`sf-drip-w`,rx:`0.4`,ry:`0.7`,style:`display:none`},h),seed:t*.382%1})),v=b(n,`[data-eye="test"]`);function x(e,n){let a=U(t,`wash`);if(!a)return;let s=0;for(let e of a.items)s=Math.max(s,Math.exp(-(((e.x-G)/3.2)**2)));let c=``;for(let t=0;t<7;t++){let n=6.2+t*3.25,a=s*3.4+Math.sin(e*6+t)*.12,[o,l]=r([G,n,33.2],i),[u,d]=r([G+a,n,24.6+s*1.2],i);c+=`M${o.toFixed(2)} ${l.toFixed(2)}L${u.toFixed(2)} ${d.toFixed(2)}`}d(u,`d`,c);let f=a.items.filter(e=>e.x>G&&e.x<G+12);g.forEach((t,a)=>{let o=f[a%Math.max(1,f.length)];if(!o||n){l(t.el,`0`);return}let s=(e*1.4+t.seed)%1,c=24-s*s*(24-Me),[u,d]=r([o.x-3+t.seed*6,10+t.seed*7%1*12,c],i);t.el.setAttribute(`cx`,u.toFixed(1)),t.el.setAttribute(`cy`,d.toFixed(1)),l(t.el,((1-(o.x-G)/12)*.85).toFixed(2))});let h=a.items.some(e=>Math.abs(e.x-(p[0]??0))<4.5)&&!n;for(let t of m){if(!h){l(t.el,`0`);continue}let n=(e*3+t.seed)%1,[a,s]=r([(p[0]??0)-1-n*5,(p[1]??0)-11+t.seed*22,(p[2]??0)-n*6],i);t.el.setAttribute(`cx`,a.toFixed(1)),t.el.setAttribute(`cy`,s.toFixed(1)),t.el.setAttribute(`r`,((.4+n*1.4)*o*.5).toFixed(2)),l(t.el,(Math.sin(Math.PI*n)*.4).toFixed(2))}}return{draw(t){x(t,e.reducedMotion());let n=!1;for(let{b:e,cleats:t,pool:r}of c){let o=``;for(let t=e.x0+2+e.phase;t<e.x1-1;t+=6)o+=s([t,e.y0+.6],[t,e.y1-.6],e.z,i);d(t,`d`,o);let c=bt.get(e.id);r.forEach((t,r)=>{let o=e.items[r],s=!!o,l=0,u=0;if(o?.push){let e=Math.max(0,(o.push-.3)/.7);l=Math.min(1,e*1.6)*24,u=e>.62?-(((e-.62)/.38)**2)*16:0}let d=o?a(i,[o.x,l,u]):``,f=s&&!!c&&o.x<c[0],p=s&&(!c||o.x>c[1]);d&&(t.back.setAttribute(`transform`,d),t.front.setAttribute(`transform`,d)),t.back.style.display=f?``:`none`,t.front.style.display=p?``:`none`,e.id===`test`&&o&&!o.push&&Math.abs(o.x-xt)<5&&(n=!0)})}return d(v,`data-on`,n?``:null),n}}}var Ct=(e,t)=>[e[0],e[1],e[2]+t],wt=e=>[e.base[0],e.base[1],e.shoulder];function Tt(e,t){let n=wt(e),r=[t[0],t[1],t[2]+e.tool],i=r[0]-n[0],a=r[1]-n[1],o=Math.hypot(i,a)||1e-6,s=r[2]-n[2],c=[i/o,a/o],l=Math.min(e.L1+e.L2-.01,Math.hypot(o,s)),u=Math.atan2(s,o)+Math.acos(Math.max(-1,Math.min(1,(e.L1*e.L1+l*l-e.L2*e.L2)/(2*e.L1*l))));return{E:[n[0]+c[0]*e.L1*Math.cos(u),n[1]+c[1]*e.L1*Math.cos(u),n[2]+e.L1*Math.sin(u)],W:r,n:[-c[1],c[0],0],yaw:Math.atan2(a,i)}}var Et=(e,t)=>[Math.atan2(t[1]-e.base[1],t[0]-e.base[0]),Math.hypot(t[0]-e.base[0],t[1]-e.base[1]),t[2]],Dt=(e,[t,n,r])=>[e.base[0]+Math.cos(t)*n,e.base[1]+Math.sin(t)*n,r];function Ot(e,t,n,r,i=0){let a=Et(e,t),o=Et(e,n),s=Math.atan2(Math.sin(o[0]-a[0]),Math.cos(o[0]-a[0]));if(i){let e=s-Math.sign(s)*2*Math.PI;Math.sin(a[0]+e/2)>Math.sin(a[0]+s/2)&&(s=e)}let c=a[1]+(o[1]-a[1])*r-i*Math.sin(Math.PI*r)*Math.min(1,Math.abs(s)/1.5);return Dt(e,[a[0]+s*r,c,a[2]+(o[2]-a[2])*r])}function kt(e,t,n,r,i){let a=Math.max(t[2],n[2])+r,o=Ot(e,t,n,z(de((i-.16)/.68)),e.tuck),s=i<.5?t[2]+(a-t[2])*z(de(i/.34)):a+(n[2]-a)*z(de((i-.66)/.34));return[o[0],o[1],s]}function At(e,t,n){return[{arc:Ct(e.pick,12),lift:4,s:1},{wait:`pick`},{lin:e.pick,s:.5},{grip:!0,s:.28},{pause:.12},{wait:`place`},{arc:t,lift:12,s:1.7},{grip:!1,s:.26},{lin:Ct(t,n?14:9),s:.32},{arc:e.home,lift:0,s:1.1,home:!0}]}function jt(e,t){let n=e.place??t.placeAt?.();if(!n)throw Error(`Robot ${e.id} has no place point. Give its RobotSpec a 'place' or its hooks a 'placeAt'.`);return{spec:e,hooks:t,state:{id:e.id,tip:e.home,from:e.home,step:-1,t:0,holding:!1,grip:0,queue:0,last:-1,dirty:!0,moved:0,eject:void 0,nestLast:-1,onNest:!1},plan:At(e,n,!!t.placeAt)}}function Mt(e){e.state.queue=0,e.state.last=-1,e.state.nestLast=-1,e.state.onNest=!1}function Nt(e,t){if(t===`pick`)return e.hooks.pending?.()??!0;if(e.hooks.canPlace)return e.hooks.canPlace();let n=e.spec.place;return!e.hooks.belt||!n?!0:Ze(e.hooks.belt,n[0])}function Pt(e,t,{own:n,nest:r,halted:i},a,o){let{spec:s,hooks:c,state:l}=e;if(n&&(l.last>=0&&n.good>l.last&&(l.queue=Math.min(2,l.queue+n.good-l.last)),l.last=n.good),r&&(l.nestLast>=0&&r.good>l.nestLast&&(l.eject=0,l.onNest=!0),l.nestLast=r.good),s.nestSel&&l.eject!==void 0&&(l.eject=Math.min(1,l.eject+t/(a?.01:.7))),!i&&(l.step<0&&l.queue>0&&o&&(l.step=0,l.t=0,l.from=l.tip,c.placeAt&&(e.plan=At(s,c.placeAt(),!0))),l.step>=0)){let n=e.plan[l.step];if(!n)throw Error(`Robot ${s.id} stepped past its plan (step ${l.step}). Plans are rebuilt on cycle start.`);let r=!1;if(n.wait)r=Nt(e,n.wait);else{l.t+=t/(a?.01:n.s??n.pause??1);let e=Math.min(1,l.t);n.arc?l.tip=kt(s,l.from,n.arc,n.lift??0,e):n.lin?l.tip=Ot(s,l.from,n.lin,z(e)):n.grip!==void 0&&(l.grip=n.grip?z(e):1-z(e)),r=l.t>=1,n.home&&l.queue>0&&e>.35&&(r=!0,l.step=-1)}r&&(n.grip===!0&&(l.holding=!0,l.onNest=!1,l.queue=Math.max(0,l.queue-1),c.onPick?.()),n.grip===!1&&(l.holding=!1,c.onPlace?c.onPlace():c.belt&&s.place&&Qe(c.belt,s.place[0]),l.moved++),l.step=l.step>=0&&l.step+1<e.plan.length?l.step+1:l.queue>0&&l.step===-1?0:-1,l.step===0&&c.placeAt&&(e.plan=At(s,c.placeAt(),!0)),l.t=0,l.from=l.tip),l.dirty=!0}}var Ft=[[`bearing_failure`,.3],[`belt_misalignment`,.15],[`belt_slip`,.1]];function It(e,t,n){let{svg:i,P:a,feed:o,ids:s}=e,c=a.scale,u=(e,...t)=>Ce(o,e,...t),f=e=>E(i,e),p=ue(i),m=f(s.press),h={age:0,puddle:_(`path`,{class:`sf-puddle`},m),sheen:_(`path`,{class:`sf-puddle-sheen`},m),drops:I(m,3,`ellipse`,`sf-drip`),splash:_(`path`,{class:`sf-splash`},m)},g=[{at:[70,-19,19],dir:[.6,1],on:()=>u(s.press,`air_pressure_loss`),hiss:Te(f(s.press))},{at:[56,-24,22],dir:[.4,-.5],on:()=>u(s.press,`overpressure`),hiss:Te(f(s.press))}],v=we(m,3,4),x=e=>e.id===`wash`?[-98,40,14]:[e.x1-3,e.y1,e.z],S=n.flatMap(e=>e.station?[{id:e.station,at:x(e),smoke:Te(f(e.station)),heat:we(f(e.station),2,3)}]:[]),C=f(s.cnc),w=[-266,30,34],T=I(C,24,`path`,`sf-spark`),D=we(C),O=b(i,`[data-spark="${s.cnc}"]`)?.parentElement?.querySelector(`.sf-hmi-head`),k=t.map(({id:e,motion:t})=>({id:e,motion:t,bleed:Te(f(e)),heat:we(f(e),3,3),hit:-1})),A=b(i,`[data-drain]`),j=y(A?.dataset.drain),M=A?I(A,9,`circle`,`sf-hiss`):[],N=b(i,`[data-drain-led]`);return{shake:p,draw(t,n,i,o){if(!o)return;let f=e.reducedMotion(),m=n%24/24,_=m<.035&&!f;d(N,`data-on`,m<.06?``:null);for(let e of M){if(!_){l(e.el,`0`);continue}let t=(m/.035+e.seed)%1,[n,i]=r([(j[0]??0)+t*6+Math.sin(e.seed*30)*1.5,(j[1]??0)+Math.cos(e.seed*20)*2,(j[2]??0)-t*t*4],a);re(e.el,n,i),e.el.setAttribute(`r`,((.4+t*1.8)*c*.5).toFixed(2)),l(e.el,(Math.sin(Math.PI*t)*.5).toFixed(2))}let y=u(s.press,`seal_leak`);h.age=y?Math.min(h.age+t,90):Math.max(0,h.age-t*.5);let b=h.age>0?4+5*(1-Math.exp(-h.age/12)):0,x=b*.62;d(h.puddle,`d`,b?Se([8,29],x,19.05,a,36):``),d(h.sheen,`d`,x>2?Se([7.4,28.4],x*.45,19.1,a,24):``);let C=76-Math.max(0,Math.min(278,i))/278*nt,E=``;for(let e of h.drops){if(!y||f){l(e.el,`0`);continue}let t=(n*.55+e.seed)%1,i=t<.35?0:((t-.35)/.65)**2,[o,s]=r([8,32.2,C-.4-i*(C-19.4)],a);re(e.el,o,s),e.el.setAttribute(`rx`,`0.55`),e.el.setAttribute(`ry`,(t<.35?.4+t*1.6:.95).toFixed(2)),l(e.el,`0.95`),t>.96&&(E=Se([8,32.2],.8+(t-.96)*40,19.1,a,16))}d(h.splash,`d`,E);for(let e of g)e.hiss.draw(e.on()&&!f,n,a,e.at,e.dir);let A=u(s.cnc,`tool_breakage`,`spindle_seizure`);for(let e of T){let t=(n*1.3+e.seed*.3)%1;if(!A||f||t>.45){l(e.el,`0`);continue}let i=t/.45,o=e.seed*6.283+Math.floor(n*1.3)*2.1,s=10+e.seed*9,c=e=>r([w[0]+Math.cos(o)*s*e,w[1]+Math.sin(o)*s*e,w[2]+7*e-24*e*e],a),[u,d]=c(Math.max(0,i-.08)),[p,m]=c(i);e.el.setAttribute(`d`,`M${u.toFixed(1)} ${d.toFixed(1)}L${p.toFixed(1)} ${m.toFixed(1)}`),l(e.el,(1-i).toFixed(2))}d(O,`data-s`,u(s.cnc,`coolant_sensor_failure`)&&(f||Math.sin(n*6)>0)?`a`:null),D.draw(u(s.cnc,`thermal_overload`,`spindle_seizure`)&&!f,n,a,[-294,-12,116]),v.draw(u(s.press,`pump_failure`)&&!f,n,a,[38,-14,22]);for(let e of S)e.smoke.draw(u(e.id,`belt_slip`)&&!f,n,a,e.at,[.5,-.3]),e.heat.draw(u(e.id,`drive_failure`)&&!f,n,a,e.at);for(let e of k){e.bleed.draw(u(e.id,`gripper_misgrip`)&&!f,n,a,e.motion.state.tip,[.4,1]);let t=wt(e.motion.spec);e.heat.draw(u(e.id,`joint_overtemp`)&&!f,n,a,[t[0]-3,t[1],t[2]+6]),u(e.id,`collision_stop`)?e.hit<0&&(e.hit=n):e.hit=-1}let P=+!f;p(s.cnc,P*(u(s.cnc,`spindle_seizure`)?.5:u(s.cnc,`bearing_wear`)?.2:0),n);for(let e of[s.wash,s.test])p(e,P*(Ft.find(([t])=>u(e,t))?.[1]??0),n);for(let e of k)p(e.id,e.hit<0?0:P*.8*Math.exp(-(n-e.hit)*4),n);u(s.press,`valve_stuck`)&&p(s.press,P*.12,n)}}}var K={x:189.6,y:1.6,cols:3,rows:3,layers:4,w:7,d:10,h:3.6,gap:.9},Lt={w:22.8,d:31.8};function Rt(e){let t=[];for(let n=0;n<K.layers;n++){let r=[];for(let e=0;e<K.rows;e++)for(let t=0;t<K.cols;t++)r.push([K.x+t*(K.w+K.gap),K.y+e*(K.d+K.gap)]);r.sort((t,n)=>e([t[0],t[1],0])-e([n[0],n[1],0]));for(let[e,i]of r){let r=1+n*K.h;t.push({cx:e,cy:i,x:e+K.w/2,y:i+K.d/2,z:r,top:r+K.h})}}return t}var zt=(e,t)=>{let n=e[Math.min(t,e.length-1)];if(!n)throw Error(`Tote has no slots. Build them with buildToteSlots() before placing.`);return[n.x,n.y,n.top]},Bt=[[`out`,[0,-143]],[`out`,[60,-143]],[`away`,[60,-143]],[`in`,[0,-143]],[`dock`,[0,0]]],Vt=8;function Ht(){return{count:-1,swap:{t:-1,pending:!1},lane:{has:!1,t:-1},amr:{leg:-1,t:0,at:[0,0],from:[0,0],carrying:!1,trips:0},lastScrap:-1,pusher:{ext:0,until:0}}}function Ut(e){e.lastScrap=-1}var Wt=e=>{e.swap.pending=!0},Gt=(e,t)=>e.swap.t<0&&e.count>=0&&e.count<t;function Kt(e,t){e.count++,e.count>=t&&Wt(e)}function qt(e,t,n){return t>K.x&&t<K.x+Lt.w&&n>K.y&&n<K.y+Lt.d?1+Math.floor(Math.max(0,e.count)/(K.cols*K.rows))*K.h:null}function Jt(e,t,n,{test:r,packer:i,amrMoving:a},o,s){i&&e.count<0&&(e.count=i.good%o),r&&(e.lastScrap>=0&&r.scrap>e.lastScrap&&(e.pusher.until=n+.6),e.lastScrap=r.scrap),e.swap.pending&&e.swap.t<0&&!e.lane.has&&(e.swap.pending=!1,e.swap.t=0,e.count=0),e.swap.t>=0&&(e.swap.t+=t/(s?.01:1),e.swap.t>=2&&(e.swap.t=-1,e.lane.has=!0)),e.lane.has&&e.amr.leg<0&&!e.amr.carrying&&e.lane.t<0&&a&&(e.lane.t=0),e.lane.t>=0&&(e.lane.t+=t/(s?.01:1.4),e.lane.t>=1&&(e.lane.t=-1,e.lane.has=!1,e.amr.carrying=!0,e.amr.leg=0,e.amr.t=0,e.amr.from=[...e.amr.at]));let c=e.amr,l=c.leg>=0&&a?Bt[c.leg]:void 0;if(l){let[e,n]=l,r=Math.hypot(n[0]-c.from[0],n[1]-c.from[1]);c.t+=t/(s?.01:e===`away`?Vt:Math.max(.6,r/16));let i=z(Math.min(1,c.t));c.at=[c.from[0]+(n[0]-c.from[0])*i,c.from[1]+(n[1]-c.from[1])*i],c.t>=1&&(e===`away`&&c.carrying&&(c.carrying=!1,c.trips++),c.leg=c.leg+1<Bt.length?c.leg+1:-1,c.t=0,c.from=[...c.at])}e.pusher.ext=L(e.pusher.ext,n<e.pusher.until?24:0,t,n<e.pusher.until?.06:.22,s)}function Yt(e){let{ids:t}=e,n=e.belts.map(e=>Xe(e,t)),r=pt(),i=Ht(),a=Rt(e.depth),o=U(n,`test`),s=U(n,`wash`),c=()=>o?.items.find(e=>e.out&&!e.push&&e.x>=176.60000000000002);return{ids:t,belts:n,press:r,pack:i,slots:a,robots:e.robots.map(e=>e.pack?jt(e,{station:t.packer,pending:()=>!!c(),placeAt:()=>zt(a,Math.max(0,i.count)),canPlace:()=>Gt(i,a.length),onPick:()=>{let e=c();o&&e&&o.items.splice(o.items.indexOf(e),1)},onPlace:()=>Kt(i,a.length),floorAt:(e,t)=>qt(i,e,t)}):jt(e,{station:t.robot,nest:t.cnc,belt:s})),readings:new Map,introDone:!0}}function Xt(e){for(let t of e.belts)t.items=[],t.good=t.scrap=-1;for(let t of e.robots)Mt(t);mt(e.press),Ut(e.pack)}var Zt=e=>[e.cnc,e.robot,e.wash,e.press,e.test,e.packer];function Qt(e,t){let n=new Map;for(let r of Zt(e.ids)){let e=t.station(r);e&&n.set(r,e)}let r=tt(e.readings,n);e.readings.clear();for(let[t,r]of n)e.readings.set(t,r);return r&&Xt(e),r}function $t(e,t,n,r,i){let{ids:a,press:o,pack:s}=e;Qt(e,t);let c={simSpeed:t.simSpeed(),phase:Math.round(t.num(a.press,`press_phase`)),pressGood:t.station(a.press)?.good,still:i};_t(o,n,c);let l=i?.85:.6+.4*Math.abs(Math.sin(r*4));et(e.belts,n,e=>t.station(e),i,e=>t.faults(e).includes(`belt_slip`)?l:1),Jt(s,n,r,{test:t.station(a.test),packer:t.station(a.packer),amrMoving:t.num(a.amr,`running`)>0},e.slots.length,i);for(let r of e.robots){let a=t.station(r.hooks.station);Pt(r,n,{own:a,nest:r.hooks.nest?t.station(r.hooks.nest):void 0,halted:a?.state===`down_unplanned`},i,e.introDone)}let u=U(e.belts,`feed`),d=U(e.belts,`test`);u&&d&&vt(o,n,c,u,d)}function en(e){let{svg:t,feed:n,ids:r}=e,i=b(t,`[data-work="cnc"]`);return{draw(){n.buffers().forEach((e,n)=>{for(let r of g(t,`[data-slot^="b${n}:"]`))d(r,`data-on`,+(r.dataset.slot?.split(`:`)[1]??0)<e.level?``:null)}),d(i,`data-on`,n.station(r.cnc)?.state===`running`?``:null)}}}function tn(e){let{svg:t,P:n,feed:i,ids:s}=e,c=n.scale,u=(e,t,n=0)=>i.num(e,t,n),f={cncSpin:0,cncHead:0,cncRpm:0,washing:0,flash:0},p=b(t,`[data-move="cnc-head"]`),m=b(t,`[data-spin="cnc"]`),h=b(t,`[data-carousel]`),[v=0,x=0,S=0,C=0]=y(h?.dataset.carousel),w={rings:Array.from({length:12},()=>_(`path`,{class:`iso-line`,"data-tone":`lo`},h)),tools:Array.from({length:12},()=>_(`path`,{class:`iso-line`,"data-tone":`mid`},h)),angle:0,target:0},T=-1,E=b(t,`[data-mist]`),D=y(E?.dataset.mist),O=Array.from({length:14},(e,t)=>({el:_(`circle`,{class:`sf-mist`,style:`display:none`},E),seed:t*1.37})),k=b(t,`[data-steam]`),A=y(k?.dataset.steam),j=Array.from({length:7},(e,t)=>({el:_(`circle`,{class:`sf-steam`,style:`display:none`},k),seed:t/7})),M=g(t,`[data-beam]`),N=b(t,`[data-oil]`),P=y(N?.dataset.oil),ee=b(t,`[data-flash]`);return{resync(){T=-1},draw(t,h,g){let _=e.reducedMotion(),y=i.station(s.cnc),b=y?.state===`running`;f.cncRpm=L(f.cncRpm,u(s.cnc,`spindle_speed_feedback`),t,.8,_),_||(f.cncSpin+=f.cncRpm/8500*2.4*fe*t),f.cncHead=L(f.cncHead,b?-3.2-.8*Math.sin(h*.8)*Math.min(1,u(s.cnc,`feed_rate`)/1750):2,t,.5,_),d(p,`transform`,a(n,[0,0,f.cncHead])),d(m,`d`,ye(n,`z`,[-266,30,0],4.2,44.3,49.7,f.cncSpin,8)),y&&(T>=0&&y.good>T&&(w.target+=fe/12),T=y.good),w.angle=L(w.angle,w.target,t,.35,_),w.rings.forEach((e,t)=>{let r=w.angle+t*fe/12,i=[v,x+C*Math.cos(r),S+C*Math.sin(r)];d(e,`d`,o(i,1.5,`x`,n)),d(w.tools[t],`d`,o(i,.6,`x`,n)),d(e,`data-tone`,Math.abs(Math.sin(r/2-Math.PI/4))<.14?`lit`:`lo`)});let E=+!!b;for(let e of O){let t=(h*1.7+e.seed)%1,i=e.seed*4.1+h*.6,a=1.6+t*5,[o,s]=r([(D[0]??0)+Math.cos(i)*a,(D[1]??0)+Math.sin(i)*a,(D[2]??0)-2+t*3-t*t*5],n);re(e.el,o,s),e.el.setAttribute(`r`,(.25+t*.5).toFixed(2)),l(e.el,(E*Math.sin(Math.PI*t)*.7).toFixed(2))}f.washing=L(f.washing,+(i.station(s.wash)?.state===`running`),t,2.5,_);for(let e of j){let t=(h*.22+e.seed)%1,[i,a]=r([(A[0]??0)+t*6+Math.sin(h+e.seed*9)*1.5,(A[1]??0)-t*3,(A[2]??0)+t*26],n);re(e.el,i,a),e.el.setAttribute(`r`,((1.6+t*6)*c*.6).toFixed(2)),l(e.el,(f.washing*Math.sin(Math.PI*t)**1.5*.16).toFixed(3))}let k=i.station(s.press),te=k&&k.state!==`off_shift`?Math.floor(h*14)%(M.length+6):-1;for(let[e,t]of M.entries())d(t,`data-on`,e===te?``:null);let ne=de(u(s.press,`oil_level`,90)/100),[F=0,I=0,ie=0,ae=0]=P;d(N,`d`,`M${F} ${-(I+(ae-I)*ne)}H${ie}V${-I}H${F}Z`),f.flash=g?1:f.flash*Math.exp(-t/.25),ee&&(ee.style.opacity=(f.flash*.55).toFixed(2))}}}var nn=[[162,37,0],[167.6,38.4,0],[163.4,40.6,0],[168.8,36.6,1],[161.8,39,1],[166,41,1],[164.6,37.4,2],[169,40,2],[162.6,40.8,2],[166.4,38.6,3]],rn=55,an=`M246 4H258V4.6H246Z`,on=`M246 4H249V4.6H246Z`,q=[272,17.5,-14],sn=22,cn=.9;function ln(e,t,n){let{svg:o,P:s}=e,c=b(o,`[data-move="pusher"]`),u=b(o,`[data-rod="pusher"]`),f=b(o,`[data-tote]`),p=f?b(f,`[data-tote-parts]`):null,m=b(o,`[data-tote-over]`),h=b(o,`[data-tote-full]`),g=h?b(h,`[data-tote-parts]`):null,v=b(o,`[data-amr]`),y=_(`g`,{transform:a(s,[rn,0,0])},v?b(v,`[data-tote-parts]`):null),x=b(o,`[data-tote-amr]`),S=b(o,`[data-amr-led]`),C=_(`path`,{class:`sf-scan`},v),T=_(`path`,{class:`sf-scan-beam`},v),E=(()=>{let e=Array.from({length:13},(e,t)=>{let n=-cn+t/12*2*cn;return r([q[0]+Math.cos(n)*sn,q[1]+Math.sin(n)*sn,q[2]],s)}),[t,n]=r(q,s);return`M${t.toFixed(1)} ${n.toFixed(1)}${e.map(([e,t])=>`L${e.toFixed(1)} ${t.toFixed(1)}`).join(``)}Z`})(),D=b(o,`[data-scrap]`),O=nn.map(([e,t,n])=>{let r=_(`g`,{class:`sf-part`},D);return r.innerHTML=ge({x:e,y:t,w:5,d:3.6,r:.6},5.4+n*1.6,2.4,s),r}),k=n.map(e=>{let t=ge({x:e.cx,y:e.cy,w:K.w,d:K.d,r:.8},e.z,K.h,s),n=_(`g`,{class:`sf-part`},p);n.innerHTML=t;for(let e of[g,y])_(`g`,{class:`sf-part`,"data-on":``},e).innerHTML=t;return n}),A=!1,j=!1;return{draw(e,n,o,p){let{swap:g,lane:_,amr:y}=t;if(g.t>=0){let e=z(Math.min(1,g.t/1.1)),t=z(Math.max(0,Math.min(1,(g.t-1.1)/.9)));d(h,`data-on`,``),h?.setAttribute(`transform`,a(s,[e*27,0,0]));let n=a(s,[0,(1-t)*44,0]),r=g.t>1.1?`1`:`0`;for(let e of[f,m])e?.setAttribute(`transform`,n),e&&(e.style.opacity=r)}else if(A){h?.setAttribute(`transform`,a(s,[27,0,0]));for(let e of[f,m])e&&(e.style.opacity=``),e?.removeAttribute(`transform`)}A=g.t>=0,_.t>=0?h?.setAttribute(`transform`,a(s,[27+z(Math.min(1,_.t))*28,0,0])):j&&(d(h,`data-on`,null),h?.removeAttribute(`transform`)),j=_.t>=0,v?.setAttribute(`transform`,a(s,[y.at[0],y.at[1],0])),v&&(v.style.opacity=(1-Math.max(0,Math.min(1,(y.at[0]-20)/30))).toFixed(2)),d(x,`data-on`,y.carrying?``:null);let b=n.includes(`low_battery`),D=n.includes(`nav_blocked`),M=p||Math.sin(o*6)>0;d(S,`d`,b?on:an),d(S,`data-s`,b||D?M?`warn`:null:n.length?`fault`:y.leg<0&&_.has?`warn`:`live`),d(C,`d`,D?E:``),l(C,D?p?`0.5`:(.35+.25*Math.sin(o*6)).toFixed(2):`0`);let N=``;if(D&&!p){let e=-cn+(Math.sin(o*2.4)+1)/2*2*cn,[t,n]=r(q,s),[i,a]=r([q[0]+Math.cos(e)*sn,q[1]+Math.sin(e)*sn,q[2]],s);N=`M${t.toFixed(1)} ${n.toFixed(1)}L${i.toFixed(1)} ${a.toFixed(1)}`}if(d(T,`d`,N),e!==void 0)for(let[t,n]of O.entries())d(n,`data-on`,t<e?``:null);for(let[e,n]of k.entries())d(n,`data-on`,e<t.count?``:null);c?.setAttribute(`transform`,a(s,[0,t.pusher.ext,0])),u&&(u.innerHTML=w(i({x:161.2,y:-4.4,w:1.6,d:1.2+t.pusher.ext,r:.6},25.6,1.6,s,2),{tone:`hi`,crease:`none`}))}}}var un={x:-3.5,y:10,w:7,d:10,r:1},dn=24;function fn(e,t,n){let{svg:r,P:i}=e,o=g(r,`[data-move="press-ram"]`),s=g(r,`[data-colstub]`),c=b(r,`[data-rod="press"]`),l=b(r,`[data-work="press"]`),u=b(r,`[data-move="loader"]`),f=b(r,`[data-push-part]`),p=b(r,`[data-feed-eye]`),m=b(r,`[data-move="unloader"]`),h=m?b(m,`[data-lift]`):null,_=b(r,`[data-pull-part]`),v=b(r,`[data-chute-part]`),S=null;return{draw(r){let{ram:g,loader:b,unloader:C,chute:T,die:E}=t,D=-(Math.max(0,Math.min(278,g))/278)*nt;for(let e of o)d(e,`transform`,a(i,[0,0,D]));let O=84+D;for(let e of s){let[t=0,n=0]=y(e.dataset.colstub);e.innerHTML=w(x(t,n,3.2,O,92-O,i,20),{tone:`mid`,crease:`none`})}c&&(c.innerHTML=w(x(0,15,4.6,O,92-O,i,28),{tone:`hi`,crease:`none`})),d(p,`data-s`,b.lead?`g`:null),d(u,`transform`,b.x?a(i,[b.x,0,0]):null),d(f,`data-on`,b.phase===`push`?``:null),d(f,`transform`,a(i,[-41+b.x,0,0])),d(m,`transform`,a(i,[C.x,0,0])),d(h,`transform`,a(i,[0,0,C.z]));let k=C.phase===`push`;d(_,`data-on`,k?``:null),d(_,`transform`,a(i,[Math.max(0,C.x-st),0,0])),d(v,`data-on`,T.x===null?null:``),T.x!==null&&d(v,`transform`,a(i,[T.x,0,dt(T.x)])),d(l,`data-on`,E.has&&b.phase!==`push`&&!k?``:null),E.has&&E.h!==null&&l&&S!==E.h&&(S=E.h,l.innerHTML=ge(un,dn,Math.max(rt,+E.h),i)),n(e.ids.press,e.reducedMotion()?0:E.jolt*2.2,r)}}}var pn=e=>`<g class="sf-steel">${e}</g>`;function mn(e,t,n){let{svg:o,P:c}=e,{spec:l,state:u}=t,f=wt(l),p=b(o,`[data-robot="${l.id}"]`),m=l.late==null?null:b(o,`[data-robot-late="${l.id}"]`),h=l.nestSel?b(o,l.nestSel):null,g=b(o,`[data-work="cnc"]`),[_,v,y]=l.part,x=e=>ge({x:e[0]-_/2,y:e[1]-v/2,w:_,d:v,r:1},e[2]-y,y,c);function S(e,r){if(Math.abs(e-l.pick[0])<_&&Math.abs(r-l.pick[1])<v)return l.pick[2]-y;let i=t.hooks.floorAt?.(e,r);if(i!=null)return i;for(let t of n)if(e>t.x0&&e<t.x1&&r>t.y0&&r<t.y1)return t.z;return 0}function T(){let{E:e,W:t,n,yaw:a}=Tt(l,u.tip),o=[],d=(e,t,n)=>{o.push({key:n??C(e,c),x:e[0],svg:t})},h=(e,t)=>ce(N(t,e)),g=S(u.tip[0],u.tip[1]),b=u.tip[2]-(u.holding?y:0)-g,T=.5*Math.exp(-Math.max(0,b)/16);T>.03&&d([u.tip[0],u.tip[1],g],`<path class="sf-shadow" style="opacity:${T.toFixed(2)}" d="${Se([u.tip[0],u.tip[1]],(u.holding?Math.max(_,v)*.5:2.6)+b*.04,g+.06,c,24)}"/>`,-1e9),d(f,`<path class="sf-j1" d="${s([l.base[0]+Math.cos(a)*2.2,l.base[1]+Math.sin(a)*2.2],[l.base[0]+Math.cos(a)*5.6,l.base[1]+Math.sin(a)*5.6],14.45,c)}"/>`,-1e8),d(f,w(ie(-5.4,5.4,6.2,P(f,n),c),{tone:`mid`})),d(A(f,R(n,5.6)),w(ie(5.4,6.4,3.4,P(f,n),c),{tone:`mid`}));let E=R(A(f,e),.5);d(E,w(oe([[0,3.6],[l.L1,2.9]],P(f,h(f,e)),c),{tone:`mid`})),d(e,w(ie(-4.2,4.2,4.4,P(e,n),c),{tone:`mid`})),d(R(A(e,t),.5),w(oe([[0,2.7],[l.L2,2.1]],P(e,h(e,t)),c),{tone:`mid`})),d(t,w(ie(-3,3,2.8,P(t,n),c),{tone:`mid`})),d(A(t,[0,0,-1]),pn(w(oe([[0,2.2],[1.6,2.2]],P(A(t,[0,0,-.2]),[0,0,-1]),c),{tone:`mid`,crease:`lo`}))),d(A(t,[0,0,-3.6]),w(i({x:t[0]-3,y:t[1]-2.4,w:6,d:4.8,r:.8},t[2]-5.6,4,c,2,.3),{tone:`mid`}));let[D,O]=r([t[0]+1.6,t[1]+2.45,t[2]-3.2],c);if(d(A(t,[.5,2.6,-3.2]),`<circle class="sf-gled" data-s="${u.holding?`g`:u.step>=0?`a`:``}" cx="${D.toFixed(2)}" cy="${O.toFixed(2)}" r="0.42"/>`),l.vacuum){let e=t[2]-5.6,n=u.tip[2]+.8;d([t[0],t[1],(e+n)/2],pn(w(oe([[0,.8],[e-n,.8]],P([t[0],t[1],e],[0,0,-1]),c),{tone:`mid`,crease:`none`}))),d([u.tip[0],u.tip[1],u.tip[2]+.4],w(oe([[0,1.1],[.8,2.3]],P([u.tip[0],u.tip[1],n],[0,0,-1]),c),{tone:`lo`}))}else{let e=_/2+.6+(1-u.grip)*1.8;d(A(t,[0,0,-6.2]),pn(w(i({x:t[0]-e-1.2,y:t[1]-1.6,w:2*e+2.4,d:3.2,r:.6},t[2]-6.8,1.2,c,2,.2),{tone:`mid`})));let n=u.tip[2]-y*.7;for(let r of[-1,1]){let a=t[0]+r*(e+.6);d([a,t[1],(n+t[2]-6.8)/2],pn(w(i({x:a-.6,y:t[1]-1.6,w:1.2,d:3.2,r:.3},n,t[2]-6.8-n,c,2),{tone:`mid`,crease:`lo`}))),d([a-r*.7,t[1],n+1.2],w(i({x:a-r*.6-(r>0?.35:0),y:t[1]-1.3,w:.35,d:2.6,r:.1},n+.2,2,c,2),{tone:`lo`,crease:`none`}))}}let k=(e,t)=>A(e,R(n,t)),j=[k([f[0],f[1],12],6.9),k(f,6.6),k(A(f,R(h(f,e),l.L1*.5)),3.9),k(e,4.8),k(A(e,R(h(e,t),6)),3.2)],M=e=>e.map((e,t)=>{let[n,i]=r(e,c);return`${t?`L`:`M`}${n.toFixed(2)} ${i.toFixed(2)}`}).join(``),ee=M(j),te=[j[2],j[4]].map(e=>r(e,c));d(k(E,5),`<path class="sf-cable" d="${ee}"/><path class="sf-cable-hi" d="${ee}"/>${te.map(([e,t])=>`<circle class="sf-clip" cx="${e.toFixed(1)}" cy="${t.toFixed(1)}" r="0.9"/>`).join(``)}`);let ne=k(A(e,R(h(e,t),l.L2*.72)),2.6);for(let[e,n]of[[2.2,-2.2],[2.8,-3.8]]){let r=k(A(t,[0,0,n]),e),i=A(R(A(r,ne),.5),[0,0,1.8]);d(A(r,[0,0,2]),`<path class="sf-hose" d="${M([r,k(A(t,[0,0,n+2.4]),e+.6),i,ne])}"/>`)}u.holding&&d(A(u.tip,[0,0,-y/2]),x(u.tip)),o.sort((e,t)=>e.key-t.key);let F=e=>!!m&&l.late!==void 0&&e.x>=l.late&&e.key>-1e8;m&&(m.innerHTML=o.filter(F).map(e=>e.svg).join(``)),p&&(p.innerHTML=o.filter(e=>!F(e)).map(e=>e.svg).join(``))}return{draw(){h&&(d(h,`data-on`,u.onNest?``:null),d(h,`transform`,u.eject!==void 0&&u.eject<1?a(c,[-(1-z(u.eject))*10,0,0]):null),u.eject!==void 0&&u.eject<1&&d(g,`data-on`,null)),u.dirty&&=(T(),!1)}}}var hn=1e3,gn={x:-318,y:-32,w:540,d:96,r:8},_n={x:-262,y:-176,w:410,d:92,r:8},J=[60,-90,0],vn={..._n,x:_n.x+J[0],y:_n.y+J[1]},Y={x:-338,y:-286,w:660,d:368,r:16},yn=u([...h(Y,-21,-14),...h(gn,-14,0),...h(vn,-14,0),[-288,-12,122],[0,15,134],[-200+J[0],-150+J[1],60]],hn,470,{pad:26,azimuth:60}),bn=[{id:`1`,base:[-205,-12],shoulder:20,L1:38,L2:34,tool:9,pick:[-244.5,29,29],place:[-166,15,29],home:[-206,8,52],part:[7,10,5],nestSel:`[data-nest]`,tuck:12,late:-182},{id:`2`,pack:!0,vacuum:!0,base:[198,-12],shoulder:20,L1:30,L2:28,tool:24,pick:[176.8,15,24.6],home:[194,6,44],part:[7,10,3.6],tuck:0}],xn=[94,-130,0],Sn=[-84,-130,0],Cn=.5625,wn=[-68,-128,0],Tn=[52,-128,0],En=e=>[Sn[0]+J[0]+(e[0]-xn[0])*Cn,Sn[1]+J[1]+(e[1]-xn[1])*Cn,e[2]*Cn],Dn=En(ne),On=En(te),X=2.2,kn=-182,An=-176.5,jn=-268,Mn=-256,Nn=[De[0]+J[0],De[1]+J[1],De[2]],Pn=Dn[0]+8,Fn={z:X,flowAloftBeforeY:-174,routes:[{id:`supply`,medium:`coolant`,r:1.8,pts:[[-176,-188.4,40],[-176,-182,40],[-176,kn,X],[jn,kn,X],[jn,-22,X]]},{id:`return`,medium:`coolant`,r:1.8,reverse:!0,pts:[Dn,[Pn,Dn[1],Dn[2]],[Pn,Dn[1],X],[Pn,An,X],[Mn,An,X],[Mn,-22,X]]},{id:`discharge`,medium:`coolant`,r:1.8,pts:[On,[On[0],On[1],Nn[2]],Nn]},{id:`air`,medium:`air`,r:1.2,pts:[[70,-204,24],[70,-192,24],[70,-192,X],[70,-24,X]]}],posts:[[-236,kn,1.8],[jn,-130,1.8],[jn,-80,1.8],[Mn,-110,1.8],[Mn,-60,1.8],[-110,An,1.8],[-40,An,1.8],[70,-150,1.2],[70,-106,1.2],[70,-62,1.2]]};function In(e){let{L:t,screws:n}=e,r=[ee(e,Y)],i=Y.x+6,a=Y.x+Y.w-6;r.push(t([-150,-146.6,-106,-102.6].map(e=>s([i,e],[a,e],-14,yn)).join(``),{className:`sf-aisle`}));let o=[];for(let e=Y.x+40;e<Y.x+Y.w-20;e+=40)o.push(s([e,Y.y+6],[e,Y.y+Y.d-6],-14,yn));return r.push(t(o.join(``),{className:`sf-joint`})),r.push(n(c(Y,12),-14)),r.join(``)}var Ln=e=>{let{svg:t,P:n,feed:r,ids:i}=e,a=Yt({ids:i,robots:bn,belts:yt(t),depth:e=>C(e,n)}),o=[i.robot,i.packer],s=It(e,a.robots.map((e,t)=>({id:o[t]??``,motion:e})),a.belts),c=be(e,s.shake),l=je(e,s.shake),u=ke(e,s.shake),d=new Set([i.cnc,i.robot,i.wash,i.press,i.test,i.packer]),f=(e,t,n=0)=>r.num(e,t,n),p=new Map([[i.cnc,()=>f(i.cnc,`spindle_load`)/100],[i.wash,()=>f(i.wash,`motor_current`)/12],[i.press,()=>f(i.press,`system_pressure`)/315],[i.test,()=>{let e=r.station(i.test);return e?e.good/Math.max(1,e.good+e.scrap):0}]]),m=new Map([[`press`,()=>f(i.press,`system_pressure`)/315],[`frl`,()=>f(i.press,`clamp_pressure`,f(i.comp,`header_pressure`))/10]]),h=ve(e,{needle:e=>l.needle(e)??u.needle(e)??m.get(e)?.()??0,bar:e=>c.bar(e)??l.bar(e)??u.bar(e)??p.get(e)?.()??0,alertsHigh:e=>e!==i.test,ready:()=>!!r.station(i.cnc)}),g=e=>r.station(e)?.state===`running`,_=le(e,e=>e.id===`air`?g(i.press)?6+26*f(i.press,`clamping_demand`):0:e.id.startsWith(`wash-`)?g(i.wash)?12:0:g(i.cnc)?f(i.chiller,`coolant_flow_rate`)/4:0),v=e=>d.has(e)&&!r.station(e)&&!r.faults(e).length?``:_e(r,e,`run_command`),y=pe(e,v),b=tn(e),x=en(e),S=St(e,a.belts),w=fn(e,a.press,s.shake),T=ln(e,a.pack,a.slots),E=a.robots.map(t=>mn(e,t,a.belts));return{data(e){y.draw(e),x.draw()},draw({sdt:e,t,still:n,introDone:o}){a.introDone=o,$t(a,r,e,t,n);let d=S.draw(t);w.draw(t),b.draw(e,t,d),_.draw(e),h.draw(e,t),c.draw(e,t,o),l.draw(e,t,o),u.draw(e,t,o),T.draw(r.station(i.test)?.scrap,r.faults(i.amr),t,n);for(let e of E)e.draw();s.draw(e,t,a.press.ram,o)},resync(){Xt(a),b.resync()},status(e){return d.has(e)&&!r.faults(e).length?[r.station(e)?.state??`--`,v(e)]:xe(r,e,`run_command`)},debug:{robots:a.robots.map(e=>e.state),belts:a.belts,loader:a.press.loader,unloader:a.press.unloader,chute:a.press.chute,die:a.press.die,tote:{fill:e=>{a.pack.count=e},swap:a.pack.swap,lane:a.pack.lane,amr:a.pack.amr},sim:a}}},Z=e(t(),1);function Rn(e,t){let{k:n,P:r,L:i,slab:a,screws:o}=e,s=t.x+5,c=t.x+t.w-5,l=[-284,-136,112].map(e=>a({x:e,y:49.6,w:12,d:3.6,r:.6},0,.5,{tone:`lo`,crease:`none`},2,0)+i(n.lineOnTop([e+1.6,51.4],[e+7.6,51.4],.5,r),{tone:`mid`,free:!0})+o([[e+10.4,51.4]],.5)).join(``);return i([55,57.4].map(e=>n.lineOnTop([s,e],[c,e],0,r)).join(``),{className:`sf-walk`})+l}var Q=n();function zn(e){return(0,Q.jsx)(m,{...e,draw:Ae})}function Bn(e,t){let{k:n,P:r,at:i,S:a,L:o,front:s,faceRule:c}=e,l={x:243,y:-1,w:28,d:37,r:3},u={x:243.6,y:-.4,w:26.8,d:35.8,r:1.2},d=Array.from({length:7},(e,t)=>n.lineOnTop([u.x+1.8+t*3.9,u.y+.4],[u.x+1.8+t*3.9,u.y+u.d-.4],0,r)).join(``),f={x:243,y:0,w:26,d:35,r:1.6},p=n.pathOf(n.roundedPlan(n.insetPlan(f,1.6),3).map(([e,t])=>i([e,t,16])),!0),m=`<g data-tote-amr="">${a(n.slabOf(f,0,16,r,3,.4),{tone:`mid`,inner:o(n.sideSeam(f,12,r,3),{tone:`faint`})})}<path class="sf-void" d="${p}"/><clipPath id="tote-open-amr"><path d="${p}"/></clipPath><g clip-path="url(#tote-open-amr)" data-tote-parts=""></g>${o(n.planOutline(n.insetPlan(f,1.6),16,r,3),{tone:`lo`})}${c(35,246,4,14,5)}</g>`;return`<g data-amr="" data-asset="${t}"><path class="iso-halo sf-contact" d="${n.haloOf(l,-14,1,r)}"/><path class="sf-alarm" data-alarm="${t}" d="${n.haloOf(l,-14,1,r)}"/>${a(n.slabOf(l,-13.2,10.8,r,3,.6),{tone:`mid`,inner:o(n.sideSeam(l,-10,r,3),{tone:`faint`})})}${Ee(e,l.y+l.d,262,-11,268,-8.8,`sf-void`)}<g transform="${s(l.y+l.d)}"><path class="sf-amr-led" data-amr-led="" d="M246 4H258V4.6H246Z"/></g>${a(n.slabOf(u,-2.4,2.4,r,2,.3),{tone:`lo`,inner:o(d,{tone:`mid`})})}${m}</g>`}function Vn({id:e,intro:t}){let n=p();return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>Bn(n,e),[n,e]),intro:t})}function Hn({name:e,at:t,capacity:n,intro:r}){let i=p(),[a,o]=t;return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>i.buffer(e,a,o,n),[i,e,a,o,n]),intro:r})}function Un(e,t){let{k:n,G:r,P:i,S:a,L:o,slab:s,cyl:c,andon:l,screws:u,faceRule:d,workpiece:f}=e,p=[],m={x:-304,y:-22,w:74,d:70,r:3};p.push(a(n.slabOf(m,0,12,i,3,.8),{tone:`mid`,inner:o(n.sideSeam(m,3,i,3),{tone:`faint`})})),p.push(d(48,-298,4.6,20,5.6));let h={x:-296,y:-20,w:32,d:26,r:2};p.push(a(n.slabOf(h,12,90,i,3,.8),{tone:`mid`,inner:o([30,34,38,42,46,50,54,58].map(e=>n.sideSeam(h,e,i,3)).join(``),{tone:`faint`})}));let g=r.frameAlong([-264,-8,80],[1,0,0]);p.push(a(r.disc(0,2,12.4,g,i),{tone:`mid`}),a(r.disc(2,3.6,11,g,i),{tone:`mid`}),a(r.disc(3.6,5,3,g,i),{tone:`mid`})),p.push(`<g data-carousel="-260.4,-8,80,8.4"></g>`),p.push(l(t,-290,-14,102)),p.push(s({x:-300,y:14,w:64,d:30,r:2},12,6,{tone:`mid`},3,.4)),p.push(s({x:-302,y:16,w:68,d:26,r:1.5},18,4,{tone:`lo`},3,.4)),p.push(o([21,26,31,36].map(e=>n.lineOnTop([-302,e],[-234,e],22,i)).join(``),{tone:`faint`})),p.push(s({x:-282,y:20,w:4,d:18,r:.6},22,6,{tone:`mid`},2,.3)),p.push(s({x:-258,y:20,w:4,d:18,r:.6},22,6,{tone:`mid`},2,.3)),p.push(c(-256,40,1.2,24,2,{tone:`mid`},12)),p.push(`<g class="sf-work" data-work="cnc">${f({x:-276,y:22,w:16,d:14,r:1},22,8)}</g>`);let _=[s({x:-280,y:6,w:28,d:32,r:3},62,18,{tone:`mid`},3,.8),c(-266,18,6.4,80,14,{tone:`mid`,inner:n.fadedSvg([82,84,86,88,90].map(e=>({d:n.sideArc(-266,18,6.4,e,i,24),alpha:.7})),{tone:`lo`})}),c(-266,18,4,94,1.6,{tone:`mid`},20),c(-266,30,7,50,12,{tone:`mid`,inner:o(n.sideArc(-266,30,7,56,i,32),{tone:`faint`})},36),c(-266,30,4.2,44,6,{tone:`mid`,crease:`lo`},28),`<path class="iso-line" data-tone="lo" data-spin="cnc" d=""/>`,c(-266,30,1.5,34,10,{tone:`hi`,lit:!0,crease:`none`},14),`<g data-mist="-266,30,36"></g>`,c(-255,34,1.5,60.4,1.6,{tone:`mid`},12),T(e,[[-255,34,60.6],[-255,34,52],[-261,32,41.5]],.8,`mid`,4,`coolant`,[!1,!0]),c(-261.6,32,1.1,40,1.6,{tone:`mid`},10)].join(``);return p.push(`<g data-move="cnc-head">${_}</g>`),p.push(s({x:-249,y:23,w:9,d:12,r:.8},22,2,{tone:`mid`},2,.3)),p.push(u([[-247.6,24.4],[-241.4,33.6]],24)),p.push(`<g class="sf-part" data-nest="">${f({x:-248,y:24,w:7,d:10,r:1},24,5)}</g>`),p.join(``)}function Wn(e,t){let{slab:n,hmi:r,screws:i}=e;return[n({x:-226,y:30,w:4,d:4,r:.8},0,36,{tone:`mid`},2,.3),n({x:-230,y:34,w:26,d:6,r:1},30,18,{tone:`mid`},2,.4),r(t,40,-228,-206,32,47),i([[-228.6,39.6],[-205.4,39.6]],47.4),F(e,-217,40,48)].join(``)}function Gn(e){return(0,Q.jsx)(m,{...e,draw:Un})}function Kn({id:e,intro:t}){let n=p();return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>Wn(n,e),[n,e]),asset:e,intro:t})}function qn(e){let{at:t,cyl:n,conveyor:r}=e,i=r(-82,44,8,14,23),a=t([-44,26.6,27.6]);return[i.back,i.belt,`<g data-belt="feed" data-x0="-81" data-x1="-35" data-y0="8" data-y1="22" data-z="${i.top}"><path class="iso-line" data-tone="faint" data-cleats="" d=""/><g data-parts-back=""></g></g>`,`<g data-parts-front="feed"></g>`,n(-44,25.5,1,24,4.4,{tone:`mid`,crease:`none`},12),`<circle class="sf-gled" data-feed-eye="" cx="${a[0].toFixed(2)}" cy="${a[1].toFixed(2)}" r="0.5"/>`,i.front].join(``)}function Jn({intro:e}){return(0,Q.jsx)(f,{html:v(qn),intro:e})}var Yn=e=>24-(e-28)/56*2.6,Xn=(()=>{let e=Math.hypot(56,2.6);return[56/e,0,-2.6/e]})();function Zn(e){let{G:t,P:n,S:r,cyl:i}=e,a=[];for(let[e,t]of[[40,8.2],[72,8.2]])a.push(i(e,t,.9,0,Yn(e)-2.2,{tone:`mid`,crease:`none`},12));a.push(r(t.solidOf([[0,.8],[57,.8]],t.frameAlong([28,8.2,25],Xn),n),{tone:`mid`,crease:`none`}));for(let e=30;e<=82;e+=3.5)a.push(r(t.solidOf([[0,.9],[12.4,.9]],t.frameAlong([e,8.8,Yn(e)-.9],[0,1,0]),n),{tone:`mid`,crease:`none`}));return a.join(``)}function Qn(e){let{G:t,P:n,S:r,cyl:i,workpiece:a}=e,o=[`<g class="sf-work" data-chute-part="">${a({x:-3.5,y:10,w:7,d:10,r:1},24,3.6)}</g>`];for(let[e,t]of[[40,21.8],[72,21.8]])o.push(i(e,t,.9,0,Yn(e)-2.2,{tone:`mid`,crease:`none`},12));return o.push(r(t.solidOf([[0,.8],[57,.8]],t.frameAlong([28,21.8,25],Xn),n),{tone:`mid`,crease:`none`})),o.join(``)}function $n(e,t,n){let{k:r,P:i,S:a,L:o,cyl:s}=e,c=[`<path class="iso-halo sf-contact" d="${r.haloOf({x:t-4,y:n-4,w:8,d:8,r:4},0,.5,i)}"/>`];c.push(s(t,n,3.2,0,1,{tone:`lo`},20),s(t,n,1.2,1,24,{tone:`mid`,crease:`none`},12));let l={x:t-11,y:n-3,w:22,d:6,r:1};c.push(a(r.slabOf(l,25,4,i,2,.4),{tone:`mid`,inner:o(r.sideSeam(l,26.4,i,2),{tone:`faint`})}));for(let e of[t-7,t+7])c.push(s(e,n,2.2,29,.6,{tone:`mid`},18),`<g class="sf-green">${s(e,n,1.7,29.6,1.2,{tone:`mid`},18)}</g>`);return c.push(F(e,t,n,29)),c.join(``)}var er=[[-5,54,93],[-1.8,57.5,101]];function tr(e,t){let{k:n,G:r,P:i,at:a,S:o,L:s,D:c,slab:l,cyl:u,hmi:d,andon:f,dial:p,screws:m,faceRule:h,front:g,workpiece:_}=e,v=[],y={x:34,y:-28,w:26,d:30,r:1.6};v.push(o(n.slabOf(y,0,22,i,3,.6),{tone:`mid`,inner:s(n.sideSeam(y,4,i,3),{tone:`faint`})})),v.push(`<g transform="${g(y.y+y.d)}"><path class="sf-hmi" d="M48 -19H51V-4H48Z"/><path class="sf-oil" data-oil="48,4,51,19" d=""/><path class="iso-line" data-tone="lo" d="M48 -19H51V-4H48Z"/></g>`),v.push(h(y.y+y.d,36,12,12,5)),v.push(M(g(y.y+y.d),`press`,42,7,4.2));let b=r.frameAlong([37,-13,29.4],[1,0,0]);v.push(l({x:38,y:-18,w:12,d:10,r:1},22,2,{tone:`lo`},2,0)),v.push(o(r.solidOf([[0,4.6],[.5,5.2],[12,5.2],[12.5,4.6]],b,i),{tone:`mid`,inner:n.fadedSvg(r.ribsOf(b,.5,12,5.2,14,i,{fade:[.1,.55],seams:!0}),{tone:`lo`})})),v.push(o(r.disc(12.5,16,3.4,b,i),{tone:`mid`}),o(r.disc(16,21,4.2,b,i),{tone:`mid`})),v.push(u(55,-22,2,22,3,{tone:`mid`},14)),v.push(o(r.disc(0,.8,1.8,r.frameAlong([60,-19,15.5],[1,0,0]),i),{tone:`mid`}),T(e,[[60.8,-19,15.5],[66.8,-19,15.5]],.8,`mid`,2.2,`air`,[!1,!1])),v.push(l({x:64,y:-24,w:12,d:10,r:1},0,6,{tone:`mid`},2,.3)),v.push(u(70,-19,2.6,6,8,{tone:`mid`,inner:s(n.sideArc(70,-19,2.6,9,i,16),{tone:`faint`})},20),u(70,-19,3.2,14,4,{tone:`mid`},20)),v.push(p(`frl`,70,-19,18,3)),v.push(l({x:-30,y:-12,w:60,d:54,r:3},0,16,{tone:`mid`},3,1)),v.push(l({x:-22,y:-4,w:44,d:38,r:1.5},16,3,{tone:`lo`},3,.4)),v.push(m([[-20.4,-2.4],[20.4,-2.4],[-20.4,32.4],[20.4,32.4]],19)),v.push(l({x:-18,y:-3.5,w:36,d:37,r:1.2},19,2.5,{tone:`mid`},2,.4));for(let e of[-14.5,14.5])v.push(u(e,-.5,1.3,21.5,11.5,{tone:`mid`,crease:`none`},14));v.push(l({x:-10,y:6,w:20,d:18,r:1},21.5,2.5,{tone:`mid`},2,.4)),v.push(s(n.planOutline({x:-4.4,y:9.1,w:8.8,d:11.8,r:1.2},24,i,3),{tone:`lo`})),v.push(`<g class="sf-work" data-work="press">${_({x:-3.5,y:10,w:7,d:10,r:1},24,5)}</g>`,`<g class="sf-fx" data-fx-slot="${t}"></g>`);for(let e of[-24,24])v.push(u(e,-6,3.2,19,73,{tone:`mid`,crease:`none`},20));v.push(l({x:-36,y:11,w:3,d:8,r:.5},0,23,{tone:`lo`},2,.2)),v.push(l({x:-16,y:11,w:3,d:8,r:.5},21.5,1.5,{tone:`lo`},2,0)),v.push(l({x:-38,y:9,w:28,d:12,r:.6},23,1,{tone:`mid`},2,.2)),v.push(l({x:-50,y:2.6,w:4,d:4.8,r:.6},0,29,{tone:`mid`},2,.3)),v.push(l({x:-50,y:3.4,w:46,d:3.2,r:1},25.6,2.8,{tone:`mid`,inner:s(n.lineOnTop([-48,5],[-6,5],28.4,i),{tone:`faint`})},2,.3)),v.push(l({x:-51,y:3,w:2.4,d:4,r:.4},25,4,{tone:`mid`},2,0),l({x:-5,y:3,w:2.4,d:4,r:.4},25,4,{tone:`mid`},2,0)),v.push(`<g data-move="loader">${l({x:-48.6,y:2.8,w:5,d:4.4,r:.6},26.2,3.6,{tone:`mid`},2,.3)}${l({x:-46.4,y:6.6,w:1.6,d:13,r:.4},24.4,3.4,{tone:`mid`},2,.2)}</g>`),v.push(`<g class="sf-work" data-push-part="">${_({x:-3.5,y:10,w:7,d:10,r:1},24,5)}</g>`),v.push(l({x:-27,y:-3,w:6,d:6.6,r:.6},33,2.8,{tone:`mid`},2,.3)),v.push(l({x:31.4,y:3.2,w:3.6,d:3.6,r:.6},0,33,{tone:`mid`},2,.3)),v.push(l({x:-28,y:3.6,w:62,d:2.8,r:1},33,2.8,{tone:`mid`,inner:s(n.lineOnTop([-26,5],[32,5],35.8,i),{tone:`faint`})},2,.3)),v.push(l({x:-29,y:3.2,w:2.4,d:3.6,r:.4},32.4,4,{tone:`mid`},2,0),l({x:33,y:3.2,w:2.4,d:3.6,r:.4},32.4,4,{tone:`mid`},2,0));let x=l({x:-24,y:7,w:1.6,d:1.8,r:.3},24.4,11.6,{tone:`mid`},2,0)+l({x:-24,y:8.6,w:1.6,d:12.8,r:.4},24.4,6,{tone:`mid`},2,.2);v.push(`<g data-move="unloader">${l({x:-26,y:3,w:5,d:4,r:.6},32.6,4,{tone:`mid`},2,.3)}${l({x:-25,y:7,w:3,d:2,r:.4},33,3.4,{tone:`lo`},2,0)}<g data-lift="">${x}</g></g>`),v.push(Zn(e)),v.push(`<g class="sf-work" data-pull-part="">${_({x:-3.5,y:10,w:7,d:10,r:1},24,3.6)}</g>`),v.push(Qn(e));for(let e of[-14.5,14.5])v.push(u(e,30.5,1.3,21.5,11.5,{tone:`mid`,crease:`none`},14));let S=[...[-24,24].map(e=>u(e,-6,4.6,76,8,{tone:`mid`},28)),...[-14.5,14.5].map(e=>u(e,-.5,2.2,65,11,{tone:`mid`},18)),l({x:-4.4,y:9.1,w:8.8,d:11.8,r:1.2},70,2,{tone:`hi`,lit:!0},2,.2),l({x:-12,y:4,w:24,d:22,r:1},72,4,{tone:`mid`},2,.4),...[-14.5,14.5].map(e=>u(e,30.5,2.2,65,11,{tone:`mid`},18)),l({x:-19,y:-4,w:38,d:36,r:2},76,8,{tone:`mid`},3,.6),m([[-15,0],[15,0],[-15,28],[15,28]],84)].join(``);v.push(`<g data-move="press-ram">${S}</g>`),v.push(`<g data-colstub="-24,-6"></g><g data-colstub="24,-6"></g>`),v.push(`<g data-rod="press"></g>`);for(let e of[-24,24])v.push(u(e,36,3.2,19,73,{tone:`mid`,crease:`none`},20));v.push(`<g data-move="press-ram">${[-24,24].map(e=>u(e,36,4.6,76,8,{tone:`mid`},28)).join(``)}</g>`),v.push(`<g data-colstub="-24,36"></g><g data-colstub="24,36"></g>`),v.push(l({x:-30,y:-12,w:60,d:54,r:3},92,14,{tone:`mid`},3,1)),v.push(m([[-24,-6],[24,-6],[-24,36],[24,36]],106)),v.push(u(0,15,12,106,22,{tone:`mid`,inner:s(n.sideArc(0,15,12,110,i,40)+n.sideArc(0,15,12,124,i,40),{tone:`faint`})},48)),v.push(u(0,15,13,128,3,{tone:`mid`},48)),v.push(c(r.dotsOf(r.frameAlong([0,15,131],[0,0,1]),0,10.6,8,i,{all:!0}),{size:.45})),v.push(u(0,15,3,131,2,{tone:`mid`},16)),v.push(f(t,-24,-6,106));for(let[e,,t]of er)v.push(o(r.disc(0,1.2,2.4,r.frameAlong([30,e,t],[1,0,0]),i),{tone:`mid`}));for(let[t,n,r]of er)v.push(u(n,t,2.1,22,.9,{tone:`mid`},16),T(e,[[n,t,22.9],[n,t,r],[31.2,t,r]],1.3,`mid`,5,`hyd`));v.push(d(t,42,-24,16,2.4,14));let C={x0:-28,x1:28,y0:48.6,y1:53},w=[];for(let e=C.x0-(C.y1-C.y0);e<C.x1;e+=3){let t=[Math.max(C.x0,e),0],r=[Math.min(C.x1,e+(C.y1-C.y0)),0];t[1]=C.y1-(t[0]-e),r[1]=C.y1-(r[0]-e),w.push(n.lineOnTop(t,r,0,i))}v.push(s(w.join(``),{className:`sf-hatch`}),s(n.onTop([[C.x0,C.y0],[C.x1,C.y0],[C.x1,C.y1],[C.x0,C.y1]],0,i,!0),{className:`sf-hatch-edge`}));for(let e of[-31,29])v.push(l({x:e,y:44.4,w:2.6,d:2.6,r:.5},0,60,{tone:`mid`},2,.2)),v.push(l({x:e-.4,y:44,w:3.4,d:3.4,r:.6},0,1.2,{tone:`lo`},2,0));v.push($n(e,-44,47));let E=[];for(let e=0,t=22;t<=56;t+=3.4,e++)E.push(`<path class="sf-beam" data-beam="${e}" d="${n.segment([-28.4,45.7,t],[29,45.7,t],i)}"/>`);let D=[];for(let e=22;e<=56;e+=3.4)D.push(a([-28.4,45.7,e]));return v.push(`<g class="sf-curtain">${E.join(``)}${D.map(([e,t])=>`<circle class="sf-led" cx="${e.toFixed(1)}" cy="${t.toFixed(1)}" r="0.55"/>`).join(``)}</g>`),v.join(``)}function nr(e){return(0,Q.jsx)(m,{...e,draw:tr})}var rr=26,ir=35;function ar(e){let t=[...e].sort((e,t)=>e[0]-t[0]||e[1]-t[1]),n=(e,t,n)=>(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0]),r=e=>{let t=[];for(let r of e){for(;t.length>=2&&n(t[t.length-2],t[t.length-1],r)<=0;)t.pop();t.push(r)}return t.pop(),t};return[...r(t),...r([...t].reverse())]}var or=e=>`M${e.map(([e,t])=>`${e.toFixed(2)} ${t.toFixed(2)}`).join(`L`)}Z`;function sr(e,t,n){let{k:r,G:i,P:a,at:o,S:s,L:c,slab:l,cyl:u,hmi:d,andon:f,screws:p,conveyor:m,faceRule:h}=e,g=m(84,100,4,24,20),_=[g.back,g.belt,`<g data-belt="test" data-x0="85" data-x1="182" data-y0="4" data-y1="28" data-z="${g.top}"><path class="iso-line" data-tone="faint" data-cleats="" d=""/><g data-parts-back=""></g></g>`],v=i.frameAlong([162,-14,26.4],[0,1,0]);_.push(l({x:158,y:-16,w:8,d:4,r:.6},0,24,{tone:`mid`},2,.3)),_.push(s(i.solidOf([[0,2.6],[10,2.6]],v,a),{tone:`mid`,inner:c(i.arcOf(v,2,2.6,a)+i.arcOf(v,8,2.6,a),{tone:`faint`})})),_.push(`<g data-rod="pusher"></g><g data-move="pusher">${l({x:156,y:-3.4,w:12,d:1.6,r:.4},23.6,6,{tone:`mid`},2,.2)}</g>`),_.push(l({x:126,y:-4,w:6,d:4,r:.8},0,54,{tone:`mid`},2,.3)),_.push(l({x:124,y:-5,w:10,d:39,r:1.5},54,6,{tone:`mid`},3,.5)),_.push(p([[126,-3],[132,-3],[126,32],[132,32]],60)),_.push(f(t,129,-1,60)),_.push(u(129,16,4,42,12,{tone:`mid`,inner:c(r.sideArc(129,16,4,48,a,24),{tone:`faint`})},24)),_.push(u(129,16,5.6,40.4,1.6,{tone:`mid`},28)),_.push(`<g class="sf-eye" data-eye="test">${u(129,16,2.6,38,2.4,{tone:`hi`,lit:!0},20)}</g>`),_.push(`<path class="sf-flash" data-flash="" d="${r.pathOf(r.circleRing(129,16,9,40).map(([e,t])=>o([e,t,21.2])),!0)}"/>`),_.push(`<g data-parts-front="test"></g>`),_.push(l({x:180.4,y:4.2,w:1,d:23.6,r:.3},21.6,4,{tone:`mid`},2,0)),_.push(g.front);let y=o([183.4,31,27]),b=l({x:180,y:1,w:2,d:30,r:.4},24,1.4,{tone:`mid`},2,.2)+u(183.4,30,.9,25.4,2.6,{tone:`mid`,crease:`none`},12)+`<circle class="sf-gled" data-pack-eye="" cx="${y[0].toFixed(2)}" cy="${y[1].toFixed(2)}" r="0.45"/>`;_.push(b),_.push(l({x:126,y:30,w:6,d:4,r:.8},0,54,{tone:`mid`},2,.3)),_.push(l({x:134,y:31,w:26,d:4,r:1},28,18,{tone:`mid`},2,.4)),_.push(d(t,35,135.2,158.8,29.4,45.4)),_.push(F(e,155,33,46));let x={x:160,y:35,w:16,d:11,r:1.2};_.push(l(x,0,11,{tone:`mid`},3,.3));let S=r.pathOf(r.roundedPlan(r.insetPlan(x,1.2),3).map(([e,t])=>o([e,t,11])),!0);_.push(`<path class="sf-void" d="${S}"/>`),_.push(`<clipPath id="bin-open"><path d="${S}"/></clipPath><g clip-path="url(#bin-open)" data-scrap=""></g>`),_.push(c(r.planOutline(r.insetPlan(x,1.2),11,a,3),{tone:`lo`})),_.push(h(x.y+x.d,x.x+2,3,12,4.4));let C=e=>({x:e,y:0,w:rr,d:ir,r:1.6}),w=e=>s(r.slabOf(C(e),0,16,a,3,.4),{tone:`mid`,inner:c(r.sideSeam(C(e),12,a,3),{tone:`faint`})}),T=e=>r.pathOf(r.roundedPlan(r.insetPlan(C(e),1.6),3).map(([e,t])=>o([e,t,16])),!0),E=e=>c(r.planOutline(r.insetPlan(C(e),1.6),16,a,3),{tone:`lo`})+h(ir,e+3,4,14,5),D=(e,t,n)=>`<g ${n}>${w(e)}<path class="sf-void" d="${T(e)}"/><clipPath id="${t}"><path d="${T(e)}"/></clipPath><g clip-path="url(#${t})" data-tote-parts=""></g>${E(e)}</g>`;_.push(D(188,`tote-open`,`data-tote=""`));let O={x:214,y:-1,w:28,d:37,r:1};_.push(l({x:239,y:0,w:2.4,d:2.4,r:.4},-14,12.4,{tone:`lo`},2,0),l({x:239,y:33.6,w:2.4,d:2.4,r:.4},-14,12.4,{tone:`lo`},2,0)),_.push(s(r.slabOf(O,-1.6,1.6,a,2,.3),{tone:`mid`,inner:c([0,1,2,3,4,5,6].map(e=>r.lineOnTop([O.x+2+e*3.9,O.y+.3],[O.x+2+e*3.9,O.y+O.d-.3],0,a)).join(``),{tone:`lo`})})),_.push(D(188,`tote-open-full`,`data-tote-full=""`)),_.push(`<g data-robot="2" data-asset="${n}" class="sf-robot"></g>`);let k=[[189.6,1.6],[188+rr-1.6,1.6],[188+rr-1.6,ir-1.6],[189.6,ir-1.6]].map(([e,t])=>o([e,t,16])),A=k.reduce((e,t)=>t[0]<e[0]?t:e),j=k.reduce((e,t)=>t[0]>e[0]?t:e),M=k.reduce((e,t)=>t[1]>e[1]?t:e),N=[[A[0]-30,A[1]-.6],[A[0],A[1]-.6],[M[0],M[1]-.6],[j[0],j[1]-.6],[j[0]+30,j[1]-.6],[j[0]+30,4e3],[A[0]-30,4e3]];_.push(`<g data-tote-over=""><clipPath id="tote-over-clip"><path d="${or(N)}"/></clipPath><g clip-path="url(#tote-over-clip)">${w(188)}${E(188)}</g></g>`);let P=ar([166,186].flatMap(e=>[-2,34].flatMap(t=>[14,48].map(n=>o([e,t,n])))));return _.push(`<clipPath id="pick-clip"><path d="${or(P)}"/></clipPath><g clip-path="url(#pick-clip)">${g.front}${b}</g>`),_.join(``)}function cr({packer:e,...t}){let n=(0,Z.useCallback)((t,n)=>sr(t,n,e),[e]);return(0,Q.jsx)(m,{...t,draw:n})}function lr(e,t,n,r){let{k:i,G:a,P:o,D:s,L:c,slab:l,cyl:u,screws:d,andon:f}=e,p=[`<path class="iso-halo sf-contact" d="${i.haloOf({x:t-10,y:n-10,w:20,d:20,r:10},0,.5,o)}"/>`];return p.push(l({x:t-11,y:n-11,w:22,d:22,r:3},0,2.4,{tone:`lo`},3,.4)),p.push(d(i.corners({x:t-11,y:n-11,w:22,d:22},2.4),2.4)),p.push(u(t,n,8.4,2.4,3,{tone:`mid`},40)),p.push(s(a.dotsOf(a.frameAlong([t,n,5.4],[0,0,1]),0,7,10,o,{all:!0}),{size:.4})),p.push(`<g class="sf-robot">${u(t,n,6.4,5.4,9,{tone:`mid`,inner:c(i.sideArc(t,n,6.4,9,o,32),{tone:`faint`})},36)}</g>`),p.push(l({x:t-9,y:n+7,w:6,d:3,r:.6},2.4,5,{tone:`mid`},2,.3)),p.push(f(r,t+8,n-8,2.4)),p.join(``)}function ur({id:e,base:t,intro:n}){let r=p(),[i,a]=t;return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>`<path class="sf-alarm" data-alarm="${e}" d="${S({x:i-14,y:a-14,w:28,d:28,r:8},0,1,r.P)}"/>${lr(r,i,a,e)}`,[r,i,a,e]),asset:e,intro:n})}function dr({id:e,robot:t,intro:n}){return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`g`,{"data-robot":t,"data-asset":e,"data-intro":n,className:`sf-robot`}),(0,Q.jsx)(`g`,{"data-fx-slot":e})]})}var $=-14;function fr(e){let{k:t,P:n,at:r,S:i,slab:a,front:o,faceRule:s,screws:c}=e,l=[],u={x:-322,y:-262,w:96,d:26,r:1};l.push(`<path class="iso-halo sf-contact" d="${t.haloOf(u,$,1,n)}"/>`),l.push(a(u,$,4,{tone:`lo`},2,.3));let d=u.y+u.d-1;[0,1,2].forEach(e=>{let f=u.x+1+e*31.4,p={x:f,y:u.y+1,w:31,d:u.d-2,r:.8},m=$+4+54,h=[];for(let e=$+10;e<$+20;e+=2.2)h.push(`M${f+5} ${-e}H${f+26}`);h.push(`M${f+5} ${-($+8.8)}H${f+26}V${-($+20)}H${f+5}Z`);let g=`<g transform="${o(d)}"><path class="iso-line" data-tone="lo" d="M${f+2} ${-(m-2)}H${f+29}V${-($+6)}H${f+2}Z"/><path class="iso-line" data-tone="faint" d="${h.join(``)}"/></g>`;l.push(i(t.slabOf(p,$+4,54,n,2,.6),{tone:`mid`,inner:g})),l.push(a({x:f+25.4,y:d,w:1.6,d:1.2,r:.4},$+30,8,{tone:`mid`},2,0));let _=r([f+7,d,m-7]),v=r([f+10.5,d,m-7]);l.push(`<circle class="sf-pilot" data-pilot="${e}" cx="${_[0].toFixed(1)}" cy="${_[1].toFixed(1)}" r="0.9"/>`),l.push(`<circle class="sf-pilot sf-pilot-off" cx="${v[0].toFixed(1)}" cy="${v[1].toFixed(1)}" r="0.9"/>`),l.push(s(d,f+15,m-10,11,5)),l.push(c([[f+3,p.y+3],[f+28,p.y+3]],m))});let f={x:u.x+70,y:u.y+4,w:14,d:8,r:.4};return l.push(a(f,$+58,4,{tone:`lo`},2,0)),l.join(``)}function pr(e,t,n){let{k:r,P:i,L:a,slab:o,cyl:s,front:c}=e,l=[];return l.push(`<path class="iso-halo sf-contact" d="${r.haloOf({x:t-5,y:n-5,w:10,d:10,r:5},$,1,i)}"/>`),l.push(o({x:t-4,y:n-8,w:8,d:2,r:.4},$,40,{tone:`mid`},2,.2)),l.push(`<g transform="${c(n-6)}"><path class="sf-sign" d="M${t-3.4} ${-($+38)}H${t+3.4}V${-($+30)}H${t-3.4}Z"/><path class="sf-sign-mark" d="M${t-1.2} ${-($+31.6)}H${t+1.2}V${-($+36.4)}H${t-1.2}Z"/></g>`),l.push(`<g class="sf-red">${s(t,n-2.6,2.6,$+6,13,{tone:`mid`,inner:a(r.sideArc(t,n-2.6,2.6,$+15,i,20),{tone:`faint`})},24)}${s(t,n-2.6,1.2,$+19,2,{tone:`mid`},14)}</g>`),l.push(o({x:t-1.6,y:n-3.6,w:3.2,d:2,r:.4},$+21,1.2,{tone:`mid`},2,0)),l.push(o({x:t-3.4,y:n-6.2,w:6.8,d:1.2,r:.3},$+4.4,1.4,{tone:`lo`},2,0)),l.join(``)}function mr(e){let{k:t,P:n,at:r,L:i}=e;return[[-120,-126],[120,-126]].map(([e,a])=>{let o={x:e-10,y:a-3,w:20,d:6,r:1},s=[];for(let e=1;e<10;e++)s.push(t.lineOnTop([o.x+e*2,o.y+1],[o.x+e*2,o.y+5],$,n));return`<path class="sf-void" d="${t.pathOf(t.roundedPlan(o,2).map(([e,t])=>r([e,t,$])),!0)}"/>`+i(t.planOutline(o,$,n,2),{tone:`mid`})+i(s.join(``),{tone:`lo`})}).join(``)}function hr(e,t,n){let{k:r,P:i,at:a,L:o}=e,s=17.6,c=19.6,l=e=>r.pathOf(r.circleRing(t,n,e,56).map(([e,t])=>a([e,t,0])),!0),u=[];for(let e=0;e<28;e++){let a=e/28*Math.PI*2;u.push(r.lineOnTop([t+Math.cos(a)*s,n+Math.sin(a)*s],[t+Math.cos(a+.12)*c,n+Math.sin(a+.12)*c],0,i))}return`<path class="sf-hatch-edge" d="${l(s)+l(c)}" fill="none"/>`+o(u.join(``),{className:`sf-hatch`})}function gr(e,t,n){let{k:r,P:i,at:a,S:o,L:s,slab:c,workpiece:l}=e,u=[],d={x:t,y:n,w:54,d:37,r:.6};u.push(`<path class="iso-halo sf-contact" d="${r.haloOf(d,$,1,i)}"/>`);for(let e of[n+1,n+17,n+33])for(let n of[t+1,t+25,t+49])u.push(c({x:n,y:e,w:4,d:3,r:.3},$,2.4,{tone:`lo`},2,0));let f=[];for(let e=1;e<9;e++)f.push(r.lineOnTop([t+e*6,n+.6],[t+e*6,n+36.4],$+4,i));u.push(o(r.slabOf(d,$+2.4,1.6,i,2,.2),{tone:`lo`,inner:s(f.join(``),{tone:`faint`})}));let p=0;for(let e of[0,1])for(let c of[t+.5,t+27.5]){let t={x:c,y:n+1,w:26,d:35,r:1.6},d=$+4+e*16;if(u.push(o(r.slabOf(t,d,16,i,3,.4),{tone:`mid`,inner:s(r.sideSeam(t,d+12,i,3),{tone:`faint`})})),!e)continue;let f=r.pathOf(r.roundedPlan(r.insetPlan(t,1.6),3).map(([e,t])=>a([e,t,d+16])),!0),m=[];for(let e=0;e<3;e++)for(let t=0;t<3;t++)m.push([c+1.6+t*7.9,n+2.6+e*10.9]);m.sort((e,t)=>r.depthOf([e[0],e[1],0],i)-r.depthOf([t[0],t[1],0],i)),u.push(`<path class="sf-void" d="${f}"/><clipPath id="pallet-tote-${p}"><path d="${f}"/></clipPath><g clip-path="url(#pallet-tote-${p++})">${m.map(([e,t])=>l({x:e,y:t,w:7,d:10,r:.8},d+1+3*3.6,3.6)).join(``)}</g>`),u.push(s(r.planOutline(r.insetPlan(t,1.6),d+16,i,3),{tone:`lo`}))}return u.join(``)}function _r(e,t,n){let{G:r,P:i,S:a,slab:o,cyl:s}=e,c=[];c.push(o({x:t,y:n-4,w:6,d:8,r:1},$,4,{tone:`mid`},2,.3)),c.push(s(t+3,n,2.2,$+4,5,{tone:`mid`},18));let l=r.frameAlong([t+3,n,$+8.6],[.48,0,.88]);c.push(a(r.solidOf([[0,.7],[22,.7]],l,i),{tone:`mid`,crease:`none`}));let u=r.frameAlong([t+3+.48*22,n-3.2,$+8.6+.88*22],[0,1,0]);return c.push(a(r.solidOf([[0,.8],[6.4,.8]],u,i),{tone:`mid`,crease:`none`})),`<g class="sf-yellow">${c.join(``)}</g>`}function vr(e,t,n){let{k:r,P:i,L:a,cyl:o}=e;return`<path class="iso-halo sf-contact" d="${r.haloOf({x:t-3,y:n-3,w:6,d:6,r:3},$,1,i)}"/><g class="sf-yellow">${o(t,n,3.2,$,1,{tone:`mid`},20)}${o(t,n,2.2,$+1,20,{tone:`mid`,inner:a(r.sideArc(t,n,2.2,$+12,i,20)+r.sideArc(t,n,2.2,$+15,i,20),{tone:`faint`})},22)}</g>${o(t,n,2.3,$+21,1.4,{tone:`mid`},22)}`}function yr(e,t){let n=p(),[r,i]=t;return(0,Z.useMemo)(()=>e(n,r,i),[n,e,r,i])}function br({intro:e}){return(0,Q.jsx)(f,{html:v(fr),intro:e})}function xr(){return v(mr)}function Sr({at:e,intro:t}){return(0,Q.jsx)(f,{html:yr(pr,e),intro:t})}function Cr({at:e,intro:t}){let n=p();return(0,Q.jsx)(f,{html:(0,Z.useMemo)(()=>e.map(([e,t])=>vr(n,e,t)).join(``),[n,e]),intro:t})}function wr({pallet:e,jack:t,intro:n}){return(0,Q.jsx)(f,{html:yr(gr,e)+yr(_r,t),intro:n})}function Tr(e){return yr(hr,e)}function Er({robot:e,...t}){let n=(0,Z.useCallback)((t,n)=>Ve(t,n,e),[e]);return(0,Q.jsx)(m,{...t,draw:n})}var Dr={chiller:{x:-248,y:-164,w:92,d:58,r:3},comp:{x:-132,y:-150,w:128,d:44,r:3},cnc:{x:-304,y:-22,w:74,d:70,r:3},wash:{x:-176,y:1,w:92,d:30,r:3},press:{x:-30,y:-12,w:60,d:54,r:3},test:{x:84,y:1,w:100,d:30,r:3}},Or=(e,t)=>k(e,t,`coolant`,!0),kr=(e,t)=>Oe(e,t,!0),Ar=[[-326,-42],[230,-42]],jr=bn[0],Mr=bn[1];function Nr({ids:e}){if(!jr||!Mr)throw Error(`Smart Factory layout needs two robots in ROBOTS.`);let t=p(),n=xr(),r=O(Fn,gn.y),i=Tr(jr.base),o=Tr(Mr.base),s=(0,Z.useMemo)(()=>In(t),[t]),c=(0,Z.useMemo)(()=>t.plinth(_n),[t]),l=(0,Z.useMemo)(()=>t.plinth(gn)+Rn(t,gn),[t]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(f,{html:s+n,data:{plinth:``}}),(0,Q.jsx)(br,{intro:0}),(0,Q.jsxs)(`g`,{transform:a(yn,J),children:[(0,Q.jsx)(f,{html:c,data:{plinth:``}}),(0,Q.jsx)(m,{id:e.chiller,plan:Dr.chiller,intro:1,draw:kr}),(0,Q.jsx)(D,{from:xn,to:Sn,scale:Cn,children:(0,Q.jsx)(m,{id:e.pump,plan:me,intro:2,draw:Or})}),(0,Q.jsx)(D,{from:wn,to:Tn,children:(0,Q.jsx)(zn,{id:e.comp,plan:Dr.comp,intro:3})})]}),(0,Q.jsx)(f,{html:`${r.off}<g data-flows=""></g>`,data:{pipes:``}}),(0,Q.jsx)(Sr,{at:[-328,54],intro:4}),(0,Q.jsx)(Cr,{at:Ar,intro:5}),(0,Q.jsx)(wr,{pallet:[100,-98],jack:[155,-79.5],intro:6}),(0,Q.jsx)(f,{html:l+i+o,data:{plinth:``}}),(0,Q.jsx)(f,{html:r.on,data:{pipes:``}}),(0,Q.jsx)(Gn,{id:e.cnc,plan:Dr.cnc,intro:7}),(0,Q.jsx)(ur,{id:e.robot,base:jr.base,intro:8}),(0,Q.jsx)(Hn,{name:`b0`,at:[-220,2],capacity:10,intro:9}),(0,Q.jsx)(dr,{id:e.robot,robot:jr.id,intro:8}),(0,Q.jsx)(Kn,{id:e.cnc,intro:10}),(0,Q.jsx)(Hn,{name:`b1`,at:[-78,-28],capacity:5,intro:11}),(0,Q.jsx)(Er,{id:e.wash,robot:e.robot,plan:Dr.wash,intro:12}),(0,Q.jsx)(Jn,{intro:13}),(0,Q.jsx)(nr,{id:e.press,plan:Dr.press,intro:14}),(0,Q.jsx)(Hn,{name:`b2`,at:[40,46],capacity:5,intro:15}),(0,Q.jsx)(ur,{id:e.packer,base:Mr.base,intro:16}),(0,Q.jsx)(cr,{id:e.test,packer:e.packer,plan:Dr.test,intro:17}),(0,Q.jsx)(`g`,{"data-fx-slot":e.packer}),(0,Q.jsx)(Vn,{id:e.amr,intro:18})]})}var Pr=ae(yn),Fr=j(Pr,Fn,gn.y),Ir=se({layout:{width:hn,height:470,label:`Isometric model of the Smart Factory: a machining line of CNC, wash conveyor, hydraulic press and inspection conveyor with buffers between them, and a utilities plinth behind with a chiller, an air compressor and a centrifugal pump, joined to the line by a coolant loop and an air line. Every moving part follows live values from the running engine.`,kit:Pr,flows:[...Fr.flows,...Be(Pr)],joints:Fr.joints,Scene:Nr,compose:Ln},resolve:Ge,things:Ke,caption:`production · utilities`,mismatch:`This floor expects the Smart Factory line (CNC, washer, press, inspection) and its utilities.`,statusBasis:`run_command`});export{Ir as smartFactoryFloor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{y as e}from"./dom-
|
|
1
|
+
import{y as e}from"./dom-CQuChC3G.js";function t(t,n){let r=t=>e([t[0],t[1],0],n),i=[...t].sort((e,t)=>r(e.at)-r(t.at));return{order:i,slotDepths:i.map(e=>r(e.at)),depth:{layer:([t,a,o])=>{let s=i.findIndex(i=>r(i.at)>e([t,a,o>i.h?Math.max(0,o-12):0],n));return s<0?i.length:s},glide:()=>!0}}}export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,r as t}from"./rolldown-runtime-COnpUsM8.js";import{c as n}from"./vendor-charts-95ykyDlI.js";import{ot as r}from"./vendor-ui-D8j69UH4.js";import{A as i,C as a,D as o,E as s,F as c,L as l,M as u,N as d,O as f,P as p,R as m,S as h,T as g,_,a as v,c as y,d as b,f as x,g as S,h as C,j as w,k as T,n as E,o as D,s as O,t as k,v as A,w as ee,x as j,y as M,z as te}from"./dom-Cm_OH5jc.js";function ne(e){return e}var N=Math.PI*2,re=1.2,ie=[0,.2,.42,.62],P=(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],F=(e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]],I=(e,t)=>[e[0]-t[0],e[1]-t[1],e[2]-t[2]],L=(e,t)=>[e[0]*t,e[1]*t,e[2]*t],R=e=>Math.hypot(e[0],e[1],e[2]),z=e=>{let t=R(e)||1;return[e[0]/t,e[1]/t,e[2]/t]},B=(e,t)=>[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]],V=(e,t,n)=>[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n];function H(e){let{sinA:t,cosA:n,sinE:r,cosE:i}=C(e);return[n*i,t*i,r]}function ae(e){let{sinA:t,cosA:n}=C(e);return z([-t,n,re])}var U=e=>C(e).k;function oe(e){let t=0;for(;t<ie.length&&e>=ie[t];)t++;return t}function se(e,t){let n=z(t),r=z(B(Math.abs(n[2])>.9?[1,0,0]:[0,0,1],n));return{o:e,a:n,u:r,v:B(n,r)}}function W(e,t,n,r){let i=Math.cos(r),a=Math.sin(r);return[e.o[0]+e.a[0]*t+n*(i*e.u[0]+a*e.v[0]),e.o[1]+e.a[1]*t+n*(i*e.u[1]+a*e.v[1]),e.o[2]+e.a[2]*t+n*(i*e.u[2]+a*e.v[2])]}var ce=(e,t)=>{let n=Math.cos(t),r=Math.sin(t);return[n*e.u[0]+r*e.v[0],n*e.u[1]+r*e.v[1],n*e.u[2]+r*e.v[2]]},le=(e,t)=>Math.atan2(P(t,e.v),P(t,e.u));function ue(e){let t=[...e].sort((e,t)=>e.p[0]-t.p[0]||e.p[1]-t.p[1]);if(t.length<3)return t;let n=(e,t,n)=>(t.p[0]-e.p[0])*(n.p[1]-e.p[1])-(t.p[1]-e.p[1])*(n.p[0]-e.p[0]),r=[];for(let e of t){for(;r.length>=2&&n(r[r.length-2],r[r.length-1],e)<=1e-9;)r.pop();r.push(e)}let i=[];for(let e=t.length-1;e>=0;e--){let r=t[e];for(;i.length>=2&&n(i[i.length-2],i[i.length-1],r)<=1e-9;)i.pop();i.push(r)}return[...r.slice(0,-1),...i.slice(0,-1)]}var de=e=>ue(e.map(e=>({p:e}))).map(({p:e})=>e);function fe(e){let t=e.length,n=[],r=e.findIndex((n,r)=>n!==e[(r+t-1)%t]);if(r<0){let r=e[0];return r!=null&&n.push({key:r,run:Array.from({length:t+1},(e,n)=>n%t)}),n}let i=null,a=e=>{e&&e.key!==null&&n.push({key:e.key,run:e.run})};for(let n=0;n<t;n++){let o=(r+n)%t,s=e[o]??null;if(i&&i.key===s){i.run.push((o+1)%t);continue}a(i),i={key:s,run:[o,(o+1)%t]}}return a(i),n}var pe=(e,t=16,n=112,r=0)=>Math.max(t,Math.min(n,r?Math.ceil(N*e*r/3):Math.round(e*1.3/4)*4)),me=e=>e.reduce((t,[n,r],i)=>{let[a,o]=e[(i+1)%e.length];return t+n*o-a*r},0),he=e=>me(e)<0?[...e].reverse():[...e],G=(e,t)=>e[t],ge=e=>(e%N+N)%N;function _e(e,t,n,r,i,a){let o=[];if(Math.abs(i)>1e-9){let e=-(a*n.a)/(i*n.flat);if(e>-1&&e<1){let t=Math.acos(e);o.push(n.phi-t,n.phi+t)}}if(Math.abs(e)>1e-9)for(let n of ie){let i=(n-t*r.a)/(e*r.flat);if(i>-1&&i<1){let e=Math.acos(i);o.push(r.phi-e,r.phi+e)}}let s=[...new Set(o.map(e=>Math.round(ge(e)*1e9)/1e9))].sort((e,t)=>e-t),c=o=>i*n.flat*Math.cos(o-n.phi)+a*n.a<=1e-9?-1:oe(e*r.flat*Math.cos(o-r.phi)+t*r.a);if(!s.length){let e=c(0);return e<0?[]:[{tone:e,from:0,to:N}]}let l=s.map((e,t)=>{let n=t+1<s.length?G(s,t+1):G(s,0)+N;return{tone:c((e+n)/2),from:e,to:n}}),u=[];for(let e of l){let t=u[u.length-1];t&&t.tone===e.tone&&Math.abs(t.to-e.from)<1e-9?t.to=e.to:u.push({...e})}let d=u[0],f=u[u.length-1];return d&&f&&u.length>1&&d.tone===f.tone&&Math.abs(f.to-N-d.from)<1e-9&&(u.pop(),d.from=f.from-N),u.filter(e=>e.tone>=0)}function ve(e){let t=e.length-1,n=Array.from({length:t},(t,n)=>G(e,n+1)[0]-G(e,n)[0]),r=n.map((t,n)=>(G(e,n+1)[1]-G(e,n)[1])/t),i=Array(t+1).fill(0),a=(e,t,n,r)=>{let i=((2*e+t)*n-e*r)/(e+t);return Math.sign(i)===Math.sign(n)?Math.sign(n)!==Math.sign(r)&&Math.abs(i)>Math.abs(3*n)&&(i=3*n):i=0,i};t===1?(i[0]=G(r,0),i[1]=G(r,0)):(i[0]=a(G(n,0),G(n,1),G(r,0),G(r,1)),i[t]=a(G(n,t-1),G(n,t-2),G(r,t-1),G(r,t-2)));for(let e=1;e<t;e++){if(G(r,e-1)*G(r,e)<=0)continue;let t=2*G(n,e)+G(n,e-1),a=G(n,e)+2*G(n,e-1);i[e]=(t+a)/(t/G(r,e-1)+a/G(r,e))}return i}function ye(e){let t=e.length,n=Array(t-1).fill(null),r=0;for(;r<t-1;){let i=r+1;for(;i<t-1&&G(e,i)[2]&&Math.abs(G(e,i+1)[0]-G(e,i)[0])>1e-9&&Math.abs(G(e,i)[0]-G(e,i-1)[0])>1e-9;)i++;let a=e.slice(r,i+1).map(([e,t])=>[e,t]),o=a.length-1;if(o>=2&&a.every((e,t)=>t===0||Math.abs(e[0]-G(a,t-1)[0])>1e-9)){let e=ve(a);for(let t=0;t<o;t++){let[i,o]=G(a,t),[s,c]=G(a,t+1),l=s-i,u=G(e,t),d=G(e,t+1),f=e=>{let t=(e-i)/l;return(2*t**3-3*t**2+1)*o+(t**3-2*t**2+t)*l*u+(-2*t**3+3*t**2)*c+(t**3-t**2)*l*d},p=e=>{let t=(e-i)/l;return((6*t**2-6*t)*o+(6*t-6*t**2)*c)/l+(3*t**2-4*t+1)*u+(3*t**2-2*t)*d};n[r+t]={radius:f,slope:p}}}r=i}return n}function be(e,t,n){let r=U(t),i=[G(e,0)];for(let t=0;t<e.length-1;t++){let a=n[t];if(a){let n=(e,t,o)=>{let s=(e+t)/2,c=(a.radius(e)+a.radius(t))/2;o<6&&Math.abs(a.radius(s)-c)*r>.2&&(n(e,s,o+1),i.push([s,a.radius(s),1]),n(s,t,o+1))};n(G(e,t)[0],G(e,t+1)[0],0)}i.push(G(e,t+1))}return i}var xe=6,Se=.35,Ce=8,we=.1;function Te(e,t,n,r){let i=H(n),o=ae(n),c={a:P(t.a,i),flat:Math.hypot(P(t.u,i),P(t.v,i)),phi:Math.atan2(P(t.v,i),P(t.u,i))},l={a:P(t.a,o),flat:Math.hypot(P(t.u,o),P(t.v,o)),phi:Math.atan2(P(t.v,o),P(t.u,o))},u=e.length,d=[];for(let t=0;t<u-1;t++){let n=G(e,t+1)[0]-G(e,t)[0],r=G(e,t+1)[1]-G(e,t)[1],i=Math.hypot(n,r)||1;d.push([n/i,-r/i])}let f=ye(e),p=(t,n)=>{if(t<=0||t>=u-1||!G(e,t)[2])return n;let r=G(d,t-1),i=G(d,t),a=r[0]+i[0],o=r[1]+i[1],s=Math.hypot(a,o)||1;return[a/s,o/s]},m=(t,n)=>{let r=G(e,t)[0],i=G(e,t+1)[0],a=r+(i-r)*n,o=Math.sign(i-r)||1,s=f[t];if(s){let e=Math.hypot(1,s.slope(a));return[o/e,-o*s.slope(a)/e]}let c=p(t,G(d,t)),l=p(t+1,G(d,t)),u=c[0]+(l[0]-c[0])*n,m=c[1]+(l[1]-c[1])*n,h=Math.hypot(u,m)||1;return[u/h,m/h]},h=(r,i,o)=>{let[s,c]=G(e,r),[l,u]=G(e,r+1),d=s+(l-s)*i,p=f[r];return a(W(t,d,p?p.radius(d):c+(u-c)*i,o),n)},g=[[],[],[],[],[]],_=N/Math.max(24,Math.min(192,r*1.5)),v=(e,t,n,r)=>{let i=Math.max(1,Math.ceil((r-n)/_));return Array.from({length:i+1},(a,o)=>h(e,t,n+(r-n)*o/i))},y=(e,t)=>(((e.from+e.to)/2-t)%N+N)%N,b=(e,t)=>{let[n,r]=m(e,t),i=new Map,a=G(d,e);for(let e of _e(n,r,c,l,a[0],a[1])){let t=i.get(e.tone);t?t.push(e):i.set(e.tone,[e])}for(let e of i.values())e.sort((e,t)=>y(e,l.phi)-y(t,l.phi));return{i:e,u:t,groups:i}},x=(e,t)=>{if(e.groups.size!==t.groups.size)return!1;for(let[n,r]of e.groups)if((t.groups.get(n)??[]).length!==r.length)return!1;return!0},S=(e,t)=>{let n={...t},r=(e.from+e.to)/2;for(;(n.from+n.to)/2-r>Math.PI;)n.from-=N,n.to-=N;for(;r-(n.from+n.to)/2>Math.PI;)n.from+=N,n.to+=N;return n},C=(e,t,n)=>G(e.groups.get(t),n),w=(e,t,n,r)=>{let i=0;for(let[a,o]of n.groups)o.forEach((o,s)=>{let c=S(o,C(t,a,s)),l=S(o,C(r,a,s));for(let a of[`from`,`to`]){let s=h(e,n.u,o[a]),u=h(e,t.u,c[a]),d=h(e,r.u,l[a]);i=Math.max(i,Math.hypot(s[0]-(u[0]+d[0])/2,s[1]-(u[1]+d[1])/2))}});return i},T=(e,t)=>{let n=G(t,0),r=t.length-1,i=G(t,r);for(let[a,o]of n.groups.get(e).entries()){let c=[o];for(let n=1;n<t.length;n++)c.push(S(G(c,n-1),C(G(t,n),e,a)));let l=G(c,r),u=[...v(n.i,n.u,o.from,o.to)];for(let e=1;e<r;e++){let n=G(t,e);u.push(h(n.i,n.u,G(c,e).to))}u.push(...v(i.i,i.u,l.from,l.to).reverse());for(let e=r-1;e>=1;e--){let n=G(t,e);u.push(h(n.i,n.u,G(c,e).from))}G(g,e).push(s(he(u),!0))}},E=(e,t,n)=>{let r=t.groups.get(e)??[],i=(n.groups.get(e)??[]).map(e=>({arc:e,used:!1})),a=(r,i)=>{let a=[...v(t.i,t.u,r.from,r.to),...v(n.i,n.u,i.from,i.to).reverse()];G(g,e).push(s(he(a),!0))};for(let e of r){let t=null,n=-1/0;for(let r of i){if(r.used)continue;let i=S(e,r.arc),a=Math.min(e.to,i.to)-Math.max(e.from,i.from);a>n&&(n=a,t=r)}if(t&&n>-.05)t.used=!0,a(e,S(e,t.arc));else{let t=(e.from+e.to)/2;a(e,{from:t,to:t})}}for(let e of i){if(e.used)continue;let t=(e.arc.from+e.arc.to)/2;a({from:t,to:t},e.arc)}},D=U(n),O=[],k=()=>{let e=[...new Set(O.flatMap(e=>[...e.groups.keys()]))].sort((e,t)=>e-t);for(let t of e){let e=e=>(e.groups.get(t)??[]).length,n=0;for(let r=1;r<=O.length;r++)r<O.length&&e(G(O,r-1))===e(G(O,r))||(r-1>n&&e(G(O,n))&&T(t,O.slice(n,r)),r<O.length&&E(t,G(O,r-1),G(O,r)),n=r)}O=[]};for(let t=0;t<u-1;t++){let n=G(e,t+1)[0]-G(e,t)[0];if(Math.abs(n)<1e-9){k();continue}let r=Math.hypot(n,G(e,t+1)[1]-G(e,t)[1])*D/xe,i=Math.max(1,Math.min(Ce,Math.ceil(Math.log2(Math.max(2,r/we))))),a=Array.from({length:xe+1},(e,n)=>b(t,n/xe));O.push(G(a,0));let o=(e,n,r)=>{let a=b(t,(e.u+n.u)/2);if(!(r<i&&(!x(e,n)||!x(e,a)||r<6&&w(t,e,a,n)>Se))){O.push(n);return}o(e,a,r+1),o(a,n,r+1)};for(let e=1;e<=xe;e++)o(G(a,e-1),G(a,e),0)}return k(),g}var K=(e,t)=>e[t],Ee=e=>(e%N+N)%N,De=e=>Math.max(...e.map(([,e])=>e)),Oe=e=>e.some(e=>!!e[2]);function ke(e){let t=e.length,n=+(K(e,0)[1]<=1e-9),r=K(e,t-1)[1]<=1e-9?t-2:t-1,i=e.slice(n,r+1);for(let e=1;e<i.length;e++)if(K(i,e)[0]-K(i,e-1)[0]<=1e-9)return null;return i.length>=3?i:null}function Ae(e,t,n,r){let i=H(n),a=P(t.a,i),o=P(t.u,i),s=P(t.v,i),c=Math.atan2(s,o),l=Math.hypot(o,s)||1e-9,u=K(e,0)[0],d=K(e,e.length-1)[0],f=t=>{let n=1;for(;n<e.length-1&&K(e,n)[0]<t;)n++;let[r,i]=K(e,n-1),[a,o]=K(e,n);return i+(o-i)*(t-r)/(a-r||1)},p=e=>{let n=[];for(let i=0;i<=r;i++){let o=u+(d-u)*i/r,s=(d-u)/r/2||.01,p=(f(Math.min(d,o+s))-f(Math.max(u,o-s)))/(Math.min(d,o+s)-Math.max(u,o-s)||1)*a/l;Math.abs(p)>1||n.push(W(t,o,f(o),c+e*Math.acos(p)))}return n};return[p(1),p(-1)]}function je(e,t,n){let r=H(n),i=P(t.a,r),o=Math.atan2(P(t.v,r),P(t.u,r)),[c,l]=Ae(e,t,n,96);if(c.length<=96||l.length<=96)return null;let u=K(e,0)[0],d=K(e,e.length-1)[0],f=e=>le(t,I(e,F(t.o,L(t.a,P(I(e,t.o),t.a))))),p=(e,r,i,o,s)=>{let c=Ee(o-i);Ee(s-i)>c&&(c-=N);let l=Math.max(4,Math.ceil(Math.abs(c)/(N/96)),Math.ceil(Math.abs(c)*r*U(n)/1.5));return Array.from({length:l+1},(o,s)=>a(W(t,e,r,i+c*s/l),n))},m=K(e,0)[1],h=K(e,e.length-1)[1],g=-i>0?o+Math.PI:o,_=i>0?o+Math.PI:o,v=c.map(e=>a(e,n)),y=l.map(e=>a(e,n)),b=p(d,h,f(K(c,c.length-1)),f(K(l,l.length-1)),_),x=p(u,m,f(K(l,0)),f(K(c,0)),g),S=s([...v,...b,...[...y].reverse(),...x],!0),C=[s(v),s(y),s(b),s(x)].join(``),w=de([...p(u,m,0,N-1e-6,Math.PI),...p(d,h,0,N-1e-6,Math.PI),...v,...y]),T=0;for(let e of[...v,...y]){let t=1/0;for(let n=0;n<w.length;n++){let r=K(w,n),i=K(w,(n+1)%w.length),a=i[0]-r[0],o=i[1]-r[1],s=Math.max(0,Math.min(1,((e[0]-r[0])*a+(e[1]-r[1])*o)/(a*a+o*o||1)));t=Math.min(t,Math.hypot(e[0]-r[0]-a*s,e[1]-r[1]-o*s))}T=Math.max(T,t)}return{fill:S,outline:C,gap:T}}function Me(e,t,n,r,i){let o=i?ye(e):null,c=o?.some(Boolean)?be(e,n,o):e,l=ke(c),u=l?je(l,t,n):null;if(u&&u.gap>.5)return{fill:u.fill,outline:u.outline};let d=Math.min(320,Math.max(r,Math.ceil(N*De(c)*U(n)/1.5))),f=[];for(let[e,r]of c)for(let i=0;i<d;i++)f.push({p:a(W(t,e,r,i/d*N),n)});let p=s(ue(f).map(({p:e})=>e),!0);return{fill:p,outline:p}}function Ne(e,t,n,r=pe(De(e),32,160,U(n))){let i=Oe(e),o=H(n),c=ae(n),l=P(t.a,o),u=P(t.u,o),d=P(t.v,o),f=P(t.a,c),p=P(t.u,c),m=P(t.v,c),h=r,g=e.length,_=e.map(([e,r])=>Array.from({length:h},(i,o)=>a(W(t,e,r,o/h*N),n))),v=[],y=[];for(let e=0;e<h;e++){let t=(e+.5)/h*N;v.push(Math.cos(t)),y.push(Math.sin(t))}let b=[],x=[];for(let t=0;t<g-1;t++){let n=K(e,t+1)[0]-K(e,t)[0],r=K(e,t+1)[1]-K(e,t)[1],i=Math.hypot(n,r),a=[],o=[];for(let e=0;e<h;e++){if(i<1e-9){a.push(!1),o.push(0);continue}let t=K(v,e),s=K(y,e);a.push(n*(t*u+s*d)-r*l>1e-6*i),o.push(oe((n*(t*p+s*m)-r*f)/i))}b.push(a),x.push(o)}let S=[[],[],[],[],[]],C=i?Te(e,t,n,r):null;for(let[e,t]of(C??[]).entries())K(S,e).push(...t);for(let t=0;t<g-1;t++){if(C&&Math.abs(K(e,t+1)[0]-K(e,t)[0])>1e-9)continue;let n=K(b,t).map((e,n)=>e?K(K(x,t),n):null);for(let{key:e,run:r}of fe(n)){let n=r.map(e=>K(K(_,t),e)),i=r.map(e=>K(K(_,t+1),e)).reverse();K(S,e).push(s(he([...n,...i]),!0))}}let w=Math.atan2(d,u),T=Math.hypot(u,d),E=t=>{let n=K(e,t+1)[0]-K(e,t)[0],r=K(e,t+1)[1]-K(e,t)[1];if(Math.hypot(n,r)<1e-9)return null;if(Math.abs(n)<1e-9||T<1e-9)return-r*l>1e-9?[-1,1]:null;let i=r*l/(n*T);return n>0?[Math.max(-1,i),1]:[-1,Math.min(1,i)]},D=e=>{let t=e.filter(e=>e!==null);if(t.length<e.length)return[];let n=Math.max(...t.map(([e])=>e)),r=Math.min(...t.map(([,e])=>e));if(n>=r-1e-9)return[];let i=Math.acos(Math.min(1,r)),a=Math.acos(Math.max(-1,n));return r>=1&&n<=-1?[[w,w+N]]:r>=1?[[w-a,w+a]]:n<=-1?[[w+i,w+N-i]]:[[w+i,w+a],[w-a,w-i]]},O=[];for(let r=1;r<g-1;r++){let[i,o,c]=K(e,r);if(!(c||o<=1e-9))for(let[e,c]of D([E(r-1),E(r)])){let r=Math.max(2,Math.ceil((c-e)*Math.max(o,1e-6)*U(n)/1.5));O.push(s(Array.from({length:r+1},(s,l)=>a(W(t,i,o,e+(c-e)*l/r),n))))}}let{fill:k,outline:A}=Me(e,t,n,h,i);return{fill:k,outline:A,crease:O.join(``),top:K(S,4).join(``),shades:S.slice(0,4).map(e=>e.join(``)),seamless:!!C}}var Pe=(e,t,n,r,i)=>Ne([[e,0],[e,n],[t,n],[t,0]],r,i,pe(n,32,160,U(i)));function Fe(e,t,n){let r=K(e,0),i=K(e,e.length-1);return Ne([[r[0],0],...e,[i[0],0]],t,n,pe(De(e),32,160,U(n)))}var Ie=t({add3:()=>F,arcOf:()=>Re,cross3:()=>B,cut:()=>J,disc:()=>Pe,dot3:()=>P,dotsOf:()=>Be,fillet:()=>Ve,frameAlong:()=>se,len3:()=>R,mul3:()=>L,pathLength:()=>Ue,pointAlong:()=>We,resample:()=>He,ribsOf:()=>ze,scaleOf:()=>U,solidOf:()=>Fe,sub3:()=>I,unit3:()=>z,viewOf:()=>H}),q=(e,t)=>e[t],Le=(e,[t,n])=>{let r=Math.max(0,Math.min(1,(e-t)/(n-t||1e-9)));return r*r*(3-2*r)};function Re(e,t,n,r,{slope:i=0,steps:o=0,least:c=.02,inward:l=!1,from:u=0,to:d=N,trim:f=.3}={}){let p=H(r),m=P(e.a,p),h=P(e.u,p),g=P(e.v,p),_=Math.hypot(h,g),v=Math.atan2(g,h),y=Math.hypot(1,i),b=Math.abs(d-u-N)<1e-9,x;if(_<1e-9)x=(l?i*m/y>c:-i*m/y>c)?[[v,v+N]]:[];else if(l){let e=(i*m-c*y)/_;x=e<=-1?[]:e>=1?[[v,v+N]]:[[v+Math.acos(e),v+N-Math.acos(e)]]}else{let e=(c*y+i*m)/_;x=e>=1?[]:e<=-1?[[v,v+N]]:[[v-Math.acos(e),v+Math.acos(e)]]}let S=i=>a(W(e,t,n,i),r),C=e=>{let t=S(e-.001),n=S(e+.001);return Math.hypot(n[0]-t[0],n[1]-t[1])/.002},w=e=>Math.max(2,Math.ceil((o||pe(n,24,112))*e/N),Math.ceil(e*n*U(r)/1.5)),T=[];for(let[e,t]of x){if(t-e>=N-1e-9&&b){let e=w(N);T.push(s(Array.from({length:e},(t,n)=>S(u+n/e*N)),!0));continue}let n=b?[[e,t,!0,!0]]:[];if(!b)for(let r=-2;r<=2;r++){let i=Math.max(e+r*N,u),a=Math.min(t+r*N,d);a-i>1e-6&&n.push([i,a,i>u+1e-9,a<d-1e-9])}for(let[e,t,r,i]of n){let n=t-e,a=r&&f>0?Math.min(n*.25,f/(C(e)||1)):0,o=i&&f>0?Math.min(n*.25,f/(C(t)||1)):0,c=e+a,l=t-o,u=w(l-c);T.push(s(Array.from({length:u+1},(e,t)=>S(c+(l-c)*t/u))))}}return T.join(``)}function ze(e,t,n,r,i,o,{phase:c=0,twist:l=0,r1:u=r,fade:d,seams:f=!1}){let p=H(o),m=[],h=(u-r)/(n-t||1);for(let f=0;f<i;f++){let g=c+f/i*N,_=ce(e,g+l/2),v=P(z([_[0]-h*e.a[0],_[1]-h*e.a[1],_[2]-h*e.a[2]]),p),y=s([a(W(e,t,r,g),o),a(W(e,n,u,g+l),o)]),b=Le(v,d);b>.02&&m.push({d:y,alpha:b})}let g=f?[f===`last`?``:Re(e,t,r,o,{slope:h}),f===`first`?``:Re(e,n,u,o,{slope:h})].filter(Boolean):[];return[...m,...g.map(e=>({d:e,alpha:1}))]}function Be(e,t,n,r,i,{phase:o=0,slope:s=0,least:c=.08,all:l=!1,fade:u=null}={}){let d=H(i),f=[];for(let p=0;p<r;p++){let m=o+p/r*N,h=1;if(!l){let t=ce(e,m),n=P(z([t[0]-s*e.a[0],t[1]-s*e.a[1],t[2]-s*e.a[2]]),d);if(u)h=Le(n,u);else if(n<c)continue;if(h<=.02)continue}let[g,_]=a(W(e,t,n,m),i);f.push(h<1?[g,_,h]:[g,_])}return f}function Ve(e,t,n=7,{P:r=null,tube:i=0,margin:a=1.3}={}){if(e.length<3)return e.map(e=>[e[0],e[1],e[2]]);let o=r&&i?H(r):null,s=e=>[e[0],e[1],e[2]],c=[s(q(e,0))];for(let r=1;r<e.length-1;r++){let l=q(e,r-1),u=q(e,r),d=q(e,r+1),f=z(I(u,l)),p=z(I(d,u)),m=Math.max(-1,Math.min(1,P(f,p))),h=Math.acos(m);if(h<.001){c.push(s(u));continue}let g=Math.min(R(I(u,l)),R(I(d,u)))*.48,_=o?Math.abs(P(z(B(f,p)),o)):1,v=o?Math.max(t,a*i/(.7*Math.max(.05,_)**2)):t,y=Math.min(v*Math.tan(h/2),g),b=I(u,L(f,y)),x=F(u,L(p,y)),S=Math.max(2,Math.ceil(n*h/(Math.PI/2)));for(let e=0;e<=S;e++){let t=e/S;c.push(V(V(b,u,t),V(u,x,t),t))}}return c.push(s(q(e,e.length-1))),c}function He(e,t){let n=[0];for(let t=1;t<e.length;t++)n.push(q(n,t-1)+R(I(q(e,t),q(e,t-1))));let r=q(n,n.length-1),i=Math.max(1,Math.round(r/t)),a=[],o=1;for(let t=0;t<=i;t++){let s=r*t/i;for(;o<e.length-1&&q(n,o)<s;)o++;let c=q(e,o-1),l=q(e,o),u=q(n,o)-q(n,o-1)||1;a.push(V(c,l,Math.min(1,Math.max(0,(s-q(n,o-1))/u))))}return a}function Ue(e){let t=0;for(let n=1;n<e.length;n++)t+=R(I(q(e,n),q(e,n-1)));return t}function J(e,t,n){let r=[],i=0;for(let a=1;a<e.length;a++){let o=q(e,a-1),s=q(e,a),c=R(I(s,o)),l=i,u=i+c;if(u>=t&&l<=n){let e=Math.max(0,(t-l)/(c||1)),i=Math.min(1,(n-l)/(c||1));r.length||r.push(V(o,s,e)),r.push(V(o,s,i))}i=u}return r}var We=(e,t)=>J(e,t,t+.01)[0]??q(e,e.length-1),Ge=(()=>{let e=Math.hypot(-.55,-.835);return[-.55/e,-.835/e]})(),Ke=(e,t=!0)=>s(e,t),Y=(e,t)=>e[t],qe=e=>e.reduce((t,[n,r],i)=>{let[a,o]=Y(e,(i+1)%e.length);return t+n*o-a*r},0);function Je(e){let t={left:[],right:[],shineA:[],shineB:[],shadeA:[],shadeB:[]};for(let{p:n,nx:r,ny:i,half:a}of e){t.left.push([n[0]+r*a,n[1]+i*a]),t.right.push([n[0]-r*a,n[1]-i*a]);let e=r*Ge[0]+i*Ge[1],o=a*.44*e,s=a*.24;t.shineA.push([n[0]+r*(o+s),n[1]+i*(o+s)]),t.shineB.push([n[0]+r*(o-s),n[1]+i*(o-s)]);let c=-a*.62*e,l=a*.2;t.shadeA.push([n[0]+r*(c+l),n[1]+i*(c+l)]),t.shadeB.push([n[0]+r*(c-l),n[1]+i*(c-l)])}return t}function Ye(e,t,n,r){let i=(e,t)=>{for(let i=0;i<n.flat.length;i++){if(Math.abs(Y(n.along,i)-t)<=r)continue;let a=Y(n.flat,i);if(Math.hypot(e[0]-a[0],e[1]-a[1])<Y(n.half,i)*.9)return!0}return!1},a=``,o=[];return e.forEach((e,n)=>{i(e,Y(t,n))?(o.length>1&&(a+=s(o)),o=[]):o.push(e)}),o.length>1&&(a+=s(o)),a}function Xe(e,t,n,r,i){let o=B(t,H(i));R(o)<1e-6&&(o=se([0,0,0],t).u),o=z(o);let s=z(B(t,o)),c=Array.from({length:28},(t,r)=>{let c=r/28*Math.PI*2;return a(F(e,F(L(o,n*Math.cos(c)),L(s,n*Math.sin(c)))),i)}),l=a(e,i),u=a(F(e,s),i),d=(u[0]-l[0])*r[0]+(u[1]-l[1])*r[1]>0?28/2:0,f=e=>Array.from({length:15},(t,n)=>Y(c,(e+n)%28));return{ring:c,arc:f(d),inner:f((d+28/2)%28)}}function Ze(e,t,n,r,i,a){let o=e=>(e[0]-t[0])*n+(e[1]-t[1])*r,s=e.map(o),c=Math.min(i,a),l=Math.max(i,a),u=[],d=(t,n)=>{let r=(n-Y(s,t))/(Y(s,t+1)-Y(s,t)||1e-9),i=Y(e,t),a=Y(e,t+1);return[i[0]+(a[0]-i[0])*r,i[1]+(a[1]-i[1])*r]};for(let t=0;t<e.length;t++){let n=Y(s,t);if(n>=c&&n<=l&&u.push(Y(e,t)),t<e.length-1)for(let e of[c,l])(n-e)*(Y(s,t+1)-e)<0&&u.push(d(t,e))}return u.map(e=>[e,o(e)]).sort((e,t)=>i>a?t[1]-e[1]:e[1]-t[1]).map(([e])=>e)}function Qe(e,t,n,r,i){let a=t.map(([t,n])=>[Math.max(0,Math.min(t,n)),Math.min(e,Math.max(t,n))]).filter(([e,t])=>t-e>1e-6).sort((e,t)=>e[0]-t[0]),o=[],s=0;for(let[e,t]of a)e>s+1e-6&&o.push([s,e,s>0,!0]),s=Math.max(s,t);let c=a[a.length-1];e>s+1e-6&&o.push([s,e,s>0,a.length>0&&c[1]>=e-1e-6]);let l=[];for(let[e,t,i,a]of o){let o=[e,...n.filter(n=>n>e+1e-6&&n<t-1e-6).sort((e,t)=>e-t),t];for(let e=0;e<o.length-1;e++){let t=Y(o,e),n=Y(o,e+1),s=Math.max(1,Math.ceil((n-t)/r-1e-9));for(let r=0;r<s;r++)l.push({from:t+(n-t)*r/s,to:t+(n-t)*(r+1)/s,open0:!(e===0&&r===0),open1:!(e===o.length-2&&r===s-1),gap0:e===0&&r===0&&i,gap1:e===o.length-2&&r===s-1&&a})}}let u=l[0],d=l[l.length-1];return i&&!a.length&&u&&d&&(u.open0=!0,d.open1=!0),l}function $e(e,t,n,{maxLength:r=30,spacing:i=2.2,closed:o=!1,breaks:c=[],gaps:l=[],caps:u=!0,stripes:d=`auto`}={}){let f=He(e,i),p=Ue(f),m=typeof t==`function`?t:()=>t,h=U(n),g=d===`auto`?Math.max(...Array.from({length:33},(e,t)=>m(t/32)))*h>1.3:!!d,_=.5,v=[],y=o&&!l.length,b=e=>y?(e%p+p)%p:Math.max(0,Math.min(p,e)),x=Math.max(.05,Math.min(i,p/4)*.5),S=(e,t,r)=>{let i=a(We(f,b(e-x)),n),o=a(We(f,b(e+x)),n),s=o[0]-i[0],c=o[1]-i[1],l=Math.hypot(s,c)||1;return s/=l,c/=l,{p:t,nx:-c,ny:s,half:r}},C=(e,t)=>{let r=J(f,Math.max(0,e),Math.min(p,t));y&&e<0&&(r=[...J(f,p+e,p),...r.slice(1)]),y&&t>p&&(r=[...r,...J(f,0,t-p).slice(1)]);let i=y?e:Math.max(0,e),o=r.map((e,t)=>(t>0&&(i+=R(I(e,Y(r,t-1)))),i)),s=r.map(e=>a(e,n)),c=o.map(e=>m(y?b(e)/p:Math.min(1,Math.max(0,e/p)))*h),l=s.map((e,t)=>S(Y(o,t),e,Y(c,t)));return{points:r,flat:s,widths:c,frames:l,along:o}},w=C(0,p),T={flat:w.flat,half:w.widths,along:w.along},E=Math.max(...w.widths)/h*1.5,D=Array.isArray(u)?u:[!!u,!!u];for(let e of Qe(p,l,c,r,o)){let t=e.open0&&(e.from>0||y),r=e.open1&&(e.to<p||y),i=C(t?e.from-_:e.from,r?e.to+_:e.to);if(i.points.length<2)continue;let a=t||r?C(t?e.from-2*_:e.from,r?e.to+2*_:e.to):i,{points:o,flat:c,widths:l,frames:u,along:d}=i,m=Je(u),b=a===i?m:Je(a.frames),x=Ke([...m.left,...m.right.slice().reverse()]),S=y?s(m.left)+s(m.right):Ye(m.left,d,T,E)+Ye(m.right,d,T,E),w=[!e.open0&&!y&&(e.from<=1e-6||e.gap0),!e.open1&&!y&&(e.to>=p-1e-6||e.gap1)],O=[w[0]&&(e.gap0||D[0]),w[1]&&(e.gap1||D[1])],k=Math.sign(qe([...m.left,...m.right.slice().reverse()])),A=[null,null];[0,1].forEach(e=>{if(!O[e])return;let t=e?o.length-1:0,r=e?o.length-2:1,i=z(I(Y(o,e?t:r),Y(o,e?r:t))),a=e?i:L(i,-1),d=[Y(c,r)[0]-Y(c,t)[0],Y(c,r)[1]-Y(c,t)[1]],{ring:f,arc:p,inner:m}=Xe(Y(o,t),i,Y(l,t)/h,d,n),g=Math.sign(qe(f))===k?f:f.slice().reverse();x+=Ke(g),S+=s(p);let _=P(a,H(n))>0;_&&(S+=s(m)),A[e]={half:_?m:p,frame:Y(u,t)}});let ee=(e,t,n)=>{let[r,i]=A,a=i?Ze(...et(i,n,!1)):[],o=r?Ze(...et(r,n,!0)):[];return Ke([...e,...a,...t.slice().reverse(),...o])},j=({nx:e,ny:t})=>e*Ge[0]+t*Ge[1];v.push({mid:We(f,(e.from+e.to)/2),body:x,shine:ee(b.shineA,b.shineB,e=>[e.half*.44*j(e)+e.half*.24,e.half*.44*j(e)-e.half*.24]),shade:ee(b.shadeA,b.shadeB,e=>[-e.half*.62*j(e)+e.half*.2,-e.half*.62*j(e)-e.half*.2]),edges:S,wide:g,points:o,radii:l.map(e=>e/h),ends:w,from:e.from,to:e.to})}return v}function et(e,t,n){let[r,i]=t(e.frame);return[e.half,e.frame.p,e.frame.nx,e.frame.ny,n?i:r,n?r:i]}function tt(e,{tone:t=`hi`}={}){let n=e.wide?`<path class="tb-shine" d="${e.shine}"/><path class="tb-shade" d="${e.shade}"/>`:``;return`<g class="tb"><path class="tb-body" d="${e.body}"/>${n}<path class="iso-line tb-edge" data-tone="${t}" d="${e.edges}"/></g>`}var nt=e(n(),1),rt=r();function it(e,t){let n=[];for(let r=1;r<t.length;r++){let i=t[r-1],a=t[r],o=[a[0]-i[0],a[1]-i[1],a[2]-i[2]],s=Math.hypot(...o);if(!s)continue;let c=Math.max(0,Math.min(1,((e[0]-i[0])*o[0]+(e[1]-i[1])*o[1]+(e[2]-i[2])*o[2])/s**2));Math.hypot(i[0]+o[0]*c-e[0],i[1]+o[1]*c-e[1],i[2]+o[2]*c-e[2])<.05&&n.push([o[0]/s,o[1]/s,o[2]/s])}return n}function at(e,t){let n=[t[0]-e[0],t[1]-e[1],t[2]-e[2]],r=Math.hypot(...n)||1;return[n[0]/r,n[1]/r,n[2]/r]}function ot(e,t){for(let n=1;n<t.length;n++){let r=t[n-1],i=t[n],a=[i[0]-r[0],i[1]-r[1],i[2]-r[2]],o=a[0]**2+a[1]**2+a[2]**2,s=o?Math.max(0,Math.min(1,((e[0]-r[0])*a[0]+(e[1]-r[1])*a[1]+(e[2]-r[2])*a[2])/o)):0;if(Math.hypot(r[0]+a[0]*s-e[0],r[1]+a[1]*s-e[1],r[2]+a[2]*s-e[2])<.1)return!0}return!1}function st(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n]}function ct(e,t,n){let r=[],i=0,a=n(e);for(let o=1;o<=16;o++){let s=o/16,c=n(st(e,t,s));if(c!==a){let[o,c]=[i,s];for(let r=0;r<24;r++){let r=(o+c)/2;n(st(e,t,r))===a?o=r:c=r}r.push([o,c])}[i,a]=[s,c]}return r}function lt(e,t,n){let{G:r,P:i,S:a,cyl:o}=e,{routes:s,posts:c,z:l,flowFromY:u=-1/0,flowAloftBeforeY:d=-1/0}=t,{slot:f,glide:p}=typeof n==`number`?{slot:(e,t)=>t&&e[1]>=n?1:0,glide:e=>e[1]>u&&e[1]<n-2&&(e[2]<3||e[1]<d)}:{slot:e=>n.layer(e),glide:n.glide},m=e=>e.flatMap((t,n)=>{let r=e[n-1];return r?[...ct(r,t,p).map(([e,n])=>st(r,t,p(st(r,t,e))?e:n)),t]:[t]}),h=e=>{let t=[],n=0;return e.forEach((r,i)=>{let a=e[i-1];if(!a)return;let o=Math.hypot(r[0]-a[0],r[1]-a[1],r[2]-a[2]);for(let[e,i]of ct(a,r,e=>f(e,!0)))t.push(n+o*((e+i)/2));n+=o}),t},g=[[]],_=(e,t,n=!1)=>{for(;g.length<=e;)g.push([]);n?g[e]?.unshift(t):g[e]?.push(t)};for(let[e,t,n,r=l,i=-14]of c)_(f([e,t,Math.max(i,0)],!1),o(e,t,2.6,i,1,{tone:`lo`},18)+o(e,t,.9,i+1,r-n-2-i,{tone:`mid`,crease:`none`},12)+o(e,t,1.8,r-n-1,1,{tone:`mid`},16));let v=[],y=(e,t)=>{let n=e.pts.length,r=e.pts[t?n-1:0],i=at(r,e.pts[t?n-2:1]),a=0;for(let t of s)if(t!==e)for(let e of it(r,t.pts)){if(Math.abs(e[0]*i[0]+e[1]*i[1]+e[2]*i[2])>.99)return{kind:`on`};a=Math.max(a,t.r)}return a?{kind:`tee`,run:a}:{kind:`free`}},b=new Map(s.map(e=>[e,[y(e,0),y(e,1)]])),x=s.flatMap(e=>[0,1].flatMap(t=>b.get(e)?.[t].kind===`tee`?[e.pts[t?e.pts.length-1:0]]:[])),S=e=>f(x.find(t=>ot(t,e.points))??e.mid,!0);for(let e of s){let n=b.get(e),o=[!e.fromStub&&n[0].kind===`free`,n[1].kind===`free`],s=[...e.pts],c=[n[0].kind===`tee`,n[1].kind===`tee`],l=r.fillet(s,e.bend??4.5,8,{P:i,tube:e.r}),u=$e(l,e.r,i,{maxLength:24,caps:o,breaks:h(l)}),d=t=>`<g class="sf-pipe" data-medium="${e.medium}" data-route="${e.id}">${t}</g>`;if(t.flanged)for(let t of[0,1]){let n=t?u[u.length-1]:u[0];if(!n||!o[t]||e.bare?.[t]||e.blind?.[t])continue;let s=l[t?l.length-1:0],c=l[t?l.length-2:1],p=r.frameAlong(s,[c[0]-s[0],c[1]-s[1],c[2]-s[2]]);_(f(n.mid,!0),d(a(r.disc(0,1.6,e.r+2,p,i),{tone:`mid`})))}u.forEach((t,n)=>{let r=[0,1].filter(e=>n===(e?u.length-1:0)),i=S(t);_(i,`${d(tt(t,{tone:`mid`}))}<g data-fl="${e.id}" data-fs="${i}"></g>`,r.some(e=>c[e]))});for(let t of[0,1]){let n=t?u[u.length-1]:u[0];if(!n||!e.blind?.[t])continue;let o=l[t?l.length-1:0],s=l[t?l.length-2:1],c=r.frameAlong(o,[s[0]-o[0],s[1]-o[1],s[2]-o[2]]);_(f(n.mid,!0),d(a(r.disc(-1.2,1.6,e.r+2,c,i),{tone:`mid`})),M(o,i)<M(s,i))}let g=m(l).filter(p);v.push({id:e.id,medium:e.medium,r:e.r,path:g,reverse:e.reverse??!1,capped:[o[0]&&g[0]===l[0],o[1]&&g.at(-1)===l.at(-1)],slots:u.map(e=>[e.to,S(e)])})}for(let t of s){let n=null;for(let e=1;e<t.pts.length;e++){let r=t.pts[e-1],i=t.pts[e],a=Math.hypot(i[0]-r[0],i[1]-r[1],i[2]-r[2]);r[2]<3&&i[2]<3&&(!n||a>n.len)&&(n={a:r,b:i,len:a})}if(!n)continue;let r=[(n.b[0]-n.a[0])/n.len,(n.b[1]-n.a[1])/n.len,0];t.reverse&&(r=[-r[0],-r[1],-r[2]]);let a=[-r[1],r[0],0];for(let o of[.3,.62]){let s=[n.a[0]+(n.b[0]-n.a[0])*o,n.a[1]+(n.b[1]-n.a[1])*o,n.a[2]+(n.b[2]-n.a[2])*o];s[2]+=t.r*.98;let c=(t,n)=>e.k.iso([s[0]+r[0]*t+a[0]*n,s[1]+r[1]*t+a[1]*n,s[2]],i),l=[c(1.8,0),c(-1.2,t.r*.75),c(-.4,0),c(-1.2,-t.r*.75)];_(f(s,!1),`<path class="sf-chevron" d="M${l.map(([e,t])=>`${e.toFixed(2)} ${t.toFixed(2)}`).join(`L`)}Z"/>`)}}let C=new Map;for(let t of s)t.pts.forEach((n,r)=>{let[a,o]=e.k.iso(n,i),s=r===0?`start`:r===t.pts.length-1?`end`:`bend${r}`,c=`${Math.round(a/3)},${Math.round(o/3)}`;C.has(c)||C.set(c,{name:`${t.id}-${s}`,x:a,y:o})});let w=g.map(e=>e.join(``));return typeof n==`number`?{off:w[0]??``,on:w[1]??``,layers:[],flows:v,joints:[...C.values()]}:{off:w[0]??``,on:``,layers:w,flows:v,joints:[...C.values()]}}function ut(e){let t=t=>a(t,e),n=(e,t)=>te(e,t),r=(e,t)=>m(e,t),p=(e,t)=>l(e,t),g=(t,r,i,a={tone:`mid`},o=3,s=.5)=>n(c(t,r,i,e,o,s),a),v=(t,r,i,a,o,s={tone:`mid`},c=28)=>n(A(t,r,i,a,o,e,c),s),y=t=>[...t].sort((t,n)=>M([t[0],t[1],0],e)-M([n[0],n[1],0],e)),b=t=>u([0,t],0,e,`left`),x=(e,n)=>p(e.map(([e,r])=>t([e,r,n])),{size:.45}),C=(e,t,n,r,a)=>s(i({x:e,y:t,w:n-e,d:r-t,r:a},4).map(([e,t])=>[e,-t]),!0);function w(r,i,a){let o=r.x+r.w/2,l=r.y+r.d/2,u=Math.min(r.w,r.d)*.2;return n(c(r,i,a,e,2,.3),{tone:`hi`,lit:!0})+`<path class="sf-bore" d="${s(S(o,l,u,20).map(([e,n])=>t([e,n,i+a])),!0)}"/>`}function E(e,t,n,r,i,a){let o=C(n,i,r,a,1.2),s=`<path class="sf-hmi-head" d="M${n} ${-a}H${r}V${-(a-2.6)}H${n}Z"/><path class="sf-hmi-tick" d="M${n+1.6} ${-(a-1.3)}H${n+Math.min(10,(r-n)*.4)}"/>`,c=[.33,.66].map(e=>`<path class="sf-hmi-grid" d="M${n+1.4} ${-(i+3.4+(a-i-6.6)*e)}H${r-1.4}"/>`).join(``),l=`<path class="sf-spark-fill" data-spark-fill="${e}" d=""/><path class="sf-spark" data-spark="${e}" data-box="${n+1.4},${r-1.4},${i+3.4},${a-3.4}" d=""/>`,u=`<path class="sf-bar-track" d="M${n+1.4} ${-(i+2.2)}H${r-1.4}V${-(i+1.2)}H${n+1.4}Z"/><path class="sf-bar" data-bar="${e}" data-x="${n+1.4},${r-1.4},${i+1.2},${i+2.2}" d=""/>`,d=`<circle class="sf-hmi-dot" data-state-dot="${e}" cx="${r-1.6}" cy="${-(a-1.3)}" r="0.75"/>`;return`<g transform="${b(t)}"><clipPath id="clip-${e}"><path d="${o}"/></clipPath><path class="sf-hmi" d="${o}"/><g clip-path="url(#clip-${e})">${s}${c}${l}${u}${d}</g><path class="iso-line" data-tone="lo" d="${o}"/></g>`}function D(e,n,r,i){let a=[`<path class="sf-glow" data-glow="${e}" d="${s(S(n,r,9,40).map(([e,n])=>t([e,n,i])),!0)}"/>`,v(n,r,2.6,i,1.4,{tone:`mid`},20),v(n,r,1,i+1.4,3,{tone:`mid`,crease:`none`},14)];return[`g`,`a`,`r`].reverse().forEach((t,o)=>{a.push(`<g class="sf-lamp" data-andon="${e}" data-c="${t}">${v(n,r,2.4,i+4.4+o*3.6,3.6,{tone:`mid`},20)}</g>`)}),a.push(v(n,r,2.6,i+15.2,1,{tone:`mid`},20)),a.join(``)}function O(t,i=10){let a=[`<path class="iso-halo" d="${j(t,-i-4,i,e)}"/>`];for(let[e,n]of y(_(t,18)))a.push(v(e,n,6,-i-4,1.4,{tone:`lo`}),v(e,n,4.6,-i-2.6,2.6,{tone:`mid`}));a.push(n(c(t,-i,i,e,8,1.4),{tone:`mid`})),a.push(r(o(h(t,5),0,e,8),{tone:`lo`}));let s=_(t,10);return a.push(r(s.map(([t,n])=>T(t,n,2,0,e,16)).join(``),{tone:`lo`}),x(s,0)),a.join(``)}function k(t,n,i,a,s=5){let c=Math.ceil(a/s),l={x:n,y:i,w:s*7+4,d:c*12+4,r:1.5},u=[g(l,0,5,{tone:`mid`},3,.4)],d=[];for(let e=0;e<a;e++){let t=e%s,r=Math.floor(e/s);d.push({i:e,plan:{x:n+2+t*7+.6,y:i+2+r*12+.6,w:5.8,d:10.8,r:.6}})}u.push(r(d.map(t=>o(t.plan,5,e,2)).join(``),{tone:`faint`}));let f=[...d].sort((t,n)=>M([t.plan.x,t.plan.y,0],e)-M([n.plan.x,n.plan.y,0],e));for(let e of f)u.push(`<g class="sf-part" data-slot="${t}:${e.i}">${w(h(e.plan,.8),5,4)}</g>`);return u.push(x([[l.x+1.4,l.y+1.4],[l.x+l.w-1.4,l.y+1.4]],5)),u.join(``)}function ne(t,i,a,o,s=20){let c=[],l=[],u={x:t,y:a-3,w:i,d:3,r:.8},f={x:t,y:a+o,w:i,d:3,r:.8};for(let e of[t+5,t+i-8])c.push(g({x:e,y:a-2.5,w:3,d:3,r:.6},0,s,{tone:`mid`},2,0));c.push(g({x:t+5,y:a-2.5,w:i-10,d:2,r:.4},4,2,{tone:`lo`},2,0)),c.push(g(u,s-2,6,{tone:`mid`},2,.3));let p=t=>n(Pe(0,o,1.5,se([t,a,s-.5],[0,1,0]),e),{tone:`mid`});c.push(p(t+2.5));let m=g({x:t+1,y:a,w:i-2,d:o,r:1},s-2,3,{tone:`lo`,crease:`faint`},3,0)+p(t+i-2.5);l.push(g(f,s-2,6,{tone:`mid`},2,.3));for(let e of[t+5,t+i-8])l.push(g({x:e,y:a+o+.5,w:3,d:3,r:.6},0,s-2,{tone:`mid`},2,0));l.push(g({x:t+5,y:a+o+1,w:i-10,d:2,r:.4},4,2,{tone:`lo`},2,0)),l.push(x([[t+4,a+o+1.5],[t+i/2,a+o+1.5],[t+i-4,a+o+1.5]],s+4));let h=[];for(let n=t+6;n<=t+i-6;n+=6)h.push(d([n,a+o+3,s+1],.7,`y`,e));return l.push(r(h.join(``),{tone:`lo`})),{back:c.join(``),belt:m,front:l.join(``),top:s+1}}function N(t,n,i,o,c=8){let l=o+4,u=f(n,i,c*.78,c>5?40:16,c>5?5:4,l,[c*.12,c*.27],e,-Math.PI*.75,Math.PI*1.5);return[v(n,i,c,o,4,{tone:`mid`,crease:`lo`},48),`<path class="sf-dial-face" d="${s(S(n,i,c*.86,48).map(([t,n])=>a([t,n,l],e)),!0)}"/>`,r(T(n,i,c*.82,l,e,48),{tone:`lo`}),r(u.minor,{tone:`lo`}),r(u.major,{tone:`mid`}),r(T(n,i,1,l,e,12),{tone:`mid`}),`<path class="iso-line sf-needle" data-tone="lit" data-free="start" data-needle="${t}" data-at="${n},${i},${l},${c}" d=""/>`].join(``)}function re(e,t,n,r,i){let a=C(t,n,t+r,n+i,.6),o=[.62,.3].map((e,a)=>`<path class="iso-line" data-tone="lo" data-free="" d="M${t+2.4} ${-(n+i*e)}H${t+r*(a?.55:.8)}"/>`).join(``);return`<g transform="${b(e)}"><path class="sf-plate" d="${a}"/>${o}<path class="iso-line" data-tone="lo" d="${a}"/><circle class="sf-screw" cx="${t+r-1.2}" cy="${-(n+i/2)}" r="0.4"/></g>`}return{k:ee,G:Ie,P:e,at:t,S:n,L:r,D:p,slab:g,cyl:v,byDepth:y,front:b,screws:x,workpiece:w,faceRule:re,hmi:E,andon:D,plinth:O,buffer:k,conveyor:ne,dial:N}}function dt(e,t,n,r=`mid`,i=3,a=``,o=!0){return`<g class="sf-pipe" data-medium="${a}">${$e(e.G.fillet(t,i,12,{P:e.P,tube:n}),n,e.P,{maxLength:400,caps:o}).map(e=>tt(e,{tone:r})).join(``)}</g>`}function ft(e,t,n,r,i,a,o,s=``){return`<g transform="${e.front(t)}"><path class="${o}" ${s} d="M${n} ${-a}H${i}V${-r}H${n}Z"/></g>`}function pt(e,t,n,r){let{cyl:i}=e;return`<g class="sf-yellow">${i(t,n,2.4,r,.8,{tone:`mid`},20)}</g><g class="sf-red">${i(t,n,1.3,r+.8,1,{tone:`mid`},14)}${i(t,n,1.9,r+1.8,1.2,{tone:`mid`},18)}</g>`}function mt(e,t){let{P:n,L:r}=e;return[`<path class="iso-halo" d="${j(t,-21,7,n)}" style="opacity:.7"/>`,e.S(c(t,-21,7,n,10,1.6),{tone:`lo`,inner:r(p(t,-17,n,10),{tone:`faint`})}),r(o(h(t,6),-14,n,10),{tone:`faint`})].join(``)}function ht(e,t,n,r){return e.cyl(t,n,r+2.2,0,.8,{tone:`mid`},24)+e.screws([0,1,2,3].map(e=>[t+Math.cos(e*1.571+.785)*(r+1.3),n+Math.sin(e*1.571+.785)*(r+1.3)]),.8)}function gt(e,t,n,r){let{P:i,k:a,L:o,cyl:s}=e,c=[s(t,n,3.8,r,6,{tone:`mid`,inner:o(a.sideArc(t,n,3.8,r+3,i,20),{tone:`faint`})},24)];return c.push(s(t,n,4.6,r-.8,.8,{tone:`mid`},24),s(t,n,4.6,r+6,.8,{tone:`mid`},24)),c.join(``)}function _t(e,t,n,r){let{k:i,G:a,P:o,S:s,L:c}=e,l=a.frameAlong([t,n,r+3],[0,1,0]),u=[];u.push(s(a.disc(3.6,5.8,2.6,l,o),{tone:`mid`}),s(a.disc(5.8,10.6,.9,l,o),{tone:`mid`}),s(a.disc(10.6,12.2,1.7,l,o),{tone:`mid`}),s(a.disc(11.2,12,4.4,l,o),{tone:`lo`}));let d=n+11.4,f=[t,d,r+3],p=[0,1,2].map(e=>i.segment(f,[t+Math.cos(e*2.094)*4.2,d,r+3+Math.sin(e*2.094)*4.2],o)).join(``);return u.push(`<g class="sf-wheel">${c(i.sideRing(f,4.4,`y`,o)+i.sideRing(f,3.8,`y`,o)+p,{tone:`mid`})}</g>`),u.join(``)}function vt(e,t,n,r,i){let a=Array.from({length:7},(e,t)=>{let a=-Math.PI*.75+t/6*Math.PI*1.5,o=e=>`${(n+Math.sin(a)*i*e).toFixed(2)} ${(-r-Math.cos(a)*i*e).toFixed(2)}`;return`M${o(5/7)}L${o(.881)}`}).join(``);return`<g transform="${e}"><circle class="sf-dial-face" cx="${n}" cy="${-r}" r="${i}"/><circle class="iso-line" data-tone="mid" fill="none" cx="${n}" cy="${-r}" r="${(i*1.095).toFixed(2)}"/><path class="iso-line" data-tone="lo" d="${a}"/><path class="iso-line sf-needle" data-tone="lit" data-needle="${t}" data-face="${n},${r},${i}" d=""/><circle class="iso-line" data-tone="mid" cx="${n}" cy="${-r}" r="0.5"/></g>`}var yt=[140,-130,22],bt=[126,-130,64],xt=[126,-130,56.8],X=3.2,St={x:46,y:-150,w:96,d:40,r:3};function Ct(e,t,n=`coolant`,r=!1){let{k:i,G:a,P:o,S:s,L:c,D:l,slab:u,cyl:d,hmi:f,screws:p,faceRule:m}=e,h=[],g=-130,_=49.2,v={x:46,y:g-20,w:96,d:40,r:2},y=g-24;if(r||h.push(s(a.disc(-1.6,0,X+2,a.frameAlong([126,y,70],[0,1,0]),o),{tone:`mid`}),dt(e,[bt,[126,g,70],[126,y,70]],X,`mid`,6,n,[!1,!1])),h.push(u(v,0,5,{tone:`mid`},3,.5)),h.push(c(i.planOutline(i.insetPlan(v,2.4),5,o,3),{tone:`faint`}),p(i.corners(v,4),5)),!r){let e=70-X;h.push(d(126,y+7,2.4,5,1,{tone:`lo`},18),d(126,y+7,1.2,6,e-7,{tone:`mid`,crease:`none`},12),d(126,y+7,1.8,e-1,1,{tone:`mid`},16))}let b=a.frameAlong([52,g,20],[1,0,0]);h.push(u({x:56,y:g-10,w:30,d:20,r:1},5,6,{tone:`lo`},2,0)),h.push(s(a.solidOf([[0,10],[2,11],[36,11],[38,10]],b,o),{tone:`mid`,inner:i.fadedSvg(a.ribsOf(b,2,36,11,22,o,{fade:[.1,.55],seams:!0}),{tone:`lo`})})),h.push(u({x:64,y:g+8,w:10,d:6,r:1},24,6,{tone:`mid`},2,.3)),h.push(s(a.disc(38,42,3,b,o),{tone:`mid`})),h.push(s(a.disc(42,52,6.5,b,o),{tone:`mid`,crease:`lo`})),h.push(`<path class="iso-line" data-tone="lo" data-spin="pump" data-shaft="52,${g},20" data-radius="6.5" data-span="94.3,103.7" data-vapour="136,${g},22" data-bearing="86,${g},32" d=""/>`),h.push(u({x:112,y:g-10,w:16,d:20,r:1},5,4,{tone:`lo`},2,0));let x=a.frameAlong([116,g-8,22],[0,1,0]);h.push(s(a.solidOf([[0,14],[16,14]],x,o),{tone:`mid`,inner:c(a.arcOf(x,8,14,o),{tone:`faint`})})),h.push(s(a.disc(-2,0,15.4,x,o),{tone:`mid`})),h.push(l(a.dotsOf(x,16,12.2,10,o,{fade:[.04,.42]}),{size:.4})),h.push(d(126,g,5,32,14,{tone:`mid`},24)),h.push(d(126,g,7.4,46,2.4,{tone:`mid`},28)),h.push(l(a.dotsOf(a.frameAlong([126,g,48.4],[0,0,1]),0,5.8,6,o,{all:!0}),{size:.45}));let S=a.frameAlong([132,g-0,22],[1,0,0]);return h.push(s(a.disc(0,6,5,S,o),{tone:`mid`}),s(a.disc(6,8,7.4,S,o),{tone:`mid`})),h.push(l(a.dotsOf(S,8,5.9,6,o,{all:!0}),{size:.4})),h.push(gt(e,126,g,_)),h.push(d(126,g,4.6,_+6.8,.8,{tone:`mid`},24),dt(e,[xt,[126,g,bt[2]]],X,`mid`,2,n,[!1,!1]),_t(e,126,g,_)),r||(h.push(ht(e,150,g,3.4)),h.push(dt(e,[[140,g,22],[150,g,22],[150,g,.8]],3.4,`mid`,5,n))),h.push(u({x:58,y:g+22,w:38,d:8,r:1},0,24,{tone:`mid`},2,.4)),h.push(f(t,g+30,60,94,7,22)),h.push(m(g+30,60,3,22,2.4)),h.join(``)}function wt(e,t,n,r=1){let[i,o]=a(t,e),[s,c]=a(n,e),l=e=>(Math.round(e*1e3)/1e3).toString();return`translate(${l(s-r*i)} ${l(c-r*o)}) scale(${l(r)})`}var Tt=e=>[e[0],e[1],0];function Et({from:e=[0,0,0],to:t,scale:n=1,children:r}){let{P:i}=x();return(0,rt.jsx)(`g`,{transform:wt(i,e,t,n),children:r})}function Dt({build:e,intro:t}){let n=x();return(0,rt.jsx)(b,{html:(0,nt.useMemo)(()=>e(n),[n,e]),intro:t})}function Ot(e,t){let n=x();return(0,nt.useMemo)(()=>lt(n,e,t),[n,e,t])}var Z=(e,t,...n)=>e.faults(t).some(e=>n.includes(e));function kt(e,t){let n=k(e,`[data-fx-slot="${t}"]`);if(n)return n;let r=E(e,`[data-asset="${t}"]`);return D(`g`,{class:`sf-fx`},r[r.length-1])}function At(e,t,n,r){return Array.from({length:t},(t,i)=>({el:D(n,{class:r},e),seed:i*.618%1}))}function jt(e){for(let t of e)v(t.el,`0`)}function Mt(e,t,n){e.setAttribute(`cx`,t.toFixed(1)),e.setAttribute(`cy`,n.toFixed(1))}function Nt(e){let t=new Map;return(n,r,i)=>{let a=t.get(n);a||(a=E(e,`[data-asset="${n}"] > *:not(.iso-halo):not(.sf-alarm):not(.sf-fx)`),t.set(n,a));let o=r?`${(Math.sin(i*71)*r).toFixed(2)}px ${(Math.cos(i*53)*r*.6).toFixed(2)}px`:``;for(let e of a)e.style.translate!==o&&(e.style.translate=o)}}function Pt(e,t=`hiss`){let n=t!==`hiss`,r=At(e,8,`circle`,t===`smoke`?`sf-hiss sf-smoke`:`sf-hiss`);return{draw(e,i,o,s,c){if(!e){jt(r);return}for(let e of r){let r=(i*(n?.9:2.2)+e.seed)%1,l=Math.sin(i*7+e.seed*20)*.8,[u,d]=a([s[0]+c[0]*r*10+l,s[1]+c[1]*r*8,s[2]+r*(n?5:2)],o);Mt(e.el,u,d),e.el.setAttribute(`r`,((.5+r*2.6)*o.scale*.5).toFixed(2)),v(e.el,(Math.sin(Math.PI*r)*(n?.6:.55)).toFixed(2)),e.el.classList.toggle(`sf-frost`,t===`frost`)}}}}function Ft(e,t=4,n=5){let r=At(e,t,`path`,`sf-heat`);return{draw(e,t,i,o){r.forEach((s,c)=>{if(!e){v(s.el,`0`);return}let l=(t*.35+c/r.length)%1,u=o[0]+c*n,d=o[2]+l*22,f=Array.from({length:7},(e,n)=>a([u+Math.sin(t*3+n*.9+c)*1.4,o[1],d+n*2.2],i));s.el.setAttribute(`d`,`M${f.map(([e,t])=>`${e.toFixed(1)} ${t.toFixed(1)}`).join(`L`)}`),v(s.el,(Math.sin(Math.PI*l)*.55).toFixed(2))})}}}var Q=Math.PI*2,It=e=>e*e*(3-2*e),$=e=>Math.max(0,Math.min(1,e));function Lt(e,t,n,r,i){return i?t:e+(t-e)*(1-Math.exp(-n/r))}function Rt(e,t,n,r){let i=s(S(e.x+e.w/2,e.y+e.d/2,Math.min(e.w,e.d)*.2,20).map(([e,i])=>a([e,i,t+n],r)),!0);return`${te(c(e,t,n,r,2,.3),{tone:`hi`,lit:!0})}<path class="sf-bore" d="${i}"/>`}function zt(e,t,n,r,i=28){return`M${Array.from({length:i},(o,s)=>{let c=s/i*Math.PI*2,[l,u]=a([e[0]+Math.cos(c)*t,e[1]+Math.sin(c)*t,n],r);return`${l.toFixed(1)} ${u.toFixed(1)}`}).join(`L`)}Z`}var Bt={x:-3.5,y:10,w:7,d:10,r:1},Vt=new WeakMap;function Ht(e){let t=Vt.get(e);if(!t){let n=M([0,0,0],e);t=[M([1,0,0],e)-n,M([0,1,0],e)-n,M([0,0,1],e)-n],Vt.set(e,t)}return t}function Ut(e,t,n,r,i,a,o,s){let c=Ht(e),l=``;for(let u=0;u<s;u++){let d=o+u*Q/s,f=t===`z`?[Math.cos(d),Math.sin(d),0]:[0,Math.cos(d),Math.sin(d)];if((f[0]??0)*c[0]+(f[1]??0)*c[1]+(f[2]??0)*c[2]<.15)continue;let p=e=>t===`z`?[n[0]+r*(f[0]??0),n[1]+r*(f[1]??0),e]:[e,n[1]+r*(f[1]??0),n[2]+r*(f[2]??0)];l+=w(p(i),p(a),e)}return l}function Wt(e,[t=0,n=0,r=0,i=0],a){let o=``;for(let s=0;s<5;s++){let c=a+s*Q/5;o+=g([t+Math.cos(c)*2.4,n+Math.sin(c)*2.4],[t+Math.cos(c+.35)*i,n+Math.sin(c+.35)*i],r,e)}return o}function Gt(e,[t=0,n=0,r=0,i=0],o,s,c=6){let l=(i,o,c)=>{let l=Math.cos(c)*i-Math.sin(c)*o,u=Math.sin(c)*i+Math.cos(c)*o,[d,f]=a(s===`x`?[t,n+l,r+u]:s===`y`?[t+l,n,r+u]:[t+l,n+u,r],e);return`${d.toFixed(1)} ${f.toFixed(1)}`},u=``;for(let e=0;e<c;e++){let t=o+e*Q/c;u+=`M${l(3.4,1.8,t)}L${l(i,3.4,t)}L${l(i,-1.4,t)}L${l(3.4,-1.8,t)}Z`}return u}function Kt(e){return e.closest(`[data-asset]`)?.dataset.asset??``}function qt(e){let[t=0,n=0,r=0]=O(e);return[t,n,r]}var Jt=new Set([`press`]);function Yt(e,t){let{svg:n,P:r,feed:i}=e,a=(e,t,n,i,a)=>{let o=-Math.PI*.75+$(a)*Math.PI*1.5;return g([e-Math.sin(o)*i*.22,t+Math.cos(o)*i*.22],[e+Math.sin(o)*i*.7,t-Math.cos(o)*i*.7],n+.2,r)},o=E(n,`[data-needle]`).map(e=>({n:e,id:e.dataset.needle??``,asset:Kt(e),at:O(e.dataset.at),face:e.dataset.face?O(e.dataset.face):null,v:0,rate:0})),s=E(n,`[data-bar]`).map(e=>({n:e,id:e.dataset.bar??``,box:O(e.dataset.x),v:0})),c=E(n,`[data-spark]`).map(e=>({n:e,id:e.dataset.spark??``,fill:k(n,`[data-spark-fill="${e.dataset.spark}"]`),box:O(e.dataset.box),hist:[]})),l=NaN;return{draw(n,r){let u=e.reducedMotion();for(let e of o){let i=$(t.needle(e.id,e.asset));e.rate+=((i-e.v)*90-e.rate*13)*n,e.v+=e.rate*n,u&&(e.v=i);let o=Jt.has(e.id)?Math.sin(r*31+e.id.length)*.003:0;if(e.face){let[t=0,n=0,r=0]=e.face,i=-Math.PI*.75+$(e.v+o)*Math.PI*1.5;y(e.n,`d`,`M${(t-Math.sin(i)*r*.2).toFixed(2)} ${(-n+Math.cos(i)*r*.2).toFixed(2)}L${(t+Math.sin(i)*r*.74).toFixed(2)} ${(-n-Math.cos(i)*r*.74).toFixed(2)}`)}else{let[t=0,n=0,r=0,i=0]=e.at;y(e.n,`d`,a(t,n,r,i,e.v+o))}}for(let e of s){e.v=Lt(e.v,$(t.bar(e.id)),n,.5,u);let[r=0,i=0,a=0,o=0]=e.box;y(e.n,`d`,`M${r} ${-o}H${(r+(i-r)*e.v).toFixed(2)}V${-a}H${r}Z`),y(e.n,`data-s`,e.v>.9&&t.alertsHigh(e.id)?`hi`:null)}let d=i.simTime();if(d!==l&&t.ready()){l=d;for(let e of c){let n=$(t.bar(e.id));if(!e.hist.length)for(let t=0;t<27;t++)e.hist.push(n);e.hist.push(n),e.hist.length>28&&e.hist.shift();let[r=0,i=0,a=0,o=0]=e.box,s=e.hist.map((t,n)=>[r+(i-r)*(n+28-e.hist.length)/27,-(a+.4+t*(o-a-.8))]),c=s.map(([e,t],n)=>`${n?`L`:`M`}${e.toFixed(2)} ${t.toFixed(2)}`).join(``);y(e.n,`d`,c);let l=s[s.length-1],u=s[0];y(e.fill,`d`,l&&u&&s.length>1?`${c}L${l[0].toFixed(2)} ${-a}L${u[0].toFixed(2)} ${-a}Z`:``)}}}}}var Xt=0;function Zt(e,t){let{svg:n,P:r}=e,i=r.scale,o=E(n,`[data-flows]`).map(e=>({el:e,from:Number(e.dataset.depth??-1/0)})).sort((e,t)=>e.from-t.from),s=new Map(E(n,`[data-flows]`).map(e=>[Number(e.dataset.flows),e])),c=new Map;for(let e of E(n,`[data-fl]`))c.set(`${e.dataset.fl}|${e.dataset.fs}`,e);let l=o.length>1&&[...s.keys()].every(Number.isFinite),u=(e,t)=>(e.find(([e])=>t<=e)??e[e.length-1])?.[1]??0,d=(e,t,n,i,a)=>{if(l&&n.length){let t=Math.max(...[i-a,i,i+a].map(e=>u(n,e)));return c.get(`${e}|${t}`)??s.get(t)??o[o.length-1]?.el}let d=M(t,r),f=o[0]?.el;for(let e of o)e.from<=d&&(f=e.el);return f},f=(e,t,n)=>{let i=1;for(;i<e.length-1&&(e[i]??0)<n;)i++;let o=e[i-1]??0,s=(n-o)/((e[i]??0)-o||1),c=t[i-1],l=t[i],[u,d]=a(c,r),[f,p]=a(l,r),m=Math.atan2(p-d,f-u)*180/Math.PI;return m>90&&(m-=180),m<=-90&&(m+=180),[[c[0]+(l[0]-c[0])*s,c[1]+(l[1]-c[1])*s,c[2]+(l[2]-c[2])*s],m]},p=e.flows.filter(e=>e.path.length>1).map(e=>{let t=[0];for(let n=1;n<e.path.length;n++){let r=e.path[n-1],i=e.path[n];t.push((t[n-1]??0)+Math.hypot(i[0]-r[0],i[1]-r[1],i[2]-r[2]))}let r=t[t.length-1]??0;return{f:e,lens:t,L:r,phase:0,speed:0,glints:Array.from({length:Math.max(2,Math.round(r/22))},()=>D(`ellipse`,{class:`sf-glint`,"data-medium":e.medium},(e.group?k(n,`[data-glints="${e.group}"]`):void 0)??o[0]?.el))}}),m=k(n,`defs`)??D(`defs`,{},n),h=new Map;for(let e of p){let t=e.glints[0];if(!t||h.has(e.f.medium))continue;let n=`sf-glint-${Xt++}`,r=getComputedStyle(t).fill,i=D(`radialGradient`,{id:n},m);for(let[e,t]of[[`0`,`0.85`],[`0.45`,`0.5`],[`1`,`0`]]){let n=D(`stop`,{offset:e,"stop-opacity":t},i);n.style.stopColor=r}h.set(e.f.medium,`url(#${n})`)}for(let e of p)for(let t of e.glints)t.style.fill=h.get(e.f.medium)??``;return{draw(n){let s=e.reducedMotion();for(let e of p)e.speed=Lt(e.speed,t(e.f),n,.8,s),s||(e.phase=(e.phase+e.speed*n)%e.L),e.glints.forEach((t,n)=>{let s=(e.phase+n*e.L/e.glints.length)%e.L,c=e.f.reverse?e.L-s:s,[l,u]=f(e.lens,e.f.path,c),[p,m]=a(l,r),[h,g]=e.f.reverse?[e.f.capped[1],e.f.capped[0]]:e.f.capped,_=Math.max(0,Math.min(1,(s-(h?e.f.r:0))/8,(e.L-s-(g?e.f.r:0))/8)),v=e.f.r*i*.35*Math.cos(u*Math.PI/180),y=p+v*Math.sin(u*Math.PI/180),b=m-v*Math.cos(u*Math.PI/180);t.setAttribute(`cx`,y.toFixed(2)),t.setAttribute(`cy`,b.toFixed(2)),t.setAttribute(`rx`,(e.f.r*i*1.35).toFixed(2)),t.setAttribute(`ry`,(e.f.r*i*.55).toFixed(2)),t.setAttribute(`transform`,`rotate(${u.toFixed(2)} ${y.toFixed(2)} ${b.toFixed(2)})`),t.style.opacity=(_*.9*Math.min(1,e.speed/3)).toFixed(2);let x=o.length>1&&!e.f.group?d(e.f.id,l,e.f.slots,c,e.f.r):void 0;x&&t.parentNode!==x&&x.append(t)})}}}function Qt(e,t){let{svg:n}=e,r=E(n,`[data-alarm]`).map(e=>{let t=e.dataset.alarm??``;return{id:t,alarm:e,andon:E(n,`[data-andon="${t}"]`),glow:k(n,`[data-glow="${t}"]`),dot:k(n,`[data-state-dot="${t}"]`)}});return{draw(e){for(let n of r){let r=t(n.id);if(!e)for(let e of n.andon)y(e,`data-on`,e.dataset.c===r?``:null);y(n.alarm,`data-on`,r===`r`?``:null),y(n.glow,`data-c`,e?null:r||null),y(n.dot,`data-s`,r||null)}}}}function $t(e,t){let{svg:n,P:r,feed:i}=e,o=(e,t)=>i.num(e,t),s=e=>{let t=kt(n,e);return{bubbles:At(t,10,`circle`,`sf-bubble`),heat:Ft(t)}},c=E(n,`[data-spin="pump"]`).map(e=>{let t=Kt(e),[n=0,r=0]=O(e.dataset.span);return{el:e,id:t,at:qt(e.dataset.shaft),eye:qt(e.dataset.vapour),r:Number(e.dataset.radius)||0,s0:n,s1:r,rpm:0,spin:0,bearing:qt(e.dataset.bearing),...s(t)}}),l=new Map(c.map(e=>[e.id,e])),u=e=>{let t=i.param(e,`rated_flow`,0);return t>0?$(o(e,`flow_rate`)/t):0};return{draw(n,s,l){let u=e.reducedMotion();for(let e of c){if(e.rpm=Lt(e.rpm,o(e.id,`speed_feedback`),n,.8,u),u||(e.spin+=e.rpm/i.param(e.id,`rated_rpm`,1500)*1.6*Q*n),y(e.el,`d`,Ut(r,`x`,e.at,e.r,e.s0,e.s1,e.spin,8)),!l)continue;let c=Z(i,e.id,`cavitation`);for(let t of e.bubbles){if(!c||u){v(t.el,`0`);continue}let n=(s*1.6+t.seed)%1,[i,o,l]=e.eye,[d,f]=a([i+n*6,o+Math.sin(t.seed*40)*3,l+Math.cos(t.seed*30)*3],r);Mt(t.el,d,f),t.el.setAttribute(`r`,(.35+Math.sin(Math.PI*n)*.6).toFixed(2)),v(t.el,(n<.85?.8:0).toFixed(2))}e.heat.draw(Z(i,e.id,`bearing_wear`,`bearing_seizure`)&&!u,s,r,e.bearing),t(e.id,u?0:Z(i,e.id,`bearing_seizure`)?.7:Z(i,e.id,`cavitation`,`impeller_imbalance`,`bearing_wear`)?.35:0,s)}},flowPu:u,bar(e){return l.has(e)?u(e):void 0}}}function en(e){return e===`off_shift`?``:e===`running`?`g`:e===`down`||e===`fault`||e===`failed`?`r`:`a`}function tn(e,t,n){if(e.faults(t).length)return[`fault`,`r`];let r=e.station(t);if(r)return[r.state,en(r.state)];if(n===`availability`){let n=e.text(t,`availability_state`);if(n!==void 0)return[n,n===`stopped`?``:n===`faulted`?`r`:`g`]}return e.num(t,`run_command`,1)===0?[`stopped`,``]:[`running`,`g`]}function nn(e,t,n){return tn(e,t,n)[1]}export{bt as A,dt as B,kt as C,Et as D,Ot as E,Ct as F,F as G,lt as H,vt as I,I as J,se as K,mt as L,xt as M,X as N,Dt as O,yt as P,pt as R,Mt as S,At as T,Pe as U,ut as V,Fe as W,ne as X,z as Y,Lt as _,Zt as a,Nt as b,qt as c,Wt as d,Gt as f,$ as g,Q as h,Qt as i,St as j,Tt as k,Bt as l,Rt as m,nn as n,Yt as o,Ut as p,L as q,$t as r,Kt as s,tn as t,zt as u,It as v,Z as w,Ft as x,Pt as y,ft as z};
|
|
1
|
+
import{a as e,r as t}from"./rolldown-runtime-COnpUsM8.js";import{c as n}from"./vendor-charts-95ykyDlI.js";import{ot as r}from"./vendor-ui-D8j69UH4.js";import{A as i,C as a,D as o,E as s,F as c,L as l,M as u,N as d,O as f,P as p,R as m,S as h,T as g,_,a as v,c as y,d as b,f as x,g as S,h as C,j as w,k as T,n as E,o as D,s as O,t as k,v as A,w as ee,x as j,y as M,z as te}from"./dom-CQuChC3G.js";function ne(e){return e}var N=Math.PI*2,re=1.2,ie=[0,.2,.42,.62],P=(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2],F=(e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]],I=(e,t)=>[e[0]-t[0],e[1]-t[1],e[2]-t[2]],L=(e,t)=>[e[0]*t,e[1]*t,e[2]*t],R=e=>Math.hypot(e[0],e[1],e[2]),z=e=>{let t=R(e)||1;return[e[0]/t,e[1]/t,e[2]/t]},B=(e,t)=>[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]],V=(e,t,n)=>[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n];function H(e){let{sinA:t,cosA:n,sinE:r,cosE:i}=C(e);return[n*i,t*i,r]}function ae(e){let{sinA:t,cosA:n}=C(e);return z([-t,n,re])}var U=e=>C(e).k;function oe(e){let t=0;for(;t<ie.length&&e>=ie[t];)t++;return t}function se(e,t){let n=z(t),r=z(B(Math.abs(n[2])>.9?[1,0,0]:[0,0,1],n));return{o:e,a:n,u:r,v:B(n,r)}}function W(e,t,n,r){let i=Math.cos(r),a=Math.sin(r);return[e.o[0]+e.a[0]*t+n*(i*e.u[0]+a*e.v[0]),e.o[1]+e.a[1]*t+n*(i*e.u[1]+a*e.v[1]),e.o[2]+e.a[2]*t+n*(i*e.u[2]+a*e.v[2])]}var ce=(e,t)=>{let n=Math.cos(t),r=Math.sin(t);return[n*e.u[0]+r*e.v[0],n*e.u[1]+r*e.v[1],n*e.u[2]+r*e.v[2]]},le=(e,t)=>Math.atan2(P(t,e.v),P(t,e.u));function ue(e){let t=[...e].sort((e,t)=>e.p[0]-t.p[0]||e.p[1]-t.p[1]);if(t.length<3)return t;let n=(e,t,n)=>(t.p[0]-e.p[0])*(n.p[1]-e.p[1])-(t.p[1]-e.p[1])*(n.p[0]-e.p[0]),r=[];for(let e of t){for(;r.length>=2&&n(r[r.length-2],r[r.length-1],e)<=1e-9;)r.pop();r.push(e)}let i=[];for(let e=t.length-1;e>=0;e--){let r=t[e];for(;i.length>=2&&n(i[i.length-2],i[i.length-1],r)<=1e-9;)i.pop();i.push(r)}return[...r.slice(0,-1),...i.slice(0,-1)]}var de=e=>ue(e.map(e=>({p:e}))).map(({p:e})=>e);function fe(e){let t=e.length,n=[],r=e.findIndex((n,r)=>n!==e[(r+t-1)%t]);if(r<0){let r=e[0];return r!=null&&n.push({key:r,run:Array.from({length:t+1},(e,n)=>n%t)}),n}let i=null,a=e=>{e&&e.key!==null&&n.push({key:e.key,run:e.run})};for(let n=0;n<t;n++){let o=(r+n)%t,s=e[o]??null;if(i&&i.key===s){i.run.push((o+1)%t);continue}a(i),i={key:s,run:[o,(o+1)%t]}}return a(i),n}var pe=(e,t=16,n=112,r=0)=>Math.max(t,Math.min(n,r?Math.ceil(N*e*r/3):Math.round(e*1.3/4)*4)),me=e=>e.reduce((t,[n,r],i)=>{let[a,o]=e[(i+1)%e.length];return t+n*o-a*r},0),he=e=>me(e)<0?[...e].reverse():[...e],G=(e,t)=>e[t],ge=e=>(e%N+N)%N;function _e(e,t,n,r,i,a){let o=[];if(Math.abs(i)>1e-9){let e=-(a*n.a)/(i*n.flat);if(e>-1&&e<1){let t=Math.acos(e);o.push(n.phi-t,n.phi+t)}}if(Math.abs(e)>1e-9)for(let n of ie){let i=(n-t*r.a)/(e*r.flat);if(i>-1&&i<1){let e=Math.acos(i);o.push(r.phi-e,r.phi+e)}}let s=[...new Set(o.map(e=>Math.round(ge(e)*1e9)/1e9))].sort((e,t)=>e-t),c=o=>i*n.flat*Math.cos(o-n.phi)+a*n.a<=1e-9?-1:oe(e*r.flat*Math.cos(o-r.phi)+t*r.a);if(!s.length){let e=c(0);return e<0?[]:[{tone:e,from:0,to:N}]}let l=s.map((e,t)=>{let n=t+1<s.length?G(s,t+1):G(s,0)+N;return{tone:c((e+n)/2),from:e,to:n}}),u=[];for(let e of l){let t=u[u.length-1];t&&t.tone===e.tone&&Math.abs(t.to-e.from)<1e-9?t.to=e.to:u.push({...e})}let d=u[0],f=u[u.length-1];return d&&f&&u.length>1&&d.tone===f.tone&&Math.abs(f.to-N-d.from)<1e-9&&(u.pop(),d.from=f.from-N),u.filter(e=>e.tone>=0)}function ve(e){let t=e.length-1,n=Array.from({length:t},(t,n)=>G(e,n+1)[0]-G(e,n)[0]),r=n.map((t,n)=>(G(e,n+1)[1]-G(e,n)[1])/t),i=Array(t+1).fill(0),a=(e,t,n,r)=>{let i=((2*e+t)*n-e*r)/(e+t);return Math.sign(i)===Math.sign(n)?Math.sign(n)!==Math.sign(r)&&Math.abs(i)>Math.abs(3*n)&&(i=3*n):i=0,i};t===1?(i[0]=G(r,0),i[1]=G(r,0)):(i[0]=a(G(n,0),G(n,1),G(r,0),G(r,1)),i[t]=a(G(n,t-1),G(n,t-2),G(r,t-1),G(r,t-2)));for(let e=1;e<t;e++){if(G(r,e-1)*G(r,e)<=0)continue;let t=2*G(n,e)+G(n,e-1),a=G(n,e)+2*G(n,e-1);i[e]=(t+a)/(t/G(r,e-1)+a/G(r,e))}return i}function ye(e){let t=e.length,n=Array(t-1).fill(null),r=0;for(;r<t-1;){let i=r+1;for(;i<t-1&&G(e,i)[2]&&Math.abs(G(e,i+1)[0]-G(e,i)[0])>1e-9&&Math.abs(G(e,i)[0]-G(e,i-1)[0])>1e-9;)i++;let a=e.slice(r,i+1).map(([e,t])=>[e,t]),o=a.length-1;if(o>=2&&a.every((e,t)=>t===0||Math.abs(e[0]-G(a,t-1)[0])>1e-9)){let e=ve(a);for(let t=0;t<o;t++){let[i,o]=G(a,t),[s,c]=G(a,t+1),l=s-i,u=G(e,t),d=G(e,t+1),f=e=>{let t=(e-i)/l;return(2*t**3-3*t**2+1)*o+(t**3-2*t**2+t)*l*u+(-2*t**3+3*t**2)*c+(t**3-t**2)*l*d},p=e=>{let t=(e-i)/l;return((6*t**2-6*t)*o+(6*t-6*t**2)*c)/l+(3*t**2-4*t+1)*u+(3*t**2-2*t)*d};n[r+t]={radius:f,slope:p}}}r=i}return n}function be(e,t,n){let r=U(t),i=[G(e,0)];for(let t=0;t<e.length-1;t++){let a=n[t];if(a){let n=(e,t,o)=>{let s=(e+t)/2,c=(a.radius(e)+a.radius(t))/2;o<6&&Math.abs(a.radius(s)-c)*r>.2&&(n(e,s,o+1),i.push([s,a.radius(s),1]),n(s,t,o+1))};n(G(e,t)[0],G(e,t+1)[0],0)}i.push(G(e,t+1))}return i}var xe=6,Se=.35,Ce=8,we=.1;function Te(e,t,n,r){let i=H(n),o=ae(n),c={a:P(t.a,i),flat:Math.hypot(P(t.u,i),P(t.v,i)),phi:Math.atan2(P(t.v,i),P(t.u,i))},l={a:P(t.a,o),flat:Math.hypot(P(t.u,o),P(t.v,o)),phi:Math.atan2(P(t.v,o),P(t.u,o))},u=e.length,d=[];for(let t=0;t<u-1;t++){let n=G(e,t+1)[0]-G(e,t)[0],r=G(e,t+1)[1]-G(e,t)[1],i=Math.hypot(n,r)||1;d.push([n/i,-r/i])}let f=ye(e),p=(t,n)=>{if(t<=0||t>=u-1||!G(e,t)[2])return n;let r=G(d,t-1),i=G(d,t),a=r[0]+i[0],o=r[1]+i[1],s=Math.hypot(a,o)||1;return[a/s,o/s]},m=(t,n)=>{let r=G(e,t)[0],i=G(e,t+1)[0],a=r+(i-r)*n,o=Math.sign(i-r)||1,s=f[t];if(s){let e=Math.hypot(1,s.slope(a));return[o/e,-o*s.slope(a)/e]}let c=p(t,G(d,t)),l=p(t+1,G(d,t)),u=c[0]+(l[0]-c[0])*n,m=c[1]+(l[1]-c[1])*n,h=Math.hypot(u,m)||1;return[u/h,m/h]},h=(r,i,o)=>{let[s,c]=G(e,r),[l,u]=G(e,r+1),d=s+(l-s)*i,p=f[r];return a(W(t,d,p?p.radius(d):c+(u-c)*i,o),n)},g=[[],[],[],[],[]],_=N/Math.max(24,Math.min(192,r*1.5)),v=(e,t,n,r)=>{let i=Math.max(1,Math.ceil((r-n)/_));return Array.from({length:i+1},(a,o)=>h(e,t,n+(r-n)*o/i))},y=(e,t)=>(((e.from+e.to)/2-t)%N+N)%N,b=(e,t)=>{let[n,r]=m(e,t),i=new Map,a=G(d,e);for(let e of _e(n,r,c,l,a[0],a[1])){let t=i.get(e.tone);t?t.push(e):i.set(e.tone,[e])}for(let e of i.values())e.sort((e,t)=>y(e,l.phi)-y(t,l.phi));return{i:e,u:t,groups:i}},x=(e,t)=>{if(e.groups.size!==t.groups.size)return!1;for(let[n,r]of e.groups)if((t.groups.get(n)??[]).length!==r.length)return!1;return!0},S=(e,t)=>{let n={...t},r=(e.from+e.to)/2;for(;(n.from+n.to)/2-r>Math.PI;)n.from-=N,n.to-=N;for(;r-(n.from+n.to)/2>Math.PI;)n.from+=N,n.to+=N;return n},C=(e,t,n)=>G(e.groups.get(t),n),w=(e,t,n,r)=>{let i=0;for(let[a,o]of n.groups)o.forEach((o,s)=>{let c=S(o,C(t,a,s)),l=S(o,C(r,a,s));for(let a of[`from`,`to`]){let s=h(e,n.u,o[a]),u=h(e,t.u,c[a]),d=h(e,r.u,l[a]);i=Math.max(i,Math.hypot(s[0]-(u[0]+d[0])/2,s[1]-(u[1]+d[1])/2))}});return i},T=(e,t)=>{let n=G(t,0),r=t.length-1,i=G(t,r);for(let[a,o]of n.groups.get(e).entries()){let c=[o];for(let n=1;n<t.length;n++)c.push(S(G(c,n-1),C(G(t,n),e,a)));let l=G(c,r),u=[...v(n.i,n.u,o.from,o.to)];for(let e=1;e<r;e++){let n=G(t,e);u.push(h(n.i,n.u,G(c,e).to))}u.push(...v(i.i,i.u,l.from,l.to).reverse());for(let e=r-1;e>=1;e--){let n=G(t,e);u.push(h(n.i,n.u,G(c,e).from))}G(g,e).push(s(he(u),!0))}},E=(e,t,n)=>{let r=t.groups.get(e)??[],i=(n.groups.get(e)??[]).map(e=>({arc:e,used:!1})),a=(r,i)=>{let a=[...v(t.i,t.u,r.from,r.to),...v(n.i,n.u,i.from,i.to).reverse()];G(g,e).push(s(he(a),!0))};for(let e of r){let t=null,n=-1/0;for(let r of i){if(r.used)continue;let i=S(e,r.arc),a=Math.min(e.to,i.to)-Math.max(e.from,i.from);a>n&&(n=a,t=r)}if(t&&n>-.05)t.used=!0,a(e,S(e,t.arc));else{let t=(e.from+e.to)/2;a(e,{from:t,to:t})}}for(let e of i){if(e.used)continue;let t=(e.arc.from+e.arc.to)/2;a({from:t,to:t},e.arc)}},D=U(n),O=[],k=()=>{let e=[...new Set(O.flatMap(e=>[...e.groups.keys()]))].sort((e,t)=>e-t);for(let t of e){let e=e=>(e.groups.get(t)??[]).length,n=0;for(let r=1;r<=O.length;r++)r<O.length&&e(G(O,r-1))===e(G(O,r))||(r-1>n&&e(G(O,n))&&T(t,O.slice(n,r)),r<O.length&&E(t,G(O,r-1),G(O,r)),n=r)}O=[]};for(let t=0;t<u-1;t++){let n=G(e,t+1)[0]-G(e,t)[0];if(Math.abs(n)<1e-9){k();continue}let r=Math.hypot(n,G(e,t+1)[1]-G(e,t)[1])*D/xe,i=Math.max(1,Math.min(Ce,Math.ceil(Math.log2(Math.max(2,r/we))))),a=Array.from({length:xe+1},(e,n)=>b(t,n/xe));O.push(G(a,0));let o=(e,n,r)=>{let a=b(t,(e.u+n.u)/2);if(!(r<i&&(!x(e,n)||!x(e,a)||r<6&&w(t,e,a,n)>Se))){O.push(n);return}o(e,a,r+1),o(a,n,r+1)};for(let e=1;e<=xe;e++)o(G(a,e-1),G(a,e),0)}return k(),g}var K=(e,t)=>e[t],Ee=e=>(e%N+N)%N,De=e=>Math.max(...e.map(([,e])=>e)),Oe=e=>e.some(e=>!!e[2]);function ke(e){let t=e.length,n=+(K(e,0)[1]<=1e-9),r=K(e,t-1)[1]<=1e-9?t-2:t-1,i=e.slice(n,r+1);for(let e=1;e<i.length;e++)if(K(i,e)[0]-K(i,e-1)[0]<=1e-9)return null;return i.length>=3?i:null}function Ae(e,t,n,r){let i=H(n),a=P(t.a,i),o=P(t.u,i),s=P(t.v,i),c=Math.atan2(s,o),l=Math.hypot(o,s)||1e-9,u=K(e,0)[0],d=K(e,e.length-1)[0],f=t=>{let n=1;for(;n<e.length-1&&K(e,n)[0]<t;)n++;let[r,i]=K(e,n-1),[a,o]=K(e,n);return i+(o-i)*(t-r)/(a-r||1)},p=e=>{let n=[];for(let i=0;i<=r;i++){let o=u+(d-u)*i/r,s=(d-u)/r/2||.01,p=(f(Math.min(d,o+s))-f(Math.max(u,o-s)))/(Math.min(d,o+s)-Math.max(u,o-s)||1)*a/l;Math.abs(p)>1||n.push(W(t,o,f(o),c+e*Math.acos(p)))}return n};return[p(1),p(-1)]}function je(e,t,n){let r=H(n),i=P(t.a,r),o=Math.atan2(P(t.v,r),P(t.u,r)),[c,l]=Ae(e,t,n,96);if(c.length<=96||l.length<=96)return null;let u=K(e,0)[0],d=K(e,e.length-1)[0],f=e=>le(t,I(e,F(t.o,L(t.a,P(I(e,t.o),t.a))))),p=(e,r,i,o,s)=>{let c=Ee(o-i);Ee(s-i)>c&&(c-=N);let l=Math.max(4,Math.ceil(Math.abs(c)/(N/96)),Math.ceil(Math.abs(c)*r*U(n)/1.5));return Array.from({length:l+1},(o,s)=>a(W(t,e,r,i+c*s/l),n))},m=K(e,0)[1],h=K(e,e.length-1)[1],g=-i>0?o+Math.PI:o,_=i>0?o+Math.PI:o,v=c.map(e=>a(e,n)),y=l.map(e=>a(e,n)),b=p(d,h,f(K(c,c.length-1)),f(K(l,l.length-1)),_),x=p(u,m,f(K(l,0)),f(K(c,0)),g),S=s([...v,...b,...[...y].reverse(),...x],!0),C=[s(v),s(y),s(b),s(x)].join(``),w=de([...p(u,m,0,N-1e-6,Math.PI),...p(d,h,0,N-1e-6,Math.PI),...v,...y]),T=0;for(let e of[...v,...y]){let t=1/0;for(let n=0;n<w.length;n++){let r=K(w,n),i=K(w,(n+1)%w.length),a=i[0]-r[0],o=i[1]-r[1],s=Math.max(0,Math.min(1,((e[0]-r[0])*a+(e[1]-r[1])*o)/(a*a+o*o||1)));t=Math.min(t,Math.hypot(e[0]-r[0]-a*s,e[1]-r[1]-o*s))}T=Math.max(T,t)}return{fill:S,outline:C,gap:T}}function Me(e,t,n,r,i){let o=i?ye(e):null,c=o?.some(Boolean)?be(e,n,o):e,l=ke(c),u=l?je(l,t,n):null;if(u&&u.gap>.5)return{fill:u.fill,outline:u.outline};let d=Math.min(320,Math.max(r,Math.ceil(N*De(c)*U(n)/1.5))),f=[];for(let[e,r]of c)for(let i=0;i<d;i++)f.push({p:a(W(t,e,r,i/d*N),n)});let p=s(ue(f).map(({p:e})=>e),!0);return{fill:p,outline:p}}function Ne(e,t,n,r=pe(De(e),32,160,U(n))){let i=Oe(e),o=H(n),c=ae(n),l=P(t.a,o),u=P(t.u,o),d=P(t.v,o),f=P(t.a,c),p=P(t.u,c),m=P(t.v,c),h=r,g=e.length,_=e.map(([e,r])=>Array.from({length:h},(i,o)=>a(W(t,e,r,o/h*N),n))),v=[],y=[];for(let e=0;e<h;e++){let t=(e+.5)/h*N;v.push(Math.cos(t)),y.push(Math.sin(t))}let b=[],x=[];for(let t=0;t<g-1;t++){let n=K(e,t+1)[0]-K(e,t)[0],r=K(e,t+1)[1]-K(e,t)[1],i=Math.hypot(n,r),a=[],o=[];for(let e=0;e<h;e++){if(i<1e-9){a.push(!1),o.push(0);continue}let t=K(v,e),s=K(y,e);a.push(n*(t*u+s*d)-r*l>1e-6*i),o.push(oe((n*(t*p+s*m)-r*f)/i))}b.push(a),x.push(o)}let S=[[],[],[],[],[]],C=i?Te(e,t,n,r):null;for(let[e,t]of(C??[]).entries())K(S,e).push(...t);for(let t=0;t<g-1;t++){if(C&&Math.abs(K(e,t+1)[0]-K(e,t)[0])>1e-9)continue;let n=K(b,t).map((e,n)=>e?K(K(x,t),n):null);for(let{key:e,run:r}of fe(n)){let n=r.map(e=>K(K(_,t),e)),i=r.map(e=>K(K(_,t+1),e)).reverse();K(S,e).push(s(he([...n,...i]),!0))}}let w=Math.atan2(d,u),T=Math.hypot(u,d),E=t=>{let n=K(e,t+1)[0]-K(e,t)[0],r=K(e,t+1)[1]-K(e,t)[1];if(Math.hypot(n,r)<1e-9)return null;if(Math.abs(n)<1e-9||T<1e-9)return-r*l>1e-9?[-1,1]:null;let i=r*l/(n*T);return n>0?[Math.max(-1,i),1]:[-1,Math.min(1,i)]},D=e=>{let t=e.filter(e=>e!==null);if(t.length<e.length)return[];let n=Math.max(...t.map(([e])=>e)),r=Math.min(...t.map(([,e])=>e));if(n>=r-1e-9)return[];let i=Math.acos(Math.min(1,r)),a=Math.acos(Math.max(-1,n));return r>=1&&n<=-1?[[w,w+N]]:r>=1?[[w-a,w+a]]:n<=-1?[[w+i,w+N-i]]:[[w+i,w+a],[w-a,w-i]]},O=[];for(let r=1;r<g-1;r++){let[i,o,c]=K(e,r);if(!(c||o<=1e-9))for(let[e,c]of D([E(r-1),E(r)])){let r=Math.max(2,Math.ceil((c-e)*Math.max(o,1e-6)*U(n)/1.5));O.push(s(Array.from({length:r+1},(s,l)=>a(W(t,i,o,e+(c-e)*l/r),n))))}}let{fill:k,outline:A}=Me(e,t,n,h,i);return{fill:k,outline:A,crease:O.join(``),top:K(S,4).join(``),shades:S.slice(0,4).map(e=>e.join(``)),seamless:!!C}}var Pe=(e,t,n,r,i)=>Ne([[e,0],[e,n],[t,n],[t,0]],r,i,pe(n,32,160,U(i)));function Fe(e,t,n){let r=K(e,0),i=K(e,e.length-1);return Ne([[r[0],0],...e,[i[0],0]],t,n,pe(De(e),32,160,U(n)))}var Ie=t({add3:()=>F,arcOf:()=>Re,cross3:()=>B,cut:()=>J,disc:()=>Pe,dot3:()=>P,dotsOf:()=>Be,fillet:()=>Ve,frameAlong:()=>se,len3:()=>R,mul3:()=>L,pathLength:()=>Ue,pointAlong:()=>We,resample:()=>He,ribsOf:()=>ze,scaleOf:()=>U,solidOf:()=>Fe,sub3:()=>I,unit3:()=>z,viewOf:()=>H}),q=(e,t)=>e[t],Le=(e,[t,n])=>{let r=Math.max(0,Math.min(1,(e-t)/(n-t||1e-9)));return r*r*(3-2*r)};function Re(e,t,n,r,{slope:i=0,steps:o=0,least:c=.02,inward:l=!1,from:u=0,to:d=N,trim:f=.3}={}){let p=H(r),m=P(e.a,p),h=P(e.u,p),g=P(e.v,p),_=Math.hypot(h,g),v=Math.atan2(g,h),y=Math.hypot(1,i),b=Math.abs(d-u-N)<1e-9,x;if(_<1e-9)x=(l?i*m/y>c:-i*m/y>c)?[[v,v+N]]:[];else if(l){let e=(i*m-c*y)/_;x=e<=-1?[]:e>=1?[[v,v+N]]:[[v+Math.acos(e),v+N-Math.acos(e)]]}else{let e=(c*y+i*m)/_;x=e>=1?[]:e<=-1?[[v,v+N]]:[[v-Math.acos(e),v+Math.acos(e)]]}let S=i=>a(W(e,t,n,i),r),C=e=>{let t=S(e-.001),n=S(e+.001);return Math.hypot(n[0]-t[0],n[1]-t[1])/.002},w=e=>Math.max(2,Math.ceil((o||pe(n,24,112))*e/N),Math.ceil(e*n*U(r)/1.5)),T=[];for(let[e,t]of x){if(t-e>=N-1e-9&&b){let e=w(N);T.push(s(Array.from({length:e},(t,n)=>S(u+n/e*N)),!0));continue}let n=b?[[e,t,!0,!0]]:[];if(!b)for(let r=-2;r<=2;r++){let i=Math.max(e+r*N,u),a=Math.min(t+r*N,d);a-i>1e-6&&n.push([i,a,i>u+1e-9,a<d-1e-9])}for(let[e,t,r,i]of n){let n=t-e,a=r&&f>0?Math.min(n*.25,f/(C(e)||1)):0,o=i&&f>0?Math.min(n*.25,f/(C(t)||1)):0,c=e+a,l=t-o,u=w(l-c);T.push(s(Array.from({length:u+1},(e,t)=>S(c+(l-c)*t/u))))}}return T.join(``)}function ze(e,t,n,r,i,o,{phase:c=0,twist:l=0,r1:u=r,fade:d,seams:f=!1}){let p=H(o),m=[],h=(u-r)/(n-t||1);for(let f=0;f<i;f++){let g=c+f/i*N,_=ce(e,g+l/2),v=P(z([_[0]-h*e.a[0],_[1]-h*e.a[1],_[2]-h*e.a[2]]),p),y=s([a(W(e,t,r,g),o),a(W(e,n,u,g+l),o)]),b=Le(v,d);b>.02&&m.push({d:y,alpha:b})}let g=f?[f===`last`?``:Re(e,t,r,o,{slope:h}),f===`first`?``:Re(e,n,u,o,{slope:h})].filter(Boolean):[];return[...m,...g.map(e=>({d:e,alpha:1}))]}function Be(e,t,n,r,i,{phase:o=0,slope:s=0,least:c=.08,all:l=!1,fade:u=null}={}){let d=H(i),f=[];for(let p=0;p<r;p++){let m=o+p/r*N,h=1;if(!l){let t=ce(e,m),n=P(z([t[0]-s*e.a[0],t[1]-s*e.a[1],t[2]-s*e.a[2]]),d);if(u)h=Le(n,u);else if(n<c)continue;if(h<=.02)continue}let[g,_]=a(W(e,t,n,m),i);f.push(h<1?[g,_,h]:[g,_])}return f}function Ve(e,t,n=7,{P:r=null,tube:i=0,margin:a=1.3}={}){if(e.length<3)return e.map(e=>[e[0],e[1],e[2]]);let o=r&&i?H(r):null,s=e=>[e[0],e[1],e[2]],c=[s(q(e,0))];for(let r=1;r<e.length-1;r++){let l=q(e,r-1),u=q(e,r),d=q(e,r+1),f=z(I(u,l)),p=z(I(d,u)),m=Math.max(-1,Math.min(1,P(f,p))),h=Math.acos(m);if(h<.001){c.push(s(u));continue}let g=Math.min(R(I(u,l)),R(I(d,u)))*.48,_=o?Math.abs(P(z(B(f,p)),o)):1,v=o?Math.max(t,a*i/(.7*Math.max(.05,_)**2)):t,y=Math.min(v*Math.tan(h/2),g),b=I(u,L(f,y)),x=F(u,L(p,y)),S=Math.max(2,Math.ceil(n*h/(Math.PI/2)));for(let e=0;e<=S;e++){let t=e/S;c.push(V(V(b,u,t),V(u,x,t),t))}}return c.push(s(q(e,e.length-1))),c}function He(e,t){let n=[0];for(let t=1;t<e.length;t++)n.push(q(n,t-1)+R(I(q(e,t),q(e,t-1))));let r=q(n,n.length-1),i=Math.max(1,Math.round(r/t)),a=[],o=1;for(let t=0;t<=i;t++){let s=r*t/i;for(;o<e.length-1&&q(n,o)<s;)o++;let c=q(e,o-1),l=q(e,o),u=q(n,o)-q(n,o-1)||1;a.push(V(c,l,Math.min(1,Math.max(0,(s-q(n,o-1))/u))))}return a}function Ue(e){let t=0;for(let n=1;n<e.length;n++)t+=R(I(q(e,n),q(e,n-1)));return t}function J(e,t,n){let r=[],i=0;for(let a=1;a<e.length;a++){let o=q(e,a-1),s=q(e,a),c=R(I(s,o)),l=i,u=i+c;if(u>=t&&l<=n){let e=Math.max(0,(t-l)/(c||1)),i=Math.min(1,(n-l)/(c||1));r.length||r.push(V(o,s,e)),r.push(V(o,s,i))}i=u}return r}var We=(e,t)=>J(e,t,t+.01)[0]??q(e,e.length-1),Ge=(()=>{let e=Math.hypot(-.55,-.835);return[-.55/e,-.835/e]})(),Ke=(e,t=!0)=>s(e,t),Y=(e,t)=>e[t],qe=e=>e.reduce((t,[n,r],i)=>{let[a,o]=Y(e,(i+1)%e.length);return t+n*o-a*r},0);function Je(e){let t={left:[],right:[],shineA:[],shineB:[],shadeA:[],shadeB:[]};for(let{p:n,nx:r,ny:i,half:a}of e){t.left.push([n[0]+r*a,n[1]+i*a]),t.right.push([n[0]-r*a,n[1]-i*a]);let e=r*Ge[0]+i*Ge[1],o=a*.44*e,s=a*.24;t.shineA.push([n[0]+r*(o+s),n[1]+i*(o+s)]),t.shineB.push([n[0]+r*(o-s),n[1]+i*(o-s)]);let c=-a*.62*e,l=a*.2;t.shadeA.push([n[0]+r*(c+l),n[1]+i*(c+l)]),t.shadeB.push([n[0]+r*(c-l),n[1]+i*(c-l)])}return t}function Ye(e,t,n,r){let i=(e,t)=>{for(let i=0;i<n.flat.length;i++){if(Math.abs(Y(n.along,i)-t)<=r)continue;let a=Y(n.flat,i);if(Math.hypot(e[0]-a[0],e[1]-a[1])<Y(n.half,i)*.9)return!0}return!1},a=``,o=[];return e.forEach((e,n)=>{i(e,Y(t,n))?(o.length>1&&(a+=s(o)),o=[]):o.push(e)}),o.length>1&&(a+=s(o)),a}function Xe(e,t,n,r,i){let o=B(t,H(i));R(o)<1e-6&&(o=se([0,0,0],t).u),o=z(o);let s=z(B(t,o)),c=Array.from({length:28},(t,r)=>{let c=r/28*Math.PI*2;return a(F(e,F(L(o,n*Math.cos(c)),L(s,n*Math.sin(c)))),i)}),l=a(e,i),u=a(F(e,s),i),d=(u[0]-l[0])*r[0]+(u[1]-l[1])*r[1]>0?28/2:0,f=e=>Array.from({length:15},(t,n)=>Y(c,(e+n)%28));return{ring:c,arc:f(d),inner:f((d+28/2)%28)}}function Ze(e,t,n,r,i,a){let o=e=>(e[0]-t[0])*n+(e[1]-t[1])*r,s=e.map(o),c=Math.min(i,a),l=Math.max(i,a),u=[],d=(t,n)=>{let r=(n-Y(s,t))/(Y(s,t+1)-Y(s,t)||1e-9),i=Y(e,t),a=Y(e,t+1);return[i[0]+(a[0]-i[0])*r,i[1]+(a[1]-i[1])*r]};for(let t=0;t<e.length;t++){let n=Y(s,t);if(n>=c&&n<=l&&u.push(Y(e,t)),t<e.length-1)for(let e of[c,l])(n-e)*(Y(s,t+1)-e)<0&&u.push(d(t,e))}return u.map(e=>[e,o(e)]).sort((e,t)=>i>a?t[1]-e[1]:e[1]-t[1]).map(([e])=>e)}function Qe(e,t,n,r,i){let a=t.map(([t,n])=>[Math.max(0,Math.min(t,n)),Math.min(e,Math.max(t,n))]).filter(([e,t])=>t-e>1e-6).sort((e,t)=>e[0]-t[0]),o=[],s=0;for(let[e,t]of a)e>s+1e-6&&o.push([s,e,s>0,!0]),s=Math.max(s,t);let c=a[a.length-1];e>s+1e-6&&o.push([s,e,s>0,a.length>0&&c[1]>=e-1e-6]);let l=[];for(let[e,t,i,a]of o){let o=[e,...n.filter(n=>n>e+1e-6&&n<t-1e-6).sort((e,t)=>e-t),t];for(let e=0;e<o.length-1;e++){let t=Y(o,e),n=Y(o,e+1),s=Math.max(1,Math.ceil((n-t)/r-1e-9));for(let r=0;r<s;r++)l.push({from:t+(n-t)*r/s,to:t+(n-t)*(r+1)/s,open0:!(e===0&&r===0),open1:!(e===o.length-2&&r===s-1),gap0:e===0&&r===0&&i,gap1:e===o.length-2&&r===s-1&&a})}}let u=l[0],d=l[l.length-1];return i&&!a.length&&u&&d&&(u.open0=!0,d.open1=!0),l}function $e(e,t,n,{maxLength:r=30,spacing:i=2.2,closed:o=!1,breaks:c=[],gaps:l=[],caps:u=!0,stripes:d=`auto`}={}){let f=He(e,i),p=Ue(f),m=typeof t==`function`?t:()=>t,h=U(n),g=d===`auto`?Math.max(...Array.from({length:33},(e,t)=>m(t/32)))*h>1.3:!!d,_=.5,v=[],y=o&&!l.length,b=e=>y?(e%p+p)%p:Math.max(0,Math.min(p,e)),x=Math.max(.05,Math.min(i,p/4)*.5),S=(e,t,r)=>{let i=a(We(f,b(e-x)),n),o=a(We(f,b(e+x)),n),s=o[0]-i[0],c=o[1]-i[1],l=Math.hypot(s,c)||1;return s/=l,c/=l,{p:t,nx:-c,ny:s,half:r}},C=(e,t)=>{let r=J(f,Math.max(0,e),Math.min(p,t));y&&e<0&&(r=[...J(f,p+e,p),...r.slice(1)]),y&&t>p&&(r=[...r,...J(f,0,t-p).slice(1)]);let i=y?e:Math.max(0,e),o=r.map((e,t)=>(t>0&&(i+=R(I(e,Y(r,t-1)))),i)),s=r.map(e=>a(e,n)),c=o.map(e=>m(y?b(e)/p:Math.min(1,Math.max(0,e/p)))*h),l=s.map((e,t)=>S(Y(o,t),e,Y(c,t)));return{points:r,flat:s,widths:c,frames:l,along:o}},w=C(0,p),T={flat:w.flat,half:w.widths,along:w.along},E=Math.max(...w.widths)/h*1.5,D=Array.isArray(u)?u:[!!u,!!u];for(let e of Qe(p,l,c,r,o)){let t=e.open0&&(e.from>0||y),r=e.open1&&(e.to<p||y),i=C(t?e.from-_:e.from,r?e.to+_:e.to);if(i.points.length<2)continue;let a=t||r?C(t?e.from-2*_:e.from,r?e.to+2*_:e.to):i,{points:o,flat:c,widths:l,frames:u,along:d}=i,m=Je(u),b=a===i?m:Je(a.frames),x=Ke([...m.left,...m.right.slice().reverse()]),S=y?s(m.left)+s(m.right):Ye(m.left,d,T,E)+Ye(m.right,d,T,E),w=[!e.open0&&!y&&(e.from<=1e-6||e.gap0),!e.open1&&!y&&(e.to>=p-1e-6||e.gap1)],O=[w[0]&&(e.gap0||D[0]),w[1]&&(e.gap1||D[1])],k=Math.sign(qe([...m.left,...m.right.slice().reverse()])),A=[null,null];[0,1].forEach(e=>{if(!O[e])return;let t=e?o.length-1:0,r=e?o.length-2:1,i=z(I(Y(o,e?t:r),Y(o,e?r:t))),a=e?i:L(i,-1),d=[Y(c,r)[0]-Y(c,t)[0],Y(c,r)[1]-Y(c,t)[1]],{ring:f,arc:p,inner:m}=Xe(Y(o,t),i,Y(l,t)/h,d,n),g=Math.sign(qe(f))===k?f:f.slice().reverse();x+=Ke(g),S+=s(p);let _=P(a,H(n))>0;_&&(S+=s(m)),A[e]={half:_?m:p,frame:Y(u,t)}});let ee=(e,t,n)=>{let[r,i]=A,a=i?Ze(...et(i,n,!1)):[],o=r?Ze(...et(r,n,!0)):[];return Ke([...e,...a,...t.slice().reverse(),...o])},j=({nx:e,ny:t})=>e*Ge[0]+t*Ge[1];v.push({mid:We(f,(e.from+e.to)/2),body:x,shine:ee(b.shineA,b.shineB,e=>[e.half*.44*j(e)+e.half*.24,e.half*.44*j(e)-e.half*.24]),shade:ee(b.shadeA,b.shadeB,e=>[-e.half*.62*j(e)+e.half*.2,-e.half*.62*j(e)-e.half*.2]),edges:S,wide:g,points:o,radii:l.map(e=>e/h),ends:w,from:e.from,to:e.to})}return v}function et(e,t,n){let[r,i]=t(e.frame);return[e.half,e.frame.p,e.frame.nx,e.frame.ny,n?i:r,n?r:i]}function tt(e,{tone:t=`hi`}={}){let n=e.wide?`<path class="tb-shine" d="${e.shine}"/><path class="tb-shade" d="${e.shade}"/>`:``;return`<g class="tb"><path class="tb-body" d="${e.body}"/>${n}<path class="iso-line tb-edge" data-tone="${t}" d="${e.edges}"/></g>`}var nt=e(n(),1),rt=r();function it(e,t){let n=[];for(let r=1;r<t.length;r++){let i=t[r-1],a=t[r],o=[a[0]-i[0],a[1]-i[1],a[2]-i[2]],s=Math.hypot(...o);if(!s)continue;let c=Math.max(0,Math.min(1,((e[0]-i[0])*o[0]+(e[1]-i[1])*o[1]+(e[2]-i[2])*o[2])/s**2));Math.hypot(i[0]+o[0]*c-e[0],i[1]+o[1]*c-e[1],i[2]+o[2]*c-e[2])<.05&&n.push([o[0]/s,o[1]/s,o[2]/s])}return n}function at(e,t){let n=[t[0]-e[0],t[1]-e[1],t[2]-e[2]],r=Math.hypot(...n)||1;return[n[0]/r,n[1]/r,n[2]/r]}function ot(e,t){for(let n=1;n<t.length;n++){let r=t[n-1],i=t[n],a=[i[0]-r[0],i[1]-r[1],i[2]-r[2]],o=a[0]**2+a[1]**2+a[2]**2,s=o?Math.max(0,Math.min(1,((e[0]-r[0])*a[0]+(e[1]-r[1])*a[1]+(e[2]-r[2])*a[2])/o)):0;if(Math.hypot(r[0]+a[0]*s-e[0],r[1]+a[1]*s-e[1],r[2]+a[2]*s-e[2])<.1)return!0}return!1}function st(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n]}function ct(e,t,n){let r=[],i=0,a=n(e);for(let o=1;o<=16;o++){let s=o/16,c=n(st(e,t,s));if(c!==a){let[o,c]=[i,s];for(let r=0;r<24;r++){let r=(o+c)/2;n(st(e,t,r))===a?o=r:c=r}r.push([o,c])}[i,a]=[s,c]}return r}function lt(e,t,n){let{G:r,P:i,S:a,cyl:o}=e,{routes:s,posts:c,z:l,flowFromY:u=-1/0,flowAloftBeforeY:d=-1/0}=t,{slot:f,glide:p}=typeof n==`number`?{slot:(e,t)=>t&&e[1]>=n?1:0,glide:e=>e[1]>u&&e[1]<n-2&&(e[2]<3||e[1]<d)}:{slot:e=>n.layer(e),glide:n.glide},m=e=>e.flatMap((t,n)=>{let r=e[n-1];return r?[...ct(r,t,p).map(([e,n])=>st(r,t,p(st(r,t,e))?e:n)),t]:[t]}),h=e=>{let t=[],n=0;return e.forEach((r,i)=>{let a=e[i-1];if(!a)return;let o=Math.hypot(r[0]-a[0],r[1]-a[1],r[2]-a[2]);for(let[e,i]of ct(a,r,e=>f(e,!0)))t.push(n+o*((e+i)/2));n+=o}),t},g=[[]],_=(e,t,n=!1)=>{for(;g.length<=e;)g.push([]);n?g[e]?.unshift(t):g[e]?.push(t)};for(let[e,t,n,r=l,i=-14]of c)_(f([e,t,Math.max(i,0)],!1),o(e,t,2.6,i,1,{tone:`lo`},18)+o(e,t,.9,i+1,r-n-2-i,{tone:`mid`,crease:`none`},12)+o(e,t,1.8,r-n-1,1,{tone:`mid`},16));let v=[],y=(e,t)=>{let n=e.pts.length,r=e.pts[t?n-1:0],i=at(r,e.pts[t?n-2:1]),a=0;for(let t of s)if(t!==e)for(let e of it(r,t.pts)){if(Math.abs(e[0]*i[0]+e[1]*i[1]+e[2]*i[2])>.99)return{kind:`on`};a=Math.max(a,t.r)}return a?{kind:`tee`,run:a}:{kind:`free`}},b=new Map(s.map(e=>[e,[y(e,0),y(e,1)]])),x=s.flatMap(e=>[0,1].flatMap(t=>b.get(e)?.[t].kind===`tee`?[e.pts[t?e.pts.length-1:0]]:[])),S=e=>f(x.find(t=>ot(t,e.points))??e.mid,!0);for(let e of s){let n=b.get(e),o=[!e.fromStub&&n[0].kind===`free`,n[1].kind===`free`],s=[...e.pts],c=[n[0].kind===`tee`,n[1].kind===`tee`],l=r.fillet(s,e.bend??4.5,8,{P:i,tube:e.r}),u=$e(l,e.r,i,{maxLength:24,caps:o,breaks:h(l)}),d=t=>`<g class="sf-pipe" data-medium="${e.medium}" data-route="${e.id}">${t}</g>`;if(t.flanged)for(let t of[0,1]){let n=t?u[u.length-1]:u[0];if(!n||!o[t]||e.bare?.[t]||e.blind?.[t])continue;let s=l[t?l.length-1:0],c=l[t?l.length-2:1],p=r.frameAlong(s,[c[0]-s[0],c[1]-s[1],c[2]-s[2]]);_(f(n.mid,!0),d(a(r.disc(0,1.6,e.r+2,p,i),{tone:`mid`})))}u.forEach((t,n)=>{let r=[0,1].filter(e=>n===(e?u.length-1:0)),i=S(t);_(i,`${d(tt(t,{tone:`mid`}))}<g data-fl="${e.id}" data-fs="${i}"></g>`,r.some(e=>c[e]))});for(let t of[0,1]){let n=t?u[u.length-1]:u[0];if(!n||!e.blind?.[t])continue;let o=l[t?l.length-1:0],s=l[t?l.length-2:1],c=r.frameAlong(o,[s[0]-o[0],s[1]-o[1],s[2]-o[2]]);_(f(n.mid,!0),d(a(r.disc(-1.2,1.6,e.r+2,c,i),{tone:`mid`})),M(o,i)<M(s,i))}let g=m(l).filter(p);v.push({id:e.id,medium:e.medium,r:e.r,path:g,reverse:e.reverse??!1,capped:[o[0]&&g[0]===l[0],o[1]&&g.at(-1)===l.at(-1)],slots:u.map(e=>[e.to,S(e)])})}for(let t of s){let n=null;for(let e=1;e<t.pts.length;e++){let r=t.pts[e-1],i=t.pts[e],a=Math.hypot(i[0]-r[0],i[1]-r[1],i[2]-r[2]);r[2]<3&&i[2]<3&&(!n||a>n.len)&&(n={a:r,b:i,len:a})}if(!n)continue;let r=[(n.b[0]-n.a[0])/n.len,(n.b[1]-n.a[1])/n.len,0];t.reverse&&(r=[-r[0],-r[1],-r[2]]);let a=[-r[1],r[0],0];for(let o of[.3,.62]){let s=[n.a[0]+(n.b[0]-n.a[0])*o,n.a[1]+(n.b[1]-n.a[1])*o,n.a[2]+(n.b[2]-n.a[2])*o];s[2]+=t.r*.98;let c=(t,n)=>e.k.iso([s[0]+r[0]*t+a[0]*n,s[1]+r[1]*t+a[1]*n,s[2]],i),l=[c(1.8,0),c(-1.2,t.r*.75),c(-.4,0),c(-1.2,-t.r*.75)];_(f(s,!1),`<path class="sf-chevron" d="M${l.map(([e,t])=>`${e.toFixed(2)} ${t.toFixed(2)}`).join(`L`)}Z"/>`)}}let C=new Map;for(let t of s)t.pts.forEach((n,r)=>{let[a,o]=e.k.iso(n,i),s=r===0?`start`:r===t.pts.length-1?`end`:`bend${r}`,c=`${Math.round(a/3)},${Math.round(o/3)}`;C.has(c)||C.set(c,{name:`${t.id}-${s}`,x:a,y:o})});let w=g.map(e=>e.join(``));return typeof n==`number`?{off:w[0]??``,on:w[1]??``,layers:[],flows:v,joints:[...C.values()]}:{off:w[0]??``,on:``,layers:w,flows:v,joints:[...C.values()]}}function ut(e){let t=t=>a(t,e),n=(e,t)=>te(e,t),r=(e,t)=>m(e,t),p=(e,t)=>l(e,t),g=(t,r,i,a={tone:`mid`},o=3,s=.5)=>n(c(t,r,i,e,o,s),a),v=(t,r,i,a,o,s={tone:`mid`},c=28)=>n(A(t,r,i,a,o,e,c),s),y=t=>[...t].sort((t,n)=>M([t[0],t[1],0],e)-M([n[0],n[1],0],e)),b=t=>u([0,t],0,e,`left`),x=(e,n)=>p(e.map(([e,r])=>t([e,r,n])),{size:.45}),C=(e,t,n,r,a)=>s(i({x:e,y:t,w:n-e,d:r-t,r:a},4).map(([e,t])=>[e,-t]),!0);function w(r,i,a){let o=r.x+r.w/2,l=r.y+r.d/2,u=Math.min(r.w,r.d)*.2;return n(c(r,i,a,e,2,.3),{tone:`hi`,lit:!0})+`<path class="sf-bore" d="${s(S(o,l,u,20).map(([e,n])=>t([e,n,i+a])),!0)}"/>`}function E(e,t,n,r,i,a){let o=C(n,i,r,a,1.2),s=`<path class="sf-hmi-head" d="M${n} ${-a}H${r}V${-(a-2.6)}H${n}Z"/><path class="sf-hmi-tick" d="M${n+1.6} ${-(a-1.3)}H${n+Math.min(10,(r-n)*.4)}"/>`,c=[.33,.66].map(e=>`<path class="sf-hmi-grid" d="M${n+1.4} ${-(i+3.4+(a-i-6.6)*e)}H${r-1.4}"/>`).join(``),l=`<path class="sf-spark-fill" data-spark-fill="${e}" d=""/><path class="sf-spark" data-spark="${e}" data-box="${n+1.4},${r-1.4},${i+3.4},${a-3.4}" d=""/>`,u=`<path class="sf-bar-track" d="M${n+1.4} ${-(i+2.2)}H${r-1.4}V${-(i+1.2)}H${n+1.4}Z"/><path class="sf-bar" data-bar="${e}" data-x="${n+1.4},${r-1.4},${i+1.2},${i+2.2}" d=""/>`,d=`<circle class="sf-hmi-dot" data-state-dot="${e}" cx="${r-1.6}" cy="${-(a-1.3)}" r="0.75"/>`;return`<g transform="${b(t)}"><clipPath id="clip-${e}"><path d="${o}"/></clipPath><path class="sf-hmi" d="${o}"/><g clip-path="url(#clip-${e})">${s}${c}${l}${u}${d}</g><path class="iso-line" data-tone="lo" d="${o}"/></g>`}function D(e,n,r,i){let a=[`<path class="sf-glow" data-glow="${e}" d="${s(S(n,r,9,40).map(([e,n])=>t([e,n,i])),!0)}"/>`,v(n,r,2.6,i,1.4,{tone:`mid`},20),v(n,r,1,i+1.4,3,{tone:`mid`,crease:`none`},14)];return[`g`,`a`,`r`].reverse().forEach((t,o)=>{a.push(`<g class="sf-lamp" data-andon="${e}" data-c="${t}">${v(n,r,2.4,i+4.4+o*3.6,3.6,{tone:`mid`},20)}</g>`)}),a.push(v(n,r,2.6,i+15.2,1,{tone:`mid`},20)),a.join(``)}function O(t,i=10){let a=[`<path class="iso-halo" d="${j(t,-i-4,i,e)}"/>`];for(let[e,n]of y(_(t,18)))a.push(v(e,n,6,-i-4,1.4,{tone:`lo`}),v(e,n,4.6,-i-2.6,2.6,{tone:`mid`}));a.push(n(c(t,-i,i,e,8,1.4),{tone:`mid`})),a.push(r(o(h(t,5),0,e,8),{tone:`lo`}));let s=_(t,10);return a.push(r(s.map(([t,n])=>T(t,n,2,0,e,16)).join(``),{tone:`lo`}),x(s,0)),a.join(``)}function k(t,n,i,a,s=5){let c=Math.ceil(a/s),l={x:n,y:i,w:s*7+4,d:c*12+4,r:1.5},u=[g(l,0,5,{tone:`mid`},3,.4)],d=[];for(let e=0;e<a;e++){let t=e%s,r=Math.floor(e/s);d.push({i:e,plan:{x:n+2+t*7+.6,y:i+2+r*12+.6,w:5.8,d:10.8,r:.6}})}u.push(r(d.map(t=>o(t.plan,5,e,2)).join(``),{tone:`faint`}));let f=[...d].sort((t,n)=>M([t.plan.x,t.plan.y,0],e)-M([n.plan.x,n.plan.y,0],e));for(let e of f)u.push(`<g class="sf-part" data-slot="${t}:${e.i}">${w(h(e.plan,.8),5,4)}</g>`);return u.push(x([[l.x+1.4,l.y+1.4],[l.x+l.w-1.4,l.y+1.4]],5)),u.join(``)}function ne(t,i,a,o,s=20){let c=[],l=[],u={x:t,y:a-3,w:i,d:3,r:.8},f={x:t,y:a+o,w:i,d:3,r:.8};for(let e of[t+5,t+i-8])c.push(g({x:e,y:a-2.5,w:3,d:3,r:.6},0,s,{tone:`mid`},2,0));c.push(g({x:t+5,y:a-2.5,w:i-10,d:2,r:.4},4,2,{tone:`lo`},2,0)),c.push(g(u,s-2,6,{tone:`mid`},2,.3));let p=t=>n(Pe(0,o,1.5,se([t,a,s-.5],[0,1,0]),e),{tone:`mid`});c.push(p(t+2.5));let m=g({x:t+1,y:a,w:i-2,d:o,r:1},s-2,3,{tone:`lo`,crease:`faint`},3,0)+p(t+i-2.5);l.push(g(f,s-2,6,{tone:`mid`},2,.3));for(let e of[t+5,t+i-8])l.push(g({x:e,y:a+o+.5,w:3,d:3,r:.6},0,s-2,{tone:`mid`},2,0));l.push(g({x:t+5,y:a+o+1,w:i-10,d:2,r:.4},4,2,{tone:`lo`},2,0)),l.push(x([[t+4,a+o+1.5],[t+i/2,a+o+1.5],[t+i-4,a+o+1.5]],s+4));let h=[];for(let n=t+6;n<=t+i-6;n+=6)h.push(d([n,a+o+3,s+1],.7,`y`,e));return l.push(r(h.join(``),{tone:`lo`})),{back:c.join(``),belt:m,front:l.join(``),top:s+1}}function N(t,n,i,o,c=8){let l=o+4,u=f(n,i,c*.78,c>5?40:16,c>5?5:4,l,[c*.12,c*.27],e,-Math.PI*.75,Math.PI*1.5);return[v(n,i,c,o,4,{tone:`mid`,crease:`lo`},48),`<path class="sf-dial-face" d="${s(S(n,i,c*.86,48).map(([t,n])=>a([t,n,l],e)),!0)}"/>`,r(T(n,i,c*.82,l,e,48),{tone:`lo`}),r(u.minor,{tone:`lo`}),r(u.major,{tone:`mid`}),r(T(n,i,1,l,e,12),{tone:`mid`}),`<path class="iso-line sf-needle" data-tone="lit" data-free="start" data-needle="${t}" data-at="${n},${i},${l},${c}" d=""/>`].join(``)}function re(e,t,n,r,i){let a=C(t,n,t+r,n+i,.6),o=[.62,.3].map((e,a)=>`<path class="iso-line" data-tone="lo" data-free="" d="M${t+2.4} ${-(n+i*e)}H${t+r*(a?.55:.8)}"/>`).join(``);return`<g transform="${b(e)}"><path class="sf-plate" d="${a}"/>${o}<path class="iso-line" data-tone="lo" d="${a}"/><circle class="sf-screw" cx="${t+r-1.2}" cy="${-(n+i/2)}" r="0.4"/></g>`}return{k:ee,G:Ie,P:e,at:t,S:n,L:r,D:p,slab:g,cyl:v,byDepth:y,front:b,screws:x,workpiece:w,faceRule:re,hmi:E,andon:D,plinth:O,buffer:k,conveyor:ne,dial:N}}function dt(e,t,n,r=`mid`,i=3,a=``,o=!0){return`<g class="sf-pipe" data-medium="${a}">${$e(e.G.fillet(t,i,12,{P:e.P,tube:n}),n,e.P,{maxLength:400,caps:o}).map(e=>tt(e,{tone:r})).join(``)}</g>`}function ft(e,t,n,r,i,a,o,s=``){return`<g transform="${e.front(t)}"><path class="${o}" ${s} d="M${n} ${-a}H${i}V${-r}H${n}Z"/></g>`}function pt(e,t,n,r){let{cyl:i}=e;return`<g class="sf-yellow">${i(t,n,2.4,r,.8,{tone:`mid`},20)}</g><g class="sf-red">${i(t,n,1.3,r+.8,1,{tone:`mid`},14)}${i(t,n,1.9,r+1.8,1.2,{tone:`mid`},18)}</g>`}function mt(e,t){let{P:n,L:r}=e;return[`<path class="iso-halo" d="${j(t,-21,7,n)}" style="opacity:.7"/>`,e.S(c(t,-21,7,n,10,1.6),{tone:`lo`,inner:r(p(t,-17,n,10),{tone:`faint`})}),r(o(h(t,6),-14,n,10),{tone:`faint`})].join(``)}function ht(e,t,n,r){return e.cyl(t,n,r+2.2,0,.8,{tone:`mid`},24)+e.screws([0,1,2,3].map(e=>[t+Math.cos(e*1.571+.785)*(r+1.3),n+Math.sin(e*1.571+.785)*(r+1.3)]),.8)}function gt(e,t,n,r){let{P:i,k:a,L:o,cyl:s}=e,c=[s(t,n,3.8,r,6,{tone:`mid`,inner:o(a.sideArc(t,n,3.8,r+3,i,20),{tone:`faint`})},24)];return c.push(s(t,n,4.6,r-.8,.8,{tone:`mid`},24),s(t,n,4.6,r+6,.8,{tone:`mid`},24)),c.join(``)}function _t(e,t,n,r){let{k:i,G:a,P:o,S:s,L:c}=e,l=a.frameAlong([t,n,r+3],[0,1,0]),u=[];u.push(s(a.disc(3.6,5.8,2.6,l,o),{tone:`mid`}),s(a.disc(5.8,10.6,.9,l,o),{tone:`mid`}),s(a.disc(10.6,12.2,1.7,l,o),{tone:`mid`}),s(a.disc(11.2,12,4.4,l,o),{tone:`lo`}));let d=n+11.4,f=[t,d,r+3],p=[0,1,2].map(e=>i.segment(f,[t+Math.cos(e*2.094)*4.2,d,r+3+Math.sin(e*2.094)*4.2],o)).join(``);return u.push(`<g class="sf-wheel">${c(i.sideRing(f,4.4,`y`,o)+i.sideRing(f,3.8,`y`,o)+p,{tone:`mid`})}</g>`),u.join(``)}function vt(e,t,n,r,i){let a=Array.from({length:7},(e,t)=>{let a=-Math.PI*.75+t/6*Math.PI*1.5,o=e=>`${(n+Math.sin(a)*i*e).toFixed(2)} ${(-r-Math.cos(a)*i*e).toFixed(2)}`;return`M${o(5/7)}L${o(.881)}`}).join(``);return`<g transform="${e}"><circle class="sf-dial-face" cx="${n}" cy="${-r}" r="${i}"/><circle class="iso-line" data-tone="mid" fill="none" cx="${n}" cy="${-r}" r="${(i*1.095).toFixed(2)}"/><path class="iso-line" data-tone="lo" d="${a}"/><path class="iso-line sf-needle" data-tone="lit" data-needle="${t}" data-face="${n},${r},${i}" d=""/><circle class="iso-line" data-tone="mid" cx="${n}" cy="${-r}" r="0.5"/></g>`}var yt=[140,-130,22],bt=[126,-130,64],xt=[126,-130,56.8],X=3.2,St={x:46,y:-150,w:96,d:40,r:3};function Ct(e,t,n=`coolant`,r=!1){let{k:i,G:a,P:o,S:s,L:c,D:l,slab:u,cyl:d,hmi:f,screws:p,faceRule:m}=e,h=[],g=-130,_=49.2,v={x:46,y:g-20,w:96,d:40,r:2},y=g-24;if(r||h.push(s(a.disc(-1.6,0,X+2,a.frameAlong([126,y,70],[0,1,0]),o),{tone:`mid`}),dt(e,[bt,[126,g,70],[126,y,70]],X,`mid`,6,n,[!1,!1])),h.push(u(v,0,5,{tone:`mid`},3,.5)),h.push(c(i.planOutline(i.insetPlan(v,2.4),5,o,3),{tone:`faint`}),p(i.corners(v,4),5)),!r){let e=70-X;h.push(d(126,y+7,2.4,5,1,{tone:`lo`},18),d(126,y+7,1.2,6,e-7,{tone:`mid`,crease:`none`},12),d(126,y+7,1.8,e-1,1,{tone:`mid`},16))}let b=a.frameAlong([52,g,20],[1,0,0]);h.push(u({x:56,y:g-10,w:30,d:20,r:1},5,6,{tone:`lo`},2,0)),h.push(s(a.solidOf([[0,10],[2,11],[36,11],[38,10]],b,o),{tone:`mid`,inner:i.fadedSvg(a.ribsOf(b,2,36,11,22,o,{fade:[.1,.55],seams:!0}),{tone:`lo`})})),h.push(u({x:64,y:g+8,w:10,d:6,r:1},24,6,{tone:`mid`},2,.3)),h.push(s(a.disc(38,42,3,b,o),{tone:`mid`})),h.push(s(a.disc(42,52,6.5,b,o),{tone:`mid`,crease:`lo`})),h.push(`<path class="iso-line" data-tone="lo" data-spin="pump" data-shaft="52,${g},20" data-radius="6.5" data-span="94.3,103.7" data-vapour="136,${g},22" data-bearing="86,${g},32" d=""/>`),h.push(u({x:112,y:g-10,w:16,d:20,r:1},5,4,{tone:`lo`},2,0));let x=a.frameAlong([116,g-8,22],[0,1,0]);h.push(s(a.solidOf([[0,14],[16,14]],x,o),{tone:`mid`,inner:c(a.arcOf(x,8,14,o),{tone:`faint`})})),h.push(s(a.disc(-2,0,15.4,x,o),{tone:`mid`})),h.push(l(a.dotsOf(x,16,12.2,10,o,{fade:[.04,.42]}),{size:.4})),h.push(d(126,g,5,32,14,{tone:`mid`},24)),h.push(d(126,g,7.4,46,2.4,{tone:`mid`},28)),h.push(l(a.dotsOf(a.frameAlong([126,g,48.4],[0,0,1]),0,5.8,6,o,{all:!0}),{size:.45}));let S=a.frameAlong([132,g-0,22],[1,0,0]);return h.push(s(a.disc(0,6,5,S,o),{tone:`mid`}),s(a.disc(6,8,7.4,S,o),{tone:`mid`})),h.push(l(a.dotsOf(S,8,5.9,6,o,{all:!0}),{size:.4})),h.push(gt(e,126,g,_)),h.push(d(126,g,4.6,_+6.8,.8,{tone:`mid`},24),dt(e,[xt,[126,g,bt[2]]],X,`mid`,2,n,[!1,!1]),_t(e,126,g,_)),r||(h.push(ht(e,150,g,3.4)),h.push(dt(e,[[140,g,22],[150,g,22],[150,g,.8]],3.4,`mid`,5,n))),h.push(u({x:58,y:g+22,w:38,d:8,r:1},0,24,{tone:`mid`},2,.4)),h.push(f(t,g+30,60,94,7,22)),h.push(m(g+30,60,3,22,2.4)),h.join(``)}function wt(e,t,n,r=1){let[i,o]=a(t,e),[s,c]=a(n,e),l=e=>(Math.round(e*1e3)/1e3).toString();return`translate(${l(s-r*i)} ${l(c-r*o)}) scale(${l(r)})`}var Tt=e=>[e[0],e[1],0];function Et({from:e=[0,0,0],to:t,scale:n=1,children:r}){let{P:i}=x();return(0,rt.jsx)(`g`,{transform:wt(i,e,t,n),children:r})}function Dt({build:e,intro:t}){let n=x();return(0,rt.jsx)(b,{html:(0,nt.useMemo)(()=>e(n),[n,e]),intro:t})}function Ot(e,t){let n=x();return(0,nt.useMemo)(()=>lt(n,e,t),[n,e,t])}var Z=(e,t,...n)=>e.faults(t).some(e=>n.includes(e));function kt(e,t){let n=k(e,`[data-fx-slot="${t}"]`);if(n)return n;let r=E(e,`[data-asset="${t}"]`);return D(`g`,{class:`sf-fx`},r[r.length-1])}function At(e,t,n,r){return Array.from({length:t},(t,i)=>({el:D(n,{class:r},e),seed:i*.618%1}))}function jt(e){for(let t of e)v(t.el,`0`)}function Mt(e,t,n){e.setAttribute(`cx`,t.toFixed(1)),e.setAttribute(`cy`,n.toFixed(1))}function Nt(e){let t=new Map;return(n,r,i)=>{let a=t.get(n);a||(a=E(e,`[data-asset="${n}"] > *:not(.iso-halo):not(.sf-alarm):not(.sf-fx)`),t.set(n,a));let o=r?`${(Math.sin(i*71)*r).toFixed(2)}px ${(Math.cos(i*53)*r*.6).toFixed(2)}px`:``;for(let e of a)e.style.translate!==o&&(e.style.translate=o)}}function Pt(e,t=`hiss`){let n=t!==`hiss`,r=At(e,8,`circle`,t===`smoke`?`sf-hiss sf-smoke`:`sf-hiss`);return{draw(e,i,o,s,c){if(!e){jt(r);return}for(let e of r){let r=(i*(n?.9:2.2)+e.seed)%1,l=Math.sin(i*7+e.seed*20)*.8,[u,d]=a([s[0]+c[0]*r*10+l,s[1]+c[1]*r*8,s[2]+r*(n?5:2)],o);Mt(e.el,u,d),e.el.setAttribute(`r`,((.5+r*2.6)*o.scale*.5).toFixed(2)),v(e.el,(Math.sin(Math.PI*r)*(n?.6:.55)).toFixed(2)),e.el.classList.toggle(`sf-frost`,t===`frost`)}}}}function Ft(e,t=4,n=5){let r=At(e,t,`path`,`sf-heat`);return{draw(e,t,i,o){r.forEach((s,c)=>{if(!e){v(s.el,`0`);return}let l=(t*.35+c/r.length)%1,u=o[0]+c*n,d=o[2]+l*22,f=Array.from({length:7},(e,n)=>a([u+Math.sin(t*3+n*.9+c)*1.4,o[1],d+n*2.2],i));s.el.setAttribute(`d`,`M${f.map(([e,t])=>`${e.toFixed(1)} ${t.toFixed(1)}`).join(`L`)}`),v(s.el,(Math.sin(Math.PI*l)*.55).toFixed(2))})}}}var Q=Math.PI*2,It=e=>e*e*(3-2*e),$=e=>Math.max(0,Math.min(1,e));function Lt(e,t,n,r,i){return i?t:e+(t-e)*(1-Math.exp(-n/r))}function Rt(e,t,n,r){let i=s(S(e.x+e.w/2,e.y+e.d/2,Math.min(e.w,e.d)*.2,20).map(([e,i])=>a([e,i,t+n],r)),!0);return`${te(c(e,t,n,r,2,.3),{tone:`hi`,lit:!0})}<path class="sf-bore" d="${i}"/>`}function zt(e,t,n,r,i=28){return`M${Array.from({length:i},(o,s)=>{let c=s/i*Math.PI*2,[l,u]=a([e[0]+Math.cos(c)*t,e[1]+Math.sin(c)*t,n],r);return`${l.toFixed(1)} ${u.toFixed(1)}`}).join(`L`)}Z`}var Bt={x:-3.5,y:10,w:7,d:10,r:1},Vt=new WeakMap;function Ht(e){let t=Vt.get(e);if(!t){let n=M([0,0,0],e);t=[M([1,0,0],e)-n,M([0,1,0],e)-n,M([0,0,1],e)-n],Vt.set(e,t)}return t}function Ut(e,t,n,r,i,a,o,s){let c=Ht(e),l=``;for(let u=0;u<s;u++){let d=o+u*Q/s,f=t===`z`?[Math.cos(d),Math.sin(d),0]:[0,Math.cos(d),Math.sin(d)];if((f[0]??0)*c[0]+(f[1]??0)*c[1]+(f[2]??0)*c[2]<.15)continue;let p=e=>t===`z`?[n[0]+r*(f[0]??0),n[1]+r*(f[1]??0),e]:[e,n[1]+r*(f[1]??0),n[2]+r*(f[2]??0)];l+=w(p(i),p(a),e)}return l}function Wt(e,[t=0,n=0,r=0,i=0],a){let o=``;for(let s=0;s<5;s++){let c=a+s*Q/5;o+=g([t+Math.cos(c)*2.4,n+Math.sin(c)*2.4],[t+Math.cos(c+.35)*i,n+Math.sin(c+.35)*i],r,e)}return o}function Gt(e,[t=0,n=0,r=0,i=0],o,s,c=6){let l=(i,o,c)=>{let l=Math.cos(c)*i-Math.sin(c)*o,u=Math.sin(c)*i+Math.cos(c)*o,[d,f]=a(s===`x`?[t,n+l,r+u]:s===`y`?[t+l,n,r+u]:[t+l,n+u,r],e);return`${d.toFixed(1)} ${f.toFixed(1)}`},u=``;for(let e=0;e<c;e++){let t=o+e*Q/c;u+=`M${l(3.4,1.8,t)}L${l(i,3.4,t)}L${l(i,-1.4,t)}L${l(3.4,-1.8,t)}Z`}return u}function Kt(e){return e.closest(`[data-asset]`)?.dataset.asset??``}function qt(e){let[t=0,n=0,r=0]=O(e);return[t,n,r]}var Jt=new Set([`press`]);function Yt(e,t){let{svg:n,P:r,feed:i}=e,a=(e,t,n,i,a)=>{let o=-Math.PI*.75+$(a)*Math.PI*1.5;return g([e-Math.sin(o)*i*.22,t+Math.cos(o)*i*.22],[e+Math.sin(o)*i*.7,t-Math.cos(o)*i*.7],n+.2,r)},o=E(n,`[data-needle]`).map(e=>({n:e,id:e.dataset.needle??``,asset:Kt(e),at:O(e.dataset.at),face:e.dataset.face?O(e.dataset.face):null,v:0,rate:0})),s=E(n,`[data-bar]`).map(e=>({n:e,id:e.dataset.bar??``,box:O(e.dataset.x),v:0})),c=E(n,`[data-spark]`).map(e=>({n:e,id:e.dataset.spark??``,fill:k(n,`[data-spark-fill="${e.dataset.spark}"]`),box:O(e.dataset.box),hist:[]})),l=NaN;return{draw(n,r){let u=e.reducedMotion();for(let e of o){let i=$(t.needle(e.id,e.asset));e.rate+=((i-e.v)*90-e.rate*13)*n,e.v+=e.rate*n,u&&(e.v=i);let o=Jt.has(e.id)?Math.sin(r*31+e.id.length)*.003:0;if(e.face){let[t=0,n=0,r=0]=e.face,i=-Math.PI*.75+$(e.v+o)*Math.PI*1.5;y(e.n,`d`,`M${(t-Math.sin(i)*r*.2).toFixed(2)} ${(-n+Math.cos(i)*r*.2).toFixed(2)}L${(t+Math.sin(i)*r*.74).toFixed(2)} ${(-n-Math.cos(i)*r*.74).toFixed(2)}`)}else{let[t=0,n=0,r=0,i=0]=e.at;y(e.n,`d`,a(t,n,r,i,e.v+o))}}for(let e of s){e.v=Lt(e.v,$(t.bar(e.id)),n,.5,u);let[r=0,i=0,a=0,o=0]=e.box;y(e.n,`d`,`M${r} ${-o}H${(r+(i-r)*e.v).toFixed(2)}V${-a}H${r}Z`),y(e.n,`data-s`,e.v>.9&&t.alertsHigh(e.id)?`hi`:null)}let d=i.simTime();if(d!==l&&t.ready()){l=d;for(let e of c){let n=$(t.bar(e.id));if(!e.hist.length)for(let t=0;t<27;t++)e.hist.push(n);e.hist.push(n),e.hist.length>28&&e.hist.shift();let[r=0,i=0,a=0,o=0]=e.box,s=e.hist.map((t,n)=>[r+(i-r)*(n+28-e.hist.length)/27,-(a+.4+t*(o-a-.8))]),c=s.map(([e,t],n)=>`${n?`L`:`M`}${e.toFixed(2)} ${t.toFixed(2)}`).join(``);y(e.n,`d`,c);let l=s[s.length-1],u=s[0];y(e.fill,`d`,l&&u&&s.length>1?`${c}L${l[0].toFixed(2)} ${-a}L${u[0].toFixed(2)} ${-a}Z`:``)}}}}}var Xt=0;function Zt(e,t){let{svg:n,P:r}=e,i=r.scale,o=E(n,`[data-flows]`).map(e=>({el:e,from:Number(e.dataset.depth??-1/0)})).sort((e,t)=>e.from-t.from),s=new Map(E(n,`[data-flows]`).map(e=>[Number(e.dataset.flows),e])),c=new Map;for(let e of E(n,`[data-fl]`))c.set(`${e.dataset.fl}|${e.dataset.fs}`,e);let l=o.length>1&&[...s.keys()].every(Number.isFinite),u=(e,t)=>(e.find(([e])=>t<=e)??e[e.length-1])?.[1]??0,d=(e,t,n,i,a)=>{if(l&&n.length){let t=Math.max(...[i-a,i,i+a].map(e=>u(n,e)));return c.get(`${e}|${t}`)??s.get(t)??o[o.length-1]?.el}let d=M(t,r),f=o[0]?.el;for(let e of o)e.from<=d&&(f=e.el);return f},f=(e,t,n)=>{let i=1;for(;i<e.length-1&&(e[i]??0)<n;)i++;let o=e[i-1]??0,s=(n-o)/((e[i]??0)-o||1),c=t[i-1],l=t[i],[u,d]=a(c,r),[f,p]=a(l,r),m=Math.atan2(p-d,f-u)*180/Math.PI;return m>90&&(m-=180),m<=-90&&(m+=180),[[c[0]+(l[0]-c[0])*s,c[1]+(l[1]-c[1])*s,c[2]+(l[2]-c[2])*s],m]},p=e.flows.filter(e=>e.path.length>1).map(e=>{let t=[0];for(let n=1;n<e.path.length;n++){let r=e.path[n-1],i=e.path[n];t.push((t[n-1]??0)+Math.hypot(i[0]-r[0],i[1]-r[1],i[2]-r[2]))}let r=t[t.length-1]??0;return{f:e,lens:t,L:r,phase:0,speed:0,glints:Array.from({length:Math.max(2,Math.round(r/22))},()=>D(`ellipse`,{class:`sf-glint`,"data-medium":e.medium},(e.group?k(n,`[data-glints="${e.group}"]`):void 0)??o[0]?.el))}}),m=k(n,`defs`)??D(`defs`,{},n),h=new Map;for(let e of p){let t=e.glints[0];if(!t||h.has(e.f.medium))continue;let n=`sf-glint-${Xt++}`,r=getComputedStyle(t).fill,i=D(`radialGradient`,{id:n},m);for(let[e,t]of[[`0`,`0.85`],[`0.45`,`0.5`],[`1`,`0`]]){let n=D(`stop`,{offset:e,"stop-opacity":t},i);n.style.stopColor=r}h.set(e.f.medium,`url(#${n})`)}for(let e of p)for(let t of e.glints)t.style.fill=h.get(e.f.medium)??``;return{draw(n){let s=e.reducedMotion();for(let e of p)e.speed=Lt(e.speed,t(e.f),n,.8,s),s||(e.phase=(e.phase+e.speed*n)%e.L),e.glints.forEach((t,n)=>{let s=(e.phase+n*e.L/e.glints.length)%e.L,c=e.f.reverse?e.L-s:s,[l,u]=f(e.lens,e.f.path,c),[p,m]=a(l,r),[h,g]=e.f.reverse?[e.f.capped[1],e.f.capped[0]]:e.f.capped,_=Math.max(0,Math.min(1,(s-(h?e.f.r:0))/8,(e.L-s-(g?e.f.r:0))/8)),v=e.f.r*i*.35*Math.cos(u*Math.PI/180),y=p+v*Math.sin(u*Math.PI/180),b=m-v*Math.cos(u*Math.PI/180);t.setAttribute(`cx`,y.toFixed(2)),t.setAttribute(`cy`,b.toFixed(2)),t.setAttribute(`rx`,(e.f.r*i*1.35).toFixed(2)),t.setAttribute(`ry`,(e.f.r*i*.55).toFixed(2)),t.setAttribute(`transform`,`rotate(${u.toFixed(2)} ${y.toFixed(2)} ${b.toFixed(2)})`),t.style.opacity=(_*.9*Math.min(1,e.speed/3)).toFixed(2);let x=o.length>1&&!e.f.group?d(e.f.id,l,e.f.slots,c,e.f.r):void 0;x&&t.parentNode!==x&&x.append(t)})}}}function Qt(e,t){let{svg:n}=e,r=E(n,`[data-alarm]`).map(e=>{let t=e.dataset.alarm??``;return{id:t,alarm:e,andon:E(n,`[data-andon="${t}"]`),glow:k(n,`[data-glow="${t}"]`),dot:k(n,`[data-state-dot="${t}"]`)}});return{draw(e){for(let n of r){let r=t(n.id);if(!e)for(let e of n.andon)y(e,`data-on`,e.dataset.c===r?``:null);y(n.alarm,`data-on`,r===`r`?``:null),y(n.glow,`data-c`,e?null:r||null),y(n.dot,`data-s`,r||null)}}}}function $t(e,t){let{svg:n,P:r,feed:i}=e,o=(e,t)=>i.num(e,t),s=e=>{let t=kt(n,e);return{bubbles:At(t,10,`circle`,`sf-bubble`),heat:Ft(t)}},c=E(n,`[data-spin="pump"]`).map(e=>{let t=Kt(e),[n=0,r=0]=O(e.dataset.span);return{el:e,id:t,at:qt(e.dataset.shaft),eye:qt(e.dataset.vapour),r:Number(e.dataset.radius)||0,s0:n,s1:r,rpm:0,spin:0,bearing:qt(e.dataset.bearing),...s(t)}}),l=new Map(c.map(e=>[e.id,e])),u=e=>{let t=i.param(e,`rated_flow`,0);return t>0?$(o(e,`flow_rate`)/t):0};return{draw(n,s,l){let u=e.reducedMotion();for(let e of c){if(e.rpm=Lt(e.rpm,o(e.id,`speed_feedback`),n,.8,u),u||(e.spin+=e.rpm/i.param(e.id,`rated_rpm`,1500)*1.6*Q*n),y(e.el,`d`,Ut(r,`x`,e.at,e.r,e.s0,e.s1,e.spin,8)),!l)continue;let c=Z(i,e.id,`cavitation`);for(let t of e.bubbles){if(!c||u){v(t.el,`0`);continue}let n=(s*1.6+t.seed)%1,[i,o,l]=e.eye,[d,f]=a([i+n*6,o+Math.sin(t.seed*40)*3,l+Math.cos(t.seed*30)*3],r);Mt(t.el,d,f),t.el.setAttribute(`r`,(.35+Math.sin(Math.PI*n)*.6).toFixed(2)),v(t.el,(n<.85?.8:0).toFixed(2))}e.heat.draw(Z(i,e.id,`bearing_wear`,`bearing_seizure`)&&!u,s,r,e.bearing),t(e.id,u?0:Z(i,e.id,`bearing_seizure`)?.7:Z(i,e.id,`cavitation`,`impeller_imbalance`,`bearing_wear`)?.35:0,s)}},flowPu:u,bar(e){return l.has(e)?u(e):void 0}}}function en(e){return e===`off_shift`?``:e===`running`?`g`:e===`down`||e===`fault`||e===`failed`?`r`:`a`}function tn(e,t,n){if(e.faults(t).length)return[`fault`,`r`];let r=e.station(t);if(r)return[r.state,en(r.state)];if(n===`availability`){let n=e.text(t,`availability_state`);if(n!==void 0)return[n,n===`stopped`?``:n===`faulted`?`r`:`g`]}return e.num(t,`run_command`,1)===0?[`stopped`,``]:[`running`,`g`]}function nn(e,t,n){return tn(e,t,n)[1]}export{bt as A,dt as B,kt as C,Et as D,Ot as E,Ct as F,F as G,lt as H,vt as I,I as J,se as K,mt as L,xt as M,X as N,Dt as O,yt as P,pt as R,Mt as S,At as T,Pe as U,ut as V,Fe as W,ne as X,z as Y,Lt as _,Zt as a,Nt as b,qt as c,Wt as d,Gt as f,$ as g,Q as h,Qt as i,St as j,Tt as k,Bt as l,Rt as m,nn as n,Yt as o,Ut as p,L as q,$t as r,Kt as s,tn as t,zt as u,It as v,Z as w,Ft as x,Pt as y,ft as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{S as r,o as i,ot as a,v as o}from"./api-tM5PSXjr.js";import{t as s}from"./useQuery-smgfSdOx.js";import{n as c}from"./chunk-OE4NN4TA-DBWZidbW.js";import{C as l,_ as u,d,f,g as p,w as m}from"./format-Bx7DF-TB.js";import{t as h}from"./utils-XFKvwlFT.js";import{t as g}from"./arrow-up-right-CwPw_2U1.js";import{n as _,t as v}from"./chevron-right-CrNKVFcI.js";import{i as y,r as b}from"./console-panel-Cg2sBJcN.js";import{i as x,n as S,t as C}from"./asset-detail-actions-Dv9g2Z9t.js";var w=new Set([`Boolean`,`String`]),T=/_(command|reference|setpoint|sp|target)$/,E=`pu`;function D(e,t=2){if(!e)return[];let n=[];for(let[t,r]of Object.entries(e.members))r.kind!==`variable`||r.access!==`read`||w.has(r.dataType)||T.test(t)||!r.unit||!r.euRange||r.euRange[1]<=r.euRange[0]||n.push({member:t,unit:r.unit,min:r.euRange[0],max:r.euRange[1]});return[...n.filter(e=>e.unit!==E),...n.filter(e=>e.unit===E)].slice(0,t)}function O(e){return s({queryKey:o.catalog.modelSchemasBatch(e.join(`,`)),queryFn:()=>Promise.all(e.map(e=>i(`/catalog/models/${e}`,r.catalogModelDetail))),enabled:e.length>0})}var k=e(t(),1);function A(e,t,n){let r=(0,k.useRef)(new Map),i=(0,k.useRef)(n);i.current=n;let[,o]=(0,k.useState)(0),s=t.join(`|`);return(0,k.useEffect)(()=>{if(r.current=new Map,!e)return;let t=s.split(`|`).filter(Boolean);return a.subscribe((n,a)=>{if(n.tick===a.tick)return;let s=n.memberValues.get(e);for(let e of t){let t=r.current.get(e)??[],n=s?.get(e)?.value,a=typeof n==`number`?n:t.at(-1)??i.current(e);a!==void 0&&(t.push(a),t.length>90&&t.shift(),r.current.set(e,t))}o(e=>e+1)})},[e,s]),r.current}var j=n(),M=100,N=22;function P(e,t,n){if(e.length<2)return``;let r=n-t||1,i=90-e.length;return e.map((e,a)=>{let o=(i+a)/89*M,s=N-3-(Math.min(n,Math.max(t,e))-t)/r*(N-6);return`${a?`L`:`M`}${o.toFixed(1)} ${s.toFixed(1)}`}).join(``)}function F({reading:e,value:t,series:n}){let{member:r,unit:i,min:a,max:o}=e,s=t===void 0?0:Math.max(0,Math.min(1,(t-a)/(o-a)));return(0,j.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,j.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,j.jsx)(`span`,{className:`truncate text-xs text-muted-foreground`,children:p(r)}),(0,j.jsxs)(`span`,{className:`shrink-0 font-mono text-sm font-semibold tabular-nums`,children:[t===void 0?`–`:f(t),(0,j.jsx)(`span`,{className:`ml-1 text-[10px] font-medium text-muted-foreground`,children:u(i)})]})]}),(0,j.jsxs)(`svg`,{viewBox:`0 0 ${M} ${N}`,preserveAspectRatio:`none`,className:`h-6 w-full overflow-visible`,role:`img`,"aria-label":`${r} trend`,children:[(0,j.jsx)(`rect`,{x:`0`,y:N-1.2,width:M,height:`1.2`,className:`fill-border`}),(0,j.jsx)(`rect`,{x:`0`,y:N-1.2,width:s*M,height:`1.2`,className:`fill-info/70`}),(0,j.jsx)(`path`,{d:P(n,a,o),className:`fill-none stroke-info`,strokeWidth:`1`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]})]})}var I=new Set([`off_shift`,`down_planned`,`stopped`,`idle`,`steady`]),L=new Set([`down`,`fault`,`failed`]);function R(e,t){return t?`fault`:e?e===`running`||e===`filling`?`live`:L.has(e)?`fault`:I.has(e)?`off`:`idle`:`off`}function z(e){return e?e.replace(/_/g,` `):`–`}var B=6;function V({title:e,note:t,children:n}){return(0,j.jsxs)(`section`,{className:`flex flex-col gap-3 border-t border-border/50 px-4 py-4`,children:[(0,j.jsxs)(`header`,{className:`flex items-baseline justify-between gap-3`,children:[(0,j.jsx)(`h3`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:e}),t?(0,j.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:t}):null]}),n]})}function H({name:e,sub:t,pill:n,onBack:r}){return(0,j.jsxs)(`header`,{className:`flex flex-col gap-2 px-4 pt-3 pb-4`,children:[(0,j.jsxs)(l,{size:`sm`,variant:`ghost`,className:`-ml-2 h-7 w-fit gap-1 px-2 text-xs text-muted-foreground`,onClick:r,children:[(0,j.jsx)(_,{className:`size-3.5`,"aria-hidden":!0}),`Line`]}),(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,j.jsx)(`h2`,{className:`truncate font-heading text-lg font-medium tracking-tight`,children:e}),(0,j.jsx)(`span`,{className:`truncate font-mono text-[11px] text-muted-foreground`,children:t})]}),n]})]})}function U({label:e,value:t}){return(0,j.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,j.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:e}),(0,j.jsx)(`span`,{className:`font-mono text-lg font-semibold tabular-nums`,children:t})]})}function W({thing:e,assetId:t,line:n,basis:l,onBack:u}){let f=s({queryKey:o.assets.detail(t),queryFn:()=>i(`/assets/${t}`,r.assetDetail)}),p=f.data,h=a(e=>e.assets.find(e=>e.id===t)),_=a(e=>e.models),v=a(e=>e.memberValues.get(t)),w=h?.model??p?.assetType,T=D(O(w?[w]:[]).data?.[0],B),E=x(t,p,()=>f.refetch()),k=h?.activeFaults??[],M=_.find(e=>e.name===w)?.faultNames??[],N=n?.stations.find(e=>e.id===t),P=n?.buffers.find(e=>e.after===t),I=v?.get(`availability_state`)?.value,L=N?.state??(l===`availability`&&typeof I==`string`?I:v?.get(`run_command`)?.value===!1?`stopped`:`running`),W=N?.good??0,G=N?.scrap??0,K=e=>{let t=v?.get(e)?.value??p?.members[e]?.value;return typeof t==`number`?t:void 0},q=A(t,T.map(e=>e.member),K);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(H,{name:e.name,sub:`${t} · ${w??`…`}`,onBack:u,pill:(0,j.jsx)(y,{tone:R(L,k.length>0),children:(0,j.jsx)(b,{children:k.length>0?`fault`:z(L)})})}),N?(0,j.jsx)(V,{title:`Production`,note:P?`buffer ${P.level}/${P.capacity}`:`end of line`,children:(0,j.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,j.jsx)(U,{label:`Good`,value:d(W)}),(0,j.jsx)(U,{label:`Scrap`,value:d(G)}),(0,j.jsx)(U,{label:`Yield`,value:W+G>0?`${(W/(W+G)*100).toFixed(1)}%`:`–`})]})}):null,T.length>0?(0,j.jsx)(V,{title:`Live`,note:`last 90 ticks`,children:(0,j.jsx)(`div`,{className:`flex flex-col gap-3`,children:T.map(e=>(0,j.jsx)(F,{reading:e,value:K(e.member),series:q.get(e.member)??[]},e.member))})}):null,p&&Object.keys(p.methods).length>0?(0,j.jsx)(`div`,{className:`border-t border-border/50 [&>#commands]:px-4`,children:(0,j.jsx)(C,{detail:p,methodArgs:E.methodArgs,setMethodArgs:E.setMethodArgs,onInvoke:E.invoke,isPending:E.isPending,pendingMethod:E.pendingMethod})}):null,(0,j.jsx)(`div`,{className:`border-t border-border/50`,children:(0,j.jsx)(S,{activeFaults:k,availableFaults:M,onTriggerFault:E.triggerFault,onClearFault:E.clearFault})}),(0,j.jsx)(`div`,{className:`border-t border-border/50 px-4 py-3`,children:(0,j.jsxs)(c,{to:`/asset/${encodeURIComponent(t)}`,className:m({size:`sm`,variant:`ghost`,className:`-ml-2 gap-1`}),children:[`Open asset page`,(0,j.jsx)(g,{className:`size-3.5`,"aria-hidden":!0})]})})]})}var G={live:`bg-success`,idle:`bg-warning`,fault:`bg-destructive`,off:`bg-muted-foreground/50`};function K({label:e,value:t}){return(0,j.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,j.jsx)(`span`,{className:`text-[10px] uppercase tracking-[0.14em] text-muted-foreground`,children:e}),(0,j.jsx)(`span`,{className:`font-mono text-lg font-semibold tabular-nums`,children:t})]})}var q=`flex w-full items-center gap-2.5 rounded-[var(--miravo-radius-tight)] px-2 py-2 text-left`;function J({tone:e,name:t,note:n,onSelect:r}){let i=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:h(`size-1.5 shrink-0 rounded-full`,G[e])}),(0,j.jsx)(`span`,{className:`min-w-0 shrink text-sm`,children:t}),(0,j.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-right font-mono text-[11px] text-muted-foreground tabular-nums`,children:n})]});return r?(0,j.jsx)(`li`,{children:(0,j.jsxs)(`button`,{type:`button`,onClick:r,className:h(q,`group outline-none transition-colors hover:bg-muted/40 focus-visible:ring-2 focus-visible:ring-ring`),children:[i,(0,j.jsx)(v,{className:`size-3.5 shrink-0 text-muted-foreground/60 transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0})]})}):(0,j.jsx)(`li`,{className:q,children:i})}export{z as a,D as c,V as i,J as n,R as o,W as r,O as s,K as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./tags-bloWH2Qa.js";export{e as TagsPage};
|