74.chunk.js
9.14 KB
webpackJsonpecCom([74],{1549:function(t,e,i){"use strict";function o(t,e,i){this.x=t,this.y=e,this.time=i||(new Date).getTime()}function n(t,e,i,o){this.startPoint=t,this.control1=e,this.control2=i,this.endPoint=o}function s(t,e,i){var o,n,s,h=null,r=0;i||(i={});var a=function(){r=!1===i.leading?0:Date.now(),h=null,s=t.apply(o,n),h||(o=n=null)};return function(){var c=Date.now();r||!1!==i.leading||(r=c);var l=e-(c-r);return o=this,n=arguments,l<=0||l>e?(h&&(clearTimeout(h),h=null),r=c,s=t.apply(o,n),h||(o=n=null)):h||!1===i.trailing||(h=setTimeout(a,l)),s}}function h(t,e){var i=this,o=e||{};this.velocityFilterWeight=o.velocityFilterWeight||.7,this.minWidth=o.minWidth||.5,this.maxWidth=o.maxWidth||2.5,this.throttle="throttle"in o?o.throttle:16,this.minDistance="minDistance"in o?o.minDistance:5,this.throttle?this._strokeMoveUpdate=s(h.prototype._strokeUpdate,this.throttle):this._strokeMoveUpdate=h.prototype._strokeUpdate,this.dotSize=o.dotSize||function(){return(this.minWidth+this.maxWidth)/2},this.penColor=o.penColor||"black",this.backgroundColor=o.backgroundColor||"rgba(0,0,0,0)",this.onBegin=o.onBegin,this.onEnd=o.onEnd,this._canvas=t,this._ctx=t.getContext("2d"),this.clear(),this._handleMouseDown=function(t){1===t.which&&(i._mouseButtonDown=!0,i._strokeBegin(t))},this._handleMouseMove=function(t){i._mouseButtonDown&&i._strokeMoveUpdate(t)},this._handleMouseUp=function(t){1===t.which&&i._mouseButtonDown&&(i._mouseButtonDown=!1,i._strokeEnd(t))},this._handleTouchStart=function(t){if(1===t.targetTouches.length){var e=t.changedTouches[0];i._strokeBegin(e)}},this._handleTouchMove=function(t){t.preventDefault();var e=t.targetTouches[0];i._strokeMoveUpdate(e)},this._handleTouchEnd=function(t){t.target===i._canvas&&(t.preventDefault(),i._strokeEnd(t))},this.on()}Object.defineProperty(e,"__esModule",{value:!0}),o.prototype.velocityFrom=function(t){return this.time!==t.time?this.distanceTo(t)/(this.time-t.time):1},o.prototype.distanceTo=function(t){return Math.sqrt(Math.pow(this.x-t.x,2)+Math.pow(this.y-t.y,2))},o.prototype.equals=function(t){return this.x===t.x&&this.y===t.y&&this.time===t.time},n.prototype.length=function(){for(var t=0,e=void 0,i=void 0,o=0;o<=10;o+=1){var n=o/10,s=this._point(n,this.startPoint.x,this.control1.x,this.control2.x,this.endPoint.x),h=this._point(n,this.startPoint.y,this.control1.y,this.control2.y,this.endPoint.y);if(o>0){var r=s-e,a=h-i;t+=Math.sqrt(r*r+a*a)}e=s,i=h}return t},n.prototype._point=function(t,e,i,o,n){return e*(1-t)*(1-t)*(1-t)+3*i*(1-t)*(1-t)*t+3*o*(1-t)*t*t+n*t*t*t},h.prototype.clear=function(){var t=this._ctx,e=this._canvas;t.fillStyle=this.backgroundColor,t.clearRect(0,0,e.width,e.height),t.fillRect(0,0,e.width,e.height),this._data=[],this._reset(),this._isEmpty=!0},h.prototype.fromDataURL=function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=new Image,n=i.ratio||window.devicePixelRatio||1,s=i.width||this._canvas.width/n,h=i.height||this._canvas.height/n;this._reset(),o.src=t,o.onload=function(){e._ctx.drawImage(o,0,0,s,h)},this._isEmpty=!1},h.prototype.toDataURL=function(t){var e;switch(t){case"image/svg+xml":return this._toSVG();default:for(var i=arguments.length,o=Array(i>1?i-1:0),n=1;n<i;n++)o[n-1]=arguments[n];return(e=this._canvas).toDataURL.apply(e,[t].concat(o))}},h.prototype.on=function(){this._handleMouseEvents(),this._handleTouchEvents()},h.prototype.off=function(){this._canvas.removeEventListener("mousedown",this._handleMouseDown),this._canvas.removeEventListener("mousemove",this._handleMouseMove),document.removeEventListener("mouseup",this._handleMouseUp),this._canvas.removeEventListener("touchstart",this._handleTouchStart),this._canvas.removeEventListener("touchmove",this._handleTouchMove),this._canvas.removeEventListener("touchend",this._handleTouchEnd)},h.prototype.isEmpty=function(){return this._isEmpty},h.prototype._strokeBegin=function(t){this._data.push([]),this._reset(),this._strokeUpdate(t),"function"===typeof this.onBegin&&this.onBegin(t)},h.prototype._strokeUpdate=function(t){var e=t.clientX,i=t.clientY,o=this._createPoint(e,i),n=this._data[this._data.length-1],s=n&&n[n.length-1],h=s&&o.distanceTo(s)<this.minDistance;if(!s||!h){var r=this._addPoint(o),a=r.curve,c=r.widths;a&&c&&this._drawCurve(a,c.start,c.end),this._data[this._data.length-1].push({x:o.x,y:o.y,time:o.time,color:this.penColor})}},h.prototype._strokeEnd=function(t){var e=this.points.length>2,i=this.points[0];if(!e&&i&&this._drawDot(i),i){var o=this._data[this._data.length-1],n=o[o.length-1];i.equals(n)||o.push({x:i.x,y:i.y,time:i.time,color:this.penColor})}"function"===typeof this.onEnd&&this.onEnd(t)},h.prototype._handleMouseEvents=function(){this._mouseButtonDown=!1,this._canvas.addEventListener("mousedown",this._handleMouseDown),this._canvas.addEventListener("mousemove",this._handleMouseMove),document.addEventListener("mouseup",this._handleMouseUp)},h.prototype._handleTouchEvents=function(){this._canvas.style.msTouchAction="none",this._canvas.style.touchAction="none",this._canvas.addEventListener("touchstart",this._handleTouchStart),this._canvas.addEventListener("touchmove",this._handleTouchMove),this._canvas.addEventListener("touchend",this._handleTouchEnd)},h.prototype._reset=function(){this.points=[],this._lastVelocity=0,this._lastWidth=(this.minWidth+this.maxWidth)/2,this._ctx.fillStyle=this.penColor},h.prototype._createPoint=function(t,e,i){var n=this._canvas.getBoundingClientRect();return new o(t-n.left,e-n.top,i||(new Date).getTime())},h.prototype._addPoint=function(t){var e=this.points,i=void 0;if(e.push(t),e.length>2){3===e.length&&e.unshift(e[0]),i=this._calculateCurveControlPoints(e[0],e[1],e[2]);var o=i.c2;i=this._calculateCurveControlPoints(e[1],e[2],e[3]);var s=i.c1,h=new n(e[1],o,s,e[2]),r=this._calculateCurveWidths(h);return e.shift(),{curve:h,widths:r}}return{}},h.prototype._calculateCurveControlPoints=function(t,e,i){var n=t.x-e.x,s=t.y-e.y,h=e.x-i.x,r=e.y-i.y,a={x:(t.x+e.x)/2,y:(t.y+e.y)/2},c={x:(e.x+i.x)/2,y:(e.y+i.y)/2},l=Math.sqrt(n*n+s*s),d=Math.sqrt(h*h+r*r),u=a.x-c.x,v=a.y-c.y,_=d/(l+d),p={x:c.x+u*_,y:c.y+v*_},y=e.x-p.x,f=e.y-p.y;return{c1:new o(a.x+y,a.y+f),c2:new o(c.x+y,c.y+f)}},h.prototype._calculateCurveWidths=function(t){var e=t.startPoint,i=t.endPoint,o={start:null,end:null},n=this.velocityFilterWeight*i.velocityFrom(e)+(1-this.velocityFilterWeight)*this._lastVelocity,s=this._strokeWidth(n);return o.start=this._lastWidth,o.end=s,this._lastVelocity=n,this._lastWidth=s,o},h.prototype._strokeWidth=function(t){return Math.max(this.maxWidth/(t+1),this.minWidth)},h.prototype._drawPoint=function(t,e,i){var o=this._ctx;o.moveTo(t,e),o.arc(t,e,i,0,2*Math.PI,!1),this._isEmpty=!1},h.prototype._drawCurve=function(t,e,i){var o=this._ctx,n=i-e,s=Math.floor(t.length());o.beginPath();for(var h=0;h<s;h+=1){var r=h/s,a=r*r,c=a*r,l=1-r,d=l*l,u=d*l,v=u*t.startPoint.x;v+=3*d*r*t.control1.x,v+=3*l*a*t.control2.x,v+=c*t.endPoint.x;var _=u*t.startPoint.y;_+=3*d*r*t.control1.y,_+=3*l*a*t.control2.y,_+=c*t.endPoint.y;var p=e+c*n;this._drawPoint(v,_,p)}o.closePath(),o.fill()},h.prototype._drawDot=function(t){var e=this._ctx,i="function"===typeof this.dotSize?this.dotSize():this.dotSize;e.beginPath(),this._drawPoint(t.x,t.y,i),e.closePath(),e.fill()},h.prototype._fromData=function(t,e,i){for(var n=0;n<t.length;n+=1){var s=t[n];if(s.length>1)for(var h=0;h<s.length;h+=1){var r=s[h],a=new o(r.x,r.y,r.time),c=r.color;if(0===h)this.penColor=c,this._reset(),this._addPoint(a);else if(h!==s.length-1){var l=this._addPoint(a),d=l.curve,u=l.widths;d&&u&&e(d,u,c)}}else{this._reset();i(s[0])}}},h.prototype._toSVG=function(){var t=this,e=this._data,i=this._canvas,o=Math.max(window.devicePixelRatio||1,1),n=i.width/o,s=i.height/o,h=document.createElementNS("http://www.w3.org/2000/svg","svg");h.setAttributeNS(null,"width",i.width),h.setAttributeNS(null,"height",i.height),this._fromData(e,function(t,e,i){var o=document.createElement("path");if(!isNaN(t.control1.x)&&!isNaN(t.control1.y)&&!isNaN(t.control2.x)&&!isNaN(t.control2.y)){var n="M "+t.startPoint.x.toFixed(3)+","+t.startPoint.y.toFixed(3)+" C "+t.control1.x.toFixed(3)+","+t.control1.y.toFixed(3)+" "+t.control2.x.toFixed(3)+","+t.control2.y.toFixed(3)+" "+t.endPoint.x.toFixed(3)+","+t.endPoint.y.toFixed(3);o.setAttribute("d",n),o.setAttribute("stroke-width",(2.25*e.end).toFixed(3)),o.setAttribute("stroke",i),o.setAttribute("fill","none"),o.setAttribute("stroke-linecap","round"),h.appendChild(o)}},function(e){var i=document.createElement("circle"),o="function"===typeof t.dotSize?t.dotSize():t.dotSize;i.setAttribute("r",o),i.setAttribute("cx",e.x),i.setAttribute("cy",e.y),i.setAttribute("fill",e.color),h.appendChild(i)});var r='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 '+n+" "+s+'" width="'+n+'" height="'+s+'">',a=h.innerHTML;if(void 0===a){var c=document.createElement("dummy"),l=h.childNodes;c.innerHTML="";for(var d=0;d<l.length;d+=1)c.appendChild(l[d].cloneNode(!0));a=c.innerHTML}var u=r+a+"</svg>";return"data:image/svg+xml;base64,"+btoa(u)},h.prototype.fromData=function(t){var e=this;this.clear(),this._fromData(t,function(t,i){return e._drawCurve(t,i.start,i.end)},function(t){return e._drawDot(t)}),this._data=t},h.prototype.toData=function(){return this._data},e.default=h}});
//# sourceMappingURL=74.chunk.js.map?v=8058ba37