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