From 66247a7b1c9497c47b0a4e9c343bb7d6b8883fc4 Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 11 Jul 2012 01:52:52 +0200 Subject: [PATCH] Fix text shadow messing up size of bounding box. Fix text shadow appearing under text background. --- HEADER.js | 2 +- dist/all.js | 17 ++++++++--------- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 39971 -> 39943 bytes lib/cufon.js | 15 +++++++-------- package.json | 2 +- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/HEADER.js b/HEADER.js index ff7aabc7..b68b2fec 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.30" }; +var fabric = fabric || { version: "0.8.31" }; if (typeof exports != 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 4a6755d1..779163dc 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.30" }; +var fabric = fabric || { version: "0.8.31" }; if (typeof exports != 'undefined') { exports.fabric = fabric; @@ -1167,10 +1167,10 @@ Cufon.registerEngine('canvas', (function() { var x = size.convertFrom(parseFloat(shadow.offX)); var y = size.convertFrom(parseFloat(shadow.offY)); shadowOffsets[i] = [ x, y ]; - if (y < expandTop) expandTop = y; - if (x > expandRight) expandRight = x; - if (y > expandBottom) expandBottom = y; - if (x < expandLeft) expandLeft = x; + //if (y < expandTop) expandTop = y; + //if (x > expandRight) expandRight = x; + //if (y > expandBottom) expandBottom = y; + //if (x < expandLeft) expandLeft = x; } } @@ -1280,7 +1280,7 @@ Cufon.registerEngine('canvas', (function() { // we're at the center of an object and need to jump to the top left corner // where first character is to be drawn -expandLeft - ((1/scale * canvas.width) / 2) + (Cufon.fonts[font.family].offsetLeft || 0), - -expandTop - (Cufon.textOptions.height / scale) / 2 + -expandTop - ((Cufon.textOptions.height / scale) / 2) + (Cufon.fonts[font.family].offsetTop || 0) ); g.lineWidth = font.face['underline-thickness']; @@ -1475,6 +1475,8 @@ Cufon.registerEngine('canvas', (function() { } } + g.save(); + renderBackground(); if (shadows) { for (var i = 0, l = shadows.length; i < l; ++i) { var shadow = shadows[i]; @@ -1484,9 +1486,6 @@ Cufon.registerEngine('canvas', (function() { g.restore(); } } - - g.save(); - renderBackground(); renderText(); g.restore(); g.restore(); diff --git a/dist/all.min.js b/dist/all.min.js index 40b52578..121ddbcf 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.30"};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",(this.x2-this.x1)||1);this.set("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.quadraticCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.quadraticCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.quadraticCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.quadraticCurveTo(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 +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:Jz){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)+(Cufon.fonts[ab.family].offsetTop||0));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",(this.x2-this.x1)||1);this.set("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.quadraticCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.quadraticCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.quadraticCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.quadraticCurveTo(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 9b5a864177a1c1f820e80c5363173389b0630a98..f4ba9138d341bb09df469feeb0e01ab4443506d7 100644 GIT binary patch delta 39913 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%0DXu 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 z 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 delta 39959 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 diff --git a/lib/cufon.js b/lib/cufon.js index 71379950..3c7602ce 100644 --- a/lib/cufon.js +++ b/lib/cufon.js @@ -660,10 +660,10 @@ Cufon.registerEngine('canvas', (function() { var x = size.convertFrom(parseFloat(shadow.offX)); var y = size.convertFrom(parseFloat(shadow.offY)); shadowOffsets[i] = [ x, y ]; - if (y < expandTop) expandTop = y; - if (x > expandRight) expandRight = x; - if (y > expandBottom) expandBottom = y; - if (x < expandLeft) expandLeft = x; + //if (y < expandTop) expandTop = y; + //if (x > expandRight) expandRight = x; + //if (y > expandBottom) expandBottom = y; + //if (x < expandLeft) expandLeft = x; } } @@ -773,7 +773,7 @@ Cufon.registerEngine('canvas', (function() { // we're at the center of an object and need to jump to the top left corner // where first character is to be drawn -expandLeft - ((1/scale * canvas.width) / 2) + (Cufon.fonts[font.family].offsetLeft || 0), - -expandTop - (Cufon.textOptions.height / scale) / 2 + -expandTop - ((Cufon.textOptions.height / scale) / 2) + (Cufon.fonts[font.family].offsetTop || 0) ); g.lineWidth = font.face['underline-thickness']; @@ -968,6 +968,8 @@ Cufon.registerEngine('canvas', (function() { } } + g.save(); + renderBackground(); if (shadows) { for (var i = 0, l = shadows.length; i < l; ++i) { var shadow = shadows[i]; @@ -977,9 +979,6 @@ Cufon.registerEngine('canvas', (function() { g.restore(); } } - - g.save(); - renderBackground(); renderText(); g.restore(); g.restore(); diff --git a/package.json b/package.json index 851be970..706699a6 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.30", + "version": "0.8.31", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js",