UNPKG

fabric

Version:

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

3 lines (2 loc) 1.92 kB
import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{Intersection as i}from"../Intersection.min.mjs";import{Point as r}from"../Point.min.mjs";import{SCALE as s}from"../constants.min.mjs";import{multiplyTransformMatrixArray as e,createTranslateMatrix as o,createRotateMatrix as n,createScaleMatrix as l}from"../util/misc/matrix.min.mjs";import{renderSquareControl as a,renderCircleControl as c}from"./controlRendering.min.mjs";class h{constructor(i){t(this,"visible",!0),t(this,"actionName",s),t(this,"angle",0),t(this,"x",0),t(this,"y",0),t(this,"offsetX",0),t(this,"offsetY",0),t(this,"sizeX",0),t(this,"sizeY",0),t(this,"touchSizeX",0),t(this,"touchSizeY",0),t(this,"cursorStyle","crosshair"),t(this,"withConnection",!1),Object.assign(this,i)}shouldActivate(t,r,s,e){var o;let{tl:n,tr:l,br:a,bl:c}=e;return(null===(o=r.canvas)||void 0===o?void 0:o.getActiveObject())===r&&r.isControlVisible(t)&&i.isPointInPolygon(s,[n,l,a,c])}getActionHandler(t,i,r){return this.actionHandler}getMouseDownHandler(t,i,r){return this.mouseDownHandler}getMouseUpHandler(t,i,r){return this.mouseUpHandler}cursorStyleHandler(t,i,r){return i.cursorStyle}getActionName(t,i,r){return i.actionName}getVisibility(t,i){var r,s;return null!==(r=null===(s=t._controlsVisibility)||void 0===s?void 0:s[i])&&void 0!==r?r:this.visible}setVisibility(t,i,r){this.visible=t}positionHandler(t,i,s,e){return new r(this.x*t.x+this.offsetX,this.y*t.y+this.offsetY).transform(i)}calcCornerCoords(t,i,s,a,c,h){const m=e([o(s,a),n({angle:t}),l((c?this.touchSizeX:this.sizeX)||i,(c?this.touchSizeY:this.sizeY)||i)]);return{tl:new r(-.5,-.5).transform(m),tr:new r(.5,-.5).transform(m),br:new r(.5,.5).transform(m),bl:new r(-.5,.5).transform(m)}}render(t,i,r,s,e){if("circle"===((s=s||{}).cornerStyle||e.cornerStyle))c.call(this,t,i,r,s,e);else a.call(this,t,i,r,s,e)}}export{h as Control}; //# sourceMappingURL=Control.min.mjs.map