1import{nt as e}from"./use-pattern-export-D0U8wxjD.js";import{vt as t}from"./CloudProjectSaveDialog-BhR71uP0.js";var n=e(`ArrowLeft`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]);function r(e,t){return Number.isFinite(e)?e:t}function i(e,t){let n=10**t;return Math.round(e*n)/n}function a(e){return!!(e&&Number.isFinite(e.width)&&Number.isFinite(e.height)&&e.width>0&&e.height>0)}function o(e){return i(Math.max(1,Math.min(96,r(e,8))),2)}function s(e,t,n){return Math.min(e/n.width,t/n.height)}function c(e){let n=o(e.cellSize),i=t(e.gridColumns)*n,a=t(e.gridRows)*n;return{width:i,height:a,left:-i/2+r(e.gridOffsetX,0),top:-a/2+r(e.gridOffsetY,0)}}function l({reference:e,grid:t}){let n=8/o(t.cellSize);return{...e,scale:r(e.scale,1)*n,aspectScaleX:r(e.aspectScaleX,1),aspectScaleY:r(e.aspectScaleY,1),offsetX:(r(e.offsetX,0)-r(t.offsetX,0))*n,offsetY:(r(e.offsetY,0)-r(t.offsetY,0))*n}}function u({reference:e,sourceSize:t,fromGridWidth:n,fromGridHeight:r,toGridWidth:i,toGridHeight:a}){let o=s((e.fitGridWidth||n)*8,(e.fitGridHeight||r)*8,t),c=s(i*8,a*8,t);if(!Number.isFinite(o)||!Number.isFinite(c)||c<=0)return e;let l={...e};return delete l.fitGridWidth,delete l.fitGridHeight,{...l,scale:e.scale*o/c}}function d({gridWidth:e,gridHeight:n,referenceScale:i,referenceAspectScaleX:a=1,referenceAspectScaleY:o=1,referenceOffsetX:s,referenceOffsetY:c,referenceFitGridWidth:l,referenceFitGridHeight:u}){let d=t(e),f=t(n);return{originalGridColumns:d,originalGridRows:f,gridColumns:d,gridRows:f,cellSize:8,gridOffsetX:0,gridOffsetY:0,reference:{scale:i,aspectScaleX:r(a,1),aspectScaleY:r(o,1),offsetX:s,offsetY:c,...l&&u?{fitGridWidth:l,fitGridHeight:u}:{}}}}function f(e,t,n){return t+Math.round((e-t)/n)*n}function p({draft:e,detection:n,sourceSize:i,boardWidth:a,boardHeight:c}){let l=i.width/n.analysisWidth,u=i.height/n.analysisHeight,d=n.pitchX*l,p=n.pitchY*u,m=n.phaseX*l,h=n.phaseY*u,g=n.originX*l,_=n.originY*u,v=n.columns===null?e.gridColumns:t(n.columns),y=n.rows===null?e.gridRows:t(n.rows),b=n.dimensionsDetected?g:f(i.width/2,m,d)-Math.floor(v/2)*d,x=n.dimensionsDetected?_:f(i.height/2,h,p)-Math.floor(y/2)*p,S=s(e.reference.fitGridWidth?e.reference.fitGridWidth*8:a,e.reference.fitGridHeight?e.reference.fitGridHeight*8:c,i),C=r(e.reference.scale,1),w=r(e.reference.aspectScaleX,1)*n.aspectCorrectionX,T=r(e.reference.aspectScaleY,1)*n.aspectCorrectionY,E=S*C*w,D=S*C*T,O=d*E,k=p*D,A=v**2,j=y**2,M=o((O*A+k*j)/(A+j)),N=i.width/2,P=i.height/2,F=a/2+e.reference.offsetX+(b-N)*E,I=c/2+e.reference.offsetY+(x-P)*D;return{draft:{...e,gridColumns:v,gridRows:y,cellSize:M,gridOffsetX:F-a/2+v*M/2,gridOffsetY:I-c/2+y*M/2,reference:{...e.reference,aspectScaleX:w,aspectScaleY:T}},detectedColumns:n.columns,detectedRows:n.rows,dimensionsDetected:n.dimensionsDetected,aspectCorrectionApplied:n.aspectCorrectionApplied,projectedDriftInCells:n.projectedDriftInCells}}function m({draft:e,sourceSize:n}){let r=t(e.gridColumns),i=t(e.gridRows),o=r!==e.originalGridColumns||i!==e.originalGridRows,s=o||!!(e.reference.fitGridWidth||e.reference.fitGridHeight),c=s&&!a(n),d=l({grid:{cellSize:e.cellSize,offsetX:e.gridOffsetX,offsetY:e.gridOffsetY},reference:e.reference});return{reference:s&&a(n)?u({reference:d,sourceSize:n,fromGridWidth:e.originalGridColumns,fromGridHeight:e.originalGridRows,toGridWidth:r,toGridHeight:i}):d,gridWidth:r,gridHeight:i,dimensionsChanged:o,requiresSourceSize:c}}export{c as a,d as i,o as n,m as o,l as r,n as s,p as t};
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.