/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@moefy-canvas/theme-popper@0.6.0/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
var b,z,g,w,x=s=>{throw TypeError(s)},I=(s,t,i)=>t.has(s)||x("Cannot "+i),s=(s,t,i)=>(I(s,t,"read from private field"),i?i.call(s):t.get(s)),h=(s,t,i)=>t.has(s)?x("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(s):t.set(s,i),n=(s,t,i,e)=>(I(s,t,"write to private field"),e?e.call(s,i):t.set(s,i),i),f=(s,t,i)=>(I(s,t,"access private method"),i),B=(t,i,e,h)=>({set _(s){n(t,i,s,e)},get _(){return s(t,i,h)}});import{DrawBoard as V}from"@moefy-canvas/core";export*from"@moefy-canvas/core";import{Random as S,EventsHandler as W,showBadge as j,isMobile as k,isTouchEvent as D}from"@moefy-canvas/utils";import{debounce as G}from"ts-debounce";class E{constructor(s,t,i,e,a){h(this,b),h(this,z),h(this,g,0),this.size=i,this.color=e,n(this,b,a),n(this,z,t),this.position={...s}}move(){this.position.x=Math.sin(s(this,b))*s(this,z)+this.position.x,this.position.y=Math.cos(s(this,b))*s(this,z)+this.position.y+.3*s(this,g),B(this,g)._++}shouleRemove(s){return this.position.x<0||this.position.x>s.width||this.position.y>s.height}}b=new WeakMap,z=new WeakMap,g=new WeakMap;class J extends E{draw(s,t){s.fillStyle=this.color,s.beginPath(),s.arc(this.position.x,this.position.y,this.size,0,2*Math.PI),s.fill()}}class K extends E{constructor(s,t,i,e,a){super(s,t,i,e,a),h(this,w,0)}draw(t,i){t.fillStyle=this.color,t.beginPath();const e=2*this.size,h=this.size;for(let i=0;i<5;i++)t.lineTo(Math.cos((18+72*i-s(this,w))/180*Math.PI)*e+this.position.x,-Math.sin((18+72*i-s(this,w))/180*Math.PI)*e+this.position.y),t.lineTo(Math.cos((54+72*i-s(this,w))/180*Math.PI)*h+this.position.x,-Math.sin((54+72*i-s(this,w))/180*Math.PI)*h+this.position.y);t.fill(),n(this,w,s(this,w)+5)}}w=new WeakMap;const T=class{static create(s,t,i,e,h,a){return new(this.shapeMap.get(s))(t,i,e,h,a)}};T.shapeMap=new Map([["star",K],["circle",J]]);let A=T;var p;class L{constructor(t,i,e,a){h(this,p),this.stopped=!1,n(this,p,new Set);for(let h=0;h<a;h++){const h=A.create(t,i,S.randomFloat(1,6),e,S.color("89ABCDEF"),S.randomFloat(Math.PI-1,Math.PI+1));s(this,p).add(h)}}move(t){for(const i of s(this,p))i.shouleRemove(t)?s(this,p).delete(i):i.move();0===s(this,p).size&&(this.stopped=!0)}draw(t,i){for(const e of s(this,p))e.draw(t,i)}}p=new WeakMap;var P,v,y,m,u,M,C,d,a,F,H,R,q,X,Y,N=(s=>(s.Star="star",s.Circle="circle",s))(N||{});class tt{constructor({shape:s="star",size:t=2,numParticles:i=10}={},e={}){h(this,a),h(this,P),h(this,v),h(this,y),h(this,m,null),h(this,u,new Set),h(this,M,!1),h(this,C),h(this,d,new W),n(this,P,s),n(this,v,t),n(this,y,i),n(this,C,e),this.animate=this.animate.bind(this)}mount(t){n(this,m,new V(t,window.innerWidth,window.innerHeight,!0,s(this,C))),f(this,a,F).call(this),j("Theme Popper 🎉",{leftBgColor:"#ffb366"})}unmount(){f(this,a,H).call(this),n(this,M,!1)}animate(){if(n(this,M,!0),0===s(this,u).size)return n(this,M,!1),void s(this,m).clear();requestAnimationFrame(this.animate);for(const t of s(this,u)){if(t.stopped)return void s(this,u).delete(t);t.move(s(this,m).size)}s(this,m).draw(((t,i)=>{for(const e of s(this,u))e.draw(t,i)})),s(this,m).render()}}P=new WeakMap,v=new WeakMap,y=new WeakMap,m=new WeakMap,u=new WeakMap,M=new WeakMap,C=new WeakMap,d=new WeakMap,a=new WeakSet,F=function(){k()?s(this,d).add("touchstart",f(this,a,R).bind(this)):s(this,d).add("mousedown",f(this,a,R).bind(this)),s(this,d).add("visibilitychange",f(this,a,X).bind(this)),s(this,d).add("resize",G(f(this,a,q).bind(this),500)),s(this,d).startAll()},H=function(){s(this,d).stopAll(),s(this,d).clear()},R=function(t){const i={x:D(t)?t.touches[0].clientX:t.clientX,y:D(t)?t.touches[0].clientY:t.clientY},e=new L(s(this,P),{...i},s(this,v),s(this,y));s(this,u).add(e),s(this,M)||f(this,a,Y).call(this)},q=function(t){s(this,m).handleResize(t)},X=function(t){s(this,u).clear(),n(this,M,!1)},Y=function(){requestAnimationFrame(this.animate)};export{tt as Popper,N as PopperShape};
//# sourceMappingURL=/sm/9aa6c9da5d2e32681a17a6000e51c12699b7b60545494a921384eba2be0ab225.map