var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,A=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,l=(a,t,A)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):a[t]=A,s=(e,a,t)=>l(e,"symbol"!=typeof a?a+"":a,t),n=(e,a,t)=>new Promise((A,i)=>{var r=e=>{try{s(t.next(e))}catch(a){i(a)}},l=e=>{try{s(t.throw(e))}catch(a){i(a)}},s=e=>e.done?A(e.value):Promise.resolve(e.value).then(r,l);s((t=t.apply(e,a)).next())});import{d as o,r as c,f as h,eG as g,aU as R,aP as v,a as u,o as I}from"./index-BeZn6wgH.js";const E=o((d=((e,a)=>{for(var t in a||(a={}))i.call(a,t)&&l(e,t,a[t]);if(A)for(var t of A(a))r.call(a,t)&&l(e,t,a[t]);return e})({},{name:"ArtFireworksEffect"}),a(d,t({__name:"index",setup(e){const a={POOL_SIZE:600,PARTICLES_PER_BURST:200,SIZES:{RECTANGLE:{WIDTH:24,HEIGHT:12},SQUARE:{SIZE:12},CIRCLE:{SIZE:12},TRIANGLE:{SIZE:10},OVAL:{WIDTH:24,HEIGHT:12},IMAGE:{WIDTH:30,HEIGHT:30}},ROTATION:{BASE_SPEED:2,RANDOM_SPEED:3,DECAY:.98},PHYSICS:{GRAVITY:.525,VELOCITY_THRESHOLD:10,OPACITY_DECAY:.02},COLORS:["rgba(255, 68, 68, 1)","rgba(255, 68, 68, 0.9)","rgba(255, 68, 68, 0.8)","rgba(255, 116, 188, 1)","rgba(255, 116, 188, 0.9)","rgba(255, 116, 188, 0.8)","rgba(68, 68, 255, 0.8)","rgba(92, 202, 56, 0.7)","rgba(255, 68, 255, 0.8)","rgba(68, 255, 255, 0.7)","rgba(255, 136, 68, 0.7)","rgba(68, 136, 255, 1)","rgba(250, 198, 122, 0.8)"],SHAPES:["rectangle","rectangle","rectangle","rectangle","rectangle","rectangle","rectangle","circle","triangle","oval"]},t=c(),A=c(null),i=new class{constructor(){s(this,"particlePool",[]),s(this,"activeParticles",[]),s(this,"poolIndex",0),s(this,"imageCache",{}),s(this,"animationId",0),s(this,"canvasWidth",0),s(this,"canvasHeight",0),s(this,"animate",()=>{this.updateParticles(),this.render(),this.animationId=requestAnimationFrame(this.animate)}),this.initializePool()}initializePool(){for(let e=0;e{const A=new Image;A.crossOrigin="anonymous",A.onload=()=>{this.imageCache[e]=A,a(A)},A.onerror=t,A.src=e})})}preloadAllImages(){return n(this,null,function*(){const e=["data:image/png;base64,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","/assets/sd-C0PQtrty.png","/assets/yd-BrGqJ6Cs.png"];try{yield Promise.all(e.map(e=>this.preloadImage(e)))}catch(a){}})}createFirework(e){const t=Math.random()*this.canvasWidth,A=this.canvasHeight,i=e&&this.imageCache[e]?["image"]:a.SHAPES,r=[];for(let l=0;l.5?1:-1),s.scale=.8+.4*Math.random(),s.shape=i[Math.floor(Math.random()*i.length)],s.opacity=1,s.imageUrl=e&&this.imageCache[e]?e:void 0,r.push(s)}this.activeParticles.push(...r)}updateParticles(){const{GRAVITY:e,VELOCITY_THRESHOLD:t,OPACITY_DECAY:A}=a.PHYSICS,{DECAY:i}=a.ROTATION;for(let a=this.activeParticles.length-1;a>=0;a--){const r=this.activeParticles[a];r.x+=r.vx,r.y+=r.vy,r.vy+=e,r.rotation+=r.rotationSpeed,r.rotationSpeed*=i,(r.vy>t&&(r.opacity-=A,r.opacity<=0)||this.isOutOfBounds(r))&&this.recycleParticle(a)}}recycleParticle(e){this.activeParticles[e].active=!1,this.activeParticles.splice(e,1)}isOutOfBounds(e){const a=100;return e.x<-100||e.x>this.canvasWidth+a||e.y<-100||e.y>this.canvasHeight+a}drawParticle(e){A.value&&(A.value.save(),A.value.globalAlpha=e.opacity,A.value.translate(e.x,e.y),A.value.rotate(e.rotation*Math.PI/180),A.value.scale(e.scale,e.scale),this.renderShape(e),A.value.restore())}renderShape(e){if(!A.value)return;const{SIZES:t}=a;switch(A.value.fillStyle=e.color,e.shape){case"rectangle":A.value.fillRect(-12,-6,t.RECTANGLE.WIDTH,t.RECTANGLE.HEIGHT);break;case"square":A.value.fillRect(-6,-6,t.SQUARE.SIZE,t.SQUARE.SIZE);break;case"circle":A.value.beginPath(),A.value.arc(0,0,t.CIRCLE.SIZE/2,0,2*Math.PI),A.value.fill();break;case"triangle":A.value.beginPath(),A.value.moveTo(0,-10),A.value.lineTo(t.TRIANGLE.SIZE,t.TRIANGLE.SIZE),A.value.lineTo(-10,t.TRIANGLE.SIZE),A.value.closePath(),A.value.fill();break;case"oval":A.value.beginPath(),A.value.ellipse(0,0,t.OVAL.WIDTH/2,t.OVAL.HEIGHT/2,0,0,2*Math.PI),A.value.fill();break;case"image":this.renderImage(e)}}renderImage(e){if(!A.value||!e.imageUrl)return;const t=this.imageCache[e.imageUrl];if(null==t?void 0:t.complete){const{WIDTH:e,HEIGHT:i}=a.SIZES.IMAGE;A.value.drawImage(t,-e/2,-i/2,e,i)}}render(){if(A.value&&t.value){A.value.clearRect(0,0,this.canvasWidth,this.canvasHeight),A.value.globalCompositeOperation="lighter";for(const e of this.activeParticles)this.drawParticle(e)}}updateCanvasSize(e,a){this.canvasWidth=e,this.canvasHeight=a}start(){this.animate()}stop(){this.animationId&&(cancelAnimationFrame(this.animationId),this.animationId=0)}getActiveParticleCount(){return this.activeParticles.length}},r=e=>{(e.ctrlKey&&e.shiftKey&&"p"===e.key.toLowerCase()||e.metaKey&&e.shiftKey&&"p"===e.key.toLowerCase())&&(e.preventDefault(),i.createFirework())},l=()=>{if(!t.value)return;const{innerWidth:e,innerHeight:a}=window;t.value.width=e,t.value.height=a,i.updateCanvasSize(e,a)},o=e=>{const a=e;i.createFirework(a)};return h(()=>n(this,null,function*(){t.value&&(A.value=t.value.getContext("2d"),A.value&&(l(),yield i.preloadAllImages(),i.start(),g(window,"keydown",r),g(window,"resize",l),R.on("triggerFireworks",o)))})),v(()=>{i.stop(),R.off("triggerFireworks",o)}),(e,a)=>(I(),u("canvas",{ref_key:"canvasRef",ref:t,class:"fixed top-0 left-0 z-[9999] w-full h-full pointer-events-none"},null,512))}}))));var d;export{E as default};