partycles 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -51,5 +51,5 @@ var Ce=Object.defineProperty,Me=Object.defineProperties;var $e=Object.getOwnProp
|
|
|
51
51
|
0 0 ${t.size*.5}px #ffffff,
|
|
52
52
|
0 0 ${t.size}px ${t.color},
|
|
53
53
|
0 0 ${t.size*2}px ${t.color}88
|
|
54
|
-
`}}))}return z__default.default.createElement("div",{key:t.id,style:{width:"100%",height:"100%",backgroundColor:t.color,borderRadius:"50%",opacity:t.opacity}})};var io=["#FFFFFF","#FFF8DC","#FFFACD","#FFE4B5","#FFDEAD","#F0E68C","#FFD700"],de=(t,e)=>{let{particleCount:r=25,spread:n=300,startVelocity:a=1,colors:i=io,elementSize:s=40,lifetime:l=400}=e;return m(r,c=>{let u=Math.random()*Math.PI*2,d=o(0,n),h=Math.random(),y=s*(.3+h*.7);return {id:f(),x:t.x+Math.cos(u)*d,y:t.y+Math.sin(u)*d,vx:o(-0.5,.5)*a,vy:o(-0.5,-1.5)*a,life:l,opacity:.1+h*.5,size:y,rotation:0,color:i[Math.floor(Math.random()*i.length)],element:JSON.stringify({depth:h,pulsePhase:Math.random()*Math.PI*2,baseSize:y})}})},fe=t=>{var l;let e={};try{t.element&&typeof t.element=="string"&&(e=JSON.parse(t.element));}catch(c){}let r=Math.sin(t.life*.05+(e.pulsePhase||0))*.1+1,n=(e.baseSize||t.size)*r,a=Math.min(1,(((l=t.config)==null?void 0:l.lifetime)||400-t.life)/20),i=Math.min(1,t.life/40),s=t.opacity*a*i;return z__default.default.createElement("div",{key:t.id,style:{width:"100%",height:"100%",position:"relative"}},z__default.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",width:`${n*3}px`,height:`${n*3}px`,transform:"translate(-50%, -50%)",background:`radial-gradient(circle, ${t.color}22 0%, transparent 50%)`,filter:"blur(20px)",opacity:s*.6}}),z__default.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",width:`${n*2}px`,height:`${n*2}px`,transform:"translate(-50%, -50%)",background:`radial-gradient(circle, ${t.color}44 0%, transparent 60%)`,filter:"blur(10px)",opacity:s*.8}}),z__default.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",width:`${n}px`,height:`${n}px`,transform:"translate(-50%, -50%)",background:`radial-gradient(circle, ${t.color}88 0%, ${t.color}44 50%, transparent 100%)`,borderRadius:"50%",filter:"blur(2px)",opacity:s}}))};var me={confetti:{createParticles:bt,renderParticle:Pt},sparkles:{createParticles:Ft,renderParticle:Ct},hearts:{createParticles:$t,renderParticle:wt},fireworks:{createParticles:zt,renderParticle:At},bubbles:{createParticles:kt,renderParticle:Rt},stars:{createParticles:It,renderParticle:Et},snow:{createParticles:Bt,renderParticle:Dt},emoji:{createParticles:Lt,renderParticle:Ot},coins:{createParticles:jt,renderParticle:Vt},petals:{createParticles:Ht,renderParticle:Ut},aurora:{createParticles:Wt,renderParticle:Xt},fireflies:{createParticles:Gt,renderParticle:qt},paint:{createParticles:Jt,renderParticle:Yt},balloons:{createParticles:_t,renderParticle:Zt},galaxy:{createParticles:Qt,renderParticle:Kt},glitch:{createParticles:te,renderParticle:ee},magicdust:{createParticles:oe,renderParticle:re},crystals:{createParticles:ie,renderParticle:ne},leaves:{createParticles:ae,renderParticle:se},mortar:{createParticles:le,renderParticle:ce},bokeh:{createParticles:de,renderParticle:fe}};var Q=()=>{if(typeof window=="undefined")return false;let t=navigator.userAgent||navigator.vendor||window.opera||"",e=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t),r=window.innerWidth<=768,n="ontouchstart"in window||navigator.maxTouchPoints>0;return e||r&&n},K=t=>{var e,r,n;return Q()?O(L({},t),{particleCount:Math.floor((t.particleCount||50)*.6),elementSize:Math.floor((t.elementSize||20)*.8),lifetime:Math.floor((t.lifetime||150)*.8),physics:O(L({},t.physics),{gravity:Math.round((((e=t.physics)==null?void 0:e.gravity)||0)*100)/100,wind:Math.round((((r=t.physics)==null?void 0:r.wind)||0)*100)/100,friction:Math.round((((n=t.physics)==null?void 0:n.friction)||.98)*100)/100})}):t},ue=t=>Q()?t%3===0:false;var tt=class{constructor(){this.animations=new Map;this.rafId=null;this.isRunning=false;this.lastFrameTime=0;this.frameInterval=1e3/60;this.frameCount=0;this.fpsUpdateInterval=1e3;this.lastFpsUpdate=0;this.currentFps=0;this.update=this.update.bind(this);}addAnimation(e){this.animations.set(e.id,e),!this.isRunning&&this.animations.size>0&&this.start();}removeAnimation(e){let r=this.animations.get(e);r&&(w.releaseAll(r.particles),r.containerElement&&document.body.contains(r.containerElement)&&document.body.removeChild(r.containerElement),this.animations.delete(e)),this.animations.size===0&&this.stop();}start(){this.isRunning||(this.isRunning=true,this.lastFrameTime=performance.now(),this.lastFpsUpdate=this.lastFrameTime,this.frameCount=0,this.rafId=requestAnimationFrame(this.update));}stop(){this.isRunning&&(this.isRunning=false,this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null));}update(e){let r=e-this.lastFrameTime;if(r<this.frameInterval){this.rafId=requestAnimationFrame(this.update);return}if(this.lastFrameTime=e-r%this.frameInterval,this.frameCount++,e-this.lastFpsUpdate>=this.fpsUpdateInterval&&(this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsUpdate=e),!!document.hidden){this.rafId=requestAnimationFrame(this.update);return}let a=[];this.animations.forEach((i,s)=>{if(i.isPaused)return;i.frameCount++;let l=ue(i.frameCount),c=0,u=[];i.particles=i.particles.map(d=>(d.life<=0||(c++,d.x+=d.vx,d.y+=d.vy,d.vy+=i.physics.gravity,d.vx+=i.physics.wind,d.vx*=i.physics.friction,d.vy*=i.physics.friction,i.animationType==="sparkles"?d.rotation+=5:d.rotation+=d.vx*2,d.life-=1.2,this.applyEffects(d,i),this.handleMortarExplosion(d,i,u),this.updateOpacity(d,i)),d)),u.length>0&&i.particles.push(...u),i.updateCallback&&!l&&i.updateCallback(i.particles),c===0&&(a.push(s),i.onComplete&&i.onComplete());}),a.forEach(i=>this.removeAnimation(i)),this.isRunning&&(this.rafId=requestAnimationFrame(this.update));}applyEffects(e,r){var i;let n=(i=r.config)==null?void 0:i.effects;if(!n)return;let{animationType:a}=r;n.flutter&&a==="confetti"&&(e.x+=Math.sin(e.life*.1)*.5,e.rotation+=Math.sin(e.life*.05)*2),n.windDrift&&(a==="snow"||a==="leaves")&&(e.x+=Math.sin(e.life*.05+e.id.charCodeAt(0))*.8),n.wobble&&a==="bubbles"&&(e.x+=Math.sin(e.life*.08)*.3,e.y+=Math.cos(e.life*.08)*.2);}handleMortarExplosion(e,r,n){var a,i;if(!(r.animationType!=="mortar"||!e.element))try{let s=JSON.parse(e.element);if(s.isShell&&!s.hasExploded){if(r.frameCount%3===0){let d=w.acquire();Object.assign(d,{id:`${e.id}-trail-${Date.now()}`,x:e.x+o(-2,2),y:e.y+o(-2,2),vx:o(-1,1),vy:o(0,2),life:30,opacity:.8,size:e.size*.7,rotation:0,color:e.color,element:JSON.stringify({isTrail:!0}),config:e.config}),n.push(d);}if(((i=(a=e.config)==null?void 0:a.lifetime)!=null?i:200)-e.life>=(s.timeToExplode||25)){s.hasExploded=!0,e.element=JSON.stringify(s);let d=window.innerWidth<768,h=d?20:30,y=[],P=["#FFFFFF","#FFF9C4","#BBDEFB","#C5CAE9","#D1C4E9","#FFE082","#FFCCBC"];for(let p=0;p<h;p++){let v=p/h,$=v*Math.PI*6,I=v*80,E=o(-.4,.4),B=o(-15,15),R=$+E,S=(I+B)*.5,x=R+Math.PI/2,W=3*(1-v*.3),b=w.acquire();Object.assign(b,{id:`${e.id}-burst-${p}`,x:e.x+Math.cos(R)*S*.1,y:e.y+Math.sin(R)*S*.1,vx:Math.cos(x)*W+Math.cos(R)*2,vy:Math.sin(x)*W+Math.sin(R)*2,life:120-v*40,opacity:1,size:o(2,5)*(1-v*.5),rotation:o(0,360),color:P[Math.floor(Math.random()*P.length)],element:JSON.stringify({isBurst:!0,isGalaxy:!0,twinkle:Math.random()>.7}),config:e.config}),y.push(b);}let C=d?5:8;for(let p=0;p<C;p++){let v=Math.PI*2*p/C,$=w.acquire();Object.assign($,{id:`${e.id}-core-${p}`,x:e.x,y:e.y,vx:Math.cos(v)*o(1,2),vy:Math.sin(v)*o(1,2),life:60,opacity:1,size:o(3,5),rotation:0,color:"#FFFFFF",element:JSON.stringify({isBurst:!0,isCore:!0}),config:e.config}),y.push($);}let M=w.acquire();Object.assign(M,{id:`${e.id}-flash`,x:e.x,y:e.y,vx:0,vy:0,life:20,opacity:1,size:30,rotation:0,color:"#ffffff",element:JSON.stringify({isBurst:!0}),config:e.config}),y.push(M),n.push(...y);}}}catch(s){}}updateOpacity(e,r){let{animationType:n,config:a}=r,i=a==null?void 0:a.effects;n==="sparkles"?(e.life>70?e.opacity=(100-e.life)/30:e.life<30&&(e.opacity=e.life/30),i!=null&&i.twinkle&&(e.opacity*=.5+Math.sin(e.life*.3)*.5)):n==="stars"&&(i!=null&&i.twinkle)?e.opacity=e.life/100*(.5+Math.sin(e.life*.3)*.5):e.opacity=e.life/100;}getStats(){return {activeAnimations:this.animations.size,currentFps:this.currentFps,isRunning:this.isRunning,totalParticles:Array.from(this.animations.values()).reduce((e,r)=>e+r.particles.filter(n=>n.life>0).length,0)}}setTargetFPS(e){this.frameInterval=1e3/e;}pauseAnimation(e){let r=this.animations.get(e);r&&!r.isPaused&&(r.isPaused=true,r.pausedAt=performance.now());}resumeAnimation(e){let r=this.animations.get(e);r&&r.isPaused&&(r.isPaused=false,this.animations.size>0&&!this.isRunning&&this.start());}isAnimationPaused(e){let r=this.animations.get(e);return r?!!r.isPaused:false}getAnimation(e){return this.animations.get(e)}},k=new tt;function so(t,e,r){let[n,a]=z.useState(false),i=z.useRef(null),s=z.useRef(null),l=z.useRef(null),c=z.useRef(null),u=typeof t=="string",d=u?c:t,h=z.useCallback(()=>new Promise(I=>{var rt,it,nt,at,st,lt,ct,dt,ft,mt,ut,ht,pt;let E=null;if(u){if(typeof document=="undefined")return;E=document.getElementById(t);}else E=d.current;if(!E){(rt=console.warn)==null||rt.call(console,`[Partycles] Element ${u?`with ID "${t}"`:"from ref"} not found. Make sure the element exists when reward() is called.`),I();return}let B=E.getBoundingClientRect(),R={x:B.left+B.width/2,y:B.top+B.height/2},S=me[e];if(!S){console.error(`Animation type "${e}" not found`),I();return}let x=r?K(r):void 0,W=S.createParticles(R,x||{}).map(q=>O(L({},q),{config:x||r}));if(typeof document=="undefined"){I();return}let b=document.createElement("div");b.style.position="fixed",b.style.top="0",b.style.left="0",b.style.width="100%",b.style.height="100%",b.style.pointerEvents="none",b.style.zIndex="9999",document.body.appendChild(b),s.current=b;let ye=client.createRoot(b);l.current=ye;b.getBoundingClientRect();let xe=e==="bubbles"?-0.1:e==="snow"?.05:.35,be=(st=(at=(it=x==null?void 0:x.physics)==null?void 0:it.gravity)!=null?at:(nt=r==null?void 0:r.physics)==null?void 0:nt.gravity)!=null?st:xe,Pe=(ft=(dt=(lt=x==null?void 0:x.physics)==null?void 0:lt.friction)!=null?dt:(ct=r==null?void 0:r.physics)==null?void 0:ct.friction)!=null?ft:.98,ve=(pt=(ht=(mt=x==null?void 0:x.physics)==null?void 0:mt.wind)!=null?ht:(ut=r==null?void 0:r.physics)==null?void 0:ut.wind)!=null?pt:0,ot=`${Date.now()}-${Math.random().toString(36).substr(2,9)}`;i.current=ot;let Fe=q=>{l.current&&l.current.render(z__default.default.createElement(z__default.default.Fragment,null,q.filter(T=>T.life>0).map(T=>z__default.default.createElement("div",{key:T.id,style:xt(T)},S.renderParticle(T)))));};k.addAnimation({id:ot,particles:W,containerElement:b,renderFunction:S.renderParticle,updateCallback:Fe,onComplete:()=>{l.current&&(l.current.unmount(),l.current=null),s.current=null,i.current=null,a(false),I();},physics:{gravity:be,friction:Pe,wind:ve},animationType:e,config:x||r,frameCount:0}),a(true);}),[t,e,r,u,d]),y=z.useCallback(()=>n?Promise.resolve():h(),[h,n]),P=z.useCallback(()=>{i.current&&k.pauseAnimation(i.current);},[]),C=z.useCallback(()=>{i.current&&k.resumeAnimation(i.current);},[]),M=z.useCallback(()=>(i.current&&(k.removeAnimation(i.current),i.current=null),a(false),h()),[h]),[p,v]=z.useState(null);z.useEffect(()=>{v(i.current);},[n]);let $=z.useMemo(()=>p?k.isAnimationPaused(p):false,[p]);return z.useEffect(()=>()=>{i.current&&k.removeAnimation(i.current),l.current&&(l.current.unmount(),l.current=null),s.current&&document.body.contains(s.current)&&(document.body.removeChild(s.current),s.current=null);},[]),u?{reward:y,isAnimating:n,pause:P,resume:C,replay:M,isPaused:$}:{reward:y,isAnimating:n,targetRef:d,pause:P,resume:C,replay:M,isPaused:$}}exports.animationManager=k;exports.emojiPresets=Xe;exports.isMobileDevice=Q;exports.optimizeConfigForMobile=K;exports.particlePool=w;exports.useReward=so;//# sourceMappingURL=index.js.map
|
|
54
|
+
`}}))}return z__default.default.createElement("div",{key:t.id,style:{width:"100%",height:"100%",backgroundColor:t.color,borderRadius:"50%",opacity:t.opacity}})};var io=["#FFFFFF","#FFF8DC","#FFFACD","#FFE4B5","#FFDEAD","#F0E68C","#FFD700"],de=(t,e)=>{let{particleCount:r=50,spread:n=300,startVelocity:a=1,colors:i=io,elementSize:s=40,lifetime:l=200}=e;return m(r,c=>{let u=Math.random()*Math.PI*2,d=o(0,n),h=Math.random(),y=s*(.3+h*.7);return {id:f(),x:t.x+Math.cos(u)*d,y:t.y+Math.sin(u)*d,vx:o(-0.5,.5)*a,vy:o(-0.5,-1.5)*a,life:l,opacity:.1+h*.5,size:y,rotation:0,color:i[Math.floor(Math.random()*i.length)],element:JSON.stringify({depth:h,pulsePhase:Math.random()*Math.PI*2,baseSize:y})}})},fe=t=>{var l;let e={};try{t.element&&typeof t.element=="string"&&(e=JSON.parse(t.element));}catch(c){}let r=Math.sin(t.life*.05+(e.pulsePhase||0))*.1+1,n=(e.baseSize||t.size)*r,a=Math.min(1,(((l=t.config)==null?void 0:l.lifetime)||200-t.life)/20),i=Math.min(1,t.life/40),s=t.opacity*a*i;return z__default.default.createElement("div",{key:t.id,style:{width:"100%",height:"100%",position:"relative"}},z__default.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",width:`${n*3}px`,height:`${n*3}px`,transform:"translate(-50%, -50%)",background:`radial-gradient(circle, ${t.color}22 0%, transparent 50%)`,filter:"blur(20px)",opacity:s*.6}}),z__default.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",width:`${n*2}px`,height:`${n*2}px`,transform:"translate(-50%, -50%)",background:`radial-gradient(circle, ${t.color}44 0%, transparent 60%)`,filter:"blur(10px)",opacity:s*.8}}),z__default.default.createElement("div",{style:{position:"absolute",top:"50%",left:"50%",width:`${n}px`,height:`${n}px`,transform:"translate(-50%, -50%)",background:`radial-gradient(circle, ${t.color}88 0%, ${t.color}44 50%, transparent 100%)`,borderRadius:"50%",filter:"blur(2px)",opacity:s}}))};var me={confetti:{createParticles:bt,renderParticle:Pt},sparkles:{createParticles:Ft,renderParticle:Ct},hearts:{createParticles:$t,renderParticle:wt},fireworks:{createParticles:zt,renderParticle:At},bubbles:{createParticles:kt,renderParticle:Rt},stars:{createParticles:It,renderParticle:Et},snow:{createParticles:Bt,renderParticle:Dt},emoji:{createParticles:Lt,renderParticle:Ot},coins:{createParticles:jt,renderParticle:Vt},petals:{createParticles:Ht,renderParticle:Ut},aurora:{createParticles:Wt,renderParticle:Xt},fireflies:{createParticles:Gt,renderParticle:qt},paint:{createParticles:Jt,renderParticle:Yt},balloons:{createParticles:_t,renderParticle:Zt},galaxy:{createParticles:Qt,renderParticle:Kt},glitch:{createParticles:te,renderParticle:ee},magicdust:{createParticles:oe,renderParticle:re},crystals:{createParticles:ie,renderParticle:ne},leaves:{createParticles:ae,renderParticle:se},mortar:{createParticles:le,renderParticle:ce},bokeh:{createParticles:de,renderParticle:fe}};var Q=()=>{if(typeof window=="undefined")return false;let t=navigator.userAgent||navigator.vendor||window.opera||"",e=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t),r=window.innerWidth<=768,n="ontouchstart"in window||navigator.maxTouchPoints>0;return e||r&&n},K=t=>{var e,r,n;return Q()?O(L({},t),{particleCount:Math.floor((t.particleCount||50)*.6),elementSize:Math.floor((t.elementSize||20)*.8),lifetime:Math.floor((t.lifetime||150)*.8),physics:O(L({},t.physics),{gravity:Math.round((((e=t.physics)==null?void 0:e.gravity)||0)*100)/100,wind:Math.round((((r=t.physics)==null?void 0:r.wind)||0)*100)/100,friction:Math.round((((n=t.physics)==null?void 0:n.friction)||.98)*100)/100})}):t},ue=t=>Q()?t%3===0:false;var tt=class{constructor(){this.animations=new Map;this.rafId=null;this.isRunning=false;this.lastFrameTime=0;this.frameInterval=1e3/60;this.frameCount=0;this.fpsUpdateInterval=1e3;this.lastFpsUpdate=0;this.currentFps=0;this.update=this.update.bind(this);}addAnimation(e){this.animations.set(e.id,e),!this.isRunning&&this.animations.size>0&&this.start();}removeAnimation(e){let r=this.animations.get(e);r&&(w.releaseAll(r.particles),r.containerElement&&document.body.contains(r.containerElement)&&document.body.removeChild(r.containerElement),this.animations.delete(e)),this.animations.size===0&&this.stop();}start(){this.isRunning||(this.isRunning=true,this.lastFrameTime=performance.now(),this.lastFpsUpdate=this.lastFrameTime,this.frameCount=0,this.rafId=requestAnimationFrame(this.update));}stop(){this.isRunning&&(this.isRunning=false,this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null));}update(e){let r=e-this.lastFrameTime;if(r<this.frameInterval){this.rafId=requestAnimationFrame(this.update);return}if(this.lastFrameTime=e-r%this.frameInterval,this.frameCount++,e-this.lastFpsUpdate>=this.fpsUpdateInterval&&(this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsUpdate=e),!!document.hidden){this.rafId=requestAnimationFrame(this.update);return}let a=[];this.animations.forEach((i,s)=>{if(i.isPaused)return;i.frameCount++;let l=ue(i.frameCount),c=0,u=[];i.particles=i.particles.map(d=>(d.life<=0||(c++,d.x+=d.vx,d.y+=d.vy,d.vy+=i.physics.gravity,d.vx+=i.physics.wind,d.vx*=i.physics.friction,d.vy*=i.physics.friction,i.animationType==="sparkles"?d.rotation+=5:d.rotation+=d.vx*2,d.life-=1.2,this.applyEffects(d,i),this.handleMortarExplosion(d,i,u),this.updateOpacity(d,i)),d)),u.length>0&&i.particles.push(...u),i.updateCallback&&!l&&i.updateCallback(i.particles),c===0&&(a.push(s),i.onComplete&&i.onComplete());}),a.forEach(i=>this.removeAnimation(i)),this.isRunning&&(this.rafId=requestAnimationFrame(this.update));}applyEffects(e,r){var i;let n=(i=r.config)==null?void 0:i.effects;if(!n)return;let{animationType:a}=r;n.flutter&&a==="confetti"&&(e.x+=Math.sin(e.life*.1)*.5,e.rotation+=Math.sin(e.life*.05)*2),n.windDrift&&(a==="snow"||a==="leaves")&&(e.x+=Math.sin(e.life*.05+e.id.charCodeAt(0))*.8),n.wobble&&a==="bubbles"&&(e.x+=Math.sin(e.life*.08)*.3,e.y+=Math.cos(e.life*.08)*.2);}handleMortarExplosion(e,r,n){var a,i;if(!(r.animationType!=="mortar"||!e.element))try{let s=JSON.parse(e.element);if(s.isShell&&!s.hasExploded){if(r.frameCount%3===0){let d=w.acquire();Object.assign(d,{id:`${e.id}-trail-${Date.now()}`,x:e.x+o(-2,2),y:e.y+o(-2,2),vx:o(-1,1),vy:o(0,2),life:30,opacity:.8,size:e.size*.7,rotation:0,color:e.color,element:JSON.stringify({isTrail:!0}),config:e.config}),n.push(d);}if(((i=(a=e.config)==null?void 0:a.lifetime)!=null?i:200)-e.life>=(s.timeToExplode||25)){s.hasExploded=!0,e.element=JSON.stringify(s);let d=window.innerWidth<768,h=d?20:30,y=[],P=["#FFFFFF","#FFF9C4","#BBDEFB","#C5CAE9","#D1C4E9","#FFE082","#FFCCBC"];for(let p=0;p<h;p++){let v=p/h,$=v*Math.PI*6,I=v*80,E=o(-.4,.4),B=o(-15,15),R=$+E,S=(I+B)*.5,x=R+Math.PI/2,W=3*(1-v*.3),b=w.acquire();Object.assign(b,{id:`${e.id}-burst-${p}`,x:e.x+Math.cos(R)*S*.1,y:e.y+Math.sin(R)*S*.1,vx:Math.cos(x)*W+Math.cos(R)*2,vy:Math.sin(x)*W+Math.sin(R)*2,life:120-v*40,opacity:1,size:o(2,5)*(1-v*.5),rotation:o(0,360),color:P[Math.floor(Math.random()*P.length)],element:JSON.stringify({isBurst:!0,isGalaxy:!0,twinkle:Math.random()>.7}),config:e.config}),y.push(b);}let C=d?5:8;for(let p=0;p<C;p++){let v=Math.PI*2*p/C,$=w.acquire();Object.assign($,{id:`${e.id}-core-${p}`,x:e.x,y:e.y,vx:Math.cos(v)*o(1,2),vy:Math.sin(v)*o(1,2),life:60,opacity:1,size:o(3,5),rotation:0,color:"#FFFFFF",element:JSON.stringify({isBurst:!0,isCore:!0}),config:e.config}),y.push($);}let M=w.acquire();Object.assign(M,{id:`${e.id}-flash`,x:e.x,y:e.y,vx:0,vy:0,life:20,opacity:1,size:30,rotation:0,color:"#ffffff",element:JSON.stringify({isBurst:!0}),config:e.config}),y.push(M),n.push(...y);}}}catch(s){}}updateOpacity(e,r){let{animationType:n,config:a}=r,i=a==null?void 0:a.effects;n==="sparkles"?(e.life>70?e.opacity=(100-e.life)/30:e.life<30&&(e.opacity=e.life/30),i!=null&&i.twinkle&&(e.opacity*=.5+Math.sin(e.life*.3)*.5)):n==="stars"&&(i!=null&&i.twinkle)?e.opacity=e.life/100*(.5+Math.sin(e.life*.3)*.5):e.opacity=e.life/100;}getStats(){return {activeAnimations:this.animations.size,currentFps:this.currentFps,isRunning:this.isRunning,totalParticles:Array.from(this.animations.values()).reduce((e,r)=>e+r.particles.filter(n=>n.life>0).length,0)}}setTargetFPS(e){this.frameInterval=1e3/e;}pauseAnimation(e){let r=this.animations.get(e);r&&!r.isPaused&&(r.isPaused=true,r.pausedAt=performance.now());}resumeAnimation(e){let r=this.animations.get(e);r&&r.isPaused&&(r.isPaused=false,this.animations.size>0&&!this.isRunning&&this.start());}isAnimationPaused(e){let r=this.animations.get(e);return r?!!r.isPaused:false}getAnimation(e){return this.animations.get(e)}},k=new tt;function so(t,e,r){let[n,a]=z.useState(false),i=z.useRef(null),s=z.useRef(null),l=z.useRef(null),c=z.useRef(null),u=typeof t=="string",d=u?c:t,h=z.useCallback(()=>new Promise(I=>{var rt,it,nt,at,st,lt,ct,dt,ft,mt,ut,ht,pt;let E=null;if(u){if(typeof document=="undefined")return;E=document.getElementById(t);}else E=d.current;if(!E){(rt=console.warn)==null||rt.call(console,`[Partycles] Element ${u?`with ID "${t}"`:"from ref"} not found. Make sure the element exists when reward() is called.`),I();return}let B=E.getBoundingClientRect(),R={x:B.left+B.width/2,y:B.top+B.height/2},S=me[e];if(!S){console.error(`Animation type "${e}" not found`),I();return}let x=r?K(r):void 0,W=S.createParticles(R,x||{}).map(q=>O(L({},q),{config:x||r}));if(typeof document=="undefined"){I();return}let b=document.createElement("div");b.style.position="fixed",b.style.top="0",b.style.left="0",b.style.width="100%",b.style.height="100%",b.style.pointerEvents="none",b.style.zIndex="9999",document.body.appendChild(b),s.current=b;let ye=client.createRoot(b);l.current=ye;b.getBoundingClientRect();let xe=e==="bubbles"?-0.1:e==="snow"?.05:.35,be=(st=(at=(it=x==null?void 0:x.physics)==null?void 0:it.gravity)!=null?at:(nt=r==null?void 0:r.physics)==null?void 0:nt.gravity)!=null?st:xe,Pe=(ft=(dt=(lt=x==null?void 0:x.physics)==null?void 0:lt.friction)!=null?dt:(ct=r==null?void 0:r.physics)==null?void 0:ct.friction)!=null?ft:.98,ve=(pt=(ht=(mt=x==null?void 0:x.physics)==null?void 0:mt.wind)!=null?ht:(ut=r==null?void 0:r.physics)==null?void 0:ut.wind)!=null?pt:0,ot=`${Date.now()}-${Math.random().toString(36).substr(2,9)}`;i.current=ot;let Fe=q=>{l.current&&l.current.render(z__default.default.createElement(z__default.default.Fragment,null,q.filter(T=>T.life>0).map(T=>z__default.default.createElement("div",{key:T.id,style:xt(T)},S.renderParticle(T)))));};k.addAnimation({id:ot,particles:W,containerElement:b,renderFunction:S.renderParticle,updateCallback:Fe,onComplete:()=>{l.current&&(l.current.unmount(),l.current=null),s.current=null,i.current=null,a(false),I();},physics:{gravity:be,friction:Pe,wind:ve},animationType:e,config:x||r,frameCount:0}),a(true);}),[t,e,r,u,d]),y=z.useCallback(()=>n?Promise.resolve():h(),[h,n]),P=z.useCallback(()=>{i.current&&k.pauseAnimation(i.current);},[]),C=z.useCallback(()=>{i.current&&k.resumeAnimation(i.current);},[]),M=z.useCallback(()=>(i.current&&(k.removeAnimation(i.current),i.current=null),a(false),h()),[h]),[p,v]=z.useState(null);z.useEffect(()=>{v(i.current);},[n]);let $=z.useMemo(()=>p?k.isAnimationPaused(p):false,[p]);return z.useEffect(()=>()=>{i.current&&k.removeAnimation(i.current),l.current&&(l.current.unmount(),l.current=null),s.current&&document.body.contains(s.current)&&(document.body.removeChild(s.current),s.current=null);},[]),u?{reward:y,isAnimating:n,pause:P,resume:C,replay:M,isPaused:$}:{reward:y,isAnimating:n,targetRef:d,pause:P,resume:C,replay:M,isPaused:$}}exports.animationManager=k;exports.emojiPresets=Xe;exports.isMobileDevice=Q;exports.optimizeConfigForMobile=K;exports.particlePool=w;exports.useReward=so;//# sourceMappingURL=index.js.map
|
|
55
55
|
//# sourceMappingURL=index.js.map
|