From 7ee772a322c5ce14527048cf046c0a3a73b860af Mon Sep 17 00:00:00 2001 From: kangax Date: Fri, 4 Jan 2013 19:18:39 +0100 Subject: [PATCH] Build distribution --- dist/all.js | 23 ++++++++++++++++------- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 42981 -> 43024 bytes 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/dist/all.js b/dist/all.js index 7abbaaa4..ce6084a9 100644 --- a/dist/all.js +++ b/dist/all.js @@ -2083,8 +2083,10 @@ fabric.Observable.off = fabric.Observable.stopObserving; } var klass = getKlass(o.type); if (klass.async) { - klass.fromObject(o, function (o) { - enlivenedObjects[index] = o; + klass.fromObject(o, function (o, error) { + if (!error) { + enlivenedObjects[index] = o; + } onLoaded(); }); } @@ -13881,8 +13883,15 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { var instance = new fabric.Image(img, object); callback && callback(instance); - img = img.onload = null; - }; + img = img.onload = img.onerror = null; + }; + + /** @ignore */ + img.onerror = function(e) { + fabric.log('Error loading ' + img.src); + callback && callback(null, true); + img = img.onload = img.onerror = null; + }; img.src = src; }; @@ -15836,18 +15845,18 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { }); } - fabric.util.loadImage = function(url, callback) { + fabric.util.loadImage = function(url, callback, context) { var img = new Image(); if (url && url.indexOf('data') === 0) { img.src = img._src = url; - callback(img); + callback && callback.call(context, img); } else if (url) { request(url, 'binary', function(body) { img.src = new Buffer(body, 'binary'); // preserving original url, which seems to be lost in node-canvas img._src = url; - callback(img); + callback && callback.call(context, img); }); } }; diff --git a/dist/all.min.js b/dist/all.min.js index cecfb58e..758904d2 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ -/* build: `node build.js modules=ALL` *//*! Fabric.js Copyright 2008-2012, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.0"};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(f,a,c,n));if(i>r||o()){e.onComplete&&e.onComplete();return}l(h)}()}function c(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 h(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 p(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function d(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;r=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(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-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});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),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" +/* build: `node build.js modules=ALL` *//*! Fabric.js Copyright 2008-2012, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.0"};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(f,a,c,n));if(i>r||o()){e.onComplete&&e.onComplete();return}l(h)}()}function c(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 h(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,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function p(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function d(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;r=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(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-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});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),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,fabric.util.getElementPosition=f}(),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)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},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(''),this.overlayImage&&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){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){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:-n),t.ey-(r>0?0:-r),i,s),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var o=t.ex+h-(n>0?0:i),u=t.ey+h-(r>0?0:s);e.beginPath(),this.drawDashedLine(e,o,u,o+i,u,this.selectionDashArray),this.drawDashedLine(e,o,u+s-1,o+i,u+s-1,this.selectionDashArray),this.drawDashedLine(e,o,u,o,u+s,this.selectionDashArray),this.drawDashedLine(e,o+i-1,u,o+i-1,u+s,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+h-(n>0?0:i),t.ey+h-(r>0?0:s),i,s)},drawDashedLine:function(e,t,n,r,i,s){var o=r-t,f=i-n,l=u(o*o+f*f),c=a(f,o),h=s.length,p=0,d=!0;e.save(),e.translate(t,n),e.moveTo(0,0),e.rotate(c),t=0;while(l>t)t+=s[p++%h],t>l&&(t=l),e[d?"lineTo":"moveTo"](t,0),d=!d;e.restore()},_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(l(n,i),l(r,s)),a=new fabric.Point(c(n,i),c(r,s));for(var f=0,h=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);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var 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;u"},_constrainScale:function(e){return Math.abs(e)1?this.strokeWidth:0,t=this.padding,n=o(this.angle);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));var r=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),i=Math.atan(this.currentHeight/this.currentWidth),s=Math.cos(i+n)*r,u=Math.sin(i+n)*r,a=Math.sin(n),f=Math.cos(n),l=this.getCenterPoint(),c={x:l.x-s,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},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 t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(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",b=typeof G_vmlCanvasManager!="undefined";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,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||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,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new u;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(this.angle),n=o(45-this.angle),r=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,i=r*Math.cos(n),s=r*Math.sin(n),u=Math.sin(t),a=Math.cos(t);e.tl.corner={tl:{x:e.tl.x-s,y:e.tl.y-i},tr:{x:e.tl.x+i,y:e.tl.y-s},bl:{x:e.tl.x-i,y:e.tl.y+s},br:{x:e.tl.x+s,y:e.tl.y+i}},e.tr.corner={tl:{x:e.tr.x-s,y:e.tr.y-i},tr:{x:e.tr.x+i,y:e.tr.y-s},br:{x:e.tr.x+s,y:e.tr.y+i},bl:{x:e.tr.x-i,y:e.tr.y+s}},e.bl.corner={tl:{x:e.bl.x-s,y:e.bl.y-i},bl:{x:e.bl.x-i,y:e.bl.y+s},br:{x:e.bl.x+s,y:e.bl.y+i},tr:{x:e.bl.x+i,y:e.bl.y-s}},e.br.corner={tr:{x:e.br.x+i,y:e.br.y-s},bl:{x:e.br.x-i,y:e.br.y+s},br:{x:e.br.x+s,y:e.br.y+i},tl:{x:e.br.x-s,y:e.br.y-i}},e.ml.corner={tl:{x:e.ml.x-s,y:e.ml.y-i},tr:{x:e.ml.x+i,y:e.ml.y-s},bl:{x:e.ml.x-i,y:e.ml.y+s},br:{x:e.ml.x+s,y:e.ml.y+i}},e.mt.corner={tl:{x:e.mt.x-s,y:e.mt.y-i},tr:{x:e.mt.x+i,y:e.mt.y-s},bl:{x:e.mt.x-i,y:e.mt.y+s},br:{x:e.mt.x+s,y:e.mt.y+i}},e.mr.corner={tl:{x:e.mr.x-s,y:e.mr.y-i},tr:{x:e.mr.x+i,y:e.mr.y-s},bl:{x:e.mr.x-i,y:e.mr.y+s},br:{x:e.mr.x+s,y:e.mr.y+i}},e.mb.corner={tl:{x:e.mb.x-s,y:e.mb.y-i},tr:{x:e.mb.x+i,y:e.mb.y-s},bl:{x:e.mb.x-i,y:e.mb.y+s},br:{x:e.mb.x+s,y:e.mb.y+i}},e.mtr.corner={tl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y-i-a*this.rotatingPointOffset},tr:{x:e.mtr.x+i+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},bl:{x:e.mtr.x-i+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset},br:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y+i-a*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(e){return this.toObject(e)},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;n=n.toString(),r||(r={}),"from"in r||(r.from=this.get(e)),~n.indexOf("=")?n=this.get(e)+parseFloat(n.replace("=","")):n=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}});var l=t.Object.prototype;for(var c=l.stateProperties.length;c--;){var h=l.stateProperties[c],p=h.charAt(0).toUpperCase()+h.slice(1),d="set"+p,v="get"+p;l[v]||(l[v]=function(e){return new Function('return this.get("'+e+'")')}(h)),l[d]||(l[d]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(h))}t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),n(t.Object,{NUM_FRACTION_DIGITS:2})}(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(e){return n(this.callSuper("toObject",e),{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(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity: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");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},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(e){return r(this.callSuper("toObject",e),{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.group?e.globalAlpha*this.opacity: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 r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;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(),this.x=0,this.y=0},_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.group?e.globalAlpha*this.opacity: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(e){return n(this.callSuper("toObject",e),{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,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},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(e){return t.Polygon.prototype.toObject.call(this,e)},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(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},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;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};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},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){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(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=0,n=this.objects.length;t'+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),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._element,-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.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),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)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0],this.tmpCtx=fabric.document.createElement("canvas").getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_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,textBackgroundColor:this.textBackgroundColor}),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"&&this.textAlign!=="justify"&&(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"&&this.textAlign!=="justify"&&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)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-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(e){return n(this.callSuper("toObject",e),{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,textBackgroundColor:this.textBackgroundColor,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;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!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.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),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){var n=new Image;e&&e.indexOf("data")===0?(n.src=n._src=e,t(n)):e&&request(e,"binary",function(r){n.src=new Buffer(r,"binary"),n._src=e,t(n)})},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 +,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(e){return t(this.callSuper("toObject",e),{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,t){this.constructor.fromObject(this.toObject(t),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._element,-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=n.onerror=null},n.onerror=function(e){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=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.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),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)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0],this.tmpCtx=fabric.document.createElement("canvas").getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_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,textBackgroundColor:this.textBackgroundColor}),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"&&this.textAlign!=="justify"&&(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"&&this.textAlign!=="justify"&&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)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-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(e){return n(this.callSuper("toObject",e),{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,textBackgroundColor:this.textBackgroundColor,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;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!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.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),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,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,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 562fdcc420d83c6d96b521527aeba1b705af1932..ada1a0f34f05991b47366f9999c1d36b29bfa013 100644 GIT binary patch delta 32858 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%0DuKgckwq8DYuN7bs>MA| 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 Jdrn_l0su(xOl|-G delta 32740 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