File: /home/adventp/www/wp-content/themes/brooklyn/js/noise/shift.min.js
!function(t){"use strict";let{PI:i,cos:s,sin:e,abs:c,random:h}=Math;const a=2*i;let n=t=>t*h();window.UT_Shift_Effect=class{constructor(i,s){this.container=i,this.config=JSON.parse(this.container.dataset.effectConfig),this.canvas="",this.ctx="",this.simplex="",this.circleProps="",t(this.container).css("mix-blend-mode",this.config.blend_mode),this.createCanvas(),this.resize(),this.initCircles(),this.draw(),s&&"function"==typeof s&&s(this)}createCanvas(){this.canvas={a:document.createElement("canvas"),b:document.createElement("canvas")},this.canvas.b.style="\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n ",this.container.appendChild(this.canvas.b),this.ctx={a:this.canvas.a.getContext("2d"),b:this.canvas.b.getContext("2d")}}initCircles(){this.circleProps=new Float32Array(240),this.simplex=new SimplexNoise;let t;for(t=0;t<240;t+=8)this.initCircle(t)}initCircle(t){let i,c,h,r,l,o,d,p,v,x,f;i=n(this.canvas.a.width),c=n(this.canvas.a.height),h=this.simplex.noise3D(.0015*i,.0015*c,.0015*this.config.hue.H),r=n(a),o=(l=.5+n(1))*s(r),d=l*e(r),p=0,v=150+n(200),x=100+n(200),f=this.config.hue.H+h*this.config.rangeHue,this.circleProps.set([i,c,o,d,0,v,x,f],t)}updateCircles(){let t;for(t=0;t<240;t+=8)this.updateCircle(t)}updateCircle(t){let i,s,e,c,h,a,n,r,l=1+t,o=2+t,d=3+t,p=4+t,v=5+t,x=6+t,f=7+t;i=this.circleProps[t],s=this.circleProps[l],e=this.circleProps[o],c=this.circleProps[d],h=this.circleProps[p],a=this.circleProps[v],n=this.circleProps[x],r=this.circleProps[f],this.drawCircle(i,s,h,a,n,r),h++,this.circleProps[t]=i+e,this.circleProps[l]=s+c,this.circleProps[p]=h,(this.checkBounds(i,s,n)||h>a)&&this.initCircle(t)}drawCircle(t,i,s,e,h,n){this.ctx.a.save(),this.ctx.a.fillStyle=`hsla(${n},${this.config.hue.S}%,${this.config.hue.L}%,${((t,i)=>{let s=.5*i;return c((t+s)%i-s)/s})(s,e)})`,this.ctx.a.beginPath(),this.ctx.a.arc(t,i,h,0,a),this.ctx.a.fill(),this.ctx.a.closePath(),this.ctx.a.restore()}checkBounds(t,i,s){return t<-s||t>this.canvas.a.width+s||i<-s||i>this.canvas.a.height+s}resize(){const{clientWidth:t,clientHeight:i}=this.container;this.canvas.a.width=t,this.canvas.a.height=i,this.ctx.a.drawImage(this.canvas.b,0,0),this.canvas.b.width=t,this.canvas.b.height=i,this.ctx.b.drawImage(this.canvas.a,0,0)}render(){this.ctx.b.save(),this.ctx.b.filter="blur(50px)",this.ctx.b.drawImage(this.canvas.a,0,0),this.ctx.b.restore()}draw(){this.ctx.a.clearRect(0,0,this.canvas.a.width,this.canvas.a.height),this.ctx.b.fillStyle=this.config.backgroundColor,this.ctx.b.fillRect(0,0,this.canvas.b.width,this.canvas.b.height),this.updateCircles(),this.render()}}}(jQuery);