From 8581f9434105eed6b9068c38e2ef32577b108daa Mon Sep 17 00:00:00 2001 From: kangax Date: Thu, 28 Jun 2012 21:12:30 +0200 Subject: [PATCH] Fix polyline/polygon rendering in IE8. Closes #124. --- HEADER.js | 2 +- dist/all.js | 4 +++- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 39959 -> 39975 bytes package.json | 2 +- src/polygon.class.js | 1 + src/polyline.class.js | 1 + 7 files changed, 9 insertions(+), 5 deletions(-) diff --git a/HEADER.js b/HEADER.js index d9034649..b58bbfd1 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.28" }; +var fabric = fabric || { version: "0.8.29" }; if (typeof exports != 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index bff1c85b..b0e97e8f 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL` */ /*! Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "0.8.28" }; +var fabric = fabric || { version: "0.8.29" }; if (typeof exports != 'undefined') { exports.fabric = fabric; @@ -9511,6 +9511,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { _render: function(ctx) { var point; ctx.beginPath(); + ctx.moveTo(this.points[0].x, this.points[0].y); for (var i = 0, len = this.points.length; i < len; i++) { point = this.points[i]; ctx.lineTo(point.x, point.y); @@ -9680,6 +9681,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { _render: function(ctx) { var point; ctx.beginPath(); + ctx.moveTo(this.points[0].x, this.points[0].y); for (var i = 0, len = this.points.length; i < len; i++) { point = this.points[i]; ctx.lineTo(point.x, point.y); diff --git a/dist/all.min.js b/dist/all.min.js index 51a6c50e..e099696d 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.28"};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;Sw?p:(o-n);s(t(currentTime,m,byValue,p));if(o>w||q()){x.onComplete&&x.onComplete();return}k(r)})()}var f=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(n,m){fabric.window.setTimeout(n,1000/60)};var k=function(){return f.apply(fabric.window,arguments)};function b(n,p,o){if(n){var m=new Image();m.onload=function(){p&&p.call(o,m);m=m.onload=null};m.src=n}else{p&&p.call(o,n)}}function i(o,s){function n(t){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(t))]}var q=[],p=0,m=o.filter(function(t){return n(t.type).async}).length;var r=this;o.forEach(function(v,u){if(!v.type){return}var t=n(v.type);if(t.async){t.fromObject(v,function(w){q[u]=w;if(++p===m){if(s){s(q)}}})}else{q[u]=t.fromObject(v)}});if(m===0&&s){s(q)}}function a(o,n,p){var m=o.length>1?new fabric.PathGroup(o,n):o[0];if(typeof p!=="undefined"){m.setSourcePath(p)}return m}fabric.util.removeFromArray=j;fabric.util.degreesToRadians=c;fabric.util.toFixed=e;fabric.util.getRandomInt=g;fabric.util.falseFunction=l;fabric.util.animate=d;fabric.util.requestAnimFrame=k;fabric.util.loadImage=b;fabric.util.enlivenObjects=i;fabric.util.groupSVGElements=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.containerClass});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;r&&r.setActive(true);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)?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(f)},_setWidthHeight:function(f){f||(f={});this.set("width","width" in f?f.width:((this.x2-this.x1)||1));this.set("height","height" in f?f.height:((this.y2-this.y1)||1));this.set("left","left" in f?f.left:(this.x1+this.width/2));this.set("top","top" in f?f.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},addWithUpdate:function(h){this._restoreObjectsState();this.objects.push(h);this._calcBounds();this._updateObjectsCoords();return this},removeWithUpdate:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},add:function(h){this.objects.push(h);return this},remove:function(h){f(this.objects,h);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,o){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}if(!o&&this.active){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(){this.forEachObject(function(h){h.setActive()});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,i){e.util.enlivenObjects(h.objects,function(j){delete h.objects;i&&i(new e.Group(j,h))})};e.Group.async=true})(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 d&&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){};c.Text.async=true})(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 +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;Sw?p:(o-n);s(t(currentTime,m,byValue,p));if(o>w||q()){x.onComplete&&x.onComplete();return}k(r)})()}var f=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(n,m){fabric.window.setTimeout(n,1000/60)};var k=function(){return f.apply(fabric.window,arguments)};function b(n,p,o){if(n){var m=new Image();m.onload=function(){p&&p.call(o,m);m=m.onload=null};m.src=n}else{p&&p.call(o,n)}}function i(o,s){function n(t){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(t))]}var q=[],p=0,m=o.filter(function(t){return n(t.type).async}).length;var r=this;o.forEach(function(v,u){if(!v.type){return}var t=n(v.type);if(t.async){t.fromObject(v,function(w){q[u]=w;if(++p===m){if(s){s(q)}}})}else{q[u]=t.fromObject(v)}});if(m===0&&s){s(q)}}function a(o,n,p){var m=o.length>1?new fabric.PathGroup(o,n):o[0];if(typeof p!=="undefined"){m.setSourcePath(p)}return m}fabric.util.removeFromArray=j;fabric.util.degreesToRadians=c;fabric.util.toFixed=e;fabric.util.getRandomInt=g;fabric.util.falseFunction=l;fabric.util.animate=d;fabric.util.requestAnimFrame=k;fabric.util.loadImage=b;fabric.util.enlivenObjects=i;fabric.util.groupSVGElements=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.containerClass});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;r&&r.setActive(true);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)?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(f)},_setWidthHeight:function(f){f||(f={});this.set("width","width" in f?f.width:((this.x2-this.x1)||1));this.set("height","height" in f?f.height:((this.y2-this.y1)||1));this.set("left","left" in f?f.left:(this.x1+this.width/2));this.set("top","top" in f?f.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();f.moveTo(this.points[0].x,this.points[0].y);for(var g=0,d=this.points.length;g"].join("")},_render:function(l){var k;l.beginPath();l.moveTo(this.points[0].x,this.points[0].y);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},addWithUpdate:function(h){this._restoreObjectsState();this.objects.push(h);this._calcBounds();this._updateObjectsCoords();return this},removeWithUpdate:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},add:function(h){this.objects.push(h);return this},remove:function(h){f(this.objects,h);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,o){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}if(!o&&this.active){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(){this.forEachObject(function(h){h.setActive()});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,i){e.util.enlivenObjects(h.objects,function(j){delete h.objects;i&&i(new e.Group(j,h))})};e.Group.async=true})(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 d&&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){};c.Text.async=true})(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 45a34aaf88e99f7552a4228a44a7b46f15a4de06..360d34f4954036af4ab15eae509025034f34bcec 100644 GIT binary patch delta 39043 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�^q&618i+*DO~ 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 G4gvs*;jk?L diff --git a/package.json b/package.json index a1d91627..6e37d329 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "0.8.28", + "version": "0.8.29", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/src/polygon.class.js b/src/polygon.class.js index cd63adec..8b0c0233 100644 --- a/src/polygon.class.js +++ b/src/polygon.class.js @@ -99,6 +99,7 @@ _render: function(ctx) { var point; ctx.beginPath(); + ctx.moveTo(this.points[0].x, this.points[0].y); for (var i = 0, len = this.points.length; i < len; i++) { point = this.points[i]; ctx.lineTo(point.x, point.y); diff --git a/src/polyline.class.js b/src/polyline.class.js index 24934ffc..ec29d25c 100644 --- a/src/polyline.class.js +++ b/src/polyline.class.js @@ -81,6 +81,7 @@ _render: function(ctx) { var point; ctx.beginPath(); + ctx.moveTo(this.points[0].x, this.points[0].y); for (var i = 0, len = this.points.length; i < len; i++) { point = this.points[i]; ctx.lineTo(point.x, point.y);