/** * @license jCanvas v20.0.0 * Copyright 2017 Caleb Evans * Released under the MIT license */ !function(a,b,c){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=function(a,b){return c(a,b)}:c(a,b)}("undefined"!=typeof window?window.jQuery:{},"undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a){var b,c=this;for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&(c[b]=a[b]);return c}function d(){pa(this,d.baseDefaults)}function e(a){return"string"===ra(a)}function f(a){return!isNaN(na(a))&&!isNaN(oa(a))}function g(a){return a&&a.getContext?a.getContext("2d"):null}function h(a){var b,c;for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&(c=a[b],"string"===ra(c)&&f(c)&&"text"!==b&&(a[b]=oa(c)));void 0!==a.text&&(a.text=String(a.text))}function i(a){return a=pa({},a),a.masks=a.masks.slice(0),a}function j(a,b){var c;a.save(),c=i(b.transforms),b.savedTransforms.push(c)}function k(a,b){0===b.savedTransforms.length?b.transforms=i(Ea):(a.restore(),b.transforms=b.savedTransforms.pop())}function l(a,b,c,d){c[d]&&(sa(c[d])?b[d]=c[d].call(a,c):b[d]=c[d])}function m(a,b,c){l(a,b,c,"fillStyle"),l(a,b,c,"strokeStyle"),b.lineWidth=c.strokeWidth,c.rounded?b.lineCap=b.lineJoin="round":(b.lineCap=c.strokeCap,b.lineJoin=c.strokeJoin,b.miterLimit=c.miterLimit),c.strokeDash||(c.strokeDash=[]),b.setLineDash&&b.setLineDash(c.strokeDash),b.webkitLineDash=c.strokeDash,b.lineDashOffset=b.webkitLineDashOffset=b.mozDashOffset=c.strokeDashOffset,b.shadowOffsetX=c.shadowX,b.shadowOffsetY=c.shadowY,b.shadowBlur=c.shadowBlur,b.shadowColor=c.shadowColor,b.globalAlpha=c.opacity,b.globalCompositeOperation=c.compositing,c.imageSmoothing&&(b.imageSmoothingEnabled=b.mozImageSmoothingEnabled=c.imageSmoothingEnabled)}function n(a,b,c){c.mask&&(c.autosave&&j(a,b),a.clip(),b.transforms.masks.push(c._args))}function o(a,b){b._transformed&&a.restore()}function p(a,b,c){var d;c.closed&&b.closePath(),c.shadowStroke&&0!==c.strokeWidth?(b.stroke(),b.fill(),b.shadowColor="transparent",b.shadowBlur=0,b.stroke()):(b.fill(),"transparent"!==c.fillStyle&&(b.shadowColor="transparent"),0!==c.strokeWidth&&b.stroke()),c.closed||b.closePath(),o(b,c),c.mask&&(d=r(a),n(b,d,c))}function q(a,b,c,d,e){c._toRad=c.inDegrees?ua/180:1,c._transformed=!0,b.save(),c.fromCenter||c._centered||void 0===d||(void 0===e&&(e=d),c.x+=d/2,c.y+=e/2,c._centered=!0),c.rotate&&Q(b,c,null),1===c.scale&&1===c.scaleX&&1===c.scaleY||R(b,c,null),(c.translate||c.translateX||c.translateY)&&S(b,c,null)}function r(b){var c,d=Da.dataCache;return d._canvas===b&&d._data?c=d._data:(c=a.data(b,"jCanvas"),c||(c={canvas:b,layers:[],layer:{names:{},groups:{}},eventHooks:{},intersecting:[],lastIntersected:null,cursor:a(b).css("cursor"),drag:{layer:null,dragging:!1},event:{type:null,x:null,y:null},events:{},transforms:i(Ea),savedTransforms:[],animating:!1,animated:null,pixelRatio:1,scaled:!1},a.data(b,"jCanvas",c)),d._canvas=b,d._data=c),c}function s(a,b,c){var d;for(d in Ha.events)Object.prototype.hasOwnProperty.call(Ha.events,d)&&(c[d]||c.cursors&&c.cursors[d])&&t(a,b,c,d);b.events.mouseout||(a.bind("mouseout.jCanvas",function(){var c,d=b.drag.layer;for(d&&(b.drag={},E(a,b,d,"dragcancel")),c=0;c=0;c-=1)if(b=a.intersecting[c],b._masks){for(e=b._masks.length-1;e>=0;e-=1)if(d=b._masks[e],!d.intersects){b.intersects=!1;break}if(b.intersects&&!b.intangible)break}return b&&b.intangible&&(b=null),b}function y(a,b,c,d){c&&c.visible&&c._method&&(c._next=d||null,c._method&&c._method.call(a,c))}function z(a,b,c){var d,e,f,g,h,i,j,k,l,m;if(g=b.drag,e=g.layer,h=e&&e.dragGroups||[],d=b.layers,"mousemove"===c||"touchmove"===c){if(g.dragging||(g.dragging=!0,e.dragging=!0,e.bringToFront&&(d.splice(e.index,1),e.index=d.push(e)),e._startX=e.x,e._startY=e.y,e._endX=e._eventX,e._endY=e._eventY,E(a,b,e,"dragstart")),g.dragging)for(l=e._eventX-(e._endX-e._startX),m=e._eventY-(e._endY-e._startY),e.dx=l-e.x,e.dy=m-e.y,"y"!==e.restrictDragToAxis&&(e.x=l),"x"!==e.restrictDragToAxis&&(e.y=m),E(a,b,e,"drag"),k=0;kd.width&&(d.width=g);f=b.style.fontSize,b.style.fontSize=d.fontSize,d.height=oa(a.css(b,"fontSize"))*e.length*d.lineHeight,b.style.fontSize=f}}function ga(a,b){var c,d,e,f,g,h,i=String(b.text),j=b.maxWidth,k=i.split("\n"),l=[];for(e=0;ej&&(""!==d&&c.push(d),d=""),d+=g[h],h!==g.length-1&&(d+=" ");c.push(d)}l=l.concat(c.join("\n").replace(/((\n))|($)/gi,"$2").split("\n"))}return l}var ha,ia=b.document,ja=b.Image,ka=b.Array,la=b.getComputedStyle,ma=b.Math,na=b.Number,oa=b.parseFloat,pa=a.extend,qa=a.inArray,ra=function(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()},sa=a.isFunction,ta=a.isPlainObject,ua=ma.PI,va=ma.round,wa=ma.abs,xa=ma.sin,ya=ma.cos,za=ma.atan2,Aa=ka.prototype.slice,Ba=a.event.fix,Ca={},Da={dataCache:{},propCache:{},imageCache:{}},Ea={rotate:0,scaleX:1,scaleY:1,translateX:0,translateY:0,masks:[]},Fa={},Ga=["mousedown","mousemove","mouseup","mouseover","mouseout","touchstart","touchmove","touchend"],Ha={events:{},eventHooks:{},future:{}};d.baseDefaults={align:"center",arrowAngle:90,arrowRadius:0,autosave:!0,baseline:"middle",bringToFront:!1,ccw:!1,closed:!1,compositing:"source-over",concavity:0,cornerRadius:0,count:1,cropFromCenter:!0,crossOrigin:null,cursors:null,disableEvents:!1,draggable:!1,dragGroups:null,groups:null,data:null,dx:null,dy:null,end:360,eventX:null,eventY:null,fillStyle:"transparent",fontStyle:"normal",fontSize:"12pt",fontFamily:"sans-serif",fromCenter:!0,height:null,imageSmoothing:!0,inDegrees:!0,intangible:!1,index:null,letterSpacing:null,lineHeight:1,layer:!1,mask:!1,maxWidth:null,miterLimit:10,name:null,opacity:1,r1:null,r2:null,radius:0,repeat:"repeat",respectAlign:!1,restrictDragToAxis:null,rotate:0,rounded:!1,scale:1,scaleX:1,scaleY:1,shadowBlur:0,shadowColor:"transparent",shadowStroke:!1,shadowX:0,shadowY:0,sHeight:null,sides:0,source:"",spread:0,start:0,strokeCap:"butt",strokeDash:null,strokeDashOffset:0,strokeJoin:"miter",strokeStyle:"transparent",strokeWidth:1,sWidth:null,sx:null,sy:null,text:"",translate:0,translateX:0,translateY:0,type:null,visible:!0,width:null,x:0,y:0},ha=new d,c.prototype=ha,Ha.extend=function(b){return b.name&&(b.props&&pa(ha,b.props),a.fn[b.name]=function a(d){var e,f,h,i,j=this;for(f=0;fs.height&&(d.sy=s.height-d.sHeight/2),d.sx-d.sWidth/2<0&&(d.sx=d.sWidth/2),d.sx+d.sWidth/2>s.width&&(d.sx=s.width-d.sWidth/2),q(a,b,d,d.width,d.height),m(a,b,d),b.drawImage(s,d.sx-d.sWidth/2,d.sy-d.sHeight/2,d.sWidth,d.sHeight,d.x-d.width/2,d.y-d.height/2,d.width,d.height)):(q(a,b,d,d.width,d.height),m(a,b,d),b.drawImage(s,d.x-d.width/2,d.y-d.height/2,d.width,d.height)),b.beginPath(),b.rect(d.x-d.width/2,d.y-d.height/2,d.width,d.height),P(a,b,d),b.closePath(),o(b,d),n(b,c,d)}function f(b,c,d,f,g){return function(){var h=a(b);e(b,c,d,f,g),f.layer?E(h,d,g,"load"):f.load&&f.load.call(h[0],g),f.layer&&(g._masks=d.transforms.masks.slice(0),f._next&&h.drawLayers({clear:!1,resetFire:!0,index:f._next}))}}var h,i,j,k,l,p,s,t,u,v=this,w=Da.imageCache;for(i=0;i")[0],h.width=f.width,h.height=f.height,i=g(h),k.call(h,i),d()):(i=k.getContext,k.src||i?h=k:(h=new ja,k.match(/^data:/i)||(h.crossOrigin=f.crossOrigin),h.src=k),h.complete||i?d():(h.onload=d,h.src=h.src))):j=null,j},a.fn.createGradient=function(a){var b,d,e,f,h,i,j,k,l,m,n=this,o=[];if(d=new c(a),b=g(n[0])){for(d.x1=d.x1||0,d.y1=d.y1||0,d.x2=d.x2||0,d.y2=d.y2||0, e=null!==d.r1&&null!==d.r2?b.createRadialGradient(d.x1,d.y1,d.r1,d.x2,d.y2,d.r2):b.createLinearGradient(d.x1,d.y1,d.x2,d.y2),j=1;void 0!==d["c"+j];j+=1)void 0!==d["s"+j]?o.push(d["s"+j]):o.push(null);for(f=o.length,null===o[0]&&(o[0]=0),null===o[f-1]&&(o[f-1]=1),j=0;ji&&(o[k]=o[j])}else null===o[j]&&(m+=1,o[j]=h+m*((i-h)/l));e.addColorStop(o[j],d["c"+(j+1)])}}else e=null;return e},a.fn.setPixels=function a(b){var d,e,f,h,i,j,k,l,m,n=this;for(e=0;e")[0].getContext,pa(Ha,{defaults:ha,setGlobalProps:m,transformShape:q,detectEvents:P,closePath:p,setCanvasFont:ea,measureText:fa}),a.jCanvas=Ha,a.jCanvasObject=c});