From 79f1b470632136e3071457947b6d00b2a643c3fb Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 17 Oct 2012 11:19:41 +0200 Subject: [PATCH] Add uglifyjs as dev dependency. Fix compressing script. --- build.js | 2 +- dist/all.js | 12 ++++++++++-- dist/all.min.js | 12 +++++------- dist/all.min.js.gz | Bin 42673 -> 39329 bytes package.json | 3 ++- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/build.js b/build.js index 3ce65191..175cdd2f 100644 --- a/build.js +++ b/build.js @@ -24,7 +24,7 @@ else if (minifier === 'closure') { mininfierCmd = 'java -jar lib/google_closure_compiler.jar --js dist/all.js --js_output_file dist/all.min.js'; } else if (minifier === 'uglifyjs') { - mininfierCmd = 'uglifyjs dist/all.js --o dist/all.min.js'; + mininfierCmd = 'uglifyjs -o dist/all.min.js dist/all.js'; } var includeAllModules = modulesToInclude.length === 1 && modulesToInclude[0] === 'ALL'; diff --git a/dist/all.js b/dist/all.js index 80a894b9..b63ba5da 100644 --- a/dist/all.js +++ b/dist/all.js @@ -5936,7 +5936,7 @@ fabric.util.string = { EMPTY_JSON: '{"objects": [], "background": "white"}', /** - * Takes element and transforms its data in such way that it becomes grayscale + * Takes <canvas> element and transforms its data in such way that it becomes grayscale * @static * @method toGrayscale * @param {HTMLCanvasElement} canvasEl @@ -10000,18 +10000,21 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { fabric.Rect = fabric.util.createClass(fabric.Object, /** @scope fabric.Rect.prototype */ { /** + * Type of the instance * @property * @type String */ type: 'rect', /** + * Horizontal border radius * @property * @type Number */ rx: 0, /** + * Vertical border radius * @property * @type Number */ @@ -10104,7 +10107,11 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { } }, - // since our coordinate system differs from that of SVG + /** + * @method _normalizeLeftTopProperties + * @private + * Since coordinate system differs from that of SVG + */ _normalizeLeftTopProperties: function(parsedAttributes) { if (parsedAttributes.left) { this.set('left', parsedAttributes.left + this.getWidth() / 2); @@ -10118,6 +10125,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { }, /** + * Returns complexity of an instance * @method complexity * @return {Number} complexity */ diff --git a/dist/all.min.js b/dist/all.min.js index 5186fa52..d66c4e32 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,7 +1,5 @@ -/* Fabric.js Copyright 2008-2012, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric=fabric||{version:"0.9.15"};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;fabric.isLikelyNode=typeof Buffer!=="undefined"&&typeof window==="undefined"; -/* - * Copyright (c) 2009 Simo Kinnunen. - * Licensed under the MIT license. - */ -var Cufon=(function(){var k=function(){return k.replace.apply(null,arguments)};var u=k.DOM={ready:(function(){var z=false,B={loaded:1,complete:1};var y=[],A=function(){if(z){return}z=true;for(var C;C=y.shift();C()){}};if(fabric.document.addEventListener){fabric.document.addEventListener("DOMContentLoaded",A,false);fabric.window.addEventListener("pageshow",A,false)}if(!fabric.window.opera&&fabric.document.readyState){(function(){B[fabric.document.readyState]?A():setTimeout(arguments.callee,10)})()}if(fabric.document.readyState&&fabric.document.createStyleSheet){(function(){try{fabric.document.body.doScroll("left");A()}catch(C){setTimeout(arguments.callee,1)}})()}o(fabric.window,"load",A);return function(C){if(!arguments.length){A()}else{z?C():y.push(C)}}})()};var l=k.CSS={Size:function(z,y){this.value=parseFloat(z);this.unit=String(z).match(/[a-z%]*$/)[0]||"px";this.convert=function(A){return A/y*this.value};this.convertFrom=function(A){return A/this.value*y};this.toString=function(){return this.value+this.unit}},getStyle:function(y){return new a(y.style)},quotedList:i(function(B){var A=[],z=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,y;while(y=z.exec(B)){A.push(y[3]||y[1])}return A}),ready:(function(){var A=false;var z=[],B=function(){A=true;for(var D;D=z.shift();D()){}};var y=Object.prototype.propertyIsEnumerable?f("style"):{length:0};var C=f("link");u.ready(function(){var G=0,F;for(var E=0,D=C.length;F=C[E],E=y.length+G){B()}else{setTimeout(arguments.callee,10)}});return function(D){if(A){D()}else{z.push(D)}}})(),supports:function(A,z){var y=fabric.document.createElement("span").style;if(y[A]===undefined){return false}y[A]=z;return y[A]===z},textAlign:function(B,A,y,z){if(A.get("textAlign")=="right"){if(y>0){B=" "+B}}else{if(y400}if(F==500){F=400}for(var G in D){G=parseInt(G,10);if(!C||GA){A=G}H.push(G)}if(FA){F=A}H.sort(function(J,I){return(B?(J>F&&I>F)?JI:(JI:Jz){z=e}L.push(e);e=0;continue}var B=ab.glyphs[ag[aa]]||ab.missingGlyph;if(!B){continue}e+=D=Number(B.w||ab.w)+U}L.push(e);e=Math.max(z,e);var m=[];for(var aa=L.length;aa--;){m[aa]=e-L[aa]}if(D===null){return null}V+=(H.width-D);C+=H.minX;var v,p;if(n){v=J;p=J.firstChild}else{v=fabric.document.createElement("span");v.className="cufon cufon-canvas";v.alt=E;p=fabric.document.createElement("canvas");v.appendChild(p);if(A.printable){var Y=fabric.document.createElement("span");Y.className="cufon-alt";Y.appendChild(fabric.document.createTextNode(E));v.appendChild(Y)}}var ah=v.style;var O=p.style||{};var k=o.convert(H.height-I+T);var af=Math.ceil(k);var S=af/k;p.width=Math.ceil(o.convert(e+V-C)*S);p.height=af;I+=H.minY;O.top=Math.round(o.convert(I-ab.ascent))+"px";O.left=Math.round(o.convert(C))+"px";var j=Math.ceil(o.convert(e*S));var t=j+"px";var s=o.convert(ab.height);var F=(A.lineHeight-1)*o.convert(-ab.ascent/5)*(M-1);Cufon.textOptions.width=j;Cufon.textOptions.height=(s*M)+F;Cufon.textOptions.lines=M;Cufon.textOptions.totalLineHeight=F;if(a){ah.width=t;ah.height=s+"px"}else{ah.paddingLeft=t;ah.paddingBottom=(s-1)+"px"}var ad=Cufon.textOptions.context||p.getContext("2d"),K=af/H.height;Cufon.textOptions.fontAscent=ab.ascent*K;Cufon.textOptions.boundaries=null;for(var w=Cufon.textOptions.shadowOffsets,aa=R.length;aa--;){w[aa]=[R[aa][0]*K,R[aa][1]*K]}ad.save();ad.scale(K,K);ad.translate(-C-((1/K*p.width)/2)+(Cufon.fonts[ab.family].offsetLeft||0),-I-((Cufon.textOptions.height/K)/2)+(Cufon.fonts[ab.family].offsetTop||0));ad.lineWidth=ab.face["underline-thickness"];ad.save();function q(l,i){ad.strokeStyle=i;ad.beginPath();ad.moveTo(0,l);ad.lineTo(e,l);ad.stroke()}var r=Cufon.getTextDecoration(A),u=A.fontStyle==="italic";function ae(){ad.save();ad.fillStyle=A.backgroundColor;var aj=0,an=0,y=[{left:0}];if(A.textAlign==="right"){ad.translate(m[an],0);y[0].left=m[an]*K}else{if(A.textAlign==="center"){ad.translate(m[an]/2,0);y[0].left=m[an]/2*K}}for(var al=0,ak=ag.length;al.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}');function c(e,f){return a(e,/(?:em|ex|%)$/i.test(f)?"1em":f)}function a(h,i){if(/px$/i.test(i)){return parseFloat(i)}var g=h.style.left,f=h.runtimeStyle.left;h.runtimeStyle.left=h.currentStyle.left;h.style.left=i;var e=h.style.pixelLeft;h.style.left=g;h.runtimeStyle.left=f;return e}return function(T,z,O,w,D,U,M){var h=(z===null);if(h){z=D.alt}var B=T.viewBox;var j=O.computedFontSize||(O.computedFontSize=new Cufon.CSS.Size(c(U,O.get("fontSize"))+"px",T.baseSize));var L=O.computedLSpacing;if(L==undefined){L=O.get("letterSpacing");O.computedLSpacing=L=(L=="normal")?0:~~j.convertFrom(a(U,L))}var t,m;if(h){t=D;m=D.firstChild}else{t=fabric.document.createElement("span");t.className="cufon cufon-vml";t.alt=z;m=fabric.document.createElement("span");m.className="cufon-vml-canvas";t.appendChild(m);if(w.printable){var R=fabric.document.createElement("span");R.className="cufon-alt";R.appendChild(fabric.document.createTextNode(z));t.appendChild(R)}if(!M){t.appendChild(fabric.document.createElement("cvml:shape"))}}var Z=t.style;var G=m.style;var f=j.convert(B.height),W=Math.ceil(f);var K=W/f;var J=B.minX,I=B.minY;G.height=W;G.top=Math.round(j.convert(I-T.ascent));G.left=Math.round(j.convert(J));Z.height=j.convert(T.height)+"px";var p=Cufon.getTextDecoration(w);var y=O.get("color");var X=Cufon.CSS.textTransform(z,O).split("");var e=0,H=0,q=null;var x,r,A=w.textShadow;for(var S=0,Q=0,P=X.length;Sv?p:(o-n);s(t(y,m,w,p));if(o>v||q()){x.onComplete&&x.onComplete();return}k(r)})()}var f=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(m){fabric.window.setTimeout(m,1000/60)};var k=function(){return f.apply(fabric.window,arguments)};function b(n,p,o){if(n){var m=new Image();m.onload=function(){p&&p.call(o,m);m=m.onload=null};m.src=n}else{p&&p.call(o,n)}}function i(p,s){function o(t){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(t))]}function n(){if(++r===m){if(s){s(q)}}}var q=[],r=0,m=p.length;p.forEach(function(v,u){if(!v.type){return}var t=o(v.type);if(t.async){t.fromObject(v,function(w){q[u]=w;n()})}else{q[u]=t.fromObject(v);n()}})}function a(o,n,p){var m=o.length>1?new fabric.PathGroup(o,n):o[0];if(typeof p!=="undefined"){m.setSourcePath(p)}return m}fabric.util.removeFromArray=j;fabric.util.degreesToRadians=c;fabric.util.toFixed=e;fabric.util.getRandomInt=g;fabric.util.falseFunction=l;fabric.util.animate=d;fabric.util.requestAnimFrame=k;fabric.util.loadImage=b;fabric.util.enlivenObjects=i;fabric.util.groupSVGElements=a})();(function(){var d=Array.prototype.slice;if(!Array.prototype.indexOf){Array.prototype.indexOf=function(g){if(this===void 0||this===null){throw new TypeError()}var h=Object(this),e=h.length>>>0;if(e===0){return -1}var i=0;if(arguments.length>0){i=Number(arguments[1]);if(i!==i){i=0}else{if(i!==0&&i!==(1/0)&&i!==-(1/0)){i=(i>0||-1)*Math.floor(Math.abs(i))}}}if(i>=e){return -1}var f=i>=0?i:Math.max(e-Math.abs(i),0);for(;f>>0;f>>0;g>>0;f>>0;f>>0;g>>0,f=0,h;if(arguments.length>1){h=arguments[1]}else{do{if(f in this){h=this[f++];break}if(++f>=e){throw new TypeError()}}while(true)}for(;f=e){e=h[f][g]}}}else{while(f--){if(h[f]>=e){e=h[f]}}}return e}function c(h,g){if(!h||h.length===0){return undefined}var f=h.length-1,e=g?h[f][g]:h[f];if(g){while(f--){if(h[f][g]/g,">")}fabric.util.string={camelize:b,capitalize:c,escapeXml:a}}());(function(){var c=Array.prototype.slice,a=Function.prototype.apply,b=function(){};if(!Function.prototype.bind){Function.prototype.bind=function(d){var g=this,e=c.call(arguments,1),f;if(e.length){f=function(){return a.call(g,this instanceof b?this:d,e.concat(c.call(arguments)))}}else{f=function(){return a.call(g,this instanceof b?this:d,arguments)}}b.prototype=this.prototype;f.prototype=new b();return f}}})();(function(){var f=Array.prototype.slice,e=function(){};var c=(function(){for(var g in {toString:1}){if(g==="toString"){return false}}return true})();var b=function(g,j,h){for(var i in j){if(i in g.prototype&&typeof g.prototype[i]==="function"){g.prototype[i]=(function(k){return function(){var m=this.constructor.superclass;this.constructor.superclass=h;var l=j[k].apply(this,arguments);this.constructor.superclass=m;if(k!=="initialize"){return l}}})(i)}else{g.prototype[i]=j[i]}if(c){if(j.toString!==Object.prototype.toString){g.prototype.toString=j.toString}if(j.valueOf!==Object.prototype.valueOf){g.prototype.valueOf=j.valueOf}}}};function a(){}function d(){var k=null,j=f.call(arguments,0);if(typeof j[0]==="function"){k=j.shift()}function g(){this.initialize.apply(this,arguments)}g.superclass=k;g.subclasses=[];if(k){a.prototype=k.prototype;g.prototype=new a();k.subclasses.push(g)}for(var h=0,l=j.length;h-1?b(g,i.match(/opacity:\s*(\d?\.?\d*)/)[1]):g}for(var j in i){if(j==="opacity"){b(g,i[j])}else{var h=(j==="float"||j==="cssFloat")?(typeof k.styleFloat==="undefined"?"cssFloat":"styleFloat"):j;k[h]=i[j]}}return g}var f=fabric.document.createElement("div"),e=typeof f.style.opacity==="string",a=typeof f.style.filter==="string",c=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,b=function(g){return g};if(e){b=function(g,h){g.style.opacity=h;return g}}else{if(a){b=function(g,h){var i=g.style;if(g.currentStyle&&!g.currentStyle.hasLayout){i.zoom=1}if(c.test(i.filter)){h=h>=0.9999?"":("alpha(opacity="+(h*100)+")");i.filter=i.filter.replace(c,h)}else{i.filter+=" alpha(opacity="+(h*100)+")"}return g}}}fabric.util.setStyle=d})();(function(){var h=Array.prototype.slice;function g(j){return typeof j==="string"?fabric.document.getElementById(j):j}var b=function(j){return h.call(j,0)};var i;try{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",h=f.onComplete||function(){},i=c(),e;i.onreadystatechange=function(){if(i.readyState===4){h(i);i.onreadystatechange=a}};if(j==="GET"){e=null;if(typeof f.parameters==="string"){g=d(g,f.parameters)}}i.open(j,g,true);if(j==="POST"||j==="PUT"){i.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}i.send(e);return i}fabric.util.request=b})();(function(){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){F/=(G/2);if(F<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){F/=G/2;if(F<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){F/=G/2;if(F<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){F/=G/2;if(F<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}F/=G/2;if(F<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){F/=G/2;if(F<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}G/=J;if(G===1){return E+K}if(!I){I=J*0.3}if(F-1;w=w.split(/\s+/);var u=[],v,t;if(y){v=0;t=w.length;for(;v/i,""))}if(!x.documentElement){return}h.parseSVGDocument(x.documentElement,function(A,z){k.set(u,{objects:h.util.array.invoke(A,"toObject"),options:z});w(A,z)},t)}}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(u,x,t){u=u.trim();var v;if(typeof DOMParser!=="undefined"){var w=new DOMParser();if(w&&w.parseFromString){v=w.parseFromString(u,"text/xml")}}else{if(h.window.ActiveXObject){v=new ActiveXObject("Microsoft.XMLDOM");v.async="false";v.loadXML(u.replace(//i,""))}}h.parseSVGDocument(v.documentElement,function(z,y){x(z,y)},t)}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=fabric.util.createClass({initialize:function(d){d||(d={});this.x1=d.x1||0;this.y1=d.y1||0;this.x2=d.x2||0;this.y2=d.y2||0;this.colorStops=d.colorStops},toObject:function(){return{x1:this.x1,x2:this.x2,y1:this.y1,y2:this.y2,colorStops:this.colorStops}},toLiveGradient:function(e){var g=e.createLinearGradient(this.x1,this.y1,this.x2||e.canvas.width,this.y2);for(var d in this.colorStops){var f=this.colorStops[d];g.addColorStop(parseFloat(d),f)}return g}});fabric.util.object.extend(fabric.Gradient,{fromElement:function(g,d){var k=g.getElementsByTagName("stop"),j,e={},h={x1:g.getAttribute("x1")||0,y1:g.getAttribute("y1")||0,x2:g.getAttribute("x2")||"100%",y2:g.getAttribute("y2")||0};for(var f=k.length;f--;){g=k[f];j=g.getAttribute("offset");j=parseFloat(j)/(/%$/.test(j)?100:1);e[j]=c(g)||g.getAttribute("stop-color")}a(d,h);return new fabric.Gradient({x1:h.x1,y1:h.y1,x2:h.x2,y2:h.y2,colorStops:e})},forObject:function(e,d){d||(d={});a(e,d);return new fabric.Gradient(d)}});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,e,h={};e=f.length;for(;e--;){g=f[e];h[g.getAttribute("id")]=g}e=d.length;for(;e--;){g=d[e];h[g.getAttribute("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){g.push('')}for(var h=0,j=this.getObjects(),f=j.length;h");return g.join("")},isEmpty:function(){return this._objects.length===0},remove:function(f){d(this._objects,f);if(this.getActiveObject()===f){this.fire("before:selection:cleared",{target:f});this.discardActiveObject();this.fire("selection:cleared")}this.renderAll();return f},sendToBack:function(f){d(this._objects,f);this._objects.unshift(f);return this.renderAll()},bringToFront:function(f){d(this._objects,f);this._objects.push(f);return this.renderAll()},sendBackwards:function(h){var g=this._objects.indexOf(h),f=g;if(g!==0){for(var j=g-1;j>=0;--j){if(h.intersectsWithObject(this._objects[j])||h.isContainedWithinObject(this._objects[j])){f=j;break}}d(this._objects,h);this._objects.splice(f,0,h)}return this.renderAll()},bringForward:function(j){var m=this.getObjects(),g=m.indexOf(j),f=g;if(g!==m.length-1){for(var k=g+1,h=this._objects.length;k"};e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(k){var h=k.getContext("2d"),f=h.getImageData(0,0,k.width,k.height),o=f.data,l=f.width,q=f.height,p,g,n,m;for(n=0;n0){if(B>this.targetFindTolerance){B-=this.targetFindTolerance}else{B=0}if(A>this.targetFindTolerance){A-=this.targetFindTolerance}else{A=0}}var v=true;var r=w.getImageData(B,A,(this.targetFindTolerance*2)||1,(this.targetFindTolerance*2)||1);for(var u=3;u0)?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(v){var B=[],s=this._groupSelector.ex,A=this._groupSelector.ey,r=s+this._groupSelector.left,y=A+this._groupSelector.top,x,w=new fabric.Point(f(s,r),f(A,y)),z=new fabric.Point(l(s,r),l(A,y));for(var t=0,u=this._objects.length;t1){B=new fabric.Group(B);this.setActiveGroup(B);B.saveCoords();this.fire("selection:created",{target:B})}}this.renderAll()},findTarget:function(z,u){var A,r=this.getPointer(z);var t=this.getActiveGroup();if(t&&!u&&this.containsPoint(z,t)){A=t;return A}var s=[];for(var w=this._objects.length;w--;){if(this._objects[w]&&this.containsPoint(z,this._objects[w])){if(this.perPixelTargetFind||this._objects[w].perPixelTargetFind){s[s.length]=this._objects[w]}else{A=this._objects[w];this.relatedTarget=A;break}}}for(var v=0,y=s.length;v1)?p.apply(this,n.call(arguments,1)):p.call(this)},initialize:function(i){if(i){this.setOptions(i)}},_initGradient:function(i){if(i.fill&&typeof i.fill==="object"&&!(i.fill instanceof d.Gradient)){this.set("fill",new d.Gradient(i.fill))}},setOptions:function(p){var q=this.stateProperties.length,r;while(q--){r=this.stateProperties[q];if(r in p){this.set(r,p[r])}}this._initGradient(p)},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 p=d.Object.NUM_FRACTION_DIGITS;var i={type:this.type,left:c(this.left,p),top:c(this.top,p),width:c(this.width,p),height:c(this.height,p),fill:(this.fill&&this.fill.toObject)?this.fill.toObject():this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,strokeDashArray:this.strokeDashArray,scaleX:c(this.scaleX,p),scaleY:c(this.scaleY,p),angle:c(this.getAngle(),p),flipX:this.flipX,flipY:this.flipY,opacity:c(this.opacity,p),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint,transparentCorners:this.transparentCorners,perPixelTargetFind:this.perPixelTargetFind};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"),"; ","stroke-dasharray: ",(this.strokeDashArray?this.strokeDashArray.join(" "):"; "),"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(p){var i=d.Object.prototype.options;if(i){this.stateProperties.forEach(function(q){if(p[q]===i[q]){delete p[q]}})}return p},isActive:function(){return !!this.active},setActive:function(i){this.active=!!i;return this},toString:function(){return"#"},set:function(i,p){if(typeof i==="object"){for(var q in i){this._set(q,i[q])}}else{if(typeof p==="function"){this._set(i,p(this.get(i)))}else{this._set(i,p)}}return this},_set:function(i,p){var q=(i==="scaleX"||i==="scaleY")&&p1?this.strokeWidth:0,A=this.padding;this.currentWidth=(this.width+y)*this.scaleX+A*2;this.currentHeight=(this.height+y)*this.scaleY+A*2;if(this.currentWidth<0){this.currentWidth=Math.abs(this.currentWidth)}this._hypotenuse=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2));this._angle=Math.atan(this.currentHeight/this.currentWidth);var v=Math.cos(this._angle+this._theta)*this._hypotenuse,u=Math.sin(this._angle+this._theta)*this._hypotenuse,q=this._theta,z=Math.sin(q),x=Math.cos(q);var D={x:this.left-v,y:this.top-u};var w={x:D.x+(this.currentWidth*x),y:D.y+(this.currentWidth*z)};var C={x:w.x-(this.currentHeight*z),y:w.y+(this.currentHeight*x)};var r={x:D.x-(this.currentHeight*z),y:D.y+(this.currentHeight*x)};var t={x:D.x-(this.currentHeight/2*z),y:D.y+(this.currentHeight/2*x)};var i={x:D.x+(this.currentWidth/2*x),y:D.y+(this.currentWidth/2*z)};var p={x:w.x-(this.currentHeight/2*z),y:w.y+(this.currentHeight/2*x)};var B={x:r.x+(this.currentWidth/2*x),y:r.y+(this.currentWidth/2*z)};var s={x:D.x+(this.currentWidth/2*x),y:D.y+(this.currentWidth/2*z)};this.oCoords={tl:D,tr:w,br:C,bl:r,ml:t,mt:i,mr:p,mb:B,mtr:s};this._setCornerCoords();return this},getBoundingRectWidth:function(){this.oCoords||this.setCoords();var p=[this.oCoords.tl.x,this.oCoords.tr.x,this.oCoords.br.x,this.oCoords.bl.x];var i=d.util.array.min(p);var q=d.util.array.max(p);return Math.abs(i-q)},getBoundingRectHeight:function(){this.oCoords||this.setCoords();var i=[this.oCoords.tl.y,this.oCoords.tr.y,this.oCoords.br.y,this.oCoords.bl.y];var q=d.util.array.min(i);var p=d.util.array.max(i);return Math.abs(q-p)},drawBorders:function(y){if(!this.hasBorders){return}var r=d.Object.MIN_SCALE_LIMIT,t=this.padding,i=t*2,s=this.strokeWidth>1?this.strokeWidth:0;y.save();y.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1;y.strokeStyle=this.borderColor;var x=1/(this.scaleXi){z=x-i}if(B){p+=(A*B)-(z*B||0)}else{w+=(A*y)-(z*y||0)}q[1&s?"moveTo":"lineTo"](p,w);if(s>=t){s=0}}}r(1,0);r(0,1);r(-1,0);r(0,-1);q.stroke();q.closePath();q.restore()},drawCorners:function(A){if(!this.hasControls){return}var w=this.cornersize,q=w/2,i=this.strokeWidth/2,p=-(this.width/2),u=-(this.height/2),G,B,y=w/this.scaleX,v=w/this.scaleY,D=this.padding/this.scaleX,C=this.padding/this.scaleY,E=q/this.scaleY,F=q/this.scaleX,s=(q-w)/this.scaleX,r=(q-w)/this.scaleY,x=this.height,z=this.width,t=this.transparentCorners?"strokeRect":"fillRect";A.save();A.lineWidth=1/Math.max(this.scaleX,this.scaleY);A.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1;A.strokeStyle=A.fillStyle=this.cornerColor;G=p-F-i-D;B=u-E-i-C;A.clearRect(G,B,y,v);A[t](G,B,y,v);G=p+z-F+i+D;B=u-E-i-C;A.clearRect(G,B,y,v);A[t](G,B,y,v);G=p-F-i-D;B=u+x+r+i+C;A.clearRect(G,B,y,v);A[t](G,B,y,v);G=p+z+s+i+D;B=u+x+r+i+C;A.clearRect(G,B,y,v);A[t](G,B,y,v);if(!this.lockUniScaling){G=p+z/2-F;B=u-E-i-C;A.clearRect(G,B,y,v);A[t](G,B,y,v);G=p+z/2-F;B=u+x+r+i+C;A.clearRect(G,B,y,v);A[t](G,B,y,v);G=p+z+s+i+D;B=u+x/2-E;A.clearRect(G,B,y,v);A[t](G,B,y,v);G=p-F-i-D;B=u+x/2-E;A.clearRect(G,B,y,v);A[t](G,B,y,v)}if(this.hasRotatingPoint){G=p+z/2-F;B=this.flipY?(u+x+(this.rotatingPointOffset/this.scaleY)-v/2+i+C):(u-(this.rotatingPointOffset/this.scaleY)-v/2-i-C);A.clearRect(G,B,y,v);A[t](G,B,y,v)}A.restore();return this},clone:function(i){if(this.constructor.fromObject){return this.constructor.fromObject(this.toObject(),i)}return new d.Object(this.toObject())},cloneAsImage:function(r){if(d.Image){var p=new Image();p.onload=function(){if(r){r(new d.Image(p),q)}p=p.onload=null};var q={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",false).set("flipY",false);this.toDataURL(function(i){p.src=i})}return this},toDataURL:function(r){var p=d.document.createElement("canvas");if(!p.getContext&&typeof G_vmlCanvasManager!=="undefined"){G_vmlCanvasManager.initElement(p)}p.width=this.getBoundingRectWidth();p.height=this.getBoundingRectHeight();d.util.wrapElement(p,"div");var i=new d.Canvas(p);i.backgroundColor="transparent";i.renderAll();if(this.constructor.async){this.clone(q)}else{q(this.clone())}function q(t){t.left=p.width/2;t.top=p.height/2;t.setActive(false);i.add(t);var s=i.toDataURL("png");i.dispose();i=t=null;r&&r(s)}},hasStateChanged:function(){return this.stateProperties.some(function(i){return this[i]!==this.originalState[i]},this)},saveState:function(){this.stateProperties.forEach(function(i){this.originalState[i]=this.get(i)},this);return this},setupState:function(){this.originalState={};this.saveState()},intersectsWithRect:function(q,s){var v=this.oCoords,i=new d.Point(v.tl.x,v.tl.y),r=new d.Point(v.tr.x,v.tr.y),u=new d.Point(v.bl.x,v.bl.y),p=new d.Point(v.br.x,v.br.y);var t=d.Intersection.intersectPolygonRectangle([i,r,p,u],q,s);return(t.status==="Intersection")},intersectsWithObject:function(i){function p(t){return{tl:new d.Point(t.tl.x,t.tl.y),tr:new d.Point(t.tr.x,t.tr.y),bl:new d.Point(t.bl.x,t.bl.y),br:new d.Point(t.br.x,t.br.y)}}var q=p(this.oCoords),s=p(i.oCoords);var r=d.Intersection.intersectPolygonPolygon([q.tl,q.tr,q.br,q.bl],[s.tl,s.tr,s.br,s.bl]);return(r.status==="Intersection")},isContainedWithinObject:function(i){return this.isContainedWithinRect(i.oCoords.tl,i.oCoords.br)},isContainedWithinRect:function(p,r){var t=this.oCoords,i=new d.Point(t.tl.x,t.tl.y),q=new d.Point(t.tr.x,t.tr.y),s=new d.Point(t.bl.x,t.bl.y);return i.x>p.x&&q.xp.y&&s.y=u)&&(r.d.y>=u)){continue}if((r.o.x===r.d.x)&&(r.o.x>=v)){w=r.o.x;t=u}else{y=0;x=(r.d.y-r.o.y)/(r.d.x-r.o.x);q=u-y*v;p=r.o.y-x*r.o.x;w=-(q-p)/(y-x);t=q+y*w}if(w>=v){s+=1}if(s===2){break}}return s},_getImageLines:function(i){return{topline:{o:i.tl,d:i.tr},rightline:{o:i.tr,d:i.br},bottomline:{o:i.br,d:i.bl},leftline:{o:i.bl,d:i.tl}}},_setCornerCoords:function(){var t=this.oCoords,p=b(45-this.getAngle()),r=Math.sqrt(2*Math.pow(this.cornersize,2))/2,i=r*Math.cos(p),q=r*Math.sin(p),u=Math.sin(this._theta),s=Math.cos(this._theta);t.tl.corner={tl:{x:t.tl.x-q,y:t.tl.y-i},tr:{x:t.tl.x+i,y:t.tl.y-q},bl:{x:t.tl.x-i,y:t.tl.y+q},br:{x:t.tl.x+q,y:t.tl.y+i}};t.tr.corner={tl:{x:t.tr.x-q,y:t.tr.y-i},tr:{x:t.tr.x+i,y:t.tr.y-q},br:{x:t.tr.x+q,y:t.tr.y+i},bl:{x:t.tr.x-i,y:t.tr.y+q}};t.bl.corner={tl:{x:t.bl.x-q,y:t.bl.y-i},bl:{x:t.bl.x-i,y:t.bl.y+q},br:{x:t.bl.x+q,y:t.bl.y+i},tr:{x:t.bl.x+i,y:t.bl.y-q}};t.br.corner={tr:{x:t.br.x+i,y:t.br.y-q},bl:{x:t.br.x-i,y:t.br.y+q},br:{x:t.br.x+q,y:t.br.y+i},tl:{x:t.br.x-q,y:t.br.y-i}};t.ml.corner={tl:{x:t.ml.x-q,y:t.ml.y-i},tr:{x:t.ml.x+i,y:t.ml.y-q},bl:{x:t.ml.x-i,y:t.ml.y+q},br:{x:t.ml.x+q,y:t.ml.y+i}};t.mt.corner={tl:{x:t.mt.x-q,y:t.mt.y-i},tr:{x:t.mt.x+i,y:t.mt.y-q},bl:{x:t.mt.x-i,y:t.mt.y+q},br:{x:t.mt.x+q,y:t.mt.y+i}};t.mr.corner={tl:{x:t.mr.x-q,y:t.mr.y-i},tr:{x:t.mr.x+i,y:t.mr.y-q},bl:{x:t.mr.x-i,y:t.mr.y+q},br:{x:t.mr.x+q,y:t.mr.y+i}};t.mb.corner={tl:{x:t.mb.x-q,y:t.mb.y-i},tr:{x:t.mb.x+i,y:t.mb.y-q},bl:{x:t.mb.x-i,y:t.mb.y+q},br:{x:t.mb.x+q,y:t.mb.y+i}};t.mtr.corner={tl:{x:t.mtr.x-q+(u*this.rotatingPointOffset),y:t.mtr.y-i-(s*this.rotatingPointOffset)},tr:{x:t.mtr.x+i+(u*this.rotatingPointOffset),y:t.mtr.y-q-(s*this.rotatingPointOffset)},bl:{x:t.mtr.x-i+(u*this.rotatingPointOffset),y:t.mtr.y+q-(s*this.rotatingPointOffset)},br:{x:t.mtr.x+q+(u*this.rotatingPointOffset),y:t.mtr.y+i-(s*this.rotatingPointOffset)}}},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){this.set("fill",d.Gradient.forObject(this,i))},animate:function(){if(arguments[0]&&typeof arguments[0]==="object"){for(var i in arguments[0]){this._animate(i,arguments[0][i],arguments[1])}}else{this._animate.apply(this,arguments)}return this},_animate:function(p,r,i){var q=this;i||(i={});if(!("from" in i)){i.from=this.get(p)}if(/[+\-]/.test((r+"").charAt(0))){r=this.get(p)+parseFloat(r)}d.util.animate({startValue:i.from,endValue:r,byValue:i.by,easing:i.easing,duration:i.duration,onChange:function(s){q.set(p,s);i.onChange&&i.onChange()},onComplete:function(){q.setCoords();i.onComplete&&i.onComplete()}})},centerH:function(){this.canvas.centerObjectH(this);return this},centerV:function(){this.canvas.centerObjectV(this);return this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){this.canvas.sendToBack(this);return this},bringToFront:function(){this.canvas.bringToFront(this);return this},sendBackwards:function(){this.canvas.sendBackwards(this);return this},bringForward:function(){this.canvas.bringForward(this);return this}});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,m="get"+e;if(!j[m]){j[m]=(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)}}l(d.Object.prototype,d.Observable);l(d.Object,{NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:0.1})})(typeof exports!=="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),d=c.util.object.extend,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(f,e){e=e||{};if(!f){f=[0,0,0,0]}this.callSuper("initialize",e);this.set("x1",f[0]);this.set("y1",f[1]);this.set("x2",f[2]);this.set("y2",f[3]);this._setWidthHeight(e)},_setWidthHeight:function(e){e||(e={});this.set("width",(this.x2-this.x1)||1);this.set("height",(this.y2-this.y1)||1);this.set("left","left" in e?e.left:(this.x1+this.width/2));this.set("top","top" in e?e.top:(this.y1+this.height/2))},_set:function(e,f){this[e]=f;if(e in a){this._setWidthHeight()}return this},_render:function(e){e.beginPath();if(this.group){e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top)}e.moveTo(this.width===1?0:(-this.width/2),this.height===1?0:(-this.height/2));e.lineTo(this.width===1?0:(this.width/2),this.height===1?0:(this.height/2));e.lineWidth=this.strokeWidth;var f=e.strokeStyle;e.strokeStyle=e.fillStyle;e.stroke();e.strokeStyle=f},complexity:function(){return 1},toObject:function(){return d(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(f,e){var h=c.parseAttributes(f,c.Line.ATTRIBUTE_NAMES);var g=[h.x1||0,h.y1||0,h.x2||0,h.y2||0];return new c.Line(g,d(h,e))};c.Line.fromObject=function(e){var f=[e.x1,e.y1,e.x2,e.y2];return new c.Line(f,e)}})(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 new 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;if(this.transformMatrix&&this.group){e.translate(this.cx,this.cy)}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(g,f){f||(f={});var i=b.parseAttributes(g,b.Ellipse.ATTRIBUTE_NAMES);var e=i.left;var j=i.top;if("left" in i){i.left-=(f.width/2)||0}if("top" in i){i.top-=(f.height/2)||0}var h=new b.Ellipse(d(i,f));h.cx=e||0;h.cy=j||0;return h};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",rx:0,ry:0,initialize:function(d){d=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.transformMatrix&&this.group){f.translate(this.width/2+this.x,this.height/2+this.y)}if(!this.transformMatrix&&this.group){f.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y)}f.moveTo(d+j,k);f.lineTo(d+e-j,k);f.quadraticCurveTo(d+e,k,d+e,k+i,d+e,k+i);f.lineTo(d+e,k+g-i);f.quadraticCurveTo(d+e,k+g,d+e-j,k+g,d+e-j,k+g);f.lineTo(d+j,k+g);f.quadraticCurveTo(d,k+g,d,k+g-i,d,k+g-i);f.lineTo(d,k+i);f.quadraticCurveTo(d,k,d+j,k,d+j,k);f.closePath();if(this.fill){f.fill()}if(this.strokeDashArray){this._renderDashedStroke(f)}else{if(this.stroke){f.stroke()}}},_normalizeLeftTopProperties:function(d){if(d.left){this.set("left",d.left+this.getWidth()/2)}this.set("x",d.left||0);if(d.top){this.set("top",d.top+this.getHeight()/2)}this.set("y",d.top||0);return this},complexity:function(){return 1},toObject:function(){return c.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return''}});c.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" ");function a(d){d.left=d.left||0;d.top=d.top||0;return d}c.Rect.fromElement=function(e,d){if(!e){return null}var g=c.parseAttributes(e,c.Rect.ATTRIBUTE_NAMES);g=a(g);var f=new c.Rect(c.util.object.extend((d?c.util.object.clone(d):{}),g));f._normalizeLeftTopProperties(g);return f};c.Rect.fromObject=function(d){return new c.Rect(d)}})(typeof exports!=="undefined"?exports:this);(function(b){var c=b.fabric||(b.fabric={}),a=c.util.toFixed;if(c.Polyline){c.warn("fabric.Polyline is already defined");return}c.Polyline=c.util.createClass(c.Object,{type:"polyline",initialize:function(e,d){d=d||{};this.set("points",e);this.callSuper("initialize",d);this._calcDimensions()},_calcDimensions:function(){return c.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return c.Polygon.prototype.toObject.call(this)},toSVG:function(){var f=[];for(var e=0,d=this.points.length;e"].join("")},_render:function(f){var e;f.beginPath();f.moveTo(this.points[0].x,this.points[0].y);for(var g=0,d=this.points.length;g"].join("")},_render:function(j){var h;j.beginPath();j.moveTo(this.points[0].x,this.points[0].y);for(var k=0,g=this.points.length;k1){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,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 i=this.getObjects()[0].get("fill");return this.getObjects().every(function(j){return j.get("fill")===i})},complexity:function(){return this.paths.reduce(function(i,j){return i+((j&&j.complexity)?j.complexity():0)},0)},toGrayscale:function(){var j=this.paths.length;while(j--){this.paths[j].toGrayscale()}return this},getObjects:function(){return this.paths}});function d(m){for(var l=0,j=m.length;l"},getObjects:function(){return this.objects},addWithUpdate:function(h){this._restoreObjectsState();this.objects.push(h);this._calcBounds();this._updateObjectsCoords();return this},removeWithUpdate:function(h){this._restoreObjectsState();f(this.objects,h);h.setActive(false);this._calcBounds();this._updateObjectsCoords();return this},add:function(h){this.objects.push(h);return this},remove:function(h){f(this.objects,h);return this},size:function(){return this.getObjects().length},_set:function(j,k){if(j==="fill"||j==="opacity"){var h=this.objects.length;this[j]=k;while(h--){this.objects[h].set(j,k)}}else{this[j]=k}},contains:function(h){return this.objects.indexOf(h)>-1},toObject:function(){return g(this.callSuper("toObject"),{objects:b(this.objects,"toObject")})},render:function(j,o){j.save();this.transform(j);var n=Math.max(this.scaleX,this.scaleY);for(var l=0,h=this.objects.length;li.x&&j-hi.y},toGrayscale:function(){var h=this.objects.length;while(h--){this.objects[h].toGrayscale()}},toSVG:function(){var k=[];for(var j=0,h=this.objects.length;j'+k.join("")+"")}});e.Group.fromObject=function(h,i){e.util.enlivenObjects(h.objects,function(j){delete h.objects;i&&i(new e.Group(j,h))})};e.Group.async=true})(typeof exports!=="undefined"?exports:this);(function(a){var b=fabric.util.object.extend;if(!a.fabric){a.fabric={}}if(a.fabric.Image){fabric.warn("fabric.Image is already defined.");return}fabric.Image=fabric.util.createClass(fabric.Object,{active: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}},render:function(d,e){d.save();var c=this.transformMatrix;this._resetWidthHeight();if(this.group){d.translate(-this.group.width/2+this.width/2,-this.group.height/2+this.height/2)}if(c){d.transform(c[0],c[1],c[2],c[3],c[4],c[5])}if(!e){this.transform(d)}this._render(d);if(this.active&&!e){this.drawBorders(d);this.hideCorners||this.drawCorners(d)}d.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,g.width,g.height);this.filters.forEach(function(j){j&&j.applyTo(e)});f.onload=function(){h._element=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._element=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)},_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){c||(c={});this.setOptions(c);this._setWidthHeight(c)},_initFilters:function(c){if(c.filters&&c.filters.length){this.filters=c.filters.map(function(d){return d&&fabric.Image.filters[d.type].fromObject(d)})}},_setWidthHeight:function(c){this.width="width" in c?c.width:(this.getElement().width||0);this.height="height" in c?c.height:(this.getElement().height||0)},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)0){h[j]=k;h[j+1]=c;h[j+2]=g}}d.putImageData(b,0,0)},toJSON:function(){return{type:this.type,color:this.color}}});fabric.Image.filters.Tint.fromObject=function(a){return new fabric.Image.filters.Tint(a)};(function(b){var c=b.fabric||(b.fabric={}),e=c.util.object.extend,d=c.util.object.clone,a=c.util.toFixed;if(c.Text){c.warn("fabric.Text is already defined");return}c.Text=c.util.createClass(c.Object,{fontSize:40,fontWeight:100,fontFamily:"Times New Roman",textDecoration:"",textShadow:"",textAlign:"left",fontStyle:"",lineHeight:1.3,strokeStyle:"",strokeWidth:1,backgroundColor:"",path:null,type:"text",useNative:true,initialize:function(g,f){f=f||{};this._initStateProperties();this.text=g;this.setOptions(f);this._theta=this.angle*Math.PI/180;this._initDimensions();this.setCoords()},_initDimensions:function(){var f=c.document.createElement("canvas");if(!f.getContext&&typeof G_vmlCanvasManager!=="undefined"){G_vmlCanvasManager.initElement(f)}this._render(f.getContext("2d"))},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat();this.stateProperties.push("fontFamily","fontWeight","fontSize","path","text","textDecoration","textShadow","textAlign","fontStyle","lineHeight","strokeStyle","strokeWidth","backgroundColor","useNative");c.util.removeFromArray(this.stateProperties,"width")},toString:function(){return"#'},_render:function(f){if(typeof Cufon==="undefined"||this.useNative===true){this._renderViaNative(f)}else{this._renderViaCufon(f)}},_renderViaCufon: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._initDummyElementForCufon();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||[];g=null;this.setCoords()},_renderViaNative:function(f){this.transform(f);this._setTextStyles(f);var g=this.text.split(/\r?\n/);this.width=this._getTextWidth(f,g);this.height=this._getTextHeight(f,g);this._renderTextBackground(f,g);if(this.textAlign!=="left"){f.save();f.translate(this.textAlign==="center"?(this.width/2):this.width,0)}this._setTextShadow(f);this._renderTextFill(f,g);this.textShadow&&f.restore();this._renderTextStroke(f,g);if(this.textAlign!=="left"){f.restore()}this._renderTextDecoration(f,g);this._setBoundaries(f,g);this._totalLineHeight=0;this.setCoords()},_setBoundaries:function(h,k){this._boundaries=[];for(var j=0,g=k.length;jk){k=l}}return k},_setTextShadow:function(f){if(this.textShadow){var j=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/;var g=this.textShadow;var i=j.exec(this.textShadow);var h=g.replace(j,"");f.save();f.shadowColor=h;f.shadowOffsetX=parseInt(i[1],10);f.shadowOffsetY=parseInt(i[2],10);f.shadowBlur=parseInt(i[3],10);this._shadows=[{blur:f.shadowBlur,color:f.shadowColor,offX:f.shadowOffsetX,offY:f.shadowOffsetY}];this._shadowOffsets=[[parseInt(f.shadowOffsetX,10),parseInt(f.shadowOffsetY,10)]]}},_renderTextFill:function(g,j){this._boundaries=[];for(var h=0,f=j.length;h-1){f(this.fontSize)}if(this.textDecoration.indexOf("line-through")>-1){f(this.fontSize/2)}if(this.textDecoration.indexOf("overline")>-1){f(0)}},_getFontDeclaration:function(){return[this.fontStyle,this.fontWeight,this.fontSize+"px",(c.isLikelyNode?('"'+this.fontFamily+'"'):this.fontFamily)].join(" ")},_initDummyElementForCufon: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,useNative:this.useNative})},toSVG:function(){var i=this.text.split(/\r?\n/),j=this.useNative?this.fontSize*this.lineHeight:(-this._fontAscent-((this._fontAscent/5)*this.lineHeight)),g=-(this.width/2),f=this.useNative?this.fontSize-1:(this.height/2)-(i.length*this.fontSize)-this._totalLineHeight,h=this._getSVGTextAndBg(j,g,i),k=this._getSVGShadows(j,i);f+=(this._fontAscent?((this._fontAscent/5)*this.lineHeight):0);return['',h.textBgRects.join(""),"',k.join(""),h.textSpans.join(""),"",""].join("")},_getSVGShadows:function(h,n){var o=[],k,l,p,g,f=1;if(!this._shadows||!this._boundaries){return o}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||!this._boundaries){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._initDimensions();this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this._initDimensions();this.setCoords();return this},_set:function(f,g){if(f==="fontFamily"&&this.path){this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+g+"$3")}this.callSuper("_set",f,g)}});c.Text.ATTRIBUTE_NAMES=("x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration").split(" ");c.Text.fromObject=function(f){return new c.Text(f.text,d(f))};c.Text.fromElement=function(g,f){if(!g){return null}var h=c.parseAttributes(g,c.Text.ATTRIBUTE_NAMES);f=c.util.object.extend((f?c.util.object.clone(f):{}),h);var i=new c.Text(g.textContent,f);return i}})(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),req=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)}});req.end();req.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){fabric.loadSVGFromString(body,callback)})};fabric.loadSVGFromString=function(string,callback){var doc=new DOMParser().parseFromString(string);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 FabricCanvas=fabric.Canvas||fabric.StaticCanvas;var fabricCanvas=new FabricCanvas(canvasEl);fabricCanvas.contextContainer=nodeCanvas.getContext("2d");fabricCanvas.nodeCanvas=nodeCanvas;return fabricCanvas};fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.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 +/* build: `node build.js modules=ALL` *//*! Fabric.js Copyright 2008-2012, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"0.9.15"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.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(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(l,f,c,n));if(i>r||o()){e.onComplete&&e.onComplete();return}a(h)}()}function f(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function l(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e){i[t]=e,r()}):(i[t]=s.fromObject(e),r())})}function c(e,t,n){var r=e.length>1?new fabric.PathGroup(e,t):e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}fabric.util={};var n=Math.PI/180,u=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},a=function(){return u.apply(fabric.window,arguments)};fabric.util.removeFromArray=e,fabric.util.degreesToRadians=r,fabric.util.toFixed=i,fabric.util.getRandomInt=t,fabric.util.falseFunction=s,fabric.util.animate=o,fabric.util.requestAnimFrame=a,fabric.util.loadImage=f,fabric.util.enlivenObjects=l,fabric.util.groupSVGElements=c}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(){function o(){this.initialize.apply(this,arguments)}var n=null,s=e.call(arguments,0);typeof s[0]=="function"&&(n=s.shift()),o.superclass=n,o.subclasses=[],n&&(i.prototype=n.prototype,o.prototype=new i,n.subclasses.push(o));for(var u=0,a=s.length;u-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t}),function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"|| +s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[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 t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n",'",""].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)','',"',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())];this.backgroundImage&&e.push('');for(var t=0,n=this.getObjects(),r=n.length;t"),e.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){return n(this._objects,e),this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared")),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i)if(e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])){r=i;break}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-t),e.ey-(n>0?0:-n),r,i),this.contextTop.lineWidth=this.selectionLineWidth,this.contextTop.strokeStyle=this.selectionBorderColor,this.contextTop.strokeRect(e.ex+p-(t>0?0:r),e.ey+p-(n>0?0:i),r,i)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,o,u=new fabric.Point(c(n,i),c(r,s)),a=new fabric.Point(h(n,i),h(r,s));for(var f=0,l=this._objects.length;f1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e),i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u1?t.apply(this,u.call(arguments,1)):t.call(this)},initialize:function(e){e&&this.setOptions(e)},_initGradient:function(e){e.fill&&typeof e.fill=="object"&&!(e.fill instanceof t.Gradient)&&this.set("fill",new t.Gradient(e.fill))},setOptions:function(e){var t=this.stateProperties.length,n;while(t--)n=this.stateProperties[t],n in e&&this.set(n,e[n]);this._initGradient(e)},transform:function(e){e.globalAlpha=this.opacity,e.translate(this.left,this.top),e.rotate(this._theta),e.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toObject:function(){var e=t.Object.NUM_FRACTION_DIGITS,n={type:this.type,left:r(this.left,e),top:r(this.top,e),width:r(this.width,e),height:r(this.height,e),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,strokeDashArray:this.strokeDashArray,scaleX:r(this.scaleX,e),scaleY:r(this.scaleY,e),angle:r(this.getAngle(),e),flipX:this.flipX,flipY:this.flipY,opacity:r(this.opacity,e),selectable:this.selectable,hasControls:this.hasControls,hasBorders:this.hasBorders,hasRotatingPoint:this.hasRotatingPoint,transparentCorners:this.transparentCorners,perPixelTargetFind:this.perPixelTargetFind};return this.includeDefaultValues||(n=this._removeDefaultValues(n)),n},toDatalessObject:function(){return this.toObject()},getSvgStyles:function(){return["stroke: ",this.stroke?this.stroke:"none","; ","stroke-width: ",this.strokeWidth?this.strokeWidth:"0","; ","stroke-dasharray: ",this.strokeDashArray?this.strokeDashArray.join(" "):"; ","fill: ",this.fill?this.fill:"none","; ","opacity: ",this.opacity?this.opacity:"1",";"].join("")},getSvgTransform:function(){var e=this.getAngle();return["translate(",r(this.left,2)," ",r(this.top,2),")",e!==0?" rotate("+r(e,2)+")":"",this.scaleX===1&&this.scaleY===1?"":" scale("+r(this.scaleX,2)+" "+r(this.scaleY,2)+")"].join("")},_removeDefaultValues:function(e){var n=t.Object.prototype.options;return n&&this.stateProperties.forEach(function(t){e[t]===n[t]&&delete e[t]}),e},isActive:function(){return!!this.active},setActive:function(e){return this.active=!!e,this},toString:function(){return"#"},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,n){var r=(e==="scaleX"||e==="scaleY")&&n1?this.strokeWidth:0,t=this.padding;this.currentWidth=(this.width+e)*this.scaleX+t*2,this.currentHeight=(this.height+e)*this.scaleY+t*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth)),this._hypotenuse=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),this._angle=Math.atan(this.currentHeight/this.currentWidth);var n=Math.cos(this._angle+this._theta)*this._hypotenuse,r=Math.sin(this._angle+this._theta)*this._hypotenuse,i=this._theta,s=Math.sin(i),o=Math.cos(i),u={x:this.left-n,y:this.top-r},a={x:u.x+this.currentWidth*o,y:u.y+this.currentWidth*s},f={x:a.x-this.currentHeight*s,y:a.y+this.currentHeight*o},l={x:u.x-this.currentHeight*s,y:u.y+this.currentHeight*o},c={x:u.x-this.currentHeight/2*s,y:u.y+this.currentHeight/2*o},h={x:u.x+this.currentWidth/2*o,y:u.y+this.currentWidth/2*s},p={x:a.x-this.currentHeight/2*s,y:a.y+this.currentHeight/2*o},d={x:l.x+this.currentWidth/2*o,y:l.y+this.currentWidth/2*s},v={x:u.x+this.currentWidth/2*o,y:u.y+this.currentWidth/2*s};return this.oCoords={tl:u,tr:a,br:f,bl:l,ml:c,mt:h,mr:p,mb:d,mtr:v},this._setCornerCoords(),this},getBoundingRectWidth:function(){this.oCoords||this.setCoords();var e=[this.oCoords.tl.x,this.oCoords.tr.x,this.oCoords.br.x,this.oCoords.bl.x],n=t.util.array.min(e),r=t.util.array.max(e);return Math.abs(n-r)},getBoundingRectHeight:function(){this.oCoords||this.setCoords();var e=[this.oCoords.tl.y,this.oCoords.tr.y,this.oCoords.br.y,this.oCoords.bl.y],n=t.util.array.min(e),r=t.util.array.max(e);return Math.abs(n-r)},drawBorders:function(e){if(!this.hasBorders)return;var n=t.Object.MIN_SCALE_LIMIT,r=this.padding,i=r*2,s=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var o=1/(this.scaleXc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornersize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,e.clearRect(o,u,a,f),e[y](o,u,a,f),this.lockUniScaling||(o=i+g/2-p,u=s-h-r-c,e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this},clone:function(e){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(),e):new t.Object(this.toObject())},cloneAsImage:function(e){if(t.Image){var n=new Image;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.document.createElement("canvas");!n.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(n),n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},intersectsWithRect:function(e,n){var r=this.oCoords,i=new t.Point(r.tl.x,r.tl.y),s=new t.Point(r.tr.x,r.tr.y),o=new t.Point(r.bl.x,r.bl.y),u=new t.Point(r.br.x,r.br.y),a=t.Intersection.intersectPolygonRectangle([i,s,u,o],e,n);return a.status==="Intersection"},intersectsWithObject:function(e){function n(e){return{tl:new t.Point(e.tl.x,e.tl.y),tr:new t.Point(e.tr.x,e.tr.y),bl:new t.Point(e.bl.x,e.bl.y),br:new t.Point(e.br.x,e.br.y)}}var r=n(this.oCoords),i=n(e.oCoords),s=t.Intersection.intersectPolygonPolygon([r.tl,r.tr,r.br,r.bl],[i.tl,i.tr,i.br,i.bl]);return s.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,n){var r=this.oCoords,i=new t.Point(r.tl.x,r.tl.y),s=new t.Point(r.tr.x,r.tr.y),o=new t.Point(r.bl.x,r.bl.y);return i.x>e.x&&s.xe.y&&o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,t=o(45-this.getAngle()),n=Math.sqrt(2*Math.pow(this.cornersize,2))/2,r=n*Math.cos(t),i=n*Math.sin(t),s=Math.sin(this._theta),u=Math.cos(this._theta);e.tl.corner={tl:{x:e.tl.x-i,y:e.tl.y-r},tr:{x:e.tl.x+r,y:e.tl.y-i},bl:{x:e.tl.x-r,y:e.tl.y+i},br:{x:e.tl.x+i,y:e.tl.y+r}},e.tr.corner={tl:{x:e.tr.x-i,y:e.tr.y-r},tr:{x:e.tr.x+r,y:e.tr.y-i},br:{x:e.tr.x+i,y:e.tr.y+r},bl:{x:e.tr.x-r,y:e.tr.y+i}},e.bl.corner={tl:{x:e.bl.x-i,y:e.bl.y-r},bl:{x:e.bl.x-r,y:e.bl.y+i},br:{x:e.bl.x+i,y:e.bl.y+r},tr:{x:e.bl.x+r,y:e.bl.y-i}},e.br.corner={tr:{x:e.br.x+r,y:e.br.y-i},bl:{x:e.br.x-r,y:e.br.y+i},br:{x:e.br.x+i,y:e.br.y+r},tl:{x:e.br.x-i,y:e.br.y-r}},e.ml.corner={tl:{x:e.ml.x-i,y:e.ml.y-r},tr:{x:e.ml.x+r,y:e.ml.y-i},bl:{x:e.ml.x-r,y:e.ml.y+i},br:{x:e.ml.x+i,y:e.ml.y+r}},e.mt.corner={tl:{x:e.mt.x-i,y:e.mt.y-r},tr:{x:e.mt.x+r,y:e.mt.y-i},bl:{x:e.mt.x-r,y:e.mt.y+i},br:{x:e.mt.x+i,y:e.mt.y+r}},e.mr.corner={tl:{x:e.mr.x-i,y:e.mr.y-r},tr:{x:e.mr.x+r,y:e.mr.y-i},bl:{x:e.mr.x-r,y:e.mr.y+i},br:{x:e.mr.x+i,y:e.mr.y+r}},e.mb.corner={tl:{x:e.mb.x-i,y:e.mb.y-r},tr:{x:e.mb.x+r,y:e.mb.y-i},bl:{x:e.mb.x-r,y:e.mb.y+i},br:{x:e.mb.x+i,y:e.mb.y+r}},e.mtr.corner={tl:{x:e.mtr.x-i+s*this.rotatingPointOffset,y:e.mtr.y-r-u*this.rotatingPointOffset},tr:{x:e.mtr.x+r+s*this.rotatingPointOffset,y:e.mtr.y-i-u*this.rotatingPointOffset},bl:{x:e.mtr.x-r+s*this.rotatingPointOffset,y:e.mtr.y+i-u*this.rotatingPointOffset},br:{x:e.mtr.x+i+s*this.rotatingPointOffset,y:e.mtr.y+r-u*this.rotatingPointOffset}}},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(){return this.toObject()},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this;r||(r={}),"from"in r||(r.from=this.get(e)),/[+\-]/.test((n+"").charAt(0))&&(n=this.get(e)+parseFloat(n)),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.Object.prototype.rotate=t.Object.prototype.setAngle;var a=t.Object.prototype;for(var f=a.stateProperties.length;f--;){var l=a.stateProperties[f],c=l.charAt(0).toUpperCase()+l.slice(1),h="set"+c,p="get"+c;a[p]||(a[p]=function(e){return new Function('return this.get("'+e+'")')}(l)),a[h]||(a[h]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(l))}n(t.Object.prototype,t.Observable),n(t.Object,{NUM_FRACTION_DIGITS:2,MIN_SCALE_LIMIT:.1})}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(){return n(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(){return r(this.callSuper("toObject"),{radius:this.get("radius")})},toSVG:function(){return'" +},_render:function(e,t){e.beginPath(),e.globalAlpha*=this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");return"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0),new t.Circle(r(s,n))},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.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 r(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha*=this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={});if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy()},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha*=this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(){return t.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,r){if(!e)return null;var i=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);i=n(i);var s=new t.Rect(t.util.object.extend(r?t.util.object.clone(r):{},i));return s._normalizeLeftTopProperties(i),s},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions()},_calcDimensions:function(){return t.Polygon.prototype._calcDimensions.call(this)},toObject:function(){return t.Polygon.prototype.toObject.call(this)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(){var e=h(this.callSuper("toObject"),{path:this.path});return this.sourcePath&&(e.sourcePath=this.sourcePath),this.transformMatrix&&(e.transformMatrix=this.transformMatrix),e},toDatalessObject:function(){var e=this.toObject();return this.sourcePath&&(e.path=this.sourcePath),delete e.sourcePath,e},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},_set:function(e,t){if(e==="fill"||e==="opacity"){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(){return n(this.callSuper("toObject"),{objects:s(this.objects,"toObject")})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=0,i=this.objects.length;re.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale()},toSVG:function(){var e=[];for(var t=0,n=this.objects.length;t'+e.join("")+""}}),t.Group.fromObject=function(e,n){t.util.enlivenObjects(e.objects,function(r){delete e.objects,n&&n(new t.Group(r,e))})},t.Group.async=!0}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=fabric.util.object.extend;e.fabric||(e.fabric={});if(e.fabric.Image){fabric.warn("fabric.Image is already defined.");return}fabric.Image=fabric.util.createClass(fabric.Object,{active:!1,type:"image",initialize:function(e,t){t||(t={}),this.callSuper("initialize",t),this._initElement(e),this._originalImage=this.getElement(),this._initConfig(t),this.filters=[],t.filters&&(this.filters=t.filters,this.applyFilters())},getElement:function(){return this._element},setElement:function(e){return this._element=e,this._initConfig(),this},getOriginalSize:function(){var e=this.getElement();return{width:e.width,height:e.height}},render:function(e,t){e.save();var n=this.transformMatrix;this._resetWidthHeight(),this.group&&e.translate(-this.group.width/2+this.width/2,-this.group.height/2+this.height/2),n&&e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e),this._render(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(){return t(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(e){this.constructor.fromObject(this.toObject(),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.document.createElement("canvas"),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;!r.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(r),r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").replace(/data:image\/png;base64,/,"");i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this.getElement(),-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.get("angle");return e>-225&&e<=-135?-180:e>-135&&e<=-45?-90:e>-45&&e<=45?0:e>45&&e<=135?90:e>135&&e<=225?180:e>225&&e<=315?270:e>315?360:0},straighten:function(){var e=this._getAngleValueForStraighten();return this.setAngle(e),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.object.clone,i=t.util.toFixed;if(t.Text){t.warn("fabric.Text is already defined");return}t.Text=t.util.createClass(t.Object,{fontSize:40,fontWeight:100,fontFamily:"Times New Roman",textDecoration:"",textShadow:"",textAlign:"left",fontStyle:"",lineHeight:1.3,strokeStyle:"",strokeWidth:1,backgroundColor:"",path:null,type:"text",useNative:!0,initialize:function(e,t){t=t||{},this._initStateProperties(),this.text=e,this.setOptions(t),this._theta=this.angle*Math.PI/180,this._initDimensions(),this.setCoords()},_initDimensions:function(){var e=t.document.createElement("canvas");!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),this._render(e.getContext("2d"))},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(),this.stateProperties.push("fontFamily","fontWeight","fontSize","path","text","textDecoration","textShadow","textAlign","fontStyle","lineHeight","strokeStyle","strokeWidth","backgroundColor","useNative"),t.util.removeFromArray(this.stateProperties,"width")},toString:function(){return"#'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{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=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_renderTextFill:function(e,t){this._boundaries=[];for(var n=0,r=t.length;n-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[this.fontStyle,this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(){return n(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,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.backgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}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;fabric.util.loadImage=function(e,t){request(e,"binary",function(n){var r=new Image;r.src=new Buffer(n,"binary"),r._src=e,t(r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},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 56ed173ed6bac0e442d5b8c1b51d93139eb31911..be4e644efa99c7dc4e8b32637216b4c8382e5a0a 100644 GIT binary patch literal 39329 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
J%-yI`!(^nl0S24(=CVN(TGX^Me40g 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
  • bFMGq^)X6m}TYqsZ!&qvQy0>>`yl= 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.4.0 && <0.9.0" }, "main": "./dist/all.js"