fabric-warpvas
Version:
This JavaScript library helps you efficiently build image warping tools on Fabric.js
3 lines (2 loc) • 1.14 kB
JavaScript
import{fabric as t}from"fabric";const e=(e,r)=>{var o;const n=null!==(o=e.viewportTransform)&&void 0!==o?o:[1,0,0,1,0,0];return t.util.transformPoint(new t.Point(r.x,r.y),t.util.invertTransform(n))},r=(e,r)=>{const{left:o=0,top:n=0}=e;if("path"===r.type){const e=r,a=e.calcOwnMatrix(),i=t.util.transformPoint(e.pathOffset,a,!0);return t.util.transformPoint(new t.Point(o+i.x,n+i.y),t.util.invertTransform(a))}const a=r.calcOwnMatrix();return t.util.transformPoint(new t.Point(o,n),t.util.invertTransform(a))},o=(t,e)=>()=>{let r=!1;const o=t=>{r=t.key.toUpperCase()===e.toUpperCase()},n=t=>{r=t.key.toUpperCase()===e.toUpperCase()},a=t=>{if(r&&t.target&&t.transform){const{left:e=0,top:r=0}=t.target,{left:o,top:n}=t.transform.original;Math.abs(e-o)>Math.abs(r-n)?t.target.set({top:n}).setCoords():t.target.set({left:o}).setCoords()}};return t.on("object:moving",a),window.addEventListener("keydown",o),window.addEventListener("keyup",n),()=>{t.off("object:moving",a),window.removeEventListener("keydown",o),window.removeEventListener("keyup",n)}};export{e as a,r as c,o as r};
//# sourceMappingURL=register-limit-move-event-MAdqicvl.js.map