/* interact.js 1.10.27 | https://raw.github.com/taye/interact.js/main/LICENSE */ import extend from"../utils/extend.prod.js";import{addEdges}from"../utils/rect.prod.js";import{makeModifier}from"./base.prod.js";import{Modification}from"./Modification.prod.js";import"../utils/clone.prod.js";const aspectRatio={start(t){const{state:e,rect:o,edges:i,pageCoords:s}=t;let{ratio:a,enabled:r}=e.options;const{equalDelta:d,modifiers:n}=e.options;"preserve"===a&&(a=o.width/o.height),e.startCoords=extend({},s),e.startRect=extend({},o),e.ratio=a,e.equalDelta=d;const l=e.linkedEdges={top:i.top||i.left&&!i.bottom,left:i.left||i.top&&!i.right,bottom:i.bottom||i.right&&!i.top,right:i.right||i.bottom&&!i.left};if(e.xIsPrimaryAxis=!(!i.left&&!i.right),e.equalDelta){const t=(l.left?1:-1)*(l.top?1:-1);e.edgeSign={x:t,y:t}}else e.edgeSign={x:l.left?-1:1,y:l.top?-1:1};if(!1!==r&&extend(i,l),null==n||!n.length)return;const c=new Modification(t.interaction);c.copyFrom(t.interaction.modification),c.prepareStates(n),e.subModification=c,c.startAll({...t})},set(t){const{state:e,rect:o,coords:i}=t,{linkedEdges:s}=e,a=extend({},i),r=e.equalDelta?setEqualDelta:setRatio;if(extend(t.edges,s),r(e,e.xIsPrimaryAxis,i,o),!e.subModification)return null;const d=extend({},o);addEdges(s,d,{x:i.x-a.x,y:i.y-a.y});const n=e.subModification.setAll({...t,rect:d,edges:s,pageCoords:i,prevCoords:i,prevRect:d}),{delta:l}=n;if(n.changed){r(e,Math.abs(l.x)>Math.abs(l.y),n.coords,n.rect),extend(i,n.coords)}return n.eventProps},defaults:{ratio:"preserve",equalDelta:!1,modifiers:[],enabled:!1}};function setEqualDelta(t,e,o){let{startCoords:i,edgeSign:s}=t;e?o.y=i.y+(o.x-i.x)*s.y:o.x=i.x+(o.y-i.y)*s.x}function setRatio(t,e,o,i){let{startRect:s,startCoords:a,ratio:r,edgeSign:d}=t;if(e){const t=i.width/r;o.y=a.y+(t-s.height)*d.y}else{const t=i.height*r;o.x=a.x+(t-s.width)*d.x}}var aspectRatio$1=makeModifier(aspectRatio,"aspectRatio");export{aspectRatio,aspectRatio$1 as default}; //# sourceMappingURL=aspectRatio.prod.js.map