From 2f1383a713e4f0a56d4db51a8201f4f738abf61e Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 3 Jun 2013 18:32:29 +0200 Subject: [PATCH] Fix text rendering again. Version 1.1.19 --- HEADER.js | 2 +- dist/all.js | 8 +++++--- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 49574 -> 49578 bytes package.json | 2 +- src/shapes/text.class.js | 6 ++++-- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/HEADER.js b/HEADER.js index 4a877745..df2d95e8 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.1.18" }; +var fabric = fabric || { version: "1.1.19" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index a9c83f7f..5a62f7a5 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.1.18" }; +var fabric = fabric || { version: "1.1.19" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -17088,14 +17088,16 @@ fabric.Image.filters.Tint.fromObject = function(object) { */ _getTopOffset: function() { if (fabric.isLikelyNode) { - if (this.originY === 'center') { + if (this.originY === 'center' || this.originY === 'top') { return -this.height / 2; } else if (this.originY === 'bottom') { return -this.height; } + return 0; } - return 0; + // in browser, text drawing always starts at vertical center + return -this.height / 2; }, /** diff --git a/dist/all.min.js b/dist/all.min.js index fb943261..cdb63b75 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,6 +1,6 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.18"};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;_-1},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=t.complexity?t.complexity():0,e},0)},toGrayscale:function(){return this.forEachObject(function(e){e.toGrayscale()})}},function(){function n(e,t){var n=e.indexOf(t);return n!==-1&&e.splice(n,1),e}function r(e,t){return Math.floor(Math.random()*(t-e+1))+e}function s(e){return e*i}function o(e){return e/i}function u(e,t,n){var r=Math.sin(n),i=Math.cos(n);e.subtractEquals(t);var s=e.x*i-e.y*r,o=e.x*r+e.y*i;return(new fabric.Point(s,o)).addEquals(t)}function a(e,t){return parseFloat(Number(e).toFixed(t))}function f(){return!1}function l(e){e||(e={});var t=+(new Date),n=e.duration||500,r=t+n,i,s=e.onChange||function(){},o=e.abort||function(){return!1},u=e.easing||function(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t},a="startValue"in e?e.startValue:0,f="endValue"in e?e.endValue:100,l=e.byValue||f-a;e.onStart&&e.onStart(),function c(){i=+(new Date);var f=i>r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function d(e,t,n){if(e){var r=fabric.util.createImage();r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function v(e,t){function n(){++i===s&&t&&t(r)}var r=[],i=0,s=e.length;e.forEach(function(e,t){if(!e.type)return;var i=fabric.util.getKlass(e.type);i.async?i.fromObject(e,function(e,i){i||(r[t]=e),n()}):(r[t]=i.fromObject(e),n())})}function m(e,t,n){var r;return e.length>1?r=new fabric.PathGroup(e,t):r=e[0],typeof n!="undefined"&&r.setSourcePath(n),r}function g(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function b(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function w(){return fabric.isLikelyNode?new(require("canvas").Image):fabric.document.createElement("img")}function E(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function S(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}function x(e,t){var n=[[e[0],e[2],e[4]],[e[1],e[3],e[5]],[0,0,1]],r=[[t[0],t[2],t[4]],[t[1],t[3],t[5]],[0,0,1]],i=[];for(var s=0;s<3;s++){i[s]=[];for(var o=0;o<3;o++){var u=0;for(var a=0;a<3;a++)u+=n[s][a]*r[a][o];i[s][o]=u}}return[i[0][0],i[1][0],i[0][1],i[1][1],i[0][2],i[1][2]]}function T(e){return(String(e).match(/function[^{]*\{([\s\S]*)\}/)||{})[1]}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.getKlass=p,fabric.util.loadImage=d,fabric.util.enlivenObjects=v,fabric.util.groupSVGElements=m,fabric.util.populateWithProperties=g,fabric.util.drawDashedLine=y,fabric.util.createCanvasElement=b,fabric.util.createImage=w,fabric.util.createAccessors=E,fabric.util.clipContext=S,fabric.util.multiplyTransformMatrices=x,fabric.util.getFunctionBody=T}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(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"),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;_-1},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=t.complexity?t.complexity():0,e},0)},toGrayscale:function(){return this.forEachObject(function(e){e.toGrayscale()})}},function(){function n(e,t){var n=e.indexOf(t);return n!==-1&&e.splice(n,1),e}function r(e,t){return Math.floor(Math.random()*(t-e+1))+e}function s(e){return e*i}function o(e){return e/i}function u(e,t,n){var r=Math.sin(n),i=Math.cos(n);e.subtractEquals(t);var s=e.x*i-e.y*r,o=e.x*r+e.y*i;return(new fabric.Point(s,o)).addEquals(t)}function a(e,t){return parseFloat(Number(e).toFixed(t))}function f(){return!1}function l(e){e||(e={});var t=+(new Date),n=e.duration||500,r=t+n,i,s=e.onChange||function(){},o=e.abort||function(){return!1},u=e.easing||function(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t},a="startValue"in e?e.startValue:0,f="endValue"in e?e.endValue:100,l=e.byValue||f-a;e.onStart&&e.onStart(),function c(){i=+(new Date);var f=i>r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function d(e,t,n){if(e){var r=fabric.util.createImage();r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function v(e,t){function n(){++i===s&&t&&t(r)}var r=[],i=0,s=e.length;e.forEach(function(e,t){if(!e.type)return;var i=fabric.util.getKlass(e.type);i.async?i.fromObject(e,function(e,i){i||(r[t]=e),n()}):(r[t]=i.fromObject(e),n())})}function m(e,t,n){var r;return e.length>1?r=new fabric.PathGroup(e,t):r=e[0],typeof n!="undefined"&&r.setSourcePath(n),r}function g(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function b(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function w(){return fabric.isLikelyNode?new(require("canvas").Image):fabric.document.createElement("img")}function E(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function S(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}function x(e,t){var n=[[e[0],e[2],e[4]],[e[1],e[3],e[5]],[0,0,1]],r=[[t[0],t[2],t[4]],[t[1],t[3],t[5]],[0,0,1]],i=[];for(var s=0;s<3;s++){i[s]=[];for(var o=0;o<3;o++){var u=0;for(var a=0;a<3;a++)u+=n[s][a]*r[a][o];i[s][o]=u}}return[i[0][0],i[1][0],i[0][1],i[1][1],i[0][2],i[1][2]]}function T(e){return(String(e).match(/function[^{]*\{([\s\S]*)\}/)||{})[1]}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.getKlass=p,fabric.util.loadImage=d,fabric.util.enlivenObjects=v,fabric.util.groupSVGElements=m,fabric.util.populateWithProperties=g,fabric.util.drawDashedLine=y,fabric.util.createCanvasElement=b,fabric.util.createImage=w,fabric.util.createAccessors=E,fabric.util.clipContext=S,fabric.util.multiplyTransformMatrices=x,fabric.util.getFunctionBody=T}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(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,n,r={left:0,top:0},i=e&&e.ownerDocument,s={left:0,top:0},o={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!i)return{left:0,top:0};for(var u in o)s[o[u]]+=parseInt(f(e,u),10)||0;return t=i.documentElement,typeof e.getBoundingClientRect!="undefined"&&(r=e.getBoundingClientRect()),i!=null&&i===i.window?n=i:n=i.nodeType===9&&(i.defaultView||i.parentWindow),{left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)+s.left,top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0)+s.top}}function f(e,t){e.style||(e.style={});if(fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle)return fabric.document.defaultView.getComputedStyle(e,null)[t];var n=e.style[t];return!n&&e.currentStyle&&(n=e.currentStyle[t]),n}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t}),function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.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.getElementStyle=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){w.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),w.has(e,function(r){r?w.get(e,function(e){var t=S(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function S(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 x(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 T(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function N(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}function C(e){var t=e.getElementsByTagName("linearGradient"),n=e.getElementsByTagName("radialGradient"),r,i,s={};i=t.length;for(;i--;)r=t[i],s[r.getAttribute("id")]=r;i=n.length;for(;i--;)r=n[i],s[r.getAttribute("id")]=r;return s}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s=t.util.toFixed,o=t.util.multiplyTransformMatrices;t.SHARED_ATTRIBUTES=["transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width"];var u={"fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight",cx:"left",x:"left",r:"radius","stroke-dasharray":"strokeDashArray","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration",cy:"top",y:"top",transform:"transformMatrix"},a={stroke:"strokeOpacity",fill:"fillOpacity"};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 n(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function r(e,t){e[2]=t[0]}function i(e,t){e[1]=t[0]}function s(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var o=[1,0,0,1,0,0],u="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",a="(?:\\s+,?\\s*|,\\s*)",f="(?:(skewX)\\s*\\(\\s*("+u+")\\s*\\))",l="(?:(skewY)\\s*\\(\\s*("+u+")\\s*\\))",c="(?:(rotate)\\s*\\(\\s*("+u+")(?:"+a+"("+u+")"+a+"("+u+"))?\\s*\\))",h="(?:(scale)\\s*\\(\\s*("+u+")(?:"+a+"("+u+"))?\\s*\\))",p="(?:(translate)\\s*\\(\\s*("+u+")(?:"+a+"("+u+"))?\\s*\\))",d="(?:(matrix)\\s*\\(\\s*("+u+")"+a+"("+u+")"+a+"("+u+")"+a+"("+u+")"+a+"("+u+")"+a+"("+u+")"+"\\s*\\))",v="(?:"+d+"|"+p+"|"+h+"|"+c+"|"+f+"|"+l+")",m="(?:"+v+"(?:"+a+v+")*"+")",g="^\\s*(?:"+m+"?)\\s*$",y=new RegExp(g),b=new RegExp(v,"g");return function(u){var a=o.concat(),f=[];if(!u||u&&!y.test(u))return a;u.replace(b,function(t){var u=(new RegExp(v)).exec(t).filter(function(e){return e!==""&&e!=null}),l=u[1],c=u.slice(2).map(parseFloat);switch(l){case"translate":s(a,c);break;case"rotate":e(a,c);break;case"scale":n(a,c);break;case"skewX":r(a,c);break;case"skewY":i(a,c);break;case"matrix":a=c}f.push(a.concat()),a=o.concat()});var l=f[0];while(f.length>1)f.shift(),l=t.util.multiplyTransformMatrices(l,f[0]);return l}}(),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,h=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(){function e(e){var t=e.getAttribute("style"),n=e.getAttribute("offset"),r,i;n=parseFloat(n)/(/%$/.test(n)?100:1);if(t){var s=t.split(/\s*;\s*/);s[s.length-1]===""&&s.pop();for(var o=s.length;o--;){var u=s[o].split(/\s*:\s*/),a=u[0].trim(),f=u[1].trim();a==="stop-color"?r=f:a==="stop-opacity"&&(i=f)}}return r||(r=e.getAttribute("stop-color")),i||(i=e.getAttribute("stop-opacity")),r=(new fabric.Color(r)).toRgb(),{offset:n,color:r,opacity:i}}function t(e,t){for(var n in t){if(typeof t[n]=="string"&&/^\d+%$/.test(t[n])){var r=parseFloat(t[n],10);if(n==="x1"||n==="x2"||n==="r2")t[n]=fabric.util.toFixed(e.width*r/100,2);else if(n==="y1"||n==="y2")t[n]=fabric.util.toFixed(e.height*r/100,2)}if(n==="x1"||n==="x2")t[n]-=fabric.util.toFixed(e.width/2,2);else if(n==="y1"||n==="y2")t[n]-=fabric.util.toFixed(e.height/2,2)}}function n(e,t){for(var n in t){if(n==="x1"||n==="x2")t[n]+=fabric.util.toFixed(e.width/2,2);else if(n==="y1"||n==="y2")t[n]+=fabric.util.toFixed(e.height/2,2);if(n==="x1"||n==="x2"||n==="r2")t[n]=fabric.util.toFixed(t[n]/e.width*100,2)+"%";else if(n==="y1"||n==="y2")t[n]=fabric.util.toFixed(t[n]/e.height*100,2)+"%"}}fabric.Gradient=fabric.util.createClass({initialize:function(e){e||(e={});var t={};this.id=fabric.Object.__uid++,this.type=e.type||"linear",t={x1:e.coords.x1||0,y1:e.coords.y1||0,x2:e.coords.x2||0,y2:e.coords.y2||0},this.type==="radial"&&(t.r1=e.coords.r1||0,t.r2=e.coords.r2||0),this.coords=t,this.gradientUnits=e.gradientUnits||"objectBoundingBox",this.colorStops=e.colorStops.slice()},addColorStop:function(e){for(var t in e){var n=new fabric.Color(e[t]);this.colorStops.push({offset:t,color:n.toRgb(),opacity:n.getAlpha()})}return this},toObject:function(){return{type:this.type,coords:this.coords,gradientUnits:this.gradientUnits,colorStops:this.colorStops}},toSVG:function(e,t){var r=fabric.util.object.clone(this.coords),i;this.colorStops.sort(function(e,t){return e.offset-t.offset}),t&&this.gradientUnits==="userSpaceOnUse"?(r.x1+=e.width/2,r.y1+=e.height/2,r.x2+=e.width/2,r.y2+=e.height/2):this.gradientUnits==="objectBoundingBox"&&n(e,r),this.type==="linear"?i=["']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")},toLive:function(e){var t;if(!this.type)return;this.type==="linear"?t=e.createLinearGradient(this.coords.x1,this.coords.y1,this.coords.x2,this.coords.y2):this.type==="radial"&&(t=e.createRadialGradient(this.coords.x1,this.coords.y1,this.coords.r1,this.coords.x2,this.coords.y2,this.coords.r2));for(var n=0;n0&&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])}function r(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}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;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t||(t=n.sourceFromHsl(e)),t&&this.setSource(t)},_rgbToHsl:function(e,n,r){e/=255,n/=255,r/=255;var i,s,o,u=t.util.array.max([e,n,r]),a=t.util.array.min([e,n,r]);o=(u+a)/2;if(u===a)i=s=0;else{var f=u-a;s=o>.5?f/(2-u-a):f/(u+a);switch(u){case e:i=(n-r)/f+(n',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');var n=this.getActiveGroup();n&&this.discardActiveGroup();for(var r=0,i=this.getObjects(),s=i.length;r"),t.join("")},remove:function(e){return this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared")),fabric.Collection.remove.call(this,e)},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&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&&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,f=u.data.length;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(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.lastRenderedObjectWithControlsAboveOverlay.visible&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))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._objects[o].visible&&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"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"&&e!=="clipTo"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e),this.stroke&&(e.lineWidth=this.strokeWidth,e.lineCap=this.strokeLineCap,e.lineJoin=this.strokeLineJoin,e.miterLimit=this.strokeMiterLimit,e.strokeStyle=this.stroke.toLive?this.stroke.toLive(e):this.stroke),this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},_renderFill:function(e){if(!this.fill)return;this.fill.toLive&&(e.save(),e.translate(-this.width/2+this.fill.offsetX||0,-this.height/2+this.fill.offsetY||0)),e.fill(),this.fill.toLive&&e.restore(),this.shadow&&!this.shadow.affectStroke&&this._removeShadow(e)},_renderStroke:function(e){if(!this.stroke)return;e.save(),this.strokeDashArray?(1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray),o?(e.setLineDash(this.strokeDashArray),this._stroke&&this._stroke(e)):this._renderDashedStroke&&this._renderDashedStroke(e),e.stroke()):this._stroke?this._stroke(e):e.stroke(),this._removeShadow(e),e.restore()},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){var n=this.toDataURL();return t.util.loadImage(n,function(n){e&&e(new t.Image(n))}),this},toDataURL:function(e){e||(e={});var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);e.format==="jpeg"&&(r.backgroundColor="#fff");var i={active:this.get("active"),left:this.getLeft(),top:this.getTop()};this.set({active:!1,left:n.width/2,top:n.height/2}),r.add(this);var s=r.toDataURL(e);return this.set(i).setCoords(),r.dispose(),r=null,s},isType:function(e){return this.type===e},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)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){return this.set("fill",new t.Pattern(e))},setShadow:function(e){return this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object"){var e=[],t,n;for(t in arguments[0])e.push(t);for(var r=0,i=e.length;re.x&&n.left+n.widthe.y&&n.top+n.height=e.y&&f.d.y>=e.y)continue;f.o.x===f.d.x&&f.o.x>=e.x?(o=f.o.x,u=e.y):(n=0,r=(f.d.y-f.o.y)/(f.d.x-f.o.x),i=e.y-n*e.x,s=f.o.y-r*f.o.x,o=-(i-s)/(n-r),u=i+n*o),o>=e.x&&(a+=1);if(a===2)break}return a},getBoundingRectWidth:function(){return this.getBoundingRect().width},getBoundingRectHeight:function(){return this.getBoundingRect().height},getBoundingRect:function(){this.oCoords||this.setCoords();var e=[this.oCoords.tl.x,this.oCoords.tr.x,this.oCoords.br.x,this.oCoords.bl.x],t=fabric.util.array.min(e),n=fabric.util.array.max(e),r=Math.abs(t-n),i=[this.oCoords.tl.y,this.oCoords.tr.y,this.oCoords.br.y,this.oCoords.bl.y],s=fabric.util.array.min(i),o=fabric.util.array.max(i),u=Math.abs(s-o);return{left:t,top:s,width:r,height:u}},getWidth:function(){return this.width*this.scaleX},getHeight:function(){return this.height*this.scaleY},_constrainScale:function(e){return Math.abs(e)1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(isFinite(this.currentHeight/this.currentWidth)?this.currentHeight/this.currentWidth:0),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,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:m.x,y:m.y};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords&&this._setCornerCoords(),this}})}(),fabric.util.object.extend(fabric.Object.prototype,{hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){return this.originalState={},this.saveState(),this}}),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner),o=this._findCrossPoints({x:i,y:s},u);if(o!==0&&o%2===1)return this.__corner=a,a}return!1},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return this;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},drawControls:function(e){if(!this.hasControls)return this;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}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1},i=t.StaticCanvas.supports("setLineDash");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",Math.abs(this.x2-this.x1)||1),this.set("height",Math.abs(this.y2-this.y1)||1),this.set("left","left"in e?e.left:Math.min(this.x1,this.x2)+this.width/2),this.set("top","top"in e?e.top:Math.min(this.y1,this.y2)+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath();var t=this.group&&this.group.type!=="group";t&&!this.transformMatrix&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top);if(!this.strokeDashArray||this.strokeDashArray&&i){var n=this.x1<=this.x2?-1:1,r=this.y1<=this.y2?-1:1;e.moveTo(this.width===1?0:n*this.width/2,this.height===1?0:r*this.height/2),e.lineTo(this.width===1?0:n*-1*this.width/2,this.height===1?0:r*-1*this.height/2)}e.lineWidth=this.strokeWidth;var s=e.strokeStyle;e.strokeStyle=this.stroke||e.fillStyle,this._renderStroke(e),e.strokeStyle=s},_renderDashedStroke:function(e){var n=this.width===1?0:-this.width/2,r=this.height===1?0:-this.height/2;e.beginPath(),t.util.drawDashedLine(e,n,r,-n,-r,this.strokeDashArray),e.closePath()},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(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")},complexity:function(){return 1}}),t.Line.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".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(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_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._renderFill(e),this._renderStroke(e)},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=t.SHARED_ATTRIBUTES.concat("cx cy r".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._renderFill(e),this._renderStroke(e)},_renderDashedStroke:function(e){var n=this.width/2,r=this.height/2;e.beginPath(),t.util.drawDashedLine(e,-n,r,0,-r,this.strokeDashArray),t.util.drawDashedLine(e,0,-r,n,r,this.strokeDashArray),t.util.drawDashedLine(e,n,r,-n,r,this.strokeDashArray),e.closePath()},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")},complexity:function(){return 1}}),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",rx:0,ry:0,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(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.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._renderFill(e),this._renderStroke(e),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("cx cy rx ry".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,strokeDashArray:null,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=e.x||0,this.y=e.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,u=this.group&&this.group.type!=="group";e.beginPath(),e.globalAlpha=u?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&u&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&u&&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._renderFill(e),this._renderStroke(e)},_renderDashedStroke:function(e){var n=-this.width/2,r=-this.height/2,i=this.width,s=this.height;e.beginPath(),t.util.drawDashedLine(e,n,r,n+i,r,this.strokeDashArray),t.util.drawDashedLine(e,n+i,r,n+i,r+s,this.strokeDashArray),t.util.drawDashedLine(e,n+i,r+s,n,r+s,this.strokeDashArray),t.util.drawDashedLine(e,n,r+s,n,r,this.strokeDashArray),e.closePath()},_normalizeLeftTopProperties:function(e){return"left"in e&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),"top"in e&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0,x:this.get("x"),y:this.get("y")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},complexity:function(){return 1}}),t.Rect.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y rx ry width height".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,r=t.util.array.min;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),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'),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;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=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n=[],r,i,s=/(-?\.\d+)|(-?\d+(\.\d+)?)/g,o,u;for(var a=0,f,l=this.path.length;ad)for(var v=1,m=f.length;v"];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;if(t.Group)return;var o={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,t.Collection,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;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.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this.forEachObject(function(e){e.set("active",!0),e.group=this},this),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),this.forEachObject(function(e){e.set("active",!0),e.group=this},this),this.remove(e),this._calcBounds(),this._updateObjectsCoords(),this},_onObjectAdded:function(e){e.group=this},_onObjectRemoved:function(e){delete e.group,e.set("active",!1)},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!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},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){if(!this.visible)return;e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=0,s=this._objects.length;i'+e.join("")+""},get:function(e){if(e in o){if(this[e])return this[e];for(var t=0,n=this._objects.length;t','');if(this.stroke||this.strokeDashArray){var t=this.fill;this.fill=null,e.push("'),this.fill=t}return e.push(""),e.join("")},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=this._originalImage,n=fabric.util.createCanvasElement(),r=fabric.util.createImage(),i=this;n.width=t.width,n.height=t.height,n.getContext("2d").drawImage(t,0,0,t.width,t.height),this.filters.forEach(function(e){e&&e.applyTo(n)}),r.width=t.width,r.height=t.height;if(fabric.isLikelyNode){var s=n.toDataURL("image/png").substring(22);r.src=new Buffer(s,"base64"),i._element=r,e&&e()}else r.onload=function(){i._element=r,e&&e(),r.onload=n=t=null},r.src=n.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(){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){fabric.util.loadImage(e,function(e){t(new fabric.Image(e,n))})},fabric.Image.ATTRIBUTE_NAMES=fabric.SHARED_ATTRIBUTES.concat("x y width height xlink:href".split(" ")),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},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.set("active",!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||{},fabric.Image.filters.Brightness=fabric.util.createClass({type:"Brightness",initialize:function(e){e=e||{},this.brightness=e.brightness||100},applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=this.brightness;for(var s=0,o=r.length;s=0&&N=0&&Co&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.object.clone,i=t.util.toFixed,s=t.StaticCanvas.supports("setLineDash");if(t.Text){t.warn("fabric.Text is already defined");return}var o={fontSize:!0,fontWeight:!0,fontFamily:!0,textDecoration:!0,fontStyle:!0,lineHeight:!0,stroke:!0,strokeWidth:!0,text:!0},u=t.Object.prototype.stateProperties.concat();u.push("fontFamily","fontWeight","fontSize","path","text","textDecoration","textShadow","textAlign","fontStyle","lineHeight","backgroundColor","textBackgroundColor","useNative"),t.Text=t.util.createClass(t.Object,{type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",textDecoration:"",textShadow:"",textAlign:"left",fontStyle:"",lineHeight:1.3,backgroundColor:"",textBackgroundColor:"",path:null,useNative:!0,stateProperties:u,initialize:function(e,t){t=t||{},this.text=e,this.__skipDimension=!0,this.setOptions(t),this.__skipDimension=!1,this._initDimensions(),this.setCoords()},_initDimensions:function(){if(this.__skipDimension)return;var e=t.util.createCanvasElement();this._render(e.getContext("2d"))},toString:function(){return"#'},_render:function(e){var t=this.group&&this.group.type!=="group";t&&!this.transformMatrix?e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top):t&&this.transformMatrix&&e.translate(-this.group.width/2,-this.group.height/2),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,stroke:this.stroke,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,t.isLikelyNode),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),e.save(),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),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)return;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.lineHeight),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize*this.lineHeight-this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?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){if(!this.visible)return;e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(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,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&&typeof e=="string"?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},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in o&&(this._initDimensions(),this.setCoords())},complexity:function(){return 1}}),t.Text.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y font-family font-style font-weight font-size text-decoration".split(" ")),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},t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e);r.port||(r.port=r.protocol.indexOf("https:")===0?443:80);var i=r.port===443?HTTPS:HTTP,s=i.request({hostname:r.hostname,port:r.port,path:r.path,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});s.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)}),s.end()}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),HTTPS=require("https"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),e.indexOf("http")!==0?request_fs(e,function(e){fabric.loadSVGFromString(e,t)}):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.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),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,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +},applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=this.noise,s;for(var o=0,u=r.length;oo&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.object.clone,i=t.util.toFixed,s=t.StaticCanvas.supports("setLineDash");if(t.Text){t.warn("fabric.Text is already defined");return}var o={fontSize:!0,fontWeight:!0,fontFamily:!0,textDecoration:!0,fontStyle:!0,lineHeight:!0,stroke:!0,strokeWidth:!0,text:!0},u=t.Object.prototype.stateProperties.concat();u.push("fontFamily","fontWeight","fontSize","path","text","textDecoration","textShadow","textAlign","fontStyle","lineHeight","backgroundColor","textBackgroundColor","useNative"),t.Text=t.util.createClass(t.Object,{type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",textDecoration:"",textShadow:"",textAlign:"left",fontStyle:"",lineHeight:1.3,backgroundColor:"",textBackgroundColor:"",path:null,useNative:!0,stateProperties:u,initialize:function(e,t){t=t||{},this.text=e,this.__skipDimension=!0,this.setOptions(t),this.__skipDimension=!1,this._initDimensions(),this.setCoords()},_initDimensions:function(){if(this.__skipDimension)return;var e=t.util.createCanvasElement();this._render(e.getContext("2d"))},toString:function(){return"#'},_render:function(e){var t=this.group&&this.group.type!=="group";t&&!this.transformMatrix?e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top):t&&this.transformMatrix&&e.translate(-this.group.width/2,-this.group.height/2),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,stroke:this.stroke,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,t.isLikelyNode),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),e.save(),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),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)return;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.lineHeight),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize*this.lineHeight-this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?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){if(!this.visible)return;e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(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,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&&typeof e=="string"?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},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in o&&(this._initDimensions(),this.setCoords())},complexity:function(){return 1}}),t.Text.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat("x y font-family font-style font-weight font-size text-decoration".split(" ")),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},t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e);r.port||(r.port=r.protocol.indexOf("https:")===0?443:80);var i=r.port===443?HTTPS:HTTP,s=i.request({hostname:r.hostname,port:r.port,path:r.path,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});s.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)}),s.end()}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),HTTPS=require("https"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),e.indexOf("http")!==0?request_fs(e,function(e){fabric.loadSVGFromString(e,t)}):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.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),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,e),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 54245b5b37d4bd49c54c025767f35791ff1f51d3..0a2d5ec91cffe8d9a3261656627a10e9bc8447c4 100644 GIT binary patch delta 49261 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�r7WpF%7w^d6QM- z-rp?ngG%)|-m@6alXjAt3#S@>YIKx)X67&Q1f&+>{M5d zyInip>d*CbgvIgw)5Ckve+Z12JrYYC({Q1v8a189VN_^a5noa~Z9Zu5r(=`k2?OCM zT(M5WsP`xu?cMAVvOL;*q};jm9>sf%PODT>pbPdkPlFCI3S;P(cS%tYu~)d-#)(N_ zkP8-ZkT}^@+5PPWDu6+zlRjNOw38{|9rB?=EgyPxeBl%CkXcO-DAmQ5u;=NcI5@@` zqg-i*74v&alC)O!qu3^iV4-41PdA7HZXV~-M|d{{U>H;wa|7KT1P4z87|_AR)4-NN z?I5Ml+Y02CqN=?|f1|*EC_qwj5cVf;2XAM+=oWv?dLe&JqJs
-TxXcvz945h~l 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", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/src/shapes/text.class.js b/src/shapes/text.class.js index 7e0320c9..ca2016cd 100644 --- a/src/shapes/text.class.js +++ b/src/shapes/text.class.js @@ -464,14 +464,16 @@ */ _getTopOffset: function() { if (fabric.isLikelyNode) { - if (this.originY === 'center') { + if (this.originY === 'center' || this.originY === 'top') { return -this.height / 2; } else if (this.originY === 'bottom') { return -this.height; } + return 0; } - return 0; + // in browser, text drawing always starts at vertical center + return -this.height / 2; }, /**