From 9926d8389ac04974f60eef63e693362721cdf97a Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 23 Jun 2012 00:18:33 +0200 Subject: [PATCH] [BACK_INCOMPAT] Remove CANVAS_WIDTH, CANVAS_HEIGHT properties from `fabric.Canvas.prototype` (as they're no longer used anywhere). Lowercase some of the `fabric.Canvas.prototype` properties, for consistency: CURSOR -> defaultCursor, ROTATION_CURSOR -> rotationCursor, HOVER_CURSOR -> hoverCursor, CONTAINER_CLASS -> containerClass. --- HEADER.js | 2 +- dist/all.js | 46 +++++++++++++------------------------ dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 39692 -> 39647 bytes package.json | 2 +- src/canvas.class.js | 30 ++++++++++++------------ src/static_canvas.class.js | 14 ----------- 7 files changed, 35 insertions(+), 63 deletions(-) diff --git a/HEADER.js b/HEADER.js index 54f01890..013d6f74 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.22" }; +var fabric = fabric || { version: "0.8.23" }; if (typeof exports != 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 3f03ed5b..965cca90 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "0.8.22" }; +var fabric = fabric || { version: "0.8.23" }; if (typeof exports != 'undefined') { exports.fabric = fabric; @@ -4747,20 +4747,6 @@ fabric.util.string = { */ clipTo: null, - /** - * Default canvas width - * @constant - * @type Number - */ - CANVAS_WIDTH: 600, - - /** - * Default canvas height - * @constant - * @type Number - */ - CANVAS_HEIGHT: 600, - /** * Callback; invoked right before object is about to be scaled/rotated * @method onBeforeScaleRotate @@ -5792,31 +5778,31 @@ fabric.util.string = { /** * Default cursor value used when hovering over an object on canvas - * @constant + * @property * @type String */ - HOVER_CURSOR: 'move', + hoverCursor: 'move', /** * Default cursor value used for the entire canvas - * @constant + * @property * @type String */ - CURSOR: 'default', + defaultCursor: 'default', /** * Cursor value used for rotation point - * @constant + * @property * @type String */ - ROTATION_CURSOR: 'crosshair', + rotationCursor: 'crosshair', /** * Default element class that's given to wrapper (div) element of canvas - * @constant + * @property * @type String */ - CONTAINER_CLASS: 'canvas-container', + containerClass: 'canvas-container', _initInteractive: function() { this._currentTransform = null; @@ -5934,7 +5920,7 @@ fabric.util.string = { if (activeGroup) { activeGroup.setObjectsCoords(); activeGroup.set('isMoving', false); - this._setCursor(this.CURSOR); + this._setCursor(this.defaultCursor); } // clear selection @@ -6073,7 +6059,7 @@ fabric.util.string = { this._objects[i].setActive(false); } } - style.cursor = this.CURSOR; + style.cursor = this.defaultCursor; } else { // set proper cursor @@ -6466,7 +6452,7 @@ fabric.util.string = { _setCursorFromEvent: function (e, target) { var s = this.upperCanvasEl.style; if (!target) { - s.cursor = this.CURSOR; + s.cursor = this.defaultCursor; return false; } else { @@ -6477,15 +6463,15 @@ fabric.util.string = { && target._findTargetCorner(e, this._offset); if (!corner) { - s.cursor = this.HOVER_CURSOR; + s.cursor = this.hoverCursor; } else { if (corner in cursorMap) { s.cursor = cursorMap[corner]; } else if (corner === 'mtr' || corner === 'mbr') { - s.cursor = this.ROTATION_CURSOR + s.cursor = this.rotationCursor; } else { - s.cursor = this.CURSOR; + s.cursor = this.defaulCursor; return false; } } @@ -6633,7 +6619,7 @@ fabric.util.string = { */ _initWrapperElement: function () { this.wrapperEl = fabric.util.wrapElement(this.lowerCanvasEl, 'div', { - 'class': this.CONTAINER_CLASS + 'class': this.containerClass }); fabric.util.setStyle(this.wrapperEl, { width: this.getWidth() + 'px', diff --git a/dist/all.min.js b/dist/all.min.js index 56a479a3..cd005cc8 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.22"};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;Su?n:(m-l);q(r(currentTime,k,byValue,n));if(m>u||o()){v.onComplete&&v.onComplete();return}i(p)})()}var e=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(l,k){fabric.window.setTimeout(l,1000/60)};var i=function(){return e.apply(fabric.window,arguments)};function a(l,n,m){if(l){var k=new Image();k.onload=function(){n&&n.call(m,k);k=k.onload=null};k.src=l}else{n&&n.call(m,l)}}fabric.util.removeFromArray=h;fabric.util.degreesToRadians=b;fabric.util.toFixed=d;fabric.util.getRandomInt=f;fabric.util.falseFunction=j;fabric.util.animate=c;fabric.util.requestAnimFrame=i;fabric.util.loadImage=a})();(function(){var d=Array.prototype.slice;if(!Array.prototype.indexOf){Array.prototype.indexOf=function(g){if(this===void 0||this===null){throw new TypeError()}var h=Object(this),e=h.length>>>0;if(e===0){return -1}var i=0;if(arguments.length>0){i=Number(arguments[1]);if(i!==i){i=0}else{if(i!==0&&i!==(1/0)&&i!==-(1/0)){i=(i>0||-1)*Math.floor(Math.abs(i))}}}if(i>=e){return -1}var f=i>=0?i:Math.max(e-Math.abs(i),0);for(;f>>0;f>>0;g>>0;f>>0;f>>0;g>>0,f=0,h;if(arguments.length>1){h=arguments[1]}else{do{if(f in this){h=this[f++];break}if(++f>=e){throw new TypeError()}}while(true)}for(;f=e){e=h[f][g]}}}else{while(f--){if(h[f]>=e){e=h[f]}}}return e}function c(h,g){if(!h||h.length===0){return undefined}var f=h.length-1,e=g?h[f][g]:h[f];if(g){while(f--){if(h[f][g]/g,">")}fabric.util.string={camelize:b,capitalize:c,escapeXml:a}}());(function(){var c=Array.prototype.slice,a=Function.prototype.apply,b=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(d){var g=this,e=c.call(arguments,1),f;if(e.length){f=function(){return a.call(g,this instanceof b?this:d,e.concat(c.call(arguments)))}}else{f=function(){return a.call(g,this instanceof b?this:d,arguments)}}b.prototype=this.prototype;f.prototype=new b;return f}}})();(function(){var f=Array.prototype.slice,e=function(){};var c=(function(){for(var g in {toString:1}){if(g==="toString"){return false}}return true})();var b=function(g,j,h){for(var i in j){if(i in g.prototype&&typeof g.prototype[i]=="function"){g.prototype[i]=(function(k){return function(){var m=this.constructor.superclass;this.constructor.superclass=h;var l=j[k].apply(this,arguments);this.constructor.superclass=m;if(k!=="initialize"){return l}}})(i)}else{g.prototype[i]=j[i]}if(c){if(j.toString!==Object.prototype.toString){g.prototype.toString=j.toString}if(j.valueOf!==Object.prototype.valueOf){g.prototype.valueOf=j.valueOf}}}};function a(){}function d(){var k=null,j=f.call(arguments,0);if(typeof j[0]==="function"){k=j.shift()}function g(){this.initialize.apply(this,arguments)}g.superclass=k;g.subclasses=[];if(k){a.prototype=k.prototype;g.prototype=new a;k.subclasses.push(g)}for(var h=0,l=j.length;h-1?c(j,l.match(/opacity:\s*(\d?\.?\d*)/)[1]):j}for(var m in l){if(m==="opacity"){c(j,l[m])}else{var k=(m==="float"||m==="cssFloat")?(typeof n.styleFloat==="undefined"?"cssFloat":"styleFloat"):m;n[k]=l[m]}}return j}var h=fabric.document.createElement("div"),g=typeof h.style.opacity==="string",b=typeof h.style.filter==="string",a=fabric.document.defaultView,f=a&&typeof a.getComputedStyle!=="undefined",d=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,c=function(i){return i};if(g){c=function(i,j){i.style.opacity=j;return i}}else{if(b){c=function(i,j){var k=i.style;if(i.currentStyle&&!i.currentStyle.hasLayout){k.zoom=1}if(d.test(k.filter)){j=j>=0.9999?"":("alpha(opacity="+(j*100)+")");k.filter=k.filter.replace(d,j)}else{k.filter+=" alpha(opacity="+(j*100)+")"}return i}}}fabric.util.setStyle=e})();(function(){var h=Array.prototype.slice;function g(j){return typeof j==="string"?fabric.document.getElementById(j):j}function b(j){return h.call(j,0)}try{var i=b(fabric.document.childNodes) instanceof Array}catch(a){}if(!i){b=function(k){var j=new Array(k.length),l=k.length;while(l--){j[l]=k[l]}return j}}function c(k,j){var l=fabric.document.createElement(k);for(var m in j){if(m==="class"){l.className=j[m]}else{if(m==="for"){l.htmlFor=j[m]}else{l.setAttribute(m,j[m])}}}return l}function f(j,k){if((" "+j.className+" ").indexOf(" "+k+" ")===-1){j.className+=(j.className?" ":"")+k}}function e(k,l,j){if(typeof l==="string"){l=c(l,j)}if(k.parentNode){k.parentNode.replaceChild(l,k)}l.appendChild(k);return l}function d(k){var j=0,l=0;do{j+=k.offsetTop||0;l+=k.offsetLeft||0;k=k.offsetParent}while(k);return({left:l,top:j})}(function(){var k=fabric.document.documentElement.style;var l="userSelect" in k?"userSelect":"MozUserSelect" in k?"MozUserSelect":"WebkitUserSelect" in k?"WebkitUserSelect":"KhtmlUserSelect" in k?"KhtmlUserSelect":"";function m(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=fabric.util.falseFunction}if(l){n.style[l]="none"}else{if(typeof n.unselectable=="string"){n.unselectable="on"}}return n}function j(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=null}if(l){n.style[l]=""}else{if(typeof n.unselectable=="string"){n.unselectable=""}}return n}fabric.util.makeElementUnselectable=m;fabric.util.makeElementSelectable=j})();(function(){function j(k,o){var m=fabric.document.getElementsByTagName("head")[0],l=fabric.document.createElement("script"),n=true;l.type="text/javascript";l.setAttribute("runat","server");l.onload=l.onreadystatechange=function(p){if(n){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete"){return}n=false;o(p||fabric.window.event);l=l.onload=l.onreadystatechange=null}};l.src=k;m.appendChild(l)}fabric.util.getScript=j})();fabric.util.getById=g;fabric.util.toArray=b;fabric.util.makeElement=c;fabric.util.addClass=f;fabric.util.wrapElement=e;fabric.util.getElementOffset=d})();(function(){function d(e,f){return e+(/\?/.test(e)?"&":"?")+f}var c=(function(){var h=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest()}];for(var e=h.length;e--;){try{var g=h[e]();if(g){return h[e]}}catch(f){}}})();function a(){}function b(g,f){f||(f={});var j=f.method?f.method.toUpperCase():"GET",i=f.onComplete||function(){},h=c(),e;h.onreadystatechange=function(){if(h.readyState===4){i(h);h.onreadystatechange=a}};if(j==="GET"){e=null;if(typeof f.parameters=="string"){g=d(g,f.parameters)}}h.open(j,g,true);if(j==="POST"||j==="PUT"){h.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}h.send(e);return h}fabric.util.request=b})();(function(){fabric.util.ease={};function d(F,E,H,G){return H*(F/=G)*F+E}function l(F,E,H,G){return -H*(F/=G)*(F-2)+E}function r(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E}function B(F,E,H,G){return H*(F/=G)*F*F+E}function q(F,E,H,G){return H*((F=F/G-1)*F*F+1)+E}function u(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F+E}return H/2*((F-=2)*F*F+2)+E}function t(F,E,H,G){return H*(F/=G)*F*F*F+E}function g(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E}function k(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E}function y(F,E,H,G){return H*(F/=G)*F*F*F*F+E}function j(F,E,H,G){return H*((F=F/G-1)*F*F*F*F+1)+E}function n(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F*F+E}return H/2*((F-=2)*F*F*F*F+2)+E}function f(F,E,H,G){return -H*Math.cos(F/G*(Math.PI/2))+H+E}function o(F,E,H,G){return H*Math.sin(F/G*(Math.PI/2))+E}function v(F,E,H,G){return -H/2*(Math.cos(Math.PI*F/G)-1)+E}function D(F,E,H,G){return(F==0)?E:H*Math.pow(2,10*(F/G-1))+E}function c(F,E,H,G){return(F==G)?E+H:H*(-Math.pow(2,-10*F/G)+1)+E}function i(F,E,H,G){if(F==0){return E}if(F==G){return E+H}if((F/=G/2)<1){return H/2*Math.pow(2,10*(F-1))+E}return H/2*(-Math.pow(2,-10*--F)+2)+E}function h(F,E,H,G){return -H*(Math.sqrt(1-(F/=G)*F)-1)+E}function p(F,E,H,G){return H*Math.sqrt(1-(F=F/G-1)*F)+E}function x(F,E,H,G){if((F/=G/2)<1){return -H/2*(Math.sqrt(1-F*F)-1)+E}return H/2*(Math.sqrt(1-(F-=2)*F)+1)+E}function s(G,E,K,J){var H=1.70158;var I=0;var F=K;if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(F-1;w=w.split(/\s+/);var u=[];if(y){for(var v=0,t=w.length;v/i,""))}if(!w.documentElement){return}h.parseSVGDocument(w.documentElement,function(z,y){k.set(t,{objects:h.util.array.invoke(z,"toObject"),options:y});v(z,y)})}}function b(v){var u=v.objects,t=v.options;u=u.map(function(w){return h[f(w.type)].fromObject(w)});return({objects:u,options:t})}function n(t,w){t=t.trim();var u;if(typeof DOMParser!=="undefined"){var v=new DOMParser();if(v&&v.parseFromString){u=v.parseFromString(t,"text/xml")}}else{if(h.window.ActiveXObject){var u=new ActiveXObject("Microsoft.XMLDOM");u.async="false";u.loadXML(t.replace(//i,""))}}h.parseSVGDocument(u.documentElement,function(y,x){w(y,x)})}function m(w){var u="";for(var v=0,t=w.length;v",'",""].join("")}return u}p(h,{parseAttributes:e,parseElements:g,parseStyleAttribute:i,parsePointsAttribute:s,getCSSRules:d,loadSVGFromURL:c,loadSVGFromString:n,createSVGFontFacesMarkup:m})})(typeof exports!="undefined"?exports:this);(function(){function c(h){var g=h.getAttribute("style");if(g){var k=g.split(/\s*;\s*/);if(k[k.length-1]===""){k.pop()}for(var f=k.length;f--;){var e=k[f].split(/\s*:\s*/),d=e[0].trim(),j=e[1].trim();if(d==="stop-color"){return j}}}}fabric.Gradient={create:function(l,m){m||(m={});var f=m.x1||0,k=m.y1||0,e=m.x2||l.canvas.width,i=m.y2||0,g=m.colorStops;var j=l.createLinearGradient(f,k,e,i);for(var h in g){var d=g[h];j.addColorStop(parseFloat(h),d)}return j},fromElement:function(d,m,l){var j=d.getElementsByTagName("stop"),d,f,e={},g,k={x1:d.getAttribute("x1")||0,y1:d.getAttribute("y1")||0,x2:d.getAttribute("x2")||"100%",y2:d.getAttribute("y2")||0};for(var h=j.length;h--;){d=j[h];f=d.getAttribute("offset");f=parseFloat(f)/(/%$/.test(f)?100:1);e[f]=c(d)||d.getAttribute("stop-color")}a(l,k);return fabric.Gradient.create(m,{x1:k.x1,y1:k.y1,x2:k.x2,y2:k.y2,colorStops:e})},forObject:function(g,d,e){e||(e={});a(g,e);var f=fabric.Gradient.create(d,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,colorStops:e.colorStops});return f}};function a(f,e){for(var g in e){if(typeof e[g]==="string"&&/^\d+%$/.test(e[g])){var d=parseFloat(e[g],10);if(g==="x1"||g==="x2"){e[g]=f.width*d/100}else{if(g==="y1"||g==="y2"){e[g]=f.height*d/100}}}if(g==="x1"||g==="x2"){e[g]-=f.width/2}else{if(g==="y1"||g==="y2"){e[g]-=f.height/2}}}}function b(j){var f=j.getElementsByTagName("linearGradient"),d=j.getElementsByTagName("radialGradient"),g,h={};for(var e=f.length;e--;){g=f[e];h[g.id]=g}for(var e=d.length;e--;){g=d[e];h[g.id]=g}return h}fabric.getGradientDefs=b})();(function(b){var c=b.fabric||(b.fabric={});if(c.Point){c.warn("fabric.Point is already defined");return}c.Point=a;function a(d,e){if(arguments.length>0){this.init(d,e)}}a.prototype={constructor:a,init:function(d,e){this.x=d;this.y=e},add:function(d){return new a(this.x+d.x,this.y+d.y)},addEquals:function(d){this.x+=d.x;this.y+=d.y;return this},scalarAdd:function(d){return new a(this.x+d,this.y+d)},scalarAddEquals:function(d){this.x+=d;this.y+=d;return this},subtract:function(d){return new a(this.x-d.x,this.y-d.y)},subtractEquals:function(d){this.x-=d.x;this.y-=d.y;return this},scalarSubtract:function(d){return new a(this.x-d,this.y-d)},scalarSubtractEquals:function(d){this.x-=d;this.y-=d;return this},multiply:function(d){return new a(this.x*d,this.y*d)},multiplyEquals:function(d){this.x*=d;this.y*=d;return this},divide:function(d){return new a(this.x/d,this.y/d)},divideEquals:function(d){this.x/=d;this.y/=d;return this},eq:function(d){return(this.x==d.x&&this.y==d.y)},lt:function(d){return(this.xd.x&&this.y>d.y)},gte:function(d){return(this.x>=d.x&&this.y>=d.y)},lerp:function(e,d){return new a(this.x+(e.x-this.x)*d,this.y+(e.y-this.y)*d)},distanceFrom:function(f){var e=this.x-f.x,d=this.y-f.y;return Math.sqrt(e*e+d*d)},min:function(d){return new a(Math.min(this.x,d.x),Math.min(this.y,d.y))},max:function(d){return new a(Math.max(this.x,d.x),Math.max(this.y,d.y))},toString:function(){return this.x+","+this.y},setXY:function(d,e){this.x=d;this.y=e},setFromPoint:function(d){this.x=d.x;this.y=d.y},swap:function(e){var d=this.x,f=this.y;this.x=e.x;this.y=e.y;e.x=d;e.y=f}}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Intersection){b.warn("fabric.Intersection is already defined");return}function c(d){if(arguments.length>0){this.init(d)}}b.Intersection=c;b.Intersection.prototype={init:function(d){this.status=d;this.points=[]},appendPoint:function(d){this.points.push(d)},appendPoints:function(d){this.points=this.points.concat(d)}};b.Intersection.intersectLineLine=function(h,f,l,k){var m,i=(k.x-l.x)*(h.y-l.y)-(k.y-l.y)*(h.x-l.x),j=(f.x-h.x)*(h.y-l.y)-(f.y-h.y)*(h.x-l.x),g=(k.y-l.y)*(f.x-h.x)-(k.x-l.x)*(f.y-h.y);if(g!=0){var e=i/g,d=j/g;if(0<=e&&e<=1&&0<=d&&d<=1){m=new c("Intersection");m.points.push(new b.Point(h.x+e*(f.x-h.x),h.y+e*(f.y-h.y)))}else{m=new c("No Intersection")}}else{if(i==0||j==0){m=new c("Coincident")}else{m=new c("Parallel")}}return m};b.Intersection.intersectLinePolygon=function(e,d,l){var m=new c("No Intersection"),f=l.length;for(var h=0;h0){m.status="Intersection"}return m};b.Intersection.intersectPolygonPolygon=function(j,h){var f=new c("No Intersection"),l=j.length;for(var k=0;k0){f.status="Intersection"}return f};b.Intersection.intersectPolygonRectangle=function(n,e,d){var g=e.min(d),m=e.max(d),f=new b.Point(m.x,g.y),l=new b.Point(g.x,m.y),k=c.intersectLinePolygon(g,f,n),j=c.intersectLinePolygon(f,m,n),i=c.intersectLinePolygon(m,l,n),h=c.intersectLinePolygon(l,g,n),o=new c("No Intersection");o.appendPoints(k.points);o.appendPoints(j.points);o.appendPoints(i.points);o.appendPoints(h.points);if(o.points.length>0){o.status="Intersection"}return o}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Color){b.warn("fabric.Color is already defined.");return}function c(d){if(!d){this.setSource([0,0,0,1])}else{this._tryParsingColor(d)}}b.Color=c;b.Color.prototype={_tryParsingColor:function(d){var e=c.sourceFromHex(d);if(!e){e=c.sourceFromRgb(d)}if(e){this.setSource(e)}},getSource:function(){return this._source},setSource:function(d){this._source=d},toRgb:function(){var d=this.getSource();return"rgb("+d[0]+","+d[1]+","+d[2]+")"},toRgba:function(){var d=this.getSource();return"rgba("+d[0]+","+d[1]+","+d[2]+","+d[3]+")"},toHex:function(){var h=this.getSource();var f=h[0].toString(16);f=(f.length==1)?("0"+f):f;var e=h[1].toString(16);e=(e.length==1)?("0"+e):e;var d=h[2].toString(16);d=(d.length==1)?("0"+d):d;return f.toUpperCase()+e.toUpperCase()+d.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var d=this.getSource();d[3]=e;this.setSource(d);return this},toGrayscale:function(){var f=this.getSource(),e=parseInt((f[0]*0.3+f[1]*0.59+f[2]*0.11).toFixed(0),10),d=f[3];this.setSource([e,e,e,d]);return this},toBlackWhite:function(d){var g=this.getSource(),f=(g[0]*0.3+g[1]*0.59+g[2]*0.11).toFixed(0),e=g[3],d=d||127;f=(Number(f)','',"',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())];if(this.backgroundImage){h.push('')}for(var j=0,k=this.getObjects(),g=k.length;j");return h.join("")},isEmpty:function(){return this._objects.length===0},remove:function(g){e(this._objects,g);if(this.getActiveObject()===g){this.fire("before:selection:cleared",{target:g});this.discardActiveObject();this.fire("selection:cleared")}this.renderAll();return g},sendToBack:function(g){e(this._objects,g);this._objects.unshift(g);return this.renderAll()},bringToFront:function(g){e(this._objects,g);this._objects.push(g);return this.renderAll()},sendBackwards:function(j){var h=this._objects.indexOf(j),g=h;if(h!==0){for(var k=h-1;k>=0;--k){if(j.intersectsWithObject(this._objects[k])||j.isContainedWithinObject(this._objects[k])){g=k;break}}e(this._objects,j);this._objects.splice(g,0,j)}return this.renderAll()},bringForward:function(k){var n=this.getObjects(),h=n.indexOf(k),g=h;if(h!==n.length-1){for(var m=h+1,j=this._objects.length;m"};f(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(l){var k=l.getContext("2d"),g=k.getImageData(0,0,l.width,l.height),p=g.data,m=g.width,r=g.height,q,h,o,n;for(o=0;o0)?0:-v),r.ey-((u>0)?0:-u),t,s);this.contextTop.lineWidth=this.selectionLineWidth;this.contextTop.strokeStyle=this.selectionBorderColor;this.contextTop.strokeRect(r.ex+a-((v>0)?0:t),r.ey+a-((u>0)?0:s),t,s)},_findSelectedObjects:function(x){var y,t,D=[],s=this._groupSelector.ex,C=this._groupSelector.ey,r=s+this._groupSelector.left,A=C+this._groupSelector.top,z,w=new fabric.Point(f(s,r),f(C,A)),B=new fabric.Point(l(s,r),l(C,A));for(var u=0,v=this._objects.length;u1){var D=new fabric.Group(D);this.setActiveGroup(D);D.saveCoords();this.fire("selection:created",{target:D})}}this.renderAll()},findTarget:function(v,s){var u,w=this.getPointer(v);var t=this.getActiveGroup();if(t&&!s&&this.containsPoint(v,t)){u=t;return u}for(var r=this._objects.length;r--;){if(this._objects[r]&&this.containsPoint(v,this._objects[r])){u=this._objects[r];this.relatedTarget=u;break}}if(u&&u.selectable){return u}},getPointer:function(r){var s=q(r);return{x:s.x-this._offset.left,y:s.y-this._offset.top}},_createUpperCanvas:function(){this.upperCanvasEl=this._createCanvasElement();this.upperCanvasEl.className="upper-canvas";this.wrapperEl.appendChild(this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.CONTAINER_CLASS});fabric.util.setStyle(this.wrapperEl,{width:this.getWidth()+"px",height:this.getHeight()+"px",position:"relative"});fabric.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(s){var t=this.getWidth()||s.width,r=this.getHeight()||s.height;fabric.util.setStyle(s,{position:"absolute",width:t+"px",height:r+"px",left:0,top:0});s.width=t;s.height=r;fabric.util.makeElementUnselectable(s)},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},setActiveObject:function(r,s){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=r;r.setActive(true);this.renderAll();this.fire("object:selected",{target:r,e:s});return this},getActiveObject:function(){return this._activeObject},discardActiveObject:function(){if(this._activeObject){this._activeObject.setActive(false)}this._activeObject=null;return this},setActiveGroup:function(r){this._activeGroup=r;return this},getActiveGroup:function(){return this._activeGroup},discardActiveGroup:function(){var r=this.getActiveGroup();if(r){r.destroy()}return this.setActiveGroup(null)},deactivateAll:function(){var s=this.getObjects(),t=0,r=s.length;for(;t1){var o=new fabric.PathGroup(q,n)}else{var o=q[0]}o.setSourcePath(m);if(!(o instanceof fabric.PathGroup)){fabric.util.object.extend(o,n);if(typeof n.angle!=="undefined"){o.setAngle(n.angle)}}g(o,l)})}}}},this)}catch(c){fabric.log(c.message)}},loadFromJSON:function(a,d){if(!a){return}var b=JSON.parse(a);if(!b||(b&&!b.objects)){return}this.clear();var c=this;this._enlivenObjects(b.objects,function(){c.backgroundColor=b.background;if(b.backgroundImage){c.setBackgroundImage(b.backgroundImage,c.renderAll.bind(c));c.backgroundImageOpacity=b.backgroundImageOpacity;c.backgroundImageStretch=b.backgroundImageStretch}if(d){d()}});return this},_enlivenObjects:function(b,e){var c=0,a=b.filter(function(f){return f.type==="image"}).length;var d=this;b.forEach(function(h,g){if(!h.type){return}switch(h.type){case"image":case"font":fabric[fabric.util.string.capitalize(h.type)].fromObject(h,function(i){d.insertAt(i,g,true);if(++c===a){if(e){e()}}});break;default:var f=fabric[fabric.util.string.camelize(fabric.util.string.capitalize(h.type))];if(f&&f.fromObject){d.insertAt(f.fromObject(h),g,true)}break}});if(a===0&&e){e()}},_toDataURL:function(a,b){this.clone(function(c){b(c.toDataURL(a))})},_toDataURLWithMultiplier:function(a,c,b){this.clone(function(d){b(d.toDataURLWithMultiplier(a,c))})},clone:function(b){var a=JSON.stringify(this);this.cloneWithoutData(function(c){c.loadFromJSON(a,function(){if(b){b(c)}})})},cloneWithoutData:function(c){var a=fabric.document.createElement("canvas");a.width=this.getWidth();a.height=this.getHeight();var b=new fabric.Canvas(a);b.clipTo=this.clipTo;if(this.backgroundImage){b.setBackgroundImage(this.backgroundImage.src,function(){b.renderAll();if(c){c(b)}});b.backgroundImageOpacity=this.backgroundImageOpacity;b.backgroundImageStretch=this.backgroundImageStretch}else{if(c){c(b)}}}});(function(a){var d=a.fabric||(a.fabric={}),l=d.util.object.extend,m=d.util.object.clone,c=d.util.toFixed,k=d.util.string.capitalize,p=d.util.getPointer,b=d.util.degreesToRadians,o=Array.prototype.slice;if(d.Object){return}d.Object=d.util.createClass({type:"object",includeDefaultValues:true,NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:0.1,stateProperties:("top left width height scaleX scaleY flipX flipY theta angle opacity cornersize fill overlayFill stroke strokeWidth fillRule borderScaleFactor transformMatrix selectable").split(" "),top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:false,flipY:false,theta:0,opacity:1,angle:0,cornersize:12,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",fill:"rgb(0,0,0)",fillRule:"source-over",overlayFill:null,stroke:null,strokeWidth:1,borderOpacityWhenMoving:0.4,borderScaleFactor:1,transformMatrix:null,selectable:true,hasControls:true,hasBorders:true,hasRotatingPoint:false,callSuper:function(i){var q=this.constructor.superclass.prototype[i];return(arguments.length>1)?q.apply(this,o.call(arguments,1)):q.call(this)},initialize:function(i){i&&this.setOptions(i)},setOptions:function(q){var r=this.stateProperties.length,s;while(r--){s=this.stateProperties[r];if(s in q){this.set(s,q[s])}}},transform:function(i){i.globalAlpha=this.opacity;i.translate(this.left,this.top);i.rotate(this.theta);i.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(){var i={type:this.type,left:c(this.left,this.NUM_FRACTION_DIGITS),top:c(this.top,this.NUM_FRACTION_DIGITS),width:c(this.width,this.NUM_FRACTION_DIGITS),height:c(this.height,this.NUM_FRACTION_DIGITS),fill:this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,scaleX:c(this.scaleX,this.NUM_FRACTION_DIGITS),scaleY:c(this.scaleY,this.NUM_FRACTION_DIGITS),angle:c(this.getAngle(),this.NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:c(this.opacity,this.NUM_FRACTION_DIGITS),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint};if(!this.includeDefaultValues){i=this._removeDefaultValues(i)}return i},toDatalessObject:function(){return this.toObject()},getSvgStyles:function(){return["stroke: ",(this.stroke?this.stroke:"none"),"; ","stroke-width: ",(this.strokeWidth?this.strokeWidth:"0"),"; ","fill: ",(this.fill?this.fill:"none"),"; ","opacity: ",(this.opacity?this.opacity:"1"),";"].join("")},getSvgTransform:function(){var i=this.getAngle();return["translate(",c(this.left,2)," ",c(this.top,2),")",i!==0?(" rotate("+c(i,2)+")"):"",(this.scaleX===1&&this.scaleY===1)?"":(" scale("+c(this.scaleX,2)+" "+c(this.scaleY,2)+")")].join("")},_removeDefaultValues:function(q){var i=d.Object.prototype.options;if(i){this.stateProperties.forEach(function(r){if(q[r]===i[r]){delete q[r]}})}return q},isActive:function(){return !!this.active},setActive:function(i){this.active=!!i;return this},toString:function(){return"#"},set:function(q,i){var s=(q==="scaleX"||q==="scaleY")&&ir.x&&s.xr.y&&u.y=v)&&(s.d.y>=v)){continue}if((s.o.x==s.d.x)&&(s.o.x>=w)){x=s.o.x;u=v}else{z=0;y=(s.d.y-s.o.y)/(s.d.x-s.o.x);r=v-z*w;q=s.o.y-y*s.o.x;x=-(r-q)/(z-y);u=r+z*x}if(x>=w){t+=1}if(t==2){break}}return t},_getImageLines:function(r,q){return{topline:{o:r.tl,d:r.tr},rightline:{o:r.tr,d:r.br},bottomline:{o:r.br,d:r.bl},leftline:{o:r.bl,d:r.tl}}},_setCornerCoords:function(){var w=this.oCoords,r=b(45-this.getAngle()),i=Math.sqrt(2*Math.pow(this.cornersize,2))/2,x=i*Math.cos(r),q=i*Math.sin(r),v=Math.sin(this.theta),u=Math.cos(this.theta);w.tl.corner={tl:{x:w.tl.x-q,y:w.tl.y-x},tr:{x:w.tl.x+x,y:w.tl.y-q},bl:{x:w.tl.x-x,y:w.tl.y+q},br:{x:w.tl.x+q,y:w.tl.y+x}};w.tr.corner={tl:{x:w.tr.x-q,y:w.tr.y-x},tr:{x:w.tr.x+x,y:w.tr.y-q},br:{x:w.tr.x+q,y:w.tr.y+x},bl:{x:w.tr.x-x,y:w.tr.y+q}};w.bl.corner={tl:{x:w.bl.x-q,y:w.bl.y-x},bl:{x:w.bl.x-x,y:w.bl.y+q},br:{x:w.bl.x+q,y:w.bl.y+x},tr:{x:w.bl.x+x,y:w.bl.y-q}};w.br.corner={tr:{x:w.br.x+x,y:w.br.y-q},bl:{x:w.br.x-x,y:w.br.y+q},br:{x:w.br.x+q,y:w.br.y+x},tl:{x:w.br.x-q,y:w.br.y-x}};w.ml.corner={tl:{x:w.ml.x-q,y:w.ml.y-x},tr:{x:w.ml.x+x,y:w.ml.y-q},bl:{x:w.ml.x-x,y:w.ml.y+q},br:{x:w.ml.x+q,y:w.ml.y+x}};w.mt.corner={tl:{x:w.mt.x-q,y:w.mt.y-x},tr:{x:w.mt.x+x,y:w.mt.y-q},bl:{x:w.mt.x-x,y:w.mt.y+q},br:{x:w.mt.x+q,y:w.mt.y+x}};w.mr.corner={tl:{x:w.mr.x-q,y:w.mr.y-x},tr:{x:w.mr.x+x,y:w.mr.y-q},bl:{x:w.mr.x-x,y:w.mr.y+q},br:{x:w.mr.x+q,y:w.mr.y+x}};w.mb.corner={tl:{x:w.mb.x-q,y:w.mb.y-x},tr:{x:w.mb.x+x,y:w.mb.y-q},bl:{x:w.mb.x-x,y:w.mb.y+q},br:{x:w.mb.x+q,y:w.mb.y+x}};var t=40;w.mtr.corner={tl:{x:w.mtr.x-q+(v*t),y:w.mtr.y-x-(u*t)},tr:{x:w.mtr.x+x+(v*t),y:w.mtr.y-q-(u*t)},bl:{x:w.mtr.x-x+(v*t),y:w.mtr.y+q-(u*t)},br:{x:w.mtr.x+q+(v*t),y:w.mtr.y+x-(u*t)}};var s=(-t-this.currentHeight);w.mbr.corner={tl:{x:w.mbr.x-q+(v*s),y:w.mbr.y-x-(u*s)},tr:{x:w.mbr.x+x+(v*s),y:w.mbr.y-q-(u*s)},bl:{x:w.mbr.x-x+(v*s),y:w.mbr.y+q-(u*s)},br:{x:w.mbr.x+q+(v*s),y:w.mbr.y+x-(u*s)}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},toJSON:function(){return this.toObject()},setGradientFill:function(i,q){this.set("fill",d.Gradient.forObject(this,i,q))},animate:function(q,s,i){var r=this;i||(i={});if(!("from" in i)){i.from=this.get(q)}if(/[+-]/.test((s+"").charAt(0))){s=this.get(q)+parseFloat(s)}d.util.animate({startValue:i.from,endValue:s,byValue:i.by,easing:i.easing,duration:i.duration,onChange:function(t){r.set(q,t);i.onChange&&i.onChange()},onComplete:function(){r.setCoords();i.onComplete&&i.onComplete()}})}});d.Object.prototype.rotate=d.Object.prototype.setAngle;var j=d.Object.prototype;for(var g=j.stateProperties.length;g--;){var h=j.stateProperties[g],e=h.charAt(0).toUpperCase()+h.slice(1),f="set"+e,n="get"+e;if(!j[n]){j[n]=(function(i){return new Function('return this.get("'+i+'")')})(h)}if(!j[f]){j[f]=(function(i){return new Function("value",'return this.set("'+i+'", value)')})(h)}}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),e=c.util.object.extend,d=c.Object.prototype.set,a={x1:1,x2:1,y1:1,y2:1};if(c.Line){c.warn("fabric.Line is already defined");return}c.Line=c.util.createClass(c.Object,{type:"line",initialize:function(g,f){if(!g){g=[0,0,0,0]}this.callSuper("initialize",f);this.set("x1",g[0]);this.set("y1",g[1]);this.set("x2",g[2]);this.set("y2",g[3]);this._setWidthHeight()},_setWidthHeight:function(){this.set("width",(this.x2-this.x1)||1);this.set("height",(this.y2-this.y1)||1);this.set("left",this.x1+this.width/2);this.set("top",this.y1+this.height/2)},set:function(f,g){d.call(this,f,g);if(f in a){this._setWidthHeight()}return this},_render:function(f){f.beginPath();f.moveTo(this.width===1?0:(-this.width/2),this.height===1?0:(-this.height/2));f.lineTo(this.width===1?0:(this.width/2),this.height===1?0:(this.height/2));f.lineWidth=this.strokeWidth;var g=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=g},complexity:function(){return 1},toObject:function(){return e(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}});c.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" ");c.Line.fromElement=function(g,f){var i=c.parseAttributes(g,c.Line.ATTRIBUTE_NAMES);var h=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new c.Line(h,e(i,f))};c.Line.fromObject=function(f){var g=[f.x1,f.y1,f.x2,f.y2];return new c.Line(g,f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),d=Math.PI*2,e=b.util.object.extend;if(b.Circle){b.warn("fabric.Circle is already defined.");return}b.Circle=b.util.createClass(b.Object,{type:"circle",initialize:function(f){f=f||{};this.set("radius",f.radius||0);this.callSuper("initialize",f);var g=this.get("radius")*2;this.set("width",g).set("height",g)},toObject:function(){return e(this.callSuper("toObject"),{radius:this.get("radius")})},toSVG:function(){return('')},_render:function(f,g){f.beginPath();f.globalAlpha*=this.opacity;f.arc(g?this.left:0,g?this.top:0,this.radius,0,d,false);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(f){this.radius=f;this.set("width",f*2).set("height",f*2)},complexity:function(){return 1}});b.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Circle.fromElement=function(g,f){f||(f={});var h=b.parseAttributes(g,b.Circle.ATTRIBUTE_NAMES);if(!c(h)){throw Error("value of `r` attribute is required and can not be negative")}if("left" in h){h.left-=(f.width/2)||0}if("top" in h){h.top-=(f.height/2)||0}return new b.Circle(e(h,f))};function c(f){return(("radius" in f)&&(f.radius>0))}b.Circle.fromObject=function(f){return new b.Circle(f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Triangle){b.warn("fabric.Triangle is already defined");return}b.Triangle=b.util.createClass(b.Object,{type:"triangle",initialize:function(c){c=c||{};this.callSuper("initialize",c);this.set("width",c.width||100).set("height",c.height||100)},_render:function(c){var d=this.width/2,e=this.height/2;c.beginPath();c.moveTo(-d,e);c.lineTo(0,-e);c.lineTo(d,e);c.closePath();if(this.fill){c.fill()}if(this.stroke){c.stroke()}},complexity:function(){return 1},toSVG:function(){var c=this.width/2,d=this.height/2;var e=[-c+" "+d,"0 "+-d,c+" "+d].join(",");return''}});b.Triangle.fromObject=function(c){return new b.Triangle(c)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),c=Math.PI*2,d=b.util.object.extend;if(b.Ellipse){b.warn("fabric.Ellipse is already defined.");return}b.Ellipse=b.util.createClass(b.Object,{type:"ellipse",initialize:function(e){e=e||{};this.callSuper("initialize",e);this.set("rx",e.rx||0);this.set("ry",e.ry||0);this.set("width",this.get("rx")*2);this.set("height",this.get("ry")*2)},toObject:function(){return d(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,f){if(this.rx===0||this.ry===0){return}return this.callSuper("render",e,f)},_render:function(e,f){e.beginPath();e.save();e.globalAlpha*=this.opacity;e.transform(1,0,0,this.ry/this.rx,0,0);e.arc(f?this.left:0,f?this.top:0,this.rx,0,c,false);if(this.stroke){e.stroke()}if(this.fill){e.fill()}e.restore()},complexity:function(){return 1}});b.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Ellipse.fromElement=function(f,e){e||(e={});var g=b.parseAttributes(f,b.Ellipse.ATTRIBUTE_NAMES);if("left" in g){g.left-=(e.width/2)||0}if("top" in g){g.top-=(e.height/2)||0}return new b.Ellipse(d(g,e))};b.Ellipse.fromObject=function(e){return new b.Ellipse(e)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={});if(c.Rect){console.warn("fabric.Rect is already defined");return}c.Rect=c.util.createClass(c.Object,{type:"rect",options:{rx:0,ry:0},initialize:function(d){this._initStateProperties();this.callSuper("initialize",d);this._initRxRy()},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){if(this.rx&&!this.ry){this.ry=this.rx}else{if(this.ry&&!this.rx){this.rx=this.ry}}},_render:function(f){var j=this.rx||0,i=this.ry||0,d=-this.width/2,k=-this.height/2,e=this.width,g=this.height;f.beginPath();f.globalAlpha*=this.opacity;if(this.group){f.translate(this.x||0,this.y||0)}f.moveTo(d+j,k);f.lineTo(d+e-j,k);f.bezierCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.bezierCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.bezierCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.bezierCurveTo(d,k,d+j,k,d+j,k);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},_normalizeLeftTopProperties:function(d){if(d.left){this.set("left",d.left+this.getWidth()/2)}this.set("x",d.left||0);if(d.top){this.set("top",d.top+this.getHeight()/2)}this.set("y",d.top||0);return this},complexity:function(){return 1},toObject:function(){return c.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return''}});c.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");function a(d){d.left=d.left||0;d.top=d.top||0;return d}c.Rect.fromElement=function(e,d){if(!e){return null}var g=c.parseAttributes(e,c.Rect.ATTRIBUTE_NAMES);g=a(g);var f=new c.Rect(c.util.object.extend((d?c.util.object.clone(d):{}),g));f._normalizeLeftTopProperties(g);return f};c.Rect.fromObject=function(d){return new c.Rect(d)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),a=c.util.toFixed;if(c.Polyline){c.warn("fabric.Polyline is already defined");return}c.Polyline=c.util.createClass(c.Object,{type:"polyline",initialize:function(e,d){d=d||{};this.set("points",e);this.callSuper("initialize",d);this._calcDimensions()},_calcDimensions:function(){return c.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return c.Polygon.prototype.toObject.call(this)},toSVG:function(){var f=[];for(var e=0,d=this.points.length;e"].join("")},_render:function(f){var e;f.beginPath();for(var g=0,d=this.points.length;g"].join("")},_render:function(l){var k;l.beginPath();for(var m=0,j=this.points.length;m1){E=Math.sqrt(E);O*=E;N*=E}var R=aa/O;var Q=W/O;var D=(-W)/N;var C=(aa)/N;var H=R*M+Q*L;var q=D*M+C*L;var F=R*T+Q*S;var ab=D*T+C*S;var Z=(F-H)*(F-H)+(ab-q)*(ab-q);var U=1/Z-0.25;if(U<0){U=0}var w=Math.sqrt(U);if(P==J){w=-w}var V=0.5*(H+F)-w*(ab-q);var K=0.5*(q+ab)+w*(F-H);var v=Math.atan2(q-K,H-V);var u=Math.atan2(ab-K,F-V);var Y=u-v;if(Y<0&&P==1){Y+=2*Math.PI}else{if(Y>0&&P==0){Y-=2*Math.PI}}var B=Math.ceil(Math.abs(Y/(Math.PI*0.5+0.001)));var I=[];for(var X=0;X"},toObject:function(){var q=g(this.callSuper("toObject"),{path:this.path});if(this.sourcePath){q.sourcePath=this.sourcePath}if(this.transformMatrix){q.transformMatrix=this.transformMatrix}return q},toDatalessObject:function(){var q=this.toObject();if(this.sourcePath){q.path=this.sourcePath}delete q.sourcePath;return q},toSVG:function(){var t=[];for(var r=0,q=this.path.length;r',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var C=[],z,v,y;for(var u=0,t,q,w=this.path.length;uB){for(var r=1,x=q.length;r"];for(var l=0,j=m.length;l");return k.join("")},toString:function(){return"#"},isSameColor:function(){var j=this.getObjects()[0].get("fill");return this.getObjects().every(function(k){return k.get("fill")===j})},complexity:function(){return this.paths.reduce(function(j,k){return j+((k&&k.complexity)?k.complexity():0)},0)},toGrayscale:function(){var j=this.paths.length;while(j--){this.paths[j].toGrayscale()}return this},getObjects:function(){return this.paths}});function c(m){for(var l=0,j=m.length;l"},getObjects:function(){return this.objects},add:function(h){this._restoreObjectsState();this.objects.push(h);h.setActive(true);this._calcBounds();this._updateObjectsCoords();return this},remove:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},size:function(){return this.getObjects().length},set:function(h,k){if(typeof k=="function"){this.set(h,k(this[h]))}else{if(h==="fill"||h==="opacity"){var j=this.objects.length;this[h]=k;while(j--){this.objects[j].set(h,k)}}else{this[h]=k}}return this},contains:function(h){return this.objects.indexOf(h)>-1},toObject:function(){return g(this.callSuper("toObject"),{objects:b(this.objects,"clone")})},render:function(j){j.save();this.transform(j);var n=Math.max(this.scaleX,this.scaleY);for(var l=0,h=this.objects.length,k;k=this.objects[l];l++){var m=k.borderScaleFactor;k.borderScaleFactor=n;k.render(j);k.borderScaleFactor=m}this.hideBorders||this.drawBorders(j);this.hideCorners||this.drawCorners(j);j.restore();this.setCoords()},item:function(h){return this.getObjects()[h]},complexity:function(){return this.getObjects().reduce(function(i,h){i+=(typeof h.complexity=="function")?h.complexity():0;return i},0)},_restoreObjectsState:function(){this.objects.forEach(this._restoreObjectState,this);return this},_restoreObjectState:function(j){var l=this.get("left"),m=this.get("top"),h=this.getAngle()*(Math.PI/180),k=j.get("originalLeft"),n=j.get("originalTop"),i=Math.cos(h)*j.get("top")+Math.sin(h)*j.get("left"),o=-Math.sin(h)*j.get("top")+Math.cos(h)*j.get("left");j.setAngle(j.getAngle()+this.getAngle());j.set("left",l+o*this.get("scaleX"));j.set("top",m+i*this.get("scaleY"));j.set("scaleX",j.get("scaleX")*this.get("scaleX"));j.set("scaleY",j.get("scaleY")*this.get("scaleY"));j.setCoords();j.hideCorners=false;j.setActive(false);j.setCoords();return this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){this._originalLeft=this.get("left");this._originalTop=this.get("top");return this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){this.forEachObject(function(h){h.setCoords()});return this},activateAllObjects:function(){return this.setActive(true)},setActive:function(h){this.forEachObject(function(i){i.setActive(h)});return this},forEachObject:e.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var j=this.getObjects(),i=j[0]?j[0].get("opacity"):1;var h=j.every(function(k){return k.get("opacity")===i});if(h){this.opacity=i}},_calcBounds:function(){var s=[],q=[],p,n,k,h,m,l,u,r=0,t=this.objects.length;for(;ri.x&&j-hi.y},toGrayscale:function(){var h=this.objects.length;while(h--){this.objects[h].toGrayscale()}}});e.Group.fromObject=function(h){return new e.Group(h.objects,h)}})(typeof exports!="undefined"?exports:this);(function(a){var b=fabric.util.object.extend;if(!a.fabric){a.fabric={}}if(a.fabric.Image){fabric.warn("fabric.Image is already defined.");return}if(!fabric.Object){fabric.warn("fabric.Object is required for fabric.Image initialization");return}fabric.Image=fabric.util.createClass(fabric.Object,{active:false,bordervisibility:false,cornervisibility:false,type:"image",initialize:function(d,c){c||(c={});this.callSuper("initialize",c);this._initElement(d);this._originalImage=this.getElement();this._initConfig(c);this.filters=[];if(c.filters){this.filters=c.filters;this.applyFilters()}},getElement:function(){return this._element},setElement:function(c){this._element=c;this._initConfig();return this},getOriginalSize:function(){var c=this.getElement();return{width:c.width,height:c.height}},setBorderVisibility:function(c){this._resetWidthHeight();this._adjustWidthHeightToBorders(showBorder);this.setCoords()},setCornersVisibility:function(c){this.cornervisibility=!!c},render:function(c,d){c.save();if(!d){this.transform(c)}this._render(c);if(this.active&&!d){this.drawBorders(c);this.hideCorners||this.drawCorners(c)}c.restore()},toObject:function(){return b(this.callSuper("toObject"),{src:this._originalImage.src||this._originalImage._src,filters:this.filters.concat()})},toSVG:function(){return''},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(c){this.constructor.fromObject(this.toObject(),c)},applyFilters:function(i){if(this.filters.length===0){this.setElement(this._originalImage);i&&i();return}var c=typeof Buffer!=="undefined"&&typeof window==="undefined",g=this._originalImage,e=fabric.document.createElement("canvas"),f=c?new (require("canvas").Image):fabric.document.createElement("img"),h=this;if(!e.getContext&&typeof G_vmlCanvasManager!="undefined"){G_vmlCanvasManager.initElement(e)}e.width=g.width;e.height=g.height;e.getContext("2d").drawImage(g,0,0);this.filters.forEach(function(j){j&&j.applyTo(e)});f.onload=function(){h.setElement(f);i&&i();f.onload=e=g=null};f.width=g.width;f.height=g.height;if(c){var d=e.toDataURL("image/png").replace(/data:image\/png;base64,/,"");f.src=new Buffer(d,"base64");h.setElement(f);i&&i()}else{f.src=e.toDataURL("image/png")}return this},_render:function(c){c.drawImage(this.getElement(),-this.width/2,-this.height/2,this.width,this.height)},_adjustWidthHeightToBorders:function(c){if(c){this.currentBorder=this.borderwidth;this.width+=(2*this.currentBorder);this.height+=(2*this.currentBorder)}else{this.currentBorder=0}},_resetWidthHeight:function(){var c=this.getElement();this.set("width",c.width);this.set("height",c.height)},_initElement:function(c){this.setElement(fabric.util.getById(c));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(c){this.setOptions(c||{});this._setBorder();this._setWidthHeight()},_initFilters:function(c){if(c.filters&&c.filters.length){this.filters=c.filters.map(function(d){return fabric.Image.filters[d.type].fromObject(d)})}},_setBorder:function(){if(this.bordervisibility){this.currentBorder=this.borderwidth}else{this.currentBorder=0}},_setWidthHeight:function(){var c=2*this.currentBorder;this.width=(this.getElement().width||0)+c;this.height=(this.getElement().height||0)+c},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(d,f){var c=fabric.document.createElement("img"),e=d.src;if(d.width){c.width=d.width}if(d.height){c.height=d.height}c.onload=function(){fabric.Image.prototype._initFilters.call(d,d);var g=new fabric.Image(c,d);f&&f(g);c=c.onload=null};c.src=e};fabric.Image.fromURL=function(d,f,e){var c=fabric.document.createElement("img");c.onload=function(){if(f){f(new fabric.Image(c,e))}c=c.onload=null};c.src=d};fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" ");fabric.Image.fromElement=function(d,f,c){c||(c={});var e=fabric.parseAttributes(d,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(e["xlink:href"],f,b(e,c))};fabric.Image.async=true})(typeof exports!="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var a=this.get("angle");if(a>-225&&a<=-135){return -180}else{if(a>-135&&a<=-45){return -90}else{if(a>-45&&a<=45){return 0}else{if(a>45&&a<=135){return 90}else{if(a>135&&a<=225){return 180}else{if(a>225&&a<=315){return 270}else{if(a>315){return 360}}}}}}}return 0},straighten:function(){var a=this._getAngleValueForStraighten();this.setAngle(a);return this},fxStraighten:function(b){b=b||{};var c=function(){},d=b.onComplete||c,a=b.onChange||c,e=this;fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(f){e.setAngle(f);a()},onComplete:function(){e.setCoords();d()},onStart:function(){e.setActive(false)}});return this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(a){a.straighten();this.renderAll();return this},fxStraightenObject:function(a){a.fxStraighten({onChange:this.renderAll.bind(this)});return this}});fabric.Image.filters={};fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(d){var c=d.getContext("2d"),a=c.getImageData(0,0,d.width,d.height),h=a.data,e=a.width,l=a.height,k,b,g,f;for(g=0;gh&&m>h&&o>h&&p(a-m)'},_render:function(f){var h=Cufon.textOptions||(Cufon.textOptions={});h.left=this.left;h.top=this.top;h.context=f;h.color=this.fill;var g=this._initDummyElement();this.transform(f);Cufon.replaceElement(g,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor});this.width=h.width;this.height=h.height;this._totalLineHeight=h.totalLineHeight;this._fontAscent=h.fontAscent;this._boundaries=h.boundaries;this._shadowOffsets=h.shadowOffsets;this._shadows=h.shadows||[];this.setCoords()},_initDummyElement:function(){var g=c.document.createElement("pre"),f=c.document.createElement("div");f.appendChild(g);if(typeof G_vmlCanvasManager=="undefined"){g.innerHTML=this.text}else{g.innerText=this.text.replace(/\r?\n/gi,"\r")}g.style.fontSize=this.fontSize+"px";g.style.letterSpacing="normal";return g},render:function(f,g){f.save();this._render(f);if(!g&&this.active){this.drawBorders(f);this.hideCorners||this.drawCorners(f)}f.restore()},toObject:function(){return e(this.callSuper("toObject"),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor})},toSVG:function(){var i=this.text.split(/\r?\n/),j=-this._fontAscent-((this._fontAscent/5)*this.lineHeight),g=-(this.width/2),f=(this.height/2)-(i.length*this.fontSize)-this._totalLineHeight,h=this._getSVGTextAndBg(j,g,i),k=this._getSVGShadows(j,i);f+=((this._fontAscent/5)*this.lineHeight);return['',h.textBgRects.join(""),"',k.join(""),h.textSpans.join(""),"",""].join("")},_getSVGShadows:function(h,n){var o=[],k,l,p,g,f=1;for(k=0,p=this._shadows.length;k",c.util.string.escapeXml(n[l]),"");f=1}else{f++}}}return o},_getSVGTextAndBg:function(j,h,n){var g=[],k=[],l,m,o,f=1;for(l=0,o=n.length;l",c.util.string.escapeXml(n[l]),"");f=1}else{f++}if(!this.backgroundColor){continue}k.push("')}return{textSpans:g,textBgRects:k}},_getFillAttributes:function(f){var g=f?new c.Color(f):"";if(!g||!g.getSource()||g.getAlpha()===1){return'fill="'+f+'"'}return'opacity="'+g.getAlpha()+'" fill="'+g.setAlpha(1).toRgb()+'"'},setColor:function(f){this.set("fill",f);return this},setFontsize:function(f){this.set("fontSize",f);this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this.setCoords();return this},set:function(f,g){if(typeof f=="object"){for(var h in f){this.set(h,f[h])}}else{this[f]=g;if(f==="fontFamily"&&this.path){this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+g+"$3")}}return this}});c.Text.fromObject=function(f){return new c.Text(f.text,d(f))};c.Text.fromElement=function(f){}})(typeof exports!="undefined"?exports:this);(function(){if(typeof document!="undefined"&&typeof window!="undefined"){return}var DOMParser=new require("xmldom").DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;function request(url,encoding,callback){var oURL=URL.parse(url),client=HTTP.createClient(oURL.port,oURL.hostname),request=client.request("GET",oURL.pathname,{host:oURL.hostname});client.addListener("error",function(err){if(err.errno===process.ECONNREFUSED){fabric.log("ECONNREFUSED: connection refused to "+client.host+":"+client.port)}else{fabric.log(err.message)}});request.end();request.on("response",function(response){var body="";if(encoding){response.setEncoding(encoding)}response.on("end",function(){callback(body)});response.on("data",function(chunk){if(response.statusCode==200){body+=chunk}})})}fabric.util.loadImage=function(url,callback){request(url,"binary",function(body){var img=new Image();img.src=new Buffer(body,"binary");img._src=url;callback(img)})};fabric.loadSVGFromURL=function(url,callback){url=url.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();request(url,"",function(body){var doc=new DOMParser().parseFromString(body);fabric.parseSVGDocument(doc.documentElement,function(results,options){callback(results,options)})})};fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body);callback&&callback()})};fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){var oImg=new fabric.Image(img);oImg._initConfig(object);oImg._initFilters(object);callback(oImg)})};fabric.createCanvasForNode=function(width,height){var canvasEl=fabric.document.createElement("canvas"),nodeCanvas=new Canvas(width||600,height||600);canvasEl.style={};canvasEl.width=nodeCanvas.width;canvasEl.height=nodeCanvas.height;var canvas=fabric.Canvas||fabric.StaticCanvas;var fabricCanvas=new canvas(canvasEl);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};if(fabric.Canvas){fabric.Canvas.prototype.createPNGStream}var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(width){origSetWidth.call(this);this.nodeCanvas.width=width;return this};if(fabric.Canvas){fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth}var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(height){origSetHeight.call(this);this.nodeCanvas.height=height;return this};if(fabric.Canvas){fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight}})(); \ No newline at end of file +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;Su?n:(m-l);q(r(currentTime,k,byValue,n));if(m>u||o()){v.onComplete&&v.onComplete();return}i(p)})()}var e=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(l,k){fabric.window.setTimeout(l,1000/60)};var i=function(){return e.apply(fabric.window,arguments)};function a(l,n,m){if(l){var k=new Image();k.onload=function(){n&&n.call(m,k);k=k.onload=null};k.src=l}else{n&&n.call(m,l)}}fabric.util.removeFromArray=h;fabric.util.degreesToRadians=b;fabric.util.toFixed=d;fabric.util.getRandomInt=f;fabric.util.falseFunction=j;fabric.util.animate=c;fabric.util.requestAnimFrame=i;fabric.util.loadImage=a})();(function(){var d=Array.prototype.slice;if(!Array.prototype.indexOf){Array.prototype.indexOf=function(g){if(this===void 0||this===null){throw new TypeError()}var h=Object(this),e=h.length>>>0;if(e===0){return -1}var i=0;if(arguments.length>0){i=Number(arguments[1]);if(i!==i){i=0}else{if(i!==0&&i!==(1/0)&&i!==-(1/0)){i=(i>0||-1)*Math.floor(Math.abs(i))}}}if(i>=e){return -1}var f=i>=0?i:Math.max(e-Math.abs(i),0);for(;f>>0;f>>0;g>>0;f>>0;f>>0;g>>0,f=0,h;if(arguments.length>1){h=arguments[1]}else{do{if(f in this){h=this[f++];break}if(++f>=e){throw new TypeError()}}while(true)}for(;f=e){e=h[f][g]}}}else{while(f--){if(h[f]>=e){e=h[f]}}}return e}function c(h,g){if(!h||h.length===0){return undefined}var f=h.length-1,e=g?h[f][g]:h[f];if(g){while(f--){if(h[f][g]/g,">")}fabric.util.string={camelize:b,capitalize:c,escapeXml:a}}());(function(){var c=Array.prototype.slice,a=Function.prototype.apply,b=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(d){var g=this,e=c.call(arguments,1),f;if(e.length){f=function(){return a.call(g,this instanceof b?this:d,e.concat(c.call(arguments)))}}else{f=function(){return a.call(g,this instanceof b?this:d,arguments)}}b.prototype=this.prototype;f.prototype=new b;return f}}})();(function(){var f=Array.prototype.slice,e=function(){};var c=(function(){for(var g in {toString:1}){if(g==="toString"){return false}}return true})();var b=function(g,j,h){for(var i in j){if(i in g.prototype&&typeof g.prototype[i]=="function"){g.prototype[i]=(function(k){return function(){var m=this.constructor.superclass;this.constructor.superclass=h;var l=j[k].apply(this,arguments);this.constructor.superclass=m;if(k!=="initialize"){return l}}})(i)}else{g.prototype[i]=j[i]}if(c){if(j.toString!==Object.prototype.toString){g.prototype.toString=j.toString}if(j.valueOf!==Object.prototype.valueOf){g.prototype.valueOf=j.valueOf}}}};function a(){}function d(){var k=null,j=f.call(arguments,0);if(typeof j[0]==="function"){k=j.shift()}function g(){this.initialize.apply(this,arguments)}g.superclass=k;g.subclasses=[];if(k){a.prototype=k.prototype;g.prototype=new a;k.subclasses.push(g)}for(var h=0,l=j.length;h-1?c(j,l.match(/opacity:\s*(\d?\.?\d*)/)[1]):j}for(var m in l){if(m==="opacity"){c(j,l[m])}else{var k=(m==="float"||m==="cssFloat")?(typeof n.styleFloat==="undefined"?"cssFloat":"styleFloat"):m;n[k]=l[m]}}return j}var h=fabric.document.createElement("div"),g=typeof h.style.opacity==="string",b=typeof h.style.filter==="string",a=fabric.document.defaultView,f=a&&typeof a.getComputedStyle!=="undefined",d=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,c=function(i){return i};if(g){c=function(i,j){i.style.opacity=j;return i}}else{if(b){c=function(i,j){var k=i.style;if(i.currentStyle&&!i.currentStyle.hasLayout){k.zoom=1}if(d.test(k.filter)){j=j>=0.9999?"":("alpha(opacity="+(j*100)+")");k.filter=k.filter.replace(d,j)}else{k.filter+=" alpha(opacity="+(j*100)+")"}return i}}}fabric.util.setStyle=e})();(function(){var h=Array.prototype.slice;function g(j){return typeof j==="string"?fabric.document.getElementById(j):j}function b(j){return h.call(j,0)}try{var i=b(fabric.document.childNodes) instanceof Array}catch(a){}if(!i){b=function(k){var j=new Array(k.length),l=k.length;while(l--){j[l]=k[l]}return j}}function c(k,j){var l=fabric.document.createElement(k);for(var m in j){if(m==="class"){l.className=j[m]}else{if(m==="for"){l.htmlFor=j[m]}else{l.setAttribute(m,j[m])}}}return l}function f(j,k){if((" "+j.className+" ").indexOf(" "+k+" ")===-1){j.className+=(j.className?" ":"")+k}}function e(k,l,j){if(typeof l==="string"){l=c(l,j)}if(k.parentNode){k.parentNode.replaceChild(l,k)}l.appendChild(k);return l}function d(k){var j=0,l=0;do{j+=k.offsetTop||0;l+=k.offsetLeft||0;k=k.offsetParent}while(k);return({left:l,top:j})}(function(){var k=fabric.document.documentElement.style;var l="userSelect" in k?"userSelect":"MozUserSelect" in k?"MozUserSelect":"WebkitUserSelect" in k?"WebkitUserSelect":"KhtmlUserSelect" in k?"KhtmlUserSelect":"";function m(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=fabric.util.falseFunction}if(l){n.style[l]="none"}else{if(typeof n.unselectable=="string"){n.unselectable="on"}}return n}function j(n){if(typeof n.onselectstart!=="undefined"){n.onselectstart=null}if(l){n.style[l]=""}else{if(typeof n.unselectable=="string"){n.unselectable=""}}return n}fabric.util.makeElementUnselectable=m;fabric.util.makeElementSelectable=j})();(function(){function j(k,o){var m=fabric.document.getElementsByTagName("head")[0],l=fabric.document.createElement("script"),n=true;l.type="text/javascript";l.setAttribute("runat","server");l.onload=l.onreadystatechange=function(p){if(n){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete"){return}n=false;o(p||fabric.window.event);l=l.onload=l.onreadystatechange=null}};l.src=k;m.appendChild(l)}fabric.util.getScript=j})();fabric.util.getById=g;fabric.util.toArray=b;fabric.util.makeElement=c;fabric.util.addClass=f;fabric.util.wrapElement=e;fabric.util.getElementOffset=d})();(function(){function d(e,f){return e+(/\?/.test(e)?"&":"?")+f}var c=(function(){var h=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest()}];for(var e=h.length;e--;){try{var g=h[e]();if(g){return h[e]}}catch(f){}}})();function a(){}function b(g,f){f||(f={});var j=f.method?f.method.toUpperCase():"GET",i=f.onComplete||function(){},h=c(),e;h.onreadystatechange=function(){if(h.readyState===4){i(h);h.onreadystatechange=a}};if(j==="GET"){e=null;if(typeof f.parameters=="string"){g=d(g,f.parameters)}}h.open(j,g,true);if(j==="POST"||j==="PUT"){h.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}h.send(e);return h}fabric.util.request=b})();(function(){fabric.util.ease={};function d(F,E,H,G){return H*(F/=G)*F+E}function l(F,E,H,G){return -H*(F/=G)*(F-2)+E}function r(F,E,H,G){if((F/=G/2)<1){return H/2*F*F+E}return -H/2*((--F)*(F-2)-1)+E}function B(F,E,H,G){return H*(F/=G)*F*F+E}function q(F,E,H,G){return H*((F=F/G-1)*F*F+1)+E}function u(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F+E}return H/2*((F-=2)*F*F+2)+E}function t(F,E,H,G){return H*(F/=G)*F*F*F+E}function g(F,E,H,G){return -H*((F=F/G-1)*F*F*F-1)+E}function k(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F+E}return -H/2*((F-=2)*F*F*F-2)+E}function y(F,E,H,G){return H*(F/=G)*F*F*F*F+E}function j(F,E,H,G){return H*((F=F/G-1)*F*F*F*F+1)+E}function n(F,E,H,G){if((F/=G/2)<1){return H/2*F*F*F*F*F+E}return H/2*((F-=2)*F*F*F*F+2)+E}function f(F,E,H,G){return -H*Math.cos(F/G*(Math.PI/2))+H+E}function o(F,E,H,G){return H*Math.sin(F/G*(Math.PI/2))+E}function v(F,E,H,G){return -H/2*(Math.cos(Math.PI*F/G)-1)+E}function D(F,E,H,G){return(F==0)?E:H*Math.pow(2,10*(F/G-1))+E}function c(F,E,H,G){return(F==G)?E+H:H*(-Math.pow(2,-10*F/G)+1)+E}function i(F,E,H,G){if(F==0){return E}if(F==G){return E+H}if((F/=G/2)<1){return H/2*Math.pow(2,10*(F-1))+E}return H/2*(-Math.pow(2,-10*--F)+2)+E}function h(F,E,H,G){return -H*(Math.sqrt(1-(F/=G)*F)-1)+E}function p(F,E,H,G){return H*Math.sqrt(1-(F=F/G-1)*F)+E}function x(F,E,H,G){if((F/=G/2)<1){return -H/2*(Math.sqrt(1-F*F)-1)+E}return H/2*(Math.sqrt(1-(F-=2)*F)+1)+E}function s(G,E,K,J){var H=1.70158;var I=0;var F=K;if(G==0){return E}if((G/=J)==1){return E+K}if(!I){I=J*0.3}if(F-1;w=w.split(/\s+/);var u=[];if(y){for(var v=0,t=w.length;v/i,""))}if(!w.documentElement){return}h.parseSVGDocument(w.documentElement,function(z,y){k.set(t,{objects:h.util.array.invoke(z,"toObject"),options:y});v(z,y)})}}function b(v){var u=v.objects,t=v.options;u=u.map(function(w){return h[f(w.type)].fromObject(w)});return({objects:u,options:t})}function n(t,w){t=t.trim();var u;if(typeof DOMParser!=="undefined"){var v=new DOMParser();if(v&&v.parseFromString){u=v.parseFromString(t,"text/xml")}}else{if(h.window.ActiveXObject){var u=new ActiveXObject("Microsoft.XMLDOM");u.async="false";u.loadXML(t.replace(//i,""))}}h.parseSVGDocument(u.documentElement,function(y,x){w(y,x)})}function m(w){var u="";for(var v=0,t=w.length;v",'",""].join("")}return u}p(h,{parseAttributes:e,parseElements:g,parseStyleAttribute:i,parsePointsAttribute:s,getCSSRules:d,loadSVGFromURL:c,loadSVGFromString:n,createSVGFontFacesMarkup:m})})(typeof exports!="undefined"?exports:this);(function(){function c(h){var g=h.getAttribute("style");if(g){var k=g.split(/\s*;\s*/);if(k[k.length-1]===""){k.pop()}for(var f=k.length;f--;){var e=k[f].split(/\s*:\s*/),d=e[0].trim(),j=e[1].trim();if(d==="stop-color"){return j}}}}fabric.Gradient={create:function(l,m){m||(m={});var f=m.x1||0,k=m.y1||0,e=m.x2||l.canvas.width,i=m.y2||0,g=m.colorStops;var j=l.createLinearGradient(f,k,e,i);for(var h in g){var d=g[h];j.addColorStop(parseFloat(h),d)}return j},fromElement:function(d,m,l){var j=d.getElementsByTagName("stop"),d,f,e={},g,k={x1:d.getAttribute("x1")||0,y1:d.getAttribute("y1")||0,x2:d.getAttribute("x2")||"100%",y2:d.getAttribute("y2")||0};for(var h=j.length;h--;){d=j[h];f=d.getAttribute("offset");f=parseFloat(f)/(/%$/.test(f)?100:1);e[f]=c(d)||d.getAttribute("stop-color")}a(l,k);return fabric.Gradient.create(m,{x1:k.x1,y1:k.y1,x2:k.x2,y2:k.y2,colorStops:e})},forObject:function(g,d,e){e||(e={});a(g,e);var f=fabric.Gradient.create(d,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,colorStops:e.colorStops});return f}};function a(f,e){for(var g in e){if(typeof e[g]==="string"&&/^\d+%$/.test(e[g])){var d=parseFloat(e[g],10);if(g==="x1"||g==="x2"){e[g]=f.width*d/100}else{if(g==="y1"||g==="y2"){e[g]=f.height*d/100}}}if(g==="x1"||g==="x2"){e[g]-=f.width/2}else{if(g==="y1"||g==="y2"){e[g]-=f.height/2}}}}function b(j){var f=j.getElementsByTagName("linearGradient"),d=j.getElementsByTagName("radialGradient"),g,h={};for(var e=f.length;e--;){g=f[e];h[g.id]=g}for(var e=d.length;e--;){g=d[e];h[g.id]=g}return h}fabric.getGradientDefs=b})();(function(b){var c=b.fabric||(b.fabric={});if(c.Point){c.warn("fabric.Point is already defined");return}c.Point=a;function a(d,e){if(arguments.length>0){this.init(d,e)}}a.prototype={constructor:a,init:function(d,e){this.x=d;this.y=e},add:function(d){return new a(this.x+d.x,this.y+d.y)},addEquals:function(d){this.x+=d.x;this.y+=d.y;return this},scalarAdd:function(d){return new a(this.x+d,this.y+d)},scalarAddEquals:function(d){this.x+=d;this.y+=d;return this},subtract:function(d){return new a(this.x-d.x,this.y-d.y)},subtractEquals:function(d){this.x-=d.x;this.y-=d.y;return this},scalarSubtract:function(d){return new a(this.x-d,this.y-d)},scalarSubtractEquals:function(d){this.x-=d;this.y-=d;return this},multiply:function(d){return new a(this.x*d,this.y*d)},multiplyEquals:function(d){this.x*=d;this.y*=d;return this},divide:function(d){return new a(this.x/d,this.y/d)},divideEquals:function(d){this.x/=d;this.y/=d;return this},eq:function(d){return(this.x==d.x&&this.y==d.y)},lt:function(d){return(this.xd.x&&this.y>d.y)},gte:function(d){return(this.x>=d.x&&this.y>=d.y)},lerp:function(e,d){return new a(this.x+(e.x-this.x)*d,this.y+(e.y-this.y)*d)},distanceFrom:function(f){var e=this.x-f.x,d=this.y-f.y;return Math.sqrt(e*e+d*d)},min:function(d){return new a(Math.min(this.x,d.x),Math.min(this.y,d.y))},max:function(d){return new a(Math.max(this.x,d.x),Math.max(this.y,d.y))},toString:function(){return this.x+","+this.y},setXY:function(d,e){this.x=d;this.y=e},setFromPoint:function(d){this.x=d.x;this.y=d.y},swap:function(e){var d=this.x,f=this.y;this.x=e.x;this.y=e.y;e.x=d;e.y=f}}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Intersection){b.warn("fabric.Intersection is already defined");return}function c(d){if(arguments.length>0){this.init(d)}}b.Intersection=c;b.Intersection.prototype={init:function(d){this.status=d;this.points=[]},appendPoint:function(d){this.points.push(d)},appendPoints:function(d){this.points=this.points.concat(d)}};b.Intersection.intersectLineLine=function(h,f,l,k){var m,i=(k.x-l.x)*(h.y-l.y)-(k.y-l.y)*(h.x-l.x),j=(f.x-h.x)*(h.y-l.y)-(f.y-h.y)*(h.x-l.x),g=(k.y-l.y)*(f.x-h.x)-(k.x-l.x)*(f.y-h.y);if(g!=0){var e=i/g,d=j/g;if(0<=e&&e<=1&&0<=d&&d<=1){m=new c("Intersection");m.points.push(new b.Point(h.x+e*(f.x-h.x),h.y+e*(f.y-h.y)))}else{m=new c("No Intersection")}}else{if(i==0||j==0){m=new c("Coincident")}else{m=new c("Parallel")}}return m};b.Intersection.intersectLinePolygon=function(e,d,l){var m=new c("No Intersection"),f=l.length;for(var h=0;h0){m.status="Intersection"}return m};b.Intersection.intersectPolygonPolygon=function(j,h){var f=new c("No Intersection"),l=j.length;for(var k=0;k0){f.status="Intersection"}return f};b.Intersection.intersectPolygonRectangle=function(n,e,d){var g=e.min(d),m=e.max(d),f=new b.Point(m.x,g.y),l=new b.Point(g.x,m.y),k=c.intersectLinePolygon(g,f,n),j=c.intersectLinePolygon(f,m,n),i=c.intersectLinePolygon(m,l,n),h=c.intersectLinePolygon(l,g,n),o=new c("No Intersection");o.appendPoints(k.points);o.appendPoints(j.points);o.appendPoints(i.points);o.appendPoints(h.points);if(o.points.length>0){o.status="Intersection"}return o}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Color){b.warn("fabric.Color is already defined.");return}function c(d){if(!d){this.setSource([0,0,0,1])}else{this._tryParsingColor(d)}}b.Color=c;b.Color.prototype={_tryParsingColor:function(d){var e=c.sourceFromHex(d);if(!e){e=c.sourceFromRgb(d)}if(e){this.setSource(e)}},getSource:function(){return this._source},setSource:function(d){this._source=d},toRgb:function(){var d=this.getSource();return"rgb("+d[0]+","+d[1]+","+d[2]+")"},toRgba:function(){var d=this.getSource();return"rgba("+d[0]+","+d[1]+","+d[2]+","+d[3]+")"},toHex:function(){var h=this.getSource();var f=h[0].toString(16);f=(f.length==1)?("0"+f):f;var e=h[1].toString(16);e=(e.length==1)?("0"+e):e;var d=h[2].toString(16);d=(d.length==1)?("0"+d):d;return f.toUpperCase()+e.toUpperCase()+d.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var d=this.getSource();d[3]=e;this.setSource(d);return this},toGrayscale:function(){var f=this.getSource(),e=parseInt((f[0]*0.3+f[1]*0.59+f[2]*0.11).toFixed(0),10),d=f[3];this.setSource([e,e,e,d]);return this},toBlackWhite:function(d){var g=this.getSource(),f=(g[0]*0.3+g[1]*0.59+g[2]*0.11).toFixed(0),e=g[3],d=d||127;f=(Number(f)','',"',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())];if(this.backgroundImage){h.push('')}for(var j=0,k=this.getObjects(),g=k.length;j");return h.join("")},isEmpty:function(){return this._objects.length===0},remove:function(g){e(this._objects,g);if(this.getActiveObject()===g){this.fire("before:selection:cleared",{target:g});this.discardActiveObject();this.fire("selection:cleared")}this.renderAll();return g},sendToBack:function(g){e(this._objects,g);this._objects.unshift(g);return this.renderAll()},bringToFront:function(g){e(this._objects,g);this._objects.push(g);return this.renderAll()},sendBackwards:function(j){var h=this._objects.indexOf(j),g=h;if(h!==0){for(var k=h-1;k>=0;--k){if(j.intersectsWithObject(this._objects[k])||j.isContainedWithinObject(this._objects[k])){g=k;break}}e(this._objects,j);this._objects.splice(g,0,j)}return this.renderAll()},bringForward:function(k){var n=this.getObjects(),h=n.indexOf(k),g=h;if(h!==n.length-1){for(var m=h+1,j=this._objects.length;m"};f(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(l){var k=l.getContext("2d"),g=k.getImageData(0,0,l.width,l.height),p=g.data,m=g.width,r=g.height,q,h,o,n;for(o=0;o0)?0:-v),r.ey-((u>0)?0:-u),t,s);this.contextTop.lineWidth=this.selectionLineWidth;this.contextTop.strokeStyle=this.selectionBorderColor;this.contextTop.strokeRect(r.ex+a-((v>0)?0:t),r.ey+a-((u>0)?0:s),t,s)},_findSelectedObjects:function(x){var y,t,D=[],s=this._groupSelector.ex,C=this._groupSelector.ey,r=s+this._groupSelector.left,A=C+this._groupSelector.top,z,w=new fabric.Point(f(s,r),f(C,A)),B=new fabric.Point(l(s,r),l(C,A));for(var u=0,v=this._objects.length;u1){var D=new fabric.Group(D);this.setActiveGroup(D);D.saveCoords();this.fire("selection:created",{target:D})}}this.renderAll()},findTarget:function(v,s){var u,w=this.getPointer(v);var t=this.getActiveGroup();if(t&&!s&&this.containsPoint(v,t)){u=t;return u}for(var r=this._objects.length;r--;){if(this._objects[r]&&this.containsPoint(v,this._objects[r])){u=this._objects[r];this.relatedTarget=u;break}}if(u&&u.selectable){return u}},getPointer:function(r){var s=q(r);return{x:s.x-this._offset.left,y:s.y-this._offset.top}},_createUpperCanvas:function(){this.upperCanvasEl=this._createCanvasElement();this.upperCanvasEl.className="upper-canvas";this.wrapperEl.appendChild(this.upperCanvasEl);this._applyCanvasStyle(this.upperCanvasEl);this.contextTop=this.upperCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=fabric.util.wrapElement(this.lowerCanvasEl,"div",{"class":this.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;return this},getActiveGroup:function(){return this._activeGroup},discardActiveGroup:function(){var r=this.getActiveGroup();if(r){r.destroy()}return this.setActiveGroup(null)},deactivateAll:function(){var s=this.getObjects(),t=0,r=s.length;for(;t1){var o=new fabric.PathGroup(q,n)}else{var o=q[0]}o.setSourcePath(m);if(!(o instanceof fabric.PathGroup)){fabric.util.object.extend(o,n);if(typeof n.angle!=="undefined"){o.setAngle(n.angle)}}g(o,l)})}}}},this)}catch(c){fabric.log(c.message)}},loadFromJSON:function(a,d){if(!a){return}var b=JSON.parse(a);if(!b||(b&&!b.objects)){return}this.clear();var c=this;this._enlivenObjects(b.objects,function(){c.backgroundColor=b.background;if(b.backgroundImage){c.setBackgroundImage(b.backgroundImage,c.renderAll.bind(c));c.backgroundImageOpacity=b.backgroundImageOpacity;c.backgroundImageStretch=b.backgroundImageStretch}if(d){d()}});return this},_enlivenObjects:function(b,e){var c=0,a=b.filter(function(f){return f.type==="image"}).length;var d=this;b.forEach(function(h,g){if(!h.type){return}switch(h.type){case"image":case"font":fabric[fabric.util.string.capitalize(h.type)].fromObject(h,function(i){d.insertAt(i,g,true);if(++c===a){if(e){e()}}});break;default:var f=fabric[fabric.util.string.camelize(fabric.util.string.capitalize(h.type))];if(f&&f.fromObject){d.insertAt(f.fromObject(h),g,true)}break}});if(a===0&&e){e()}},_toDataURL:function(a,b){this.clone(function(c){b(c.toDataURL(a))})},_toDataURLWithMultiplier:function(a,c,b){this.clone(function(d){b(d.toDataURLWithMultiplier(a,c))})},clone:function(b){var a=JSON.stringify(this);this.cloneWithoutData(function(c){c.loadFromJSON(a,function(){if(b){b(c)}})})},cloneWithoutData:function(c){var a=fabric.document.createElement("canvas");a.width=this.getWidth();a.height=this.getHeight();var b=new fabric.Canvas(a);b.clipTo=this.clipTo;if(this.backgroundImage){b.setBackgroundImage(this.backgroundImage.src,function(){b.renderAll();if(c){c(b)}});b.backgroundImageOpacity=this.backgroundImageOpacity;b.backgroundImageStretch=this.backgroundImageStretch}else{if(c){c(b)}}}});(function(a){var d=a.fabric||(a.fabric={}),l=d.util.object.extend,m=d.util.object.clone,c=d.util.toFixed,k=d.util.string.capitalize,p=d.util.getPointer,b=d.util.degreesToRadians,o=Array.prototype.slice;if(d.Object){return}d.Object=d.util.createClass({type:"object",includeDefaultValues:true,NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:0.1,stateProperties:("top left width height scaleX scaleY flipX flipY theta angle opacity cornersize fill overlayFill stroke strokeWidth fillRule borderScaleFactor transformMatrix selectable").split(" "),top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:false,flipY:false,theta:0,opacity:1,angle:0,cornersize:12,padding:0,borderColor:"rgba(102,153,255,0.75)",cornerColor:"rgba(102,153,255,0.5)",fill:"rgb(0,0,0)",fillRule:"source-over",overlayFill:null,stroke:null,strokeWidth:1,borderOpacityWhenMoving:0.4,borderScaleFactor:1,transformMatrix:null,selectable:true,hasControls:true,hasBorders:true,hasRotatingPoint:false,callSuper:function(i){var q=this.constructor.superclass.prototype[i];return(arguments.length>1)?q.apply(this,o.call(arguments,1)):q.call(this)},initialize:function(i){i&&this.setOptions(i)},setOptions:function(q){var r=this.stateProperties.length,s;while(r--){s=this.stateProperties[r];if(s in q){this.set(s,q[s])}}},transform:function(i){i.globalAlpha=this.opacity;i.translate(this.left,this.top);i.rotate(this.theta);i.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(){var i={type:this.type,left:c(this.left,this.NUM_FRACTION_DIGITS),top:c(this.top,this.NUM_FRACTION_DIGITS),width:c(this.width,this.NUM_FRACTION_DIGITS),height:c(this.height,this.NUM_FRACTION_DIGITS),fill:this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,scaleX:c(this.scaleX,this.NUM_FRACTION_DIGITS),scaleY:c(this.scaleY,this.NUM_FRACTION_DIGITS),angle:c(this.getAngle(),this.NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:c(this.opacity,this.NUM_FRACTION_DIGITS),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint};if(!this.includeDefaultValues){i=this._removeDefaultValues(i)}return i},toDatalessObject:function(){return this.toObject()},getSvgStyles:function(){return["stroke: ",(this.stroke?this.stroke:"none"),"; ","stroke-width: ",(this.strokeWidth?this.strokeWidth:"0"),"; ","fill: ",(this.fill?this.fill:"none"),"; ","opacity: ",(this.opacity?this.opacity:"1"),";"].join("")},getSvgTransform:function(){var i=this.getAngle();return["translate(",c(this.left,2)," ",c(this.top,2),")",i!==0?(" rotate("+c(i,2)+")"):"",(this.scaleX===1&&this.scaleY===1)?"":(" scale("+c(this.scaleX,2)+" "+c(this.scaleY,2)+")")].join("")},_removeDefaultValues:function(q){var i=d.Object.prototype.options;if(i){this.stateProperties.forEach(function(r){if(q[r]===i[r]){delete q[r]}})}return q},isActive:function(){return !!this.active},setActive:function(i){this.active=!!i;return this},toString:function(){return"#"},set:function(q,i){var s=(q==="scaleX"||q==="scaleY")&&ir.x&&s.xr.y&&u.y=v)&&(s.d.y>=v)){continue}if((s.o.x==s.d.x)&&(s.o.x>=w)){x=s.o.x;u=v}else{z=0;y=(s.d.y-s.o.y)/(s.d.x-s.o.x);r=v-z*w;q=s.o.y-y*s.o.x;x=-(r-q)/(z-y);u=r+z*x}if(x>=w){t+=1}if(t==2){break}}return t},_getImageLines:function(r,q){return{topline:{o:r.tl,d:r.tr},rightline:{o:r.tr,d:r.br},bottomline:{o:r.br,d:r.bl},leftline:{o:r.bl,d:r.tl}}},_setCornerCoords:function(){var w=this.oCoords,r=b(45-this.getAngle()),i=Math.sqrt(2*Math.pow(this.cornersize,2))/2,x=i*Math.cos(r),q=i*Math.sin(r),v=Math.sin(this.theta),u=Math.cos(this.theta);w.tl.corner={tl:{x:w.tl.x-q,y:w.tl.y-x},tr:{x:w.tl.x+x,y:w.tl.y-q},bl:{x:w.tl.x-x,y:w.tl.y+q},br:{x:w.tl.x+q,y:w.tl.y+x}};w.tr.corner={tl:{x:w.tr.x-q,y:w.tr.y-x},tr:{x:w.tr.x+x,y:w.tr.y-q},br:{x:w.tr.x+q,y:w.tr.y+x},bl:{x:w.tr.x-x,y:w.tr.y+q}};w.bl.corner={tl:{x:w.bl.x-q,y:w.bl.y-x},bl:{x:w.bl.x-x,y:w.bl.y+q},br:{x:w.bl.x+q,y:w.bl.y+x},tr:{x:w.bl.x+x,y:w.bl.y-q}};w.br.corner={tr:{x:w.br.x+x,y:w.br.y-q},bl:{x:w.br.x-x,y:w.br.y+q},br:{x:w.br.x+q,y:w.br.y+x},tl:{x:w.br.x-q,y:w.br.y-x}};w.ml.corner={tl:{x:w.ml.x-q,y:w.ml.y-x},tr:{x:w.ml.x+x,y:w.ml.y-q},bl:{x:w.ml.x-x,y:w.ml.y+q},br:{x:w.ml.x+q,y:w.ml.y+x}};w.mt.corner={tl:{x:w.mt.x-q,y:w.mt.y-x},tr:{x:w.mt.x+x,y:w.mt.y-q},bl:{x:w.mt.x-x,y:w.mt.y+q},br:{x:w.mt.x+q,y:w.mt.y+x}};w.mr.corner={tl:{x:w.mr.x-q,y:w.mr.y-x},tr:{x:w.mr.x+x,y:w.mr.y-q},bl:{x:w.mr.x-x,y:w.mr.y+q},br:{x:w.mr.x+q,y:w.mr.y+x}};w.mb.corner={tl:{x:w.mb.x-q,y:w.mb.y-x},tr:{x:w.mb.x+x,y:w.mb.y-q},bl:{x:w.mb.x-x,y:w.mb.y+q},br:{x:w.mb.x+q,y:w.mb.y+x}};var t=40;w.mtr.corner={tl:{x:w.mtr.x-q+(v*t),y:w.mtr.y-x-(u*t)},tr:{x:w.mtr.x+x+(v*t),y:w.mtr.y-q-(u*t)},bl:{x:w.mtr.x-x+(v*t),y:w.mtr.y+q-(u*t)},br:{x:w.mtr.x+q+(v*t),y:w.mtr.y+x-(u*t)}};var s=(-t-this.currentHeight);w.mbr.corner={tl:{x:w.mbr.x-q+(v*s),y:w.mbr.y-x-(u*s)},tr:{x:w.mbr.x+x+(v*s),y:w.mbr.y-q-(u*s)},bl:{x:w.mbr.x-x+(v*s),y:w.mbr.y+q-(u*s)},br:{x:w.mbr.x+q+(v*s),y:w.mbr.y+x-(u*s)}}},toGrayscale:function(){var i=this.get("fill");if(i){this.set("overlayFill",new d.Color(i).toGrayscale().toRgb())}return this},complexity:function(){return 0},toJSON:function(){return this.toObject()},setGradientFill:function(i,q){this.set("fill",d.Gradient.forObject(this,i,q))},animate:function(q,s,i){var r=this;i||(i={});if(!("from" in i)){i.from=this.get(q)}if(/[+-]/.test((s+"").charAt(0))){s=this.get(q)+parseFloat(s)}d.util.animate({startValue:i.from,endValue:s,byValue:i.by,easing:i.easing,duration:i.duration,onChange:function(t){r.set(q,t);i.onChange&&i.onChange()},onComplete:function(){r.setCoords();i.onComplete&&i.onComplete()}})}});d.Object.prototype.rotate=d.Object.prototype.setAngle;var j=d.Object.prototype;for(var g=j.stateProperties.length;g--;){var h=j.stateProperties[g],e=h.charAt(0).toUpperCase()+h.slice(1),f="set"+e,n="get"+e;if(!j[n]){j[n]=(function(i){return new Function('return this.get("'+i+'")')})(h)}if(!j[f]){j[f]=(function(i){return new Function("value",'return this.set("'+i+'", value)')})(h)}}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),e=c.util.object.extend,d=c.Object.prototype.set,a={x1:1,x2:1,y1:1,y2:1};if(c.Line){c.warn("fabric.Line is already defined");return}c.Line=c.util.createClass(c.Object,{type:"line",initialize:function(g,f){if(!g){g=[0,0,0,0]}this.callSuper("initialize",f);this.set("x1",g[0]);this.set("y1",g[1]);this.set("x2",g[2]);this.set("y2",g[3]);this._setWidthHeight()},_setWidthHeight:function(){this.set("width",(this.x2-this.x1)||1);this.set("height",(this.y2-this.y1)||1);this.set("left",this.x1+this.width/2);this.set("top",this.y1+this.height/2)},set:function(f,g){d.call(this,f,g);if(f in a){this._setWidthHeight()}return this},_render:function(f){f.beginPath();f.moveTo(this.width===1?0:(-this.width/2),this.height===1?0:(-this.height/2));f.lineTo(this.width===1?0:(this.width/2),this.height===1?0:(this.height/2));f.lineWidth=this.strokeWidth;var g=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=g},complexity:function(){return 1},toObject:function(){return e(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}});c.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" ");c.Line.fromElement=function(g,f){var i=c.parseAttributes(g,c.Line.ATTRIBUTE_NAMES);var h=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new c.Line(h,e(i,f))};c.Line.fromObject=function(f){var g=[f.x1,f.y1,f.x2,f.y2];return new c.Line(g,f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),d=Math.PI*2,e=b.util.object.extend;if(b.Circle){b.warn("fabric.Circle is already defined.");return}b.Circle=b.util.createClass(b.Object,{type:"circle",initialize:function(f){f=f||{};this.set("radius",f.radius||0);this.callSuper("initialize",f);var g=this.get("radius")*2;this.set("width",g).set("height",g)},toObject:function(){return e(this.callSuper("toObject"),{radius:this.get("radius")})},toSVG:function(){return('')},_render:function(f,g){f.beginPath();f.globalAlpha*=this.opacity;f.arc(g?this.left:0,g?this.top:0,this.radius,0,d,false);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(f){this.radius=f;this.set("width",f*2).set("height",f*2)},complexity:function(){return 1}});b.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Circle.fromElement=function(g,f){f||(f={});var h=b.parseAttributes(g,b.Circle.ATTRIBUTE_NAMES);if(!c(h)){throw Error("value of `r` attribute is required and can not be negative")}if("left" in h){h.left-=(f.width/2)||0}if("top" in h){h.top-=(f.height/2)||0}return new b.Circle(e(h,f))};function c(f){return(("radius" in f)&&(f.radius>0))}b.Circle.fromObject=function(f){return new b.Circle(f)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={});if(b.Triangle){b.warn("fabric.Triangle is already defined");return}b.Triangle=b.util.createClass(b.Object,{type:"triangle",initialize:function(c){c=c||{};this.callSuper("initialize",c);this.set("width",c.width||100).set("height",c.height||100)},_render:function(c){var d=this.width/2,e=this.height/2;c.beginPath();c.moveTo(-d,e);c.lineTo(0,-e);c.lineTo(d,e);c.closePath();if(this.fill){c.fill()}if(this.stroke){c.stroke()}},complexity:function(){return 1},toSVG:function(){var c=this.width/2,d=this.height/2;var e=[-c+" "+d,"0 "+-d,c+" "+d].join(",");return''}});b.Triangle.fromObject=function(c){return new b.Triangle(c)}})(typeof exports!="undefined"?exports:this);(function(a){var b=a.fabric||(a.fabric={}),c=Math.PI*2,d=b.util.object.extend;if(b.Ellipse){b.warn("fabric.Ellipse is already defined.");return}b.Ellipse=b.util.createClass(b.Object,{type:"ellipse",initialize:function(e){e=e||{};this.callSuper("initialize",e);this.set("rx",e.rx||0);this.set("ry",e.ry||0);this.set("width",this.get("rx")*2);this.set("height",this.get("ry")*2)},toObject:function(){return d(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,f){if(this.rx===0||this.ry===0){return}return this.callSuper("render",e,f)},_render:function(e,f){e.beginPath();e.save();e.globalAlpha*=this.opacity;e.transform(1,0,0,this.ry/this.rx,0,0);e.arc(f?this.left:0,f?this.top:0,this.rx,0,c,false);if(this.stroke){e.stroke()}if(this.fill){e.fill()}e.restore()},complexity:function(){return 1}});b.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");b.Ellipse.fromElement=function(f,e){e||(e={});var g=b.parseAttributes(f,b.Ellipse.ATTRIBUTE_NAMES);if("left" in g){g.left-=(e.width/2)||0}if("top" in g){g.top-=(e.height/2)||0}return new b.Ellipse(d(g,e))};b.Ellipse.fromObject=function(e){return new b.Ellipse(e)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={});if(c.Rect){console.warn("fabric.Rect is already defined");return}c.Rect=c.util.createClass(c.Object,{type:"rect",options:{rx:0,ry:0},initialize:function(d){this._initStateProperties();this.callSuper("initialize",d);this._initRxRy()},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){if(this.rx&&!this.ry){this.ry=this.rx}else{if(this.ry&&!this.rx){this.rx=this.ry}}},_render:function(f){var j=this.rx||0,i=this.ry||0,d=-this.width/2,k=-this.height/2,e=this.width,g=this.height;f.beginPath();f.globalAlpha*=this.opacity;if(this.group){f.translate(this.x||0,this.y||0)}f.moveTo(d+j,k);f.lineTo(d+e-j,k);f.bezierCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.bezierCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.bezierCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.bezierCurveTo(d,k,d+j,k,d+j,k);f.closePath();if(this.fill){f.fill()}if(this.stroke){f.stroke()}},_normalizeLeftTopProperties:function(d){if(d.left){this.set("left",d.left+this.getWidth()/2)}this.set("x",d.left||0);if(d.top){this.set("top",d.top+this.getHeight()/2)}this.set("y",d.top||0);return this},complexity:function(){return 1},toObject:function(){return c.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return''}});c.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");function a(d){d.left=d.left||0;d.top=d.top||0;return d}c.Rect.fromElement=function(e,d){if(!e){return null}var g=c.parseAttributes(e,c.Rect.ATTRIBUTE_NAMES);g=a(g);var f=new c.Rect(c.util.object.extend((d?c.util.object.clone(d):{}),g));f._normalizeLeftTopProperties(g);return f};c.Rect.fromObject=function(d){return new c.Rect(d)}})(typeof exports!="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),a=c.util.toFixed;if(c.Polyline){c.warn("fabric.Polyline is already defined");return}c.Polyline=c.util.createClass(c.Object,{type:"polyline",initialize:function(e,d){d=d||{};this.set("points",e);this.callSuper("initialize",d);this._calcDimensions()},_calcDimensions:function(){return c.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return c.Polygon.prototype.toObject.call(this)},toSVG:function(){var f=[];for(var e=0,d=this.points.length;e"].join("")},_render:function(f){var e;f.beginPath();for(var g=0,d=this.points.length;g"].join("")},_render:function(l){var k;l.beginPath();for(var m=0,j=this.points.length;m1){E=Math.sqrt(E);O*=E;N*=E}var R=aa/O;var Q=W/O;var D=(-W)/N;var C=(aa)/N;var H=R*M+Q*L;var q=D*M+C*L;var F=R*T+Q*S;var ab=D*T+C*S;var Z=(F-H)*(F-H)+(ab-q)*(ab-q);var U=1/Z-0.25;if(U<0){U=0}var w=Math.sqrt(U);if(P==J){w=-w}var V=0.5*(H+F)-w*(ab-q);var K=0.5*(q+ab)+w*(F-H);var v=Math.atan2(q-K,H-V);var u=Math.atan2(ab-K,F-V);var Y=u-v;if(Y<0&&P==1){Y+=2*Math.PI}else{if(Y>0&&P==0){Y-=2*Math.PI}}var B=Math.ceil(Math.abs(Y/(Math.PI*0.5+0.001)));var I=[];for(var X=0;X"},toObject:function(){var q=g(this.callSuper("toObject"),{path:this.path});if(this.sourcePath){q.sourcePath=this.sourcePath}if(this.transformMatrix){q.transformMatrix=this.transformMatrix}return q},toDatalessObject:function(){var q=this.toObject();if(this.sourcePath){q.path=this.sourcePath}delete q.sourcePath;return q},toSVG:function(){var t=[];for(var r=0,q=this.path.length;r',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var C=[],z,v,y;for(var u=0,t,q,w=this.path.length;uB){for(var r=1,x=q.length;r"];for(var l=0,j=m.length;l");return k.join("")},toString:function(){return"#"},isSameColor:function(){var j=this.getObjects()[0].get("fill");return this.getObjects().every(function(k){return k.get("fill")===j})},complexity:function(){return this.paths.reduce(function(j,k){return j+((k&&k.complexity)?k.complexity():0)},0)},toGrayscale:function(){var j=this.paths.length;while(j--){this.paths[j].toGrayscale()}return this},getObjects:function(){return this.paths}});function c(m){for(var l=0,j=m.length;l"},getObjects:function(){return this.objects},add:function(h){this._restoreObjectsState();this.objects.push(h);h.setActive(true);this._calcBounds();this._updateObjectsCoords();return this},remove:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},size:function(){return this.getObjects().length},set:function(h,k){if(typeof k=="function"){this.set(h,k(this[h]))}else{if(h==="fill"||h==="opacity"){var j=this.objects.length;this[h]=k;while(j--){this.objects[j].set(h,k)}}else{this[h]=k}}return this},contains:function(h){return this.objects.indexOf(h)>-1},toObject:function(){return g(this.callSuper("toObject"),{objects:b(this.objects,"clone")})},render:function(j){j.save();this.transform(j);var n=Math.max(this.scaleX,this.scaleY);for(var l=0,h=this.objects.length,k;k=this.objects[l];l++){var m=k.borderScaleFactor;k.borderScaleFactor=n;k.render(j);k.borderScaleFactor=m}this.hideBorders||this.drawBorders(j);this.hideCorners||this.drawCorners(j);j.restore();this.setCoords()},item:function(h){return this.getObjects()[h]},complexity:function(){return this.getObjects().reduce(function(i,h){i+=(typeof h.complexity=="function")?h.complexity():0;return i},0)},_restoreObjectsState:function(){this.objects.forEach(this._restoreObjectState,this);return this},_restoreObjectState:function(j){var l=this.get("left"),m=this.get("top"),h=this.getAngle()*(Math.PI/180),k=j.get("originalLeft"),n=j.get("originalTop"),i=Math.cos(h)*j.get("top")+Math.sin(h)*j.get("left"),o=-Math.sin(h)*j.get("top")+Math.cos(h)*j.get("left");j.setAngle(j.getAngle()+this.getAngle());j.set("left",l+o*this.get("scaleX"));j.set("top",m+i*this.get("scaleY"));j.set("scaleX",j.get("scaleX")*this.get("scaleX"));j.set("scaleY",j.get("scaleY")*this.get("scaleY"));j.setCoords();j.hideCorners=false;j.setActive(false);j.setCoords();return this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){this._originalLeft=this.get("left");this._originalTop=this.get("top");return this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){this.forEachObject(function(h){h.setCoords()});return this},activateAllObjects:function(){return this.setActive(true)},setActive:function(h){this.forEachObject(function(i){i.setActive(h)});return this},forEachObject:e.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var j=this.getObjects(),i=j[0]?j[0].get("opacity"):1;var h=j.every(function(k){return k.get("opacity")===i});if(h){this.opacity=i}},_calcBounds:function(){var s=[],q=[],p,n,k,h,m,l,u,r=0,t=this.objects.length;for(;ri.x&&j-hi.y},toGrayscale:function(){var h=this.objects.length;while(h--){this.objects[h].toGrayscale()}}});e.Group.fromObject=function(h){return new e.Group(h.objects,h)}})(typeof exports!="undefined"?exports:this);(function(a){var b=fabric.util.object.extend;if(!a.fabric){a.fabric={}}if(a.fabric.Image){fabric.warn("fabric.Image is already defined.");return}if(!fabric.Object){fabric.warn("fabric.Object is required for fabric.Image initialization");return}fabric.Image=fabric.util.createClass(fabric.Object,{active:false,bordervisibility:false,cornervisibility:false,type:"image",initialize:function(d,c){c||(c={});this.callSuper("initialize",c);this._initElement(d);this._originalImage=this.getElement();this._initConfig(c);this.filters=[];if(c.filters){this.filters=c.filters;this.applyFilters()}},getElement:function(){return this._element},setElement:function(c){this._element=c;this._initConfig();return this},getOriginalSize:function(){var c=this.getElement();return{width:c.width,height:c.height}},setBorderVisibility:function(c){this._resetWidthHeight();this._adjustWidthHeightToBorders(showBorder);this.setCoords()},setCornersVisibility:function(c){this.cornervisibility=!!c},render:function(c,d){c.save();if(!d){this.transform(c)}this._render(c);if(this.active&&!d){this.drawBorders(c);this.hideCorners||this.drawCorners(c)}c.restore()},toObject:function(){return b(this.callSuper("toObject"),{src:this._originalImage.src||this._originalImage._src,filters:this.filters.concat()})},toSVG:function(){return''},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(c){this.constructor.fromObject(this.toObject(),c)},applyFilters:function(i){if(this.filters.length===0){this.setElement(this._originalImage);i&&i();return}var c=typeof Buffer!=="undefined"&&typeof window==="undefined",g=this._originalImage,e=fabric.document.createElement("canvas"),f=c?new (require("canvas").Image):fabric.document.createElement("img"),h=this;if(!e.getContext&&typeof G_vmlCanvasManager!="undefined"){G_vmlCanvasManager.initElement(e)}e.width=g.width;e.height=g.height;e.getContext("2d").drawImage(g,0,0);this.filters.forEach(function(j){j&&j.applyTo(e)});f.onload=function(){h.setElement(f);i&&i();f.onload=e=g=null};f.width=g.width;f.height=g.height;if(c){var d=e.toDataURL("image/png").replace(/data:image\/png;base64,/,"");f.src=new Buffer(d,"base64");h.setElement(f);i&&i()}else{f.src=e.toDataURL("image/png")}return this},_render:function(c){c.drawImage(this.getElement(),-this.width/2,-this.height/2,this.width,this.height)},_adjustWidthHeightToBorders:function(c){if(c){this.currentBorder=this.borderwidth;this.width+=(2*this.currentBorder);this.height+=(2*this.currentBorder)}else{this.currentBorder=0}},_resetWidthHeight:function(){var c=this.getElement();this.set("width",c.width);this.set("height",c.height)},_initElement:function(c){this.setElement(fabric.util.getById(c));fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(c){this.setOptions(c||{});this._setBorder();this._setWidthHeight()},_initFilters:function(c){if(c.filters&&c.filters.length){this.filters=c.filters.map(function(d){return fabric.Image.filters[d.type].fromObject(d)})}},_setBorder:function(){if(this.bordervisibility){this.currentBorder=this.borderwidth}else{this.currentBorder=0}},_setWidthHeight:function(){var c=2*this.currentBorder;this.width=(this.getElement().width||0)+c;this.height=(this.getElement().height||0)+c},complexity:function(){return 1}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc;fabric.Image.fromObject=function(d,f){var c=fabric.document.createElement("img"),e=d.src;if(d.width){c.width=d.width}if(d.height){c.height=d.height}c.onload=function(){fabric.Image.prototype._initFilters.call(d,d);var g=new fabric.Image(c,d);f&&f(g);c=c.onload=null};c.src=e};fabric.Image.fromURL=function(d,f,e){var c=fabric.document.createElement("img");c.onload=function(){if(f){f(new fabric.Image(c,e))}c=c.onload=null};c.src=d};fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" ");fabric.Image.fromElement=function(d,f,c){c||(c={});var e=fabric.parseAttributes(d,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(e["xlink:href"],f,b(e,c))};fabric.Image.async=true})(typeof exports!="undefined"?exports:this);fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var a=this.get("angle");if(a>-225&&a<=-135){return -180}else{if(a>-135&&a<=-45){return -90}else{if(a>-45&&a<=45){return 0}else{if(a>45&&a<=135){return 90}else{if(a>135&&a<=225){return 180}else{if(a>225&&a<=315){return 270}else{if(a>315){return 360}}}}}}}return 0},straighten:function(){var a=this._getAngleValueForStraighten();this.setAngle(a);return this},fxStraighten:function(b){b=b||{};var c=function(){},d=b.onComplete||c,a=b.onChange||c,e=this;fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(f){e.setAngle(f);a()},onComplete:function(){e.setCoords();d()},onStart:function(){e.setActive(false)}});return this}});fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(a){a.straighten();this.renderAll();return this},fxStraightenObject:function(a){a.fxStraighten({onChange:this.renderAll.bind(this)});return this}});fabric.Image.filters={};fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(d){var c=d.getContext("2d"),a=c.getImageData(0,0,d.width,d.height),h=a.data,e=a.width,l=a.height,k,b,g,f;for(g=0;gh&&m>h&&o>h&&p(a-m)'},_render:function(f){var h=Cufon.textOptions||(Cufon.textOptions={});h.left=this.left;h.top=this.top;h.context=f;h.color=this.fill;var g=this._initDummyElement();this.transform(f);Cufon.replaceElement(g,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor});this.width=h.width;this.height=h.height;this._totalLineHeight=h.totalLineHeight;this._fontAscent=h.fontAscent;this._boundaries=h.boundaries;this._shadowOffsets=h.shadowOffsets;this._shadows=h.shadows||[];this.setCoords()},_initDummyElement:function(){var g=c.document.createElement("pre"),f=c.document.createElement("div");f.appendChild(g);if(typeof G_vmlCanvasManager=="undefined"){g.innerHTML=this.text}else{g.innerText=this.text.replace(/\r?\n/gi,"\r")}g.style.fontSize=this.fontSize+"px";g.style.letterSpacing="normal";return g},render:function(f,g){f.save();this._render(f);if(!g&&this.active){this.drawBorders(f);this.hideCorners||this.drawCorners(f)}f.restore()},toObject:function(){return e(this.callSuper("toObject"),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor})},toSVG:function(){var i=this.text.split(/\r?\n/),j=-this._fontAscent-((this._fontAscent/5)*this.lineHeight),g=-(this.width/2),f=(this.height/2)-(i.length*this.fontSize)-this._totalLineHeight,h=this._getSVGTextAndBg(j,g,i),k=this._getSVGShadows(j,i);f+=((this._fontAscent/5)*this.lineHeight);return['',h.textBgRects.join(""),"',k.join(""),h.textSpans.join(""),"",""].join("")},_getSVGShadows:function(h,n){var o=[],k,l,p,g,f=1;for(k=0,p=this._shadows.length;k",c.util.string.escapeXml(n[l]),"");f=1}else{f++}}}return o},_getSVGTextAndBg:function(j,h,n){var g=[],k=[],l,m,o,f=1;for(l=0,o=n.length;l",c.util.string.escapeXml(n[l]),"");f=1}else{f++}if(!this.backgroundColor){continue}k.push("')}return{textSpans:g,textBgRects:k}},_getFillAttributes:function(f){var g=f?new c.Color(f):"";if(!g||!g.getSource()||g.getAlpha()===1){return'fill="'+f+'"'}return'opacity="'+g.getAlpha()+'" fill="'+g.setAlpha(1).toRgb()+'"'},setColor:function(f){this.set("fill",f);return this},setFontsize:function(f){this.set("fontSize",f);this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this.setCoords();return this},set:function(f,g){if(typeof f=="object"){for(var h in f){this.set(h,f[h])}}else{this[f]=g;if(f==="fontFamily"&&this.path){this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+g+"$3")}}return this}});c.Text.fromObject=function(f){return new c.Text(f.text,d(f))};c.Text.fromElement=function(f){}})(typeof exports!="undefined"?exports:this);(function(){if(typeof document!="undefined"&&typeof window!="undefined"){return}var DOMParser=new require("xmldom").DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;function request(url,encoding,callback){var oURL=URL.parse(url),client=HTTP.createClient(oURL.port,oURL.hostname),request=client.request("GET",oURL.pathname,{host:oURL.hostname});client.addListener("error",function(err){if(err.errno===process.ECONNREFUSED){fabric.log("ECONNREFUSED: connection refused to "+client.host+":"+client.port)}else{fabric.log(err.message)}});request.end();request.on("response",function(response){var body="";if(encoding){response.setEncoding(encoding)}response.on("end",function(){callback(body)});response.on("data",function(chunk){if(response.statusCode==200){body+=chunk}})})}fabric.util.loadImage=function(url,callback){request(url,"binary",function(body){var img=new Image();img.src=new Buffer(body,"binary");img._src=url;callback(img)})};fabric.loadSVGFromURL=function(url,callback){url=url.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();request(url,"",function(body){var doc=new DOMParser().parseFromString(body);fabric.parseSVGDocument(doc.documentElement,function(results,options){callback(results,options)})})};fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body);callback&&callback()})};fabric.Image.fromObject=function(object,callback){fabric.util.loadImage(object.src,function(img){var oImg=new fabric.Image(img);oImg._initConfig(object);oImg._initFilters(object);callback(oImg)})};fabric.createCanvasForNode=function(width,height){var canvasEl=fabric.document.createElement("canvas"),nodeCanvas=new Canvas(width||600,height||600);canvasEl.style={};canvasEl.width=nodeCanvas.width;canvasEl.height=nodeCanvas.height;var canvas=fabric.Canvas||fabric.StaticCanvas;var fabricCanvas=new canvas(canvasEl);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};if(fabric.Canvas){fabric.Canvas.prototype.createPNGStream}var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(width){origSetWidth.call(this);this.nodeCanvas.width=width;return this};if(fabric.Canvas){fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth}var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(height){origSetHeight.call(this);this.nodeCanvas.height=height;return this};if(fabric.Canvas){fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight}})(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 7fec9c032d5241b6ae540783a877af61ebfe461f..31c1300010426d0cee821c8779e4184bd0a24841 100644 GIT binary patch delta 39084 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%0DXu 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 z z&!w-Yle5SC^ELc@axUFcot!;Amu^E&&c0C|U=lJ9LtD{T;{OHMT6*78}ZBM{?q zu&<|of$iQnJzJhftv9Y_9*_^J9I2S3Wq@(R9A<<}d?`v`d-coI60`4KYt^FQP8P3`;Wfc~w9?M`hDAM}TR z@_&hs4*#>(s2@MYe*f~U5#9X~H#U~{GwS~@G_0TF_#e^TOYJ!` zV^{i5&X`x*ov3=lZOiSd-LM^p^V&bf_qAV@J+zerHT_e(QCXkjW$hZ9|MaY}xA!vz zqW)BkkChucEf4(H3ab8;zqV;%0xaY4-1M zdVYWQvh}+XFUOkE^<%hH1&*QUS#Xm9LIqm%4M7w=1(HU*> z_y^0kzyQu|1}FAZtjU`5Rq6S-vd_nrIv@Xp6<^4}62uko!I~-)d@Zs`{k8j%qJWiPvhOv#OO=eR*KP6U29R9jD5h zkX1^ieII{Uwdy}r{ z#4G*lgQX#nM_m+|qUYaQFqB*2l_f)mv1yz-(k$g?pIx6m$~=9q|HkTn{=1^in62mq z{44LsE}z59iR?u*?_7o#rvPK~7g-Z77Z{QXE#m1%czD*X-JaC`^Ze|;5StIHhU@zSX7z?g~@2<;lJ1L-!)**yeqHMoGUNm1ON)%#Cmv&JIbEjw5nC;(yhrm%g$ReVAL(zl5n`F zanO8Ojc<{6JHfxexV=($l9yG$IMq`X%ZcEB1b7L)1N6w$z7_6&dtK{RuRHaGdKwiwLr=fZ8F~($ouT^zptRH_d+G?Mn3zc?>Zz}Uke11pN~>?B+bqpE z^R#^x^RIt@z-2lP$kkcUN*%4VN12Q_!Oq+Z9J!}EIdX@2Pi_*w|1J^!AX4(o*e_T6y{?ZDZ5+8|GJU5$k1)DSm zfK#sg4C_2suP$>r1F1->FQZ6>SCO#uNc)C5RqIjy40VgEa*h9-h#Tl9$CrC0PR$J{ z@9l6c9h9x1SC8a{`6LcWZ#sH`{twCq#!CoX!Q&PAM#E1Keo_VxFzeieMt3h` zjE}c@e-*!caZ;rg*ZThb;-rZwty9RnsZQ+7?}HaNO-zvzO`4q_rVC&_jvDsLzJ@k# zc|u=D8w>EX0PtD^Dj$!$6Z+w81h=z3duVH*(=z2>9~HCH+JeKjWwoVrx78d0EF_a# zF8H{OYRirGJvy&bdTmam#JC%s*SR!gK)nV{f0Cn%pJ@pTUJK^VYXJj>jEx0sB2_f^ zzSG;H%|(eR2B6⁢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 Ay#N3J delta 39135 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 diff --git a/package.json b/package.json index b850037b..f6bc8e10 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.22", + "version": "0.8.23", "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.class.js b/src/canvas.class.js index 46789799..caa0ec16 100644 --- a/src/canvas.class.js +++ b/src/canvas.class.js @@ -100,31 +100,31 @@ /** * Default cursor value used when hovering over an object on canvas - * @constant + * @property * @type String */ - HOVER_CURSOR: 'move', + hoverCursor: 'move', /** * Default cursor value used for the entire canvas - * @constant + * @property * @type String */ - CURSOR: 'default', + defaultCursor: 'default', /** * Cursor value used for rotation point - * @constant + * @property * @type String */ - ROTATION_CURSOR: 'crosshair', + rotationCursor: 'crosshair', /** * Default element class that's given to wrapper (div) element of canvas - * @constant + * @property * @type String */ - CONTAINER_CLASS: 'canvas-container', + containerClass: 'canvas-container', _initInteractive: function() { this._currentTransform = null; @@ -242,7 +242,7 @@ if (activeGroup) { activeGroup.setObjectsCoords(); activeGroup.set('isMoving', false); - this._setCursor(this.CURSOR); + this._setCursor(this.defaultCursor); } // clear selection @@ -381,7 +381,7 @@ this._objects[i].setActive(false); } } - style.cursor = this.CURSOR; + style.cursor = this.defaultCursor; } else { // set proper cursor @@ -774,7 +774,7 @@ _setCursorFromEvent: function (e, target) { var s = this.upperCanvasEl.style; if (!target) { - s.cursor = this.CURSOR; + s.cursor = this.defaultCursor; return false; } else { @@ -785,15 +785,15 @@ && target._findTargetCorner(e, this._offset); if (!corner) { - s.cursor = this.HOVER_CURSOR; + s.cursor = this.hoverCursor; } else { if (corner in cursorMap) { s.cursor = cursorMap[corner]; } else if (corner === 'mtr' || corner === 'mbr') { - s.cursor = this.ROTATION_CURSOR + s.cursor = this.rotationCursor; } else { - s.cursor = this.CURSOR; + s.cursor = this.defaulCursor; return false; } } @@ -941,7 +941,7 @@ */ _initWrapperElement: function () { this.wrapperEl = fabric.util.wrapElement(this.lowerCanvasEl, 'div', { - 'class': this.CONTAINER_CLASS + 'class': this.containerClass }); fabric.util.setStyle(this.wrapperEl, { width: this.getWidth() + 'px', diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index cd2425a9..cc525cfa 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -91,20 +91,6 @@ */ clipTo: null, - /** - * Default canvas width - * @constant - * @type Number - */ - CANVAS_WIDTH: 600, - - /** - * Default canvas height - * @constant - * @type Number - */ - CANVAS_HEIGHT: 600, - /** * Callback; invoked right before object is about to be scaled/rotated * @method onBeforeScaleRotate