-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkeplr.min.js
2 lines (2 loc) · 12.5 KB
/
keplr.min.js
1
2
/* Keplr 1.4 */
Array.prototype.equals=function(t){if(!t)return!1;if(this.length!=t.length)return!1;for(var e=0,i=this.length;e<i;e++)if(this[e]instanceof Array&&t[e]instanceof Array){if(!this[e].equals(t[e]))return!1}else if(this[e]!==t[e])return!1;return!0},Array.prototype.last=function(t){return this[this.length-(null==t?1:t)]},Array.prototype.swap=function(t,e){let i=this[t];this[t]=this[e],this[e]=i},String.prototype.last=function(t){return this[this.length-(null==t?1:t-1)]},String.prototype.replaceAll=function(t,e){return this.replace(new RegExp(t,"g"),e)},HTMLCollection.prototype.last=function(t){return this[this.length-(null==t?1:t)]};var Keplr=class{constructor(t){if(this.element=document.querySelector(t),null==this.element)throw new Error("Query Selector returned null.");this.ctx=this.element.getContext("2d"),this.log=console.log,this.warn=console.warn,this.error=console.error,this.noop=(()=>{}),this.tk=0,this.tab=String.fromCharCode(9),this.toggleAnimate=1,this.lastTarget={outerHTML:"a"},this.checkTarget=function(){return"input"!=this.lastTarget.outerHTML.substring(1,6)},this.CREDITS="Made by Gem Games (2020)",this.ctx.lineJoin="round",this.ctx.lineWidth=2,this.ctx.fillStyle="#ffffff",this.ctx.strokeStyle="black",this.ctx.font="20px Arial",this.FunctionNames="element,ctx,log,warn,error,noop,tk,tab,toggleAnimate,lastTarget,checkTargetEULER,pi,tau,round,power,sqrt,abs,ceil,floor,min,max,squ,random,randInt,dist,mag,norm,map,lerp,angleMode,angleModeisDeg,deg,rad,sin,cos,tan,asin,acos,atan,rotateAngle,translate,scale,rotate,rotateShape,undoRotateShape,fillStyle,strokeStyle,lineWidth,width,height,beginPath,fillPath,closePath,drawPath,rect,circle,ellipse,line,triangle,quad,point,bezier,quadBezier,background,fill,noFill,stroke,noStroke,strokeWidth,likeWidth,strokeJoin,lineJoin,image,images,loadImage,linearGradient,radialGradient,rgb,rgba,hsl,hsla,hsv,hsva,hsb,hsba,lerpColor,day,month,year,hour,minute,second,millis,keyPressed,keyReleased,keyTyped,keyMatch,matchKeys,mouseClicked,mousePressed,mouseReleased,mouseMoved,mouseOver,mouseOut,mouseInCanvas,runFunction,embedPack,embed,"+"CREDITS".split(","),this.EULER=Math.E,this.pi=Math.PI,this.tau=2*Math.PI,this.round=Math.round,this.power=Math.pow,this.sqrt=Math.sqrt,this.abs=Math.abs,this.ceil=Math.ceil,this.floor=Math.floor,this.min=Math.min,this.max=Math.max,this.squ=(t=>t*t),this.random=(t=>Math.random()*t),this.randInt=function(t){return this.floor(Math.random()*t)},this.dist=function(t,e,i,s){return this.sqrt(this.squ(this.abs(i-t))+this.squ(this.abs(s-e)))},this.mag=function(t,e){return this.dist(0,0,t,e)},this.norm=((t,e,i)=>(t-e)/(i-e)),this.map=function(t,e,i,s,h){return t<e||t>i?NaN:this.norm(t,e,i)*(h-s)+s},this.lerp=((t,e,i)=>i*(e-t)+t),this.angleMode="DEG",this.angleModeisDeg=this.aMID=(t=>"DEG"==this.angleMode.toUpperCase().substring(0,3)),this.deg=(t=>t*Math.PI/180),this.rad=(t=>t/Math.PI*180),this.sin=function(t){return this.aMID()?Math.sin(this.deg(t)):Math.sin(t)},this.cos=function(t){return this.aMID()?Math.cos(this.deg(t)):Math.cos(t)},this.tan=function(t){return this.aMID()?Math.tan(this.deg(t)):Math.tan(t)},this.asin=function(t){return this.aMID()?this.deg(Math.asin(t)):Math.asin(t)},this.acos=function(t){return this.aMID()?this.deg(Math.acos(t)):Math.acos(t)},this.atan=function(t){return this.aMID()?this.deg(Math.atan(t)):Math.atan(t)},this.atan2=function(t,e){return this.aMID()?this.deg(Math.atan2(e,t)):Math.atan2(e,t)},this.rotateAngle=0,this.translate=function(t,e){this.ctx.translate(t,e)},this.scale=function(t,e){this.ctx.scale(t,e)},this.rotate=function(t){this.rotateAngle=this.aMID()?this.deg(t):t},this.rotateShape=function(t,e){0!=this.rotateAngle&&(this.ctx.translate(t,e),this.ctx.rotate(this.rotateAngle),this.ctx.translate(-t,-e))},this.undoRotateShape=function(t,e){0!=this.rotateAngle&&(this.ctx.translate(t,e),this.ctx.rotate(-this.rotateAngle),this.ctx.translate(-t,-e))},this.fillStyle="#ffffff",this.strokeStyle="black",this.lineWidth=2,this.width=this.element.offsetWidth,this.height=this.element.offsetHeight,this.beginPath=function(t,e){this.rotateShape(t,e),this.ctx.beginPath()},this.fillPath=function(){!1!==this.fillStyle?this.ctx.fill():this.ctx.stroke(),this.ctx.beginPath()},this.closePath=function(t,e){!1!==this.fillStyle&&this.ctx.stroke(),this.undoRotateShape(t,e),this.rotateAngle=0},this.drawPath={circle:(t,e,i)=>{this.ctx.arc(t,e,i/2,0,2*this.pi)},ellipse:(t,e,i,s)=>{this.ctx.moveTo(t+i/2,e),this.ctx.ellipse(t,e,i/2,s/2,0,0,this.tau)},line:(t,e,i,s)=>{this.ctx.moveTo(t,e),this.ctx.lineTo(i,s)},triangle:(t,e,i,s,h,n)=>{this.ctx.moveTo(t,e),this.ctx.lineTo(i,s),this.ctx.lineTo(h,n),this.ctx.lineTo(t,e),this.ctx.closePath()},quad:(t,e,i,s,h,n,a,o)=>{this.ctx.moveTo(t,e),this.ctx.lineTo(i,s),this.ctx.lineTo(h,n),this.ctx.lineTo(a,o),this.ctx.lineTo(t,e),this.ctx.closePath()},shape:(t,e)=>{this.ctx.moveTo(t[0],e[0]);for(let i=0;i<t.length-1;i++)this.ctx.lineTo(t[i+1],e[i+1]);this.ctx.lineTo(t[0],e[0])}},this.rect=function(t,e,i,s){this.rotateShape(t+i,e+s),!1!==this.fillStyle?(this.ctx.fillRect(t,e,i,s),this.ctx.strokeRect(t,e,i,s)):this.ctx.strokeRect(t,e,i,s),this.undoRotateShape(t+i,e+s)},this.circle=function(t,e,i){this.beginPath(t,e),this.drawPath.circle(t,e,i),this.fillPath(),this.drawPath.circle(t,e,i),this.closePath(t,e)},this.ellipse=function(t,e,i,s){this.beginPath(t,e),this.drawPath.ellipse(t,e,i,s),this.fillPath(),this.drawPath.ellipse(t,e,i,s),this.closePath(t,e)},this.line=function(t,e,i,s){let h=this.lerp(t,i,.5),n=this.lerp(e,s,.5);this.beginPath(h,n),this.drawPath.line(t,e,i,s),this.fillPath(),this.drawPath.line(t,e,i,s),this.closePath(h,n)},this.triangle=function(t,e,i,s,h,n){let a=this.lerp(this.min(t,i,h),this.max(t,i,h),.5),o=this.lerp(this.min(e,s,n),this.max(e,s,n),.5);this.beginPath(a,o),this.drawPath.triangle(t,e,i,s,h,n),this.fillPath(),this.drawPath.triangle(t,e,i,s,h,n),this.closePath(a,o)},this.quad=function(t,e,i,s,h,n,a,o){let r=this.lerp(this.min(t,i,h,a),this.max(t,i,h,a),.5),l=this.lerp(this.min(e,s,n,o),this.max(e,s,n,o),.5);this.beginPath(r,l),this.drawPath.quad(t,e,i,s,h,n,a,o),this.fillPath(),this.drawPath.quad(t,e,i,s,h,n,a,o),this.closePath(r,l)},this.shape=function(t,e){let i=this.lerp(this.min(...t),this.max(...t),.5),s=this.lerp(this.min(...e),this.max(...e),.5);this.beginPath(i,s),this.drawPath.shape(t,e),this.fillPath(),this.drawPath.shape(t,e),this.closePath(i,s)},this.point=function(t,e){this.ctx.lineWidth=0,this.circle(t,e,this.lineWidth),this.ctx.lineWidth=this.lineWidth},this.bezier=function(t,e,i,s,h,n,a,o){let r=r=>{this.ctx.moveTo(t,e),this.ctx.bezierCurveTo(i,s,h,n,a,o)};this.beginPath(t,e),r(),this.fillPath(),r(),this.closePath(t,e)},this.quadBezier=function(t,e,i,s,h,n){let a=a=>{this.ctx.moveTo(t,e),this.ctx.quadraticCurveTo(i,s,h,n)};this.beginPath(t,e),a(),this.fillPath(),a(),this.closePath(t,e)},this.path=function(t){let e=new Path2D(t);!1!==this.fillStyle&&this.ctx.fill(e),this.ctx.stroke(e)},this.background=function(t){this.ctx.fillStyle=t,this.ctx.strokeStyle=t,this.rect(0,0,this.width,this.height),this.ctx.fillStyle=this.fillStyle,this.ctx.strokeStyle=this.strokeStyle},this.fill=function(t){this.ctx.fillStyle=this.fillStyle=t},this.noFill=function(){this.fillStyle=!1},this.stroke=function(t){this.ctx.strokeStyle=this.strokeStyle=t},this.noStroke=function(){this.ctx.strokeStyle=!1},this.strokeWidth=this.strokeWeight=this.lineWidth=function(t){this.ctx.lineWidth=this.lineWidth=t},this.strokeJoin=this.lineJoin=function(t){switch(t.toLowerCase()){case"bevel":this.ctx.lineJoin="bevel";break;case"round":this.ctx.lineJoin="round";break;case"miter":this.ctx.lineJoin="miter";break;default:this.ctx.lineJoin="round"}},this.images={},this.loadImage=function(t,e){this.images[t]=new Image,this.images[t].src=e},this.image=function(t,e,i){let s=this.images[t];if(this.images[t]==[][0])throw new Error("Image name not set. Use .loadImage in setup.");let h=e+s.offsetWidth/2,n=i+s.offsetHeight/2;this.rotateShape(h,n),this.ctx.drawImage(s,e,i),this.undoRotateShape(h,n)},this.linearGradient=function(t,e,i,s,h){let n,a=this.ctx.createLinearGradient(t,e,i,s);for(n of h)a.addColorStop(n[0],n[1])},this.radialGradient=function(t,e,i,s,h){let n,a=this.ctx.createRadialGradient(t,e,i,t,e,s);for(n of h)a.addColorStop(n[0],n[1])},this.rgb=function(t,e,i){let s=t=>t.toString(16).padStart(2,"0");return"#"+s(t)+s(e)+s(i)},this.rgba=function(t,e,i,s){return this.rgb(t,e,i)+s.toString(16).padStart(2,"0")},this.hsl=function(t,e,i){let s,h,n,a,o=t/360,r=e/100,l=i/100,c=this.round;if(0==r)s=h=n=l;else{a=function(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t};var u=l<.5?l*(1+r):l+r-l*r,d=2*l-u;s=a(d,u,o+1/3),h=a(d,u,o),n=a(d,u,o-1/3)}return this.rgb(c(255*s),c(255*h),c(255*n))},this.hsla=function(t,e,i,s){return this.hsl(t,e,i)+(255*s).toString(16).padStart(2,"0")},this.hsv=this.hsb=function(t,e,i){var s,h,n,a,o,r,l,c,u=t/360,d=e/100,f=i/100,m=this.round;switch(1===arguments.length&&(d=u.s,f=u.v,u=u.h),r=f*(1-d),l=f*(1-(o=6*u-(a=Math.floor(6*u)))*d),c=f*(1-(1-o)*d),a%6){case 0:s=f,h=c,n=r;break;case 1:s=l,h=f,n=r;break;case 2:s=r,h=f,n=c;break;case 3:s=r,h=l,n=f;break;case 4:s=c,h=r,n=f;break;case 5:s=f,h=r,n=l}return this.rgb(m(255*s),m(255*h),m(255*n))},this.hsva=this.hsba=function(t,e,i,s){return this.hsv(t,e,i)+(255*s).toString(16).padStart(2,"0")},this.lerpColor=function(t,e){let i,s=t.split(""),h=e.split(""),n=[1,3,5],a="#",o=t=>parseInt(t,16);for(i of n)a+=Math.round((o(s[i]+s[i+1])+o(h[i]+h[i+1]))/2)},this.font=function(t,e){this.ctx.font=`${e||20}px ${t}`},this.textAlign=function(t){this.ctx.textAlign=t},this.text=function(t,e,i){this.ctx.fillText(t,e,i)},this.textWidth=function(t){return this.ctx.measureText(t).width},this.day=(t=>(new Date).getDate()),this.month=(t=>(new Date).getMonth()),this.year=(t=>(new Date).getFullYear()),this.hour=(t=>(new Date).getHours()),this.minute=(t=>(new Date).getMinutes()),this.second=(t=>(new Date).getSeconds()),this.millis=(t=>this.loadTime-(new Date).getTime()),this.keyPressed=(()=>{}),this.keyReleased=(()=>{}),this.keyTyped=(()=>{}),this.keyCodes=[],this.keyMatch=[],this.matchKeys=function(t){let e=this.keyCodes;return this.keyMatch.map((t,i)=>"number"==typeof t?e[t]:!t.every(t=>!e[t]))},this.mouseClicked=(()=>{}),this.mousePressed=(()=>{}),this.mouseReleased=(()=>{}),this.mouseMoved=(()=>{}),this.mouseOver=(()=>{}),this.mouseOut=(()=>{}),this.mouseInCanvas=!1,this.runFunction=function(t){let e,i=[],s=[],h=t[1].replaceAll(this.tab," ").replaceAll("⩶","=").split(",");t.forEach(t=>{t.includes("=")&&(i.push(t.split("=")[0]),s.push(t.split("=")[1]))}),i.forEach((t,i)=>{e=s[i].split(","),this[t](e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7])}),h=h.map(t=>1*t==t?1*t:t.replaceAll("≖",",")),this[t[0]](h[0],h[1],h[2],h[3],h[4],h[5],h[6],h[7])},this.embedPack=function(t){let e,i,s="",h=0;for(i=0;i<t.length;i++)e=t[i],0==h?'"'==e?h++:s+=e:'"'==e?h=0:s+=" "==e?this.tab:"="==e?"⩶":","==e?"≖":e;return s},this.embed=function(t){let e=this.embedPack(t.replaceAll(this.tab,"")).replaceAll("\n"," ").replaceAll("<","< ").replaceAll(">"," >").split(" "),i=0,s=[];e.forEach(t=>{0==i?"<"==t&&i++:">"==t?(this.runFunction(s),s=[],i=0):s.push(t)})}}set draw(t){let e=this,i=function(t){e.lastTarget=t.target};document.addEventListener("mousedown",i),document.addEventListener("mouseup",i),this.element.addEventListener("click",function(t){e.mouseX=t.offsetX,e.mouseY=t.offsetY,e.mouseClicked(t)}),this.element.addEventListener("mousedown",function(t){e.mouseX=t.offsetX,e.mouseY=t.offsetY,e.mousePressed(t)}),this.element.addEventListener("mouseup",function(t){e.mouseX=t.offsetX,e.mouseY=t.offsetY,e.mouseReleased(t)}),this.element.addEventListener("mousedown",function(t){e.mouseX=t.offsetX,e.mouseY=t.offsetY,e.mousePressed(t)}),this.element.addEventListener("mousemove",function(t){e.mouseX=t.offsetX,e.mouseY=t.offsetY,e.mouseMoved(t)}),this.element.addEventListener("mouseenter",function(t){e.mouseX=t.offsetX,e.mouseY=t.offsetY,e.mouseInCanvas=!0,e.mouseOver(t)}),this.element.addEventListener("mouseleave",function(t){e.mouseX=t.offsetX,e.mouseY=t.offsetY,e.mouseInCanvas=!1,e.mouseOut(t)}),document.addEventListener("keydown",function(t){e.checkTarget()&&(e.key=t.key,e.keyCode=t.keyCode,e.keyCodes[t.keyCode]=!0,e.keyPressed(t))}),document.addEventListener("keyup",function(t){e.checkTarget()&&(e.key=t.key,e.keyCode=t.keyCode,e.keyCodes[t.keyCode]=!1,e.keyReleased(t))}),document.addEventListener("keypress",function(t){e.checkTarget()&&(e.key=t.key,e.keyCode=t.keyCode,e.keyTyped(t))}),this.animate=function(){t(),e.tk++,requestAnimationFrame(e.animate)},e.loadTime=(new Date).getTime(),"function"==typeof e.setup&&e.setup(),1==e.toggleAnimate&&e.animate()}};