PageSourceSearch

https://cutlistevo.com/assets/EmbedApp-BmTrmrSD.js

js cutlistevo.com collected 2026-10-02 05:35:00 UTC 6,551 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Diagram-BoTpSD4y.css"])))=>i.map(i=>d[i]);
2import{_ as e}from"./vendor-jspdf-D24f0F5F.js";import{d as t,I as a,a1 as s,o as l,f as n,q as u,j as o,l as r,O as i,r as v}from"./vendor-vue-DGxDErk5.js";import{a as c}from"./ax-WYIXzGO7.js";import{u as d}from"./useResults-CpJa7ApO.js";import{t as m}from"./i18n-Dnw6wEjT.js";window.nsWebViewInterface=new class WebViewBridge{eventListenerMap={};iosResponseMap={};iosResponseCounter=0;constructor(){}_onNativeEvent(e,t){const a=this.eventListenerMap[e];a&&a.forEach(e=>{try{if(!1===e(t))return}catch(a){}})}createIFrame(e){const t=document.createElement("iframe");t.style.display="none",t.setAttribute("src",e),document.documentElement.appendChild(t),t.parentNode?t.parentNode.removeChild(t):document.body.removeChild(t)}_emitEventToNative(e,t){this.iosResponseCounter++;const a="object"==typeof t&&null!==t?JSON.stringify(t):t;this.iosResponseMap[this.iosResponseCounter]=a;const s={eventName:e,resId:this.iosResponseCounter},l=`js2ios:${encodeURIComponent(JSON.stringify(s))}`;this.createIFrame(l)}_getIOSResponse(e){const t=this.iosResponseMap[e];return delete this.iosResponseMap[e],t}on(e,t){this.eventListenerMap[e]||(this.eventListenerMap[e]=new Set),this.eventListenerMap[e].add(t)}off(e,t){const a=this.eventListenerMap[e];a&&(t?(a.delete(t),0===a.size&&delete this.eventListenerMap[e]):delete this.eventListenerMap[e])}emit(e,t){this._emitEventToNative(e,t)}};const p={key:0,id:"smartcut-embed",class:"app"},f=t({__name:"EmbedApp",setup(t){const{activeCuts:f,currentCutIndex:h,setActiveStockAutoId:g,updateFromResult:w}=d(),b=i(()=>e(()=>import("./Diagram-B6HVTugf.js"),__vite__mapDeps([0]))),y=v(null),_=v(!1),k=v(null),C=v(null),R=v("sheet"),I=v(null),L=v(null),M=v(!1),S=v(!1),E=v("decimal"),N=v(2),j=v(new Set),A=v(null),D=v(null);let T=null;const W=v([]),F=e=>{C.value?C.value.emit("log",e):W.value.push(e)},V=e=>{C.value?.emit?.("error",{message:e})},$=async()=>{if(!k.value||_.value||j.value.has(k.value)||A.value===k.value)return!1;A.value=k.value,_.value=!0,F(`Getting result ${k.value}, baseURL: ${c.defaults.baseURL}`);try{const{data:e,status:t}=await c.get("result/embedded",{params:{id:k.value},headers:{embed:!0}});if(200!==t||!e?.stockList?.length||!e?.shapeList?.length)return V(m("errors.calculation.no_result")),!1;j.value.add(k.value),w(e);const a=e?.metadata?.totalUsedStock||0,s=e?.metadata?.totalPartsProduced||0,l=e?.shapeList?.filter(e=>!e.added).length||0;if(s&&a){C.value?.emit("solutionFound",!0);const e=1===s?"workbench.solution_found_part_one":"workbench.solution_found_part_other";if(l>0){const t=1===l?"workbench.unplaced_part_one":"workbench.unplaced_part_other";C.value?.emit("userMessageObj",{key:e,params:[s.toString(),a.toString()],secondKey:t,secondParams:[l.toString()]})}else C.value?.emit("userMessageObj",{key:e,params:[s.toString(),a.toString()]})}else C.value?.emit("solutionFound",!1),C.value?.emit("userMessage","workbench.no_parts_fit");const n={stock:e.stockList,parts:e.shapeList,cuts:e?.cutList||[],segments:e?.segments||[],saw:e?.saw,unusableShapes:e?.unusableShapes||[],numCuts:e?.cutList?.length??0};return C.value?.emit("result",n),!0}catch(e){return F(`Error getting result: ${e.message}`),V(m(404===e?.response?.status?"errors.calculation.no_result":"errors.calculation.error")),!1}finally{_.value=!1,A.value=null}},O=e=>{C.value?.emit("partClick",e)},x=e=>{if(!f.value.length||e<0||e>=f.value.length)return;const t=f.value[e];t&&(C.value?.emit("cutData",{cut:t,index:e}),h.value=e,S.value=!0)},P=()=>{null===h.value||h.value>=f.value.length-1||(h.value++,x(h.value))},U=()=>{null===h.value||h.value<=0||(h.value--,x(h.value))},z=()=>{D.value=!0,T&&(clearTimeout(T),T=null),F("Modern Workbench version confirmed")},J=()=>{C.value&&(C.value.on("resetForNewCalculation",e=>{e&&(j.value.clear(),A.value=null,_.value=!1,k.value=null)}),C.value.on("embedReadyAck",z),C.value.on("resultID",e=>{const t="string"==typeof e?parseInt(e):e;!isNaN(t)&&t>0&&k.value!==t&&(k.value=t,F(`Result ID set: ${k.value}`),$())}),C.value.on("showStock",e=>{g(e.autoId)}),C.value.on("cutMode",e=>{M.value=e,M.value?(h.value=0,x(0)):(y.value?.resetCuts(),h.value=null)}),C.value.on("showCut",e=>{M.value&&x(e)}),C.value.on("nextCut",P),C.value.on("prevCut",U),C.value.on("ping",e=>{C.value?.emit("pong",{originalTimestamp:e.timestamp,respondedAt:Date.now()})}))};return a(()=>{F("EmbedApp version 4.13.0 initializing");const e=new URLSearchParams(window.location.search);R.value=e.get("stockType")??"sheet",I.value=e.get("height")?parseInt(e.get("height")):450,L.value=e.get("width")?parseInt(e.get("width")):300,E.value=e.get("units")||e.get("numberFormat")||"decimal",N.value=e.get("dp")?parseInt(e.get("dp")):2;const t=window.location.hostname,a=t.includes("192.168.1.191")?`http://${t}:5000`:"https://api.smartcut.dev";c.defaults.baseURL=a;const s=e.get("result");if(s){const e=parseInt(s);isNaN(e)||(k.value=e)}let l=0;const n=()=>
2{if(l++,l%20!=0&&1!==l||F(`Checking for WebView interface (attempt ${l}/200)...`),window.nsWebViewInterface)F(`WebView interface found after ${l} attempts`),C.value=window.nsWebViewInterface,C.value&&W.value.length>0&&(W.value.forEach(e=>{C.value.emit("log",e)}),W.value=[]),J(),(()=>{const e={timestamp:Date.now(),initialized:!0,listenersSetup:!0,version:"2.0"};C.value?.emit("embedReady",e),C.value?.emit("ready",{timestamp:Date.now()}),F("EmbedApp ready after initialization/refresh"),[5,10,25,50,100,200,300,500,750,1e3,1500,2e3].forEach((t,a)=>{setTimeout(()=>{C.value&&null===D.value&&(C.value.emit("embedReady",{...e,retry:a+1}),C.value.emit("ready",{timestamp:Date.now(),retry:a+1}))},t)}),T=setTimeout(()=>{null===D.value&&(D.value=!1,F("Legacy Workbench version detected - using compatibility mode"))},4e3)})(),k.value&&$();else if(l<200){setTimeout(n,l<10?50:l<30?100:l<100?200:500)}else F("WebView interface failed to initialize - may need manual retry"),V(m("errors.general.server"))};n()}),s(()=>{T&&clearTimeout(T),C.value&&(C.value.off("resetForNewCalculation"),C.value.off("resultID"),C.value.off("showStock"),C.value.off("cutMode"),C.value.off("showCut"),C.value.off("nextCut"),C.value.off("prevCut"),C.value.off("ping"),C.value.off("embedReadyAck")),C.value=null,k.value=null,j.value.clear(),A.value=null}),(e,t)=>_.value?r("",!0):(l(),n("div",p,[u(o(b),{ref_key:"diagramRef",ref:y,"element-id":"diagram","number-format":E.value,"decimal-places":N.value,app:!0,onPartClick:O},null,8,["number-format","decimal-places"])]))}});export{f as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.