From f927cd9e9e4a6b47501f09358ed48ac4dcec78e1 Mon Sep 17 00:00:00 2001 From: kangax Date: Fri, 25 Oct 2013 10:39:45 +0200 Subject: [PATCH] Build distribution --- dist/all.js | 46 ++++++++++++++++++++++++-------------------- dist/all.min.js | 10 +++++----- dist/all.min.js.gz | Bin 51436 -> 51465 bytes dist/all.require.js | 46 ++++++++++++++++++++++++-------------------- 4 files changed, 55 insertions(+), 47 deletions(-) diff --git a/dist/all.js b/dist/all.js index 2b24cdf4..8c23d351 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,4 +1,4 @@ -/* build: `node build.js modules=ALL exclude=gestures minifier=uglifyjs` */ +/* build: `node build.js modules=ALL exclude=gestures,itext minifier=uglifyjs` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ var fabric = fabric || { version: "1.3.7" }; @@ -8992,29 +8992,33 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab activeGroup.set('active', true); } else { - // group does not exist - if (this._activeObject) { - // only if there's an active object - if (target !== this._activeObject) { - // and that object is not the actual target - var objects = this.getObjects(); - var isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target); - var group = new fabric.Group( - isActiveLower ? [ target, this._activeObject ] : [ this._activeObject, target ]); + this._createActiveGroup(target, e); + } - this.setActiveGroup(group); - this._activeObject = null; - activeGroup = this.getActiveGroup(); - this.fire('selection:created', { target: activeGroup, e: e }); - } + if (this._activeGroup) { + this._activeGroup.saveCoords(); + } + }, + + _createActiveGroup: function(target, e) { + // group does not exist + if (this._activeObject) { + // only if there's an active object + if (target !== this._activeObject) { + // and that object is not the actual target + var objects = this.getObjects(); + var isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target); + var group = new fabric.Group( + isActiveLower ? [ target, this._activeObject ] : [ this._activeObject, target ]); + + this.setActiveGroup(group); + this._activeObject = null; + var activeGroup = this.getActiveGroup(); + this.fire('selection:created', { target: activeGroup, e: e }); } - // activate target object in any case - target.set('active', true); - } - - if (activeGroup) { - activeGroup.saveCoords(); } + // activate target object in any case + target.set('active', true); }, /** diff --git a/dist/all.min.js b/dist/all.min.js index 148139b3..7314ee99 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,6 +1,6 @@ -/* build: `node build.js modules=ALL exclude=gestures minifier=uglifyjs` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.3.7"};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)}},function(e){function r(e,t){var n=e.indexOf(t);return n!==-1&&e.splice(n,1),e}function i(e,t){return Math.floor(Math.random()*(t-e+1))+e}function o(e){return e*s}function u(e){return e/s}function a(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 f(e,t){return parseFloat(Number(e).toFixed(t))}function l(){return!1}function c(e,t){return e=fabric.util.string.camelize(e.charAt(0).toUpperCase()+e.slice(1)),h(t)[e]}function h(t){if(!t)return fabric;var n=t.split("."),r=n.length,i=e||fabric.window;for(var s=0;s1?r=new fabric.PathGroup(e,t):r=e[0],typeof n!="undefined"&&r.setSourcePath(n),r}function m(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),e[d?"lineTo":"moveTo"](r,0),d=!d;e.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(){return fabric.isLikelyNode?new(require("canvas").Image):fabric.document.createElement("img")}function w(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 E(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}function S(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 x(e){return(String(e).match(/function[^{]*\{([\s\S]*)\}/)||{})[1]}function T(e,t,n,r){var i=r[0],s=r[1],o=r[2],u=r[3],a=r[4],f=r[5],l=r[6],c=A(f,l,i,s,u,a,o,t,n);for(var h=0;h1&&(d=Math.sqrt(d),n*=d,r*=d);var v=c/n,m=l/n,g=-l/r,y=c/r,b=v*u+m*a,w=g*u+y*a,E=v*e+m*t,S=g*e+y*t,x=(E-b)*(E-b)+(S-w)*(S-w),T=1/x-.25;T<0&&(T=0);var C=Math.sqrt(T);s===i&&(C=-C);var A=.5*(b+E)-C*(S-w),O=.5*(w+S)+C*(E-b),M=Math.atan2(w-O,b-A),_=Math.atan2(S-O,E-A),D=_-M;D<0&&s===1?D+=2*Math.PI:D>0&&s===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B=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)}},function(e){function r(e,t){var n=e.indexOf(t);return n!==-1&&e.splice(n,1),e}function i(e,t){return Math.floor(Math.random()*(t-e+1))+e}function o(e){return e*s}function u(e){return e/s}function a(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 f(e,t){return parseFloat(Number(e).toFixed(t))}function l(){return!1}function c(e,t){return e=fabric.util.string.camelize(e.charAt(0).toUpperCase()+e.slice(1)),h(t)[e]}function h(t){if(!t)return fabric;var n=t.split("."),r=n.length,i=e||fabric.window;for(var s=0;s1?r=new fabric.PathGroup(e,t):r=e[0],typeof n!="undefined"&&r.setSourcePath(n),r}function m(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),e[d?"lineTo":"moveTo"](r,0),d=!d;e.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(){return fabric.isLikelyNode?new(require("canvas").Image):fabric.document.createElement("img")}function w(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 E(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}function S(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 x(e){return(String(e).match(/function[^{]*\{([\s\S]*)\}/)||{})[1]}function T(e,t,n,r){var i=r[0],s=r[1],o=r[2],u=r[3],a=r[4],f=r[5],l=r[6],c=A(f,l,i,s,u,a,o,t,n);for(var h=0;h1&&(d=Math.sqrt(d),n*=d,r*=d);var v=c/n,m=l/n,g=-l/r,y=c/r,b=v*u+m*a,w=g*u+y*a,E=v*e+m*t,S=g*e+y*t,x=(E-b)*(E-b)+(S-w)*(S-w),T=1/x-.25;T<0&&(T=0);var C=Math.sqrt(T);s===i&&(C=-C);var A=.5*(b+E)-C*(S-w),O=.5*(w+S)+C*(E-b),M=Math.atan2(w-O,b-A),_=Math.atan2(S-O,E-A),D=_-M;D<0&&s===1?D+=2*Math.PI:D>0&&s===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B=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){e||(e={});var t=+(new Date),r=e.duration||500,i=t+r,s,o=e.onChange||function(){},u=e.abort||function(){return!1},a=e.easing||function(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t},f="startValue"in e?e.startValue:0,l="endValue"in e?e.endValue:100,c=e.byValue||l-f;e.onStart&&e.onStart(),function h(){s=+(new Date);var l=s>i?r:s-t;if(u()){e.onComplete&&e.onComplete();return}o(a(l,f,c,r));if(s>i){e.onComplete&&e.onComplete();return}n(h)}()}var t=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},n=function(){return t.apply(fabric.window,arguments)};fabric.util.animate=e,fabric.util.requestAnimFrame=n}(),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;ce.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){this.status=e,this.points=[]}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={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}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,s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n,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;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']: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,r=this.colorStops.length;n'+''+""},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Shadow){t.warn("fabric.Shadow is already defined.");return}t.Shadow=t.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,initialize:function(e){typeof e=="string"&&(e=this._parseShadow(e));for(var n in e)this[n]=e[n];this.id=t.Object.__uid++},_parseShadow:function(e){var n=e.trim(),r=t.Shadow.reOffsetsAndBlur.exec(n)||[],i=n.replace(t.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)";return{color:i.trim(),offsetX:parseInt(r[1],10)||0,offsetY:parseInt(r[2],10)||0,blur:parseInt(r[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(e){var t="SourceAlpha";return e&&(e.fill===this.color||e.stroke===this.color)&&(t="SourceGraphic"),''+''+''+""+""+''+""+"" -},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY};var e={},n=t.Shadow.prototype;return this.color!==n.color&&(e.color=this.color),this.blur!==n.blur&&(e.blur=this.blur),this.offsetX!==n.offsetX&&(e.offsetX=this.offsetX),this.offsetY!==n.offsetY&&(e.offsetY=this.offsetY),e}}),t.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/}(typeof exports!="undefined"?exports:this),function(){"use strict";if(fabric.StaticCanvas){fabric.warn("fabric.StaticCanvas is already defined.");return}var e=fabric.util.object.extend,t=fabric.util.getElementOffset,n=fabric.util.removeFromArray,r=fabric.util.removeListener,i=new Error("Could not initialize `canvas` element");fabric.StaticCanvas=fabric.util.createClass({initialize:function(e,t){t||(t={}),this._initStatic(e,t),fabric.StaticCanvas.activeInstance=this},backgroundColor:"",backgroundImage:"",backgroundImageOpacity:1,backgroundImageStretch:!0,overlayImage:"",overlayImageLeft:0,overlayImageTop:0,includeDefaultValues:!0,stateful:!0,renderOnAddRemove:!0,clipTo:null,controlsAboveOverlay:!1,allowTouchScrolling:!1,onBeforeScaleRotate:function(){},_initStatic:function(e,t){this._objects=[],this._createLowerCanvas(e),this._initOptions(t),t.overlayImage&&this.setOverlayImage(t.overlayImage,this.renderAll.bind(this)),t.backgroundImage&&this.setBackgroundImage(t.backgroundImage,this.renderAll.bind(this)),t.backgroundColor&&this.setBackgroundColor(t.backgroundColor,this.renderAll.bind(this)),this.calcOffset()},calcOffset:function(){return this._offset=t(this.lowerCanvasEl),this},setOverlayImage:function(e,t,n){return fabric.util.loadImage(e,function(e){this.overlayImage=e,n&&"overlayImageLeft"in n&&(this.overlayImageLeft=n.overlayImageLeft),n&&"overlayImageTop"in n&&(this.overlayImageTop=n.overlayImageTop),t&&t()},this),this},setBackgroundImage:function(e,t,n){return fabric.util.loadImage(e,function(e){this.backgroundImage=e,n&&"backgroundImageOpacity"in n&&(this.backgroundImageOpacity=n.backgroundImageOpacity),n&&"backgroundImageStretch"in n&&(this.backgroundImageStretch=n.backgroundImageStretch),t&&t()},this),this},setBackgroundColor:function(e,t){if(e.source){var n=this;fabric.util.loadImage(e.source,function(r){n.backgroundColor=new fabric.Pattern({source:r,repeat:e.repeat}),t&&t()})}else this.backgroundColor=e,t&&t();return this},_createCanvasElement:function(){var e=fabric.document.createElement("canvas");e.style||(e.style={});if(!e)throw i;return this._initCanvasElement(e),e},_initCanvasElement:function(e){fabric.util.createCanvasElement(e);if(typeof e.getContext=="undefined")throw i},_initOptions:function(e){for(var t in e)this[t]=e[t];this.width=parseInt(this.lowerCanvasEl.width,10)||0,this.height=parseInt(this.lowerCanvasEl.height,10)||0;if(!this.lowerCanvasEl.style)return;this.lowerCanvasEl.style.width=this.width+"px",this.lowerCanvasEl.style.height=this.height+"px"},_createLowerCanvas:function(e){this.lowerCanvasEl=fabric.util.getById(e)||this._createCanvasElement(),this._initCanvasElement(this.lowerCanvasEl),fabric.util.addClass(this.lowerCanvasEl,"lower-canvas"),this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(e){return this._setDimension("width",e)},setHeight:function(e){return this._setDimension("height",e)},setDimensions:function(e){for(var t in e)this._setDimension(t,e[t]);return this},_setDimension:function(e,t){return this.lowerCanvasEl[e]=t,this.lowerCanvasEl.style[e]=t+"px",this.upperCanvasEl&&(this.upperCanvasEl[e]=t,this.upperCanvasEl.style[e]=t+"px"),this.cacheCanvasEl&&(this.cacheCanvasEl[e]=t),this.wrapperEl&&(this.wrapperEl.style[e]=t+"px"),this[e]=t,this.calcOffset(),this.renderAll(),this},getElement:function(){return this.lowerCanvasEl},getActiveObject:function(){return null},getActiveGroup:function(){return null},_draw:function(e,t){if(!t)return;if(this.controlsAboveOverlay){var n=t.hasBorders,r=t.hasControls;t.hasBorders=t.hasControls=!1,t.render(e),t.hasBorders=n,t.hasControls=r}else t.render(e)},_onObjectAdded:function(e){this.stateful&&e.setupState(),e.setCoords(),e.canvas=this,this.fire("object:added",{target:e}),e.fire("added")},_onObjectRemoved:function(e){this.fire("object:removed",{target:e}),e.fire("removed")},getObjects:function(){return this._objects},clearContext:function(e){return e.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this._objects.length=0,this.discardActiveGroup&&this.discardActiveGroup(),this.discardActiveObject&&this.discardActiveObject(),this.clearContext(this.contextContainer),this.contextTop&&this.clearContext(this.contextTop),this.fire("canvas:cleared"),this.renderAll(),this},renderAll:function(e){var t=this[e===!0&&this.interactive?"contextTop":"contextContainer"];this.contextTop&&this.selection&&!this._groupSelector&&this.clearContext(this.contextTop),e||this.clearContext(t),this.fire("before:render"),this.clipTo&&fabric.util.clipContext(this,t),this.backgroundColor&&(t.fillStyle=this.backgroundColor.toLive?this.backgroundColor.toLive(t):this.backgroundColor,t.fillRect(this.backgroundColor.offsetX||0,this.backgroundColor.offsetY||0,this.width,this.height)),typeof this.backgroundImage=="object"&&this._drawBackroundImage(t);var n=this.getActiveGroup();for(var r=0,i=this._objects.length;r','\n'),n.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&n.push('"),this.backgroundImage&&n.push(''),this.overlayImage&&n.push('');var r=this.getActiveGroup();r&&this.discardActiveGroup();for(var i=0,s=this.getObjects(),o=s.length;i"),n.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,t){var r=this._objects.indexOf(e);if(r!==0){var i;if(t){i=r;for(var s=r-1;s>=0;--s){var o=e.intersectsWithObject(this._objects[s])||e.isContainedWithinObject(this._objects[s])||this._objects[s].isContainedWithinObject(e);if(o){i=s;break}}}else i=r-1;n(this._objects,e),this._objects.splice(i,0,e),this.renderAll&&this.renderAll()}return this},bringForward:function(e,t){var r=this._objects.indexOf(e);if(r!==this._objects.length-1){var i;if(t){i=r;for(var s=r+1;s"}}),e(fabric.StaticCanvas.prototype,fabric.Observable),e(fabric.StaticCanvas.prototype,fabric.Collection),e(fabric.StaticCanvas.prototype,fabric.DataURLExporter),e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(e){var t=fabric.util.createCanvasElement();if(!t||!t.getContext)return null;var n=t.getContext("2d");if(!n)return null;switch(e){case"getImageData":return typeof n.getImageData!="undefined";case"setLineDash":return typeof n.setLineDash!="undefined";case"toDataURL":return typeof t.toDataURL!="undefined";case"toDataURLWithQuality":try{return t.toDataURL("image/jpeg",0),!0}catch(r){}return!1;default:return null}}}),fabric.StaticCanvas.prototype.toJSON=fabric.StaticCanvas.prototype.toObject}(),fabric.BaseBrush=fabric.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",setShadow:function(e){return this.shadow=new fabric.Shadow(e),this},_setBrushStyles:function(){var e=this.canvas.contextTop;e.strokeStyle=this.color,e.lineWidth=this.width,e.lineCap=this.strokeLineCap,e.lineJoin=this.strokeLineJoin},_setShadow:function(){if(!this.shadow)return;var e=this.canvas.contextTop;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_resetShadow:function(){var e=this.canvas.contextTop;e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0}}),function(){var e=fabric.util.array.min,t=fabric.util.array.max;fabric.PencilBrush=fabric.util.createClass(fabric.BaseBrush,{initialize:function(e){this.canvas=e,this._points=[]},onMouseDown:function(e){this._prepareForDrawing(e),this._captureDrawingPath(e),this._render()},onMouseMove:function(e){this._captureDrawingPath(e),this.canvas.clearContext(this.canvas.contextTop),this._render()},onMouseUp:function(){this._finalizeAndAddPath()},_prepareForDrawing:function(e){var t=new fabric.Point(e.x,e.y);this._reset(),this._addPoint(t),this.canvas.contextTop.moveTo(t.x,t.y)},_addPoint:function(e){this._points.push(e)},_reset:function(){this._points.length=0,this._setBrushStyles(),this._setShadow()},_captureDrawingPath:function(e){var t=new fabric.Point(e.x,e.y);this._addPoint(t)},_render:function(){var e=this.canvas.contextTop;e.beginPath();var t=this._points[0],n=this._points[1];this._points.length===2&&t.x===n.x&&t.y===n.y&&(t.x-=.5,n.x+=.5),e.moveTo(t.x,t.y);for(var r=1,i=this._points.length;r0&&(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;ao.padding?l.x<0?l.x+=o.padding:l.x-=o.padding:l.x=0,i(l.y)>o.padding?l.y<0?l.y+=o.padding:l.y-=o.padding:l.y=0;var c=o.scaleX,h=o.scaleY;if(n==="equally"&&!u&&!a){var p=l.y+l.x,d=(o.height+o.strokeWidth)*r.original.scaleY+(o.width+o.strokeWidth)*r.original.scaleX;c=r.original.scaleX*p/d,h=r.original.scaleY*p/d,o.set("scaleX",c),o.set("scaleY",h)}else n?n==="x"&&!o.get("lockUniScaling")?(c=l.x/(o.width+o.strokeWidth),u||o.set("scaleX",c)):n==="y"&&!o.get("lockUniScaling")&&(h=l.y/(o.height+o.strokeWidth),a||o.set("scaleY",h)):(c=l.x/(o.width+o.strokeWidth),h=l.y/(o.height+o.strokeWidth),u||o.set("scaleX",c),a||o.set("scaleY",h));c<0&&(r.originX==="left"?r.originX="right":r.originX==="right"&&(r.originX="left")),h<0&&(r.originY==="top"?r.originY="bottom":r.originY==="bottom"&&(r.originY="top")),o.setPositionByOrigin(f,r.originX,r.originY)},_rotateObject:function(e,t){var i=this._currentTransform,s=this._offset;if(i.target.get("lockRotation"))return;var o=r(i.ey-i.top-s.top,i.ex-i.left-s.left),u=r(t-i.top-s.top,e-i.left-s.left),a=n(u-o+i.theta);a<0&&(a=360+a),i.target.angle=a},_setCursor:function(e){this.upperCanvasEl.style.cursor=e},_resetObjectTransform:function(e){e.scaleX=1,e.scaleY=1,e.setAngle(0)},_drawSelection:function(){var e=this.contextTop,t=this._groupSelector,n=t.left,r=t.top,s=i(n),o=i(r);e.fillStyle=this.selectionColor,e.fillRect(t.ex-(n>0?0:-n),t.ey-(r>0?0:-r),s,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var a=t.ex+u-(n>0?0:s),f=t.ey+u-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,a,f,a+s,f,this.selectionDashArray),fabric.util.drawDashedLine(e,a,f+o-1,a+s,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,a,f,a,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,a+s-1,f,a+s-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+u-(n>0?0:s),t.ey+u-(r>0?0:o),s,o)},_findSelectedObjects:function(e){if(!this.selection)return;var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,u=r+this._groupSelector.top,a,f=new fabric.Point(s(n,i),s(r,u)),l=new fabric.Point(o(n,i),o(r,u)),c=n===i&&r===u;for(var h=this._objects.length;h--;){a=this._objects[h];if(!a||!a.selectable||!a.visible)continue;if(a.intersectsWithRect(f,l)||a.isContainedWithinRect(f,l)||a.containsPoint(f)||a.containsPoint(l)){a.set("active",!0),t.push(a);if(c)break}}t.length===1?this.setActiveObject(t[0],e):t.length>1&&(t=new fabric.Group(t.reverse()),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t}),this.renderAll())},findTarget:function(e,t){if(this.skipTargetFind)return;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._objects[o].evented&&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,n){var i=e==="scaleX"||e==="scaleY";return i&&(n=this._constrainScale(n)),e==="scaleX"&&n<0?(this.flipX=!this.flipX,n*=-1):e==="scaleY"&&n<0?(this.flipY=!this.flipY,n*=-1):e==="width"||e==="height"?this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2):e==="shadow"&&n&&!(n instanceof t.Shadow)&&(n=new t.Shadow(n)),this[e]=n,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.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(),r=this.getBoundingRect();n.width=r.width,n.height=r.height,t.util.wrapElement(n,"div");var i=new t.Canvas(n);e.format==="jpg"&&(e.format="jpeg"),e.format==="jpeg"&&(i.backgroundColor="#fff");var s={active:this.get("active"),left:this.getLeft(),top:this.getTop()};this.set("active",!1),this.setPositionByOrigin(new t.Point(n.width/2,n.height/2),"center","center"),i.add(this);var o=i.toDataURL(e);return this.set(s).setCoords(),i.dispose(),i=null,o},isType:function(e){return this.type===e},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()})}return 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))},setColor:function(e){return this.set("fill",e),this},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(e){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this,e):this.canvas.sendBackwards(this,e),this},bringForward:function(e){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this,e):this.canvas.bringForward(this,e),this},moveTo:function(e){return this.group?t.StaticCanvas.prototype.moveTo.call(this.group,this,e):this.canvas.moveTo(this,e),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+(this.getWidth()+this.strokeWidth*this.scaleX)/2:n==="right"&&(i=t.x-(this.getWidth()+this.strokeWidth*this.scaleX)/2),r==="top"?s=t.y+(this.getHeight()+this.strokeWidth*this.scaleY)/2:r==="bottom"&&(s=t.y-(this.getHeight()+this.strokeWidth*this.scaleY)/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-(this.getWidth()+this.strokeWidth*this.scaleX)/2:n==="right"&&(i=t.x+(this.getWidth()+this.strokeWidth*this.scaleX)/2),r==="top"?s=t.y-(this.getHeight()+this.strokeWidth*this.scaleY)/2:r==="bottom"&&(s=t.y+(this.getHeight()+this.strokeWidth*this.scaleY)/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){var e=new fabric.Point(this.left,this.top);return this.translateToCenterPoint(e,this.originX,this.originY)},getPointByOrigin:function(e,t){var n=this.getCenterPoint();return this.translateToOriginPoint(n,e,t)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-(this.getWidth()+this.strokeWidth*this.scaleX)/2:n==="right"?s=i.x+(this.getWidth()+this.strokeWidth*this.scaleX)/2:s=i.x,r==="top"?o=i.y-(this.getHeight()+this.strokeWidth*this.scaleY)/2:r==="bottom"?o=i.y+(this.getHeight()+this.strokeWidth*this.scaleY)/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","center")}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{oCoords:null,intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){var t=e.getBoundingRect(),n=new fabric.Point(t.left,t.top),r=new fabric.Point(t.left+t.width,t.top+t.height);return this.isContainedWithinRect(n,r)},isContainedWithinRect:function(e,t){var n=this.getBoundingRect();return n.left>e.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.get(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/2)*2;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)+1,~~(u+n+r*this.scaleY)+1);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=this.transparentCorners,w=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,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,w||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,w||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,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,w||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,w||b||e.clearRect -(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),fabric.util.object.extend(fabric.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(e,t){t=t||{};var n=function(){},r=t.onComplete||n,i=t.onChange||n,s=this;return fabric.util.animate({startValue:e.get("left"),endValue:this.getCenter().left,duration:this.FX_DURATION,onChange:function(t){e.set("left",t),s.renderAll(),i()},onComplete:function(){e.setCoords(),r()}}),this},fxCenterObjectV:function(e,t){t=t||{};var n=function(){},r=t.onComplete||n,i=t.onChange||n,s=this;return fabric.util.animate({startValue:e.get("top"),endValue:this.getCenter().top,duration:this.FX_DURATION,onChange:function(t){e.set("top",t),s.renderAll(),i()},onComplete:function(){e.setCoords(),r()}}),this},fxRemove:function(e,t){t=t||{};var n=function(){},r=t.onComplete||n,i=t.onChange||n,s=this;return fabric.util.animate({startValue:e.get("opacity"),endValue:0,duration:this.FX_DURATION,onStart:function(){e.set("active",!1)},onChange:function(t){e.set("opacity",t),s.renderAll(),i()},onComplete:function(){s.remove(e),r()}}),this}}),fabric.util.object.extend(fabric.Object.prototype,{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;r'),e?e(t.join("")):t.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)},_set:function(e,t){return this.callSuper("_set",e,t),e==="radius"&&this.setRadius(t),this},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(e){var t=this._createBaseSVGMarkup();return t.push("'),e?e(t.join("")):t.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(e){var t=this._createBaseSVGMarkup(),n=this.width/2,r=this.height/2,i=[-n+" "+r,"0 "+ -r,n+" "+r].join(",");return t.push("'),e?e(t.join("")):t.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(e){var t=this._createBaseSVGMarkup();return t.push("'),e?e(t.join("")):t.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 i(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}var r=t.Object.prototype.stateProperties.concat();r.push("rx","ry","x","y"),t.Rect=t.util.createClass(t.Object,{stateProperties:r,type:"rect",rx:0,ry:0,x:0,y:0,strokeDashArray:null,initialize:function(e){e=e||{},this.callSuper("initialize",e),this._initRxRy(),this.x=e.x||0,this.y=e.y||0},_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);var a=t!==0||n!==0;e.moveTo(r+t,i),e.lineTo(r+s-t,i),a&&e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),a&&e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),a&&e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),a&&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){var t=n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0,x:this.get("x"),y:this.get("y")});return this.includeDefaultValues||this._removeDefaultValues(t),t},toSVG:function(e){var t=this._createBaseSVGMarkup();return t.push("'),e?e(t.join("")):t.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,r){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=i(s);var o=new t.Rect(n(r?t.util.object.clone(r):{},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(e){var t=[],r=this._createBaseSVGMarkup();for(var i=0,s=this.points.length;i'),e?e(r.join("")):r.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'),e?e(n.join("")):n.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"},toObject:function(e){var t=s(this.callSuper("toObject",e),{path:this.path,pathOffset:this.pathOffset});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(e){var t=[],n=this._createBaseSVGMarkup();for(var r=0,i=this.path.length;r',"",""),e?e(n.join("")):n.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 r=0,i=t.length;r"),e?e(n.join("")):n.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)},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e,n){typeof e.paths=="string"?t.loadSVGFromURL(e.paths,function(r){var i=e.paths;delete e.paths;var s=t.util.groupSVGElements(r,e,i);n(s)}):t.util.enlivenObjects(e.paths,function(r){delete e.paths,n(new t.PathGroup(r,e))})},t.PathGroup.async=!0}(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._moveFlippedObject(e),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,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'];for(var n=0,r=this._objects.length;n"),e?e(t.join("")):t.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 n=this.fill;this.fill=null,t.push("'),this.fill=n}return t.push(""),e?e(t.join("")):t.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._element=this._originalElement,e&&e();return}var t=this._originalElement,n=fabric.util.createCanvasElement(),r=fabric.util.createImage(),i=this;return 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,fabric.isLikelyNode?(r.src=n.toBuffer(undefined,fabric.Image.pngCompression),i._element=r,e&&e()):(r.onload=function(){i._element=r,e&&e(),r.onload=n=t=null},r.src=n.toDataURL("image/png")),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,t){e.filters&&e.filters.length?fabric.util.enlivenObjects(e.filters -,function(e){t&&t(e)},"fabric.Image.filters"):t&&t()},_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;n.onload=function(){fabric.Image.prototype._initFilters.call(e,e,function(r){e.filters=r||[];var i=new fabric.Image(n,e);t&&t(i),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,fabric.Image.pngCompression=1}(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.BaseFilter=fabric.util.createClass({type:"BaseFilter",toObject:function(){return{type:this.type}},toJSON:function(){return this.toObject()}}),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend;t.Image.filters.Brightness=t.util.createClass(t.Image.filters.BaseFilter,{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&&C-1?e.channel:0},applyTo:function(e){if(!this.mask)return;var n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=r.data,s=this.mask.getElement(),o=t.util.createCanvasElement(),u=this.channel,a,f=r.width*r.height*4;o.width=s.width,o.height=s.height,o.getContext("2d").drawImage(s,0,0,s.width,s.height);var l=o.getContext("2d").getImageData(0,0,s.width,s.height),c=l.data;for(a=0;ao&&f>o&&l>o&&u(a-f)'},_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)},_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.clipTo&&t.util.clipContext(this,e),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._setShadow(e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this._removeShadow(e),e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this.clipTo&&e.restore(),this._setBoundaries(e,n),this._totalLineHeight=0},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_drawChars:function(e,t,n,r,i){t[e](n,r,i)},_drawTextLine:function(e,t,n,r,i,s){i-=this.fontSize/4;if(this.textAlign!=="justify"){this._drawChars(e,t,n,r,i,s);return}var o=t.measureText(n).width,u=this.width;if(u>o){var a=n.split(/\s+/),f=t.measureText(n.replace(/\s+/g,"")).width,l=u-f,c=a.length-1,h=l/c,p=0;for(var d=0,v=a.length;d-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(this.fontSize*this.lineHeight-this.fontSize)},_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(" ")},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){var t=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,textAlign:this.textAlign,path:this.path,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative});return this.includeDefaultValues||this._removeDefaultValues(t),t},toSVG:function(e){var t=[],n=this.text.split(/\r?\n/),r=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,s=-(this.width/2),o=this.useNative?this.fontSize-1:this.height/2-n.length*this.fontSize-this._totalLineHeight,u=this._getSVGTextAndBg(r,s,n),a=this._getSVGShadows(r,n);return o+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,t.push('',u.textBgRects.join(""),"',a.join(""),u.textSpans.join(""),"",""),e?e(t.join("")):t.join("")},_getSVGShadows:function(e,n){var r=[],s,o,u=1;if(!this.shadow||!this._boundaries)return r;for(s=0,o=n.length;s",t.util.string.escapeXml(n[s]),""),u=1}else u++;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()+'"'},_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 this._dimensionAffectingProps&&(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),fabric.util.object.extend(fabric.Text.prototype,{_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.shadow&&this.shadow.toString(),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,n=null,this.setCoords()},_initDummyElementForCufon:function(){var e=fabric.document.createElement("pre"),t=fabric.document.createElement("div");return t.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}}),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");n.readFile(e,function(e,n){if(e)throw fabric.log(e),e;t(n)})}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 instanceof Buffer||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,n){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),e.indexOf("http")!==0?request_fs(e,function(e){fabric.loadSVGFromString(e,t,n)}):request(e,"",function(e){fabric.loadSVGFromString(e,t,n)})},fabric.loadSVGFromString=function(e,t,n){var r=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(r.documentElement,function(e,n){t&&t(e,n)},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,function(e){r.filters=e||[],t&&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 +},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY};var e={},n=t.Shadow.prototype;return this.color!==n.color&&(e.color=this.color),this.blur!==n.blur&&(e.blur=this.blur),this.offsetX!==n.offsetX&&(e.offsetX=this.offsetX),this.offsetY!==n.offsetY&&(e.offsetY=this.offsetY),e}}),t.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:px)?(?:\s?|$))?(-?\d+(?:px)?(?:\s?|$))?(\d+(?:px)?)?(?:\s?|$)(?:$|\s)/}(typeof exports!="undefined"?exports:this),function(){"use strict";if(fabric.StaticCanvas){fabric.warn("fabric.StaticCanvas is already defined.");return}var e=fabric.util.object.extend,t=fabric.util.getElementOffset,n=fabric.util.removeFromArray,r=fabric.util.removeListener,i=new Error("Could not initialize `canvas` element");fabric.StaticCanvas=fabric.util.createClass({initialize:function(e,t){t||(t={}),this._initStatic(e,t),fabric.StaticCanvas.activeInstance=this},backgroundColor:"",backgroundImage:"",backgroundImageOpacity:1,backgroundImageStretch:!0,overlayImage:"",overlayImageLeft:0,overlayImageTop:0,includeDefaultValues:!0,stateful:!0,renderOnAddRemove:!0,clipTo:null,controlsAboveOverlay:!1,allowTouchScrolling:!1,onBeforeScaleRotate:function(){},_initStatic:function(e,t){this._objects=[],this._createLowerCanvas(e),this._initOptions(t),t.overlayImage&&this.setOverlayImage(t.overlayImage,this.renderAll.bind(this)),t.backgroundImage&&this.setBackgroundImage(t.backgroundImage,this.renderAll.bind(this)),t.backgroundColor&&this.setBackgroundColor(t.backgroundColor,this.renderAll.bind(this)),this.calcOffset()},calcOffset:function(){return this._offset=t(this.lowerCanvasEl),this},setOverlayImage:function(e,t,n){return fabric.util.loadImage(e,function(e){this.overlayImage=e,n&&"overlayImageLeft"in n&&(this.overlayImageLeft=n.overlayImageLeft),n&&"overlayImageTop"in n&&(this.overlayImageTop=n.overlayImageTop),t&&t()},this),this},setBackgroundImage:function(e,t,n){return fabric.util.loadImage(e,function(e){this.backgroundImage=e,n&&"backgroundImageOpacity"in n&&(this.backgroundImageOpacity=n.backgroundImageOpacity),n&&"backgroundImageStretch"in n&&(this.backgroundImageStretch=n.backgroundImageStretch),t&&t()},this),this},setBackgroundColor:function(e,t){if(e.source){var n=this;fabric.util.loadImage(e.source,function(r){n.backgroundColor=new fabric.Pattern({source:r,repeat:e.repeat}),t&&t()})}else this.backgroundColor=e,t&&t();return this},_createCanvasElement:function(){var e=fabric.document.createElement("canvas");e.style||(e.style={});if(!e)throw i;return this._initCanvasElement(e),e},_initCanvasElement:function(e){fabric.util.createCanvasElement(e);if(typeof e.getContext=="undefined")throw i},_initOptions:function(e){for(var t in e)this[t]=e[t];this.width=parseInt(this.lowerCanvasEl.width,10)||0,this.height=parseInt(this.lowerCanvasEl.height,10)||0;if(!this.lowerCanvasEl.style)return;this.lowerCanvasEl.style.width=this.width+"px",this.lowerCanvasEl.style.height=this.height+"px"},_createLowerCanvas:function(e){this.lowerCanvasEl=fabric.util.getById(e)||this._createCanvasElement(),this._initCanvasElement(this.lowerCanvasEl),fabric.util.addClass(this.lowerCanvasEl,"lower-canvas"),this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(e){return this._setDimension("width",e)},setHeight:function(e){return this._setDimension("height",e)},setDimensions:function(e){for(var t in e)this._setDimension(t,e[t]);return this},_setDimension:function(e,t){return this.lowerCanvasEl[e]=t,this.lowerCanvasEl.style[e]=t+"px",this.upperCanvasEl&&(this.upperCanvasEl[e]=t,this.upperCanvasEl.style[e]=t+"px"),this.cacheCanvasEl&&(this.cacheCanvasEl[e]=t),this.wrapperEl&&(this.wrapperEl.style[e]=t+"px"),this[e]=t,this.calcOffset(),this.renderAll(),this},getElement:function(){return this.lowerCanvasEl},getActiveObject:function(){return null},getActiveGroup:function(){return null},_draw:function(e,t){if(!t)return;if(this.controlsAboveOverlay){var n=t.hasBorders,r=t.hasControls;t.hasBorders=t.hasControls=!1,t.render(e),t.hasBorders=n,t.hasControls=r}else t.render(e)},_onObjectAdded:function(e){this.stateful&&e.setupState(),e.setCoords(),e.canvas=this,this.fire("object:added",{target:e}),e.fire("added")},_onObjectRemoved:function(e){this.fire("object:removed",{target:e}),e.fire("removed")},getObjects:function(){return this._objects},clearContext:function(e){return e.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this._objects.length=0,this.discardActiveGroup&&this.discardActiveGroup(),this.discardActiveObject&&this.discardActiveObject(),this.clearContext(this.contextContainer),this.contextTop&&this.clearContext(this.contextTop),this.fire("canvas:cleared"),this.renderAll(),this},renderAll:function(e){var t=this[e===!0&&this.interactive?"contextTop":"contextContainer"];this.contextTop&&this.selection&&!this._groupSelector&&this.clearContext(this.contextTop),e||this.clearContext(t),this.fire("before:render"),this.clipTo&&fabric.util.clipContext(this,t),this.backgroundColor&&(t.fillStyle=this.backgroundColor.toLive?this.backgroundColor.toLive(t):this.backgroundColor,t.fillRect(this.backgroundColor.offsetX||0,this.backgroundColor.offsetY||0,this.width,this.height)),typeof this.backgroundImage=="object"&&this._drawBackroundImage(t);var n=this.getActiveGroup();for(var r=0,i=this._objects.length;r','\n'),n.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&n.push('"),this.backgroundImage&&n.push(''),this.overlayImage&&n.push('');var r=this.getActiveGroup();r&&this.discardActiveGroup();for(var i=0,s=this.getObjects(),o=s.length;i"),n.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,t){var r=this._objects.indexOf(e);if(r!==0){var i;if(t){i=r;for(var s=r-1;s>=0;--s){var o=e.intersectsWithObject(this._objects[s])||e.isContainedWithinObject(this._objects[s])||this._objects[s].isContainedWithinObject(e);if(o){i=s;break}}}else i=r-1;n(this._objects,e),this._objects.splice(i,0,e),this.renderAll&&this.renderAll()}return this},bringForward:function(e,t){var r=this._objects.indexOf(e);if(r!==this._objects.length-1){var i;if(t){i=r;for(var s=r+1;s"}}),e(fabric.StaticCanvas.prototype,fabric.Observable),e(fabric.StaticCanvas.prototype,fabric.Collection),e(fabric.StaticCanvas.prototype,fabric.DataURLExporter),e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(e){var t=fabric.util.createCanvasElement();if(!t||!t.getContext)return null;var n=t.getContext("2d");if(!n)return null;switch(e){case"getImageData":return typeof n.getImageData!="undefined";case"setLineDash":return typeof n.setLineDash!="undefined";case"toDataURL":return typeof t.toDataURL!="undefined";case"toDataURLWithQuality":try{return t.toDataURL("image/jpeg",0),!0}catch(r){}return!1;default:return null}}}),fabric.StaticCanvas.prototype.toJSON=fabric.StaticCanvas.prototype.toObject}(),fabric.BaseBrush=fabric.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",setShadow:function(e){return this.shadow=new fabric.Shadow(e),this},_setBrushStyles:function(){var e=this.canvas.contextTop;e.strokeStyle=this.color,e.lineWidth=this.width,e.lineCap=this.strokeLineCap,e.lineJoin=this.strokeLineJoin},_setShadow:function(){if(!this.shadow)return;var e=this.canvas.contextTop;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_resetShadow:function(){var e=this.canvas.contextTop;e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0}}),function(){var e=fabric.util.array.min,t=fabric.util.array.max;fabric.PencilBrush=fabric.util.createClass(fabric.BaseBrush,{initialize:function(e){this.canvas=e,this._points=[]},onMouseDown:function(e){this._prepareForDrawing(e),this._captureDrawingPath(e),this._render()},onMouseMove:function(e){this._captureDrawingPath(e),this.canvas.clearContext(this.canvas.contextTop),this._render()},onMouseUp:function(){this._finalizeAndAddPath()},_prepareForDrawing:function(e){var t=new fabric.Point(e.x,e.y);this._reset(),this._addPoint(t),this.canvas.contextTop.moveTo(t.x,t.y)},_addPoint:function(e){this._points.push(e)},_reset:function(){this._points.length=0,this._setBrushStyles(),this._setShadow()},_captureDrawingPath:function(e){var t=new fabric.Point(e.x,e.y);this._addPoint(t)},_render:function(){var e=this.canvas.contextTop;e.beginPath();var t=this._points[0],n=this._points[1];this._points.length===2&&t.x===n.x&&t.y===n.y&&(t.x-=.5,n.x+=.5),e.moveTo(t.x,t.y);for(var r=1,i=this._points.length;r0&&(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;ao.padding?l.x<0?l.x+=o.padding:l.x-=o.padding:l.x=0,i(l.y)>o.padding?l.y<0?l.y+=o.padding:l.y-=o.padding:l.y=0;var c=o.scaleX,h=o.scaleY;if(n==="equally"&&!u&&!a){var p=l.y+l.x,d=(o.height+o.strokeWidth)*r.original.scaleY+(o.width+o.strokeWidth)*r.original.scaleX;c=r.original.scaleX*p/d,h=r.original.scaleY*p/d,o.set("scaleX",c),o.set("scaleY",h)}else n?n==="x"&&!o.get("lockUniScaling")?(c=l.x/(o.width+o.strokeWidth),u||o.set("scaleX",c)):n==="y"&&!o.get("lockUniScaling")&&(h=l.y/(o.height+o.strokeWidth),a||o.set("scaleY",h)):(c=l.x/(o.width+o.strokeWidth),h=l.y/(o.height+o.strokeWidth),u||o.set("scaleX",c),a||o.set("scaleY",h));c<0&&(r.originX==="left"?r.originX="right":r.originX==="right"&&(r.originX="left")),h<0&&(r.originY==="top"?r.originY="bottom":r.originY==="bottom"&&(r.originY="top")),o.setPositionByOrigin(f,r.originX,r.originY)},_rotateObject:function(e,t){var i=this._currentTransform,s=this._offset;if(i.target.get("lockRotation"))return;var o=r(i.ey-i.top-s.top,i.ex-i.left-s.left),u=r(t-i.top-s.top,e-i.left-s.left),a=n(u-o+i.theta);a<0&&(a=360+a),i.target.angle=a},_setCursor:function(e){this.upperCanvasEl.style.cursor=e},_resetObjectTransform:function(e){e.scaleX=1,e.scaleY=1,e.setAngle(0)},_drawSelection:function(){var e=this.contextTop,t=this._groupSelector,n=t.left,r=t.top,s=i(n),o=i(r);e.fillStyle=this.selectionColor,e.fillRect(t.ex-(n>0?0:-n),t.ey-(r>0?0:-r),s,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var a=t.ex+u-(n>0?0:s),f=t.ey+u-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,a,f,a+s,f,this.selectionDashArray),fabric.util.drawDashedLine(e,a,f+o-1,a+s,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,a,f,a,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,a+s-1,f,a+s-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+u-(n>0?0:s),t.ey+u-(r>0?0:o),s,o)},_findSelectedObjects:function(e){if(!this.selection)return;var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,u=r+this._groupSelector.top,a,f=new fabric.Point(s(n,i),s(r,u)),l=new fabric.Point(o(n,i),o(r,u)),c=n===i&&r===u;for(var h=this._objects.length;h--;){a=this._objects[h];if(!a||!a.selectable||!a.visible)continue;if(a.intersectsWithRect(f,l)||a.isContainedWithinRect(f,l)||a.containsPoint(f)||a.containsPoint(l)){a.set("active",!0),t.push(a);if(c)break}}t.length===1?this.setActiveObject(t[0],e):t.length>1&&(t=new fabric.Group(t.reverse()),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t}),this.renderAll())},findTarget:function(e,t){if(this.skipTargetFind)return;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._objects[o].evented&&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,n){var i=e==="scaleX"||e==="scaleY";return i&&(n=this._constrainScale(n)),e==="scaleX"&&n<0?(this.flipX=!this.flipX,n*=-1):e==="scaleY"&&n<0?(this.flipY=!this.flipY,n*=-1):e==="width"||e==="height"?this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2):e==="shadow"&&n&&!(n instanceof t.Shadow)&&(n=new t.Shadow(n)),this[e]=n,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.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(),r=this.getBoundingRect();n.width=r.width,n.height=r.height,t.util.wrapElement(n,"div");var i=new t.Canvas(n);e.format==="jpg"&&(e.format="jpeg"),e.format==="jpeg"&&(i.backgroundColor="#fff");var s={active:this.get("active"),left:this.getLeft(),top:this.getTop()};this.set("active",!1),this.setPositionByOrigin(new t.Point(n.width/2,n.height/2),"center","center"),i.add(this);var o=i.toDataURL(e);return this.set(s).setCoords(),i.dispose(),i=null,o},isType:function(e){return this.type===e},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()})}return 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))},setColor:function(e){return this.set("fill",e),this},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(e){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this,e):this.canvas.sendBackwards(this,e),this},bringForward:function(e){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this,e):this.canvas.bringForward(this,e),this},moveTo:function(e){return this.group?t.StaticCanvas.prototype.moveTo.call(this.group,this,e):this.canvas.moveTo(this,e),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+(this.getWidth()+this.strokeWidth*this.scaleX)/2:n==="right"&&(i=t.x-(this.getWidth()+this.strokeWidth*this.scaleX)/2),r==="top"?s=t.y+(this.getHeight()+this.strokeWidth*this.scaleY)/2:r==="bottom"&&(s=t.y-(this.getHeight()+this.strokeWidth*this.scaleY)/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-(this.getWidth()+this.strokeWidth*this.scaleX)/2:n==="right"&&(i=t.x+(this.getWidth()+this.strokeWidth*this.scaleX)/2),r==="top"?s=t.y-(this.getHeight()+this.strokeWidth*this.scaleY)/2:r==="bottom"&&(s=t.y+(this.getHeight()+this.strokeWidth*this.scaleY)/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){var e=new fabric.Point(this.left,this.top);return this.translateToCenterPoint(e,this.originX,this.originY)},getPointByOrigin:function(e,t){var n=this.getCenterPoint();return this.translateToOriginPoint(n,e,t)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-(this.getWidth()+this.strokeWidth*this.scaleX)/2:n==="right"?s=i.x+(this.getWidth()+this.strokeWidth*this.scaleX)/2:s=i.x,r==="top"?o=i.y-(this.getHeight()+this.strokeWidth*this.scaleY)/2:r==="bottom"?o=i.y+(this.getHeight()+this.strokeWidth*this.scaleY)/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","center")}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{oCoords:null,intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){var t=e.getBoundingRect(),n=new fabric.Point(t.left,t.top),r=new fabric.Point(t.left+t.width,t.top+t.height);return this.isContainedWithinRect(n,r)},isContainedWithinRect:function(e,t){var n=this.getBoundingRect();return n.left>e.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.get(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/2)*2;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)+1,~~(u+n+r*this.scaleY)+1);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=this.transparentCorners,w=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,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,w||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,w||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,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,w||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,w||b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),fabric.util.object.extend(fabric.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(e,t){t=t||{};var n=function(){},r=t.onComplete||n,i=t.onChange||n,s=this;return fabric.util.animate({startValue:e.get("left"),endValue:this.getCenter().left,duration:this.FX_DURATION,onChange:function(t){e.set("left",t),s.renderAll(),i()},onComplete:function(){e.setCoords(),r()}}),this},fxCenterObjectV:function(e,t){t=t||{};var n=function(){},r=t.onComplete||n,i=t.onChange||n,s=this;return fabric.util.animate({startValue:e.get("top"),endValue:this.getCenter().top,duration:this.FX_DURATION,onChange:function(t){e.set("top",t),s.renderAll(),i()},onComplete:function(){e.setCoords(),r()}}),this},fxRemove:function(e,t){t=t||{};var n=function(){},r=t.onComplete||n,i=t.onChange||n,s=this;return fabric.util.animate({startValue:e.get("opacity"),endValue:0,duration:this.FX_DURATION,onStart:function(){e.set("active",!1)},onChange:function(t){e.set("opacity",t),s.renderAll(),i()},onComplete:function(){s.remove(e),r()}}),this}}),fabric.util.object.extend(fabric.Object.prototype,{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;r'),e?e(t.join("")):t.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)},_set:function(e,t){return this.callSuper("_set",e,t),e==="radius"&&this.setRadius(t),this},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(e){var t=this._createBaseSVGMarkup();return t.push("'),e?e(t.join("")):t.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(e){var t=this._createBaseSVGMarkup(),n=this.width/2,r=this.height/2,i=[-n+" "+r,"0 "+ -r,n+" "+r].join(",");return t.push("'),e?e(t.join("")):t.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(e){var t=this._createBaseSVGMarkup();return t.push("'),e?e(t.join("")):t.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 i(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}var r=t.Object.prototype.stateProperties.concat();r.push("rx","ry","x","y"),t.Rect=t.util.createClass(t.Object,{stateProperties:r,type:"rect",rx:0,ry:0,x:0,y:0,strokeDashArray:null,initialize:function(e){e=e||{},this.callSuper("initialize",e),this._initRxRy(),this.x=e.x||0,this.y=e.y||0},_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);var a=t!==0||n!==0;e.moveTo(r+t,i),e.lineTo(r+s-t,i),a&&e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),a&&e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),a&&e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),a&&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){var t=n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0,x:this.get("x"),y:this.get("y")});return this.includeDefaultValues||this._removeDefaultValues(t),t},toSVG:function(e){var t=this._createBaseSVGMarkup();return t.push("'),e?e(t.join("")):t.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,r){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=i(s);var o=new t.Rect(n(r?t.util.object.clone(r):{},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(e){var t=[],r=this._createBaseSVGMarkup();for(var i=0,s=this.points.length;i'),e?e(r.join("")):r.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'),e?e(n.join("")):n.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"},toObject:function(e){var t=s(this.callSuper("toObject",e),{path:this.path,pathOffset:this.pathOffset});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(e){var t=[],n=this._createBaseSVGMarkup();for(var r=0,i=this.path.length;r',"",""),e?e(n.join("")):n.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 r=0,i=t.length;r"),e?e(n.join("")):n.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)},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e,n){typeof e.paths=="string"?t.loadSVGFromURL(e.paths,function(r){var i=e.paths;delete e.paths;var s=t.util.groupSVGElements(r,e,i);n(s)}):t.util.enlivenObjects(e.paths,function(r){delete e.paths,n(new t.PathGroup(r,e))})},t.PathGroup.async=!0}(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._moveFlippedObject(e),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,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'];for(var n=0,r=this._objects.length;n"),e?e(t.join("")):t.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 n=this.fill;this.fill=null,t.push("'),this.fill=n}return t.push(""),e?e(t.join("")):t.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._element=this._originalElement,e&&e();return}var t=this._originalElement,n=fabric.util.createCanvasElement(),r=fabric.util.createImage(),i=this;return 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,fabric.isLikelyNode?(r.src=n.toBuffer(undefined,fabric.Image.pngCompression),i._element=r,e&&e()):(r.onload=function(){i._element=r,e&&e(),r.onload=n=t=null},r.src=n.toDataURL("image/png")),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,t){e.filters&&e.filters.length?fabric.util.enlivenObjects(e.filters,function(e){t&&t(e)},"fabric.Image.filters"):t&&t()},_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;n.onload=function(){fabric.Image.prototype._initFilters.call(e,e,function(r){e.filters=r||[];var i=new fabric.Image(n,e);t&&t(i),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,fabric.Image.pngCompression=1}(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.BaseFilter=fabric.util.createClass({type:"BaseFilter",toObject:function(){return{type:this.type}},toJSON:function(){return this.toObject()}}),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend;t.Image.filters.Brightness=t.util.createClass(t.Image.filters.BaseFilter,{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&&C-1?e.channel:0},applyTo:function(e){if(!this.mask)return;var n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=r.data,s=this.mask.getElement(),o=t.util.createCanvasElement(),u=this.channel,a,f=r.width*r.height*4;o.width=s.width,o.height=s.height,o.getContext("2d").drawImage(s,0,0,s.width,s.height);var l=o.getContext("2d").getImageData(0,0,s.width,s.height),c=l.data;for(a=0;ao&&f>o&&l>o&&u(a-f)'},_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)},_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.clipTo&&t.util.clipContext(this,e),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._setShadow(e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this._removeShadow(e),e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this.clipTo&&e.restore(),this._setBoundaries(e,n),this._totalLineHeight=0},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_drawChars:function(e,t,n,r,i){t[e](n,r,i)},_drawTextLine:function(e,t,n,r,i,s){i-=this.fontSize/4;if(this.textAlign!=="justify"){this._drawChars(e,t,n,r,i,s);return}var o=t.measureText(n).width,u=this.width;if(u>o){var a=n.split(/\s+/),f=t.measureText(n.replace(/\s+/g,"")).width,l=u-f,c=a.length-1,h=l/c,p=0;for(var d=0,v=a.length;d-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(this.fontSize*this.lineHeight-this.fontSize)},_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(" ")},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){var t=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,textAlign:this.textAlign,path:this.path,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative});return this.includeDefaultValues||this._removeDefaultValues(t),t},toSVG:function(e){var t=[],n=this.text.split(/\r?\n/),r=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,s=-(this.width/2),o=this.useNative?this.fontSize-1:this.height/2-n.length*this.fontSize-this._totalLineHeight,u=this._getSVGTextAndBg(r,s,n),a=this._getSVGShadows(r,n);return o+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,t.push('',u.textBgRects.join(""),"',a.join(""),u.textSpans.join(""),"",""),e?e(t.join("")):t.join("")},_getSVGShadows:function(e,n){var r=[],s,o,u=1;if(!this.shadow||!this._boundaries)return r;for(s=0,o=n.length;s",t.util.string.escapeXml(n[s]),""),u=1}else u++;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()+'"'},_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 this._dimensionAffectingProps&&(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),fabric.util.object.extend(fabric.Text.prototype,{_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.shadow&&this.shadow.toString(),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,n=null,this.setCoords()},_initDummyElementForCufon:function(){var e=fabric.document.createElement("pre"),t=fabric.document.createElement("div");return t.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}}),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");n.readFile(e,function(e,n){if(e)throw fabric.log(e),e;t(n)})}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 instanceof Buffer||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,n){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),e.indexOf("http")!==0?request_fs(e,function(e){fabric.loadSVGFromString(e,t,n)}):request(e,"",function(e){fabric.loadSVGFromString(e,t,n)})},fabric.loadSVGFromString=function(e,t,n){var r=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(r.documentElement,function(e,n){t&&t(e,n)},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,function(e){r.filters=e||[],t&&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 7dd0117bd4a61bd2baf0f7d84f9ca9fbb67dc9d5..94fea87c628461eae7635af90814c91217c61781 100644 GIT binary patch delta 49695 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≺z-PQmM-cS)e6Fq*rtNw26Y@HS#KJW+m7RCeotji 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 Io}c0Z0MohnIsgCw delta 49666 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%0Dy#$#}B2rej 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