import{createPointsPythonRequest,POINTS_PYTHON_FIXTURE,PointsPythonResponse}from"./points-python-facade.js";declare global{interface Window{__freecadPointsState:any}}const status=document.querySelector("#status")!,volume=document.querySelector("#volume")!,resources=document.querySelector("#resources")!,run=document.querySelector("#run")!,error=document.querySelector("#error")!,reset=document.querySelector("#reset")!;const worker=new Worker(new URL("./points.worker.ts",import.meta.url),{type:"module"});let seq=0;window.__freecadPointsState={stage:"starting",requestId:null,response:null,workerMessages:0};const set=(m:string,l="normal")=>{status.textContent=m;status.dataset.level=l};worker.onmessage=(event:MessageEvent)=>{const s=window.__freecadPointsState;s.workerMessages++;const m=event.data;if(m.kind==="ready"){s.stage="ready";run.disabled=false;error.disabled=false;reset.disabled=false;set("Points Python worker ready","ok");return}if(m.kind==="reset"){s.stage="reset";s.requestId=m.requestId;s.response=null;set("Points Python reset","ok");return}s.response=m;s.requestId=m.requestId;if(m.kind==="error"){s.stage=m.error.code==="revision_mismatch"?"expected-error":"error";set(m.error.code,s.stage==="expected-error"?"ok":"error");return}s.stage="success";volume.textContent=String(m.result.apiCount);resources.textContent=m.result.sourceEntry;set("Points Python API complete","ok")};run.onclick=()=>worker.postMessage(createPointsPythonRequest(`points-python-${++seq}`));error.onclick=()=>worker.postMessage(createPointsPythonRequest(`points-python-error-${++seq}`,{...POINTS_PYTHON_FIXTURE,sourceEntry:"wrong" as any}));reset.onclick=()=>worker.postMessage({kind:"reset",requestId:`points-python-reset-${++seq}`});