UNPKG

fabric-warpvas

Version:

This JavaScript library helps you efficiently build image warping tools on Fabric.js

3 lines (2 loc) 1.27 kB
"use strict";var t=require("fabric");exports.calcFabricCanvasCoord=(r,e)=>{var o;const n=null!==(o=r.viewportTransform)&&void 0!==o?o:[1,0,0,1,0,0];return t.fabric.util.transformPoint(new t.fabric.Point(e.x,e.y),t.fabric.util.invertTransform(n))},exports.calcFabricRelativeCoord=(r,e)=>{const{left:o=0,top:n=0}=r;if("path"===e.type){const r=e,i=r.calcOwnMatrix(),a=t.fabric.util.transformPoint(r.pathOffset,i,!0);return t.fabric.util.transformPoint(new t.fabric.Point(o+a.x,n+a.y),t.fabric.util.invertTransform(i))}const i=e.calcOwnMatrix();return t.fabric.util.transformPoint(new t.fabric.Point(o,n),t.fabric.util.invertTransform(i))},exports.registerLimitMoveEvent=(t,r)=>()=>{let e=!1;const o=t=>{e=t.key.toUpperCase()===r.toUpperCase()},n=t=>{e=t.key.toUpperCase()===r.toUpperCase()},i=t=>{if(e&&t.target&&t.transform){const{left:r=0,top:e=0}=t.target,{left:o,top:n}=t.transform.original;Math.abs(r-o)>Math.abs(e-n)?t.target.set({top:n}).setCoords():t.target.set({left:o}).setCoords()}};return t.on("object:moving",i),window.addEventListener("keydown",o),window.addEventListener("keyup",n),()=>{t.off("object:moving",i),window.removeEventListener("keydown",o),window.removeEventListener("keyup",n)}}; //# sourceMappingURL=register-limit-move-event-R3khX-xX.js.map