@tsparticles/plugin-absorbers 4.0.0-beta.1 → 4.0.0-beta.10

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.
Files changed (52) hide show
  1. package/523.min.js +1 -0
  2. package/547.min.js +1 -0
  3. package/555.min.js +1 -0
  4. package/{285.min.js → 564.min.js} +1 -1
  5. package/63.min.js +1 -0
  6. package/986.min.js +1 -0
  7. package/README.md +29 -2
  8. package/browser/getAbsorbersInstancesManager.js +15 -0
  9. package/browser/index.js +4 -14
  10. package/browser/interaction.js +14 -0
  11. package/browser/plugin.js +10 -0
  12. package/cjs/getAbsorbersInstancesManager.js +15 -0
  13. package/cjs/index.js +4 -14
  14. package/cjs/interaction.js +14 -0
  15. package/cjs/plugin.js +10 -0
  16. package/dist_browser_AbsorberInstance_js.js +1 -1
  17. package/dist_browser_AbsorbersInstancesManager_js.js +1 -1
  18. package/dist_browser_AbsorbersInteractor_js.js +1 -1
  19. package/dist_browser_AbsorbersPluginInstance_js.js +1 -1
  20. package/dist_browser_AbsorbersPlugin_js.js +1 -1
  21. package/dist_browser_getAbsorbersInstancesManager_js.js +30 -0
  22. package/esm/getAbsorbersInstancesManager.js +15 -0
  23. package/esm/index.js +4 -14
  24. package/esm/interaction.js +14 -0
  25. package/esm/plugin.js +10 -0
  26. package/package.json +24 -6
  27. package/report.html +1 -1
  28. package/tsparticles.plugin.absorbers.js +22 -2
  29. package/tsparticles.plugin.absorbers.min.js +2 -2
  30. package/types/getAbsorbersInstancesManager.d.ts +3 -0
  31. package/types/interaction.d.ts +3 -0
  32. package/types/plugin.d.ts +3 -0
  33. package/122.min.js +0 -1
  34. package/677.min.js +0 -1
  35. package/698.min.js +0 -1
  36. package/998.min.js +0 -1
  37. package/umd/AbsorberContainer.js +0 -12
  38. package/umd/AbsorberInstance.js +0 -211
  39. package/umd/AbsorbersInstancesManager.js +0 -97
  40. package/umd/AbsorbersInteractor.js +0 -109
  41. package/umd/AbsorbersPlugin.js +0 -86
  42. package/umd/AbsorbersPluginInstance.js +0 -56
  43. package/umd/Options/Classes/Absorber.js +0 -74
  44. package/umd/Options/Classes/AbsorberLife.js +0 -41
  45. package/umd/Options/Classes/AbsorberSize.js +0 -41
  46. package/umd/Options/Classes/AbsorberSizeLimit.js +0 -34
  47. package/umd/Options/Interfaces/IAbsorber.js +0 -12
  48. package/umd/Options/Interfaces/IAbsorberLife.js +0 -12
  49. package/umd/Options/Interfaces/IAbsorberSize.js +0 -12
  50. package/umd/Options/Interfaces/IAbsorberSizeLimit.js +0 -12
  51. package/umd/index.js +0 -63
  52. package/umd/types.js +0 -12
package/523.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[523],{523(r,t,e){e.d(t,{AbsorbersInstancesManager:()=>a});var s=e(303);class a{_containerArrays;_pluginManager;constructor(r){this._pluginManager=r,this._containerArrays=new Map}async addAbsorber(r,t,s){let{AbsorberInstance:a}=await e.e(986).then(e.bind(e,986)),i=new a(this._pluginManager,r,t,s);return this.getArray(r).push(i),i}clear(r){this.initContainer(r),this._containerArrays.set(r,[])}getArray(r){this.initContainer(r);let t=this._containerArrays.get(r);return t||(t=[],this._containerArrays.set(r,t)),t}initContainer(r){this._containerArrays.has(r)||(this._containerArrays.set(r,[]),r.getAbsorber??=t=>{let e=this.getArray(r);return void 0===t||(0,s.isNumber)(t)?e[t??0]:e.find(r=>r.name===t)},r.addAbsorber??=(t,e)=>this.addAbsorber(r,t,e))}removeAbsorber(r,t){let e=this.getArray(r).indexOf(t);e>=0&&this.getArray(r).splice(e,1)}}}}]);
package/547.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[547],{547(i,s,t){t.r(s),t.d(s,{AbsorbersPlugin:()=>a});var o=t(303),e=t(510);class a{id="absorbers";_instancesManager;constructor(i){this._instancesManager=i}async getPlugin(i){let{AbsorbersPluginInstance:s}=await t.e(564).then(t.bind(t,564));return new s(i,this._instancesManager)}loadOptions(i,s,t){(this.needsPlugin(s)||this.needsPlugin(t))&&t?.absorbers&&(s.absorbers=(0,o.executeOnSingleOrMultiple)(t.absorbers,i=>{let s=new e.h;return s.load(i),s}))}needsPlugin(i){if(!i)return!1;let s=i.absorbers;return(0,o.isArray)(s)?!!s.length:!!s}}},510(i,s,t){t.d(s,{h:()=>l});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class l{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
package/555.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[555],{555(i,s,t){t.d(s,{AbsorbersInteractor:()=>n});var o=t(702),e=t(303),a=t(510);let r="absorbers";class n extends o.ExternalInteractorBase{handleClickMode;maxDistance;_dragging=!1;_draggingAbsorber;_instancesManager;constructor(i,s){super(i),this.maxDistance=0,this._instancesManager=s,this._instancesManager.initContainer(i),this.handleClickMode=(i,t)=>{let o=this.container,n=o.actualOptions.interactivity.modes.absorbers;if(!n||i!==r)return;let{clickPosition:l}=t.mouse;if(l&&s.getArray(this.container).some(i=>(0,e.getDistance)(i.position,l)<i.size))return;let d=(0,e.itemFromArray)(n)??new a.h;this._instancesManager.addAbsorber(o,d,l)}}clear(){}init(){}interact(i,s){for(let t of this.container.particles.filter(s=>this.isEnabled(i,s)))for(let o of this._instancesManager.getArray(this.container)){if(o.options.draggable){let s=i.mouse;s.clicking&&s.downPosition?(0,e.getDistance)(o.position,s.downPosition)<=o.size&&(this._dragging=!0,this._draggingAbsorber=o):(this._dragging=!1,this._draggingAbsorber=void 0),this._dragging&&this._draggingAbsorber==o&&s.position&&(o.position.x=s.position.x,o.position.y=s.position.y)}if(o.attract(t,s),t.destroyed)break}}isEnabled(i,s){let t=this.container.actualOptions,o=i.mouse,a=(s?.interactivity??t.interactivity).events;return!!o.clickPosition&&!!a.onClick.enable&&(0,e.isInArray)(r,a.onClick.mode)}loadModeOptions(i,...s){for(let t of(i.absorbers??=[],s))if(t)if((0,e.isArray)(t.absorbers))for(let s of t.absorbers){let t=new a.h;t.load(s),i.absorbers.push(t)}else{let s=new a.h;s.load(t.absorbers),i.absorbers.push(s)}}reset(){}}},510(i,s,t){t.d(s,{h:()=>n});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class n{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
@@ -1 +1 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[285],{285(a,t,s){s.d(t,{AbsorbersPluginInstance:()=>n});var e=s(303);class n{_container;_instancesManager;constructor(a,t){this._container=a,this._instancesManager=t,this._instancesManager.initContainer(a)}draw(a){for(let t of this._instancesManager.getArray(this._container))t.draw(a)}async init(){let a=this._container.actualOptions.absorbers,t=(0,e.executeOnSingleOrMultiple)(a,async a=>{await this._instancesManager.addAbsorber(this._container,a)});(0,e.isArray)(t)?await Promise.all(t):await t}particleUpdate(a,t){for(let s of this._instancesManager.getArray(this._container))if(s.attract(a,t),a.destroyed)break}resize(){for(let a of this._instancesManager.getArray(this._container))a.resize()}stop(){this._instancesManager.clear(this._container)}}}}]);
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[564],{564(a,t,s){s.d(t,{AbsorbersPluginInstance:()=>n});var e=s(303);class n{_container;_instancesManager;constructor(a,t){this._container=a,this._instancesManager=t,this._instancesManager.initContainer(a)}draw(a){for(let t of this._instancesManager.getArray(this._container))t.draw(a)}async init(){let a=this._container.actualOptions.absorbers,t=(0,e.executeOnSingleOrMultiple)(a,async a=>{await this._instancesManager.addAbsorber(this._container,a)});(0,e.isArray)(t)?await Promise.all(t):await t}particleUpdate(a,t){for(let s of this._instancesManager.getArray(this._container))if(s.attract(a,t),a.destroyed)break}resize(){for(let a of this._instancesManager.getArray(this._container))a.resize()}stop(){this._instancesManager.clear(this._container)}}}}]);
package/63.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[63],{63(e,t,s){s.r(t),s.d(t,{getAbsorbersInstancesManager:()=>r});let n=new WeakMap;function r(e){let t=e.pluginManager,r=n.get(t);return r||(r=s.e(523).then(s.bind(s,523)).then(({AbsorbersInstancesManager:e})=>new e(t)).catch(e=>{throw n.delete(t),e}),n.set(t,r)),r}}}]);
package/986.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[986],{986(i,t,s){s.d(t,{AbsorberInstance:()=>r});var o=s(303),e=s(510);let a=o.doublePI,n=o.identity/360;class r{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_firstSpawn;_immortal;_lifeCount;_pluginManager;_spawnDelay;initialPosition;constructor(i,t,s,a){this._container=t,this._pluginManager=i,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=a?o.Vector.create(a.x,a.y):void 0,s instanceof e.h?this.options=s:(this.options=new e.h,this.options.load(s)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=(0,o.getRangeValue)(this.options.size.value)*t.retina.pixelRatio,this.mass=this.size*this.options.size.density*t.retina.reduceFactor;const n=this.options.size.limit;this.limit={radius:n.radius*t.retina.pixelRatio*t.retina.reduceFactor,mass:n.mass},this.color=(0,o.rangeColorToRgb)(this._pluginManager,this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition(),this._firstSpawn=!this.options.life.wait,this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this._spawnDelay=t.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/t.retina.reduceFactor:1/0}attract(i,t){let s=this._container,e=this.options,a=i.getPosition(),{dx:n,dy:r,distance:l}=(0,o.getDistances)(this.position,a),h=o.Vector.create(n,r);if(h.length=this.mass/Math.pow(l,2)*s.retina.reduceFactor,l<this.size+i.getRadius()){let o=.033*i.getRadius()*s.retina.pixelRatio*t.factor;this.size>i.getRadius()&&l<this.size-i.getRadius()||void 0!==i.absorberOrbit&&i.absorberOrbit.length<0?e.destroy?i.destroy():(i.needsNewPosition=!0,this._updateParticlePosition(i,t,h)):(e.destroy&&(i.size.value-=o),this._updateParticlePosition(i,t,h)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=o),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=o*this.options.size.density*s.retina.reduceFactor)}else this._updateParticlePosition(i,t,h)}draw(i){i.translate(this.position.x,this.position.y),i.beginPath(),i.arc(o.originPoint.x,o.originPoint.y,this.size,0,a,!1),i.closePath(),i.fillStyle=(0,o.getStyleFromRgb)(this.color,this._container.hdr,this.opacity),i.fill()}resize(){let i=this.initialPosition;this.position=i&&(0,o.isPointInside)(i,this._container.canvas.size,o.Vector.origin)?i:this._calcPosition()}update(i){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=i.value,this._currentDuration>=this._duration&&(!this._immortal&&this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=i.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{let i=(0,o.calcPositionOrRandomFromSizeRanged)({size:this._container.canvas.size,position:this.options.position});return o.Vector.create(i.x,i.y)};_prepareToDie=()=>{let i=void 0!==this.options.life.duration?(0,o.getRangeValue)(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==i&&i>0&&(this._duration=i*o.millisecondsToSeconds)};_updateParticlePosition=(i,t,s)=>{if(i.destroyed)return;let e=this._container,r=e.canvas.size;if(i.needsNewPosition){let t=(0,o.calcPositionOrRandomFromSize)({size:r});i.position.setTo(t),i.velocity.setTo(i.initialVelocity),i.absorberOrbit=void 0,i.needsNewPosition=!1}if(this.options.orbits){if(void 0===i.absorberOrbit&&(i.absorberOrbit=o.Vector.origin,i.absorberOrbit.length=(0,o.getDistance)(i.getPosition(),this.position),i.absorberOrbit.angle=(0,o.getRandom)()*a),i.absorberOrbit.length<=this.size&&!this.options.destroy){let t=Math.min(r.width,r.height);i.absorberOrbit.length=t*(1+(.2*(0,o.getRandom)()-.1))}i.absorberOrbitDirection??=i.velocity.x>=0?o.RotateDirection.clockwise:o.RotateDirection.counterClockwise;let l=i.absorberOrbit.length,h=i.absorberOrbit.angle,c=i.absorberOrbitDirection;i.velocity.setTo(o.Vector.origin);let d=(0,o.getRangeMax)(i.options.size.value)*e.retina.pixelRatio,u=i.options.move.size?i.getRadius()/d:o.identity,p=t.factor||o.identity,_=i.retina.moveSpeed*u*p*o.half;i.position.x=this.position.x+l*Math.cos(h),i.position.y=this.position.y+l*(c===o.RotateDirection.clockwise?o.identity:-o.identity)*Math.sin(h),i.absorberOrbit.length=Math.max(0,i.absorberOrbit.length-s.length),i.absorberOrbit.angle+=_*n*e.retina.reduceFactor}else i.velocity.addTo(s)};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}},510(i,t,s){s.d(t,{h:()=>r});var o=s(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class n extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class r{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new n}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
package/README.md CHANGED
@@ -8,6 +8,12 @@
8
8
 
9
9
  [tsParticles](https://github.com/tsparticles/tsparticles) plugin for particles absorbers.
10
10
 
11
+ ## Quick checklist
12
+
13
+ 1. Install `@tsparticles/engine` (or use the CDN bundle below)
14
+ 2. Call the package loader function(s) before `tsParticles.load(...)`
15
+ 3. Apply the package options in your `tsParticles.load(...)` config
16
+
11
17
  ## How to use it
12
18
 
13
19
  ### CDN / Vanilla JS / jQuery
@@ -17,7 +23,7 @@ The CDN/Vanilla version JS has one required file in vanilla configuration:
17
23
  Including the `tsparticles.plugin.absorbers.min.js` file will export the function to load the plugin:
18
24
 
19
25
  ```javascript
20
- loadAbsorbersPlugin;
26
+ loadAbsorbersPluginSimple;
21
27
  ```
22
28
 
23
29
  ### Usage
@@ -27,7 +33,7 @@ Once the scripts are loaded you can set up `tsParticles` and the plugin like thi
27
33
  ```javascript
28
34
  (async () => {
29
35
  await loadInteractivityPlugin(tsParticles);
30
- await loadAbsorbersPlugin(tsParticles);
36
+ await loadAbsorbersPluginSimple(tsParticles);
31
37
 
32
38
  await tsParticles.load({
33
39
  id: "tsparticles",
@@ -77,3 +83,24 @@ import { loadAbsorbersPlugin } from "@tsparticles/plugin-absorbers";
77
83
  await loadAbsorbersPlugin(tsParticles);
78
84
  })();
79
85
  ```
86
+
87
+ ## Option mapping
88
+
89
+ - Primary options key: `absorbers`
90
+
91
+ ```json
92
+ {
93
+ "absorbers": {}
94
+ }
95
+ ```
96
+
97
+ ## Common pitfalls
98
+
99
+ - Calling `tsParticles.load(...)` before `loadInteractivityPlugin(...)`
100
+ - Verify required peer packages before enabling advanced options
101
+ - Change one option group at a time to isolate regressions quickly
102
+
103
+ ## Related docs
104
+
105
+ - All packages catalog: <https://github.com/tsparticles/tsparticles>
106
+ - Main docs: <https://particles.js.org/docs/>
@@ -0,0 +1,15 @@
1
+ const instancesManagers = new WeakMap();
2
+ export function getAbsorbersInstancesManager(e) {
3
+ const pluginManager = e.pluginManager;
4
+ let manager = instancesManagers.get(pluginManager);
5
+ if (!manager) {
6
+ manager = import("./AbsorbersInstancesManager.js")
7
+ .then(({ AbsorbersInstancesManager }) => new AbsorbersInstancesManager(pluginManager))
8
+ .catch((error) => {
9
+ instancesManagers.delete(pluginManager);
10
+ throw error;
11
+ });
12
+ instancesManagers.set(pluginManager, manager);
13
+ }
14
+ return manager;
15
+ }
package/browser/index.js CHANGED
@@ -1,16 +1,6 @@
1
+ import { loadAbsorbersInteraction } from "./interaction.js";
2
+ import { loadAbsorbersPluginSimple } from "./plugin.js";
1
3
  export async function loadAbsorbersPlugin(engine) {
2
- engine.checkVersion("4.0.0-beta.1");
3
- await engine.pluginManager.register(async (e) => {
4
- const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
- import("@tsparticles/plugin-interactivity"),
6
- import("./AbsorbersInstancesManager.js"),
7
- import("./AbsorbersPlugin.js"),
8
- ]), pluginManager = e.pluginManager, instancesManager = new AbsorbersInstancesManager(pluginManager);
9
- ensureInteractivityPluginLoaded(e);
10
- pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
11
- pluginManager.addInteractor?.("externalAbsorbers", async (container) => {
12
- const { AbsorbersInteractor } = await import("./AbsorbersInteractor.js");
13
- return new AbsorbersInteractor(container, instancesManager);
14
- });
15
- });
4
+ await loadAbsorbersPluginSimple(engine);
5
+ await loadAbsorbersInteraction(engine);
16
6
  }
@@ -0,0 +1,14 @@
1
+ export async function loadAbsorbersInteraction(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager },] = await Promise.all([
5
+ import("@tsparticles/plugin-interactivity"),
6
+ import("./getAbsorbersInstancesManager.js"),
7
+ ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
+ ensureInteractivityPluginLoaded(e);
9
+ pluginManager.addInteractor?.("externalAbsorbers", async (container) => {
10
+ const { AbsorbersInteractor } = await import("./AbsorbersInteractor.js");
11
+ return new AbsorbersInteractor(container, instancesManager);
12
+ });
13
+ });
14
+ }
@@ -0,0 +1,10 @@
1
+ export async function loadAbsorbersPluginSimple(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
+ import("./getAbsorbersInstancesManager.js"),
6
+ import("./AbsorbersPlugin.js"),
7
+ ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
+ pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
9
+ });
10
+ }
@@ -0,0 +1,15 @@
1
+ const instancesManagers = new WeakMap();
2
+ export function getAbsorbersInstancesManager(e) {
3
+ const pluginManager = e.pluginManager;
4
+ let manager = instancesManagers.get(pluginManager);
5
+ if (!manager) {
6
+ manager = import("./AbsorbersInstancesManager.js")
7
+ .then(({ AbsorbersInstancesManager }) => new AbsorbersInstancesManager(pluginManager))
8
+ .catch((error) => {
9
+ instancesManagers.delete(pluginManager);
10
+ throw error;
11
+ });
12
+ instancesManagers.set(pluginManager, manager);
13
+ }
14
+ return manager;
15
+ }
package/cjs/index.js CHANGED
@@ -1,16 +1,6 @@
1
+ import { loadAbsorbersInteraction } from "./interaction.js";
2
+ import { loadAbsorbersPluginSimple } from "./plugin.js";
1
3
  export async function loadAbsorbersPlugin(engine) {
2
- engine.checkVersion("4.0.0-beta.1");
3
- await engine.pluginManager.register(async (e) => {
4
- const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
- import("@tsparticles/plugin-interactivity"),
6
- import("./AbsorbersInstancesManager.js"),
7
- import("./AbsorbersPlugin.js"),
8
- ]), pluginManager = e.pluginManager, instancesManager = new AbsorbersInstancesManager(pluginManager);
9
- ensureInteractivityPluginLoaded(e);
10
- pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
11
- pluginManager.addInteractor?.("externalAbsorbers", async (container) => {
12
- const { AbsorbersInteractor } = await import("./AbsorbersInteractor.js");
13
- return new AbsorbersInteractor(container, instancesManager);
14
- });
15
- });
4
+ await loadAbsorbersPluginSimple(engine);
5
+ await loadAbsorbersInteraction(engine);
16
6
  }
@@ -0,0 +1,14 @@
1
+ export async function loadAbsorbersInteraction(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager },] = await Promise.all([
5
+ import("@tsparticles/plugin-interactivity"),
6
+ import("./getAbsorbersInstancesManager.js"),
7
+ ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
+ ensureInteractivityPluginLoaded(e);
9
+ pluginManager.addInteractor?.("externalAbsorbers", async (container) => {
10
+ const { AbsorbersInteractor } = await import("./AbsorbersInteractor.js");
11
+ return new AbsorbersInteractor(container, instancesManager);
12
+ });
13
+ });
14
+ }
package/cjs/plugin.js ADDED
@@ -0,0 +1,10 @@
1
+ export async function loadAbsorbersPluginSimple(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
+ import("./getAbsorbersInstancesManager.js"),
6
+ import("./AbsorbersPlugin.js"),
7
+ ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
+ pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
9
+ });
10
+ }
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-beta.1
7
+ * v4.0.0-beta.10
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-beta.1
7
+ * v4.0.0-beta.10
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-beta.1
7
+ * v4.0.0-beta.10
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-beta.1
7
+ * v4.0.0-beta.10
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-beta.1
7
+ * v4.0.0-beta.10
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-beta.10
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_plugin_absorbers"] = this["webpackChunk_tsparticles_plugin_absorbers"] || []).push([["dist_browser_getAbsorbersInstancesManager_js"],{
19
+
20
+ /***/ "./dist/browser/getAbsorbersInstancesManager.js"
21
+ /*!******************************************************!*\
22
+ !*** ./dist/browser/getAbsorbersInstancesManager.js ***!
23
+ \******************************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAbsorbersInstancesManager: () => (/* binding */ getAbsorbersInstancesManager)\n/* harmony export */ });\nconst instancesManagers = new WeakMap();\nfunction getAbsorbersInstancesManager(e) {\n const pluginManager = e.pluginManager;\n let manager = instancesManagers.get(pluginManager);\n if (!manager) {\n manager = __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInstancesManager.js */ \"./dist/browser/AbsorbersInstancesManager.js\")).then(({ AbsorbersInstancesManager })=>new AbsorbersInstancesManager(pluginManager)).catch((error)=>{\n instancesManagers.delete(pluginManager);\n throw error;\n });\n instancesManagers.set(pluginManager, manager);\n }\n return manager;\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/getAbsorbersInstancesManager.js?\n}");
27
+
28
+ /***/ }
29
+
30
+ }]);
@@ -0,0 +1,15 @@
1
+ const instancesManagers = new WeakMap();
2
+ export function getAbsorbersInstancesManager(e) {
3
+ const pluginManager = e.pluginManager;
4
+ let manager = instancesManagers.get(pluginManager);
5
+ if (!manager) {
6
+ manager = import("./AbsorbersInstancesManager.js")
7
+ .then(({ AbsorbersInstancesManager }) => new AbsorbersInstancesManager(pluginManager))
8
+ .catch((error) => {
9
+ instancesManagers.delete(pluginManager);
10
+ throw error;
11
+ });
12
+ instancesManagers.set(pluginManager, manager);
13
+ }
14
+ return manager;
15
+ }
package/esm/index.js CHANGED
@@ -1,16 +1,6 @@
1
+ import { loadAbsorbersInteraction } from "./interaction.js";
2
+ import { loadAbsorbersPluginSimple } from "./plugin.js";
1
3
  export async function loadAbsorbersPlugin(engine) {
2
- engine.checkVersion("4.0.0-beta.1");
3
- await engine.pluginManager.register(async (e) => {
4
- const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
- import("@tsparticles/plugin-interactivity"),
6
- import("./AbsorbersInstancesManager.js"),
7
- import("./AbsorbersPlugin.js"),
8
- ]), pluginManager = e.pluginManager, instancesManager = new AbsorbersInstancesManager(pluginManager);
9
- ensureInteractivityPluginLoaded(e);
10
- pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
11
- pluginManager.addInteractor?.("externalAbsorbers", async (container) => {
12
- const { AbsorbersInteractor } = await import("./AbsorbersInteractor.js");
13
- return new AbsorbersInteractor(container, instancesManager);
14
- });
15
- });
4
+ await loadAbsorbersPluginSimple(engine);
5
+ await loadAbsorbersInteraction(engine);
16
6
  }
@@ -0,0 +1,14 @@
1
+ export async function loadAbsorbersInteraction(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager },] = await Promise.all([
5
+ import("@tsparticles/plugin-interactivity"),
6
+ import("./getAbsorbersInstancesManager.js"),
7
+ ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
+ ensureInteractivityPluginLoaded(e);
9
+ pluginManager.addInteractor?.("externalAbsorbers", async (container) => {
10
+ const { AbsorbersInteractor } = await import("./AbsorbersInteractor.js");
11
+ return new AbsorbersInteractor(container, instancesManager);
12
+ });
13
+ });
14
+ }
package/esm/plugin.js ADDED
@@ -0,0 +1,10 @@
1
+ export async function loadAbsorbersPluginSimple(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
+ import("./getAbsorbersInstancesManager.js"),
6
+ import("./AbsorbersPlugin.js"),
7
+ ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
+ pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
9
+ });
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/plugin-absorbers",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.10",
4
4
  "description": "tsParticles absorbers plugin",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -80,14 +80,32 @@
80
80
  "browser": "./browser/index.js",
81
81
  "import": "./esm/index.js",
82
82
  "require": "./cjs/index.js",
83
- "umd": "./umd/index.js",
84
- "default": "./cjs/index.js"
83
+ "default": "./esm/index.js"
84
+ },
85
+ "./interaction": {
86
+ "types": "./types/interaction.d.ts",
87
+ "browser": "./browser/interaction.js",
88
+ "import": "./esm/interaction.js",
89
+ "require": "./cjs/interaction.js",
90
+ "default": "./esm/interaction.js"
91
+ },
92
+ "./plugin": {
93
+ "types": "./types/plugin.d.ts",
94
+ "browser": "./browser/plugin.js",
95
+ "import": "./esm/plugin.js",
96
+ "require": "./cjs/plugin.js",
97
+ "default": "./esm/plugin.js"
85
98
  },
86
99
  "./package.json": "./package.json"
87
100
  },
88
- "dependencies": {
89
- "@tsparticles/engine": "4.0.0-beta.1",
90
- "@tsparticles/plugin-interactivity": "4.0.0-beta.1"
101
+ "peerDependencies": {
102
+ "@tsparticles/engine": "4.0.0-beta.10",
103
+ "@tsparticles/plugin-interactivity": "4.0.0-beta.10"
104
+ },
105
+ "peerDependenciesMeta": {
106
+ "@tsparticles/plugin-interactivity": {
107
+ "optional": true
108
+ }
91
109
  },
92
110
  "publishConfig": {
93
111
  "access": "public"
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>@tsparticles/plugin-absorbers [31 Mar 2026 at 08:46]</title>
6
+ <title>@tsparticles/plugin-absorbers [8 Apr 2026 at 15:55]</title>
7
7
  <link
8
8
  rel="shortcut icon"
9
9
  href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII="
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-beta.1
7
+ * v4.0.0-beta.10
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -54,7 +54,27 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
54
54
  \*******************************/
55
55
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
56
56
 
57
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\nasync function loadAbsorbersPlugin(engine) {\n engine.checkVersion(\"4.0.0-beta.1\");\n await engine.pluginManager.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin }] = await Promise.all([\n Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\", 19)),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInstancesManager.js */ \"./dist/browser/AbsorbersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"./dist/browser/AbsorbersPlugin.js\"))\n ]), pluginManager = e.pluginManager, instancesManager = new AbsorbersInstancesManager(pluginManager);\n ensureInteractivityPluginLoaded(e);\n pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));\n pluginManager.addInteractor?.(\"externalAbsorbers\", async (container)=>{\n const { AbsorbersInteractor } = await __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInteractor.js */ \"./dist/browser/AbsorbersInteractor.js\"));\n return new AbsorbersInteractor(container, instancesManager);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/index.js?\n}");
57
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\n/* harmony import */ var _interaction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interaction.js */ \"./dist/browser/interaction.js\");\n/* harmony import */ var _plugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./plugin.js */ \"./dist/browser/plugin.js\");\n\n\nasync function loadAbsorbersPlugin(engine) {\n await (0,_plugin_js__WEBPACK_IMPORTED_MODULE_1__.loadAbsorbersPluginSimple)(engine);\n await (0,_interaction_js__WEBPACK_IMPORTED_MODULE_0__.loadAbsorbersInteraction)(engine);\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/index.js?\n}");
58
+
59
+ /***/ },
60
+
61
+ /***/ "./dist/browser/interaction.js"
62
+ /*!*************************************!*\
63
+ !*** ./dist/browser/interaction.js ***!
64
+ \*************************************/
65
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
66
+
67
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersInteraction: () => (/* binding */ loadAbsorbersInteraction)\n/* harmony export */ });\nasync function loadAbsorbersInteraction(engine) {\n engine.checkVersion(\"4.0.0-beta.10\");\n await engine.pluginManager.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager }] = await Promise.all([\n Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\", 19)),\n __webpack_require__.e(/*! import() */ \"dist_browser_getAbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./getAbsorbersInstancesManager.js */ \"./dist/browser/getAbsorbersInstancesManager.js\"))\n ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);\n ensureInteractivityPluginLoaded(e);\n pluginManager.addInteractor?.(\"externalAbsorbers\", async (container)=>{\n const { AbsorbersInteractor } = await __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInteractor.js */ \"./dist/browser/AbsorbersInteractor.js\"));\n return new AbsorbersInteractor(container, instancesManager);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/interaction.js?\n}");
68
+
69
+ /***/ },
70
+
71
+ /***/ "./dist/browser/plugin.js"
72
+ /*!********************************!*\
73
+ !*** ./dist/browser/plugin.js ***!
74
+ \********************************/
75
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
76
+
77
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPluginSimple: () => (/* binding */ loadAbsorbersPluginSimple)\n/* harmony export */ });\nasync function loadAbsorbersPluginSimple(engine) {\n engine.checkVersion(\"4.0.0-beta.10\");\n await engine.pluginManager.register(async (e)=>{\n const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin }] = await Promise.all([\n __webpack_require__.e(/*! import() */ \"dist_browser_getAbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./getAbsorbersInstancesManager.js */ \"./dist/browser/getAbsorbersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"./dist/browser/AbsorbersPlugin.js\"))\n ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);\n pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/plugin.js?\n}");
58
78
 
59
79
  /***/ }
60
80
 
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/plugin-interactivity","@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):t(e.window,e.window);for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(this,(e,t)=>(()=>{"use strict";var r,o,n,i={303(e){e.exports=t},702(t){t.exports=e}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return i[e](r,r.exports,s),r.exports}s.m=i,l=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,t){if(1&t&&(e=this(e)),8&t||"object"==typeof e&&e&&(4&t&&e.__esModule||16&t&&"function"==typeof e.then))return e;var r=Object.create(null);s.r(r);var o={};c=c||[null,l({}),l([]),l(l)];for(var n=2&t&&e;("object"==typeof n||"function"==typeof n)&&!~c.indexOf(n);n=l(n))Object.getOwnPropertyNames(n).forEach(t=>o[t]=()=>e[t]);return o.default=()=>e,s.d(r,o),r},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>""+e+".min.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={},s.l=(e,t,r,o)=>{if(p[e])return void p[e].push(t);if(void 0!==r)for(var n,i,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var l=a[c];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="@tsparticles/plugin-absorbers:"+r){n=l;break}}n||(i=!0,(n=document.createElement("script")).charset="utf-8",s.nc&&n.setAttribute("nonce",s.nc),n.setAttribute("data-webpack","@tsparticles/plugin-absorbers:"+r),n.src=e),p[e]=[t];var u=(t,r)=>{n.onerror=n.onload=null,clearTimeout(d);var o=p[e];if(delete p[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),i&&document.head.appendChild(n)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.g.importScripts&&(u=s.g.location+"");var c,l,p,u,d=s.g.document;if(!u&&d&&(d.currentScript&&"SCRIPT"===d.currentScript.tagName.toUpperCase()&&(u=d.currentScript.src),!u)){var f=d.getElementsByTagName("script");if(f.length)for(var b=f.length-1;b>-1&&(!u||!/^http(s?):/.test(u));)u=f[b--].src}if(!u)throw Error("Automatic publicPath is not supported in this browser");s.p=u=u.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={425:0},s.f.j=(e,t)=>{var o=s.o(r,e)?r[e]:void 0;if(0!==o)if(o)t.push(o[2]);else{var n=new Promise((t,n)=>o=r[e]=[t,n]);t.push(o[2]=n);var i=s.p+s.u(e),a=Error();s.l(i,t=>{if(s.o(r,e)&&(0!==(o=r[e])&&(r[e]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;a.message="Loading chunk "+e+` failed.
2
- (`+n+": "+i+")",a.name="ChunkLoadError",a.type=n,a.request=i,o[1](a)}},"chunk-"+e,e)}},o=(e,t)=>{var o,n,[i,a,c]=t,l=0;if(i.some(e=>0!==r[e])){for(o in a)s.o(a,o)&&(s.m[o]=a[o]);c&&c(s)}for(e&&e(t);l<i.length;l++)n=i[l],s.o(r,n)&&r[n]&&r[n][0](),r[n]=0},(n=this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).forEach(o.bind(null,0)),n.push=o.bind(null,n.push.bind(n));var g={};async function h(e){e.checkVersion("4.0.0-beta.1"),await e.pluginManager.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{AbsorbersInstancesManager:r},{AbsorbersPlugin:o}]=await Promise.all([Promise.resolve().then(s.t.bind(s,702,19)),s.e(122).then(s.bind(s,122)),s.e(998).then(s.bind(s,998))]),n=e.pluginManager,i=new r(n);t(e),n.addPlugin(new o(i)),n.addInteractor?.("externalAbsorbers",async e=>{let{AbsorbersInteractor:t}=await s.e(698).then(s.bind(s,698));return new t(e,i)})})}return s.r(g),s.d(g,{loadAbsorbersPlugin:()=>h}),g})());
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/plugin-interactivity","@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):t(e.window,e.window);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(e,t)=>(()=>{"use strict";var r,n,i,o={303(e){e.exports=t},702(t){t.exports=e}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return o[e](r,r.exports,s),r.exports}s.m=o,l=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,t){if(1&t&&(e=this(e)),8&t||"object"==typeof e&&e&&(4&t&&e.__esModule||16&t&&"function"==typeof e.then))return e;var r=Object.create(null);s.r(r);var n={};c=c||[null,l({}),l([]),l(l)];for(var i=2&t&&e;("object"==typeof i||"function"==typeof i)&&!~c.indexOf(i);i=l(i))Object.getOwnPropertyNames(i).forEach(t=>n[t]=()=>e[t]);return n.default=()=>e,s.d(r,n),r},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>""+e+".min.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={},s.l=(e,t,r,n)=>{if(p[e])return void p[e].push(t);if(void 0!==r)for(var i,o,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var l=a[c];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="@tsparticles/plugin-absorbers:"+r){i=l;break}}i||(o=!0,(i=document.createElement("script")).charset="utf-8",s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack","@tsparticles/plugin-absorbers:"+r),i.src=e),p[e]=[t];var u=(t,r)=>{i.onerror=i.onload=null,clearTimeout(d);var n=p[e];if(delete p[e],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),o&&document.head.appendChild(i)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.g.importScripts&&(u=s.g.location+"");var c,l,p,u,d=s.g.document;if(!u&&d&&(d.currentScript&&"SCRIPT"===d.currentScript.tagName.toUpperCase()&&(u=d.currentScript.src),!u)){var f=d.getElementsByTagName("script");if(f.length)for(var b=f.length-1;b>-1&&(!u||!/^http(s?):/.test(u));)u=f[b--].src}if(!u)throw Error("Automatic publicPath is not supported in this browser");s.p=u=u.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={425:0},s.f.j=(e,t)=>{var n=s.o(r,e)?r[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var i=new Promise((t,i)=>n=r[e]=[t,i]);t.push(n[2]=i);var o=s.p+s.u(e),a=Error();s.l(o,t=>{if(s.o(r,e)&&(0!==(n=r[e])&&(r[e]=void 0),n)){var i=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;a.message="Loading chunk "+e+` failed.
2
+ (`+i+": "+o+")",a.name="ChunkLoadError",a.type=i,a.request=o,n[1](a)}},"chunk-"+e,e)}},n=(e,t)=>{var n,i,[o,a,c]=t,l=0;if(o.some(e=>0!==r[e])){for(n in a)s.o(a,n)&&(s.m[n]=a[n]);c&&c(s)}for(e&&e(t);l<o.length;l++)i=o[l],s.o(r,i)&&r[i]&&r[i][0](),r[i]=0},(i=this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).forEach(n.bind(null,0)),i.push=n.bind(null,i.push.bind(i));var g={};async function h(e){e.checkVersion("4.0.0-beta.10"),await e.pluginManager.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{getAbsorbersInstancesManager:r}]=await Promise.all([Promise.resolve().then(s.t.bind(s,702,19)),s.e(63).then(s.bind(s,63))]),n=e.pluginManager,i=await r(e);t(e),n.addInteractor?.("externalAbsorbers",async e=>{let{AbsorbersInteractor:t}=await s.e(555).then(s.bind(s,555));return new t(e,i)})})}async function y(e){e.checkVersion("4.0.0-beta.10"),await e.pluginManager.register(async e=>{let[{getAbsorbersInstancesManager:t},{AbsorbersPlugin:r}]=await Promise.all([s.e(63).then(s.bind(s,63)),s.e(547).then(s.bind(s,547))]),n=e.pluginManager,i=await t(e);n.addPlugin(new r(i))})}async function m(e){await y(e),await h(e)}return s.r(g),s.d(g,{loadAbsorbersPlugin:()=>m}),g})());
@@ -0,0 +1,3 @@
1
+ import type { AbsorbersInstancesManager } from "./AbsorbersInstancesManager.js";
2
+ import type { Engine } from "@tsparticles/engine";
3
+ export declare function getAbsorbersInstancesManager(e: Engine): Promise<AbsorbersInstancesManager>;
@@ -0,0 +1,3 @@
1
+ import { type Engine } from "@tsparticles/engine";
2
+ export declare function loadAbsorbersInteraction(engine: Engine): Promise<void>;
3
+ export type * from "./AbsorberContainer.js";
@@ -0,0 +1,3 @@
1
+ import { type Engine } from "@tsparticles/engine";
2
+ export declare function loadAbsorbersPluginSimple(engine: Engine): Promise<void>;
3
+ export type * from "./AbsorberContainer.js";
package/122.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[122],{122(r,t,e){e.r(t),e.d(t,{AbsorbersInstancesManager:()=>a});var s=e(303);class a{_containerArrays;_pluginManager;constructor(r){this._pluginManager=r,this._containerArrays=new Map}async addAbsorber(r,t,s){let{AbsorberInstance:a}=await e.e(677).then(e.bind(e,677)),i=new a(this._pluginManager,r,t,s);return this.getArray(r).push(i),i}clear(r){this.initContainer(r),this._containerArrays.set(r,[])}getArray(r){this.initContainer(r);let t=this._containerArrays.get(r);return t||(t=[],this._containerArrays.set(r,t)),t}initContainer(r){this._containerArrays.has(r)||(this._containerArrays.set(r,[]),r.getAbsorber??=t=>{let e=this.getArray(r);return void 0===t||(0,s.isNumber)(t)?e[t??0]:e.find(r=>r.name===t)},r.addAbsorber??=(t,e)=>this.addAbsorber(r,t,e))}removeAbsorber(r,t){let e=this.getArray(r).indexOf(t);e>=0&&this.getArray(r).splice(e,1)}}}}]);
package/677.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[677],{677(i,t,s){s.d(t,{AbsorberInstance:()=>r});var o=s(303),e=s(5);let a=o.doublePI,n=o.identity/360;class r{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_firstSpawn;_immortal;_lifeCount;_pluginManager;_spawnDelay;initialPosition;constructor(i,t,s,a){this._container=t,this._pluginManager=i,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=a?o.Vector.create(a.x,a.y):void 0,s instanceof e.h?this.options=s:(this.options=new e.h,this.options.load(s)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=(0,o.getRangeValue)(this.options.size.value)*t.retina.pixelRatio,this.mass=this.size*this.options.size.density*t.retina.reduceFactor;const n=this.options.size.limit;this.limit={radius:n.radius*t.retina.pixelRatio*t.retina.reduceFactor,mass:n.mass},this.color=(0,o.rangeColorToRgb)(this._pluginManager,this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition(),this._firstSpawn=!this.options.life.wait,this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this._spawnDelay=t.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/t.retina.reduceFactor:1/0}attract(i,t){let s=this._container,e=this.options,a=i.getPosition(),{dx:n,dy:r,distance:l}=(0,o.getDistances)(this.position,a),h=o.Vector.create(n,r);if(h.length=this.mass/Math.pow(l,2)*s.retina.reduceFactor,l<this.size+i.getRadius()){let o=.033*i.getRadius()*s.retina.pixelRatio*t.factor;this.size>i.getRadius()&&l<this.size-i.getRadius()||void 0!==i.absorberOrbit&&i.absorberOrbit.length<0?e.destroy?i.destroy():(i.needsNewPosition=!0,this._updateParticlePosition(i,t,h)):(e.destroy&&(i.size.value-=o),this._updateParticlePosition(i,t,h)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=o),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=o*this.options.size.density*s.retina.reduceFactor)}else this._updateParticlePosition(i,t,h)}draw(i){i.translate(this.position.x,this.position.y),i.beginPath(),i.arc(o.originPoint.x,o.originPoint.y,this.size,0,a,!1),i.closePath(),i.fillStyle=(0,o.getStyleFromRgb)(this.color,this._container.hdr,this.opacity),i.fill()}resize(){let i=this.initialPosition;this.position=i&&(0,o.isPointInside)(i,this._container.canvas.size,o.Vector.origin)?i:this._calcPosition()}update(i){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=i.value,this._currentDuration>=this._duration&&(!this._immortal&&this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=i.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{let i=(0,o.calcPositionOrRandomFromSizeRanged)({size:this._container.canvas.size,position:this.options.position});return o.Vector.create(i.x,i.y)};_prepareToDie=()=>{let i=void 0!==this.options.life.duration?(0,o.getRangeValue)(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==i&&i>0&&(this._duration=i*o.millisecondsToSeconds)};_updateParticlePosition=(i,t,s)=>{if(i.destroyed)return;let e=this._container,r=e.canvas.size;if(i.needsNewPosition){let t=(0,o.calcPositionOrRandomFromSize)({size:r});i.position.setTo(t),i.velocity.setTo(i.initialVelocity),i.absorberOrbit=void 0,i.needsNewPosition=!1}if(this.options.orbits){if(void 0===i.absorberOrbit&&(i.absorberOrbit=o.Vector.origin,i.absorberOrbit.length=(0,o.getDistance)(i.getPosition(),this.position),i.absorberOrbit.angle=(0,o.getRandom)()*a),i.absorberOrbit.length<=this.size&&!this.options.destroy){let t=Math.min(r.width,r.height);i.absorberOrbit.length=t*(1+(.2*(0,o.getRandom)()-.1))}i.absorberOrbitDirection??=i.velocity.x>=0?o.RotateDirection.clockwise:o.RotateDirection.counterClockwise;let l=i.absorberOrbit.length,h=i.absorberOrbit.angle,c=i.absorberOrbitDirection;i.velocity.setTo(o.Vector.origin);let d=(0,o.getRangeMax)(i.options.size.value)*e.retina.pixelRatio,u=i.options.move.size?i.getRadius()/d:o.identity,p=t.factor||o.identity,_=i.retina.moveSpeed*u*p*o.half;i.position.x=this.position.x+l*Math.cos(h),i.position.y=this.position.y+l*(c===o.RotateDirection.clockwise?o.identity:-o.identity)*Math.sin(h),i.absorberOrbit.length=Math.max(0,i.absorberOrbit.length-s.length),i.absorberOrbit.angle+=_*n*e.retina.reduceFactor}else i.velocity.addTo(s)};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}},5(i,t,s){s.d(t,{h:()=>r});var o=s(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class n extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class r{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new n}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
package/698.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[698],{698(i,s,t){t.d(s,{AbsorbersInteractor:()=>n});var o=t(702),e=t(303),a=t(5);let r="absorbers";class n extends o.ExternalInteractorBase{handleClickMode;maxDistance;_dragging=!1;_draggingAbsorber;_instancesManager;constructor(i,s){super(i),this.maxDistance=0,this._instancesManager=s,this._instancesManager.initContainer(i),this.handleClickMode=(i,t)=>{let o=this.container,n=o.actualOptions.interactivity.modes.absorbers;if(!n||i!==r)return;let{clickPosition:l}=t.mouse;if(l&&s.getArray(this.container).some(i=>(0,e.getDistance)(i.position,l)<i.size))return;let d=(0,e.itemFromArray)(n)??new a.h;this._instancesManager.addAbsorber(o,d,l)}}clear(){}init(){}interact(i,s){for(let t of this.container.particles.filter(s=>this.isEnabled(i,s)))for(let o of this._instancesManager.getArray(this.container)){if(o.options.draggable){let s=i.mouse;s.clicking&&s.downPosition?(0,e.getDistance)(o.position,s.downPosition)<=o.size&&(this._dragging=!0,this._draggingAbsorber=o):(this._dragging=!1,this._draggingAbsorber=void 0),this._dragging&&this._draggingAbsorber==o&&s.position&&(o.position.x=s.position.x,o.position.y=s.position.y)}if(o.attract(t,s),t.destroyed)break}}isEnabled(i,s){let t=this.container.actualOptions,o=i.mouse,a=(s?.interactivity??t.interactivity).events;return!!o.clickPosition&&!!a.onClick.enable&&(0,e.isInArray)(r,a.onClick.mode)}loadModeOptions(i,...s){for(let t of(i.absorbers??=[],s))if(t)if((0,e.isArray)(t.absorbers))for(let s of t.absorbers){let t=new a.h;t.load(s),i.absorbers.push(t)}else{let s=new a.h;s.load(t.absorbers),i.absorbers.push(s)}}reset(){}}},5(i,s,t){t.d(s,{h:()=>n});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class n{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
package/998.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[998],{998(i,s,t){t.r(s),t.d(s,{AbsorbersPlugin:()=>a});var o=t(303),e=t(5);class a{id="absorbers";_instancesManager;constructor(i){this._instancesManager=i}async getPlugin(i){let{AbsorbersPluginInstance:s}=await t.e(285).then(t.bind(t,285));return new s(i,this._instancesManager)}loadOptions(i,s,t){(this.needsPlugin(s)||this.needsPlugin(t))&&t?.absorbers&&(s.absorbers=(0,o.executeOnSingleOrMultiple)(t.absorbers,i=>{let s=new e.h;return s.load(i),s}))}needsPlugin(i){if(!i)return!1;let s=i.absorbers;return(0,o.isArray)(s)?!!s.length:!!s}}},5(i,s,t){t.d(s,{h:()=>l});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class l{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
@@ -1,12 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- });