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