UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

2 lines 1.9 kB
import{SCALE_X as e,SCALE_Y as t,SKEWING as n,SKEW_X as r,SKEW_Y as i}from"../constants.min.mjs";import{Point as a}from"../Point.min.mjs";import{degreesToRadians as o,radiansToDegrees as s}from"../util/misc/radiansDegreesConversion.min.mjs";import{resolveOrigin as c}from"../util/misc/resolveOrigin.min.mjs";import{NOT_ALLOWED_CURSOR as l,findCornerQuadrant as u,getLocalPoint as d,isLocked as f}from"./util.min.mjs";import{wrapWithFireEvent as p}from"./wrapWithFireEvent.min.mjs";import{wrapWithFixedAnchor as m}from"./wrapWithFixedAnchor.min.mjs";const h={x:{counterAxis:`y`,scale:e,skew:r,lockSkewing:`lockSkewingX`,origin:`originX`,flip:`flipX`},y:{counterAxis:`x`,scale:t,skew:i,lockSkewing:`lockSkewingY`,origin:`originY`,flip:`flipY`}},g=[`ns`,`nesw`,`ew`,`nwse`],_=(e,t,n,r)=>t.x!==0&&f(n,`lockSkewingY`)||t.y!==0&&f(n,`lockSkewingX`)?l:`${g[u(n,t,r)%4]}-resize`;function v(e,t,r,i,l){let{target:u}=r,{counterAxis:g,origin:_,lockSkewing:v,skew:y,flip:b}=h[e];if(f(u,v))return!1;let{origin:x,flip:S}=h[g],C=c(r[x])*(u[S]?-1:1),w=-Math.sign(C)*(u[b]?-1:1),T=-(u[y]===0&&d(r,`center`,`center`,i,l)[e]>0||u[y]>0?1:-1)*w*.5+.5;return p(n,m((t,n,r,i)=>function(e,{target:t,ex:n,ey:r,skewingSide:i,...c},l){let{skew:u}=h[e],d=l.subtract(new a(n,r)).divide(new a(t.scaleX,t.scaleY))[e],f=t[u],p=c[u],m=Math.tan(o(p)),g=e===`y`?t._getTransformedDimensions({scaleX:1,scaleY:1,skewX:0}).x:t._getTransformedDimensions({scaleX:1,scaleY:1}).y,_=2*d*i/Math.max(g,1)+m,v=s(Math.atan(_));t.set(u,v);let y=f!==t[u];if(y&&e===`y`){let{skewX:e,scaleX:n}=t,r=t._getTransformedDimensions({skewY:f}),i=t._getTransformedDimensions(),a=e===0?1:r.x/i.x;a!==1&&t.set(`scaleX`,a*n)}return y}(e,n,new a(r,i))))(t,{...r,[_]:T,skewingSide:w},i,l)}const y=(e,t,n,r)=>v(`x`,e,t,n,r),b=(e,t,n,r)=>v(`y`,e,t,n,r);export{_ as skewCursorStyleHandler,y as skewHandlerX,b as skewHandlerY}; //# sourceMappingURL=skew.min.mjs.map