From 8388559b423041a1c4701fc74acdb7551e575fb8 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 26 Jul 2010 01:43:25 -0400 Subject: [PATCH] Add alternative minified version of fabric (via google closure compiler) and corresponding gzipped versions (for comparison). Do not set angle of circles in benchmark. --- dist/all.min-via-goog-cc.js | 165 +++++++++++++++++++++++++++++++++ dist/all.min-via-goog-cc.js.gz | Bin 0 -> 21953 bytes dist/all.min.js.gz | Bin 0 -> 23172 bytes test/benchmark/benchmark.js | 1 - 4 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 dist/all.min-via-goog-cc.js create mode 100644 dist/all.min-via-goog-cc.js.gz create mode 100644 dist/all.min.js.gz diff --git a/dist/all.min-via-goog-cc.js b/dist/all.min-via-goog-cc.js new file mode 100644 index 00000000..32b5b9b9 --- /dev/null +++ b/dist/all.min-via-goog-cc.js @@ -0,0 +1,165 @@ +if(typeof console=="undefined")var console={log:function(){},warn:function(){}};if(!this.JSON)this.JSON={}; +(function(){function e(k){return k<10?"0"+k:k}function f(k){g.lastIndex=0;return g.test(k)?'"'+k.replace(g,function(m){var n=b[m];return typeof n==="string"?n:"\\u"+("0000"+m.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+k+'"'}function a(k,m){var n,o,s,r,u=h,q,p=m[k];if(p&&typeof p==="object"&&typeof p.toJSON==="function")p=p.toJSON(k);if(typeof d==="function")p=d.call(m,k,p);switch(typeof p){case "string":return f(p);case "number":return isFinite(p)?String(p):"null";case "boolean":case "null":return String(p); +case "object":if(!p)return"null";h+=l;q=[];if(Object.prototype.toString.apply(p)==="[object Array]"){r=p.length;for(n=0;n>>0;l=Number(l)||0;l=Math[l<0?"ceil":"floor"](l);if(l<0)l+=b;for(;l>>0;b>>0;d>>0;b>>0;b>>0;k>>0,b=0,d;if(arguments.length>1)d=arguments[1];else{do{if(b in this){d=this[b++];break}if(++b>=l)throw new TypeError;}while(1)}for(;b< +l;b++)if(b in this)d=h.call(null,d,this[b],b,this);return d};c.util.array={invoke:function(h,l){for(var b=g.call(arguments,2),d=[],k=0,m=h.length;k=d)d=h[b][l]}else for(;b--;)if(h[b]>=d)d=h[b];return d}};c.util.object= +{extend:e,clone:function(h){return e({},h)}};if(!String.prototype.trim)String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")};c.util.string={camelize:function(h){return h.replace(/-+(.)?/g,function(l,b){return b?b.toUpperCase():""})},capitalize:function(h){return h.charAt(0).toUpperCase()+h.slice(1).toLowerCase()}};if(!Function.prototype.bind)Function.prototype.bind=function(h){var l=this,b=Array.prototype.slice.call(arguments,1);return function(){return l.apply(h,b.concat(Array.prototype.slice.call(arguments)))}}; +(function(){function h(){}var l;l=function(){for(var b in{toString:1})if(b==="toString")return false;return true}()?function(b,d){if(d.toString!==Object.prototype.toString)b.prototype.toString=d.toString;if(d.valueOf!==Object.prototype.valueOf)b.prototype.valueOf=d.valueOf;for(var k in d)b.prototype[k]=d[k]}:function(b,d){for(var k in d)b.prototype[k]=d[k]};c.util.createClass=function(){function b(){this.initialize.apply(this,arguments)}var d=null,k=g.call(arguments,0);if(typeof k[0]==="function")d= +k.shift();b.superclass=d;b.subclasses=[];if(d){h.prototype=d.prototype;b.prototype=new h;d.subclasses.push(b)}d=0;for(var m=k.length;d=0.9999?"":"alpha(opacity="+m*100+")";n.filter=n.filter.replace(b,m)}else n.filter+=" alpha(opacity="+m*100+")";return k};c.util.setStyle=function(k,m){var n=k.style;if(typeof m==="string"){k.style.cssText+= +";"+m;return m.indexOf("opacity")>-1?d(k,m.match(/opacity:\s*(\d?\.?\d*)/)[1]):k}for(var o in m)if(o==="opacity")d(k,m[o]);else n[o==="float"||o==="cssFloat"?typeof n.styleFloat==="undefined"?"cssFloat":"styleFloat":o]=m[o];return k}})();(function(){var h=document.documentElement.style,l="userSelect"in h?"userSelect":"MozUserSelect"in h?"MozUserSelect":"WebkitUserSelect"in h?"WebkitUserSelect":"KhtmlUserSelect"in h?"KhtmlUserSelect":"";c.util.makeElementUnselectable=function(b){if(typeof b.onselectstart!== +"undefined")b.onselectstart=a;if(l)b.style[l]="none";else if(typeof b.unselectable=="string")b.unselectable="on";return b}})();(function(){function h(b,d){l.load(b);d()}c.util.getScript=function(b,d){var k=document.getElementsByTagName("head")[0],m=document.createElement("script"),n=true;m.type="text/javascript";m.setAttribute("runat","server");m.onload=m.onreadystatechange=function(o){if(n)if(!(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")){n=false;d(o|| +window.event);m=m.onload=m.onreadystatechange=null}};m.src=b;k.appendChild(m)};var l=this.Jaxer;if(l&&l.load)c.util.getScript=h})();c.util.getById=function(h){return typeof h==="string"?document.getElementById(h):h};c.util.toArray=function(h){for(var l=[],b=h.length;b--;)l[b]=h[b];return l};c.util.makeElement=f;c.util.addClass=function(h,l){if((" "+h.className+" ").indexOf(" "+l+" ")===-1)h.className+=(h.className?" ":"")+l};c.util.wrapElement=function(h,l,b){if(typeof l==="string")l=f(l,b);h.parentNode&& +h.parentNode.replaceChild(l,h);l.appendChild(h);return l};c.util.getElementOffset=function(h){var l=0,b=0;do{l+=h.offsetTop||0;b+=h.offsetLeft||0;h=h.offsetParent}while(h);return{left:b,top:l}};c.util.animate=function(h){h||(h={});var l=+new Date,b=h.duration||500,d=l+b,k,m,n=h.onChange||function(){},o=h.easing||function(p){return-Math.cos(p*Math.PI)/2+0.5},s="startValue"in h?h.startValue:0,r="endValue"in h?h.endValue:100,u=s>r;h.onStart&&h.onStart();var q=setInterval(function(){k=+new Date;m=k>d? +1:(k-l)/b;n(u?s-(s-r)*o(m):s+(r-s)*o(m));if(k>d){clearInterval(q);h.onComplete&&h.onComplete()}},10)};(function(){function h(){}var l=function(){for(var b=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}],d=b.length;d--;)try{if(b[d]())return b[d]}catch(k){}}();c.util.request=function(b,d){d||(d={});var k=d.method?d.method.toUpperCase():"GET", +m=d.onComplete||function(){},n=l(),o;n.onreadystatechange=function(){if(n.readyState===4){m(n);n.onreadystatechange=h}};if(k==="GET"){o=null;if(typeof d.parameters=="string")b=b+(/\?/.test(b)?"&":"?")+d.parameters}n.open(k,b,true);if(k==="POST"||k==="PUT")n.setRequestHeader("Content-Type","application/x-www-form-urlencoded");n.send(o);return n}})();(function(){var h=Math.PI/180;c.util.removeFromArray=function(l,b){var d=l.indexOf(b);d!==-1&&l.splice(d,1);return l};c.util.degreesToRadians=function(l){return l* +h};c.util.toFixed=function(l,b){return parseFloat(Number(l).toFixed(b))};c.util.getRandomInt=function(l,b){return Math.floor(Math.random()*(b-l+1))+l}})()})(this); +(function(){var e=this.fabric||(this.fabric={}),f={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix"};e.parseTransformAttribute=function(){function a(d,k){var m=k[0];d[0]=Math.cos(m);d[1]=Math.sin(m);d[2]=-Math.sin(m);d[3]=Math.cos(m)}function c(d,k){var m=k.length===2?k[1]:k[0];d[0]=k[0];d[3]=m}function g(d,k){d[4]=k[0];if(k.length===2)d[5]=k[1]}var h=[1,0,0,1,0,0],l=RegExp("^\\s*(?:(?:(?:(?:(matrix)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(translate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(scale)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(rotate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(skewX)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(skewY)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\)))(?:(?:\\s+,?\\s*|,\\s*)(?:(?:(matrix)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(translate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(scale)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(rotate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(skewX)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(skewY)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))))*)?)\\s*$"), +b=RegExp("(?:(?:(matrix)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(translate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(scale)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(rotate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(skewX)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(skewY)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\)))"); +return function(d){var k=h.concat();if(!d||d&&!l.test(d))return k;d.replace(b,function(m){var n=RegExp("(?:(?:(matrix)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(translate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(scale)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(rotate)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))(?:\\s+,?\\s*|,\\s*)((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)))?\\s*\\))|(?:(skewX)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\))|(?:(skewY)\\s*\\(\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?))\\s*\\)))").exec(m).filter(function(o){return o!== +""&&o!=null});m=n[1];n=n.slice(2).map(parseFloat);switch(m){case "translate":g(k,n);break;case "rotate":a(k,n);break;case "scale":c(k,n);break;case "skewX":k[2]=n[0];break;case "skewY":k[1]=n[0];break;case "matrix":k=n;break}});return k}}();e.parseSVGDocument=function(){var a=/^(path|circle|polygon|polyline|ellipse|rect|line)$/,c=RegExp("^\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)+)\\s*,?\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)+)\\s*,?\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)+)\\s*,?\\s*((?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)+)\\s*$"); +return function(g,h){if(g){var l=e.util.toArray(g.getElementsByTagName("*")).filter(function(o){var s;if(s=a.test(o.tagName)){a:{for(o=o;o&&(o=o.parentNode);)if(o.nodeName==="pattern"){o=true;break a}o=false}s=!o}return s});if(!(!l||l&&!l.length)){var b=g.getAttribute("viewBox"),d=g.getAttribute("width"),k=g.getAttribute("height"),m=null,n=null;if(b&&(b=b.match(c))){parseInt(b[1],10);parseInt(b[2],10);m=parseInt(b[3],10);n=parseInt(b[4],10)}m=d?parseFloat(d):m;n=k?parseFloat(k):n;b={width:m,height:n}; +l=e.parseElements(l,e.util.object.clone(b));!l||l&&!l.length||h&&h(l,b)}}}}();e.util.object.extend(e,{parseAttributes:function(a,c){if(a){var g,h,l={};if(a.parentNode&&/^g$/i.test(a.parentNode.nodeName))l=e.parseAttributes(a.parentNode,c);var b=c.reduce(function(d,k){g=a.getAttribute(k);h=parseFloat(g);if(g){if((k==="fill"||k==="stroke")&&g==="none")g="";if(k==="fill-rule")g=g==="evenodd"?"destination-over":g;if(k==="transform")g=e.parseTransformAttribute(g);if(k in f)k=f[k];d[k]=isNaN(h)?g:h}return d}, +{});b=e.util.object.extend(e.parseStyleAttribute(a),b);return e.util.object.extend(l,b)}},parseElements:function(a,c){var g=a.map(function(h){var l=e[e.util.string.capitalize(h.tagName)];if(l&&l.fromElement)try{return l.fromElement(h,c)}catch(b){console.log(b.message||b)}});return g=g.filter(function(h){return h!=null})},parseStyleAttribute:function(a){var c={};if(a=a.getAttribute("style"))if(typeof a=="string"){a=a.split(";");a.pop();c=a.reduce(function(h,l){var b=l.split(":"),d=b[0].trim();b=b[1].trim(); +h[d]=b;return h},{})}else for(var g in a)if(typeof a[g]!=="undefined")c[g]=a[g];return c},parsePointsAttribute:function(a){if(!a)return null;a=a.trim().split(/\s+/);a=a.reduce(function(c,g){g=g.split(",");c.push({x:parseFloat(g[0]),y:parseFloat(g[1])});return c},[]);if(a.length%2!==0)return null;return a}})})(); +(function(){function e(a,c){arguments.length>0&&this.init(a,c)}var f=this.fabric||(this.fabric={});if(f.Point)console.warn("fabric.Point is already defined");else{e.prototype={constructor:e,init:function(a,c){this.x=a;this.y=c},add:function(a){return new e(this.x+a.x,this.y+a.y)},addEquals:function(a){this.x+=a.x;this.y+=a.y;return this},scalarAdd:function(a){return new e(this.x+a,this.y+a)},scalarAddEquals:function(a){this.x+=a;this.y+=a;return this},subtract:function(a){return new e(this.x-a.x, +this.y-a.y)},subtractEquals:function(a){this.x-=a.x;this.y-=a.y;return this},scalarSubtract:function(a){return new e(this.x-a,this.y-a)},scalarSubtractEquals:function(a){this.x-=a;this.y-=a;return this},multiply:function(a){return new e(this.x*a,this.y*a)},multiplyEquals:function(a){this.x*=a;this.y*=a;return this},divide:function(a){return new e(this.x/a,this.y/a)},divideEquals:function(a){this.x/=a;this.y/=a;return this},eq:function(a){return this.x==a.x&&this.y==a.y},lt:function(a){return this.x< +a.x&&this.ya.x&&this.y>a.y},gte:function(a){return this.x>=a.x&&this.y>=a.y},lerp:function(a,c){return new e(this.x+(a.x-this.x)*c,this.y+(a.y-this.y)*c)},distanceFrom:function(a){var c=this.x-a.x;a=this.y-a.y;return Math.sqrt(c*c+a*a)},min:function(a){return new e(Math.min(this.x,a.x),Math.min(this.y,a.y))},max:function(a){return new e(Math.max(this.x,a.x),Math.max(this.y,a.y))},toString:function(){return this.x+ +","+this.y},setXY:function(a,c){this.x=a;this.y=c},setFromPoint:function(a){this.x=a.x;this.y=a.y},swap:function(a){var c=this.x,g=this.y;this.x=a.x;this.y=a.y;a.x=c;a.y=g}};f.Point=e}})(); +(function(){function e(a){arguments.length>0&&this.init(a)}var f=this.fabric||(this.fabric={});if(f.Intersection)console.warn("fabric.Intersection is already defined");else{e.prototype.init=function(a){this.status=a;this.points=[]};e.prototype.appendPoint=function(a){this.points.push(a)};e.prototype.appendPoints=function(a){this.points=this.points.concat(a)};e.intersectLineLine=function(a,c,g,h){var l,b=(h.x-g.x)*(a.y-g.y)-(h.y-g.y)*(a.x-g.x);l=(c.x-a.x)*(a.y-g.y)-(c.y-a.y)*(a.x-g.x);g=(h.y-g.y)* +(c.x-a.x)-(h.x-g.x)*(c.y-a.y);if(g!=0){b=b/g;l=l/g;if(0<=b&&b<=1&&0<=l&&l<=1){l=new e("Intersection");l.points.push(new f.Point(a.x+b*(c.x-a.x),a.y+b*(c.y-a.y)))}else l=new e("No Intersection")}else l=b==0||l==0?new e("Coincident"):new e("Parallel");return l};e.intersectLinePolygon=function(a,c,g){for(var h=new e("No Intersection"),l=g.length,b=0;b0)h.status="Intersection";return h};e.intersectPolygonPolygon= +function(a,c){for(var g=new e("No Intersection"),h=a.length,l=0;l0)g.status="Intersection";return g};e.intersectPolygonRectangle=function(a,c,g){var h=c.min(g),l=c.max(g);g=new f.Point(l.x,h.y);var b=new f.Point(h.x,l.y);c=e.intersectLinePolygon(h,g,a);g=e.intersectLinePolygon(g,l,a);l=e.intersectLinePolygon(l,b,a);a=e.intersectLinePolygon(b,h,a);h=new e("No Intersection");h.appendPoints(c.points); +h.appendPoints(g.points);h.appendPoints(l.points);h.appendPoints(a.points);if(h.points.length>0)h.status="Intersection";return h};f.Intersection=e}})(); +(function(){function e(a){a?this._tryParsingColor(a):this.setSource([0,0,0,1])}var f=this.fabric||(this.fabric={});if(f.Color)console.warn("fabric.Color is already defined.");else{f.Color=e;e.prototype._tryParsingColor=function(a){var c=e.sourceFromHex(a);c||(c=e.sourceFromRgb(a));c&&this.setSource(c)};e.prototype.getSource=function(){return this._source};e.prototype.setSource=function(a){this._source=a};e.prototype.toRgb=function(){var a=this.getSource();return"rgb("+a[0]+","+a[1]+","+a[2]+")"}; +e.prototype.toRgba=function(){var a=this.getSource();return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")"};e.prototype.toHex=function(){var a=this.getSource(),c=a[0].toString(16);c=c.length==1?"0"+c:c;var g=a[1].toString(16);g=g.length==1?"0"+g:g;a=a[2].toString(16);a=a.length==1?"0"+a:a;return c.toUpperCase()+g.toUpperCase()+a.toUpperCase()};e.prototype.getAlpha=function(){return this.getSource()[3]};e.prototype.setAlpha=function(a){var c=this.getSource();c[3]=a;this.setSource(c);return this};e.prototype.toGrayscale= +function(){var a=this.getSource(),c=parseInt((a[0]*0.3+a[1]*0.59+a[2]*0.11).toFixed(0),10);this.setSource([c,c,c,a[3]]);return this};e.prototype.toBlackWhite=function(a){var c=this.getSource(),g=(c[0]*0.3+c[1]*0.59+c[2]*0.11).toFixed(0);c=c[3];a=a||127;g=Number(g)0?0:-b),this._groupSelector.ey-(d>0?0:-d),k,m);this._oContextTop.lineWidth=this.selectionLineWidth;this._oContextTop.strokeStyle=this.selectionBorderColor;this._oContextTop.strokeRect(this._groupSelector.ex+0.5-(b>0?0:k),this._groupSelector.ey+0.5-(d>0? +0:m),k,m)},_findSelectedObjects:function(){var b=[],d=this._groupSelector.ex,k=this._groupSelector.ey,m=d+this._groupSelector.left,n=k+this._groupSelector.top,o=new fabric.Point(Math.min(d,m),Math.min(k,n));k=new fabric.Point(Math.max(d,m),Math.max(k,n));m=0;for(n=this._aObjects.length;m +1){b=new fabric.Group(b);this.setActiveGroup(b);b.saveCoords();fabric.util.fireEvent("group:selected",{target:b})}this.renderAll()},add:function(){this._aObjects.push.apply(this._aObjects,arguments);this.renderAll();return this},insertAt:function(b,d){this._aObjects.splice(d,0,b);this.renderAll();return this},getObjects:function(){return this._aObjects},getContext:function(){return this._oContextTop},clearContext:function(b){b.clearRect(0,0,this._oConfig.width,this._oConfig.height);return this},clear:function(){this._aObjects.length= +0;this.clearContext(this._oContextTop);this.clearContext(this._oContextContainer);this.renderAll();return this},renderAll:function(b){var d=this._oConfig.width,k=this._oConfig.height,m=b?this._oContextTop:this._oContextContainer;this.clearContext(this._oContextTop);m!==this._oContextTop&&this.clearContext(m);if(b){if(!l&&this.backgroundColor==="transparent")var n=true;if(!n)m.fillStyle=this.backgroundColor;m.fillRect(0,0,d,k)}b=this._aObjects.length;d=this.getActiveGroup();if(b)for(k=0;k1?new fabric.PathGroup(t,r):t[0];t.setSourcePath(p);if(!(t instanceof fabric.PathGroup)){fabric.util.object.extend(t,r);typeof r.angle!=="undefined"&&t.setAngle(r.angle)}k(t,u)})},this)}catch(s){console.log(s.message)}},loadImageFromURL:function(){var b= +{};return function(d,k){function m(){var s=f.getElementById(b[d]);s.width&&s.height?k(new fabric.Image(s)):setTimeout(m,50)}var n=this;if(b[d])m();else{var o=new Image;o.onload=function(){o.onload=null;n._resizeImageToFit(o);var s=new fabric.Image(o);k(s)};o.className="canvas-img-clone";o.src=d;if(this.shouldCacheImages)b[d]=Element.identify(o);f.body.appendChild(o)}}}(),loadSVGFromURL:function(b,d){function k(o){if(o=o.responseXML)(o=o.documentElement)&&fabric.parseSVGDocument(o,function(s,r){n.cache.set(b, +{objects:s.invoke("toObject"),options:r});d(s,r)})}function m(){console.log("ERROR!")}var n=this;b=b.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim();this.cache.has(b,function(o){if(o)n.cache.get(b,function(s){s=n._enlivenCachedObject(s);d(s.objects,s.options)});else new Ajax.Request(b,{method:"get",onComplete:k,onFailure:m})})},_enlivenCachedObject:function(b){var d=b.objects;b=b.options;d=d.map(function(k){return a[k.type.capitalize()].fromObject(k)});return{objects:d,options:b}},remove:function(b){fabric.util.removeFromArray(this._aObjects, +b);this.renderAll();return b},fxRemove:function(b,d){var k=this;b.fxRemove({onChange:this.renderAll.bind(this),onComplete:function(){k.remove(b);typeof d==="function"&&d()}});return this},sendToBack:function(b){fabric.util.removeFromArray(this._aObjects,b);this._aObjects.unshift(b);return this.renderAll()},bringToFront:function(b){fabric.util.removeFromArray(this._aObjects,b);this._aObjects.push(b);return this.renderAll()},sendBackwards:function(b){var d=this._aObjects.indexOf(b),k=d;if(d!==0){for(d= +d-1;d>=0;--d)if(b.intersectsWithObject(this._aObjects[d])){k=d;break}fabric.util.removeFromArray(this._aObjects,b);this._aObjects.splice(k,0,b)}return this.renderAll()},bringForward:function(b){var d=this.getObjects(),k=d.indexOf(b),m=k;if(k!==d.length-1){k=k+1;for(var n=this._aObjects.length;k"};fabric.util.object.extend(fabric.Element,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(b){var d=b.getContext("2d");b=d.getImageData(0,0,b.width,b.height);var k= +b.data,m=b.width,n=b.height,o,s;for(i=0;i1?c.apply(this,f.call(arguments,1)):c.call(this)},initialize:function(a){this.setOptions(a);this._importProperties();this.originalState= +{};this.setCoords();this.saveState()},setOptions:function(a){this.options=e.util.object.extend(this._getOptions(),a)},_getOptions:function(){return e.util.object.extend(e.util.object.clone(this._getSuperOptions()),this.options)},_getSuperOptions:function(){var a=this.constructor;if(a)if(a=a.superclass)if((a=a.prototype)&&typeof a._getOptions=="function")return a._getOptions();return{}},_importProperties:function(){this.stateProperties.forEach(function(a){a==="angle"?this.setAngle(this.options[a]): +this[a]=this.options[a]},this)},transform:function(a){a.globalAlpha=this.opacity;a.translate(this.left,this.top);a.rotate(this.theta);a.scale(this.scaleX*(this.flipX?-1:1),this.scaleY*(this.flipY?-1:1))},toJSON:function(){return JSON.stringify(this.toObject())},toObject:function(){var a=e.util.toFixed;a={type:this.type,left:a(this.left,this.NUM_FRACTION_DIGITS),top:a(this.top,this.NUM_FRACTION_DIGITS),width:a(this.width,this.NUM_FRACTION_DIGITS),height:a(this.height,this.NUM_FRACTION_DIGITS),fill:this.fill, +overlayFill:this.overlayFill,stroke:this.stroke,strokeWidth:this.strokeWidth,scaleX:a(this.scaleX,this.NUM_FRACTION_DIGITS),scaleY:a(this.scaleY,this.NUM_FRACTION_DIGITS),angle:a(this.getAngle(),this.NUM_FRACTION_DIGITS),flipX:this.flipX,flipY:this.flipY,opacity:a(this.opacity,this.NUM_FRACTION_DIGITS)};this.includeDefaultValues||(a=this._removeDefaultValues(a));return a},toDatalessObject:function(){return this.toObject()},_removeDefaultValues:function(a){var c=e.Object.prototype.options;this.stateProperties.forEach(function(g){a[g]=== +c[g]&&delete a[g]});return a},isActive:function(){return!!this.active},setActive:function(a){this.active=!!a;return this},toString:function(){return"#"},set:function(a,c){if((a==="scaleX"||a==="scaleY")&&ca.x&&l.xa.y&&b.y=c&&b.d.y>=c)){if(b.o.x==b.d.x&&b.o.x>=a)h=b.o.x;else{h=(b.d.y-b.o.y)/(b.d.x-b.o.x);l=c-0*a;b=b.o.y-h*b.o.x;h=-(l-b)/(0-h)}if(h>=a)d+=1;if(d==2)break}}return d},_getImageLines:function(a){return{topline:{o:a.tl,d:a.tr},rightline:{o:a.tr,d:a.br},bottomline:{o:a.br,d:a.bl},leftline:{o:a.bl,d:a.tl}}},_setCornerCoords:function(){var a=this.oCoords, +c=this.theta,g=this.cornersize*Math.cos(c),h=this.cornersize*Math.sin(c);c=this.cornersize/2;var l=c-h;a.tl.x-=l;a.tl.y-=c;a.tl.corner={tl:{x:a.tl.x,y:a.tl.y},tr:{x:a.tl.x+g,y:a.tl.y+h},bl:{x:a.tl.x-h,y:a.tl.y+g}};a.tl.corner.br={x:a.tl.corner.tr.x-h,y:a.tl.corner.tr.y+g};a.tl.x+=l;a.tl.y+=c;a.tr.x+=c;a.tr.y-=c;a.tr.corner={tl:{x:a.tr.x-g,y:a.tr.y-h},tr:{x:a.tr.x,y:a.tr.y},br:{x:a.tr.x-h,y:a.tr.y+g}};a.tr.corner.bl={x:a.tr.corner.tl.x-h,y:a.tr.corner.tl.y+g};a.tr.x-=c;a.tr.y+=c;a.bl.x-=c;a.bl.y+= +c;a.bl.corner={tl:{x:a.bl.x+h,y:a.bl.y-g},bl:{x:a.bl.x,y:a.bl.y},br:{x:a.bl.x+g,y:a.bl.y+h}};a.bl.corner.tr={x:a.bl.corner.br.x+h,y:a.bl.corner.br.y-g};a.bl.x+=c;a.bl.y-=c;a.br.x+=c;a.br.y+=c;a.br.corner={tr:{x:a.br.x+h,y:a.br.y-g},bl:{x:a.br.x-g,y:a.br.y-h},br:{x:a.br.x,y:a.br.y}};a.br.corner.tl={x:a.br.corner.bl.x+h,y:a.br.corner.bl.y-g};a.br.x-=c;a.br.y-=c;a.ml.x-=c;a.ml.y-=c;a.ml.corner={tl:{x:a.ml.x,y:a.ml.y},tr:{x:a.ml.x+g,y:a.ml.y+h},bl:{x:a.ml.x-h,y:a.ml.y+g}};a.ml.corner.br={x:a.ml.corner.tr.x- +h,y:a.ml.corner.tr.y+g};a.ml.x+=c;a.ml.y+=c;a.mt.x-=c;a.mt.y-=c;a.mt.corner={tl:{x:a.mt.x,y:a.mt.y},tr:{x:a.mt.x+g,y:a.mt.y+h},bl:{x:a.mt.x-h,y:a.mt.y+g}};a.mt.corner.br={x:a.mt.corner.tr.x-h,y:a.mt.corner.tr.y+g};a.mt.x+=c;a.mt.y+=c;a.mr.x-=c;a.mr.y-=c;a.mr.corner={tl:{x:a.mr.x,y:a.mr.y},tr:{x:a.mr.x+g,y:a.mr.y+h},bl:{x:a.mr.x-h,y:a.mr.y+g}};a.mr.corner.br={x:a.mr.corner.tr.x-h,y:a.mr.corner.tr.y+g};a.mr.x+=c;a.mr.y+=c;a.mb.x-=c;a.mb.y-=c;a.mb.corner={tl:{x:a.mb.x,y:a.mb.y},tr:{x:a.mb.x+g,y:a.mb.y+ +h},bl:{x:a.mb.x-h,y:a.mb.y+g}};a.mb.corner.br={x:a.mb.corner.tr.x-h,y:a.mb.corner.tr.y+g};a.mb.x+=c;a.mb.y+=c;a=a.mb.corner;a.tl.x-=c;a.tl.y-=c;a.tr.x-=c;a.tr.y-=c;a.br.x-=c;a.br.y-=c;a.bl.x-=c;a.bl.y-=c},toGrayscale:function(){var a=this.get("fill");a&&this.set("overlayFill",(new e.Color(a)).toGrayscale().toRgb());return this},complexity:function(){return 0},getCenter:function(){return{x:this.get("left")+this.width/2,y:this.get("top")+this.height/2}},straighten:function(){this.setAngle(this._getAngleValueForStraighten()); +return this},fxStraighten:function(a){a=a||{};var c=function(){},g=a.onComplete||c,h=a.onChange||c,l=this;e.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(b){l.setAngle(b);h()},onComplete:function(){l.setCoords();g()},onStart:function(){l.setActive(false)}});return this},fxRemove:function(a){a||(a={});var c=function(){},g=a.onComplete||c,h=a.onChange||c,l=this;e.util.animate({startValue:this.get("opacity"),endValue:0, +duration:this.FX_DURATION,onChange:function(b){l.set("opacity",b);h()},onComplete:g,onStart:function(){l.setActive(false)}});return this},_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}});e.Object.prototype.rotate=e.Object.prototype.setAngle}})(); +(function(){var e=this.fabric||(this.fabric={});if(!e.Line){e.Line=e.util.createClass(e.Object,{type:"line",initialize:function(f,a){f||(f=[0,0,0,0]);this.callSuper("initialize",a);this.set("x1",f[0]);this.set("y1",f[1]);this.set("x2",f[2]);this.set("y2",f[3]);this.set("width",this.x2-this.x1);this.set("height",this.y2-this.y1);this.set("left",this.x1+this.width/2);this.set("top",this.y1+this.height/2)},_render:function(f){f.beginPath();f.moveTo(-this.width/2,-this.height/2);f.lineTo(this.width/2, +this.height/2);var a=f.strokeStyle;f.strokeStyle=f.fillStyle;f.stroke();f.strokeStyle=a},complexity:function(){return 1},toObject:function(){return e.util.object.extend(this.callSuper("toObject"),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})}});e.Element.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" ");e.Line.fromElement=function(f,a){var c=e.parseAttributes(f,e.Element.ATTRIBUTE_NAMES);return new e.Line([c.x1||0,c.y1||0,c.x2||0,c.y2||0],e.util.object.extend(c, +a))};e.Line.fromObject=function(f){return new e.Line([f.x1,f.y1,f.x2,f.y2],f)}}})(); +(function(){var e=this.fabric||(this.fabric={}),f=Math.PI*2;if(e.Circle)console.warn("fabric.Circle is already defined.");else{e.Circle=e.util.createClass(e.Object,{type:"circle",initialize:function(a){a=a||{};this.set("radius",a.radius||0);this.callSuper("initialize",a);a=this.get("radius")*2*this.get("scaleX");this.set("width",a).set("height",a)},toObject:function(){return e.util.object.extend(this.callSuper("toObject"),{radius:this.get("radius")})},_render:function(a){a.beginPath();a.arc(0,0,this.radius, +0,f,false);this.fill&&a.fill();this.stroke&&a.stroke()},complexity:function(){return 1}});e.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity stroke stroke-width transform".split(" ");e.Circle.fromElement=function(a,c){var g=e.parseAttributes(a,e.Circle.ATTRIBUTE_NAMES);if(!("radius"in g&&g.radius>0))throw Error("value of `r` attribute is required and can not be negative");return new e.Circle(e.util.object.extend(g,c))};e.Circle.fromObject=function(a){return new e.Circle(a)}}})(); +(function(){var e=this.fabric||(this.fabric={});if(!e.Triangle){e.Triangle=e.util.createClass(e.Object,{type:"triangle",initialize:function(f){f=f||{};this.callSuper("initialize",f);this.set("width",f.width||100).set("height",f.height||100)},_render:function(f){f.beginPath();f.moveTo(-this.width/2,this.height/2);f.lineTo(0,-this.height/2);f.lineTo(this.width/2,this.height/2);this.fill&&f.fill();this.stroke&&f.stroke()},complexity:function(){return 1}});e.Triangle.fromObject=function(f){return new e.Triangle(f)}}})(); +(function(){var e=this.fabric||(this.fabric={});if(e.Ellipse)console.warn("fabric.Ellipse is already defined.");else{e.Ellipse=e.util.createClass(e.Object,{type:"ellipse",initialize:function(f){f=f||{};this.callSuper("initialize",f);this.set("rx",f.rx||0);this.set("ry",f.ry||0);this.set("width",this.get("rx")*2);this.set("height",this.get("ry")*2)},toObject:function(){return e.util.object.extend(this.callSuper("toObject"),{rx:this.get("rx"),ry:this.get("ry")})},render:function(f,a){if(!(this.rx=== +0||this.ry===0))return this.callSuper("render",f,a)},_render:function(f){f.beginPath();f.save();f.transform(1,0,0,this.ry/this.rx,0,0);f.arc(0,0,this.rx,0,Math.PI*2,false);f.restore();this.stroke&&f.stroke();this.fill&&f.fill()},complexity:function(){return 1}});e.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity stroke stroke-width transform".split(" ");e.Ellipse.fromElement=function(f,a){var c=e.parseAttributes(f,e.Ellipse.ATTRIBUTE_NAMES);return new e.Ellipse(e.util.object.extend(c,a))};e.Ellipse.fromObject= +function(f){return new e.Ellipse(f)}}})(); +(function(){var e=this.fabric||(this.fabric={});if(!e.Rect){e.Rect=e.util.createClass(e.Object,{type:"rect",options:{rx:0,ry:0},initialize:function(f){this.callSuper("initialize",f);this._initRxRy()},_initRxRy:function(){if(this.options.rx&&!this.options.ry)this.options.ry=this.options.rx;else if(this.options.ry&&!this.options.rx)this.options.rx=this.options.ry},_render:function(f){var a=this.options.rx||0,c=this.options.ry||0,g=-this.width/2,h=-this.height/2,l=this.width,b=this.height;f.beginPath(); +f.moveTo(g+a,h);f.lineTo(g+l-a,h);f.bezierCurveTo(g+l,h,g+l,h+c,g+l,h+c);f.lineTo(g+l,h+b-c);f.bezierCurveTo(g+l,h+b,g+l-a,h+b,g+l-a,h+b);f.lineTo(g+a,h+b);f.bezierCurveTo(g,h+b,g,h+b-c,g,h+b-c);f.lineTo(g,h+c);f.bezierCurveTo(g,h,g+a,h,g+a,h);f.closePath();this.fill&&f.fill();this.stroke&&f.stroke()},_normalizeLeftTopProperties:function(f){f.left&&this.set("left",f.left+this.getWidth()/2);f.top&&this.set("top",f.top+this.getHeight()/2);return this},complexity:function(){return 1}});e.Rect.ATTRIBUTE_NAMES= +"x y width height rx ry fill fill-opacity stroke stroke-width transform".split(" ");e.Rect.fromElement=function(f,a){if(!f)return null;var c=e.parseAttributes(f,e.Rect.ATTRIBUTE_NAMES);c=c;c.left=c.left||0;c.top=c.top||0;c=c;var g=new e.Rect(e.util.object.extend(a||{},c));g._normalizeLeftTopProperties(c);return g};e.Rect.fromObject=function(f){return new e.Rect(f)}}})(); +(function(){var e=this.fabric||(this.fabric={});if(e.Polyline)console.warn("fabric.Polyline is already defined");else{e.Polyline=e.util.createClass(e.Object,{type:"polyline",initialize:function(a,c){c=c||{};this.set("points",a);this.callSuper("initialize",c);this._calcDimensions()},_calcDimensions:function(){return e.Polygon.prototype._calcDimensions.call(this)},_toOrigin:function(){return e.Polygon.prototype._toOrigin.call(this)},toObject:function(){return e.Polygon.prototype.toObject.call(this)}, +_render:function(a){var c;a.beginPath();for(var g=0,h=this.points.length;g"},toObject:function(){var a=e.util.object.extend(this.callSuper("toObject"),{path:this.path});if(this.sourcePath)a.sourcePath=this.sourcePath;if(this.transformMatrix)a.transformMatrix=this.transformMatrix;return a},toDatalessObject:function(){var a=this.toObject();if(this.sourcePath)a.path=this.sourcePath;delete a.sourcePath;return a},complexity:function(){return this.path.length},set:function(a,c){this.stub&&this.stub.set(a, +c);return this.callSuper("set",a,c)},_parsePath:function(){for(var a=[],c,g,h=0,l=this.path.length;h"}, +isSameColor:function(){var f=this.getObjects()[0].get("fill");return this.getObjects().every(function(a){return a.get("fill")===f})},complexity:function(){return this.paths.reduce(function(f,a){return f+(a&&a.complexity?a.complexity():0)},0)},toGrayscale:function(){for(var f=this.paths.length;f--;)this.paths[f].toGrayscale();return this},getObjects:function(){return this.paths}});e.PathGroup.fromObject=function(f){for(var a=f.paths,c=0,g=a.length;c"},getObjects:function(){return this.objects},add:function(f){this._restoreObjectsState();this.objects.push(f);f.setActive(true);this._calcBounds();this._updateObjectsCoords();return this},remove:function(f){this._restoreObjectsState();e.util.removeFromArray(this.objects,f);f.setActive(false);this._calcBounds(); +this._updateObjectsCoords();return this},size:function(){return this.getObjects().length},set:function(f,a){if(typeof a=="function")this.set(f,a(this[f]));else if(f==="fill"||f==="opacity"){var c=this.objects.length;for(this[f]=a;c--;)this.objects[c].set(f,a)}else this[f]=a;return this},contains:function(f){return this.objects.indexOf(f)>-1},toObject:function(){return e.util.object.extend(this.callSuper("toObject"),{objects:e.util.array.invoke(this.objects,"clone")})},render:function(f){f.save(); +this.transform(f);for(var a=Math.max(this.scaleX,this.scaleY),c=0,g=this.objects.length;cf.x&&h-cf.y},toGrayscale:function(){for(var f=this.objects.length;f--;)this.objects[f].toGrayscale()}});e.Group.fromObject= +function(f){return new e.Group(f.objects,f)}}})(); +(function(){var e=this.fabric||(this.fabric={});if(e.Text)console.warn("fabric.Text is already defined");else if(e.Object){e.Text=e.util.createClass(e.Object,{options:{top:10,left:10,fontsize:20,fontweight:100,fontfamily:"Modernist_One_400",path:null},type:"text",initialize:function(f,a){this.originalState={};this.initStateProperties();this.text=f;this.setOptions(a);e.util.object.extend(this,this.options);this.theta=this.angle*(Math.PI/180);this.width=this.getWidth();this.setCoords()},initStateProperties:function(){var f; +if((f=this.constructor)&&(f=f.superclass)&&(f=f.prototype)&&(f=f.stateProperties)&&f.clone){this.stateProperties=f.clone();this.stateProperties.push("fontfamily","fontweight","path")}},toString:function(){return"#"},_render:function(f){var a=Cufon.textOptions||(Cufon.textOptions={});a.left=this.left;a.top=this.top;a.context=f;a.color=this.fill;var c=this._initDummyElement();this.transform(f);Cufon.replaceElement(c, +{separate:"none",fontFamily:this.fontfamily});this.width=a.width;this.height=a.height},_initDummyElement:function(){var f=document.createElement("div");f.innerHTML=this.text;f.style.fontSize="40px";f.style.fontWeight="400";f.style.fontStyle="normal";f.style.letterSpacing="normal";f.style.color="#000000";f.style.fontWeight="600";f.style.fontFamily="Verdana";return f},render:function(f){f.save();this._render(f);if(this.active){this.drawBorders(f);this.drawCorners(f)}f.restore()},toObject:function(){return e.util.object.extend(this.callSuper("toObject"), +{text:this.text,fontsize:this.fontsize,fontweight:this.fontweight,fontfamily:this.fontfamily,path:this.path})},setColor:function(f){this.set("fill",f);return this},setFontsize:function(f){this.set("fontsize",f);this.setCoords();return this},getText:function(){return this.text},setText:function(f){this.set("text",f);this.setCoords();return this},set:function(f,a){this[f]=a;if(f==="fontfamily")this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+a+"$3");return this}});e.Text.fromObject=function(f){return new e.Text(f.text, +e.util.object.clone(f))};e.Text.fromElement=function(){}}else console.warn("fabric.Text requires fabric.Object")})(); +(function(){if(!this.fabric)this.fabric={};if(this.fabric.Image)console.warn("fabric.Image is already defined.");else if(fabric.Object){fabric.Image=fabric.util.createClass(fabric.Object,{maxwidth:null,maxheight:null,active:false,bordervisibility:false,cornervisibility:false,type:"image",__isGrayscaled:false,initialize:function(e,f){this.callSuper("initialize",f);this._initElement(e);this._initConfig(f||{})},getElement:function(){return this._element},setElement:function(e){this._element=e;return this}, +getNormalizedSize:function(e,f,a){if(a&&f&&e.width>e.height&&e.width/e.heighte.width||e.height>a)){normalizedWidth=Math.floor(e.width*a/e.height);normalizedHeight=a}else if(f&&f'},clone:function(e){this.constructor.fromObject(this.toObject(),e)},toGrayscale:function(e){if(!this.__isGrayscaled){var f=this.getElement(),a=document.createElement("canvas"),c=document.createElement("img"),g=this;a.width=f.width;a.height=f.height;a.getContext("2d").drawImage(f,0,0);fabric.Element.toGrayscale(a);c.onload=function(){g.setElement(c);e&&e();c.onload=a=f=imageData=null};c.width=f.width;c.height=f.height;c.src=a.toDataURL("image/png"); +this.__isGrayscaled=true;return this}},_render:function(e){var f=this.getOriginalSize();e.drawImage(this.getElement(),-f.width/2,-f.height/2,f.width,f.height)},_adjustWidthHeightToBorders:function(e){if(e){this.currentBorder=this.borderwidth;this.width+=2*this.currentBorder;this.height+=2*this.currentBorder}else this.currentBorder=0},_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){this.setOptions(e);this._setBorder();this._setWidthHeight(e)},_setBorder:function(){this.currentBorder=this.bordervisibility?this.borderwidth:0},_setWidthHeight:function(){var e=2*this.currentBorder;this.width=(this.getElement().width||0)+e;this.height=(this.getElement().height||0)+e}});fabric.Image.CSS_CANVAS="canvas-img";fabric.Image.fromObject=function(e,f){var a=document.createElement("img"),c=e.src;if(e.width)a.width= +e.width;if(e.height)a.height=e.height;a.onload=function(){f&&f(new fabric.Image(a,e));a=a.onload=null};a.src=c};fabric.Image.fromURL=function(e,f,a){var c=document.createElement("img");c.onload=function(){f&&f(new fabric.Image(c,a));c=c.onload=null};c.src=e}}else console.warn("fabric.Object is required for fabric.Image initialization")})(); diff --git a/dist/all.min-via-goog-cc.js.gz b/dist/all.min-via-goog-cc.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..85b87ec4cddaca875ccb87ffa67c480fc745a19e GIT binary patch literal 21953 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 literal 0 HcmV?d00001 diff --git a/test/benchmark/benchmark.js b/test/benchmark/benchmark.js index 338deb01..0b2ab2cd 100644 --- a/test/benchmark/benchmark.js +++ b/test/benchmark/benchmark.js @@ -35,7 +35,6 @@ radius: getRandomInt(10, 50), fill: '#' + getRandomColor(), opacity: getRandomNum(0.5, 1), - angle: getRandomInt(0, 180), top: getRandomInt(0 + offset, c._oConfig.height - offset), left: getRandomInt(0 + offset, c._oConfig.width - offset) }));