@tsparticles/plugin-absorbers 4.0.0-beta.15 → 4.0.0-beta.16

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.
@@ -2,7 +2,7 @@ import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivi
2
2
  import { AbsorbersInteractor } from "./AbsorbersInteractor.js";
3
3
  import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js";
4
4
  export async function loadAbsorbersInteraction(engine) {
5
- engine.checkVersion("4.0.0-beta.15");
5
+ engine.checkVersion("4.0.0-beta.16");
6
6
  await engine.pluginManager.register(async (e) => {
7
7
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
8
  ensureInteractivityPluginLoaded(e);
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersInteraction(engine) {
2
- engine.checkVersion("4.0.0-beta.15");
2
+ engine.checkVersion("4.0.0-beta.16");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager },] = await Promise.all([
5
5
  import("@tsparticles/plugin-interactivity/lazy"),
package/browser/plugin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AbsorbersPlugin } from "./AbsorbersPlugin.js";
2
2
  import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js";
3
3
  export async function loadAbsorbersPluginSimple(engine) {
4
- engine.checkVersion("4.0.0-beta.15");
4
+ engine.checkVersion("4.0.0-beta.16");
5
5
  await engine.pluginManager.register(async (e) => {
6
6
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
7
7
  pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersPluginSimple(engine) {
2
- engine.checkVersion("4.0.0-beta.15");
2
+ engine.checkVersion("4.0.0-beta.16");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
5
  import("./getAbsorbersInstancesManager.js"),
@@ -2,7 +2,7 @@ import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivi
2
2
  import { AbsorbersInteractor } from "./AbsorbersInteractor.js";
3
3
  import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js";
4
4
  export async function loadAbsorbersInteraction(engine) {
5
- engine.checkVersion("4.0.0-beta.15");
5
+ engine.checkVersion("4.0.0-beta.16");
6
6
  await engine.pluginManager.register(async (e) => {
7
7
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
8
  ensureInteractivityPluginLoaded(e);
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersInteraction(engine) {
2
- engine.checkVersion("4.0.0-beta.15");
2
+ engine.checkVersion("4.0.0-beta.16");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager },] = await Promise.all([
5
5
  import("@tsparticles/plugin-interactivity/lazy"),
package/cjs/plugin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AbsorbersPlugin } from "./AbsorbersPlugin.js";
2
2
  import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js";
3
3
  export async function loadAbsorbersPluginSimple(engine) {
4
- engine.checkVersion("4.0.0-beta.15");
4
+ engine.checkVersion("4.0.0-beta.16");
5
5
  await engine.pluginManager.register(async (e) => {
6
6
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
7
7
  pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersPluginSimple(engine) {
2
- engine.checkVersion("4.0.0-beta.15");
2
+ engine.checkVersion("4.0.0-beta.16");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
5
  import("./getAbsorbersInstancesManager.js"),
@@ -2,7 +2,7 @@ import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivi
2
2
  import { AbsorbersInteractor } from "./AbsorbersInteractor.js";
3
3
  import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js";
4
4
  export async function loadAbsorbersInteraction(engine) {
5
- engine.checkVersion("4.0.0-beta.15");
5
+ engine.checkVersion("4.0.0-beta.16");
6
6
  await engine.pluginManager.register(async (e) => {
7
7
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
8
8
  ensureInteractivityPluginLoaded(e);
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersInteraction(engine) {
2
- engine.checkVersion("4.0.0-beta.15");
2
+ engine.checkVersion("4.0.0-beta.16");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager },] = await Promise.all([
5
5
  import("@tsparticles/plugin-interactivity/lazy"),
package/esm/plugin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AbsorbersPlugin } from "./AbsorbersPlugin.js";
2
2
  import { getAbsorbersInstancesManager } from "./getAbsorbersInstancesManager.js";
3
3
  export async function loadAbsorbersPluginSimple(engine) {
4
- engine.checkVersion("4.0.0-beta.15");
4
+ engine.checkVersion("4.0.0-beta.16");
5
5
  await engine.pluginManager.register(async (e) => {
6
6
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
7
7
  pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersPluginSimple(engine) {
2
- engine.checkVersion("4.0.0-beta.15");
2
+ engine.checkVersion("4.0.0-beta.16");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
5
  import("./getAbsorbersInstancesManager.js"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/plugin-absorbers",
3
- "version": "4.0.0-beta.15",
3
+ "version": "4.0.0-beta.16",
4
4
  "description": "tsParticles absorbers plugin",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -120,8 +120,8 @@
120
120
  "./package.json": "./package.json"
121
121
  },
122
122
  "peerDependencies": {
123
- "@tsparticles/engine": "4.0.0-beta.15",
124
- "@tsparticles/plugin-interactivity": "4.0.0-beta.15"
123
+ "@tsparticles/engine": "4.0.0-beta.16",
124
+ "@tsparticles/plugin-interactivity": "4.0.0-beta.16"
125
125
  },
126
126
  "peerDependenciesMeta": {
127
127
  "@tsparticles/plugin-interactivity": {
@@ -1,5 +1,5 @@
1
1
  (function(g){g.__tsParticlesInternals=g.__tsParticlesInternals||{};g.__tsParticlesInternals.bundles=g.__tsParticlesInternals.bundles||{};g.__tsParticlesInternals.effects=g.__tsParticlesInternals.effects||{};g.__tsParticlesInternals.engine=g.__tsParticlesInternals.engine||{};g.__tsParticlesInternals.interactions=g.__tsParticlesInternals.interactions||{};g.__tsParticlesInternals.palettes=g.__tsParticlesInternals.palettes||{};g.__tsParticlesInternals.paths=g.__tsParticlesInternals.paths||{};g.__tsParticlesInternals.plugins=g.__tsParticlesInternals.plugins||{};g.__tsParticlesInternals.plugins=g.__tsParticlesInternals.plugins||{};g.__tsParticlesInternals.plugins.emittersShapes=g.__tsParticlesInternals.plugins.emittersShapes||{};g.__tsParticlesInternals.presets=g.__tsParticlesInternals.presets||{};g.__tsParticlesInternals.shapes=g.__tsParticlesInternals.shapes||{};g.__tsParticlesInternals.updaters=g.__tsParticlesInternals.updaters||{};g.__tsParticlesInternals.utils=g.__tsParticlesInternals.utils||{};g.__tsParticlesInternals.canvas=g.__tsParticlesInternals.canvas||{};g.__tsParticlesInternals.canvas=g.__tsParticlesInternals.canvas||{};g.__tsParticlesInternals.canvas.utils=g.__tsParticlesInternals.canvas.utils||{};g.__tsParticlesInternals.path=g.__tsParticlesInternals.path||{};g.__tsParticlesInternals.path=g.__tsParticlesInternals.path||{};g.__tsParticlesInternals.path.utils=g.__tsParticlesInternals.path.utils||{};var __tsProxyFactory=typeof Proxy!=="undefined"?function(obj){return new Proxy(obj,{get:function(target,key){if(!(key in target)){target[key]={};}return target[key];}});}:function(obj){return obj;};g.__tsParticlesInternals.bundles=__tsProxyFactory(g.__tsParticlesInternals.bundles);g.__tsParticlesInternals.effects=__tsProxyFactory(g.__tsParticlesInternals.effects);g.__tsParticlesInternals.interactions=__tsProxyFactory(g.__tsParticlesInternals.interactions);g.__tsParticlesInternals.palettes=__tsProxyFactory(g.__tsParticlesInternals.palettes);g.__tsParticlesInternals.paths=__tsProxyFactory(g.__tsParticlesInternals.paths);g.__tsParticlesInternals.plugins=__tsProxyFactory(g.__tsParticlesInternals.plugins);g.__tsParticlesInternals.plugins.emittersShapes=__tsProxyFactory(g.__tsParticlesInternals.plugins.emittersShapes);g.__tsParticlesInternals.presets=__tsProxyFactory(g.__tsParticlesInternals.presets);g.__tsParticlesInternals.shapes=__tsProxyFactory(g.__tsParticlesInternals.shapes);g.__tsParticlesInternals.updaters=__tsProxyFactory(g.__tsParticlesInternals.updaters);g.__tsParticlesInternals.utils=__tsProxyFactory(g.__tsParticlesInternals.utils);g.__tsParticlesInternals.canvas=__tsProxyFactory(g.__tsParticlesInternals.canvas);g.__tsParticlesInternals.path=__tsProxyFactory(g.__tsParticlesInternals.path);g.tsparticlesInternalExports=g.tsparticlesInternalExports||{};})(typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:this);
2
- /* Plugin v4.0.0-beta.15 */
2
+ /* Plugin v4.0.0-beta.16 */
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@tsparticles/plugin-interactivity'), require('@tsparticles/engine')) :
5
5
  typeof define === 'function' && define.amd ? define(['exports', '@tsparticles/plugin-interactivity', '@tsparticles/engine'], factory) :
@@ -247,7 +247,7 @@
247
247
  }
248
248
 
249
249
  async function loadAbsorbersInteraction(engine) {
250
- engine.checkVersion("4.0.0-beta.15");
250
+ engine.checkVersion("4.0.0-beta.16");
251
251
  await engine.pluginManager.register(async (e) => {
252
252
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
253
253
  pluginInteractivity.ensureInteractivityPluginLoaded(e);
@@ -295,7 +295,7 @@
295
295
  }
296
296
 
297
297
  async function loadAbsorbersPluginSimple(engine) {
298
- engine.checkVersion("4.0.0-beta.15");
298
+ engine.checkVersion("4.0.0-beta.16");
299
299
  await engine.pluginManager.register(async (e) => {
300
300
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
301
301
  pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
@@ -1 +1 @@
1
- !function(t){t.__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.bundles=t.__tsParticlesInternals.bundles||{},t.__tsParticlesInternals.effects=t.__tsParticlesInternals.effects||{},t.__tsParticlesInternals.engine=t.__tsParticlesInternals.engine||{},t.__tsParticlesInternals.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.palettes=t.__tsParticlesInternals.palettes||{},t.__tsParticlesInternals.paths=t.__tsParticlesInternals.paths||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins.emittersShapes=t.__tsParticlesInternals.plugins.emittersShapes||{},t.__tsParticlesInternals.presets=t.__tsParticlesInternals.presets||{},t.__tsParticlesInternals.shapes=t.__tsParticlesInternals.shapes||{},t.__tsParticlesInternals.updaters=t.__tsParticlesInternals.updaters||{},t.__tsParticlesInternals.utils=t.__tsParticlesInternals.utils||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas.utils=t.__tsParticlesInternals.canvas.utils||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path.utils=t.__tsParticlesInternals.path.utils||{};var s="undefined"!=typeof Proxy?function(t){return new Proxy(t,{get:function(t,s){return s in t||(t[s]={}),t[s]}})}:function(t){return t};t.__tsParticlesInternals.bundles=s(t.__tsParticlesInternals.bundles),t.__tsParticlesInternals.effects=s(t.__tsParticlesInternals.effects),t.__tsParticlesInternals.interactions=s(t.__tsParticlesInternals.interactions),t.__tsParticlesInternals.palettes=s(t.__tsParticlesInternals.palettes),t.__tsParticlesInternals.paths=s(t.__tsParticlesInternals.paths),t.__tsParticlesInternals.plugins=s(t.__tsParticlesInternals.plugins),t.__tsParticlesInternals.plugins.emittersShapes=s(t.__tsParticlesInternals.plugins.emittersShapes),t.__tsParticlesInternals.presets=s(t.__tsParticlesInternals.presets),t.__tsParticlesInternals.shapes=s(t.__tsParticlesInternals.shapes),t.__tsParticlesInternals.updaters=s(t.__tsParticlesInternals.updaters),t.__tsParticlesInternals.utils=s(t.__tsParticlesInternals.utils),t.__tsParticlesInternals.canvas=s(t.__tsParticlesInternals.canvas),t.__tsParticlesInternals.path=s(t.__tsParticlesInternals.path),t.tsparticlesInternalExports=t.tsparticlesInternalExports||{}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:this),function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):"function"==typeof define&&define.amd?define(["exports","@tsparticles/plugin-interactivity","@tsparticles/engine"],s):s(((t="undefined"!=typeof globalThis?globalThis:t||self).__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins.absorbers=t.__tsParticlesInternals.plugins.absorbers||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,i){"use strict";class e{count;delay;duration;wait;constructor(){this.wait=!1}load(t){i.isNull(t)||(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=i.setRangeValue(t.delay)),void 0!==t.duration&&(this.duration=i.setRangeValue(t.duration)),void 0!==t.wait&&(this.wait=t.wait))}}class n{mass;radius;constructor(){this.radius=0,this.mass=0}load(t){i.isNull(t)||(void 0!==t.mass&&(this.mass=t.mass),void 0!==t.radius&&(this.radius=t.radius))}}class a extends i.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new n}load(t){i.isNull(t)||(super.load(t),void 0!==t.density&&(this.density=t.density),i.isNumber(t.limit)?this.limit.radius=t.limit:this.limit.load(t.limit))}}class r{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new i.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new a}load(t){i.isNull(t)||(void 0!==t.color&&(this.color=i.OptionsColor.create(this.color,t.color)),void 0!==t.draggable&&(this.draggable=t.draggable),void 0!==t.life&&this.life.load(t.life),this.name=t.name,void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=i.setRangeValue(t.position.x)),void 0!==t.position.y&&(this.position.y=i.setRangeValue(t.position.y))),void 0!==t.size&&this.size.load(t.size),void 0!==t.destroy&&(this.destroy=t.destroy),void 0!==t.orbits&&(this.orbits=t.orbits))}}const o="absorbers";class l extends s.ExternalInteractorBase{handleClickMode;maxDistance;_dragging=!1;_draggingAbsorber;_instancesManager;constructor(t,s){super(t),this.maxDistance=0,this._instancesManager=s,this._instancesManager.initContainer(t),this.handleClickMode=(t,e)=>{const n=this.container,a=n.actualOptions.interactivity.modes.absorbers;if(!a||t!==o)return;const{clickPosition:l}=e.mouse;if(l){if(s.getArray(this.container).some(t=>i.getDistance(t.position,l)<t.size))return}const c=i.itemFromArray(a)??new r;this._instancesManager.addAbsorber(n,c,l)}}clear(){}init(){}interact(t,s){for(const e of this.container.particles.filter(s=>this.isEnabled(t,s)))for(const n of this._instancesManager.getArray(this.container)){if(n.options.draggable){const s=t.mouse;if(s.clicking&&s.downPosition){i.getDistance(n.position,s.downPosition)<=n.size&&(this._dragging=!0,this._draggingAbsorber=n)}else this._dragging=!1,this._draggingAbsorber=void 0;this._dragging&&this._draggingAbsorber==n&&s.position&&(n.position.x=s.position.x,n.position.y=s.position.y)}if(n.attract(e,s),e.destroyed)break}}isEnabled(t,s){const e=this.container.actualOptions,n=t.mouse,a=(s?.interactivity??e.interactivity).events;return!(!n.clickPosition||!a.onClick.enable)&&i.isInArray(o,a.onClick.mode)}loadModeOptions(t,...s){t.absorbers??=[];for(const e of s)if(e)if(i.isArray(e.absorbers))for(const s of e.absorbers){const i=new r;i.load(s),t.absorbers.push(i)}else{const s=new r;s.load(e.absorbers),t.absorbers.push(s)}}reset(){}}const c=new WeakMap;function _(t){const s=t.pluginManager;let i=c.get(s);return i||(i=Promise.resolve().then(function(){return p}).then(({AbsorbersInstancesManager:t})=>new t(s)).catch(t=>{throw c.delete(s),t}),c.set(s,i)),i}class h{id="absorbers";_instancesManager;constructor(t){this._instancesManager=t}async getPlugin(t){const{AbsorbersPluginInstance:s}=await Promise.resolve().then(function(){return g});return new s(t,this._instancesManager)}loadOptions(t,s,e){(this.needsPlugin(s)||this.needsPlugin(e))&&e?.absorbers&&(s.absorbers=i.executeOnSingleOrMultiple(e.absorbers,t=>{const s=new r;return s.load(t),s}))}needsPlugin(t){if(!t)return!1;const s=t.absorbers;return i.isArray(s)?!!s.length:!!s}}async function d(t){await async function(t){t.checkVersion("4.0.0-beta.15"),await t.pluginManager.register(async t=>{const s=t.pluginManager,i=await _(t);s.addPlugin(new h(i))})}(t),await async function(t){t.checkVersion("4.0.0-beta.15"),await t.pluginManager.register(async t=>{const i=t.pluginManager,e=await _(t);s.ensureInteractivityPluginLoaded(t),i.addInteractor?.("externalAbsorbers",t=>Promise.resolve(new l(t,e)))})}(t)}const u=globalThis;u.__tsParticlesInternals=u.__tsParticlesInternals??{},u.loadAbsorbersPlugin=d;var p=Object.freeze({__proto__:null,AbsorbersInstancesManager:class{_containerArrays;_pluginManager;constructor(t){this._pluginManager=t,this._containerArrays=new Map}async addAbsorber(t,s,i){const{AbsorberInstance:e}=await Promise.resolve().then(function(){return y}),n=new e(this._pluginManager,t,s,i);return this.getArray(t).push(n),n}clear(t){this.initContainer(t),this._containerArrays.set(t,[])}getArray(t){this.initContainer(t);let s=this._containerArrays.get(t);return s||(s=[],this._containerArrays.set(t,s)),s}initContainer(t){this._containerArrays.has(t)||(this._containerArrays.set(t,[]),t.getAbsorber??=s=>{const e=this.getArray(t);return void 0===s||i.isNumber(s)?e[s??0]:e.find(t=>t.name===s)},t.addAbsorber??=(s,i)=>this.addAbsorber(t,s,i))}removeAbsorber(t,s){const i=this.getArray(t).indexOf(s);i>=0&&this.getArray(t).splice(i,1)}}});var g=Object.freeze({__proto__:null,AbsorbersPluginInstance:class{_container;_instancesManager;constructor(t,s){this._container=t,this._instancesManager=s,this._instancesManager.initContainer(t)}draw(t){for(const s of this._instancesManager.getArray(this._container))s.draw(t)}async init(){const t=this._container.actualOptions.absorbers,s=i.executeOnSingleOrMultiple(t,async t=>{await this._instancesManager.addAbsorber(this._container,t)});i.isArray(s)?await Promise.all(s):await s}particleUpdate(t,s){for(const i of this._instancesManager.getArray(this._container))if(i.attract(t,s),t.destroyed)break}resize(){for(const t of this._instancesManager.getArray(this._container))t.resize()}stop(){this._instancesManager.clear(this._container)}}});const b=i.doublePI,P=i.identity/360;var y=Object.freeze({__proto__:null,AbsorberInstance:class{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_firstSpawn;_immortal;_lifeCount;_pluginManager;_spawnDelay;initialPosition;constructor(t,s,e,n){this._container=s,this._pluginManager=t,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=n?i.Vector.create(n.x,n.y):void 0,e instanceof r?this.options=e:(this.options=new r,this.options.load(e)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=i.getRangeValue(this.options.size.value)*s.retina.pixelRatio,this.mass=this.size*this.options.size.density*s.retina.reduceFactor;const a=this.options.size.limit;this.limit={radius:a.radius*s.retina.pixelRatio*s.retina.reduceFactor,mass:a.mass},this.color=i.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=s.retina.reduceFactor?i.getRangeValue(this.options.life.delay??0)*i.millisecondsToSeconds/s.retina.reduceFactor:1/0}attract(t,s){const e=this._container,n=this.options,a=t.getPosition(),{dx:r,dy:o,distance:l}=i.getDistances(this.position,a),c=i.Vector.create(r,o);if(c.length=this.mass/Math.pow(l,2)*e.retina.reduceFactor,l<this.size+t.getRadius()){const i=.033*t.getRadius()*e.retina.pixelRatio*s.factor;this.size>t.getRadius()&&l<this.size-t.getRadius()||void 0!==t.absorberOrbit&&t.absorberOrbit.length<0?n.destroy?t.destroy():(t.needsNewPosition=!0,this._updateParticlePosition(t,s,c)):(n.destroy&&(t.size.value-=i),this._updateParticlePosition(t,s,c)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=i),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=i*this.options.size.density*e.retina.reduceFactor)}else this._updateParticlePosition(t,s,c)}draw(t){t.translate(this.position.x,this.position.y),t.beginPath(),t.arc(i.originPoint.x,i.originPoint.y,this.size,0,b,!1),t.closePath(),t.fillStyle=i.getStyleFromRgb(this.color,this._container.hdr,this.opacity),t.fill()}resize(){const t=this.initialPosition;this.position=t&&i.isPointInside(t,this._container.canvas.size,i.Vector.origin)?t:this._calcPosition()}update(t){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=t.value,this._currentDuration>=this._duration&&(this._immortal||this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?i.getRangeValue(this.options.life.delay??0)*i.millisecondsToSeconds/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=t.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{const t=i.calcPositionOrRandomFromSizeRanged({size:this._container.canvas.size,position:this.options.position});return i.Vector.create(t.x,t.y)};_prepareToDie=()=>{const t=void 0!==this.options.life.duration?i.getRangeValue(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==t&&t>0&&(this._duration=t*i.millisecondsToSeconds)};_updateParticlePosition=(t,s,e)=>{if(t.destroyed)return;const n=this._container,a=n.canvas.size;if(t.needsNewPosition){const s=i.calcPositionOrRandomFromSize({size:a});t.position.setTo(s),t.velocity.setTo(t.initialVelocity),t.absorberOrbit=void 0,t.needsNewPosition=!1}if(this.options.orbits){if(void 0===t.absorberOrbit&&(t.absorberOrbit=i.Vector.origin,t.absorberOrbit.length=i.getDistance(t.getPosition(),this.position),t.absorberOrbit.angle=i.getRandom()*b),t.absorberOrbit.length<=this.size&&!this.options.destroy){const s=Math.min(a.width,a.height),e=1,n=.1,r=.2;t.absorberOrbit.length=s*(e+(i.getRandom()*r-n))}t.absorberOrbitDirection??=t.velocity.x>=0?i.RotateDirection.clockwise:i.RotateDirection.counterClockwise;const r=t.absorberOrbit.length,o=t.absorberOrbit.angle,l=t.absorberOrbitDirection;t.velocity.setTo(i.Vector.origin);const c=i.getRangeMax(t.options.size.value)*n.retina.pixelRatio,_=t.options.move.size?t.getRadius()/c:i.identity,h=s.factor||i.identity,d=t.retina.moveSpeed*_*h*i.half;t.position.x=this.position.x+r*Math.cos(o),t.position.y=this.position.y+r*(l===i.RotateDirection.clockwise?i.identity:-i.identity)*Math.sin(o),t.absorberOrbit.length=Math.max(0,t.absorberOrbit.length-e.length),t.absorberOrbit.angle+=d*P*n.retina.reduceFactor}else t.velocity.addTo(e)};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}});t.loadAbsorbersPlugin=d}),Object.assign(globalThis.window||globalThis,{loadAbsorbersPlugin:(globalThis.__tsParticlesInternals.plugins.absorbers||{}).loadAbsorbersPlugin}),delete(globalThis.window||globalThis).tsparticlesInternalExports;
1
+ !function(t){t.__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.bundles=t.__tsParticlesInternals.bundles||{},t.__tsParticlesInternals.effects=t.__tsParticlesInternals.effects||{},t.__tsParticlesInternals.engine=t.__tsParticlesInternals.engine||{},t.__tsParticlesInternals.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.palettes=t.__tsParticlesInternals.palettes||{},t.__tsParticlesInternals.paths=t.__tsParticlesInternals.paths||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins.emittersShapes=t.__tsParticlesInternals.plugins.emittersShapes||{},t.__tsParticlesInternals.presets=t.__tsParticlesInternals.presets||{},t.__tsParticlesInternals.shapes=t.__tsParticlesInternals.shapes||{},t.__tsParticlesInternals.updaters=t.__tsParticlesInternals.updaters||{},t.__tsParticlesInternals.utils=t.__tsParticlesInternals.utils||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas.utils=t.__tsParticlesInternals.canvas.utils||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path.utils=t.__tsParticlesInternals.path.utils||{};var s="undefined"!=typeof Proxy?function(t){return new Proxy(t,{get:function(t,s){return s in t||(t[s]={}),t[s]}})}:function(t){return t};t.__tsParticlesInternals.bundles=s(t.__tsParticlesInternals.bundles),t.__tsParticlesInternals.effects=s(t.__tsParticlesInternals.effects),t.__tsParticlesInternals.interactions=s(t.__tsParticlesInternals.interactions),t.__tsParticlesInternals.palettes=s(t.__tsParticlesInternals.palettes),t.__tsParticlesInternals.paths=s(t.__tsParticlesInternals.paths),t.__tsParticlesInternals.plugins=s(t.__tsParticlesInternals.plugins),t.__tsParticlesInternals.plugins.emittersShapes=s(t.__tsParticlesInternals.plugins.emittersShapes),t.__tsParticlesInternals.presets=s(t.__tsParticlesInternals.presets),t.__tsParticlesInternals.shapes=s(t.__tsParticlesInternals.shapes),t.__tsParticlesInternals.updaters=s(t.__tsParticlesInternals.updaters),t.__tsParticlesInternals.utils=s(t.__tsParticlesInternals.utils),t.__tsParticlesInternals.canvas=s(t.__tsParticlesInternals.canvas),t.__tsParticlesInternals.path=s(t.__tsParticlesInternals.path),t.tsparticlesInternalExports=t.tsparticlesInternalExports||{}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:this),function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):"function"==typeof define&&define.amd?define(["exports","@tsparticles/plugin-interactivity","@tsparticles/engine"],s):s(((t="undefined"!=typeof globalThis?globalThis:t||self).__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins.absorbers=t.__tsParticlesInternals.plugins.absorbers||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,i){"use strict";class e{count;delay;duration;wait;constructor(){this.wait=!1}load(t){i.isNull(t)||(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=i.setRangeValue(t.delay)),void 0!==t.duration&&(this.duration=i.setRangeValue(t.duration)),void 0!==t.wait&&(this.wait=t.wait))}}class n{mass;radius;constructor(){this.radius=0,this.mass=0}load(t){i.isNull(t)||(void 0!==t.mass&&(this.mass=t.mass),void 0!==t.radius&&(this.radius=t.radius))}}class a extends i.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new n}load(t){i.isNull(t)||(super.load(t),void 0!==t.density&&(this.density=t.density),i.isNumber(t.limit)?this.limit.radius=t.limit:this.limit.load(t.limit))}}class r{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new i.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new a}load(t){i.isNull(t)||(void 0!==t.color&&(this.color=i.OptionsColor.create(this.color,t.color)),void 0!==t.draggable&&(this.draggable=t.draggable),void 0!==t.life&&this.life.load(t.life),this.name=t.name,void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=i.setRangeValue(t.position.x)),void 0!==t.position.y&&(this.position.y=i.setRangeValue(t.position.y))),void 0!==t.size&&this.size.load(t.size),void 0!==t.destroy&&(this.destroy=t.destroy),void 0!==t.orbits&&(this.orbits=t.orbits))}}const o="absorbers";class l extends s.ExternalInteractorBase{handleClickMode;maxDistance;_dragging=!1;_draggingAbsorber;_instancesManager;constructor(t,s){super(t),this.maxDistance=0,this._instancesManager=s,this._instancesManager.initContainer(t),this.handleClickMode=(t,e)=>{const n=this.container,a=n.actualOptions.interactivity.modes.absorbers;if(!a||t!==o)return;const{clickPosition:l}=e.mouse;if(l){if(s.getArray(this.container).some(t=>i.getDistance(t.position,l)<t.size))return}const c=i.itemFromArray(a)??new r;this._instancesManager.addAbsorber(n,c,l)}}clear(){}init(){}interact(t,s){for(const e of this.container.particles.filter(s=>this.isEnabled(t,s)))for(const n of this._instancesManager.getArray(this.container)){if(n.options.draggable){const s=t.mouse;if(s.clicking&&s.downPosition){i.getDistance(n.position,s.downPosition)<=n.size&&(this._dragging=!0,this._draggingAbsorber=n)}else this._dragging=!1,this._draggingAbsorber=void 0;this._dragging&&this._draggingAbsorber==n&&s.position&&(n.position.x=s.position.x,n.position.y=s.position.y)}if(n.attract(e,s),e.destroyed)break}}isEnabled(t,s){const e=this.container.actualOptions,n=t.mouse,a=(s?.interactivity??e.interactivity).events;return!(!n.clickPosition||!a.onClick.enable)&&i.isInArray(o,a.onClick.mode)}loadModeOptions(t,...s){t.absorbers??=[];for(const e of s)if(e)if(i.isArray(e.absorbers))for(const s of e.absorbers){const i=new r;i.load(s),t.absorbers.push(i)}else{const s=new r;s.load(e.absorbers),t.absorbers.push(s)}}reset(){}}const c=new WeakMap;function _(t){const s=t.pluginManager;let i=c.get(s);return i||(i=Promise.resolve().then(function(){return p}).then(({AbsorbersInstancesManager:t})=>new t(s)).catch(t=>{throw c.delete(s),t}),c.set(s,i)),i}class h{id="absorbers";_instancesManager;constructor(t){this._instancesManager=t}async getPlugin(t){const{AbsorbersPluginInstance:s}=await Promise.resolve().then(function(){return g});return new s(t,this._instancesManager)}loadOptions(t,s,e){(this.needsPlugin(s)||this.needsPlugin(e))&&e?.absorbers&&(s.absorbers=i.executeOnSingleOrMultiple(e.absorbers,t=>{const s=new r;return s.load(t),s}))}needsPlugin(t){if(!t)return!1;const s=t.absorbers;return i.isArray(s)?!!s.length:!!s}}async function d(t){await async function(t){t.checkVersion("4.0.0-beta.16"),await t.pluginManager.register(async t=>{const s=t.pluginManager,i=await _(t);s.addPlugin(new h(i))})}(t),await async function(t){t.checkVersion("4.0.0-beta.16"),await t.pluginManager.register(async t=>{const i=t.pluginManager,e=await _(t);s.ensureInteractivityPluginLoaded(t),i.addInteractor?.("externalAbsorbers",t=>Promise.resolve(new l(t,e)))})}(t)}const u=globalThis;u.__tsParticlesInternals=u.__tsParticlesInternals??{},u.loadAbsorbersPlugin=d;var p=Object.freeze({__proto__:null,AbsorbersInstancesManager:class{_containerArrays;_pluginManager;constructor(t){this._pluginManager=t,this._containerArrays=new Map}async addAbsorber(t,s,i){const{AbsorberInstance:e}=await Promise.resolve().then(function(){return y}),n=new e(this._pluginManager,t,s,i);return this.getArray(t).push(n),n}clear(t){this.initContainer(t),this._containerArrays.set(t,[])}getArray(t){this.initContainer(t);let s=this._containerArrays.get(t);return s||(s=[],this._containerArrays.set(t,s)),s}initContainer(t){this._containerArrays.has(t)||(this._containerArrays.set(t,[]),t.getAbsorber??=s=>{const e=this.getArray(t);return void 0===s||i.isNumber(s)?e[s??0]:e.find(t=>t.name===s)},t.addAbsorber??=(s,i)=>this.addAbsorber(t,s,i))}removeAbsorber(t,s){const i=this.getArray(t).indexOf(s);i>=0&&this.getArray(t).splice(i,1)}}});var g=Object.freeze({__proto__:null,AbsorbersPluginInstance:class{_container;_instancesManager;constructor(t,s){this._container=t,this._instancesManager=s,this._instancesManager.initContainer(t)}draw(t){for(const s of this._instancesManager.getArray(this._container))s.draw(t)}async init(){const t=this._container.actualOptions.absorbers,s=i.executeOnSingleOrMultiple(t,async t=>{await this._instancesManager.addAbsorber(this._container,t)});i.isArray(s)?await Promise.all(s):await s}particleUpdate(t,s){for(const i of this._instancesManager.getArray(this._container))if(i.attract(t,s),t.destroyed)break}resize(){for(const t of this._instancesManager.getArray(this._container))t.resize()}stop(){this._instancesManager.clear(this._container)}}});const b=i.doublePI,P=i.identity/360;var y=Object.freeze({__proto__:null,AbsorberInstance:class{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_firstSpawn;_immortal;_lifeCount;_pluginManager;_spawnDelay;initialPosition;constructor(t,s,e,n){this._container=s,this._pluginManager=t,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=n?i.Vector.create(n.x,n.y):void 0,e instanceof r?this.options=e:(this.options=new r,this.options.load(e)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=i.getRangeValue(this.options.size.value)*s.retina.pixelRatio,this.mass=this.size*this.options.size.density*s.retina.reduceFactor;const a=this.options.size.limit;this.limit={radius:a.radius*s.retina.pixelRatio*s.retina.reduceFactor,mass:a.mass},this.color=i.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=s.retina.reduceFactor?i.getRangeValue(this.options.life.delay??0)*i.millisecondsToSeconds/s.retina.reduceFactor:1/0}attract(t,s){const e=this._container,n=this.options,a=t.getPosition(),{dx:r,dy:o,distance:l}=i.getDistances(this.position,a),c=i.Vector.create(r,o);if(c.length=this.mass/Math.pow(l,2)*e.retina.reduceFactor,l<this.size+t.getRadius()){const i=.033*t.getRadius()*e.retina.pixelRatio*s.factor;this.size>t.getRadius()&&l<this.size-t.getRadius()||void 0!==t.absorberOrbit&&t.absorberOrbit.length<0?n.destroy?t.destroy():(t.needsNewPosition=!0,this._updateParticlePosition(t,s,c)):(n.destroy&&(t.size.value-=i),this._updateParticlePosition(t,s,c)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=i),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=i*this.options.size.density*e.retina.reduceFactor)}else this._updateParticlePosition(t,s,c)}draw(t){t.translate(this.position.x,this.position.y),t.beginPath(),t.arc(i.originPoint.x,i.originPoint.y,this.size,0,b,!1),t.closePath(),t.fillStyle=i.getStyleFromRgb(this.color,this._container.hdr,this.opacity),t.fill()}resize(){const t=this.initialPosition;this.position=t&&i.isPointInside(t,this._container.canvas.size,i.Vector.origin)?t:this._calcPosition()}update(t){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=t.value,this._currentDuration>=this._duration&&(this._immortal||this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?i.getRangeValue(this.options.life.delay??0)*i.millisecondsToSeconds/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=t.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{const t=i.calcPositionOrRandomFromSizeRanged({size:this._container.canvas.size,position:this.options.position});return i.Vector.create(t.x,t.y)};_prepareToDie=()=>{const t=void 0!==this.options.life.duration?i.getRangeValue(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==t&&t>0&&(this._duration=t*i.millisecondsToSeconds)};_updateParticlePosition=(t,s,e)=>{if(t.destroyed)return;const n=this._container,a=n.canvas.size;if(t.needsNewPosition){const s=i.calcPositionOrRandomFromSize({size:a});t.position.setTo(s),t.velocity.setTo(t.initialVelocity),t.absorberOrbit=void 0,t.needsNewPosition=!1}if(this.options.orbits){if(void 0===t.absorberOrbit&&(t.absorberOrbit=i.Vector.origin,t.absorberOrbit.length=i.getDistance(t.getPosition(),this.position),t.absorberOrbit.angle=i.getRandom()*b),t.absorberOrbit.length<=this.size&&!this.options.destroy){const s=Math.min(a.width,a.height),e=1,n=.1,r=.2;t.absorberOrbit.length=s*(e+(i.getRandom()*r-n))}t.absorberOrbitDirection??=t.velocity.x>=0?i.RotateDirection.clockwise:i.RotateDirection.counterClockwise;const r=t.absorberOrbit.length,o=t.absorberOrbit.angle,l=t.absorberOrbitDirection;t.velocity.setTo(i.Vector.origin);const c=i.getRangeMax(t.options.size.value)*n.retina.pixelRatio,_=t.options.move.size?t.getRadius()/c:i.identity,h=s.factor||i.identity,d=t.retina.moveSpeed*_*h*i.half;t.position.x=this.position.x+r*Math.cos(o),t.position.y=this.position.y+r*(l===i.RotateDirection.clockwise?i.identity:-i.identity)*Math.sin(o),t.absorberOrbit.length=Math.max(0,t.absorberOrbit.length-e.length),t.absorberOrbit.angle+=d*P*n.retina.reduceFactor}else t.velocity.addTo(e)};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}});t.loadAbsorbersPlugin=d}),Object.assign(globalThis.window||globalThis,{loadAbsorbersPlugin:(globalThis.__tsParticlesInternals.plugins.absorbers||{}).loadAbsorbersPlugin}),delete(globalThis.window||globalThis).tsparticlesInternalExports;