From 8411165bcdd096dc0959c1776af233e6c75afa98 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 26 Mar 2012 00:30:29 +0200 Subject: [PATCH] Revert "Fix rendering of lines where x1,y1 are less than x2,y2." This reverts commit c7006df1332b0be09fa78f2ddb0cb889a16b30d7. --- HEADER.js | 2 +- dist/all.js | 14 +++++--------- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 37424 -> 37396 bytes package.json | 2 +- site | 2 +- src/line.class.js | 12 ++++-------- 7 files changed, 14 insertions(+), 22 deletions(-) diff --git a/HEADER.js b/HEADER.js index 71899820..ecc53f30 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "0.7.25" }; +var fabric = fabric || { version: "0.7.24" }; if (typeof exports != 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 35daa601..9e6aedba 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "0.7.25" }; +var fabric = fabric || { version: "0.7.24" }; if (typeof exports != 'undefined') { exports.fabric = fabric; @@ -8326,8 +8326,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { }, _setWidthHeight: function() { - this.set('width', Math.abs(this.x2 - this.x1) || 1 /* prevent 0 width */); - this.set('height', Math.abs(this.y2 - this.y1) || 1 /* prevent 0 height */); + 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); }, @@ -8348,13 +8348,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { _render: function(ctx) { ctx.beginPath(); - var xMultiplier = this.x1 > this.x2 ? -1 : 1, - yMultiplier = this.y1 > this.y2 ? -1 : 1; - - // move from center (of virtual box) to its left/top corner - ctx.moveTo(this.width === 1 ? 0 : (this.width / 2) * xMultiplier, this.height === 1 ? 0 : (this.height / 2) * yMultiplier); - ctx.lineTo(this.width === 1 ? 0 : (this.width / 2) * -xMultiplier, this.height === 1 ? 0 : (this.height / 2) * -yMultiplier); + ctx.moveTo(this.width === 1 ? 0 : (-this.width / 2), this.height === 1 ? 0 : (-this.height / 2)); + ctx.lineTo(this.width === 1 ? 0 : (this.width / 2), this.height === 1 ? 0 : (this.height / 2)); ctx.lineWidth = this.strokeWidth; diff --git a/dist/all.min.js b/dist/all.min.js index e72649c3..53d58a53 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,7 +1,7 @@ /* Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric=fabric||{version:"0.7.25"};if(typeof exports!="undefined"){exports.fabric=fabric}if(typeof document!="undefined"&&typeof window!="undefined"){fabric.document=document;fabric.window=window}else{fabric.document=require("jsdom").jsdom("");fabric.window=fabric.document.createWindow()}fabric.isTouchSupported="ontouchstart" in fabric.document.documentElement;if(!this.JSON){this.JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i");fabric.window=fabric.document.createWindow()}fabric.isTouchSupported="ontouchstart" in fabric.document.documentElement;if(!this.JSON){this.JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i=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?1:(l-k)/m;p(j+(r-j)*q(s));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(i){var g=i.fabric||(i.fabric={}),o=g.util.object.extend,e=g.util.string.capitalize,p=g.util.object.clone;var k={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix"};function d(v,u){if(!v){return}var x,t,s={};if(v.parentNode&&/^g$/i.test(v.parentNode.nodeName)){s=g.parseAttributes(v.parentNode,u)}var w=u.reduce(function(z,y){x=v.getAttribute(y);t=parseFloat(x);if(x){if((y==="fill"||y==="stroke")&&x==="none"){x=""}if(y==="fill-rule"){x=(x==="evenodd")?"destination-over":x}if(y==="transform"){x=g.parseTransformAttribute(x)}if(y in k){y=k[y]}z[y]=isNaN(t)?x:t}return z},{});w=o(w,o(n(v),g.parseStyleAttribute(v)));return o(s,w)}g.parseTransformAttribute=(function(){function s(L,M){var N=M[0];L[0]=Math.cos(N);L[1]=Math.sin(N);L[2]=-Math.sin(N);L[3]=Math.cos(N)}function x(N,O){var M=O[0],L=(O.length===2)?O[1]:O[0];N[0]=M;N[3]=L}function I(L,M){L[2]=M[0]}function u(L,M){L[1]=M[0]}function F(L,M){L[4]=M[0];if(M.length===2){L[5]=M[1]}}var z=[1,0,0,1,0,0],t="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",J="(?:\\s+,?\\s*|,\\s*)",A="(?:(skewX)\\s*\\(\\s*("+t+")\\s*\\))",y="(?:(skewY)\\s*\\(\\s*("+t+")\\s*\\))",H="(?:(rotate)\\s*\\(\\s*("+t+")(?:"+J+"("+t+")"+J+"("+t+"))?\\s*\\))",K="(?:(scale)\\s*\\(\\s*("+t+")(?:"+J+"("+t+"))?\\s*\\))",D="(?:(translate)\\s*\\(\\s*("+t+")(?:"+J+"("+t+"))?\\s*\\))",G="(?:(matrix)\\s*\\(\\s*("+t+")"+J+"("+t+")"+J+"("+t+")"+J+"("+t+")"+J+"("+t+")"+J+"("+t+")\\s*\\))",E="(?:"+G+"|"+D+"|"+K+"|"+H+"|"+A+"|"+y+")",B="(?:"+E+"(?:"+J+E+")*)",v="^\\s*(?:"+B+"?)\\s*$",C=new RegExp(v),w=new RegExp(E);return function(M){var L=z.concat();if(!M||(M&&!C.test(M))){return L}M.replace(w,function(Q){var N=new RegExp(E).exec(Q).filter(function(R){return(R!==""&&R!=null)}),O=N[1],P=N.slice(2).map(parseFloat);switch(O){case"translate":F(L,P);break;case"rotate":s(L,P);break;case"scale":x(L,P);break;case"skewX":I(L,P);break;case"skewY":u(L,P);break;case"matrix":L=P;break}});return L}})();function r(v){if(!v){return null}v=v.trim();var x=v.indexOf(",")>-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())];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)},getContext:function(){return this.contextTop},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(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(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;return b.loadFromJSON(JSON.stringify(this.toJSON()),function(){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,FX_DURATION:500,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,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};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 t=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);t.tl.corner={tl:{x:t.tl.x-r,y:t.tl.y-i},tr:{x:t.tl.x+i,y:t.tl.y-r},bl:{x:t.tl.x-i,y:t.tl.y+r},br:{x:t.tl.x+r,y:t.tl.y+i}};t.tr.corner={tl:{x:t.tr.x-r,y:t.tr.y-i},tr:{x:t.tr.x+i,y:t.tr.y-r},br:{x:t.tr.x+r,y:t.tr.y+i},bl:{x:t.tr.x-i,y:t.tr.y+r}};t.bl.corner={tl:{x:t.bl.x-r,y:t.bl.y-i},bl:{x:t.bl.x-i,y:t.bl.y+r},br:{x:t.bl.x+r,y:t.bl.y+i},tr:{x:t.bl.x+i,y:t.bl.y-r}};t.br.corner={tr:{x:t.br.x+i,y:t.br.y-r},bl:{x:t.br.x-i,y:t.br.y+r},br:{x:t.br.x+r,y:t.br.y+i},tl:{x:t.br.x-r,y:t.br.y-i}};t.ml.corner={tl:{x:t.ml.x-r,y:t.ml.y-i},tr:{x:t.ml.x+i,y:t.ml.y-r},bl:{x:t.ml.x-i,y:t.ml.y+r},br:{x:t.ml.x+r,y:t.ml.y+i}};t.mt.corner={tl:{x:t.mt.x-r,y:t.mt.y-i},tr:{x:t.mt.x+i,y:t.mt.y-r},bl:{x:t.mt.x-i,y:t.mt.y+r},br:{x:t.mt.x+r,y:t.mt.y+i}};t.mr.corner={tl:{x:t.mr.x-r,y:t.mr.y-i},tr:{x:t.mr.x+i,y:t.mr.y-r},bl:{x:t.mr.x-i,y:t.mr.y+r},br:{x:t.mr.x+r,y:t.mr.y+i}};t.mb.corner={tl:{x:t.mb.x-r,y:t.mb.y-i},tr:{x:t.mb.x+i,y:t.mb.y-r},bl:{x:t.mb.x-i,y:t.mb.y+r},br:{x:t.mb.x+r,y:t.mb.y+i}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},straighten:function(){var i=this._getAngleValueForStraighten();this.setAngle(i);return this},fxStraighten:function(q){q=q||{};var r=function(){},s=q.onComplete||r,i=q.onChange||r,t=this;d.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(u){t.setAngle(u);i()},onComplete:function(){t.setCoords();s()},onStart:function(){t.setActive(false)}});return this},fxRemove:function(q){q||(q={});var r=function(){},s=q.onComplete||r,i=q.onChange||r,t=this;d.util.animate({startValue:this.get("opacity"),endValue:0,duration:this.FX_DURATION,onChange:function(u){t.set("opacity",u);i()},onComplete:s,onStart:function(){t.setActive(false)}});return this},_getAngleValueForStraighten:function(){var i=this.get("angle");if(i>-225&&i<=-135){return -180}else{if(i>-135&&i<=-45){return -90}else{if(i>-45&&i<=45){return 0}else{if(i>45&&i<=135){return 90}else{if(i>135&&i<=225){return 180}else{if(i>225&&i<=315){return 270}else{if(i>315){return 360}}}}}}}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,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",Math.abs(this.x2-this.x1)||1);this.set("height",Math.abs(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();var i=this.x1>this.x2?-1:1,g=this.y1>this.y2?-1:1;f.moveTo(this.width===1?0:(this.width/2)*i,this.height===1?0:(this.height/2)*g);f.lineTo(this.width===1?0:(this.width/2)*-i,this.height===1?0:(this.height/2)*-g);f.lineWidth=this.strokeWidth;var h=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=h},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.get("scaleX");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")},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},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(d){var c=this.getOriginalSize();d.drawImage(this.getElement(),-c.width/2,-c.height/2,c.width,c.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.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 XML=require("o3-xml"),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=XML.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?1:(l-k)/m;p(j+(r-j)*q(s));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(i){var g=i.fabric||(i.fabric={}),o=g.util.object.extend,e=g.util.string.capitalize,p=g.util.object.clone;var k={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix"};function d(v,u){if(!v){return}var x,t,s={};if(v.parentNode&&/^g$/i.test(v.parentNode.nodeName)){s=g.parseAttributes(v.parentNode,u)}var w=u.reduce(function(z,y){x=v.getAttribute(y);t=parseFloat(x);if(x){if((y==="fill"||y==="stroke")&&x==="none"){x=""}if(y==="fill-rule"){x=(x==="evenodd")?"destination-over":x}if(y==="transform"){x=g.parseTransformAttribute(x)}if(y in k){y=k[y]}z[y]=isNaN(t)?x:t}return z},{});w=o(w,o(n(v),g.parseStyleAttribute(v)));return o(s,w)}g.parseTransformAttribute=(function(){function s(L,M){var N=M[0];L[0]=Math.cos(N);L[1]=Math.sin(N);L[2]=-Math.sin(N);L[3]=Math.cos(N)}function x(N,O){var M=O[0],L=(O.length===2)?O[1]:O[0];N[0]=M;N[3]=L}function I(L,M){L[2]=M[0]}function u(L,M){L[1]=M[0]}function F(L,M){L[4]=M[0];if(M.length===2){L[5]=M[1]}}var z=[1,0,0,1,0,0],t="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",J="(?:\\s+,?\\s*|,\\s*)",A="(?:(skewX)\\s*\\(\\s*("+t+")\\s*\\))",y="(?:(skewY)\\s*\\(\\s*("+t+")\\s*\\))",H="(?:(rotate)\\s*\\(\\s*("+t+")(?:"+J+"("+t+")"+J+"("+t+"))?\\s*\\))",K="(?:(scale)\\s*\\(\\s*("+t+")(?:"+J+"("+t+"))?\\s*\\))",D="(?:(translate)\\s*\\(\\s*("+t+")(?:"+J+"("+t+"))?\\s*\\))",G="(?:(matrix)\\s*\\(\\s*("+t+")"+J+"("+t+")"+J+"("+t+")"+J+"("+t+")"+J+"("+t+")"+J+"("+t+")\\s*\\))",E="(?:"+G+"|"+D+"|"+K+"|"+H+"|"+A+"|"+y+")",B="(?:"+E+"(?:"+J+E+")*)",v="^\\s*(?:"+B+"?)\\s*$",C=new RegExp(v),w=new RegExp(E);return function(M){var L=z.concat();if(!M||(M&&!C.test(M))){return L}M.replace(w,function(Q){var N=new RegExp(E).exec(Q).filter(function(R){return(R!==""&&R!=null)}),O=N[1],P=N.slice(2).map(parseFloat);switch(O){case"translate":F(L,P);break;case"rotate":s(L,P);break;case"scale":x(L,P);break;case"skewX":I(L,P);break;case"skewY":u(L,P);break;case"matrix":L=P;break}});return L}})();function r(v){if(!v){return null}v=v.trim();var x=v.indexOf(",")>-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())];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)},getContext:function(){return this.contextTop},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(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(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;return b.loadFromJSON(JSON.stringify(this.toJSON()),function(){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,FX_DURATION:500,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,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};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 t=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);t.tl.corner={tl:{x:t.tl.x-r,y:t.tl.y-i},tr:{x:t.tl.x+i,y:t.tl.y-r},bl:{x:t.tl.x-i,y:t.tl.y+r},br:{x:t.tl.x+r,y:t.tl.y+i}};t.tr.corner={tl:{x:t.tr.x-r,y:t.tr.y-i},tr:{x:t.tr.x+i,y:t.tr.y-r},br:{x:t.tr.x+r,y:t.tr.y+i},bl:{x:t.tr.x-i,y:t.tr.y+r}};t.bl.corner={tl:{x:t.bl.x-r,y:t.bl.y-i},bl:{x:t.bl.x-i,y:t.bl.y+r},br:{x:t.bl.x+r,y:t.bl.y+i},tr:{x:t.bl.x+i,y:t.bl.y-r}};t.br.corner={tr:{x:t.br.x+i,y:t.br.y-r},bl:{x:t.br.x-i,y:t.br.y+r},br:{x:t.br.x+r,y:t.br.y+i},tl:{x:t.br.x-r,y:t.br.y-i}};t.ml.corner={tl:{x:t.ml.x-r,y:t.ml.y-i},tr:{x:t.ml.x+i,y:t.ml.y-r},bl:{x:t.ml.x-i,y:t.ml.y+r},br:{x:t.ml.x+r,y:t.ml.y+i}};t.mt.corner={tl:{x:t.mt.x-r,y:t.mt.y-i},tr:{x:t.mt.x+i,y:t.mt.y-r},bl:{x:t.mt.x-i,y:t.mt.y+r},br:{x:t.mt.x+r,y:t.mt.y+i}};t.mr.corner={tl:{x:t.mr.x-r,y:t.mr.y-i},tr:{x:t.mr.x+i,y:t.mr.y-r},bl:{x:t.mr.x-i,y:t.mr.y+r},br:{x:t.mr.x+r,y:t.mr.y+i}};t.mb.corner={tl:{x:t.mb.x-r,y:t.mb.y-i},tr:{x:t.mb.x+i,y:t.mb.y-r},bl:{x:t.mb.x-i,y:t.mb.y+r},br:{x:t.mb.x+r,y:t.mb.y+i}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},straighten:function(){var i=this._getAngleValueForStraighten();this.setAngle(i);return this},fxStraighten:function(q){q=q||{};var r=function(){},s=q.onComplete||r,i=q.onChange||r,t=this;d.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(u){t.setAngle(u);i()},onComplete:function(){t.setCoords();s()},onStart:function(){t.setActive(false)}});return this},fxRemove:function(q){q||(q={});var r=function(){},s=q.onComplete||r,i=q.onChange||r,t=this;d.util.animate({startValue:this.get("opacity"),endValue:0,duration:this.FX_DURATION,onChange:function(u){t.set("opacity",u);i()},onComplete:s,onStart:function(){t.setActive(false)}});return this},_getAngleValueForStraighten:function(){var i=this.get("angle");if(i>-225&&i<=-135){return -180}else{if(i>-135&&i<=-45){return -90}else{if(i>-45&&i<=45){return 0}else{if(i>45&&i<=135){return 90}else{if(i>135&&i<=225){return 180}else{if(i>225&&i<=315){return 270}else{if(i>315){return 360}}}}}}}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,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.get("scaleX");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")},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},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(d){var c=this.getOriginalSize();d.drawImage(this.getElement(),-c.width/2,-c.height/2,c.width,c.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.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 XML=require("o3-xml"),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=XML.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 1d6068647e07b000d74ec87f34283211582c3438..65f3bd815b9a5934f0af7a39369952f29e8ab7b0 100644 GIT binary patch delta 37291 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 bA0Mc{Z(oqFn;6oiQRDvu(59k~!sGz}?~w%f delta 37369 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 B@?QV| diff --git a/package.json b/package.json index 99c48163..e5370c0d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "0.7.25", + "version": "0.7.24", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/site b/site index 28171dba..bc5475bf 160000 --- a/site +++ b/site @@ -1 +1 @@ -Subproject commit 28171dba210627ff20cd4a1c9447a2c74c6f8e3b +Subproject commit bc5475bf1c3c0e08e34a574701d593c8ceb318ba diff --git a/src/line.class.js b/src/line.class.js index 3d52402e..50b96c83 100644 --- a/src/line.class.js +++ b/src/line.class.js @@ -49,8 +49,8 @@ }, _setWidthHeight: function() { - this.set('width', Math.abs(this.x2 - this.x1) || 1 /* prevent 0 width */); - this.set('height', Math.abs(this.y2 - this.y1) || 1 /* prevent 0 height */); + 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); }, @@ -71,13 +71,9 @@ _render: function(ctx) { ctx.beginPath(); - var xMultiplier = this.x1 > this.x2 ? -1 : 1, - yMultiplier = this.y1 > this.y2 ? -1 : 1; - - // move from center (of virtual box) to its left/top corner - ctx.moveTo(this.width === 1 ? 0 : (this.width / 2) * xMultiplier, this.height === 1 ? 0 : (this.height / 2) * yMultiplier); - ctx.lineTo(this.width === 1 ? 0 : (this.width / 2) * -xMultiplier, this.height === 1 ? 0 : (this.height / 2) * -yMultiplier); + ctx.moveTo(this.width === 1 ? 0 : (-this.width / 2), this.height === 1 ? 0 : (-this.height / 2)); + ctx.lineTo(this.width === 1 ? 0 : (this.width / 2), this.height === 1 ? 0 : (this.height / 2)); ctx.lineWidth = this.strokeWidth;