From 1204b14e3cc2be64331d8012582f8a3a24073c93 Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 30 May 2012 11:55:47 +0400 Subject: [PATCH] Remove extraneous easing module include. --- build.js | 1 - dist/all.js | 196 --------------------------------------------- dist/all.min.js | 2 +- dist/all.min.js.gz | Bin 38898 -> 38805 bytes 4 files changed, 1 insertion(+), 198 deletions(-) diff --git a/build.js b/build.js index 91ff5ce9..9e0fdb7d 100644 --- a/build.js +++ b/build.js @@ -57,7 +57,6 @@ var filesToInclude = [ 'src/observable.js', 'src/util/misc.js', - 'src/util/anim_ease.js', 'src/util/lang_array.js', 'src/util/lang_object.js', 'src/util/lang_string.js', diff --git a/dist/all.js b/dist/all.js index ec17ac42..18a1eb66 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1959,202 +1959,6 @@ fabric.Observable = { fabric.util.requestAnimFrame = requestAnimFrame; fabric.util.loadImage = loadImage; })(); -(function(){ - - /** - * @namespace - */ - fabric.util.ease = { }; - - function easeInQuad(t, b, c, d) { - return c*(t/=d)*t + b; - } - - function easeOutQuad(t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - } - - function easeInOutQuad(t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return -c/2 * ((--t)*(t-2) - 1) + b; - } - - function easeInCubic(t, b, c, d) { - return c*(t/=d)*t*t + b; - } - - function easeOutCubic(t, b, c, d) { - return c*((t=t/d-1)*t*t + 1) + b; - } - - function easeInOutCubic(t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; - } - - function easeInQuart(t, b, c, d) { - return c*(t/=d)*t*t*t + b; - } - - function easeOutQuart(t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - } - - function easeInOutQuart(t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t + b; - return -c/2 * ((t-=2)*t*t*t - 2) + b; - } - - function easeInQuint(t, b, c, d) { - return c*(t/=d)*t*t*t*t + b; - } - - function easeOutQuint(t, b, c, d) { - return c*((t=t/d-1)*t*t*t*t + 1) + b; - } - - function easeInOutQuint(t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; - return c/2*((t-=2)*t*t*t*t + 2) + b; - } - - function easeInSine(t, b, c, d) { - return -c * Math.cos(t/d * (Math.PI/2)) + c + b; - } - - function easeOutSine(t, b, c, d) { - return c * Math.sin(t/d * (Math.PI/2)) + b; - } - - function easeInOutSine(t, b, c, d) { - return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; - } - - function easeInExpo(t, b, c, d) { - return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; - } - - function easeOutExpo(t, b, c, d) { - return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; - } - - function easeInOutExpo(t, b, c, d) { - if (t==0) return b; - if (t==d) return b+c; - if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; - return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; - } - - function easeInCirc(t, b, c, d) { - return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; - } - - function easeOutCirc(t, b, c, d) { - return c * Math.sqrt(1 - (t=t/d-1)*t) + b; - } - - function easeInOutCirc(t, b, c, d) { - if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; - return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; - } - - function easeInElastic(t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - } - - function easeOutElastic(t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - } - - function easeInOutElastic(t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - } - - function easeInBack(t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*(t/=d)*t*((s+1)*t - s) + b; - } - - function easeOutBack(t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - } - - function easeInOutBack(t, b, c, d, s) { - if (s == undefined) s = 1.70158; - if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - } - - function easeInBounce(t, b, c, d) { - return c - easeOutBounce (d-t, 0, c, d) + b; - } - - function easeOutBounce(t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - } - } - - function easeInOutBounce(t, b, c, d) { - if (t < d/2) return easeInBounce (t*2, 0, c, d) * .5 + b; - return easeOutBounce (t*2-d, 0, c, d) * .5 + c*.5 + b; - } - - /** @namespace */ - fabric.util.ease = { - easeInQuad: easeInQuad, - easeOutQuad: easeOutQuad, - easeInOutQuad: easeInOutQuad, - easeInCubic: easeInCubic, - easeOutCubic: easeOutCubic, - easeInOutCubic: easeInOutCubic, - easeInQuart: easeInQuart, - easeOutQuart: easeOutQuart, - easeInOutQuart: easeInOutQuart, - easeInQuint: easeInQuint, - easeOutQuint: easeOutQuint, - easeInOutQuint: easeInOutQuint, - easeInSine: easeInSine, - easeOutSine: easeOutSine, - easeInOutSine: easeInOutSine, - easeInExpo: easeInExpo, - easeOutExpo: easeOutExpo, - easeInOutExpo: easeInOutExpo, - easeInCirc: easeInCirc, - easeOutCirc: easeOutCirc, - easeInOutCirc: easeInOutCirc, - easeInElastic: easeInElastic, - easeOutElastic: easeOutElastic, - easeInOutElastic: easeInOutElastic, - easeInBack: easeInBack, - easeOutBack: easeOutBack, - easeInOutBack: easeInOutBack, - easeInBounce: easeInBounce, - easeOutBounce: easeOutBounce, - easeInOutBounce: easeInOutBounce - }; - -}()); (function() { var slice = Array.prototype.slice; diff --git a/dist/all.min.js b/dist/all.min.js index 78982b9d..dd9b2e65 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -4,4 +4,4 @@ var fabric=fabric||{version:"0.8.12"};if(typeof exports!="undefined"){exports.fa * Copyright (c) 2009 Simo Kinnunen. * Licensed under the MIT license. */ -var Cufon=(function(){var k=function(){return k.replace.apply(null,arguments)};var u=k.DOM={ready:(function(){var z=false,B={loaded:1,complete:1};var y=[],A=function(){if(z){return}z=true;for(var C;C=y.shift();C()){}};if(fabric.document.addEventListener){fabric.document.addEventListener("DOMContentLoaded",A,false);fabric.window.addEventListener("pageshow",A,false)}if(!fabric.window.opera&&fabric.document.readyState){(function(){B[fabric.document.readyState]?A():setTimeout(arguments.callee,10)})()}if(fabric.document.readyState&&fabric.document.createStyleSheet){(function(){try{fabric.document.body.doScroll("left");A()}catch(C){setTimeout(arguments.callee,1)}})()}o(fabric.window,"load",A);return function(C){if(!arguments.length){A()}else{z?C():y.push(C)}}})()};var l=k.CSS={Size:function(z,y){this.value=parseFloat(z);this.unit=String(z).match(/[a-z%]*$/)[0]||"px";this.convert=function(A){return A/y*this.value};this.convertFrom=function(A){return A/this.value*y};this.toString=function(){return this.value+this.unit}},getStyle:function(y){return new a(y.style)},quotedList:i(function(B){var A=[],z=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,y;while(y=z.exec(B)){A.push(y[3]||y[1])}return A}),ready:(function(){var A=false;var z=[],B=function(){A=true;for(var D;D=z.shift();D()){}};var y=Object.prototype.propertyIsEnumerable?f("style"):{length:0};var C=f("link");u.ready(function(){var G=0,F;for(var E=0,D=C.length;F=C[E],E=y.length+G){B()}else{setTimeout(arguments.callee,10)}});return function(D){if(A){D()}else{z.push(D)}}})(),supports:function(A,z){var y=fabric.document.createElement("span").style;if(y[A]===undefined){return false}y[A]=z;return y[A]===z},textAlign:function(B,A,y,z){if(A.get("textAlign")=="right"){if(y>0){B=" "+B}}else{if(y400}if(F==500){F=400}for(var G in D){G=parseInt(G,10);if(!C||GA){A=G}H.push(G)}if(FA){F=A}H.sort(function(J,I){return(B?(J>F&&I>F)?JI:(JI:JV){V=Q}if(P>T){T=P}if(Qz){z=e}L.push(e);e=0;continue}var B=ab.glyphs[ag[aa]]||ab.missingGlyph;if(!B){continue}e+=D=Number(B.w||ab.w)+U}L.push(e);e=Math.max(z,e);var m=[];for(var aa=L.length;aa--;){m[aa]=e-L[aa]}if(D===null){return null}V+=(H.width-D);C+=H.minX;var v,p;if(n){v=J;p=J.firstChild}else{v=fabric.document.createElement("span");v.className="cufon cufon-canvas";v.alt=E;p=fabric.document.createElement("canvas");v.appendChild(p);if(A.printable){var Y=fabric.document.createElement("span");Y.className="cufon-alt";Y.appendChild(fabric.document.createTextNode(E));v.appendChild(Y)}}var ah=v.style;var O=p.style||{};var k=o.convert(H.height-I+T);var af=Math.ceil(k);var S=af/k;p.width=Math.ceil(o.convert(e+V-C)*S);p.height=af;I+=H.minY;O.top=Math.round(o.convert(I-ab.ascent))+"px";O.left=Math.round(o.convert(C))+"px";var j=Math.ceil(o.convert(e*S));var t=j+"px";var s=o.convert(ab.height);var F=(A.lineHeight-1)*o.convert(-ab.ascent/5)*(M-1);Cufon.textOptions.width=j;Cufon.textOptions.height=(s*M)+F;Cufon.textOptions.lines=M;Cufon.textOptions.totalLineHeight=F;if(a){ah.width=t;ah.height=s+"px"}else{ah.paddingLeft=t;ah.paddingBottom=(s-1)+"px"}var ad=Cufon.textOptions.context||p.getContext("2d"),K=af/H.height;Cufon.textOptions.fontAscent=ab.ascent*K;Cufon.textOptions.boundaries=null;for(var w=Cufon.textOptions.shadowOffsets,aa=R.length;aa--;){w[aa]=[R[aa][0]*K,R[aa][1]*K]}ad.save();ad.scale(K,K);ad.translate(-C-((1/K*p.width)/2)+(Cufon.fonts[ab.family].offsetLeft||0),-I-(Cufon.textOptions.height/K)/2);ad.lineWidth=ab.face["underline-thickness"];ad.save();function q(l,i){ad.strokeStyle=i;ad.beginPath();ad.moveTo(0,l);ad.lineTo(e,l);ad.stroke()}var r=Cufon.getTextDecoration(A),u=A.fontStyle==="italic";function ae(){ad.save();ad.fillStyle=A.backgroundColor;var aj=0,an=0,y=[{left:0}];if(A.textAlign==="right"){ad.translate(m[an],0);y[0].left=m[an]*K}else{if(A.textAlign==="center"){ad.translate(m[an]/2,0);y[0].left=m[an]/2*K}}for(var al=0,ak=ag.length;al.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}');function c(e,f){return a(e,/(?:em|ex|%)$/i.test(f)?"1em":f)}function a(h,i){if(/px$/i.test(i)){return parseFloat(i)}var g=h.style.left,f=h.runtimeStyle.left;h.runtimeStyle.left=h.currentStyle.left;h.style.left=i;var e=h.style.pixelLeft;h.style.left=g;h.runtimeStyle.left=f;return e}return function(T,z,O,w,D,U,M){var h=(z===null);if(h){z=D.alt}var B=T.viewBox;var j=O.computedFontSize||(O.computedFontSize=new Cufon.CSS.Size(c(U,O.get("fontSize"))+"px",T.baseSize));var L=O.computedLSpacing;if(L==undefined){L=O.get("letterSpacing");O.computedLSpacing=L=(L=="normal")?0:~~j.convertFrom(a(U,L))}var t,m;if(h){t=D;m=D.firstChild}else{t=fabric.document.createElement("span");t.className="cufon cufon-vml";t.alt=z;m=fabric.document.createElement("span");m.className="cufon-vml-canvas";t.appendChild(m);if(w.printable){var R=fabric.document.createElement("span");R.className="cufon-alt";R.appendChild(fabric.document.createTextNode(z));t.appendChild(R)}if(!M){t.appendChild(fabric.document.createElement("cvml:shape"))}}var Z=t.style;var G=m.style;var f=j.convert(B.height),W=Math.ceil(f);var K=W/f;var J=B.minX,I=B.minY;G.height=W;G.top=Math.round(j.convert(I-T.ascent));G.left=Math.round(j.convert(J));Z.height=j.convert(T.height)+"px";var p=Cufon.getTextDecoration(w);var y=O.get("color");var X=Cufon.CSS.textTransform(z,O).split("");var e=0,H=0,q=null;var x,r,A=w.textShadow;for(var S=0,Q=0,P=X.length;St?m:(l-k);p(q(currentTime,j,byValue,m));if(l>t||n()){u.onComplete&&u.onComplete();return}h(o)})()}var h=(function(){return fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(k,j){fabric.window.setTimeout(k,1000/60)}})();function a(k,m,l){if(k){var j=new Image();j.onload=function(){m&&m.call(l,j);j=j.onload=null};j.src=k}else{m&&m.call(l,k)}}fabric.util.removeFromArray=g;fabric.util.degreesToRadians=b;fabric.util.toFixed=d;fabric.util.getRandomInt=e;fabric.util.falseFunction=i;fabric.util.animate=c;fabric.util.requestAnimFrame=h;fabric.util.loadImage=a})();(function(){fabric.util.ease={};function d(F,E,H,G){return H*(F/=G)*F+E}function l(F,E,H,G){return -H*(F/=G)*(F-2)+E}function r(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E}function B(F,E,H,G){return H*(F/=G)*F*F+E}function q(F,E,H,G){return H*((F=F/G-1)*F*F+1)+E}function u(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F+E}return H/2*((F-=2)*F*F+2)+E}function t(F,E,H,G){return H*(F/=G)*F*F*F+E}function g(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E}function k(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E}function y(F,E,H,G){return H*(F/=G)*F*F*F*F+E}function j(F,E,H,G){return H*((F=F/G-1)*F*F*F*F+1)+E}function n(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F*F+E}return H/2*((F-=2)*F*F*F*F+2)+E}function f(F,E,H,G){return -H*Math.cos(F/G*(Math.PI/2))+H+E}function o(F,E,H,G){return H*Math.sin(F/G*(Math.PI/2))+E}function v(F,E,H,G){return -H/2*(Math.cos(Math.PI*F/G)-1)+E}function D(F,E,H,G){return(F==0)?E:H*Math.pow(2,10*(F/G-1))+E}function c(F,E,H,G){return(F==G)?E+H:H*(-Math.pow(2,-10*F/G)+1)+E}function i(F,E,H,G){if(F==0){return E}if(F==G){return E+H}if((F/=G/2)<1){return H/2*Math.pow(2,10*(F-1))+E}return H/2*(-Math.pow(2,-10*--F)+2)+E}function h(F,E,H,G){return -H*(Math.sqrt(1-(F/=G)*F)-1)+E}function p(F,E,H,G){return H*Math.sqrt(1-(F=F/G-1)*F)+E}function x(F,E,H,G){if((F/=G/2)<1){return -H/2*(Math.sqrt(1-F*F)-1)+E}return H/2*(Math.sqrt(1-(F-=2)*F)+1)+E}function s(G,E,K,J){var H=1.70158;var I=0;var F=K;if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(F>>0;if(e===0){return -1}var i=0;if(arguments.length>0){i=Number(arguments[1]);if(i!==i){i=0}else{if(i!==0&&i!==(1/0)&&i!==-(1/0)){i=(i>0||-1)*Math.floor(Math.abs(i))}}}if(i>=e){return -1}var f=i>=0?i:Math.max(e-Math.abs(i),0);for(;f>>0;f>>0;g>>0;f>>0;f>>0;g>>0,f=0,h;if(arguments.length>1){h=arguments[1]}else{do{if(f in this){h=this[f++];break}if(++f>=e){throw new TypeError()}}while(true)}for(;f=e){e=h[f][g]}}}else{while(f--){if(h[f]>=e){e=h[f]}}}return e}function c(h,g){if(!h||h.length===0){return undefined}var f=h.length-1,e=g?h[f][g]:h[f];if(g){while(f--){if(h[f][g]",">")}fabric.util.string={camelize:b,capitalize:c,escapeXml:a}}());(function(){var c=Array.prototype.slice,a=Function.prototype.apply,b=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(d){var g=this,e=c.call(arguments,1),f;if(e.length){f=function(){return a.call(g,this instanceof b?this:d,e.concat(c.call(arguments)))}}else{f=function(){return a.call(g,this instanceof b?this:d,arguments)}}b.prototype=this.prototype;f.prototype=new b;return f}}})();(function(){var f=Array.prototype.slice,e=function(){};var c=(function(){for(var g in {toString:1}){if(g==="toString"){return false}}return true})();var b;if(c){b=function(g,i){if(i.toString!==Object.prototype.toString){g.prototype.toString=i.toString}if(i.valueOf!==Object.prototype.valueOf){g.prototype.valueOf=i.valueOf}for(var h in i){g.prototype[h]=i[h]}}}else{b=function(g,i){for(var h in i){g.prototype[h]=i[h]}}}function a(){}function d(){var k=null,j=f.call(arguments,0);if(typeof j[0]==="function"){k=j.shift()}function g(){this.initialize.apply(this,arguments)}g.superclass=k;g.subclasses=[];if(k){a.prototype=k.prototype;g.prototype=new a;k.subclasses.push(g)}for(var h=0,l=j.length;h-1?c(j,l.match(/opacity:\s*(\d?\.?\d*)/)[1]):j}for(var m in l){if(m==="opacity"){c(j,l[m])}else{var k=(m==="float"||m==="cssFloat")?(typeof n.styleFloat==="undefined"?"cssFloat":"styleFloat"):m;n[k]=l[m]}}return j}var h=fabric.document.createElement("div"),g=typeof h.style.opacity==="string",b=typeof h.style.filter==="string",a=fabric.document.defaultView,f=a&&typeof a.getComputedStyle!=="undefined",d=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,c=function(i){return i};if(g){c=function(i,j){i.style.opacity=j;return i}}else{if(b){c=function(i,j){var k=i.style;if(i.currentStyle&&!i.currentStyle.hasLayout){k.zoom=1}if(d.test(k.filter)){j=j>=0.9999?"":("alpha(opacity="+(j*100)+")");k.filter=k.filter.replace(d,j)}else{k.filter+=" alpha(opacity="+(j*100)+")"}return i}}}fabric.util.setStyle=e})();(function(){var h=Array.prototype.slice;function g(j){return typeof j==="string"?fabric.document.getElementById(j):j}function b(j){return h.call(j,0)}try{var i=b(fabric.document.childNodes) instanceof Array}catch(a){}if(!i){b=function(k){var j=new Array(k.length),l=k.length;while(l--){j[l]=k[l]}return j}}function c(k,j){var l=fabric.document.createElement(k);for(var m in j){if(m==="class"){l.className=j[m]}else{if(m==="for"){l.htmlFor=j[m]}else{l.setAttribute(m,j[m])}}}return l}function f(j,k){if((" "+j.className+" ").indexOf(" "+k+" ")===-1){j.className+=(j.className?" ":"")+k}}function e(k,l,j){if(typeof l==="string"){l=c(l,j)}if(k.parentNode){k.parentNode.replaceChild(l,k)}l.appendChild(k);return l}function d(k){var j=0,l=0;do{j+=k.offsetTop||0;l+=k.offsetLeft||0;k=k.offsetParent}while(k);return({left:l,top:j})}(function(){var k=fabric.document.documentElement.style;var l="userSelect" in k?"userSelect":"MozUserSelect" in k?"MozUserSelect":"WebkitUserSelect" in k?"WebkitUserSelect":"KhtmlUserSelect" in k?"KhtmlUserSelect":"";function m(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=fabric.util.falseFunction}if(l){n.style[l]="none"}else{if(typeof n.unselectable=="string"){n.unselectable="on"}}return n}function j(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=null}if(l){n.style[l]=""}else{if(typeof n.unselectable=="string"){n.unselectable=""}}return n}fabric.util.makeElementUnselectable=m;fabric.util.makeElementSelectable=j})();(function(){function j(k,o){var m=fabric.document.getElementsByTagName("head")[0],l=fabric.document.createElement("script"),n=true;l.type="text/javascript";l.setAttribute("runat","server");l.onload=l.onreadystatechange=function(p){if(n){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete"){return}n=false;o(p||fabric.window.event);l=l.onload=l.onreadystatechange=null}};l.src=k;m.appendChild(l)}fabric.util.getScript=j})();fabric.util.getById=g;fabric.util.toArray=b;fabric.util.makeElement=c;fabric.util.addClass=f;fabric.util.wrapElement=e;fabric.util.getElementOffset=d})();(function(){function d(e,f){return e+(/\?/.test(e)?"&":"?")+f}var c=(function(){var h=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest()}];for(var e=h.length;e--;){try{var g=h[e]();if(g){return h[e]}}catch(f){}}})();function a(){}function b(g,f){f||(f={});var j=f.method?f.method.toUpperCase():"GET",i=f.onComplete||function(){},h=c(),e;h.onreadystatechange=function(){if(h.readyState===4){i(h);h.onreadystatechange=a}};if(j==="GET"){e=null;if(typeof f.parameters=="string"){g=d(g,f.parameters)}}h.open(j,g,true);if(j==="POST"||j==="PUT"){h.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}h.send(e);return h}fabric.util.request=b})();(function(){fabric.util.ease={};function d(F,E,H,G){return H*(F/=G)*F+E}function l(F,E,H,G){return -H*(F/=G)*(F-2)+E}function r(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E}function B(F,E,H,G){return H*(F/=G)*F*F+E}function q(F,E,H,G){return H*((F=F/G-1)*F*F+1)+E}function u(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F+E}return H/2*((F-=2)*F*F+2)+E}function t(F,E,H,G){return H*(F/=G)*F*F*F+E}function g(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E}function k(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E}function y(F,E,H,G){return H*(F/=G)*F*F*F*F+E}function j(F,E,H,G){return H*((F=F/G-1)*F*F*F*F+1)+E}function n(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F*F+E}return H/2*((F-=2)*F*F*F*F+2)+E}function f(F,E,H,G){return -H*Math.cos(F/G*(Math.PI/2))+H+E}function o(F,E,H,G){return H*Math.sin(F/G*(Math.PI/2))+E}function v(F,E,H,G){return -H/2*(Math.cos(Math.PI*F/G)-1)+E}function D(F,E,H,G){return(F==0)?E:H*Math.pow(2,10*(F/G-1))+E}function c(F,E,H,G){return(F==G)?E+H:H*(-Math.pow(2,-10*F/G)+1)+E}function i(F,E,H,G){if(F==0){return E}if(F==G){return E+H}if((F/=G/2)<1){return H/2*Math.pow(2,10*(F-1))+E}return H/2*(-Math.pow(2,-10*--F)+2)+E}function h(F,E,H,G){return -H*(Math.sqrt(1-(F/=G)*F)-1)+E}function p(F,E,H,G){return H*Math.sqrt(1-(F=F/G-1)*F)+E}function x(F,E,H,G){if((F/=G/2)<1){return -H/2*(Math.sqrt(1-F*F)-1)+E}return H/2*(Math.sqrt(1-(F-=2)*F)+1)+E}function s(G,E,K,J){var H=1.70158;var I=0;var F=K;if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(F-1;v=v.split(/\s+/);var t=[];if(x){for(var u=0,s=v.length;u/i,""))}if(!v.documentElement){return}g.parseSVGDocument(v.documentElement,function(y,x){j.set(s,{objects:g.util.array.invoke(y,"toObject"),options:x});u(y,x)})}}function a(u){var t=u.objects,s=u.options;t=t.map(function(v){return g[e(v.type)].fromObject(v)});return({objects:t,options:s})}function m(s,v){s=s.trim();var t;if(typeof DOMParser!=="undefined"){var u=new DOMParser();if(u&&u.parseFromString){t=u.parseFromString(s,"text/xml")}}else{if(g.window.ActiveXObject){var t=new ActiveXObject("Microsoft.XMLDOM");t.async="false";t.loadXML(s.replace(//i,""))}}g.parseSVGDocument(t.documentElement,function(x,w){v(x,w)})}function l(v){var t="";for(var u=0,s=v.length;u",'",""].join("")}return t}o(g,{parseAttributes:d,parseElements:f,parseStyleAttribute:h,parsePointsAttribute:r,getCSSRules:c,loadSVGFromURL:b,loadSVGFromString:m,createSVGFontFacesMarkup:l})})(typeof exports!="undefined"?exports:this);(function(){function c(h){var g=h.getAttribute("style");if(g){var k=g.split(/\s*;\s*/);for(var f=k.length;f--;){var e=k[f].split(/\s*:\s*/),d=e[0].trim(),j=e[1].trim();if(d==="stop-color"){return j}}}}fabric.Gradient={create:function(l,m){m||(m={});var f=m.x1||0,k=m.y1||0,e=m.x2||l.canvas.width,i=m.y2||0,g=m.colorStops;var j=l.createLinearGradient(f,k,e,i);for(var h in g){var d=g[h];j.addColorStop(parseFloat(h),d)}return j},fromElement:function(d,m,l){var j=d.getElementsByTagName("stop"),d,f,e={},g,k={x1:d.getAttribute("x1")||0,y1:d.getAttribute("y1")||0,x2:d.getAttribute("x2")||"100%",y2:d.getAttribute("y2")||0};for(var h=j.length;h--;){d=j[h];f=d.getAttribute("offset");f=parseFloat(f)/(/%$/.test(f)?100:1);e[f]=c(d)||d.getAttribute("stop-color")}a(l,k);return fabric.Gradient.create(m,{x1:k.x1,y1:k.y1,x2:k.x2,y2:k.y2,colorStops:e})},forObject:function(g,d,e){e||(e={});a(g,e);var f=fabric.Gradient.create(d,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,colorStops:e.colorStops});return f}};function a(f,e){for(var g in e){if(typeof e[g]==="string"&&/^\d+%$/.test(e[g])){var d=parseFloat(e[g],10);if(g==="x1"||g==="x2"){e[g]=f.width*d/100}else{if(g==="y1"||g==="y2"){e[g]=f.height*d/100}}}if(g==="x1"||g==="x2"){e[g]-=f.width/2}else{if(g==="y1"||g==="y2"){e[g]-=f.height/2}}}}function b(j){var f=j.getElementsByTagName("linearGradient"),d=j.getElementsByTagName("radialGradient"),g,h={};for(var e=f.length;e--;){g=f[e];h[g.id]=g}for(var e=d.length;e--;){g=d[e];h[g.id]=g}return h}fabric.getGradientDefs=b})();(function(b){var c=b.fabric||(b.fabric={});if(c.Point){c.warn("fabric.Point is already defined");return}c.Point=a;function a(d,e){if(arguments.length>0){this.init(d,e)}}a.prototype={constructor:a,init:function(d,e){this.x=d;this.y=e},add:function(d){return new a(this.x+d.x,this.y+d.y)},addEquals:function(d){this.x+=d.x;this.y+=d.y;return this},scalarAdd:function(d){return new a(this.x+d,this.y+d)},scalarAddEquals:function(d){this.x+=d;this.y+=d;return this},subtract:function(d){return new a(this.x-d.x,this.y-d.y)},subtractEquals:function(d){this.x-=d.x;this.y-=d.y;return this},scalarSubtract:function(d){return new a(this.x-d,this.y-d)},scalarSubtractEquals:function(d){this.x-=d;this.y-=d;return this},multiply:function(d){return new a(this.x*d,this.y*d)},multiplyEquals:function(d){this.x*=d;this.y*=d;return this},divide:function(d){return new a(this.x/d,this.y/d)},divideEquals:function(d){this.x/=d;this.y/=d;return this},eq:function(d){return(this.x==d.x&&this.y==d.y)},lt:function(d){return(this.xd.x&&this.y>d.y)},gte:function(d){return(this.x>=d.x&&this.y>=d.y)},lerp:function(e,d){return new a(this.x+(e.x-this.x)*d,this.y+(e.y-this.y)*d)},distanceFrom:function(f){var e=this.x-f.x,d=this.y-f.y;return Math.sqrt(e*e+d*d)},min:function(d){return new a(Math.min(this.x,d.x),Math.min(this.y,d.y))},max:function(d){return new a(Math.max(this.x,d.x),Math.max(this.y,d.y))},toString:function(){return this.x+","+this.y},setXY:function(d,e){this.x=d;this.y=e},setFromPoint:function(d){this.x=d.x;this.y=d.y},swap:function(e){var d=this.x,f=this.y;this.x=e.x;this.y=e.y;e.x=d;e.y=f}}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Intersection){b.warn("fabric.Intersection is already defined");return}function c(d){if(arguments.length>0){this.init(d)}}b.Intersection=c;b.Intersection.prototype={init:function(d){this.status=d;this.points=[]},appendPoint:function(d){this.points.push(d)},appendPoints:function(d){this.points=this.points.concat(d)}};b.Intersection.intersectLineLine=function(h,f,l,k){var m,i=(k.x-l.x)*(h.y-l.y)-(k.y-l.y)*(h.x-l.x),j=(f.x-h.x)*(h.y-l.y)-(f.y-h.y)*(h.x-l.x),g=(k.y-l.y)*(f.x-h.x)-(k.x-l.x)*(f.y-h.y);if(g!=0){var e=i/g,d=j/g;if(0<=e&&e<=1&&0<=d&&d<=1){m=new c("Intersection");m.points.push(new b.Point(h.x+e*(f.x-h.x),h.y+e*(f.y-h.y)))}else{m=new c("No Intersection")}}else{if(i==0||j==0){m=new c("Coincident")}else{m=new c("Parallel")}}return m};b.Intersection.intersectLinePolygon=function(e,d,l){var m=new c("No Intersection"),f=l.length;for(var h=0;h0){m.status="Intersection"}return m};b.Intersection.intersectPolygonPolygon=function(j,h){var f=new c("No Intersection"),l=j.length;for(var k=0;k0){f.status="Intersection"}return f};b.Intersection.intersectPolygonRectangle=function(n,e,d){var g=e.min(d),m=e.max(d),f=new b.Point(m.x,g.y),l=new b.Point(g.x,m.y),k=c.intersectLinePolygon(g,f,n),j=c.intersectLinePolygon(f,m,n),i=c.intersectLinePolygon(m,l,n),h=c.intersectLinePolygon(l,g,n),o=new c("No Intersection");o.appendPoints(k.points);o.appendPoints(j.points);o.appendPoints(i.points);o.appendPoints(h.points);if(o.points.length>0){o.status="Intersection"}return o}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Color){b.warn("fabric.Color is already defined.");return}function c(d){if(!d){this.setSource([0,0,0,1])}else{this._tryParsingColor(d)}}b.Color=c;b.Color.prototype={_tryParsingColor:function(d){var e=c.sourceFromHex(d);if(!e){e=c.sourceFromRgb(d)}if(e){this.setSource(e)}},getSource:function(){return this._source},setSource:function(d){this._source=d},toRgb:function(){var d=this.getSource();return"rgb("+d[0]+","+d[1]+","+d[2]+")"},toRgba:function(){var d=this.getSource();return"rgba("+d[0]+","+d[1]+","+d[2]+","+d[3]+")"},toHex:function(){var h=this.getSource();var f=h[0].toString(16);f=(f.length==1)?("0"+f):f;var e=h[1].toString(16);e=(e.length==1)?("0"+e):e;var d=h[2].toString(16);d=(d.length==1)?("0"+d):d;return f.toUpperCase()+e.toUpperCase()+d.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var d=this.getSource();d[3]=e;this.setSource(d);return this},toGrayscale:function(){var f=this.getSource(),e=parseInt((f[0]*0.3+f[1]*0.59+f[2]*0.11).toFixed(0),10),d=f[3];this.setSource([e,e,e,d]);return this},toBlackWhite:function(d){var g=this.getSource(),f=(g[0]*0.3+g[1]*0.59+g[2]*0.11).toFixed(0),e=g[3],d=d||127;f=(Number(f)','',"',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())];if(this.backgroundImage){h.push('')}for(var j=0,k=this.getObjects(),g=k.length;j");return h.join("")},isEmpty:function(){return this._objects.length===0},remove:function(g){e(this._objects,g);if(this.getActiveObject()===g){this.discardActiveObject()}this.renderAll();return g},sendToBack:function(g){e(this._objects,g);this._objects.unshift(g);return this.renderAll()},bringToFront:function(g){e(this._objects,g);this._objects.push(g);return this.renderAll()},sendBackwards:function(j){var h=this._objects.indexOf(j),g=h;if(h!==0){for(var k=h-1;k>=0;--k){if(j.intersectsWithObject(this._objects[k])||j.isContainedWithinObject(this._objects[k])){g=k;break}}e(this._objects,j);this._objects.splice(g,0,j)}return this.renderAll()},bringForward:function(k){var n=this.getObjects(),h=n.indexOf(k),g=h;if(h!==n.length-1){for(var m=h+1,j=this._objects.length;m"};f(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(l){var k=l.getContext("2d"),g=k.getImageData(0,0,l.width,l.height),p=g.data,m=g.width,r=g.height,q,h,o,n;for(o=0;o0)?0:-v),r.ey-((u>0)?0:-u),t,s);this.contextTop.lineWidth=this.selectionLineWidth;this.contextTop.strokeStyle=this.selectionBorderColor;this.contextTop.strokeRect(r.ex+a-((v>0)?0:t),r.ey+a-((u>0)?0:s),t,s)},_findSelectedObjects:function(x){var y,t,D=[],s=this._groupSelector.ex,C=this._groupSelector.ey,r=s+this._groupSelector.left,A=C+this._groupSelector.top,z,w=new fabric.Point(f(s,r),f(C,A)),B=new fabric.Point(l(s,r),l(C,A));for(var u=0,v=this._objects.length;u1){var D=new fabric.Group(D);this.setActiveGroup(D);D.saveCoords();this.fire("selection:created",{target:D})}}this.renderAll()},findTarget:function(v,s){var u,w=this.getPointer(v);var t=this.getActiveGroup();if(t&&!s&&this.containsPoint(v,t)){u=t;return u}for(var r=this._objects.length;r--;){if(this._objects[r]&&this.containsPoint(v,this._objects[r])){u=this._objects[r];this.relatedTarget=u;break}}if(u&&u.selectable){return u}},getPointer:function(r){var s=q(r);return{x:s.x-this._offset.left,y:s.y-this._offset.top}},_createUpperCanvas:function(){this.upperCanvasEl=this._createCanvasElement();this.upperCanvasEl.className="upper-canvas";this.wrapperEl.appendChild(this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.CONTAINER_CLASS});fabric.util.setStyle(this.wrapperEl,{width:this.getWidth()+"px",height:this.getHeight()+"px",position:"relative"});fabric.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(s){var t=this.getWidth()||s.width,r=this.getHeight()||s.height;fabric.util.setStyle(s,{position:"absolute",width:t+"px",height:r+"px",left:0,top:0});s.width=t;s.height=r;fabric.util.makeElementUnselectable(s)},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},setActiveObject:function(r,s){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=r;r.setActive(true);this.renderAll();this.fire("object:selected",{target:r,e:s});return this},getActiveObject:function(){return this._activeObject},discardActiveObject:function(){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=null;return this},setActiveGroup:function(r){this._activeGroup=r;return this},getActiveGroup:function(){return this._activeGroup},discardActiveGroup:function(){var r=this.getActiveGroup();if(r){r.destroy()}return this.setActiveGroup(null)},deactivateAll:function(){var s=this.getObjects(),t=0,r=s.length;for(;t1){var o=new fabric.PathGroup(q,n)}else{var o=q[0]}o.setSourcePath(m);if(!(o instanceof fabric.PathGroup)){fabric.util.object.extend(o,n);if(typeof n.angle!=="undefined"){o.setAngle(n.angle)}}g(o,l)})}}}},this)}catch(c){fabric.log(c.message)}},loadFromJSON:function(a,d){if(!a){return}var b=JSON.parse(a);if(!b||(b&&!b.objects)){return}this.clear();var c=this;this._enlivenObjects(b.objects,function(){c.backgroundColor=b.background;if(b.backgroundImage){c.setBackgroundImage(b.backgroundImage);c.backgroundImageOpacity=b.backgroundImageOpacity;c.backgroundImageStretch=b.backgroundImageStretch}if(d){d()}});return this},_enlivenObjects:function(b,e){var c=0,a=b.filter(function(f){return f.type==="image"}).length;var d=this;b.forEach(function(h,g){if(!h.type){return}switch(h.type){case"image":case"font":fabric[fabric.util.string.capitalize(h.type)].fromObject(h,function(i){d.insertAt(i,g,true);if(++c===a){if(e){e()}}});break;default:var f=fabric[fabric.util.string.camelize(fabric.util.string.capitalize(h.type))];if(f&&f.fromObject){d.insertAt(f.fromObject(h),g,true)}break}});if(a===0&&e){e()}},_toDataURL:function(a,b){this.clone(function(c){b(c.toDataURL(a))})},_toDataURLWithMultiplier:function(a,c,b){this.clone(function(d){b(d.toDataURLWithMultiplier(a,c))})},clone:function(b){var a=JSON.stringify(this);this.cloneWithoutData(function(c){c.loadFromJSON(a,function(){if(b){b(c)}})})},cloneWithoutData:function(c){var a=fabric.document.createElement("canvas");a.width=this.getWidth();a.height=this.getHeight();var b=this.__clone||(this.__clone=new fabric.Canvas(a));b.clipTo=this.clipTo;if(c){c(b)}}});(function(a){var d=a.fabric||(a.fabric={}),l=d.util.object.extend,m=d.util.object.clone,c=d.util.toFixed,k=d.util.string.capitalize,p=d.util.getPointer,b=d.util.degreesToRadians,o=Array.prototype.slice;if(d.Object){return}d.Object=d.util.createClass({type:"object",includeDefaultValues:true,NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:0.1,stateProperties:("top left width height scaleX scaleY flipX flipY theta angle opacity cornersize fill overlayFill stroke strokeWidth fillRule borderScaleFactor transformMatrix selectable").split(" "),top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:false,flipY:false,theta:0,opacity:1,angle:0,cornersize:12,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",fill:"rgb(0,0,0)",fillRule:"source-over",overlayFill:null,stroke:null,strokeWidth:1,borderOpacityWhenMoving:0.4,borderScaleFactor:1,transformMatrix:null,selectable:true,hasControls:true,hasBorders:true,hasRotatingPoint:false,callSuper:function(i){var q=this.constructor.superclass.prototype[i];return(arguments.length>1)?q.apply(this,o.call(arguments,1)):q.call(this)},initialize:function(i){i&&this.setOptions(i)},setOptions:function(q){var r=this.stateProperties.length,s;while(r--){s=this.stateProperties[r];if(s in q){this.set(s,q[s])}}},transform:function(i){i.globalAlpha=this.opacity;i.translate(this.left,this.top);i.rotate(this.theta);i.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(){var i={type:this.type,left:c(this.left,this.NUM_FRACTION_DIGITS),top:c(this.top,this.NUM_FRACTION_DIGITS),width:c(this.width,this.NUM_FRACTION_DIGITS),height:c(this.height,this.NUM_FRACTION_DIGITS),fill:this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,scaleX:c(this.scaleX,this.NUM_FRACTION_DIGITS),scaleY:c(this.scaleY,this.NUM_FRACTION_DIGITS),angle:c(this.getAngle(),this.NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:c(this.opacity,this.NUM_FRACTION_DIGITS),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint};if(!this.includeDefaultValues){i=this._removeDefaultValues(i)}return i},toDatalessObject:function(){return this.toObject()},getSvgStyles:function(){return["stroke: ",(this.stroke?this.stroke:"none"),"; ","stroke-width: ",(this.strokeWidth?this.strokeWidth:"0"),"; ","fill: ",(this.fill?this.fill:"none"),"; ","opacity: ",(this.opacity?this.opacity:"1"),";"].join("")},getSvgTransform:function(){var i=this.getAngle();return["translate(",c(this.left,2)," ",c(this.top,2),")",i!==0?(" rotate("+c(i,2)+")"):"",(this.scaleX===1&&this.scaleY===1)?"":(" scale("+c(this.scaleX,2)+" "+c(this.scaleY,2)+")")].join("")},_removeDefaultValues:function(q){var i=d.Object.prototype.options;if(i){this.stateProperties.forEach(function(r){if(q[r]===i[r]){delete q[r]}})}return q},isActive:function(){return !!this.active},setActive:function(i){this.active=!!i;return this},toString:function(){return"#"},set:function(q,i){var s=(q==="scaleX"||q==="scaleY")&&ir.x&&s.xr.y&&u.y=v)&&(s.d.y>=v)){continue}if((s.o.x==s.d.x)&&(s.o.x>=w)){x=s.o.x;u=v}else{z=0;y=(s.d.y-s.o.y)/(s.d.x-s.o.x);r=v-z*w;q=s.o.y-y*s.o.x;x=-(r-q)/(z-y);u=r+z*x}if(x>=w){t+=1}if(t==2){break}}return t},_getImageLines:function(r,q){return{topline:{o:r.tl,d:r.tr},rightline:{o:r.tr,d:r.br},bottomline:{o:r.br,d:r.bl},leftline:{o:r.bl,d:r.tl}}},_setCornerCoords:function(){var u=this.oCoords,q=b(45-this.getAngle()),s=Math.sqrt(2*Math.pow(this.cornersize,2))/2,i=s*Math.cos(q),r=s*Math.sin(q),v=Math.sin(this.theta),t=Math.cos(this.theta);u.tl.corner={tl:{x:u.tl.x-r,y:u.tl.y-i},tr:{x:u.tl.x+i,y:u.tl.y-r},bl:{x:u.tl.x-i,y:u.tl.y+r},br:{x:u.tl.x+r,y:u.tl.y+i}};u.tr.corner={tl:{x:u.tr.x-r,y:u.tr.y-i},tr:{x:u.tr.x+i,y:u.tr.y-r},br:{x:u.tr.x+r,y:u.tr.y+i},bl:{x:u.tr.x-i,y:u.tr.y+r}};u.bl.corner={tl:{x:u.bl.x-r,y:u.bl.y-i},bl:{x:u.bl.x-i,y:u.bl.y+r},br:{x:u.bl.x+r,y:u.bl.y+i},tr:{x:u.bl.x+i,y:u.bl.y-r}};u.br.corner={tr:{x:u.br.x+i,y:u.br.y-r},bl:{x:u.br.x-i,y:u.br.y+r},br:{x:u.br.x+r,y:u.br.y+i},tl:{x:u.br.x-r,y:u.br.y-i}};u.ml.corner={tl:{x:u.ml.x-r,y:u.ml.y-i},tr:{x:u.ml.x+i,y:u.ml.y-r},bl:{x:u.ml.x-i,y:u.ml.y+r},br:{x:u.ml.x+r,y:u.ml.y+i}};u.mt.corner={tl:{x:u.mt.x-r,y:u.mt.y-i},tr:{x:u.mt.x+i,y:u.mt.y-r},bl:{x:u.mt.x-i,y:u.mt.y+r},br:{x:u.mt.x+r,y:u.mt.y+i}};u.mr.corner={tl:{x:u.mr.x-r,y:u.mr.y-i},tr:{x:u.mr.x+i,y:u.mr.y-r},bl:{x:u.mr.x-i,y:u.mr.y+r},br:{x:u.mr.x+r,y:u.mr.y+i}};u.mb.corner={tl:{x:u.mb.x-r,y:u.mb.y-i},tr:{x:u.mb.x+i,y:u.mb.y-r},bl:{x:u.mb.x-i,y:u.mb.y+r},br:{x:u.mb.x+r,y:u.mb.y+i}};u.mtr.corner={tl:{x:u.mtr.x-r+(v*40),y:u.mtr.y-i-(t*40)},tr:{x:u.mtr.x+i+(v*40),y:u.mtr.y-r-(t*40)},bl:{x:u.mtr.x-i+(v*40),y:u.mtr.y+r-(t*40)},br:{x:u.mtr.x+r+(v*40),y:u.mtr.y+i-(t*40)}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},toJSON:function(){return this.toObject()},setGradientFill:function(i,q){this.set("fill",d.Gradient.forObject(this,i,q))},animate:function(q,s,i){var r=this;if(!("from" in i)){i.from=this.get(q)}if(/[+-]/.test(s.charAt(0))){s=this.get(q)+parseFloat(s)}d.util.animate({startValue:i.from,endValue:s,byValue:i.by,easing:i.easing,duration:i.duration,onChange:function(t){r.set(q,t);i.onChange&&i.onChange()},onComplete:function(){r.setCoords();i.onComplete&&i.onComplete()}})}});d.Object.prototype.rotate=d.Object.prototype.setAngle;var j=d.Object.prototype;for(var g=j.stateProperties.length;g--;){var h=j.stateProperties[g],e=h.charAt(0).toUpperCase()+h.slice(1),f="set"+e,n="get"+e;if(!j[n]){j[n]=(function(i){return new Function('return this.get("'+i+'")')})(h)}if(!j[f]){j[f]=(function(i){return new Function("value",'return this.set("'+i+'", value)')})(h)}}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),e=c.util.object.extend,d=c.Object.prototype.set,a={x1:1,x2:1,y1:1,y2:1};if(c.Line){c.warn("fabric.Line is already defined");return}c.Line=c.util.createClass(c.Object,{type:"line",initialize:function(g,f){if(!g){g=[0,0,0,0]}this.callSuper("initialize",f);this.set("x1",g[0]);this.set("y1",g[1]);this.set("x2",g[2]);this.set("y2",g[3]);this._setWidthHeight()},_setWidthHeight:function(){this.set("width",(this.x2-this.x1)||1);this.set("height",(this.y2-this.y1)||1);this.set("left",this.x1+this.width/2);this.set("top",this.y1+this.height/2)},set:function(f,g){d.call(this,f,g);if(f in a){this._setWidthHeight()}return this},_render:function(f){f.beginPath();f.moveTo(this.width===1?0:(-this.width/2),this.height===1?0:(-this.height/2));f.lineTo(this.width===1?0:(this.width/2),this.height===1?0:(this.height/2));f.lineWidth=this.strokeWidth;var g=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=g},complexity:function(){return 1},toObject:function(){return e(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}});c.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" ");c.Line.fromElement=function(g,f){var i=c.parseAttributes(g,c.Line.ATTRIBUTE_NAMES);var h=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new c.Line(h,e(i,f))};c.Line.fromObject=function(f){var g=[f.x1,f.y1,f.x2,f.y2];return new c.Line(g,f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),d=Math.PI*2,e=b.util.object.extend;if(b.Circle){b.warn("fabric.Circle is already defined.");return}b.Circle=b.util.createClass(b.Object,{type:"circle",initialize:function(f){f=f||{};this.set("radius",f.radius||0);this.callSuper("initialize",f);var g=this.get("radius")*2;this.set("width",g).set("height",g)},toObject:function(){return e(this.callSuper("toObject"),{radius:this.get("radius")})},toSVG:function(){return('')},_render:function(f,g){f.beginPath();f.globalAlpha*=this.opacity;f.arc(g?this.left:0,g?this.top:0,this.radius,0,d,false);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(f){this.radius=f;this.set("width",f*2).set("height",f*2)},complexity:function(){return 1}});b.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Circle.fromElement=function(g,f){f||(f={});var h=b.parseAttributes(g,b.Circle.ATTRIBUTE_NAMES);if(!c(h)){throw Error("value of `r` attribute is required and can not be negative")}if("left" in h){h.left-=(f.width/2)||0}if("top" in h){h.top-=(f.height/2)||0}return new b.Circle(e(h,f))};function c(f){return(("radius" in f)&&(f.radius>0))}b.Circle.fromObject=function(f){return new b.Circle(f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Triangle){b.warn("fabric.Triangle is already defined");return}b.Triangle=b.util.createClass(b.Object,{type:"triangle",initialize:function(c){c=c||{};this.callSuper("initialize",c);this.set("width",c.width||100).set("height",c.height||100)},_render:function(c){var d=this.width/2,e=this.height/2;c.beginPath();c.moveTo(-d,e);c.lineTo(0,-e);c.lineTo(d,e);c.closePath();if(this.fill){c.fill()}if(this.stroke){c.stroke()}},complexity:function(){return 1},toSVG:function(){var c=this.width/2,d=this.height/2;var e=[-c+" "+d,"0 "+-d,c+" "+d].join(",");return''}});b.Triangle.fromObject=function(c){return new b.Triangle(c)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),c=Math.PI*2,d=b.util.object.extend;if(b.Ellipse){b.warn("fabric.Ellipse is already defined.");return}b.Ellipse=b.util.createClass(b.Object,{type:"ellipse",initialize:function(e){e=e||{};this.callSuper("initialize",e);this.set("rx",e.rx||0);this.set("ry",e.ry||0);this.set("width",this.get("rx")*2);this.set("height",this.get("ry")*2)},toObject:function(){return d(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,f){if(this.rx===0||this.ry===0){return}return this.callSuper("render",e,f)},_render:function(e,f){e.beginPath();e.save();e.globalAlpha*=this.opacity;e.transform(1,0,0,this.ry/this.rx,0,0);e.arc(f?this.left:0,f?this.top:0,this.rx,0,c,false);if(this.stroke){e.stroke()}if(this.fill){e.fill()}e.restore()},complexity:function(){return 1}});b.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Ellipse.fromElement=function(f,e){e||(e={});var g=b.parseAttributes(f,b.Ellipse.ATTRIBUTE_NAMES);if("left" in g){g.left-=(e.width/2)||0}if("top" in g){g.top-=(e.height/2)||0}return new b.Ellipse(d(g,e))};b.Ellipse.fromObject=function(e){return new b.Ellipse(e)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={});if(c.Rect){console.warn("fabric.Rect is already defined");return}c.Rect=c.util.createClass(c.Object,{type:"rect",options:{rx:0,ry:0},initialize:function(d){this._initStateProperties();this.callSuper("initialize",d);this._initRxRy()},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){if(this.rx&&!this.ry){this.ry=this.rx}else{if(this.ry&&!this.rx){this.rx=this.ry}}},_render:function(f){var j=this.rx||0,i=this.ry||0,d=-this.width/2,k=-this.height/2,e=this.width,g=this.height;f.beginPath();f.globalAlpha*=this.opacity;if(this.group){f.translate(this.x||0,this.y||0)}f.moveTo(d+j,k);f.lineTo(d+e-j,k);f.bezierCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.bezierCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.bezierCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.bezierCurveTo(d,k,d+j,k,d+j,k);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},_normalizeLeftTopProperties:function(d){if(d.left){this.set("left",d.left+this.getWidth()/2)}this.set("x",d.left||0);if(d.top){this.set("top",d.top+this.getHeight()/2)}this.set("y",d.top||0);return this},complexity:function(){return 1},toObject:function(){return c.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return''}});c.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");function a(d){d.left=d.left||0;d.top=d.top||0;return d}c.Rect.fromElement=function(e,d){if(!e){return null}var g=c.parseAttributes(e,c.Rect.ATTRIBUTE_NAMES);g=a(g);var f=new c.Rect(c.util.object.extend((d?c.util.object.clone(d):{}),g));f._normalizeLeftTopProperties(g);return f};c.Rect.fromObject=function(d){return new c.Rect(d)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),a=c.util.toFixed;if(c.Polyline){c.warn("fabric.Polyline is already defined");return}c.Polyline=c.util.createClass(c.Object,{type:"polyline",initialize:function(e,d){d=d||{};this.set("points",e);this.callSuper("initialize",d);this._calcDimensions()},_calcDimensions:function(){return c.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return c.Polygon.prototype.toObject.call(this)},toSVG:function(){var f=[];for(var e=0,d=this.points.length;e"].join("")},_render:function(f){var e;f.beginPath();for(var g=0,d=this.points.length;g"].join("")},_render:function(l){var k;l.beginPath();for(var m=0,j=this.points.length;m1){E=Math.sqrt(E);O*=E;N*=E}var R=aa/O;var Q=W/O;var D=(-W)/N;var C=(aa)/N;var H=R*M+Q*L;var q=D*M+C*L;var F=R*T+Q*S;var ab=D*T+C*S;var Z=(F-H)*(F-H)+(ab-q)*(ab-q);var U=1/Z-0.25;if(U<0){U=0}var w=Math.sqrt(U);if(P==J){w=-w}var V=0.5*(H+F)-w*(ab-q);var K=0.5*(q+ab)+w*(F-H);var v=Math.atan2(q-K,H-V);var u=Math.atan2(ab-K,F-V);var Y=u-v;if(Y<0&&P==1){Y+=2*Math.PI}else{if(Y>0&&P==0){Y-=2*Math.PI}}var B=Math.ceil(Math.abs(Y/(Math.PI*0.5+0.001)));var I=[];for(var X=0;X"},toObject:function(){var q=g(this.callSuper("toObject"),{path:this.path});if(this.sourcePath){q.sourcePath=this.sourcePath}if(this.transformMatrix){q.transformMatrix=this.transformMatrix}return q},toDatalessObject:function(){var q=this.toObject();if(this.sourcePath){q.path=this.sourcePath}delete q.sourcePath;return q},toSVG:function(){var t=[];for(var r=0,q=this.path.length;r',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var C=[],z,v,y;for(var u=0,t,q,w=this.path.length;uB){for(var r=1,x=q.length;r"];for(var l=0,j=m.length;l");return k.join("")},toString:function(){return"#"},isSameColor:function(){var j=this.getObjects()[0].get("fill");return this.getObjects().every(function(k){return k.get("fill")===j})},complexity:function(){return this.paths.reduce(function(j,k){return j+((k&&k.complexity)?k.complexity():0)},0)},toGrayscale:function(){var j=this.paths.length;while(j--){this.paths[j].toGrayscale()}return this},getObjects:function(){return this.paths}});function c(m){for(var l=0,j=m.length;l"},getObjects:function(){return this.objects},add:function(h){this._restoreObjectsState();this.objects.push(h);h.setActive(true);this._calcBounds();this._updateObjectsCoords();return this},remove:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},size:function(){return this.getObjects().length},set:function(h,k){if(typeof k=="function"){this.set(h,k(this[h]))}else{if(h==="fill"||h==="opacity"){var j=this.objects.length;this[h]=k;while(j--){this.objects[j].set(h,k)}}else{this[h]=k}}return this},contains:function(h){return this.objects.indexOf(h)>-1},toObject:function(){return g(this.callSuper("toObject"),{objects:b(this.objects,"clone")})},render:function(j){j.save();this.transform(j);var n=Math.max(this.scaleX,this.scaleY);for(var l=0,h=this.objects.length,k;k=this.objects[l];l++){var m=k.borderScaleFactor;k.borderScaleFactor=n;k.render(j);k.borderScaleFactor=m}this.hideBorders||this.drawBorders(j);this.hideCorners||this.drawCorners(j);j.restore();this.setCoords()},item:function(h){return this.getObjects()[h]},complexity:function(){return this.getObjects().reduce(function(i,h){i+=(typeof h.complexity=="function")?h.complexity():0;return i},0)},_restoreObjectsState:function(){this.objects.forEach(this._restoreObjectState,this);return this},_restoreObjectState:function(j){var l=this.get("left"),m=this.get("top"),h=this.getAngle()*(Math.PI/180),k=j.get("originalLeft"),n=j.get("originalTop"),i=Math.cos(h)*j.get("top")+Math.sin(h)*j.get("left"),o=-Math.sin(h)*j.get("top")+Math.cos(h)*j.get("left");j.setAngle(j.getAngle()+this.getAngle());j.set("left",l+o*this.get("scaleX"));j.set("top",m+i*this.get("scaleY"));j.set("scaleX",j.get("scaleX")*this.get("scaleX"));j.set("scaleY",j.get("scaleY")*this.get("scaleY"));j.setCoords();j.hideCorners=false;j.setActive(false);j.setCoords();return this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){this._originalLeft=this.get("left");this._originalTop=this.get("top");return this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){this.forEachObject(function(h){h.setCoords()});return this},activateAllObjects:function(){return this.setActive(true)},setActive:function(h){this.forEachObject(function(i){i.setActive(h)});return this},forEachObject:e.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var j=this.getObjects(),i=j[0]?j[0].get("opacity"):1;var h=j.every(function(k){return k.get("opacity")===i});if(h){this.opacity=i}},_calcBounds:function(){var s=[],q=[],p,n,k,h,m,l,u,r=0,t=this.objects.length;for(;ri.x&&j-hi.y},toGrayscale:function(){var h=this.objects.length;while(h--){this.objects[h].toGrayscale()}}});e.Group.fromObject=function(h){return new e.Group(h.objects,h)}})(typeof exports!="undefined"?exports:this);(function(a){var b=fabric.util.object.extend;if(!a.fabric){a.fabric={}}if(a.fabric.Image){fabric.warn("fabric.Image is already defined.");return}if(!fabric.Object){fabric.warn("fabric.Object is required for fabric.Image initialization");return}fabric.Image=fabric.util.createClass(fabric.Object,{active:false,bordervisibility:false,cornervisibility:false,type:"image",filters:[],initialize:function(d,c){c||(c={});this.callSuper("initialize",c);this._initElement(d);this._originalImage=this.getElement();this._initConfig(c);if(c.filters){this.filters=c.filters;this.applyFilters()}},getElement:function(){return this._element},setElement:function(c){this._element=c;this._initConfig();return this},getOriginalSize:function(){var c=this.getElement();return{width:c.width,height:c.height}},setBorderVisibility:function(c){this._resetWidthHeight();this._adjustWidthHeightToBorders(showBorder);this.setCoords()},setCornersVisibility:function(c){this.cornervisibility=!!c},render:function(c,d){c.save();if(!d){this.transform(c)}this._render(c);if(this.active&&!d){this.drawBorders(c);this.hideCorners||this.drawCorners(c)}c.restore()},toObject:function(){return b(this.callSuper("toObject"),{src:this._originalImage.src||this._originalImage._src,filters:this.filters.concat()})},toSVG:function(){return''},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(c){this.constructor.fromObject(this.toObject(),c)},applyFilters:function(i){if(this.filters.length===0){this.setElement(this._originalImage);i&&i();return}var c=typeof Buffer!=="undefined"&&typeof window==="undefined",g=this._originalImage,e=fabric.document.createElement("canvas"),f=c?new (require("canvas").Image):fabric.document.createElement("img"),h=this;if(!e.getContext&&typeof G_vmlCanvasManager!="undefined"){G_vmlCanvasManager.initElement(e)}e.width=g.width;e.height=g.height;e.getContext("2d").drawImage(g,0,0);this.filters.forEach(function(j){j&&j.applyTo(e)});f.onload=function(){h.setElement(f);i&&i();f.onload=e=g=null};f.width=g.width;f.height=g.height;if(c){var d=e.toDataURL("image/png").replace(/data:image\/png;base64,/,"");f.src=new Buffer(d,"base64");h.setElement(f);i&&i()}else{f.src=e.toDataURL("image/png")}return this},_render:function(c){c.drawImage(this.getElement(),-this.width/2,-this.height/2,this.width,this.height)},_adjustWidthHeightToBorders:function(c){if(c){this.currentBorder=this.borderwidth;this.width+=(2*this.currentBorder);this.height+=(2*this.currentBorder)}else{this.currentBorder=0}},_resetWidthHeight:function(){var c=this.getElement();this.set("width",c.width);this.set("height",c.height)},_initElement:function(c){this.setElement(fabric.util.getById(c));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(c){this.setOptions(c||{});this._setBorder();this._setWidthHeight()},_initFilters:function(c){if(c.filters&&c.filters.length){this.filters=c.filters.map(function(d){return fabric.Image.filters[d.type].fromObject(d)})}},_setBorder:function(){if(this.bordervisibility){this.currentBorder=this.borderwidth}else{this.currentBorder=0}},_setWidthHeight:function(){var c=2*this.currentBorder;this.width=(this.getElement().width||0)+c;this.height=(this.getElement().height||0)+c},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(d,f){var c=fabric.document.createElement("img"),e=d.src;if(d.width){c.width=d.width}if(d.height){c.height=d.height}c.onload=function(){fabric.Image.prototype._initFilters.call(d,d);var g=new fabric.Image(c,d);f&&f(g);c=c.onload=null};c.src=e};fabric.Image.fromURL=function(d,f,e){var c=fabric.document.createElement("img");c.onload=function(){if(f){f(new fabric.Image(c,e))}c=c.onload=null};c.src=d};fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" ");fabric.Image.fromElement=function(d,f,c){c||(c={});var e=fabric.parseAttributes(d,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(e["xlink:href"],f,b(e,c))};fabric.Image.async=true})(typeof exports!="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var a=this.get("angle");if(a>-225&&a<=-135){return -180}else{if(a>-135&&a<=-45){return -90}else{if(a>-45&&a<=45){return 0}else{if(a>45&&a<=135){return 90}else{if(a>135&&a<=225){return 180}else{if(a>225&&a<=315){return 270}else{if(a>315){return 360}}}}}}}return 0},straighten:function(){var a=this._getAngleValueForStraighten();this.setAngle(a);return this},fxStraighten:function(b){b=b||{};var c=function(){},d=b.onComplete||c,a=b.onChange||c,e=this;fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(f){e.setAngle(f);a()},onComplete:function(){e.setCoords();d()},onStart:function(){e.setActive(false)}});return this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(a){a.straighten();this.renderAll();return this},fxStraightenObject:function(a){a.fxStraighten({onChange:this.renderAll.bind(this)});return this}});fabric.Image.filters={};fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(d){var c=d.getContext("2d"),a=c.getImageData(0,0,d.width,d.height),h=a.data,e=a.width,l=a.height,k,b,g,f;for(g=0;gh&&m>h&&o>h&&p(a-m)'},_render:function(f){var h=Cufon.textOptions||(Cufon.textOptions={});h.left=this.left;h.top=this.top;h.context=f;h.color=this.fill;var g=this._initDummyElement();this.transform(f);Cufon.replaceElement(g,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor});this.width=h.width;this.height=h.height;this._totalLineHeight=h.totalLineHeight;this._fontAscent=h.fontAscent;this._boundaries=h.boundaries;this._shadowOffsets=h.shadowOffsets;this._shadows=h.shadows||[];this.setCoords()},_initDummyElement:function(){var g=c.document.createElement("pre"),f=c.document.createElement("div");f.appendChild(g);if(typeof G_vmlCanvasManager=="undefined"){g.innerHTML=this.text}else{g.innerText=this.text.replace(/\r?\n/gi,"\r")}g.style.fontSize=this.fontSize+"px";g.style.letterSpacing="normal";return g},render:function(f,g){f.save();this._render(f);if(!g&&this.active){this.drawBorders(f);this.hideCorners||this.drawCorners(f)}f.restore()},toObject:function(){return e(this.callSuper("toObject"),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor})},toSVG:function(){var i=this.text.split(/\r?\n/),j=-this._fontAscent-((this._fontAscent/5)*this.lineHeight),g=-(this.width/2),f=(this.height/2)-(i.length*this.fontSize)-this._totalLineHeight,h=this._getSVGTextAndBg(j,g,i),k=this._getSVGShadows(j,i);f+=((this._fontAscent/5)*this.lineHeight);return['',h.textBgRects.join(""),"',k.join(""),h.textSpans.join(""),"",""].join("")},_getSVGShadows:function(h,n){var o=[],k,l,p,g,f=1;for(k=0,p=this._shadows.length;k",c.util.string.escapeXml(n[l]),"");f=1}else{f++}}}return o},_getSVGTextAndBg:function(j,h,n){var g=[],k=[],l,m,o,f=1;for(l=0,o=n.length;l",c.util.string.escapeXml(n[l]),"");f=1}else{f++}if(!this.backgroundColor){continue}k.push("')}return{textSpans:g,textBgRects:k}},_getFillAttributes:function(f){var g=f?new c.Color(f):"";if(!g||!g.getSource()||g.getAlpha()===1){return'fill="'+f+'"'}return'opacity="'+g.getAlpha()+'" fill="'+g.setAlpha(1).toRgb()+'"'},setColor:function(f){this.set("fill",f);return this},setFontsize:function(f){this.set("fontSize",f);this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this.setCoords();return this},set:function(f,g){if(typeof f=="object"){for(var h in f){this.set(h,f[h])}}else{this[f]=g;if(f==="fontFamily"&&this.path){this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+g+"$3")}}return this}});c.Text.fromObject=function(f){return new c.Text(f.text,d(f))};c.Text.fromElement=function(f){}})(typeof exports!="undefined"?exports:this);(function(){if(typeof document!="undefined"&&typeof window!="undefined"){return}var DOMParser=new require("xmldom").DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;function request(url,encoding,callback){var oURL=URL.parse(url),client=HTTP.createClient(80,oURL.hostname),request=client.request("GET",oURL.pathname,{host:oURL.hostname});client.addListener("error",function(err){if(err.errno===process.ECONNREFUSED){fabric.log("ECONNREFUSED: connection refused to "+client.host+":"+client.port)}else{fabric.log(err.message)}});request.end();request.on("response",function(response){var body="";if(encoding){response.setEncoding(encoding)}response.on("end",function(){callback(body)});response.on("data",function(chunk){if(response.statusCode==200){body+=chunk}})})}fabric.util.loadImage=function(url,callback){request(url,"binary",function(body){var img=new Image();img.src=new Buffer(body,"binary");img._src=url;callback(img)})};fabric.loadSVGFromURL=function(url,callback){url=url.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();request(url,"",function(body){var doc=new DOMParser().parseFromString(body);fabric.parseSVGDocument(doc.documentElement,function(results,options){callback(results,options)})})};fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body);callback&&callback()})};fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){var oImg=new fabric.Image(img);oImg._initConfig(object);oImg._initFilters(object);callback(oImg)})};fabric.createCanvasForNode=function(width,height){var canvasEl=fabric.document.createElement("canvas"),nodeCanvas=new Canvas(width||600,height||600);canvasEl.style={};canvasEl.width=nodeCanvas.width;canvasEl.height=nodeCanvas.height;var canvas=fabric.Canvas||fabric.StaticCanvas;var fabricCanvas=new canvas(canvasEl);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};if(fabric.Canvas){fabric.Canvas.prototype.createPNGStream}var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(width){origSetWidth.call(this);this.nodeCanvas.width=width;return this};if(fabric.Canvas){fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth}var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(height){origSetHeight.call(this);this.nodeCanvas.height=height;return this};if(fabric.Canvas){fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight}})(); \ No newline at end of file +var Cufon=(function(){var k=function(){return k.replace.apply(null,arguments)};var u=k.DOM={ready:(function(){var z=false,B={loaded:1,complete:1};var y=[],A=function(){if(z){return}z=true;for(var C;C=y.shift();C()){}};if(fabric.document.addEventListener){fabric.document.addEventListener("DOMContentLoaded",A,false);fabric.window.addEventListener("pageshow",A,false)}if(!fabric.window.opera&&fabric.document.readyState){(function(){B[fabric.document.readyState]?A():setTimeout(arguments.callee,10)})()}if(fabric.document.readyState&&fabric.document.createStyleSheet){(function(){try{fabric.document.body.doScroll("left");A()}catch(C){setTimeout(arguments.callee,1)}})()}o(fabric.window,"load",A);return function(C){if(!arguments.length){A()}else{z?C():y.push(C)}}})()};var l=k.CSS={Size:function(z,y){this.value=parseFloat(z);this.unit=String(z).match(/[a-z%]*$/)[0]||"px";this.convert=function(A){return A/y*this.value};this.convertFrom=function(A){return A/this.value*y};this.toString=function(){return this.value+this.unit}},getStyle:function(y){return new a(y.style)},quotedList:i(function(B){var A=[],z=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,y;while(y=z.exec(B)){A.push(y[3]||y[1])}return A}),ready:(function(){var A=false;var z=[],B=function(){A=true;for(var D;D=z.shift();D()){}};var y=Object.prototype.propertyIsEnumerable?f("style"):{length:0};var C=f("link");u.ready(function(){var G=0,F;for(var E=0,D=C.length;F=C[E],E=y.length+G){B()}else{setTimeout(arguments.callee,10)}});return function(D){if(A){D()}else{z.push(D)}}})(),supports:function(A,z){var y=fabric.document.createElement("span").style;if(y[A]===undefined){return false}y[A]=z;return y[A]===z},textAlign:function(B,A,y,z){if(A.get("textAlign")=="right"){if(y>0){B=" "+B}}else{if(y400}if(F==500){F=400}for(var G in D){G=parseInt(G,10);if(!C||GA){A=G}H.push(G)}if(FA){F=A}H.sort(function(J,I){return(B?(J>F&&I>F)?JI:(JI:JV){V=Q}if(P>T){T=P}if(Qz){z=e}L.push(e);e=0;continue}var B=ab.glyphs[ag[aa]]||ab.missingGlyph;if(!B){continue}e+=D=Number(B.w||ab.w)+U}L.push(e);e=Math.max(z,e);var m=[];for(var aa=L.length;aa--;){m[aa]=e-L[aa]}if(D===null){return null}V+=(H.width-D);C+=H.minX;var v,p;if(n){v=J;p=J.firstChild}else{v=fabric.document.createElement("span");v.className="cufon cufon-canvas";v.alt=E;p=fabric.document.createElement("canvas");v.appendChild(p);if(A.printable){var Y=fabric.document.createElement("span");Y.className="cufon-alt";Y.appendChild(fabric.document.createTextNode(E));v.appendChild(Y)}}var ah=v.style;var O=p.style||{};var k=o.convert(H.height-I+T);var af=Math.ceil(k);var S=af/k;p.width=Math.ceil(o.convert(e+V-C)*S);p.height=af;I+=H.minY;O.top=Math.round(o.convert(I-ab.ascent))+"px";O.left=Math.round(o.convert(C))+"px";var j=Math.ceil(o.convert(e*S));var t=j+"px";var s=o.convert(ab.height);var F=(A.lineHeight-1)*o.convert(-ab.ascent/5)*(M-1);Cufon.textOptions.width=j;Cufon.textOptions.height=(s*M)+F;Cufon.textOptions.lines=M;Cufon.textOptions.totalLineHeight=F;if(a){ah.width=t;ah.height=s+"px"}else{ah.paddingLeft=t;ah.paddingBottom=(s-1)+"px"}var ad=Cufon.textOptions.context||p.getContext("2d"),K=af/H.height;Cufon.textOptions.fontAscent=ab.ascent*K;Cufon.textOptions.boundaries=null;for(var w=Cufon.textOptions.shadowOffsets,aa=R.length;aa--;){w[aa]=[R[aa][0]*K,R[aa][1]*K]}ad.save();ad.scale(K,K);ad.translate(-C-((1/K*p.width)/2)+(Cufon.fonts[ab.family].offsetLeft||0),-I-(Cufon.textOptions.height/K)/2);ad.lineWidth=ab.face["underline-thickness"];ad.save();function q(l,i){ad.strokeStyle=i;ad.beginPath();ad.moveTo(0,l);ad.lineTo(e,l);ad.stroke()}var r=Cufon.getTextDecoration(A),u=A.fontStyle==="italic";function ae(){ad.save();ad.fillStyle=A.backgroundColor;var aj=0,an=0,y=[{left:0}];if(A.textAlign==="right"){ad.translate(m[an],0);y[0].left=m[an]*K}else{if(A.textAlign==="center"){ad.translate(m[an]/2,0);y[0].left=m[an]/2*K}}for(var al=0,ak=ag.length;al.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}');function c(e,f){return a(e,/(?:em|ex|%)$/i.test(f)?"1em":f)}function a(h,i){if(/px$/i.test(i)){return parseFloat(i)}var g=h.style.left,f=h.runtimeStyle.left;h.runtimeStyle.left=h.currentStyle.left;h.style.left=i;var e=h.style.pixelLeft;h.style.left=g;h.runtimeStyle.left=f;return e}return function(T,z,O,w,D,U,M){var h=(z===null);if(h){z=D.alt}var B=T.viewBox;var j=O.computedFontSize||(O.computedFontSize=new Cufon.CSS.Size(c(U,O.get("fontSize"))+"px",T.baseSize));var L=O.computedLSpacing;if(L==undefined){L=O.get("letterSpacing");O.computedLSpacing=L=(L=="normal")?0:~~j.convertFrom(a(U,L))}var t,m;if(h){t=D;m=D.firstChild}else{t=fabric.document.createElement("span");t.className="cufon cufon-vml";t.alt=z;m=fabric.document.createElement("span");m.className="cufon-vml-canvas";t.appendChild(m);if(w.printable){var R=fabric.document.createElement("span");R.className="cufon-alt";R.appendChild(fabric.document.createTextNode(z));t.appendChild(R)}if(!M){t.appendChild(fabric.document.createElement("cvml:shape"))}}var Z=t.style;var G=m.style;var f=j.convert(B.height),W=Math.ceil(f);var K=W/f;var J=B.minX,I=B.minY;G.height=W;G.top=Math.round(j.convert(I-T.ascent));G.left=Math.round(j.convert(J));Z.height=j.convert(T.height)+"px";var p=Cufon.getTextDecoration(w);var y=O.get("color");var X=Cufon.CSS.textTransform(z,O).split("");var e=0,H=0,q=null;var x,r,A=w.textShadow;for(var S=0,Q=0,P=X.length;St?m:(l-k);p(q(currentTime,j,byValue,m));if(l>t||n()){u.onComplete&&u.onComplete();return}h(o)})()}var h=(function(){return fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(k,j){fabric.window.setTimeout(k,1000/60)}})();function a(k,m,l){if(k){var j=new Image();j.onload=function(){m&&m.call(l,j);j=j.onload=null};j.src=k}else{m&&m.call(l,k)}}fabric.util.removeFromArray=g;fabric.util.degreesToRadians=b;fabric.util.toFixed=d;fabric.util.getRandomInt=e;fabric.util.falseFunction=i;fabric.util.animate=c;fabric.util.requestAnimFrame=h;fabric.util.loadImage=a})();(function(){var d=Array.prototype.slice;if(!Array.prototype.indexOf){Array.prototype.indexOf=function(g){if(this===void 0||this===null){throw new TypeError()}var h=Object(this),e=h.length>>>0;if(e===0){return -1}var i=0;if(arguments.length>0){i=Number(arguments[1]);if(i!==i){i=0}else{if(i!==0&&i!==(1/0)&&i!==-(1/0)){i=(i>0||-1)*Math.floor(Math.abs(i))}}}if(i>=e){return -1}var f=i>=0?i:Math.max(e-Math.abs(i),0);for(;f>>0;f>>0;g>>0;f>>0;f>>0;g>>0,f=0,h;if(arguments.length>1){h=arguments[1]}else{do{if(f in this){h=this[f++];break}if(++f>=e){throw new TypeError()}}while(true)}for(;f=e){e=h[f][g]}}}else{while(f--){if(h[f]>=e){e=h[f]}}}return e}function c(h,g){if(!h||h.length===0){return undefined}var f=h.length-1,e=g?h[f][g]:h[f];if(g){while(f--){if(h[f][g]",">")}fabric.util.string={camelize:b,capitalize:c,escapeXml:a}}());(function(){var c=Array.prototype.slice,a=Function.prototype.apply,b=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(d){var g=this,e=c.call(arguments,1),f;if(e.length){f=function(){return a.call(g,this instanceof b?this:d,e.concat(c.call(arguments)))}}else{f=function(){return a.call(g,this instanceof b?this:d,arguments)}}b.prototype=this.prototype;f.prototype=new b;return f}}})();(function(){var f=Array.prototype.slice,e=function(){};var c=(function(){for(var g in {toString:1}){if(g==="toString"){return false}}return true})();var b;if(c){b=function(g,i){if(i.toString!==Object.prototype.toString){g.prototype.toString=i.toString}if(i.valueOf!==Object.prototype.valueOf){g.prototype.valueOf=i.valueOf}for(var h in i){g.prototype[h]=i[h]}}}else{b=function(g,i){for(var h in i){g.prototype[h]=i[h]}}}function a(){}function d(){var k=null,j=f.call(arguments,0);if(typeof j[0]==="function"){k=j.shift()}function g(){this.initialize.apply(this,arguments)}g.superclass=k;g.subclasses=[];if(k){a.prototype=k.prototype;g.prototype=new a;k.subclasses.push(g)}for(var h=0,l=j.length;h-1?c(j,l.match(/opacity:\s*(\d?\.?\d*)/)[1]):j}for(var m in l){if(m==="opacity"){c(j,l[m])}else{var k=(m==="float"||m==="cssFloat")?(typeof n.styleFloat==="undefined"?"cssFloat":"styleFloat"):m;n[k]=l[m]}}return j}var h=fabric.document.createElement("div"),g=typeof h.style.opacity==="string",b=typeof h.style.filter==="string",a=fabric.document.defaultView,f=a&&typeof a.getComputedStyle!=="undefined",d=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,c=function(i){return i};if(g){c=function(i,j){i.style.opacity=j;return i}}else{if(b){c=function(i,j){var k=i.style;if(i.currentStyle&&!i.currentStyle.hasLayout){k.zoom=1}if(d.test(k.filter)){j=j>=0.9999?"":("alpha(opacity="+(j*100)+")");k.filter=k.filter.replace(d,j)}else{k.filter+=" alpha(opacity="+(j*100)+")"}return i}}}fabric.util.setStyle=e})();(function(){var h=Array.prototype.slice;function g(j){return typeof j==="string"?fabric.document.getElementById(j):j}function b(j){return h.call(j,0)}try{var i=b(fabric.document.childNodes) instanceof Array}catch(a){}if(!i){b=function(k){var j=new Array(k.length),l=k.length;while(l--){j[l]=k[l]}return j}}function c(k,j){var l=fabric.document.createElement(k);for(var m in j){if(m==="class"){l.className=j[m]}else{if(m==="for"){l.htmlFor=j[m]}else{l.setAttribute(m,j[m])}}}return l}function f(j,k){if((" "+j.className+" ").indexOf(" "+k+" ")===-1){j.className+=(j.className?" ":"")+k}}function e(k,l,j){if(typeof l==="string"){l=c(l,j)}if(k.parentNode){k.parentNode.replaceChild(l,k)}l.appendChild(k);return l}function d(k){var j=0,l=0;do{j+=k.offsetTop||0;l+=k.offsetLeft||0;k=k.offsetParent}while(k);return({left:l,top:j})}(function(){var k=fabric.document.documentElement.style;var l="userSelect" in k?"userSelect":"MozUserSelect" in k?"MozUserSelect":"WebkitUserSelect" in k?"WebkitUserSelect":"KhtmlUserSelect" in k?"KhtmlUserSelect":"";function m(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=fabric.util.falseFunction}if(l){n.style[l]="none"}else{if(typeof n.unselectable=="string"){n.unselectable="on"}}return n}function j(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=null}if(l){n.style[l]=""}else{if(typeof n.unselectable=="string"){n.unselectable=""}}return n}fabric.util.makeElementUnselectable=m;fabric.util.makeElementSelectable=j})();(function(){function j(k,o){var m=fabric.document.getElementsByTagName("head")[0],l=fabric.document.createElement("script"),n=true;l.type="text/javascript";l.setAttribute("runat","server");l.onload=l.onreadystatechange=function(p){if(n){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete"){return}n=false;o(p||fabric.window.event);l=l.onload=l.onreadystatechange=null}};l.src=k;m.appendChild(l)}fabric.util.getScript=j})();fabric.util.getById=g;fabric.util.toArray=b;fabric.util.makeElement=c;fabric.util.addClass=f;fabric.util.wrapElement=e;fabric.util.getElementOffset=d})();(function(){function d(e,f){return e+(/\?/.test(e)?"&":"?")+f}var c=(function(){var h=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest()}];for(var e=h.length;e--;){try{var g=h[e]();if(g){return h[e]}}catch(f){}}})();function a(){}function b(g,f){f||(f={});var j=f.method?f.method.toUpperCase():"GET",i=f.onComplete||function(){},h=c(),e;h.onreadystatechange=function(){if(h.readyState===4){i(h);h.onreadystatechange=a}};if(j==="GET"){e=null;if(typeof f.parameters=="string"){g=d(g,f.parameters)}}h.open(j,g,true);if(j==="POST"||j==="PUT"){h.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}h.send(e);return h}fabric.util.request=b})();(function(){fabric.util.ease={};function d(F,E,H,G){return H*(F/=G)*F+E}function l(F,E,H,G){return -H*(F/=G)*(F-2)+E}function r(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E}function B(F,E,H,G){return H*(F/=G)*F*F+E}function q(F,E,H,G){return H*((F=F/G-1)*F*F+1)+E}function u(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F+E}return H/2*((F-=2)*F*F+2)+E}function t(F,E,H,G){return H*(F/=G)*F*F*F+E}function g(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E}function k(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E}function y(F,E,H,G){return H*(F/=G)*F*F*F*F+E}function j(F,E,H,G){return H*((F=F/G-1)*F*F*F*F+1)+E}function n(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F*F+E}return H/2*((F-=2)*F*F*F*F+2)+E}function f(F,E,H,G){return -H*Math.cos(F/G*(Math.PI/2))+H+E}function o(F,E,H,G){return H*Math.sin(F/G*(Math.PI/2))+E}function v(F,E,H,G){return -H/2*(Math.cos(Math.PI*F/G)-1)+E}function D(F,E,H,G){return(F==0)?E:H*Math.pow(2,10*(F/G-1))+E}function c(F,E,H,G){return(F==G)?E+H:H*(-Math.pow(2,-10*F/G)+1)+E}function i(F,E,H,G){if(F==0){return E}if(F==G){return E+H}if((F/=G/2)<1){return H/2*Math.pow(2,10*(F-1))+E}return H/2*(-Math.pow(2,-10*--F)+2)+E}function h(F,E,H,G){return -H*(Math.sqrt(1-(F/=G)*F)-1)+E}function p(F,E,H,G){return H*Math.sqrt(1-(F=F/G-1)*F)+E}function x(F,E,H,G){if((F/=G/2)<1){return -H/2*(Math.sqrt(1-F*F)-1)+E}return H/2*(Math.sqrt(1-(F-=2)*F)+1)+E}function s(G,E,K,J){var H=1.70158;var I=0;var F=K;if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(F-1;v=v.split(/\s+/);var t=[];if(x){for(var u=0,s=v.length;u/i,""))}if(!v.documentElement){return}g.parseSVGDocument(v.documentElement,function(y,x){j.set(s,{objects:g.util.array.invoke(y,"toObject"),options:x});u(y,x)})}}function a(u){var t=u.objects,s=u.options;t=t.map(function(v){return g[e(v.type)].fromObject(v)});return({objects:t,options:s})}function m(s,v){s=s.trim();var t;if(typeof DOMParser!=="undefined"){var u=new DOMParser();if(u&&u.parseFromString){t=u.parseFromString(s,"text/xml")}}else{if(g.window.ActiveXObject){var t=new ActiveXObject("Microsoft.XMLDOM");t.async="false";t.loadXML(s.replace(//i,""))}}g.parseSVGDocument(t.documentElement,function(x,w){v(x,w)})}function l(v){var t="";for(var u=0,s=v.length;u",'",""].join("")}return t}o(g,{parseAttributes:d,parseElements:f,parseStyleAttribute:h,parsePointsAttribute:r,getCSSRules:c,loadSVGFromURL:b,loadSVGFromString:m,createSVGFontFacesMarkup:l})})(typeof exports!="undefined"?exports:this);(function(){function c(h){var g=h.getAttribute("style");if(g){var k=g.split(/\s*;\s*/);for(var f=k.length;f--;){var e=k[f].split(/\s*:\s*/),d=e[0].trim(),j=e[1].trim();if(d==="stop-color"){return j}}}}fabric.Gradient={create:function(l,m){m||(m={});var f=m.x1||0,k=m.y1||0,e=m.x2||l.canvas.width,i=m.y2||0,g=m.colorStops;var j=l.createLinearGradient(f,k,e,i);for(var h in g){var d=g[h];j.addColorStop(parseFloat(h),d)}return j},fromElement:function(d,m,l){var j=d.getElementsByTagName("stop"),d,f,e={},g,k={x1:d.getAttribute("x1")||0,y1:d.getAttribute("y1")||0,x2:d.getAttribute("x2")||"100%",y2:d.getAttribute("y2")||0};for(var h=j.length;h--;){d=j[h];f=d.getAttribute("offset");f=parseFloat(f)/(/%$/.test(f)?100:1);e[f]=c(d)||d.getAttribute("stop-color")}a(l,k);return fabric.Gradient.create(m,{x1:k.x1,y1:k.y1,x2:k.x2,y2:k.y2,colorStops:e})},forObject:function(g,d,e){e||(e={});a(g,e);var f=fabric.Gradient.create(d,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,colorStops:e.colorStops});return f}};function a(f,e){for(var g in e){if(typeof e[g]==="string"&&/^\d+%$/.test(e[g])){var d=parseFloat(e[g],10);if(g==="x1"||g==="x2"){e[g]=f.width*d/100}else{if(g==="y1"||g==="y2"){e[g]=f.height*d/100}}}if(g==="x1"||g==="x2"){e[g]-=f.width/2}else{if(g==="y1"||g==="y2"){e[g]-=f.height/2}}}}function b(j){var f=j.getElementsByTagName("linearGradient"),d=j.getElementsByTagName("radialGradient"),g,h={};for(var e=f.length;e--;){g=f[e];h[g.id]=g}for(var e=d.length;e--;){g=d[e];h[g.id]=g}return h}fabric.getGradientDefs=b})();(function(b){var c=b.fabric||(b.fabric={});if(c.Point){c.warn("fabric.Point is already defined");return}c.Point=a;function a(d,e){if(arguments.length>0){this.init(d,e)}}a.prototype={constructor:a,init:function(d,e){this.x=d;this.y=e},add:function(d){return new a(this.x+d.x,this.y+d.y)},addEquals:function(d){this.x+=d.x;this.y+=d.y;return this},scalarAdd:function(d){return new a(this.x+d,this.y+d)},scalarAddEquals:function(d){this.x+=d;this.y+=d;return this},subtract:function(d){return new a(this.x-d.x,this.y-d.y)},subtractEquals:function(d){this.x-=d.x;this.y-=d.y;return this},scalarSubtract:function(d){return new a(this.x-d,this.y-d)},scalarSubtractEquals:function(d){this.x-=d;this.y-=d;return this},multiply:function(d){return new a(this.x*d,this.y*d)},multiplyEquals:function(d){this.x*=d;this.y*=d;return this},divide:function(d){return new a(this.x/d,this.y/d)},divideEquals:function(d){this.x/=d;this.y/=d;return this},eq:function(d){return(this.x==d.x&&this.y==d.y)},lt:function(d){return(this.xd.x&&this.y>d.y)},gte:function(d){return(this.x>=d.x&&this.y>=d.y)},lerp:function(e,d){return new a(this.x+(e.x-this.x)*d,this.y+(e.y-this.y)*d)},distanceFrom:function(f){var e=this.x-f.x,d=this.y-f.y;return Math.sqrt(e*e+d*d)},min:function(d){return new a(Math.min(this.x,d.x),Math.min(this.y,d.y))},max:function(d){return new a(Math.max(this.x,d.x),Math.max(this.y,d.y))},toString:function(){return this.x+","+this.y},setXY:function(d,e){this.x=d;this.y=e},setFromPoint:function(d){this.x=d.x;this.y=d.y},swap:function(e){var d=this.x,f=this.y;this.x=e.x;this.y=e.y;e.x=d;e.y=f}}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Intersection){b.warn("fabric.Intersection is already defined");return}function c(d){if(arguments.length>0){this.init(d)}}b.Intersection=c;b.Intersection.prototype={init:function(d){this.status=d;this.points=[]},appendPoint:function(d){this.points.push(d)},appendPoints:function(d){this.points=this.points.concat(d)}};b.Intersection.intersectLineLine=function(h,f,l,k){var m,i=(k.x-l.x)*(h.y-l.y)-(k.y-l.y)*(h.x-l.x),j=(f.x-h.x)*(h.y-l.y)-(f.y-h.y)*(h.x-l.x),g=(k.y-l.y)*(f.x-h.x)-(k.x-l.x)*(f.y-h.y);if(g!=0){var e=i/g,d=j/g;if(0<=e&&e<=1&&0<=d&&d<=1){m=new c("Intersection");m.points.push(new b.Point(h.x+e*(f.x-h.x),h.y+e*(f.y-h.y)))}else{m=new c("No Intersection")}}else{if(i==0||j==0){m=new c("Coincident")}else{m=new c("Parallel")}}return m};b.Intersection.intersectLinePolygon=function(e,d,l){var m=new c("No Intersection"),f=l.length;for(var h=0;h0){m.status="Intersection"}return m};b.Intersection.intersectPolygonPolygon=function(j,h){var f=new c("No Intersection"),l=j.length;for(var k=0;k0){f.status="Intersection"}return f};b.Intersection.intersectPolygonRectangle=function(n,e,d){var g=e.min(d),m=e.max(d),f=new b.Point(m.x,g.y),l=new b.Point(g.x,m.y),k=c.intersectLinePolygon(g,f,n),j=c.intersectLinePolygon(f,m,n),i=c.intersectLinePolygon(m,l,n),h=c.intersectLinePolygon(l,g,n),o=new c("No Intersection");o.appendPoints(k.points);o.appendPoints(j.points);o.appendPoints(i.points);o.appendPoints(h.points);if(o.points.length>0){o.status="Intersection"}return o}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Color){b.warn("fabric.Color is already defined.");return}function c(d){if(!d){this.setSource([0,0,0,1])}else{this._tryParsingColor(d)}}b.Color=c;b.Color.prototype={_tryParsingColor:function(d){var e=c.sourceFromHex(d);if(!e){e=c.sourceFromRgb(d)}if(e){this.setSource(e)}},getSource:function(){return this._source},setSource:function(d){this._source=d},toRgb:function(){var d=this.getSource();return"rgb("+d[0]+","+d[1]+","+d[2]+")"},toRgba:function(){var d=this.getSource();return"rgba("+d[0]+","+d[1]+","+d[2]+","+d[3]+")"},toHex:function(){var h=this.getSource();var f=h[0].toString(16);f=(f.length==1)?("0"+f):f;var e=h[1].toString(16);e=(e.length==1)?("0"+e):e;var d=h[2].toString(16);d=(d.length==1)?("0"+d):d;return f.toUpperCase()+e.toUpperCase()+d.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var d=this.getSource();d[3]=e;this.setSource(d);return this},toGrayscale:function(){var f=this.getSource(),e=parseInt((f[0]*0.3+f[1]*0.59+f[2]*0.11).toFixed(0),10),d=f[3];this.setSource([e,e,e,d]);return this},toBlackWhite:function(d){var g=this.getSource(),f=(g[0]*0.3+g[1]*0.59+g[2]*0.11).toFixed(0),e=g[3],d=d||127;f=(Number(f)','',"',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())];if(this.backgroundImage){h.push('')}for(var j=0,k=this.getObjects(),g=k.length;j");return h.join("")},isEmpty:function(){return this._objects.length===0},remove:function(g){e(this._objects,g);if(this.getActiveObject()===g){this.discardActiveObject()}this.renderAll();return g},sendToBack:function(g){e(this._objects,g);this._objects.unshift(g);return this.renderAll()},bringToFront:function(g){e(this._objects,g);this._objects.push(g);return this.renderAll()},sendBackwards:function(j){var h=this._objects.indexOf(j),g=h;if(h!==0){for(var k=h-1;k>=0;--k){if(j.intersectsWithObject(this._objects[k])||j.isContainedWithinObject(this._objects[k])){g=k;break}}e(this._objects,j);this._objects.splice(g,0,j)}return this.renderAll()},bringForward:function(k){var n=this.getObjects(),h=n.indexOf(k),g=h;if(h!==n.length-1){for(var m=h+1,j=this._objects.length;m"};f(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(l){var k=l.getContext("2d"),g=k.getImageData(0,0,l.width,l.height),p=g.data,m=g.width,r=g.height,q,h,o,n;for(o=0;o0)?0:-v),r.ey-((u>0)?0:-u),t,s);this.contextTop.lineWidth=this.selectionLineWidth;this.contextTop.strokeStyle=this.selectionBorderColor;this.contextTop.strokeRect(r.ex+a-((v>0)?0:t),r.ey+a-((u>0)?0:s),t,s)},_findSelectedObjects:function(x){var y,t,D=[],s=this._groupSelector.ex,C=this._groupSelector.ey,r=s+this._groupSelector.left,A=C+this._groupSelector.top,z,w=new fabric.Point(f(s,r),f(C,A)),B=new fabric.Point(l(s,r),l(C,A));for(var u=0,v=this._objects.length;u1){var D=new fabric.Group(D);this.setActiveGroup(D);D.saveCoords();this.fire("selection:created",{target:D})}}this.renderAll()},findTarget:function(v,s){var u,w=this.getPointer(v);var t=this.getActiveGroup();if(t&&!s&&this.containsPoint(v,t)){u=t;return u}for(var r=this._objects.length;r--;){if(this._objects[r]&&this.containsPoint(v,this._objects[r])){u=this._objects[r];this.relatedTarget=u;break}}if(u&&u.selectable){return u}},getPointer:function(r){var s=q(r);return{x:s.x-this._offset.left,y:s.y-this._offset.top}},_createUpperCanvas:function(){this.upperCanvasEl=this._createCanvasElement();this.upperCanvasEl.className="upper-canvas";this.wrapperEl.appendChild(this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.CONTAINER_CLASS});fabric.util.setStyle(this.wrapperEl,{width:this.getWidth()+"px",height:this.getHeight()+"px",position:"relative"});fabric.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(s){var t=this.getWidth()||s.width,r=this.getHeight()||s.height;fabric.util.setStyle(s,{position:"absolute",width:t+"px",height:r+"px",left:0,top:0});s.width=t;s.height=r;fabric.util.makeElementUnselectable(s)},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},setActiveObject:function(r,s){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=r;r.setActive(true);this.renderAll();this.fire("object:selected",{target:r,e:s});return this},getActiveObject:function(){return this._activeObject},discardActiveObject:function(){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=null;return this},setActiveGroup:function(r){this._activeGroup=r;return this},getActiveGroup:function(){return this._activeGroup},discardActiveGroup:function(){var r=this.getActiveGroup();if(r){r.destroy()}return this.setActiveGroup(null)},deactivateAll:function(){var s=this.getObjects(),t=0,r=s.length;for(;t1){var o=new fabric.PathGroup(q,n)}else{var o=q[0]}o.setSourcePath(m);if(!(o instanceof fabric.PathGroup)){fabric.util.object.extend(o,n);if(typeof n.angle!=="undefined"){o.setAngle(n.angle)}}g(o,l)})}}}},this)}catch(c){fabric.log(c.message)}},loadFromJSON:function(a,d){if(!a){return}var b=JSON.parse(a);if(!b||(b&&!b.objects)){return}this.clear();var c=this;this._enlivenObjects(b.objects,function(){c.backgroundColor=b.background;if(b.backgroundImage){c.setBackgroundImage(b.backgroundImage);c.backgroundImageOpacity=b.backgroundImageOpacity;c.backgroundImageStretch=b.backgroundImageStretch}if(d){d()}});return this},_enlivenObjects:function(b,e){var c=0,a=b.filter(function(f){return f.type==="image"}).length;var d=this;b.forEach(function(h,g){if(!h.type){return}switch(h.type){case"image":case"font":fabric[fabric.util.string.capitalize(h.type)].fromObject(h,function(i){d.insertAt(i,g,true);if(++c===a){if(e){e()}}});break;default:var f=fabric[fabric.util.string.camelize(fabric.util.string.capitalize(h.type))];if(f&&f.fromObject){d.insertAt(f.fromObject(h),g,true)}break}});if(a===0&&e){e()}},_toDataURL:function(a,b){this.clone(function(c){b(c.toDataURL(a))})},_toDataURLWithMultiplier:function(a,c,b){this.clone(function(d){b(d.toDataURLWithMultiplier(a,c))})},clone:function(b){var a=JSON.stringify(this);this.cloneWithoutData(function(c){c.loadFromJSON(a,function(){if(b){b(c)}})})},cloneWithoutData:function(c){var a=fabric.document.createElement("canvas");a.width=this.getWidth();a.height=this.getHeight();var b=this.__clone||(this.__clone=new fabric.Canvas(a));b.clipTo=this.clipTo;if(c){c(b)}}});(function(a){var d=a.fabric||(a.fabric={}),l=d.util.object.extend,m=d.util.object.clone,c=d.util.toFixed,k=d.util.string.capitalize,p=d.util.getPointer,b=d.util.degreesToRadians,o=Array.prototype.slice;if(d.Object){return}d.Object=d.util.createClass({type:"object",includeDefaultValues:true,NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:0.1,stateProperties:("top left width height scaleX scaleY flipX flipY theta angle opacity cornersize fill overlayFill stroke strokeWidth fillRule borderScaleFactor transformMatrix selectable").split(" "),top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:false,flipY:false,theta:0,opacity:1,angle:0,cornersize:12,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",fill:"rgb(0,0,0)",fillRule:"source-over",overlayFill:null,stroke:null,strokeWidth:1,borderOpacityWhenMoving:0.4,borderScaleFactor:1,transformMatrix:null,selectable:true,hasControls:true,hasBorders:true,hasRotatingPoint:false,callSuper:function(i){var q=this.constructor.superclass.prototype[i];return(arguments.length>1)?q.apply(this,o.call(arguments,1)):q.call(this)},initialize:function(i){i&&this.setOptions(i)},setOptions:function(q){var r=this.stateProperties.length,s;while(r--){s=this.stateProperties[r];if(s in q){this.set(s,q[s])}}},transform:function(i){i.globalAlpha=this.opacity;i.translate(this.left,this.top);i.rotate(this.theta);i.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(){var i={type:this.type,left:c(this.left,this.NUM_FRACTION_DIGITS),top:c(this.top,this.NUM_FRACTION_DIGITS),width:c(this.width,this.NUM_FRACTION_DIGITS),height:c(this.height,this.NUM_FRACTION_DIGITS),fill:this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,scaleX:c(this.scaleX,this.NUM_FRACTION_DIGITS),scaleY:c(this.scaleY,this.NUM_FRACTION_DIGITS),angle:c(this.getAngle(),this.NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:c(this.opacity,this.NUM_FRACTION_DIGITS),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint};if(!this.includeDefaultValues){i=this._removeDefaultValues(i)}return i},toDatalessObject:function(){return this.toObject()},getSvgStyles:function(){return["stroke: ",(this.stroke?this.stroke:"none"),"; ","stroke-width: ",(this.strokeWidth?this.strokeWidth:"0"),"; ","fill: ",(this.fill?this.fill:"none"),"; ","opacity: ",(this.opacity?this.opacity:"1"),";"].join("")},getSvgTransform:function(){var i=this.getAngle();return["translate(",c(this.left,2)," ",c(this.top,2),")",i!==0?(" rotate("+c(i,2)+")"):"",(this.scaleX===1&&this.scaleY===1)?"":(" scale("+c(this.scaleX,2)+" "+c(this.scaleY,2)+")")].join("")},_removeDefaultValues:function(q){var i=d.Object.prototype.options;if(i){this.stateProperties.forEach(function(r){if(q[r]===i[r]){delete q[r]}})}return q},isActive:function(){return !!this.active},setActive:function(i){this.active=!!i;return this},toString:function(){return"#"},set:function(q,i){var s=(q==="scaleX"||q==="scaleY")&&ir.x&&s.xr.y&&u.y=v)&&(s.d.y>=v)){continue}if((s.o.x==s.d.x)&&(s.o.x>=w)){x=s.o.x;u=v}else{z=0;y=(s.d.y-s.o.y)/(s.d.x-s.o.x);r=v-z*w;q=s.o.y-y*s.o.x;x=-(r-q)/(z-y);u=r+z*x}if(x>=w){t+=1}if(t==2){break}}return t},_getImageLines:function(r,q){return{topline:{o:r.tl,d:r.tr},rightline:{o:r.tr,d:r.br},bottomline:{o:r.br,d:r.bl},leftline:{o:r.bl,d:r.tl}}},_setCornerCoords:function(){var u=this.oCoords,q=b(45-this.getAngle()),s=Math.sqrt(2*Math.pow(this.cornersize,2))/2,i=s*Math.cos(q),r=s*Math.sin(q),v=Math.sin(this.theta),t=Math.cos(this.theta);u.tl.corner={tl:{x:u.tl.x-r,y:u.tl.y-i},tr:{x:u.tl.x+i,y:u.tl.y-r},bl:{x:u.tl.x-i,y:u.tl.y+r},br:{x:u.tl.x+r,y:u.tl.y+i}};u.tr.corner={tl:{x:u.tr.x-r,y:u.tr.y-i},tr:{x:u.tr.x+i,y:u.tr.y-r},br:{x:u.tr.x+r,y:u.tr.y+i},bl:{x:u.tr.x-i,y:u.tr.y+r}};u.bl.corner={tl:{x:u.bl.x-r,y:u.bl.y-i},bl:{x:u.bl.x-i,y:u.bl.y+r},br:{x:u.bl.x+r,y:u.bl.y+i},tr:{x:u.bl.x+i,y:u.bl.y-r}};u.br.corner={tr:{x:u.br.x+i,y:u.br.y-r},bl:{x:u.br.x-i,y:u.br.y+r},br:{x:u.br.x+r,y:u.br.y+i},tl:{x:u.br.x-r,y:u.br.y-i}};u.ml.corner={tl:{x:u.ml.x-r,y:u.ml.y-i},tr:{x:u.ml.x+i,y:u.ml.y-r},bl:{x:u.ml.x-i,y:u.ml.y+r},br:{x:u.ml.x+r,y:u.ml.y+i}};u.mt.corner={tl:{x:u.mt.x-r,y:u.mt.y-i},tr:{x:u.mt.x+i,y:u.mt.y-r},bl:{x:u.mt.x-i,y:u.mt.y+r},br:{x:u.mt.x+r,y:u.mt.y+i}};u.mr.corner={tl:{x:u.mr.x-r,y:u.mr.y-i},tr:{x:u.mr.x+i,y:u.mr.y-r},bl:{x:u.mr.x-i,y:u.mr.y+r},br:{x:u.mr.x+r,y:u.mr.y+i}};u.mb.corner={tl:{x:u.mb.x-r,y:u.mb.y-i},tr:{x:u.mb.x+i,y:u.mb.y-r},bl:{x:u.mb.x-i,y:u.mb.y+r},br:{x:u.mb.x+r,y:u.mb.y+i}};u.mtr.corner={tl:{x:u.mtr.x-r+(v*40),y:u.mtr.y-i-(t*40)},tr:{x:u.mtr.x+i+(v*40),y:u.mtr.y-r-(t*40)},bl:{x:u.mtr.x-i+(v*40),y:u.mtr.y+r-(t*40)},br:{x:u.mtr.x+r+(v*40),y:u.mtr.y+i-(t*40)}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},toJSON:function(){return this.toObject()},setGradientFill:function(i,q){this.set("fill",d.Gradient.forObject(this,i,q))},animate:function(q,s,i){var r=this;if(!("from" in i)){i.from=this.get(q)}if(/[+-]/.test(s.charAt(0))){s=this.get(q)+parseFloat(s)}d.util.animate({startValue:i.from,endValue:s,byValue:i.by,easing:i.easing,duration:i.duration,onChange:function(t){r.set(q,t);i.onChange&&i.onChange()},onComplete:function(){r.setCoords();i.onComplete&&i.onComplete()}})}});d.Object.prototype.rotate=d.Object.prototype.setAngle;var j=d.Object.prototype;for(var g=j.stateProperties.length;g--;){var h=j.stateProperties[g],e=h.charAt(0).toUpperCase()+h.slice(1),f="set"+e,n="get"+e;if(!j[n]){j[n]=(function(i){return new Function('return this.get("'+i+'")')})(h)}if(!j[f]){j[f]=(function(i){return new Function("value",'return this.set("'+i+'", value)')})(h)}}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),e=c.util.object.extend,d=c.Object.prototype.set,a={x1:1,x2:1,y1:1,y2:1};if(c.Line){c.warn("fabric.Line is already defined");return}c.Line=c.util.createClass(c.Object,{type:"line",initialize:function(g,f){if(!g){g=[0,0,0,0]}this.callSuper("initialize",f);this.set("x1",g[0]);this.set("y1",g[1]);this.set("x2",g[2]);this.set("y2",g[3]);this._setWidthHeight()},_setWidthHeight:function(){this.set("width",(this.x2-this.x1)||1);this.set("height",(this.y2-this.y1)||1);this.set("left",this.x1+this.width/2);this.set("top",this.y1+this.height/2)},set:function(f,g){d.call(this,f,g);if(f in a){this._setWidthHeight()}return this},_render:function(f){f.beginPath();f.moveTo(this.width===1?0:(-this.width/2),this.height===1?0:(-this.height/2));f.lineTo(this.width===1?0:(this.width/2),this.height===1?0:(this.height/2));f.lineWidth=this.strokeWidth;var g=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=g},complexity:function(){return 1},toObject:function(){return e(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}});c.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" ");c.Line.fromElement=function(g,f){var i=c.parseAttributes(g,c.Line.ATTRIBUTE_NAMES);var h=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new c.Line(h,e(i,f))};c.Line.fromObject=function(f){var g=[f.x1,f.y1,f.x2,f.y2];return new c.Line(g,f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),d=Math.PI*2,e=b.util.object.extend;if(b.Circle){b.warn("fabric.Circle is already defined.");return}b.Circle=b.util.createClass(b.Object,{type:"circle",initialize:function(f){f=f||{};this.set("radius",f.radius||0);this.callSuper("initialize",f);var g=this.get("radius")*2;this.set("width",g).set("height",g)},toObject:function(){return e(this.callSuper("toObject"),{radius:this.get("radius")})},toSVG:function(){return('')},_render:function(f,g){f.beginPath();f.globalAlpha*=this.opacity;f.arc(g?this.left:0,g?this.top:0,this.radius,0,d,false);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(f){this.radius=f;this.set("width",f*2).set("height",f*2)},complexity:function(){return 1}});b.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Circle.fromElement=function(g,f){f||(f={});var h=b.parseAttributes(g,b.Circle.ATTRIBUTE_NAMES);if(!c(h)){throw Error("value of `r` attribute is required and can not be negative")}if("left" in h){h.left-=(f.width/2)||0}if("top" in h){h.top-=(f.height/2)||0}return new b.Circle(e(h,f))};function c(f){return(("radius" in f)&&(f.radius>0))}b.Circle.fromObject=function(f){return new b.Circle(f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Triangle){b.warn("fabric.Triangle is already defined");return}b.Triangle=b.util.createClass(b.Object,{type:"triangle",initialize:function(c){c=c||{};this.callSuper("initialize",c);this.set("width",c.width||100).set("height",c.height||100)},_render:function(c){var d=this.width/2,e=this.height/2;c.beginPath();c.moveTo(-d,e);c.lineTo(0,-e);c.lineTo(d,e);c.closePath();if(this.fill){c.fill()}if(this.stroke){c.stroke()}},complexity:function(){return 1},toSVG:function(){var c=this.width/2,d=this.height/2;var e=[-c+" "+d,"0 "+-d,c+" "+d].join(",");return''}});b.Triangle.fromObject=function(c){return new b.Triangle(c)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),c=Math.PI*2,d=b.util.object.extend;if(b.Ellipse){b.warn("fabric.Ellipse is already defined.");return}b.Ellipse=b.util.createClass(b.Object,{type:"ellipse",initialize:function(e){e=e||{};this.callSuper("initialize",e);this.set("rx",e.rx||0);this.set("ry",e.ry||0);this.set("width",this.get("rx")*2);this.set("height",this.get("ry")*2)},toObject:function(){return d(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,f){if(this.rx===0||this.ry===0){return}return this.callSuper("render",e,f)},_render:function(e,f){e.beginPath();e.save();e.globalAlpha*=this.opacity;e.transform(1,0,0,this.ry/this.rx,0,0);e.arc(f?this.left:0,f?this.top:0,this.rx,0,c,false);if(this.stroke){e.stroke()}if(this.fill){e.fill()}e.restore()},complexity:function(){return 1}});b.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Ellipse.fromElement=function(f,e){e||(e={});var g=b.parseAttributes(f,b.Ellipse.ATTRIBUTE_NAMES);if("left" in g){g.left-=(e.width/2)||0}if("top" in g){g.top-=(e.height/2)||0}return new b.Ellipse(d(g,e))};b.Ellipse.fromObject=function(e){return new b.Ellipse(e)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={});if(c.Rect){console.warn("fabric.Rect is already defined");return}c.Rect=c.util.createClass(c.Object,{type:"rect",options:{rx:0,ry:0},initialize:function(d){this._initStateProperties();this.callSuper("initialize",d);this._initRxRy()},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){if(this.rx&&!this.ry){this.ry=this.rx}else{if(this.ry&&!this.rx){this.rx=this.ry}}},_render:function(f){var j=this.rx||0,i=this.ry||0,d=-this.width/2,k=-this.height/2,e=this.width,g=this.height;f.beginPath();f.globalAlpha*=this.opacity;if(this.group){f.translate(this.x||0,this.y||0)}f.moveTo(d+j,k);f.lineTo(d+e-j,k);f.bezierCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.bezierCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.bezierCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.bezierCurveTo(d,k,d+j,k,d+j,k);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},_normalizeLeftTopProperties:function(d){if(d.left){this.set("left",d.left+this.getWidth()/2)}this.set("x",d.left||0);if(d.top){this.set("top",d.top+this.getHeight()/2)}this.set("y",d.top||0);return this},complexity:function(){return 1},toObject:function(){return c.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return''}});c.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");function a(d){d.left=d.left||0;d.top=d.top||0;return d}c.Rect.fromElement=function(e,d){if(!e){return null}var g=c.parseAttributes(e,c.Rect.ATTRIBUTE_NAMES);g=a(g);var f=new c.Rect(c.util.object.extend((d?c.util.object.clone(d):{}),g));f._normalizeLeftTopProperties(g);return f};c.Rect.fromObject=function(d){return new c.Rect(d)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),a=c.util.toFixed;if(c.Polyline){c.warn("fabric.Polyline is already defined");return}c.Polyline=c.util.createClass(c.Object,{type:"polyline",initialize:function(e,d){d=d||{};this.set("points",e);this.callSuper("initialize",d);this._calcDimensions()},_calcDimensions:function(){return c.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return c.Polygon.prototype.toObject.call(this)},toSVG:function(){var f=[];for(var e=0,d=this.points.length;e"].join("")},_render:function(f){var e;f.beginPath();for(var g=0,d=this.points.length;g"].join("")},_render:function(l){var k;l.beginPath();for(var m=0,j=this.points.length;m1){E=Math.sqrt(E);O*=E;N*=E}var R=aa/O;var Q=W/O;var D=(-W)/N;var C=(aa)/N;var H=R*M+Q*L;var q=D*M+C*L;var F=R*T+Q*S;var ab=D*T+C*S;var Z=(F-H)*(F-H)+(ab-q)*(ab-q);var U=1/Z-0.25;if(U<0){U=0}var w=Math.sqrt(U);if(P==J){w=-w}var V=0.5*(H+F)-w*(ab-q);var K=0.5*(q+ab)+w*(F-H);var v=Math.atan2(q-K,H-V);var u=Math.atan2(ab-K,F-V);var Y=u-v;if(Y<0&&P==1){Y+=2*Math.PI}else{if(Y>0&&P==0){Y-=2*Math.PI}}var B=Math.ceil(Math.abs(Y/(Math.PI*0.5+0.001)));var I=[];for(var X=0;X"},toObject:function(){var q=g(this.callSuper("toObject"),{path:this.path});if(this.sourcePath){q.sourcePath=this.sourcePath}if(this.transformMatrix){q.transformMatrix=this.transformMatrix}return q},toDatalessObject:function(){var q=this.toObject();if(this.sourcePath){q.path=this.sourcePath}delete q.sourcePath;return q},toSVG:function(){var t=[];for(var r=0,q=this.path.length;r',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var C=[],z,v,y;for(var u=0,t,q,w=this.path.length;uB){for(var r=1,x=q.length;r"];for(var l=0,j=m.length;l");return k.join("")},toString:function(){return"#"},isSameColor:function(){var j=this.getObjects()[0].get("fill");return this.getObjects().every(function(k){return k.get("fill")===j})},complexity:function(){return this.paths.reduce(function(j,k){return j+((k&&k.complexity)?k.complexity():0)},0)},toGrayscale:function(){var j=this.paths.length;while(j--){this.paths[j].toGrayscale()}return this},getObjects:function(){return this.paths}});function c(m){for(var l=0,j=m.length;l"},getObjects:function(){return this.objects},add:function(h){this._restoreObjectsState();this.objects.push(h);h.setActive(true);this._calcBounds();this._updateObjectsCoords();return this},remove:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},size:function(){return this.getObjects().length},set:function(h,k){if(typeof k=="function"){this.set(h,k(this[h]))}else{if(h==="fill"||h==="opacity"){var j=this.objects.length;this[h]=k;while(j--){this.objects[j].set(h,k)}}else{this[h]=k}}return this},contains:function(h){return this.objects.indexOf(h)>-1},toObject:function(){return g(this.callSuper("toObject"),{objects:b(this.objects,"clone")})},render:function(j){j.save();this.transform(j);var n=Math.max(this.scaleX,this.scaleY);for(var l=0,h=this.objects.length,k;k=this.objects[l];l++){var m=k.borderScaleFactor;k.borderScaleFactor=n;k.render(j);k.borderScaleFactor=m}this.hideBorders||this.drawBorders(j);this.hideCorners||this.drawCorners(j);j.restore();this.setCoords()},item:function(h){return this.getObjects()[h]},complexity:function(){return this.getObjects().reduce(function(i,h){i+=(typeof h.complexity=="function")?h.complexity():0;return i},0)},_restoreObjectsState:function(){this.objects.forEach(this._restoreObjectState,this);return this},_restoreObjectState:function(j){var l=this.get("left"),m=this.get("top"),h=this.getAngle()*(Math.PI/180),k=j.get("originalLeft"),n=j.get("originalTop"),i=Math.cos(h)*j.get("top")+Math.sin(h)*j.get("left"),o=-Math.sin(h)*j.get("top")+Math.cos(h)*j.get("left");j.setAngle(j.getAngle()+this.getAngle());j.set("left",l+o*this.get("scaleX"));j.set("top",m+i*this.get("scaleY"));j.set("scaleX",j.get("scaleX")*this.get("scaleX"));j.set("scaleY",j.get("scaleY")*this.get("scaleY"));j.setCoords();j.hideCorners=false;j.setActive(false);j.setCoords();return this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){this._originalLeft=this.get("left");this._originalTop=this.get("top");return this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){this.forEachObject(function(h){h.setCoords()});return this},activateAllObjects:function(){return this.setActive(true)},setActive:function(h){this.forEachObject(function(i){i.setActive(h)});return this},forEachObject:e.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var j=this.getObjects(),i=j[0]?j[0].get("opacity"):1;var h=j.every(function(k){return k.get("opacity")===i});if(h){this.opacity=i}},_calcBounds:function(){var s=[],q=[],p,n,k,h,m,l,u,r=0,t=this.objects.length;for(;ri.x&&j-hi.y},toGrayscale:function(){var h=this.objects.length;while(h--){this.objects[h].toGrayscale()}}});e.Group.fromObject=function(h){return new e.Group(h.objects,h)}})(typeof exports!="undefined"?exports:this);(function(a){var b=fabric.util.object.extend;if(!a.fabric){a.fabric={}}if(a.fabric.Image){fabric.warn("fabric.Image is already defined.");return}if(!fabric.Object){fabric.warn("fabric.Object is required for fabric.Image initialization");return}fabric.Image=fabric.util.createClass(fabric.Object,{active:false,bordervisibility:false,cornervisibility:false,type:"image",filters:[],initialize:function(d,c){c||(c={});this.callSuper("initialize",c);this._initElement(d);this._originalImage=this.getElement();this._initConfig(c);if(c.filters){this.filters=c.filters;this.applyFilters()}},getElement:function(){return this._element},setElement:function(c){this._element=c;this._initConfig();return this},getOriginalSize:function(){var c=this.getElement();return{width:c.width,height:c.height}},setBorderVisibility:function(c){this._resetWidthHeight();this._adjustWidthHeightToBorders(showBorder);this.setCoords()},setCornersVisibility:function(c){this.cornervisibility=!!c},render:function(c,d){c.save();if(!d){this.transform(c)}this._render(c);if(this.active&&!d){this.drawBorders(c);this.hideCorners||this.drawCorners(c)}c.restore()},toObject:function(){return b(this.callSuper("toObject"),{src:this._originalImage.src||this._originalImage._src,filters:this.filters.concat()})},toSVG:function(){return''},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(c){this.constructor.fromObject(this.toObject(),c)},applyFilters:function(i){if(this.filters.length===0){this.setElement(this._originalImage);i&&i();return}var c=typeof Buffer!=="undefined"&&typeof window==="undefined",g=this._originalImage,e=fabric.document.createElement("canvas"),f=c?new (require("canvas").Image):fabric.document.createElement("img"),h=this;if(!e.getContext&&typeof G_vmlCanvasManager!="undefined"){G_vmlCanvasManager.initElement(e)}e.width=g.width;e.height=g.height;e.getContext("2d").drawImage(g,0,0);this.filters.forEach(function(j){j&&j.applyTo(e)});f.onload=function(){h.setElement(f);i&&i();f.onload=e=g=null};f.width=g.width;f.height=g.height;if(c){var d=e.toDataURL("image/png").replace(/data:image\/png;base64,/,"");f.src=new Buffer(d,"base64");h.setElement(f);i&&i()}else{f.src=e.toDataURL("image/png")}return this},_render:function(c){c.drawImage(this.getElement(),-this.width/2,-this.height/2,this.width,this.height)},_adjustWidthHeightToBorders:function(c){if(c){this.currentBorder=this.borderwidth;this.width+=(2*this.currentBorder);this.height+=(2*this.currentBorder)}else{this.currentBorder=0}},_resetWidthHeight:function(){var c=this.getElement();this.set("width",c.width);this.set("height",c.height)},_initElement:function(c){this.setElement(fabric.util.getById(c));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(c){this.setOptions(c||{});this._setBorder();this._setWidthHeight()},_initFilters:function(c){if(c.filters&&c.filters.length){this.filters=c.filters.map(function(d){return fabric.Image.filters[d.type].fromObject(d)})}},_setBorder:function(){if(this.bordervisibility){this.currentBorder=this.borderwidth}else{this.currentBorder=0}},_setWidthHeight:function(){var c=2*this.currentBorder;this.width=(this.getElement().width||0)+c;this.height=(this.getElement().height||0)+c},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(d,f){var c=fabric.document.createElement("img"),e=d.src;if(d.width){c.width=d.width}if(d.height){c.height=d.height}c.onload=function(){fabric.Image.prototype._initFilters.call(d,d);var g=new fabric.Image(c,d);f&&f(g);c=c.onload=null};c.src=e};fabric.Image.fromURL=function(d,f,e){var c=fabric.document.createElement("img");c.onload=function(){if(f){f(new fabric.Image(c,e))}c=c.onload=null};c.src=d};fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" ");fabric.Image.fromElement=function(d,f,c){c||(c={});var e=fabric.parseAttributes(d,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(e["xlink:href"],f,b(e,c))};fabric.Image.async=true})(typeof exports!="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var a=this.get("angle");if(a>-225&&a<=-135){return -180}else{if(a>-135&&a<=-45){return -90}else{if(a>-45&&a<=45){return 0}else{if(a>45&&a<=135){return 90}else{if(a>135&&a<=225){return 180}else{if(a>225&&a<=315){return 270}else{if(a>315){return 360}}}}}}}return 0},straighten:function(){var a=this._getAngleValueForStraighten();this.setAngle(a);return this},fxStraighten:function(b){b=b||{};var c=function(){},d=b.onComplete||c,a=b.onChange||c,e=this;fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(f){e.setAngle(f);a()},onComplete:function(){e.setCoords();d()},onStart:function(){e.setActive(false)}});return this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(a){a.straighten();this.renderAll();return this},fxStraightenObject:function(a){a.fxStraighten({onChange:this.renderAll.bind(this)});return this}});fabric.Image.filters={};fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(d){var c=d.getContext("2d"),a=c.getImageData(0,0,d.width,d.height),h=a.data,e=a.width,l=a.height,k,b,g,f;for(g=0;gh&&m>h&&o>h&&p(a-m)'},_render:function(f){var h=Cufon.textOptions||(Cufon.textOptions={});h.left=this.left;h.top=this.top;h.context=f;h.color=this.fill;var g=this._initDummyElement();this.transform(f);Cufon.replaceElement(g,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor});this.width=h.width;this.height=h.height;this._totalLineHeight=h.totalLineHeight;this._fontAscent=h.fontAscent;this._boundaries=h.boundaries;this._shadowOffsets=h.shadowOffsets;this._shadows=h.shadows||[];this.setCoords()},_initDummyElement:function(){var g=c.document.createElement("pre"),f=c.document.createElement("div");f.appendChild(g);if(typeof G_vmlCanvasManager=="undefined"){g.innerHTML=this.text}else{g.innerText=this.text.replace(/\r?\n/gi,"\r")}g.style.fontSize=this.fontSize+"px";g.style.letterSpacing="normal";return g},render:function(f,g){f.save();this._render(f);if(!g&&this.active){this.drawBorders(f);this.hideCorners||this.drawCorners(f)}f.restore()},toObject:function(){return e(this.callSuper("toObject"),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor})},toSVG:function(){var i=this.text.split(/\r?\n/),j=-this._fontAscent-((this._fontAscent/5)*this.lineHeight),g=-(this.width/2),f=(this.height/2)-(i.length*this.fontSize)-this._totalLineHeight,h=this._getSVGTextAndBg(j,g,i),k=this._getSVGShadows(j,i);f+=((this._fontAscent/5)*this.lineHeight);return['',h.textBgRects.join(""),"',k.join(""),h.textSpans.join(""),"",""].join("")},_getSVGShadows:function(h,n){var o=[],k,l,p,g,f=1;for(k=0,p=this._shadows.length;k",c.util.string.escapeXml(n[l]),"");f=1}else{f++}}}return o},_getSVGTextAndBg:function(j,h,n){var g=[],k=[],l,m,o,f=1;for(l=0,o=n.length;l",c.util.string.escapeXml(n[l]),"");f=1}else{f++}if(!this.backgroundColor){continue}k.push("')}return{textSpans:g,textBgRects:k}},_getFillAttributes:function(f){var g=f?new c.Color(f):"";if(!g||!g.getSource()||g.getAlpha()===1){return'fill="'+f+'"'}return'opacity="'+g.getAlpha()+'" fill="'+g.setAlpha(1).toRgb()+'"'},setColor:function(f){this.set("fill",f);return this},setFontsize:function(f){this.set("fontSize",f);this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this.setCoords();return this},set:function(f,g){if(typeof f=="object"){for(var h in f){this.set(h,f[h])}}else{this[f]=g;if(f==="fontFamily"&&this.path){this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+g+"$3")}}return this}});c.Text.fromObject=function(f){return new c.Text(f.text,d(f))};c.Text.fromElement=function(f){}})(typeof exports!="undefined"?exports:this);(function(){if(typeof document!="undefined"&&typeof window!="undefined"){return}var DOMParser=new require("xmldom").DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;function request(url,encoding,callback){var oURL=URL.parse(url),client=HTTP.createClient(80,oURL.hostname),request=client.request("GET",oURL.pathname,{host:oURL.hostname});client.addListener("error",function(err){if(err.errno===process.ECONNREFUSED){fabric.log("ECONNREFUSED: connection refused to "+client.host+":"+client.port)}else{fabric.log(err.message)}});request.end();request.on("response",function(response){var body="";if(encoding){response.setEncoding(encoding)}response.on("end",function(){callback(body)});response.on("data",function(chunk){if(response.statusCode==200){body+=chunk}})})}fabric.util.loadImage=function(url,callback){request(url,"binary",function(body){var img=new Image();img.src=new Buffer(body,"binary");img._src=url;callback(img)})};fabric.loadSVGFromURL=function(url,callback){url=url.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();request(url,"",function(body){var doc=new DOMParser().parseFromString(body);fabric.parseSVGDocument(doc.documentElement,function(results,options){callback(results,options)})})};fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body);callback&&callback()})};fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){var oImg=new fabric.Image(img);oImg._initConfig(object);oImg._initFilters(object);callback(oImg)})};fabric.createCanvasForNode=function(width,height){var canvasEl=fabric.document.createElement("canvas"),nodeCanvas=new Canvas(width||600,height||600);canvasEl.style={};canvasEl.width=nodeCanvas.width;canvasEl.height=nodeCanvas.height;var canvas=fabric.Canvas||fabric.StaticCanvas;var fabricCanvas=new canvas(canvasEl);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};if(fabric.Canvas){fabric.Canvas.prototype.createPNGStream}var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(width){origSetWidth.call(this);this.nodeCanvas.width=width;return this};if(fabric.Canvas){fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth}var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(height){origSetHeight.call(this);this.nodeCanvas.height=height;return this};if(fabric.Canvas){fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight}})(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index d87b98f3a6ebd223ad5df1d0f23662b398a201ea..0489169bdb48d670cae31d78753933f660c38d31 100644 GIT binary patch delta 30523 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 OmrMxszE3=7`T+o7`zCk* delta 30585 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 VAeSHk{Ob97a+lJBy0s!DXG_n8y