Socket
Socket
Sign inDemoInstall

trenette.js

Package Overview
Dependencies
0
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.8 to 0.1.9

examples/images/kofax.tif

2

build/trenette.min.js

@@ -1,1 +0,1 @@

!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t=t||self).Trenette={})}(this,function(t){"use strict";function n(){this.events=[]}function s(t,i){this.x=t||0,this.y=i||0}function l(t){void 0!==t?this.m=t:this.identity()}function i(){}function p(){this.uuid=i.generate(),this.children=[],this.parent=null,this.level=0,this.position=new s(0,0),this.origin=new s(0,0),this.scale=new s(1,1),this.rotation=0,this.visible=!0,this.layer=0,this.matrix=new l,this.globalMatrix=new l,this.inverseGlobalMatrix=new l,this.masks=[],this.matrixNeedsUpdate=!0,this.draggable=!1,this.pointerEvents=!0,this.ignoreViewport=!1,this.saveContextState=!0,this.restoreContextState=!0,this.pointerInside=!1,this.beingDragged=!1}function r(){this.pressed=!1,this.justPressed=!1,this.justReleased=!1}function y(t){this._keys=new Array(5),this._position=new s(0,0),this._positionUpdated=!1,this._delta=new s(0,0),this._wheel=0,this._wheelUpdated=!1,this._doubleClicked=new Array(5),this.keys=new Array(5),this.position=new s(0,0),this.delta=new s(0,0),this.wheel=0,this.doubleClicked=new Array(5),this.domElement=void 0!==t?t:window,this.canvas=null,this.events=new n;for(var i=0;i<5;i++)this._doubleClicked[i]=!1,this.doubleClicked[i]=!1,this._keys[i]=new r,this.keys[i]=new r;var e=this;if(void 0!==window.onmousewheel?this.events.add(this.domElement,"mousewheel",function(t){e._wheel=t.deltaY,e._wheelUpdated=!0}):void 0!==window.addEventListener?this.events.add(this.domElement,"DOMMouseScroll",function(t){e._wheel=30*t.detail,e._wheelUpdated=!0}):this.events.add(this.domElement,"wheel",function(t){e._wheel=t.deltaY,e._wheelUpdated=!0}),void 0!==window.ontouchstart||0<navigator.msMaxTouchPoints){var o=new s(0,0);this.events.add(this.domElement,"touchstart",function(t){var i=t.touches[0];e.updatePosition(i.clientX,i.clientY,0,0),e.updateKey(y.LEFT,r.DOWN),o.set(i.clientX,i.clientY)}),this.events.add(this.domElement,"touchend",function(t){e.updateKey(y.LEFT,r.UP)}),this.events.add(this.domElement,"touchcancel",function(t){e.updateKey(y.LEFT,r.UP)}),this.events.add(document.body,"touchmove",function(t){var i=t.touches[0];e.updatePosition(i.clientX,i.clientY,i.clientX-o.x,i.clientY-o.y),o.set(i.clientX,i.clientY)})}this.events.add(this.domElement,"mousemove",function(t){e.updatePosition(t.clientX,t.clientY,t.movementX,t.movementY)}),this.events.add(this.domElement,"mousedown",function(t){e.updateKey(t.which-1,r.DOWN)}),this.events.add(this.domElement,"mouseup",function(t){e.updateKey(t.which-1,r.UP)}),this.events.add(this.domElement,"dragstart",function(t){e.updateKey(t.which-1,r.UP)}),this.events.add(this.domElement,"dblclick",function(t){e._doubleClicked[t.which-1]=!0}),this.create()}function e(){this.uuid=i.generate(),this.position=new s(0,0),this.scale=1,this.rotation=0,this.matrix=new l,this.inverseMatrix=new l,this.matrixNeedsUpdate=!0,this.moveOnScale=!0,this.rotationPoint=null}function h(t){this.viewport=t,this.dragButton=y.RIGHT,this.allowScale=!0,this.moveOnScale=!0,this.allowRotation=!1,this.rotationPoint=null,this.rotationInitial=0}function o(t,i){void 0===i&&(i={alpha:!0}),this.canvas=t,this.context=t.getContext("2d",{alpha:i.alpha}),this.context.imageSmoothingEnabled=!0,this.context.globalCompositeOperation="source-over",this.pointer=new y,this.pointer.setCanvas(t),this.autoClear=!0}function a(t,i){this.min=void 0!==t?t:new s,this.max=void 0!==i?i:new s}function m(){p.call(this)}function c(){m.call(this),this.box=new a(new s(-50,-35),new s(50,35)),this.invert=!1}function u(){p.call(this),this.radius=10,this.strokeStyle="#000000",this.lineWidth=1,this.fillStyle="#FFFFFF"}function d(){}function x(){p.call(this),this.box=new a(new s(-50,-35),new s(50,35)),this.strokeStyle="#000000",this.lineWidth=1,this.fillStyle="#FFFFFF"}function f(){p.call(this),this.from=new s,this.to=new s,this.strokeStyle="#000000",this.dashPattern=[5,5],this.lineWidth=1}function v(){p.call(this),this.text="",this.font="16px Arial",this.color="#000000",this.textAlign="center"}function b(t){p.call(this),this.box=new a,this.image=document.createElement("img"),void 0!==t&&this.setImage(t)}function g(t,i){p.call(this),this.parentDOM=t,this.element=document.createElement("div"),this.element.style.transformStyle="preserve-3d",this.element.style.position="absolute",this.element.style.top="0px",this.element.style.bottom="0px",this.element.style.transformOrigin="0px 0px",this.element.style.overflow="auto",this.element.style.pointerEvents="none",this.size=new s(100,100)}function w(t){p.call(this),this.box=new a,this.image=document.createElement("img"),this.repetition="repeat",void 0!==t&&this.setImage(t)}function P(){p.call(this),this.box=new a(new s(-50,-35),new s(50,35)),this.strokeStyle="rgb(0, 153, 255)",this.lineWidth=1,this.fillStyle="rgba(0, 153, 255, 0.3)",this.min=0,this.max=10,this.data=[]}function M(){p.call(this),this.from=new s,this.fromCp=new s,this.to=new s,this.toCp=new s,this.strokeStyle="#000000",this.dashPattern=[5,5],this.lineWidth=1}n.prototype.add=function(t,i,e){this.events.push([t,i,e,!1])},n.prototype.clear=function(){this.destroy(),this.events=[]},n.prototype.create=function(){for(var t=0;t<this.events.length;t++){var i=this.events[t];i[0].addEventListener(i[1],i[2]),i[3]=!0}},n.prototype.destroy=function(){for(var t=0;t<this.events.length;t++){var i=this.events[t];i[0].removeEventListener(i[1],i[2]),i[3]=!1}},s.prototype.set=function(t,i){this.x=t,this.y=i},s.prototype.setScalar=function(t){this.x=t,this.y=t},s.prototype.clone=function(){return new s(this.x,this.y)},s.prototype.copy=function(t){this.x=t.x,this.y=t.y},s.prototype.add=function(t){this.x+=t.x,this.y+=t.y},s.prototype.addScalar=function(t){this.x+=t,this.y+=t},s.prototype.addVectors=function(t,i){this.x=t.x+i.x,this.y=t.y+i.y},s.prototype.addScaledVector=function(t,i){this.x+=t.x*i,this.y+=t.y*i},s.prototype.sub=function(t){this.x-=t.x,this.y-=t.y},s.prototype.subScalar=function(t){this.x-=t,this.y-=t},s.prototype.subVectors=function(t,i){this.x=t.x-i.x,this.y=t.y-i.y},s.prototype.multiply=function(t){this.x*=t.x,this.y*=t.y},s.prototype.multiplyScalar=function(t){this.x*=t,this.y*=t},s.prototype.divide=function(t){this.x/=t.x,this.y/=t.y},s.prototype.divideScalar=function(t){return this.multiplyScalar(1/t)},s.prototype.min=function(t){this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y)},s.prototype.max=function(t){this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y)},s.prototype.clamp=function(t,i){this.x=Math.max(t.x,Math.min(i.x,this.x)),this.y=Math.max(t.y,Math.min(i.y,this.y))},s.prototype.clampScalar=function(t,i){this.x=Math.max(t,Math.min(i,this.x)),this.y=Math.max(t,Math.min(i,this.y))},s.prototype.clampLength=function(t,i){var e=this.length();return this.divideScalar(e||1).multiplyScalar(Math.max(t,Math.min(i,e)))},s.prototype.floor=function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},s.prototype.ceil=function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},s.prototype.round=function(){this.x=Math.round(this.x),this.y=Math.round(this.y)},s.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},s.prototype.dot=function(t){return this.x*t.x+this.y*t.y},s.prototype.cross=function(t){return this.x*t.y-this.y*t.x},s.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y},s.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},s.prototype.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)},s.prototype.normalize=function(){return this.divideScalar(this.length()||1)},s.prototype.angle=function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},s.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},s.prototype.distanceToSquared=function(t){var i=this.x-t.x,e=this.y-t.y;return i*i+e*e},s.prototype.manhattanDistanceTo=function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},s.prototype.setLength=function(t){return this.normalize().multiplyScalar(t)},s.prototype.lerp=function(t,i){this.x+=(t.x-this.x)*i,this.y+=(t.y-this.y)*i},s.prototype.lerpVectors=function(t,i,e){return this.subVectors(i,t).multiplyScalar(e).add(t)},s.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},s.prototype.fromArray=function(t,i){void 0===i&&(i=0),this.x=t[i],this.y=t[i+1]},s.prototype.toArray=function(t,i){return void 0===t&&(t=[]),void 0===i&&(i=0),t[i]=this.x,t[i+1]=this.y,t},s.prototype.rotateAround=function(t,i){var e=Math.cos(i),o=Math.sin(i),n=this.x-t.x,s=this.y-t.y;this.x=n*e-s*o+t.x,this.y=n*o+s*e+t.y},l.prototype.copy=function(t){this.m=t.m.slice(0)},l.prototype.clone=function(){return new l(this.m.slice(0))},l.prototype.identity=function(){this.m=[1,0,0,1,0,0]},l.prototype.multiply=function(t){var i=this.m[0]*t.m[0]+this.m[2]*t.m[1],e=this.m[1]*t.m[0]+this.m[3]*t.m[1],o=this.m[0]*t.m[2]+this.m[2]*t.m[3],n=this.m[1]*t.m[2]+this.m[3]*t.m[3],s=this.m[0]*t.m[4]+this.m[2]*t.m[5]+this.m[4],r=this.m[1]*t.m[4]+this.m[3]*t.m[5]+this.m[5];this.m=[i,e,o,n,s,r]},l.prototype.premultiply=function(t){var i=t.m[0]*this.m[0]+t.m[2]*this.m[1],e=t.m[1]*this.m[0]+t.m[3]*this.m[1],o=t.m[0]*this.m[2]+t.m[2]*this.m[3],n=t.m[1]*this.m[2]+t.m[3]*this.m[3],s=t.m[0]*this.m[4]+t.m[2]*this.m[5]+t.m[4],r=t.m[1]*this.m[4]+t.m[3]*this.m[5]+t.m[5];this.m=[i,e,o,n,s,r]},l.prototype.compose=function(t,i,e,o,n,s,r){if(this.m=[1,0,0,1,t,i],0!==r){var h=Math.cos(r),a=Math.sin(r);this.multiply(new l([h,a,-a,h,0,0]))}0===n&&0===s||this.multiply(new l([1,0,0,1,-n,-s])),1===e&&1===o||this.scale(e,o)},l.prototype.translate=function(t,i){this.m[4]+=this.m[0]*t+this.m[2]*i,this.m[5]+=this.m[1]*t+this.m[3]*i},l.prototype.rotate=function(t){var i=Math.cos(t),e=Math.sin(t),o=this.m[0]*i+this.m[2]*e,n=this.m[1]*i+this.m[3]*e,s=this.m[0]*-e+this.m[2]*i,r=this.m[1]*-e+this.m[3]*i;this.m[0]=o,this.m[1]=n,this.m[2]=s,this.m[3]=r},l.prototype.scale=function(t,i){this.m[0]*=t,this.m[1]*=t,this.m[2]*=i,this.m[3]*=i},l.prototype.setPosition=function(t,i){this.m[4]=t,this.m[5]=i},l.prototype.getScale=function(){return new s(this.m[0],this.m[3])},l.prototype.getPosition=function(){return new s(this.m[4],this.m[5])},l.prototype.skew=function(t,i){this.multiply(new l([1,Math.tan(i),Math.tan(t),1,0,0]))},l.prototype.determinant=function(){return 1/(this.m[0]*this.m[3]-this.m[1]*this.m[2])},l.prototype.getInverse=function(){var t=this.determinant();return new l([this.m[3]*t,-this.m[1]*t,-this.m[2]*t,this.m[0]*t,t*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),t*(this.m[1]*this.m[4]-this.m[0]*this.m[5])])},l.prototype.transformPoint=function(t){return new s(t.x*this.m[0]+t.y*this.m[2]+this.m[4],t.x*this.m[1]+t.y*this.m[3]+this.m[5])},l.prototype.setContextTransform=function(t){t.setTransform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},l.prototype.tranformContext=function(t){t.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},l.prototype.cssTransform=function(){return"matrix("+this.m[0]+","+this.m[1]+","+this.m[2]+","+this.m[3]+","+this.m[4]+","+this.m[5]+")"},i.generate=function(){for(var n=[],t=0;t<256;t++)n[t]=(t<16?"0":"")+t.toString(16);return function(){var t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,e=4294967295*Math.random()|0,o=4294967295*Math.random()|0;return(n[255&t]+n[t>>8&255]+n[t>>16&255]+n[t>>24&255]+"-"+n[255&i]+n[i>>8&255]+"-"+n[i>>16&15|64]+n[i>>24&255]+"-"+n[63&e|128]+n[e>>8&255]+"-"+n[e>>16&255]+n[e>>24&255]+n[255&o]+n[o>>8&255]+n[o>>16&255]+n[o>>24&255]).toUpperCase()}}(),p.prototype.traverse=function(t){t(this);for(var i=this.children,e=0;e<i.length;e++)i[e].traverse(t)},p.prototype.add=function(t){t.parent=this,t.level=this.level+1,t.traverse(function(t){null!==t.onAdd&&t.onAdd(this)}),this.children.push(t)},p.prototype.remove=function(t){var i=this.children.indexOf(t);-1!==i&&((t=this.children[i]).parent=null,t.level=0,t.traverse(function(t){null!==t.onRemove&&t.onRemove(this)}),this.children.splice(i,1))},p.prototype.isInside=function(t){return!1},p.prototype.updateMatrix=function(t){this.matrixNeedsUpdate&&(this.matrix.compose(this.position.x,this.position.y,this.scale.x,this.scale.y,this.origin.x,this.origin.y,this.rotation),this.globalMatrix.copy(this.matrix),null!==this.parent&&this.globalMatrix.premultiply(this.parent.globalMatrix),this.inverseGlobalMatrix=this.globalMatrix.getInverse())},p.prototype.transform=function(t,i){this.globalMatrix.tranformContext(t)},p.prototype.draw=function(t,i,e){},p.prototype.onPointerDrag=function(t,i,e){this.position.add(e)},p.prototype.onAdd=null,p.prototype.onRemove=null,p.prototype.onUpdate=null,p.prototype.onPointerEnter=null,p.prototype.onPointerLeave=null,p.prototype.onPointerOver=null,p.prototype.onButtonPressed=null,p.prototype.onButtonDown=null,p.prototype.onButtonUp=null,r.DOWN=-1,r.UP=1,r.RESET=0,(r.prototype.constructor=r).prototype.update=function(t){this.justPressed=!1,this.justReleased=!1,t===r.DOWN?(!1===this.pressed&&(this.justPressed=!0),this.pressed=!0):t===r.UP?(this.pressed&&(this.justReleased=!0),this.pressed=!1):t===r.RESET&&(this.justReleased=!1,this.justPressed=!1)},r.prototype.set=function(t,i,e){this.justPressed=t,this.pressed=i,this.justReleased=e},r.prototype.reset=function(){this.justPressed=!1,this.pressed=!1,this.justReleased=!1},((y.prototype=y).constructor=y).LEFT=0,y.MIDDLE=1,y.RIGHT=2,y.BACK=3,y.FORWARD=4,y.setCanvas=function(t){(this.canvas=t).pointerInside=!1,t.addEventListener("mouseenter",function(){this.pointerInside=!0}),t.addEventListener("mouseleave",function(){this.pointerInside=!1})},y.insideCanvas=function(){return null!==this.canvas&&this.canvas.pointerInside},y.buttonPressed=function(t){return this.keys[t].pressed},y.buttonDoubleClicked=function(t){return this.doubleClicked[t]},y.buttonJustPressed=function(t){return this.keys[t].justPressed},y.buttonJustReleased=function(t){return this.keys[t].justReleased},y.updatePosition=function(t,i,e,o){if(null!==this.canvas){var n=this.canvas.getBoundingClientRect();t-=n.left,i-=n.top}this._position.set(t,i),this._delta.x+=e,this._delta.y+=o,this._positionUpdated=!0},y.updateKey=function(t,i){-1<t&&this._keys[t].update(i)},y.update=function(){for(var t=0;t<5;t++)this._keys[t].justPressed&&this.keys[t].justPressed&&(this._keys[t].justPressed=!1),this._keys[t].justReleased&&this.keys[t].justReleased&&(this._keys[t].justReleased=!1),this.keys[t].set(this._keys[t].justPressed,this._keys[t].pressed,this._keys[t].justReleased),!0===this._doubleClicked[t]?(this.doubleClicked[t]=!0,this._doubleClicked[t]=!1):this.doubleClicked[t]=!1;this._wheelUpdated?(this.wheel=this._wheel,this._wheelUpdated=!1):this.wheel=0,this._positionUpdated?(this.delta.copy(this._delta),this.position.copy(this._position),this._delta.set(0,0),this._positionUpdated=!1):(this.delta.x=0,this.delta.y=0)},y.create=function(){this.events.create()},y.dispose=function(){this.events.destroy()},e.prototype.updateMatrix=function(){this.matrixNeedsUpdate&&(this.matrix.compose(this.position.x,this.position.y,this.scale,this.scale,0,0,this.rotation),this.inverseMatrix=this.matrix.getInverse())},e.prototype.centerObject=function(t,i){var e=t.globalMatrix.transformPoint(new s);e.multiplyScalar(-this.scale),e.x+=i.width/2,e.y+=i.height/2,this.position.copy(e)},h.prototype.update=function(t){if(this.allowScale&&0!==t.wheel&&(this.viewport.scale-=.001*t.wheel*this.viewport.scale,this.moveOnScale)){var i=t.wheel,e=t.canvas.width/2,o=t.canvas.height/2;this.viewport.position.x+=(t.position.x-e)/e*i,this.viewport.position.y+=(t.position.y-o)/o*i}this.allowRotation&&t.buttonPressed(y.RIGHT)&&t.buttonPressed(y.LEFT)?null===this.rotationPoint?(this.rotationPoint=t.position.clone(),this.rotationInitial=this.viewport.rotation):((t=t.position.clone()).sub(this.rotationPoint),this.viewport.rotation=this.rotationInitial+t.angle()):(this.rotationPoint=null,t.buttonPressed(this.dragButton)&&(this.viewport.position.x+=t.delta.x,this.viewport.position.y+=t.delta.y))},o.prototype.createRenderLoop=function(i,e,o){var n=this,s=new h(e);!function t(){void 0!==o&&o(),s.update(n.pointer),n.update(i,e),requestAnimationFrame(t)}()},o.prototype.update=function(t,i){var e=[];t.traverse(function(t){t.visible&&e.push(t)}),e.sort(function(t,i){return i.layer===t.layer?i.level-t.level:i.layer-t.layer});var o=this.pointer;o.update(),i.updateMatrix();for(var n=o.position.clone(),s=i.inverseMatrix.transformPoint(n),r=0;r<e.length;r++){if((a=e[r]).pointerEvents){var h=a.inverseGlobalMatrix.transformPoint(a.ignoreViewport?n:s);if(a.isInside(h)){if(a.pointerInside||null===a.onPointerEnter||a.onPointerEnter(o,i),null!==a.onPointerOver&&a.onPointerOver(o,i),o.buttonPressed(y.LEFT)&&null!==a.onButtonPressed&&a.onButtonPressed(o,i),o.buttonJustReleased(y.LEFT)&&null!==a.onButtonUp&&a.onButtonUp(o,i),o.buttonJustPressed(y.LEFT)&&(null!==a.onButtonDown&&a.onButtonDown(o,i),a.draggable)){a.beingDragged=!0;break}a.pointerInside=!0}else a.pointerInside&&(null!==a.onPointerLeave&&a.onPointerLeave(o,i),a.pointerInside=!1);o.buttonJustReleased(y.LEFT)&&a.draggable&&(a.beingDragged=!1)}}for(r=0;r<e.length;r++){var a;if((a=e[r]).beingDragged){var l=o.position.clone();l.sub(o.delta);var p=i.inverseMatrix.transformPoint(o.position),m=i.inverseMatrix.transformPoint(l);p.sub(m),null!==a.onPointerDrag&&a.onPointerDrag(o,i,p)}null!==a.onUpdate&&a.onUpdate()}t.traverse(function(t){t.updateMatrix()}),this.context.setTransform(1,0,0,1,0,0),this.autoClear&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height);for(r=e.length-1;0<=r;r--)if(!e[r].isMask){e[r].saveContextState&&this.context.save();for(var c=e[r].masks,u=0;u<c.length;u++)c[u].ignoreViewport||i.matrix.setContextTransform(this.context),c[u].transform(this.context,i,this.canvas),c[u].clip(this.context,i,this.canvas);e[r].ignoreViewport?0<c.length&&this.context.setTransform(1,0,0,1,0,0):i.matrix.setContextTransform(this.context),e[r].transform(this.context,i,this.canvas),e[r].draw(this.context,i,this.canvas),e[r].restoreContextState&&this.context.restore()}},a.prototype.set=function(t,i){return this.min.copy(t),this.max.copy(i),this},a.prototype.setFromPoints=function(t){this.min=new s(1/0,1/0),this.max=new s(-1/0,-1/0);for(var i=0,e=t.length;i<e;i++)this.expandByPoint(t[i]);return this},a.prototype.setFromCenterAndSize=function(t,i){var e=(new s).copy(i).multiplyScalar(.5);return this.min.copy(t).sub(e),this.max.copy(t).add(e),this},a.prototype.clone=function(){var t=new a;return t.copy(this),t},a.prototype.copy=function(t){this.min.copy(t.min),this.max.copy(t.max)},a.prototype.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y},a.prototype.getCenter=function(t){return void 0===t&&(t=new s),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5),t},a.prototype.getSize=function(t){return void 0===t&&(t=new s),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min),t},a.prototype.expandByPoint=function(t){return this.min.min(t),this.max.max(t),this},a.prototype.expandByVector=function(t){this.min.sub(t),this.max.add(t)},a.prototype.expandByScalar=function(t){this.min.addScalar(-t),this.max.addScalar(t)},a.prototype.containsPoint=function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},a.prototype.containsBox=function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},a.prototype.intersectsBox=function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},a.prototype.distanceToPoint=function(t){return(new s).copy(t).clamp(this.min,this.max).sub(t).length()},a.prototype.intersect=function(t){this.min.max(t.min),this.max.min(t.max)},a.prototype.union=function(t){this.min.min(t.min),this.max.max(t.max)},a.prototype.translate=function(t){this.min.add(t),this.max.add(t)},a.prototype.equals=function(t){return t.min.equals(this.min)&&t.max.equals(this.max)},(m.prototype=Object.create(p.prototype)).isMask=!0,m.prototype.clip=function(t,i,e){},(c.prototype=Object.create(m.prototype)).isInside=function(t){return this.box.containsPoint(t)},c.prototype.clip=function(t,i,e){t.beginPath();var o=this.box.max.x-this.box.min.x;if(this.invert)t.rect(this.box.min.x-1e4,-5e3,1e4,1e4),t.rect(this.box.max.x,-5e3,1e4,1e4),t.rect(this.box.min.x,this.box.min.y-1e4,o,1e4),t.rect(this.box.min.x,this.box.max.y,o,1e4);else{var n=this.box.max.y-this.box.min.y;t.fillRect(this.box.min.x,this.box.min.y,o,n)}t.clip()},(u.prototype=Object.create(p.prototype)).isInside=function(t){return t.length()<=this.radius},u.prototype.onPointerEnter=function(t,i){this.fillStyle="#CCCCCC"},u.prototype.onPointerLeave=function(t,i){this.fillStyle="#FFFFFF"},u.prototype.draw=function(t,i,e){t.beginPath(),t.arc(0,0,this.radius,0,2*Math.PI),t.fillStyle=this.fillStyle,t.fill(),t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.stroke()},d.rotateTool=function(o){var t=new u;t.radius=4,t.layer=o.layer+1,t.onPointerDrag=function(t,i,e){o.rotation+=.001*e.x},o.add(t)},d.boxResizeTool=function(o){if(void 0!==o.box){var n=new u;n.radius=4,n.layer=o.layer+1,n.draggable=!0,n.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.min.copy(n.position),a()},o.add(n);var s=new u;s.radius=4,s.layer=o.layer+1,s.draggable=!0,s.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.max.x=s.position.x,o.box.min.y=s.position.y,a()},o.add(s);var r=new u;r.radius=4,r.layer=o.layer+1,r.draggable=!0,r.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.max.copy(r.position),a()},o.add(r);var h=new u;h.radius=4,h.layer=o.layer+1,h.draggable=!0,h.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.min.x=h.position.x,o.box.max.y=h.position.y,a()},o.add(h),a()}else console.warn("trenette.js: Helpers.boxResizeTool(), object box property missing.");function a(){n.position.copy(o.box.min),r.position.copy(o.box.max),s.position.set(o.box.max.x,o.box.min.y),h.position.set(o.box.min.x,o.box.max.y)}},(x.prototype=Object.create(p.prototype)).onPointerEnter=function(t,i){this.fillStyle="#CCCCCC"},x.prototype.onPointerLeave=function(t,i){this.fillStyle="#FFFFFF"},x.prototype.isInside=function(t){return this.box.containsPoint(t)},x.prototype.draw=function(t,i,e){var o=this.box.max.x-this.box.min.x,n=this.box.max.y-this.box.min.y;t.fillStyle=this.fillStyle,t.fillRect(this.box.min.x,this.box.min.y,o,n),t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.strokeRect(this.box.min.x,this.box.min.y,o,n)},(f.prototype=Object.create(p.prototype)).draw=function(t,i,e){t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.setLineDash(this.dashPattern),t.beginPath(),t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y),t.stroke()},(v.prototype=Object.create(p.prototype)).draw=function(t,i,e){t.font=this.font,t.textAlign=this.textAlign,t.fillStyle=this.color,t.textBaseline="middle",t.fillText(this.text,0,0)},(b.prototype=Object.create(p.prototype)).setImage=function(t){var i=this;this.image.onload=function(){i.box.min.set(0,0),i.box.max.set(this.naturalWidth,this.naturalHeight)},this.image.src=t},b.prototype.isInside=function(t){return this.box.containsPoint(t)},b.prototype.draw=function(t,i,e){0<this.image.src.length&&t.drawImage(this.image,0,0,this.image.naturalWidth,this.image.naturalHeight,this.box.min.x,this.box.min.y,this.box.max.x-this.box.min.x,this.box.max.y-this.box.min.y)},(g.prototype=Object.create(p.prototype)).onAdd=function(){this.parentDOM.appendChild(this.element)},g.prototype.onRemove=function(){this.parentDOM.removeChild(this.element)},g.prototype.transform=function(t,i,e){var o=i.matrix.clone();o.multiply(this.globalMatrix),this.element.style.transform=o.cssTransform(),this.element.style.width=this.size.x+"px",this.element.style.height=this.size.y+"px",this.element.style.display=this.visible?"block":"none"},(w.prototype=Object.create(p.prototype)).setImage=function(t){var i=this;this.image.onload=function(){i.box.min.set(0,0),i.box.max.set(this.naturalWidth,this.naturalHeight)},this.image.src=t},w.prototype.isInside=function(t){return this.box.containsPoint(t)},w.prototype.draw=function(t,i,e){var o=this.box.max.x-this.box.min.x,n=this.box.max.y-this.box.min.y;if(0<this.image.src.length){var s=t.createPattern(this.image,this.repetition);t.fillStyle=s,t.fillRect(this.box.min.x,this.box.min.y,o,n)}},(P.prototype=Object.create(p.prototype)).isInside=function(t){return this.box.containsPoint(t)},P.prototype.draw=function(t,i,e){if(0!==this.data.length){var o=this.box.max.x-this.box.min.x,n=this.box.max.y-this.box.min.y;t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.beginPath();var s=o/(this.data.length-1),r=this.max-this.min;t.moveTo(this.box.min.x,this.box.max.y-(this.data[0]-this.min)/r*n);for(var h=1,a=s;h<this.data.length;a+=s,h++)t.lineTo(this.box.min.x+a,this.box.max.y-(this.data[h]-this.min)/r*n);t.stroke(),null!==this.fillStyle&&(t.fillStyle=this.fillStyle,t.lineTo(this.box.max.x,this.box.max.y),t.lineTo(this.box.min.x,this.box.max.y),t.fill())}},M.prototype=Object.create(p.prototype),M.curveHelper=function(o){var n=new u;n.radius=3,n.layer=o.layer+1,n.draggable=!0,n.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.fromCp.copy(n.position)},o.parent.add(n);var t=new f;t.from=o.from,t.to=o.fromCp,o.parent.add(t);var s=new u;s.radius=3,s.layer=o.layer+1,s.draggable=!0,s.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.toCp.copy(s.position)},o.parent.add(s);var i=new f;i.from=o.to,i.to=o.toCp,o.parent.add(i)},M.prototype.draw=function(t,i,e){t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.setLineDash(this.dashPattern),t.beginPath(),t.moveTo(this.from.x,this.from.y),t.bezierCurveTo(this.fromCp.x,this.fromCp.y,this.toCp.x,this.toCp.y,this.to.x,this.to.y),t.stroke()},t.BezierCurve=M,t.Box=x,t.Box2=a,t.BoxMask=c,t.Circle=u,t.DOM=g,t.EventManager=n,t.Graph=P,t.Helpers=d,t.Image=b,t.Key=r,t.Line=f,t.Mask=m,t.Matrix=l,t.Object2D=p,t.Pattern=w,t.Pointer=y,t.Renderer=o,t.Text=v,t.UUID=i,t.Vector2=s,t.Viewport=e,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t=t||self).Trenette={})}(this,function(t){"use strict";function n(){this.events=[]}function s(t,i){this.x=t||0,this.y=i||0}function l(t){void 0!==t?this.m=t:this.identity()}function i(){}function p(){this.uuid=i.generate(),this.children=[],this.parent=null,this.level=0,this.position=new s(0,0),this.origin=new s(0,0),this.scale=new s(1,1),this.rotation=0,this.visible=!0,this.layer=0,this.matrix=new l,this.globalMatrix=new l,this.inverseGlobalMatrix=new l,this.masks=[],this.matrixNeedsUpdate=!0,this.draggable=!1,this.pointerEvents=!0,this.ignoreViewport=!1,this.saveContextState=!0,this.restoreContextState=!0,this.pointerInside=!1,this.beingDragged=!1}function r(){this.pressed=!1,this.justPressed=!1,this.justReleased=!1}function y(t){this._keys=new Array(5),this._position=new s(0,0),this._positionUpdated=!1,this._delta=new s(0,0),this._wheel=0,this._wheelUpdated=!1,this._doubleClicked=new Array(5),this.keys=new Array(5),this.position=new s(0,0),this.delta=new s(0,0),this.wheel=0,this.doubleClicked=new Array(5),this.domElement=void 0!==t?t:window,this.canvas=null,this.events=new n;for(var i=0;i<5;i++)this._doubleClicked[i]=!1,this.doubleClicked[i]=!1,this._keys[i]=new r,this.keys[i]=new r;var e=this;if(void 0!==window.onmousewheel?this.events.add(this.domElement,"mousewheel",function(t){e._wheel=t.deltaY,e._wheelUpdated=!0}):void 0!==window.addEventListener?this.events.add(this.domElement,"DOMMouseScroll",function(t){e._wheel=30*t.detail,e._wheelUpdated=!0}):this.events.add(this.domElement,"wheel",function(t){e._wheel=t.deltaY,e._wheelUpdated=!0}),void 0!==window.ontouchstart||0<navigator.msMaxTouchPoints){var o=new s(0,0);this.events.add(this.domElement,"touchstart",function(t){var i=t.touches[0];e.updatePosition(i.clientX,i.clientY,0,0),e.updateKey(y.LEFT,r.DOWN),o.set(i.clientX,i.clientY)}),this.events.add(this.domElement,"touchend",function(t){e.updateKey(y.LEFT,r.UP)}),this.events.add(this.domElement,"touchcancel",function(t){e.updateKey(y.LEFT,r.UP)}),this.events.add(document.body,"touchmove",function(t){var i=t.touches[0];e.updatePosition(i.clientX,i.clientY,i.clientX-o.x,i.clientY-o.y),o.set(i.clientX,i.clientY)})}this.events.add(this.domElement,"mousemove",function(t){e.updatePosition(t.clientX,t.clientY,t.movementX,t.movementY)}),this.events.add(this.domElement,"mousedown",function(t){e.updateKey(t.which-1,r.DOWN)}),this.events.add(this.domElement,"mouseup",function(t){e.updateKey(t.which-1,r.UP)}),this.events.add(this.domElement,"dragstart",function(t){e.updateKey(t.which-1,r.UP)}),this.events.add(this.domElement,"dblclick",function(t){e._doubleClicked[t.which-1]=!0}),this.create()}function e(){this.uuid=i.generate(),this.position=new s(0,0),this.scale=1,this.rotation=0,this.matrix=new l,this.inverseMatrix=new l,this.matrixNeedsUpdate=!0,this.moveOnScale=!0,this.rotationPoint=null}function h(t){this.viewport=t,this.dragButton=y.RIGHT,this.allowScale=!0,this.moveOnScale=!0,this.allowRotation=!1,this.rotationPoint=null,this.rotationInitial=0}function o(t,i){void 0===i&&(i={alpha:!0}),this.canvas=t,this.context=t.getContext("2d",{alpha:i.alpha}),this.context.imageSmoothingEnabled=!0,this.context.globalCompositeOperation="source-over",this.pointer=new y,this.pointer.setCanvas(t),this.autoClear=!0}function a(t,i){this.min=void 0!==t?t:new s,this.max=void 0!==i?i:new s}function m(){p.call(this)}function c(){m.call(this),this.box=new a(new s(-50,-35),new s(50,35)),this.invert=!1}function u(){p.call(this),this.radius=10,this.strokeStyle="#000000",this.lineWidth=1,this.fillStyle="#FFFFFF"}function d(){}function x(){p.call(this),this.box=new a(new s(-50,-35),new s(50,35)),this.strokeStyle="#000000",this.lineWidth=1,this.fillStyle="#FFFFFF"}function f(){p.call(this),this.from=new s,this.to=new s,this.strokeStyle="#000000",this.dashPattern=[5,5],this.lineWidth=1}function v(){p.call(this),this.text="",this.font="16px Arial",this.color="#000000",this.textAlign="center"}function b(t){p.call(this),this.box=new a,this.image=document.createElement("img"),void 0!==t&&this.setImage(t)}function g(t,i){p.call(this),this.parentDOM=t,this.element=document.createElement("div"),this.element.style.transformStyle="preserve-3d",this.element.style.position="absolute",this.element.style.top="0px",this.element.style.bottom="0px",this.element.style.transformOrigin="0px 0px",this.element.style.overflow="auto",this.element.style.pointerEvents="none",this.size=new s(100,100)}function w(t){p.call(this),this.box=new a,this.image=document.createElement("img"),this.repetition="repeat",void 0!==t&&this.setImage(t)}function P(){p.call(this),this.box=new a(new s(-50,-35),new s(50,35)),this.strokeStyle="rgb(0, 153, 255)",this.lineWidth=1,this.fillStyle="rgba(0, 153, 255, 0.3)",this.min=0,this.max=10,this.data=[]}function M(){p.call(this),this.from=new s,this.fromCp=new s,this.to=new s,this.toCp=new s,this.strokeStyle="#000000",this.dashPattern=[5,5],this.lineWidth=1}n.prototype.add=function(t,i,e){this.events.push([t,i,e,!1])},n.prototype.clear=function(){this.destroy(),this.events=[]},n.prototype.create=function(){for(var t=0;t<this.events.length;t++){var i=this.events[t];i[0].addEventListener(i[1],i[2]),i[3]=!0}},n.prototype.destroy=function(){for(var t=0;t<this.events.length;t++){var i=this.events[t];i[0].removeEventListener(i[1],i[2]),i[3]=!1}},s.prototype.set=function(t,i){this.x=t,this.y=i},s.prototype.setScalar=function(t){this.x=t,this.y=t},s.prototype.clone=function(){return new s(this.x,this.y)},s.prototype.copy=function(t){this.x=t.x,this.y=t.y},s.prototype.add=function(t){this.x+=t.x,this.y+=t.y},s.prototype.addScalar=function(t){this.x+=t,this.y+=t},s.prototype.addVectors=function(t,i){this.x=t.x+i.x,this.y=t.y+i.y},s.prototype.addScaledVector=function(t,i){this.x+=t.x*i,this.y+=t.y*i},s.prototype.sub=function(t){this.x-=t.x,this.y-=t.y},s.prototype.subScalar=function(t){this.x-=t,this.y-=t},s.prototype.subVectors=function(t,i){this.x=t.x-i.x,this.y=t.y-i.y},s.prototype.multiply=function(t){this.x*=t.x,this.y*=t.y},s.prototype.multiplyScalar=function(t){this.x*=t,this.y*=t},s.prototype.divide=function(t){this.x/=t.x,this.y/=t.y},s.prototype.divideScalar=function(t){return this.multiplyScalar(1/t)},s.prototype.min=function(t){this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y)},s.prototype.max=function(t){this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y)},s.prototype.clamp=function(t,i){this.x=Math.max(t.x,Math.min(i.x,this.x)),this.y=Math.max(t.y,Math.min(i.y,this.y))},s.prototype.clampScalar=function(t,i){this.x=Math.max(t,Math.min(i,this.x)),this.y=Math.max(t,Math.min(i,this.y))},s.prototype.clampLength=function(t,i){var e=this.length();return this.divideScalar(e||1).multiplyScalar(Math.max(t,Math.min(i,e)))},s.prototype.floor=function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},s.prototype.ceil=function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},s.prototype.round=function(){this.x=Math.round(this.x),this.y=Math.round(this.y)},s.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},s.prototype.dot=function(t){return this.x*t.x+this.y*t.y},s.prototype.cross=function(t){return this.x*t.y-this.y*t.x},s.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y},s.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},s.prototype.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)},s.prototype.normalize=function(){return this.divideScalar(this.length()||1)},s.prototype.angle=function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},s.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},s.prototype.distanceToSquared=function(t){var i=this.x-t.x,e=this.y-t.y;return i*i+e*e},s.prototype.manhattanDistanceTo=function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},s.prototype.setLength=function(t){return this.normalize().multiplyScalar(t)},s.prototype.lerp=function(t,i){this.x+=(t.x-this.x)*i,this.y+=(t.y-this.y)*i},s.prototype.lerpVectors=function(t,i,e){return this.subVectors(i,t).multiplyScalar(e).add(t)},s.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},s.prototype.fromArray=function(t,i){void 0===i&&(i=0),this.x=t[i],this.y=t[i+1]},s.prototype.toArray=function(t,i){return void 0===t&&(t=[]),void 0===i&&(i=0),t[i]=this.x,t[i+1]=this.y,t},s.prototype.rotateAround=function(t,i){var e=Math.cos(i),o=Math.sin(i),n=this.x-t.x,s=this.y-t.y;this.x=n*e-s*o+t.x,this.y=n*o+s*e+t.y},l.prototype.copy=function(t){this.m=t.m.slice(0)},l.prototype.clone=function(){return new l(this.m.slice(0))},l.prototype.identity=function(){this.m=[1,0,0,1,0,0]},l.prototype.multiply=function(t){var i=this.m[0]*t.m[0]+this.m[2]*t.m[1],e=this.m[1]*t.m[0]+this.m[3]*t.m[1],o=this.m[0]*t.m[2]+this.m[2]*t.m[3],n=this.m[1]*t.m[2]+this.m[3]*t.m[3],s=this.m[0]*t.m[4]+this.m[2]*t.m[5]+this.m[4],r=this.m[1]*t.m[4]+this.m[3]*t.m[5]+this.m[5];this.m=[i,e,o,n,s,r]},l.prototype.premultiply=function(t){var i=t.m[0]*this.m[0]+t.m[2]*this.m[1],e=t.m[1]*this.m[0]+t.m[3]*this.m[1],o=t.m[0]*this.m[2]+t.m[2]*this.m[3],n=t.m[1]*this.m[2]+t.m[3]*this.m[3],s=t.m[0]*this.m[4]+t.m[2]*this.m[5]+t.m[4],r=t.m[1]*this.m[4]+t.m[3]*this.m[5]+t.m[5];this.m=[i,e,o,n,s,r]},l.prototype.compose=function(t,i,e,o,n,s,r){if(this.m=[1,0,0,1,t,i],0!==r){var h=Math.cos(r),a=Math.sin(r);this.multiply(new l([h,a,-a,h,0,0]))}0===n&&0===s||this.multiply(new l([1,0,0,1,-n,-s])),1===e&&1===o||this.scale(e,o)},l.prototype.translate=function(t,i){this.m[4]+=this.m[0]*t+this.m[2]*i,this.m[5]+=this.m[1]*t+this.m[3]*i},l.prototype.rotate=function(t){var i=Math.cos(t),e=Math.sin(t),o=this.m[0]*i+this.m[2]*e,n=this.m[1]*i+this.m[3]*e,s=this.m[0]*-e+this.m[2]*i,r=this.m[1]*-e+this.m[3]*i;this.m[0]=o,this.m[1]=n,this.m[2]=s,this.m[3]=r},l.prototype.scale=function(t,i){this.m[0]*=t,this.m[1]*=t,this.m[2]*=i,this.m[3]*=i},l.prototype.setPosition=function(t,i){this.m[4]=t,this.m[5]=i},l.prototype.getScale=function(){return new s(this.m[0],this.m[3])},l.prototype.getPosition=function(){return new s(this.m[4],this.m[5])},l.prototype.skew=function(t,i){this.multiply(new l([1,Math.tan(i),Math.tan(t),1,0,0]))},l.prototype.determinant=function(){return 1/(this.m[0]*this.m[3]-this.m[1]*this.m[2])},l.prototype.getInverse=function(){var t=this.determinant();return new l([this.m[3]*t,-this.m[1]*t,-this.m[2]*t,this.m[0]*t,t*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),t*(this.m[1]*this.m[4]-this.m[0]*this.m[5])])},l.prototype.transformPoint=function(t){return new s(t.x*this.m[0]+t.y*this.m[2]+this.m[4],t.x*this.m[1]+t.y*this.m[3]+this.m[5])},l.prototype.setContextTransform=function(t){t.setTransform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},l.prototype.tranformContext=function(t){t.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},l.prototype.cssTransform=function(){return"matrix("+this.m[0]+","+this.m[1]+","+this.m[2]+","+this.m[3]+","+this.m[4]+","+this.m[5]+")"},i.generate=function(){for(var n=[],t=0;t<256;t++)n[t]=(t<16?"0":"")+t.toString(16);return function(){var t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,e=4294967295*Math.random()|0,o=4294967295*Math.random()|0;return(n[255&t]+n[t>>8&255]+n[t>>16&255]+n[t>>24&255]+"-"+n[255&i]+n[i>>8&255]+"-"+n[i>>16&15|64]+n[i>>24&255]+"-"+n[63&e|128]+n[e>>8&255]+"-"+n[e>>16&255]+n[e>>24&255]+n[255&o]+n[o>>8&255]+n[o>>16&255]+n[o>>24&255]).toUpperCase()}}(),p.prototype.traverse=function(t){t(this);for(var i=this.children,e=0;e<i.length;e++)i[e].traverse(t)},p.prototype.add=function(t){t.parent=this,t.level=this.level+1,t.traverse(function(t){null!==t.onAdd&&t.onAdd(this)}),this.children.push(t)},p.prototype.remove=function(t){var i=this.children.indexOf(t);-1!==i&&((t=this.children[i]).parent=null,t.level=0,t.traverse(function(t){null!==t.onRemove&&t.onRemove(this)}),this.children.splice(i,1))},p.prototype.isInside=function(t){return!1},p.prototype.updateMatrix=function(t){this.matrixNeedsUpdate&&(this.matrix.compose(this.position.x,this.position.y,this.scale.x,this.scale.y,this.origin.x,this.origin.y,this.rotation),this.globalMatrix.copy(this.matrix),null!==this.parent&&this.globalMatrix.premultiply(this.parent.globalMatrix),this.inverseGlobalMatrix=this.globalMatrix.getInverse())},p.prototype.transform=function(t,i){this.globalMatrix.tranformContext(t)},p.prototype.draw=function(t,i,e){},p.prototype.onPointerDrag=function(t,i,e){this.position.add(e)},p.prototype.onAdd=null,p.prototype.onRemove=null,p.prototype.onUpdate=null,p.prototype.onPointerEnter=null,p.prototype.onPointerLeave=null,p.prototype.onPointerOver=null,p.prototype.onButtonPressed=null,p.prototype.onButtonDown=null,p.prototype.onButtonUp=null,r.DOWN=-1,r.UP=1,r.RESET=0,(r.prototype.constructor=r).prototype.update=function(t){this.justPressed=!1,this.justReleased=!1,t===r.DOWN?(!1===this.pressed&&(this.justPressed=!0),this.pressed=!0):t===r.UP?(this.pressed&&(this.justReleased=!0),this.pressed=!1):t===r.RESET&&(this.justReleased=!1,this.justPressed=!1)},r.prototype.set=function(t,i,e){this.justPressed=t,this.pressed=i,this.justReleased=e},r.prototype.reset=function(){this.justPressed=!1,this.pressed=!1,this.justReleased=!1},((y.prototype=y).constructor=y).LEFT=0,y.MIDDLE=1,y.RIGHT=2,y.BACK=3,y.FORWARD=4,y.setCanvas=function(t){(this.canvas=t).pointerInside=!1,t.addEventListener("mouseenter",function(){this.pointerInside=!0}),t.addEventListener("mouseleave",function(){this.pointerInside=!1})},y.insideCanvas=function(){return null!==this.canvas&&this.canvas.pointerInside},y.buttonPressed=function(t){return this.keys[t].pressed},y.buttonDoubleClicked=function(t){return this.doubleClicked[t]},y.buttonJustPressed=function(t){return this.keys[t].justPressed},y.buttonJustReleased=function(t){return this.keys[t].justReleased},y.updatePosition=function(t,i,e,o){if(null!==this.canvas){var n=this.canvas.getBoundingClientRect();t-=n.left,i-=n.top}this._position.set(t,i),this._delta.x+=e,this._delta.y+=o,this._positionUpdated=!0},y.updateKey=function(t,i){-1<t&&this._keys[t].update(i)},y.update=function(){for(var t=0;t<5;t++)this._keys[t].justPressed&&this.keys[t].justPressed&&(this._keys[t].justPressed=!1),this._keys[t].justReleased&&this.keys[t].justReleased&&(this._keys[t].justReleased=!1),this.keys[t].set(this._keys[t].justPressed,this._keys[t].pressed,this._keys[t].justReleased),!0===this._doubleClicked[t]?(this.doubleClicked[t]=!0,this._doubleClicked[t]=!1):this.doubleClicked[t]=!1;this._wheelUpdated?(this.wheel=this._wheel,this._wheelUpdated=!1):this.wheel=0,this._positionUpdated?(this.delta.copy(this._delta),this.position.copy(this._position),this._delta.set(0,0),this._positionUpdated=!1):(this.delta.x=0,this.delta.y=0)},y.create=function(){this.events.create()},y.dispose=function(){this.events.destroy()},e.prototype.updateMatrix=function(){this.matrixNeedsUpdate&&(this.matrix.compose(this.position.x,this.position.y,this.scale,this.scale,0,0,this.rotation),this.inverseMatrix=this.matrix.getInverse())},e.prototype.centerObject=function(t,i){var e=t.globalMatrix.transformPoint(new s);e.multiplyScalar(-this.scale),e.x+=i.width/2,e.y+=i.height/2,this.position.copy(e)},h.prototype.update=function(t){if(this.allowScale&&0!==t.wheel&&(this.viewport.scale-=.001*t.wheel*this.viewport.scale,this.moveOnScale)){var i=t.wheel,e=t.canvas.width/2,o=t.canvas.height/2;this.viewport.position.x+=(t.position.x-e)/e*i,this.viewport.position.y+=(t.position.y-o)/o*i}this.allowRotation&&t.buttonPressed(y.RIGHT)&&t.buttonPressed(y.LEFT)?null===this.rotationPoint?(this.rotationPoint=t.position.clone(),this.rotationInitial=this.viewport.rotation):((t=t.position.clone()).sub(this.rotationPoint),this.viewport.rotation=this.rotationInitial+t.angle()):(this.rotationPoint=null,t.buttonPressed(this.dragButton)&&(this.viewport.position.x+=t.delta.x,this.viewport.position.y+=t.delta.y))},o.prototype.createRenderLoop=function(i,e,o){var n=this,s=new h(e);!function t(){void 0!==o&&o(),s.update(n.pointer),n.update(i,e),requestAnimationFrame(t)}()},o.prototype.update=function(t,i){var e=[];t.traverse(function(t){t.visible&&e.push(t)}),e.sort(function(t,i){return i.layer===t.layer?i.level-t.level:i.layer-t.layer});var o=this.pointer;o.update(),i.updateMatrix();for(var n=o.position.clone(),s=i.inverseMatrix.transformPoint(n),r=0;r<e.length;r++){if((a=e[r]).pointerEvents){var h=a.inverseGlobalMatrix.transformPoint(a.ignoreViewport?n:s);if(a.isInside(h)){if(a.pointerInside||null===a.onPointerEnter||a.onPointerEnter(o,i),null!==a.onPointerOver&&a.onPointerOver(o,i),o.buttonPressed(y.LEFT)&&null!==a.onButtonPressed&&a.onButtonPressed(o,i),o.buttonJustReleased(y.LEFT)&&null!==a.onButtonUp&&a.onButtonUp(o,i),o.buttonJustPressed(y.LEFT)&&(null!==a.onButtonDown&&a.onButtonDown(o,i),a.draggable)){a.beingDragged=!0;break}a.pointerInside=!0}else a.pointerInside&&(null!==a.onPointerLeave&&a.onPointerLeave(o,i),a.pointerInside=!1);o.buttonJustReleased(y.LEFT)&&a.draggable&&(a.beingDragged=!1)}}for(r=0;r<e.length;r++){var a;if((a=e[r]).beingDragged){var l=o.position.clone();l.sub(o.delta);var p=i.inverseMatrix.transformPoint(o.position),m=i.inverseMatrix.transformPoint(l);p.sub(m),null!==a.onPointerDrag&&a.onPointerDrag(o,i,p)}null!==a.onUpdate&&a.onUpdate()}t.traverse(function(t){t.updateMatrix()}),this.context.setTransform(1,0,0,1,0,0),this.autoClear&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height);for(r=e.length-1;0<=r;r--)if(!e[r].isMask){e[r].saveContextState&&this.context.save();for(var c=e[r].masks,u=0;u<c.length;u++)c[u].ignoreViewport||i.matrix.setContextTransform(this.context),c[u].transform(this.context,i,this.canvas),c[u].clip(this.context,i,this.canvas);e[r].ignoreViewport?0<c.length&&this.context.setTransform(1,0,0,1,0,0):i.matrix.setContextTransform(this.context),e[r].transform(this.context,i,this.canvas),e[r].draw(this.context,i,this.canvas),e[r].restoreContextState&&this.context.restore()}},a.prototype.set=function(t,i){return this.min.copy(t),this.max.copy(i),this},a.prototype.setFromPoints=function(t){this.min=new s(1/0,1/0),this.max=new s(-1/0,-1/0);for(var i=0,e=t.length;i<e;i++)this.expandByPoint(t[i]);return this},a.prototype.setFromCenterAndSize=function(t,i){var e=(new s).copy(i).multiplyScalar(.5);return this.min.copy(t).sub(e),this.max.copy(t).add(e),this},a.prototype.clone=function(){var t=new a;return t.copy(this),t},a.prototype.copy=function(t){this.min.copy(t.min),this.max.copy(t.max)},a.prototype.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y},a.prototype.getCenter=function(t){return void 0===t&&(t=new s),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5),t},a.prototype.getSize=function(t){return void 0===t&&(t=new s),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min),t},a.prototype.expandByPoint=function(t){return this.min.min(t),this.max.max(t),this},a.prototype.expandByVector=function(t){this.min.sub(t),this.max.add(t)},a.prototype.expandByScalar=function(t){this.min.addScalar(-t),this.max.addScalar(t)},a.prototype.containsPoint=function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},a.prototype.containsBox=function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},a.prototype.intersectsBox=function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},a.prototype.distanceToPoint=function(t){return(new s).copy(t).clamp(this.min,this.max).sub(t).length()},a.prototype.intersect=function(t){this.min.max(t.min),this.max.min(t.max)},a.prototype.union=function(t){this.min.min(t.min),this.max.max(t.max)},a.prototype.translate=function(t){this.min.add(t),this.max.add(t)},a.prototype.equals=function(t){return t.min.equals(this.min)&&t.max.equals(this.max)},(m.prototype=Object.create(p.prototype)).isMask=!0,m.prototype.clip=function(t,i,e){},(c.prototype=Object.create(m.prototype)).isInside=function(t){return this.box.containsPoint(t)},c.prototype.clip=function(t,i,e){t.beginPath();var o=this.box.max.x-this.box.min.x;if(this.invert)t.rect(this.box.min.x-1e4,-5e3,1e4,1e4),t.rect(this.box.max.x,-5e3,1e4,1e4),t.rect(this.box.min.x,this.box.min.y-1e4,o,1e4),t.rect(this.box.min.x,this.box.max.y,o,1e4);else{var n=this.box.max.y-this.box.min.y;t.fillRect(this.box.min.x,this.box.min.y,o,n)}t.clip()},(u.prototype=Object.create(p.prototype)).isInside=function(t){return t.length()<=this.radius},u.prototype.onPointerEnter=function(t,i){this.fillStyle="#CCCCCC"},u.prototype.onPointerLeave=function(t,i){this.fillStyle="#FFFFFF"},u.prototype.draw=function(t,i,e){t.beginPath(),t.arc(0,0,this.radius,0,2*Math.PI),t.fillStyle=this.fillStyle,t.fill(),t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.stroke()},d.rotateTool=function(o){var t=new u;t.radius=4,t.layer=o.layer+1,t.onPointerDrag=function(t,i,e){o.rotation+=.001*e.x},o.add(t)},d.boxResizeTool=function(o){if(void 0!==o.box){var n=new u;n.radius=4,n.layer=o.layer+1,n.draggable=!0,n.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.min.copy(n.position),a()},o.add(n);var s=new u;s.radius=4,s.layer=o.layer+1,s.draggable=!0,s.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.max.x=s.position.x,o.box.min.y=s.position.y,a()},o.add(s);var r=new u;r.radius=4,r.layer=o.layer+1,r.draggable=!0,r.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.max.copy(r.position),a()},o.add(r);var h=new u;h.radius=4,h.layer=o.layer+1,h.draggable=!0,h.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.min.x=h.position.x,o.box.max.y=h.position.y,a()},o.add(h),a()}else console.warn("trenette.js: Helpers.boxResizeTool(), object box property missing.");function a(){n.position.copy(o.box.min),r.position.copy(o.box.max),s.position.set(o.box.max.x,o.box.min.y),h.position.set(o.box.min.x,o.box.max.y)}},(x.prototype=Object.create(p.prototype)).onPointerEnter=function(t,i){this.fillStyle="#CCCCCC"},x.prototype.onPointerLeave=function(t,i){this.fillStyle="#FFFFFF"},x.prototype.isInside=function(t){return this.box.containsPoint(t)},x.prototype.draw=function(t,i,e){var o=this.box.max.x-this.box.min.x,n=this.box.max.y-this.box.min.y;t.fillStyle=this.fillStyle,t.fillRect(this.box.min.x,this.box.min.y,o,n),t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.strokeRect(this.box.min.x,this.box.min.y,o,n)},(f.prototype=Object.create(p.prototype)).draw=function(t,i,e){t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.setLineDash(this.dashPattern),t.beginPath(),t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y),t.stroke()},(v.prototype=Object.create(p.prototype)).draw=function(t,i,e){t.font=this.font,t.textAlign=this.textAlign,t.fillStyle=this.color,t.textBaseline="middle",t.fillText(this.text,0,0)},(b.prototype=Object.create(p.prototype)).setImage=function(t){var i=this;this.image.onload=function(){i.box.min.set(0,0),i.box.max.set(this.naturalWidth,this.naturalHeight)},this.image.src=t},b.prototype.isInside=function(t){return this.box.containsPoint(t)},b.prototype.draw=function(t,i,e){0<this.image.src.length&&t.drawImage(this.image,0,0,this.image.naturalWidth,this.image.naturalHeight,this.box.min.x,this.box.min.y,this.box.max.x-this.box.min.x,this.box.max.y-this.box.min.y)},(g.prototype=Object.create(p.prototype)).onAdd=function(){this.parentDOM.appendChild(this.element)},g.prototype.onRemove=function(){this.parentDOM.removeChild(this.element)},g.prototype.transform=function(t,i,e){var o=i.matrix.clone();o.multiply(this.globalMatrix),this.element.style.transform=o.cssTransform(),this.element.style.width=this.size.x+"px",this.element.style.height=this.size.y+"px",this.element.style.display=this.visible?"block":"none"},(w.prototype=Object.create(p.prototype)).setImage=function(t){var i=this;this.image.onload=function(){i.box.min.set(0,0),i.box.max.set(this.naturalWidth,this.naturalHeight)},this.image.src=t},w.prototype.isInside=function(t){return this.box.containsPoint(t)},w.prototype.draw=function(t,i,e){var o=this.box.max.x-this.box.min.x,n=this.box.max.y-this.box.min.y;if(0<this.image.src.length){var s=t.createPattern(this.image,this.repetition);t.fillStyle=s,t.fillRect(this.box.min.x,this.box.min.y,o,n)}},(P.prototype=Object.create(p.prototype)).isInside=function(t){return this.box.containsPoint(t)},P.prototype.draw=function(t,i,e){if(0!==this.data.length){var o=this.box.max.x-this.box.min.x,n=this.box.max.y-this.box.min.y;t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.beginPath();var s=o/(this.data.length-1),r=this.max-this.min;t.moveTo(this.box.min.x,this.box.max.y-(this.data[0]-this.min)/r*n);for(var h=1,a=s;h<this.data.length;a+=s,h++)t.lineTo(this.box.min.x+a,this.box.max.y-(this.data[h]-this.min)/r*n);t.stroke(),null!==this.fillStyle&&(t.fillStyle=this.fillStyle,t.lineTo(this.box.max.x,this.box.max.y),t.lineTo(this.box.min.x,this.box.max.y),t.fill())}},M.prototype=Object.create(p.prototype),M.curveHelper=function(o){var n=new u;n.radius=3,n.layer=o.layer+1,n.draggable=!0,n.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.fromCp.copy(n.position)},o.parent.add(n);var t=new f;t.from=o.from,t.to=o.fromCp,o.parent.add(t);var s=new u;s.radius=3,s.layer=o.layer+1,s.draggable=!0,s.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.toCp.copy(s.position)},o.parent.add(s);var i=new f;i.from=o.to,i.to=o.toCp,o.parent.add(i)},M.prototype.draw=function(t,i,e){t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.setLineDash(this.dashPattern),t.beginPath(),t.moveTo(this.from.x,this.from.y),t.bezierCurveTo(this.fromCp.x,this.fromCp.y,this.toCp.x,this.toCp.y,this.to.x,this.to.y),t.stroke()},t.BezierCurve=M,t.Box=x,t.Box2=a,t.BoxMask=c,t.Circle=u,t.DOM=g,t.EventManager=n,t.Graph=P,t.Helpers=d,t.Image=b,t.Key=r,t.Line=f,t.Mask=m,t.Matrix=l,t.Object2D=p,t.Pattern=w,t.Pointer=y,t.Renderer=o,t.Text=v,t.UUID=i,t.Vector2=s,t.Viewport=e,t.ViewportControls=h,Object.defineProperty(t,"__esModule",{value:!0})});
{
"name": "trenette.js",
"version": "0.1.8",
"version": "0.1.9",
"description": "trenette.js is a web library for building interactive diagrams and graphs.",

@@ -5,0 +5,0 @@ "main": "build/trenette.min.js",

@@ -145,2 +145,37 @@ # trenette.js

### Integrating external libraries
- Its possible to integrate external canvas based libraries with this framework, just be sure that the library provides methods to directly draw to the canvas context without resetting its state.
- Other easier but slower way to integrate libraries that works for libraries that do not support canvas as argument in their draw functions is to copy the content from their own self managed canvas into the object draw method.
- Here is an example using the [tiff.js](https://github.com/seikichi/tiff.js) library to draw tiff images, it creates an internal canvas ands does not provide a draw into this context method.
```javascript
// Read the tiff data as arraybuffer from file
var xhr = new XMLHttpRequest();
xhr.responseType = "arraybuffer";
xhr.open("GET", "images/kofax.tif");
xhr.onload = function (e)
{
// Decode the image using tiffjs
var tiff = new Tiff({buffer: xhr.response});
var tiffCanvas = tiff.toCanvas();
if(tiffCanvas)
{
// Create the object to draw
var tiffImage = new Trenette.Object2D();
tiffImage.draw = function(context, viewport, canvas)
{
// Copy the content of the tiff canvas
context.drawImage(tiffCanvas, 0, 0);
};
// Add object to the group
group.add(tiffImage);
}
};
xhr.send();
```
### License

@@ -147,0 +182,0 @@

@@ -21,2 +21,4 @@ "use strict";

* Button used to drag and viewport around.
*
* On touch enabled devices the touch event is represented as a LEFT button.
*/

@@ -27,2 +29,4 @@ this.dragButton = Pointer.RIGHT;

* Is set to true allow the viewport to be scalled.
*
* Scaling is performed using the pointer scroll.
*/

@@ -40,2 +44,4 @@ this.allowScale = true;

* If true allows the viewport to be rotated.
*
* Rotation is performed by holding the RIGHT and LEFT pointer buttons and rotating around the initial point.
*/

@@ -60,2 +66,4 @@ this.allowRotation = false;

*
* Should be called every frame before rendering.
*
* @param {Pointer} pointer

@@ -62,0 +70,0 @@ */

@@ -28,2 +28,4 @@ "use strict";

export {ViewportControls} from "./controls/ViewportControls.js";
export {Helpers} from "./utils/Helpers.js";

@@ -65,5 +65,6 @@ "use strict";

/**
* Calculate and update the viewport transformation matrix.
*
* Also updates the inverse matrix of the viewport.
*/

@@ -83,2 +84,4 @@ Viewport.prototype.updateMatrix = function()

*
* The position of the object is used a central point, this method does not consider "box" attributes or other strucures in the object.
*
* @param {Object2D} object Object to be centered on the viewport.

@@ -85,0 +88,0 @@ * @param {DOM} canvas Canvas element where the image is drawn.

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc