1(self.webpackChunkfolio=self.webpackChunkfolio||[]).push([[6257],{40956(n,e,o){"use strict";o.r(e),o.d(e,{default:()=>l});var t=o(31601),r=o.n(t),i=o(76314),a=o.n(i)()(r());a.push([n.id,"\n.aurora-root[data-v-ad3d78cc] {\n position: absolute !important;\n top: 0 !important;\n left: 0 !important;\n width: 100% !important;\n height: 100% !important;\n}\n[data-v-ad3d78cc] canvas {\n position: absolute !important;\n top: 0 !important;\n left: 0 !important;\n width: 100% !important;\n height: 100% !important;\n}\n",""]);const l=a},81268(n,e,o){"use strict";o.r(e),o.d(e,{default:()=>f});var t=o(20641),r=o(90033),i=o(29412),a=o(82459),l=o(7309),s=o(4347),u=o(39040);const c=(0,t.pM)({__name:"Aurora",props:{colorStops:{default:function(){return["#7cff67","#171D22","#7cff67"]}},amplitude:{default:1},blend:{default:.5},time:{},speed:{default:1},intensity:{default:1},className:{default:""},style:{default:function(){return{}}}},setup:function(n){var e=n,o=(0,t.rk)("containerRef"),c=null,f=0,v=null,d=function(){var n,t,r=o.value;if(r){var d,p=(c=new i.A({alpha:!0,premultipliedAlpha:!0,antialias:!0})).gl,m=null;p.clearColor(0,0,0,0),p.enable(p.BLEND),p.blendFunc(p.ONE,p.ONE_MINUS_SRC_ALPHA),p.canvas.style.backgroundColor="transparent";var h=function(){var n,e;if(c&&r.isConnected){var o=(null===(n=r.parentElement)||void 0===n?void 0:n.offsetWidth)||r.offsetWidth||window.innerWidth,t=(null===(e=r.parentElement)||void 0===e?void 0:e.offsetHeight)||r.offsetHeight||window.innerHeight,i=Math.max(o,300),a=Math.max(t,300);c.setSize(i,a),d&&(d.uniforms.uResolution.value=[i,a])}};window.addEventListener("resize",h),"undefined"!=typeof ResizeObserver&&(m=new ResizeObserver(h)).observe(r);var x=new a.l(p);x.attributes.uv&&delete x.attributes.uv;var C=e.colorStops.map(function(n){var e=new l.Q(n);return[e.r,e.g,e.b]});d=new s.B(p,{vertex:"#version 300 es\nin vec2 position;\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}\n",fragment:"#version 300 es\nprecision highp float;\n\nuniform float uTime;\nuniform float uAmplitude;\nuniform vec3 uColorStops[3];\nuniform vec2 uResolution;\nuniform float uBlend;\nuniform float uIntensity;\n\nout vec4 fragColor;\n\nvec3 permute(vec3 x) {\n return mod(((x * 34.0) + 1.0) * x, 289.0);\n}\n\nfloat snoise(vec2 v){\n const vec4 C = vec4(\n 0.211324865405187, 0.366025403784439,\n -0.577350269189626, 0.024390243902439\n );\n vec2 i = floor(v + dot(v, C.yy));\n vec2 x0 = v - i + dot(i, C.xx);\n vec2 i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n i = mod(i, 289.0);\n\n vec3 p = permute(\n permute(i.y + vec3(0.0, i1.y, 1.0))\n + i.x + vec3(0.0, i1.x, 1.0)\n );\n\n vec3 m = max(\n 0.5 - vec3(\n dot(x0, x0),\n dot(x12.xy, x12.xy),\n dot(x12.zw, x12.zw)\n ), \n 0.0\n );\n m = m * m;\n m = m * m;\n\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);\n\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n\nstruct ColorStop {\n vec3 color;\n float position;\n};\n\n#define COLOR_RAMP(colors, factor, finalColor) { int index = 0; for (int i = 0; i < 2; i++) { ColorStop currentColor = colors[i]; bool isInBetween = currentColor.position <= factor; index = int(mix(float(index), float(i), float(isInBetween))); } ColorStop currentColor = colors[index]; ColorStop nextColor = colors[index + 1]; float range = nextColor.position - currentColor.position; float lerpFactor = (factor - currentColor.position) / range; finalColor = mix(currentColor.color, nextColor.color, lerpFactor); }\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy / uResolution;\n \n ColorStop colors[3];\n colors[0] = ColorStop(uColorStops[0], 0.0);\n colors[1] = ColorStop(uColorStops[1], 0.5);\n colors[2] = ColorStop(uColorStops[2], 1.0);\n \n vec3 rampColor;\n COLOR_RAMP(colors, uv.x, rampColor);\n \n float height = snoise(vec2(uv.x * 2.0 + uTime * 0.1, uTime * 0.25)) * 0.5 * uAmplitude;\n height = exp(height);\n height = (uv.y * 2.0 - height + 0.2);\n float intensity = 0.6 * height;\n \n float midPoint = 0.20;\n float auroraAlpha = smoothstep(midPoint - uBlend * 0.5, midPoint + uBlend * 0.5, intensity);\n \n vec3 auroraColor = rampColor;\n \n float finalAlpha = auroraAlpha * smoothstep(0.0, 0.5, intensity) * uIntensity;\n \n fragColor = vec4(auroraColor * finalAlpha, finalAlpha);\n}\n",uniforms:{uTime:{value:0},uAmplitude:{value:e.amplitude},uColorStops:{value:C},uResolution:{value:[Math.max((null===(n=r.parentElement)||void 0===n?void 0:n.offsetWidth)||r.offsetWidth||window.innerWidth,300),Math.max((null===(t=r.parentElement)||void 0===t?void 0:t.offsetHeight)||r.offsetHeight||window.innerHeight,300)]},uBlend:{value:e.blend},uIntensity:{value:e.intensity}}});var y=new u.e(p,{geometry:x,program:d});r.appendChild(p.canvas),p.canvas.style.width="100%",p.canvas.style.height="100%",p.canvas.style.display="block",p.canvas.style.position="absolute",p.canvas.style.top="0",p.canvas.style.left="0";var g=function(n){var o,t;if(f=requestAnimationFrame(g),c){var r=null!==(o=e.time)&&void 0!==o?o:.01*n,i=null!==(t=e.speed)&&void 0!==t?t:1;if(d){var a,s,u,v;d.uniforms.uTime.value=r*i*.1,d.uniforms.uAmplitude.value=null!==(a=e.amplitude)&&void 0!==a?a:1,d.uniforms.uBlend.value=null!==(s=e.blend)&&void 0!==s?s:.5,d.uniforms.uIntensity.value=null!==(u=e.intensity)&&void 0!==u?u:1;
1var p=null!==(v=e.colorStops)&&void 0!==v?v:["#27FF64","#7cff67","#27FF64"];d.uniforms.uColorStops.value=p.map(function(n){var e=new l.Q(n);return[e.r,e.g,e.b]}),c.render({scene:y})}}};f=requestAnimationFrame(g),h(),v=function(){var n,e;cancelAnimationFrame(f),window.removeEventListener("resize",h),null===(n=m)||void 0===n||n.disconnect(),r&&p.canvas.parentNode===r&&r.removeChild(p.canvas),null===(e=p.getExtension("WEBGL_lose_context"))||void 0===e||e.loseContext()}}},p=function(){if(v&&(v(),v=null),f&&cancelAnimationFrame(f),c){var n,e=c.gl,t=o.value;t&&e.canvas.parentNode===t&&t.removeChild(e.canvas),null===(n=e.getExtension("WEBGL_lose_context"))||void 0===n||n.loseContext()}c=null};return(0,t.sV)(function(){d()}),(0,t.hi)(function(){p()}),(0,t.wB)(function(){return[e.amplitude,e.intensity]},function(){p(),d()}),function(e,i){return(0,t.uX)(),(0,t.CE)("div",{ref_key:"containerRef",ref:o,class:(0,r.C4)(["aurora-root",n.className]),style:(0,r.Tr)(n.style)},null,6)}}});o(95809);const f=(0,o(66262).A)(c,[["__scopeId","data-v-ad3d78cc"]])},95809(n,e,o){var t=o(40956);t.__esModule&&(t=t.default),"string"==typeof t&&(t=[[n.id,t,""]]),t.locals&&(n.exports=t.locals);(0,o(70534).A)("6eea3f66",t,!1,{})},82459(n,e,o){"use strict";o.d(e,{l:()=>r});var t=o(2727);class r extends t.V{constructor(n,{attributes:e={}}={}){Object.assign(e,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),super(n,e)}}},7309(n,e,o){"use strict";o.d(e,{Q:()=>a});const t={black:"#000000",white:"#ffffff",red:"#ff0000",green:"#00ff00",blue:"#0000ff",fuchsia:"#ff00ff",cyan:"#00ffff",yellow:"#ffff00",orange:"#ff8000"};function r(n){4===n.length&&(n=n[0]+n[1]+n[1]+n[2]+n[2]+n[3]+n[3]);const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return e||console.warn(`Unable to convert hex string ${n} to rgb values`),[parseInt(e[1],16)/255,parseInt(e[2],16)/255,parseInt(e[3],16)/255]}function i(n){return void 0===n?[0,0,0]:3===arguments.length?arguments:isNaN(n)?"#"===n[0]?r(n):t[n.toLowerCase()]?r(t[n.toLowerCase()]):(console.warn("Color format not recognised"),[0,0,0]):(e=n,[((e=parseInt(e))>>16&255)/255,(e>>8&255)/255,(255&e)/255]);var e}class a extends Array{constructor(n){return Array.isArray(n)?super(...n):super(...i(...arguments))}get r(){return this[0]}get g(){return this[1]}get b(){return this[2]}set r(n){this[0]=n}set g(n){this[1]=n}set b(n){this[2]=n}set(n){return Array.isArray(n)?this.copy(n):this.copy(i(...arguments))}copy(n){return this[0]=n[0],this[1]=n[1],this[2]=n[2],this}}}}]);
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.