1/*! 2 * Signature Pad v4.1.5 | https://github.com/szimek/signature_pad 3 * (c) 2023 Szymon Nowak | Released under the MIT license 4 * 5 * How to generate this library: 6 * 1) Check-out the repo 7 * 2) Install all dependencies as required 8 * 3) Update target ECMAScript version in rollup.config.js for "UMD unminified" option 9 * 4) Run `npm run build` 10 * 5) Copy over dist/signature_pad.umd.js file content 11 */ 12(function(b,a){typeof exports==="object"&&typeof module!=="undefined"?module.exports=a():typeof define==="function"&&define.amd?define(a):(b=typeof globalThis!=="undefined"?globalThis:b||self,b.SignaturePad=a())})(this,(function(){var f=function(j,i){f=Object.setPrototypeOf||({__proto__:[]} instanceof Array&&function(l,k){l.__proto__=k})||function(m,k){for(var l in k){if(Object.prototype.hasOwnProperty.call(k,l)){m[l]=k[l]}}};return f(j,i)};function c(k,i){if(typeof i!=="function"&&i!==null){throw new TypeError("Class extends value "+String(i)+" is not a constructor or null")}f(k,i);function j(){this.constructor=k}k.prototype=i===null?Object.create(i):(j.prototype=i.prototype,new j())}var b=function(){i=Object.assign||function i(k){for(var l,j=1,o=arguments.length;j<o;j++){l=arguments[j];for(var m in l){if(Object.prototype.hasOwnProperty.call(l,m)){k[m]=l[m]}}}return k};return i.apply(this,arguments)};var e=(function(){function i(j,m,l,k){if(isNaN(j)||isNaN(m)){throw new Error("Point is invalid: (".concat(j,", ").concat(m,")"))}this.x=+j;this.y=+m;this.pressure=l||0;this.time=k||Date.now()}i.prototype.distanceTo=function(j){return Math.sqrt(Math.pow(this.x-j.x,2)+Math.pow(this.y-j.y,2))};i.prototype.equals=function(j){return(this.x===j.x&&this.y===j.y&&this.pressure===j.pressure&&this.time===j.time)};i.prototype.velocityFrom=function(j){return this.time!==j.time?this.distanceTo(j)/(this.time-j.time):0};return i}());var d=(function(){function i(n,k,l,m,j,o){this.startPoint=n;this.control2=k;this.control1=l;this.endPoint=m;this.startWidth=j;this.endWidth=o}i.fromPoints=function(l,m){var k=this.calculateControlPoints(l[0],l[1],l[2]).c2;var j=this.calculateControlPoints(l[1],l[2],l[3]).c1;return new i(l[1],k,j,l[2],m.start,m.end)};i.calculateControlPoints=function(x,v,s){var w=x.x-v.x;var r=x.y-v.y;var u=v.x-s.x;var q=v.y-s.y;var A={x:(x.x+v.x)/2,y:(x.y+v.y)/2};var z={x:(v.x+s.x)/2,y:(v.y+s.y)/2};var m=Math.sqrt(w*w+r*r);var l=Math.sqrt(u*u+q*q);var j=A.x-z.x;var y=A.y-z.y;var n=l/(m+l);var t={x:z.x+j*n,y:z.y+y*n};var p=v.x-t.x;var o=v.y-t.y;return{c1:new e(A.x+p,A.y+o),c2:new e(z.x+p,z.y+o)}};i.prototype.length=function(){var p=10;var j=0;var r;var q;for(var o=0;o<=p;o+=1){var s=o/p;var m=this.point(s,this.startPoint.x,this.control1.x,this.control2.x,this.endPoint.x);var l=this.point(s,this.startPoint.y,this.control1.y,this.control2.y,this.endPoint.y);if(o>0){var n=m-r;var k=l-q;j+=Math.sqrt(n*n+k*k)}r=m;q=l}return j};i.prototype.point=function(l,n,m,k,j){return(n*(1-l)*(1-l)*(1-l))+(3*m*(1-l)*(1-l)*l)+(3*k*(1-l)*l*l)+(j*l*l*l)};return i}());var a=(function(){function i(){try{this._et=new EventTarget()}catch(j){this._et=document}}i.prototype.addEventListener=function(k,l,j){this._et.addEventListener(k,l,j)};i.prototype.dispatchEvent=function(j){return this._et.dispatchEvent(j)};i.prototype.removeEventListener=function(k,l,j){this._et.removeEventListener(k,l,j)};return i}());function g(o,k){if(k===void 0){k=250}var l=0;var n=null;var q;var p;var m;var j=function(){l=Date.now();n=null;q=o.apply(p,m);if(!n){p=null;m=[]}};return function i(){var s=[];for(var u=0;u<arguments.length;u++){s[u]=arguments[u]}var r=Date.now();var t=k-(r-l);p=this;m=s;if(t<=0||t>k){if(n){clearTimeout(n);n=null}l=r;q=o.apply(p,m);if(!n){p=null;m=[]}}else{if(!n){n=window.setTimeout(j,t)}}return q}}var h=(function(i){c(j,i);function j(l,k){if(k===void 0){k={}}var m=i.call(this)||this;m.canvas=l;m._drawningStroke=false;m._isEmpty=true;m._lastPoints=[];m._data=[];m._lastVelocity=0;m._lastWidth=0;m._handleMouseDown=function(n){if(n.buttons===1){m._drawningStroke=true;m._strokeBegin(n)}};m._handleMouseMove=function(n){if(m._drawningStroke){m._strokeMoveUpdate(n)}};m._handleMouseUp=function(n){if(n.buttons===1&&m._drawningStroke){m._drawningStroke=false;m._strokeEnd(n)}};m._handleTouchStart=function(n){if(n.cancelable){n.preventDefault()}if(n.targetTouches.length===1){var o=n.changedTouches[0];m._strokeBegin(o)}};m._handleTouchMove=function(n){if(n.cancelable){n.preventDefault()}var o=n.targetTouches[0];m._strokeMoveUpdate(o)};m._handleTouchEnd=function(n){var o=n.target===m.canvas;if(o){if(n.cancelable){n.preventDefault()}var p=n.changedTouches[0];m._strokeEnd(p)}};m._handlePointerStart=function(n){m._drawningStroke=true;n.preventDefault();m._strokeBegin(n)};m._handlePointerMove=function(n){if(m._drawningStroke){n.preventDefault();m._strokeMoveUpdate(n)}};m._handlePointerEnd=function(n){if(m._drawningStroke){n.preventDefault();m._drawningStroke=false;m._strokeEnd(n)}};m.velocityFilterWeight=k.velocityFilterWeight||0.7;m.minWidth=k.minWidth||0.5;m.maxWidth=k.maxWidth||2.5;m.throttle=("throttle" in k?k.throttle:16);m.minDistance=("minDistance" in k?k.minDistance:5);m.dotSize=k.dotSize||0;m.penColor=k.penColor||"black";m.backgroundColor=k.backgroundColor||"rgba(0,0,0,0)";m._strokeMoveUpdate=m.throttle?g(j.prototype._strokeUpdate,m.throttle):j.prototype._strokeUpdate;m._ctx=l.getContext("2d");m.clear();m.on();return m}j.prototype.clear=function(){var m=this,k=m._ctx,l=m.canvas;k.fillStyle=this.backgroundColor;k.clearRect(0,0,l.width,l.height);k.fillRect(0,0,l.width,l.height);this._data=[];this._reset(this._getPointGroupOptions());this._isEmpty=true};j.prototype.fromDataURL=function(l,k){var m=this;if(k===void 0){k={}}return new Promise(function(s,r){var t=new Image();var q=k.ratio||window.devicePixelRatio||1;var p=k.width||m.canvas.width/q;var n=k.height||m.canvas.height/q;var o=k.xOffset||0;var u=k.yOffset||0;m._reset(m._getPointGroupOptions());t.onload=function(){m._ctx.drawImage(t,o,u,p,n);s()};t.onerror=function(v){r(v)};t.crossOrigin="anonymous";t.src=l;m._isEmpty=false})};j.prototype.toDataURL=function(k,l){if(k===void 0){k="image/png"}switch(k){case"image/svg+xml":if(typeof l!=="object"){l=undefined}return"data:image/svg+xml;base64,".concat(btoa(this.toSVG(l)));default:if(typeof l!=="number"){l=undefined}return this.canvas.toDataURL(k,l)}};j.prototype.on=function(){this.canvas.style.touchAction="none";this.canvas.style.msTouchAction="none";this.canvas.style.userSelect="none";var k=/Macintosh/.test(navigator.userAgent)&&"ontouchstart" in document;if(window.PointerEvent&&!k){this._handlePointerEvents()}else{this._handleMouseEvents();if("ontouchstart" in window){this._handleTouchEvents()}}};j.prototype.off=function(){this.canvas.style.touchAction="auto";this.canvas.style.msTouchAction="auto";this.canvas.style.userSelect="auto";this.canvas.removeEventListener("pointerdown",this._handlePointerStart);this.canvas.removeEventListener("pointermove",this._handlePointerMove);this.canvas.ownerDocument.removeEventListener("pointerup",this._handlePointerEnd);this.canvas.removeEventListener("mousedown",this._handleMouseDown);this.canvas.removeEventListener("mousemove",this._handleMouseMove);this.canvas.ownerDocument.removeEventListener("mouseup",this._handleMouseUp);this.canvas.removeEventListener("touchstart",this._handleTouchStart);this.canvas.removeEventListener("touchmove",this._handleTouchMove);this.canvas.removeEventListener("touchend",this._handleTouchEnd)};j.prototype.isEmpty=function(){return this._isEmpty};j.prototype.fromData=function(o,n){var m=n===void 0?{}:n,l=m.clear,k=l===void 0?true:l;if(k){this.clear()}this._fromData(o,this._drawCurve.bind(this),this._drawDot.bind(this));this._data=this._data.concat(o)};j.prototype.toData=function(){return this._data};j.prototype._getPointGroupOptions=function(k){return{penColor:k&&"penColor" in k?k.penColor:this.penColor,dotSize:k&&"dotSize" in k?k.dotSize:this.dotSize,minWidth:k&&"minWidth" in k?k.minWidth:this.minWidth,maxWidth:k&&"maxWidth" in k?k.maxWidth:this.maxWidth,velocityFilterWeight:k&&"velocityFilterWeight" in k?k.velocityFilterWeight:this.velocityFilterWeight}};j.prototype._strokeBegin=function(l){this.dispatchEvent(new CustomEvent("beginStroke",{detail:l}));var k=this._getPointGroupOptions();var m=b(b({},k),{points:[]});this._data.push(m);this._reset(k);this._strokeUpdate(l)};j.prototype._strokeUpdate=function(l){if(this._data.length===0){this._strokeBegin(l);return}this.dispatchEvent(new CustomEvent("beforeUpdateStroke",{detail:l}));var t=l.clientX;var r=l.clientY;var m=l.pressure!==undefined?l.pressure:l.force!==undefined?l.force:0;var u=this._createPoint(t,r,m);var n=this._data[this._data.length-1];var q=n.points;var s=q.length>0&&q[q.length-1];var p=s?u.distanceTo(s)<=this.minDistance:false;var k=this._getPointGroupOptions(n);if(!s||!(s&&p)){var o=this._addPoint(u,k);if(!s){this._drawDot(u,k)}else{if(o){this._drawCurve(o,k)}}q.push({time:u.time,x:u.x,y:u.y,pressure:u.pressure})}this.dispatchEvent(new CustomEvent("afterUpdateStroke",{detail:l}))};j.prototype._strokeEnd=function(k){this._strokeUpdate(k);this.dispatchEvent(new CustomEvent("endStroke",{detail:k}))};j.prototype._handlePointerEvents=function(){this._drawningStroke=false;this.canvas.addEventListener("pointerdown",this._handlePointerStart);this.canvas.addEventListener("pointermove",this._handlePointerMove);this.canvas.ownerDocument.addEventListener("pointerup",this._handlePointerEnd)};j.prototype._handleMouseEvents=function(){this._drawningStroke=false;this.canvas.addEventListener("mousedown",this._handleMouseDown);this.canvas.addEventListener("mousemove",this._handleMouseMove);this.canvas.ownerDocument.addEventListener("mouseup",this._handleMouseUp)};j.prototype._handleTouchEvents=function(){this.canvas.addEventListener("touchstart",this._handleTouchStart);this.canvas.addEventListener("touchmove",this._handleTouchMove);this.canvas.addEventListener("touchend",this._handleTouchEnd)};j.prototype._reset=function(k){this._lastPoints=[];this._lastVelocity=0;this._lastWidth=(k.minWidth+k.maxWidth)/2;this._ctx.fillStyle=k.penColor};j.prototype._createPoint=function(k,n,m){var l=this.canvas.getBoundingClientRect();return new e(k-l.left,n-l.top,m,new Date().getTime())};j.prototype._addPoint=function(k,l){var o=this._lastPoints;o.push(k);if(o.length>2){if(o.length===3){o.unshift(o[0])}var m=this._calculateCurveWidths(o[1],o[2],l);var n=d.fromPoints(o,m);o.shift();return n}return null};j.prototype._calculateCurveWidths=function(p,l,k){var o=k.velocityFilterWeight*l.velocityFrom(p)+(1-k.velocityFilterWeight)*this._lastVelocity;var n=this._strokeWidth(o,k);var m={end:n,start:this._lastWidth};this._lastVelocity=o;this._lastWidth=n;return m};j.prototype._strokeWidth=function(l,k){return Math.max(k.maxWidth/(l+1),k.minWidth)};j.prototype._drawCurveSegment=function(k,n,m){var l=this._ctx;l.moveTo(k,n);l.arc(k,n,m,0,2*Math.PI,false);this._isEmpty=false};j.prototype._drawCurve=function(m,C){var B=this._ctx;var z=m.endWidth-m.startWidth;var o=Math.ceil(m.length())*2;B.beginPath();B.fillStyle=C.penColor;for(var n=0;n<o;n+=1){var A=n/o;var p=A*A;var v=p*A;var w=1-A;var l=w*w;var q=l*w;var s=q*m.startPoint.x;s+=3*l*A*m.control1.x;s+=3*w*p*m.control2.x;s+=v*m.endPoint.x;var r=q*m.startPoint.y;r+=3*l*A*m.control1.y;r+=3*w*p*m.control2.y;r+=v*m.endPoint.y;var k=Math.min(m.startWidth+v*z,C.maxWidth);this._drawCurveSegment(s,r,k)}B.closePath();B.fill()};j.prototype._drawDot=function(k,m){var l=this._ctx;var n=m.dotSize>0?m.dotSize:(m.minWidth+m.maxWidth)/2;l.beginPath();this._drawCurveSegment(k.x,k.y,n);l.closePath();l.fillStyle=m.penColor;l.fill()};j.prototype._fromData=function(m,k,s){for(var p=0,q=m;p<q.length;p++){var u=q[p];var v=u.points;var l=this._getPointGroupOptions(u);if(v.length>1){for(var o=0;o<v.length;o+=1){var r=v[o];var t=new e(r.x,r.y,r.pressure,r.time);if(o===0){this._reset(l)}var n=this._addPoint(t,l);if(n){k(n,l)}}}else{this._reset(l);s(v[0],l)}}};j.prototype.toSVG=function(v){var t=v===void 0?{}
12:v,s=t.includeBackgroundColor,p=s===void 0?false:s;var m=this._data;var r=Math.max(window.devicePixelRatio||1,1);var o=0;var n=0;var l=this.canvas.width/r;var k=this.canvas.height/r;var q=document.createElementNS("http://www.w3.org/2000/svg","svg");q.setAttribute("xmlns","http://www.w3.org/2000/svg");q.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink");q.setAttribute("viewBox","".concat(o," ").concat(n," ").concat(l," ").concat(k));q.setAttribute("width",l.toString());q.setAttribute("height",k.toString());if(p&&this.backgroundColor){var u=document.createElement("rect");u.setAttribute("width","100%");u.setAttribute("height","100%");u.setAttribute("fill",this.backgroundColor);q.appendChild(u)}this._fromData(m,function(A,y){var x=y.penColor;var z=document.createElement("path");if(!isNaN(A.control1.x)&&!isNaN(A.control1.y)&&!isNaN(A.control2.x)&&!isNaN(A.control2.y)){var w="M ".concat(A.startPoint.x.toFixed(3),",").concat(A.startPoint.y.toFixed(3)," ")+"C ".concat(A.control1.x.toFixed(3),",").concat(A.control1.y.toFixed(3)," ")+"".concat(A.control2.x.toFixed(3),",").concat(A.control2.y.toFixed(3)," ")+"".concat(A.endPoint.x.toFixed(3),",").concat(A.endPoint.y.toFixed(3));z.setAttribute("d",w);z.setAttribute("stroke-width",(A.endWidth*2.25).toFixed(3));z.setAttribute("stroke",x);z.setAttribute("fill","none");z.setAttribute("stroke-linecap","round");q.appendChild(z)}},function(w,A){var y=A.penColor,x=A.dotSize,B=A.minWidth,C=A.maxWidth;var D=document.createElement("circle");var z=x>0?x:(B+C)/2;D.setAttribute("r",z.toString());D.setAttribute("cx",w.x.toString());D.setAttribute("cy",w.y.toString());D.setAttribute("fill",y);q.appendChild(D)});return q.outerHTML};return j}(a));return h}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.