1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2231],{52231:(e,t,n)=>{n.r(t),n.d(t,{default:()=>s});var r=n(95155),i=n(12115);let s=e=>{let{formData:t,isOwner:n}=e,s=(0,i.useRef)(null),c=(0,i.useRef)({x:-1e3,y:-1e3,prevX:-1e3,prevY:-1e3,vx:0,vy:0,isActive:!1}),o=(0,i.useRef)({stringSpacing:40,pointsPerString:15,stiffness:.1,damping:.92,influenceRadius:80,baseColor:"255, 255, 255",idleOpacity:.08,activeOpacity:.5});return(0,i.useEffect)(()=>{let e,t,n,r=s.current;if(!r)return;let i=r.getContext("2d");if(!i)return;let u=[],a=()=>{e=window.innerWidth,t=window.innerHeight,r.width=e,r.height=t,v()};class h{update(){let e=(this.ox-this.x)*o.current.stiffness;this.vx+=e,this.vx*=o.current.damping,this.x+=this.vx}constructor(e,t){this.x=e,this.y=t,this.ox=e,this.oy=t,this.vx=0,this.vy=0}}class l{update(){let e=c.current,t=0;e.isActive&&this.points.forEach(t=>{let n=e.x-t.x,r=e.y-t.y,i=Math.sqrt(n*n+r*r);if(i<o.current.influenceRadius){let r=(o.current.influenceRadius-i)/o.current.influenceRadius;t.vx-=e.vx*r*.2,1>Math.abs(e.vx)&&(t.vx+=(n<0?1:-1)*r*.5)}}),this.points.forEach(e=>{e.update(),t+=Math.abs(e.vx)}),this.energy=.9*this.energy+.1*t}draw(){if(!i)return;i.beginPath(),i.moveTo(this.points[0].x,this.points[0].y);for(let e=0;e<this.points.length-1;e++){let t=this.points[e],n=this.points[e+1],r=(t.x+n.x)/2,s=(t.y+n.y)/2;i.quadraticCurveTo(t.x,t.y,r,s)}let e=this.points[this.points.length-1];i.lineTo(e.x,e.y);let t=o.current.idleOpacity+.05*this.energy;t>o.current.activeOpacity&&(t=o.current.activeOpacity),i.strokeStyle="rgba(".concat(o.current.baseColor,", ").concat(t,")"),i.lineWidth=1.5,i.stroke()}constructor(e){this.x=e,this.points=[],this.energy=0;let n=t/(o.current.pointsPerString-1);for(let t=0;t<o.current.pointsPerString;t++)this.points.push(new h(e,t*n))}}let v=()=>{u=[];let t=Math.ceil(e/o.current.stringSpacing),n=(t-1)*o.current.stringSpacing,r=(e-n)/2;for(let e=0;e<t;e++)u.push(new l(r+e*o.current.stringSpacing))},d=()=>{i&&e&&t&&(i.clearRect(0,0,e,t),u.forEach(e=>{e.update(),e.draw()}),n=requestAnimationFrame(d))},p=e=>{c.current.vx=e.clientX-c.current.prevX,c.current.vy=e.clientY-c.current.prevY,c.current.prevX=e.clientX,c.current.prevY=e.clientY,c.current.x=e.clientX,c.current.y=e.clientY,c.current.isActive=!0},w=e=>{if(!e.touches||0===e.touches.length)return;let t=e.touches[0];c.current.vx=t.clientX-c.current.prevX,c.current.vy=t.clientY-c.current.prevY,c.current.prevX=t.clientX,c.current.prevY=t.clientY,c.current.x=t.clientX,c.current.y=t.clientY,c.current.isActive=!0},x=()=>{c.current.isActive=!1},f=()=>{c.current.isActive=!1};return window.addEventListener("resize",a),window.addEventListener("mousemove",p),window.addEventListener("touchmove",w),window.addEventListener("mouseout",x),window.addEventListener("touchend",f),a(),d(),()=>{window.removeEventListener("resize",a),window.removeEventListener("mousemove",p),window.removeEventListener("touchmove",w),window.removeEventListener("mouseout",x),window.removeEventListener("touchend",f),cancelAnimationFrame(n)}},[]),(0,r.jsxs)("div",{style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:-1,backgroundColor:"#000000",overflow:"hidden"},children:[(0,r.jsx)("canvas",{id:"harpCanvas",ref:s,style:{display:"block",width:"100%",height:"100%"}}),(0,r.jsx)("div",{className:"overlay",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",background:"radial-gradient(circle at center, transparent 60%, rgba(0,0,0,0.6) 100%)",zIndex:2}})]})}}}]);
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.