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

g&%PRm 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

    M^bzpNzZ$2m#sg784K0JuTAP%5E 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", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js",