@tsparticles/interaction-particles-attract 4.1.2 → 4.2.0

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.
@@ -1,4 +1,4 @@
1
- import { getDistances, getRangeValue, isNull } from "@tsparticles/engine";
1
+ import { getDistances, getRangeValue, isNull, loadOptionProperty, } from "@tsparticles/engine";
2
2
  import { Attract } from "./Options/Classes/Attract.js";
3
3
  import { ParticlesInteractorBase } from "@tsparticles/plugin-interactivity";
4
4
  const attractFactor = 1000, identity = 1;
@@ -43,10 +43,7 @@ export class Attractor extends ParticlesInteractorBase {
43
43
  return particle.options.attract?.enable ?? false;
44
44
  }
45
45
  loadParticlesOptions(options, ...sources) {
46
- options.attract ??= new Attract();
47
- for (const source of sources) {
48
- options.attract.load(source?.attract);
49
- }
46
+ loadOptionProperty(options, "attract", Attract, ...sources);
50
47
  }
51
48
  reset() {
52
49
  }
@@ -1,11 +1,9 @@
1
- import { isNull, setRangeValue, } from "@tsparticles/engine";
1
+ import { isNull, loadProperty, loadRangeProperty, } from "@tsparticles/engine";
2
2
  export class Attract {
3
- distance;
4
- enable;
3
+ distance = 200;
4
+ enable = false;
5
5
  rotate;
6
6
  constructor() {
7
- this.distance = 200;
8
- this.enable = false;
9
7
  this.rotate = {
10
8
  x: 3000,
11
9
  y: 3000,
@@ -15,12 +13,8 @@ export class Attract {
15
13
  if (isNull(data)) {
16
14
  return;
17
15
  }
18
- if (data.distance !== undefined) {
19
- this.distance = setRangeValue(data.distance);
20
- }
21
- if (data.enable !== undefined) {
22
- this.enable = data.enable;
23
- }
16
+ loadRangeProperty(this, "distance", data.distance);
17
+ loadProperty(this, "enable", data.enable);
24
18
  if (data.rotate) {
25
19
  const rotateX = data.rotate.x;
26
20
  if (rotateX !== undefined) {
package/browser/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Attractor } from "./Attractor.js";
3
3
  export async function loadParticlesAttractInteraction(engine) {
4
- engine.checkVersion("4.1.2");
4
+ engine.checkVersion("4.2.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("particlesAttract", container => {
@@ -1,5 +1,5 @@
1
1
  export async function loadParticlesAttractInteraction(engine) {
2
- engine.checkVersion("4.1.2");
2
+ engine.checkVersion("4.2.0");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const { ensureInteractivityPluginLoaded } = await import("@tsparticles/plugin-interactivity/lazy");
5
5
  ensureInteractivityPluginLoaded(e);
package/cjs/Attractor.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getDistances, getRangeValue, isNull } from "@tsparticles/engine";
1
+ import { getDistances, getRangeValue, isNull, loadOptionProperty, } from "@tsparticles/engine";
2
2
  import { Attract } from "./Options/Classes/Attract.js";
3
3
  import { ParticlesInteractorBase } from "@tsparticles/plugin-interactivity";
4
4
  const attractFactor = 1000, identity = 1;
@@ -43,10 +43,7 @@ export class Attractor extends ParticlesInteractorBase {
43
43
  return particle.options.attract?.enable ?? false;
44
44
  }
45
45
  loadParticlesOptions(options, ...sources) {
46
- options.attract ??= new Attract();
47
- for (const source of sources) {
48
- options.attract.load(source?.attract);
49
- }
46
+ loadOptionProperty(options, "attract", Attract, ...sources);
50
47
  }
51
48
  reset() {
52
49
  }
@@ -1,11 +1,9 @@
1
- import { isNull, setRangeValue, } from "@tsparticles/engine";
1
+ import { isNull, loadProperty, loadRangeProperty, } from "@tsparticles/engine";
2
2
  export class Attract {
3
- distance;
4
- enable;
3
+ distance = 200;
4
+ enable = false;
5
5
  rotate;
6
6
  constructor() {
7
- this.distance = 200;
8
- this.enable = false;
9
7
  this.rotate = {
10
8
  x: 3000,
11
9
  y: 3000,
@@ -15,12 +13,8 @@ export class Attract {
15
13
  if (isNull(data)) {
16
14
  return;
17
15
  }
18
- if (data.distance !== undefined) {
19
- this.distance = setRangeValue(data.distance);
20
- }
21
- if (data.enable !== undefined) {
22
- this.enable = data.enable;
23
- }
16
+ loadRangeProperty(this, "distance", data.distance);
17
+ loadProperty(this, "enable", data.enable);
24
18
  if (data.rotate) {
25
19
  const rotateX = data.rotate.x;
26
20
  if (rotateX !== undefined) {
package/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Attractor } from "./Attractor.js";
3
3
  export async function loadParticlesAttractInteraction(engine) {
4
- engine.checkVersion("4.1.2");
4
+ engine.checkVersion("4.2.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("particlesAttract", container => {
package/cjs/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadParticlesAttractInteraction(engine) {
2
- engine.checkVersion("4.1.2");
2
+ engine.checkVersion("4.2.0");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const { ensureInteractivityPluginLoaded } = await import("@tsparticles/plugin-interactivity/lazy");
5
5
  ensureInteractivityPluginLoaded(e);
package/esm/Attractor.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getDistances, getRangeValue, isNull } from "@tsparticles/engine";
1
+ import { getDistances, getRangeValue, isNull, loadOptionProperty, } from "@tsparticles/engine";
2
2
  import { Attract } from "./Options/Classes/Attract.js";
3
3
  import { ParticlesInteractorBase } from "@tsparticles/plugin-interactivity";
4
4
  const attractFactor = 1000, identity = 1;
@@ -43,10 +43,7 @@ export class Attractor extends ParticlesInteractorBase {
43
43
  return particle.options.attract?.enable ?? false;
44
44
  }
45
45
  loadParticlesOptions(options, ...sources) {
46
- options.attract ??= new Attract();
47
- for (const source of sources) {
48
- options.attract.load(source?.attract);
49
- }
46
+ loadOptionProperty(options, "attract", Attract, ...sources);
50
47
  }
51
48
  reset() {
52
49
  }
@@ -1,11 +1,9 @@
1
- import { isNull, setRangeValue, } from "@tsparticles/engine";
1
+ import { isNull, loadProperty, loadRangeProperty, } from "@tsparticles/engine";
2
2
  export class Attract {
3
- distance;
4
- enable;
3
+ distance = 200;
4
+ enable = false;
5
5
  rotate;
6
6
  constructor() {
7
- this.distance = 200;
8
- this.enable = false;
9
7
  this.rotate = {
10
8
  x: 3000,
11
9
  y: 3000,
@@ -15,12 +13,8 @@ export class Attract {
15
13
  if (isNull(data)) {
16
14
  return;
17
15
  }
18
- if (data.distance !== undefined) {
19
- this.distance = setRangeValue(data.distance);
20
- }
21
- if (data.enable !== undefined) {
22
- this.enable = data.enable;
23
- }
16
+ loadRangeProperty(this, "distance", data.distance);
17
+ loadProperty(this, "enable", data.enable);
24
18
  if (data.rotate) {
25
19
  const rotateX = data.rotate.x;
26
20
  if (rotateX !== undefined) {
package/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Attractor } from "./Attractor.js";
3
3
  export async function loadParticlesAttractInteraction(engine) {
4
- engine.checkVersion("4.1.2");
4
+ engine.checkVersion("4.2.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("particlesAttract", container => {
package/esm/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadParticlesAttractInteraction(engine) {
2
- engine.checkVersion("4.1.2");
2
+ engine.checkVersion("4.2.0");
3
3
  await engine.pluginManager.register(async (e) => {
4
4
  const { ensureInteractivityPluginLoaded } = await import("@tsparticles/plugin-interactivity/lazy");
5
5
  ensureInteractivityPluginLoaded(e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/interaction-particles-attract",
3
- "version": "4.1.2",
3
+ "version": "4.2.0",
4
4
  "description": "tsParticles attract particles interaction",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -93,8 +93,8 @@
93
93
  "./package.json": "./package.json"
94
94
  },
95
95
  "peerDependencies": {
96
- "@tsparticles/engine": "4.1.2",
97
- "@tsparticles/plugin-interactivity": "4.1.2"
96
+ "@tsparticles/engine": "4.2.0",
97
+ "@tsparticles/plugin-interactivity": "4.2.0"
98
98
  },
99
99
  "publishConfig": {
100
100
  "access": "public"
package/report.html CHANGED
@@ -4930,7 +4930,7 @@ var drawChart = (function (exports) {
4930
4930
  </script>
4931
4931
  <script>
4932
4932
  /*<!--*/
4933
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"tsparticles.interaction.particles.attract.js","children":[{"name":"dist/browser","children":[{"name":"Options/Classes/Attract.js","uid":"edbec410-1"},{"uid":"edbec410-3","name":"Attractor.js"},{"uid":"edbec410-5","name":"index.js"},{"uid":"edbec410-7","name":"browser.js"}]}]}],"isRoot":true},"nodeParts":{"edbec410-1":{"renderedLength":963,"gzipLength":0,"brotliLength":0,"metaUid":"edbec410-0"},"edbec410-3":{"renderedLength":2080,"gzipLength":0,"brotliLength":0,"metaUid":"edbec410-2"},"edbec410-5":{"renderedLength":398,"gzipLength":0,"brotliLength":0,"metaUid":"edbec410-4"},"edbec410-7":{"renderedLength":205,"gzipLength":0,"brotliLength":0,"metaUid":"edbec410-6"}},"nodeMetas":{"edbec410-0":{"id":"/dist/browser/Options/Classes/Attract.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"edbec410-1"},"imported":[{"uid":"edbec410-9"}],"importedBy":[{"uid":"edbec410-2"}]},"edbec410-2":{"id":"/dist/browser/Attractor.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"edbec410-3"},"imported":[{"uid":"edbec410-9"},{"uid":"edbec410-0"},{"uid":"edbec410-8"}],"importedBy":[{"uid":"edbec410-4"}]},"edbec410-4":{"id":"/dist/browser/index.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"edbec410-5"},"imported":[{"uid":"edbec410-8"},{"uid":"edbec410-2"}],"importedBy":[{"uid":"edbec410-6"}]},"edbec410-6":{"id":"/dist/browser/browser.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"edbec410-7"},"imported":[{"uid":"edbec410-4"}],"importedBy":[],"isEntry":true},"edbec410-8":{"id":"@tsparticles/plugin-interactivity","moduleParts":{},"imported":[],"importedBy":[{"uid":"edbec410-4"},{"uid":"edbec410-2"}],"isExternal":true},"edbec410-9":{"id":"@tsparticles/engine","moduleParts":{},"imported":[],"importedBy":[{"uid":"edbec410-2"},{"uid":"edbec410-0"}],"isExternal":true}},"env":{"rollup":"4.60.4"},"options":{"gzip":false,"brotli":false,"sourcemap":false}};
4933
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"tsparticles.interaction.particles.attract.js","children":[{"name":"dist/browser","children":[{"name":"Options/Classes/Attract.js","uid":"fe095175-1"},{"uid":"fe095175-3","name":"Attractor.js"},{"uid":"fe095175-5","name":"index.js"},{"uid":"fe095175-7","name":"browser.js"}]}]}],"isRoot":true},"nodeParts":{"fe095175-1":{"renderedLength":812,"gzipLength":0,"brotliLength":0,"metaUid":"fe095175-0"},"fe095175-3":{"renderedLength":2000,"gzipLength":0,"brotliLength":0,"metaUid":"fe095175-2"},"fe095175-5":{"renderedLength":398,"gzipLength":0,"brotliLength":0,"metaUid":"fe095175-4"},"fe095175-7":{"renderedLength":205,"gzipLength":0,"brotliLength":0,"metaUid":"fe095175-6"}},"nodeMetas":{"fe095175-0":{"id":"/dist/browser/Options/Classes/Attract.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"fe095175-1"},"imported":[{"uid":"fe095175-9"}],"importedBy":[{"uid":"fe095175-2"}]},"fe095175-2":{"id":"/dist/browser/Attractor.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"fe095175-3"},"imported":[{"uid":"fe095175-9"},{"uid":"fe095175-0"},{"uid":"fe095175-8"}],"importedBy":[{"uid":"fe095175-4"}]},"fe095175-4":{"id":"/dist/browser/index.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"fe095175-5"},"imported":[{"uid":"fe095175-8"},{"uid":"fe095175-2"}],"importedBy":[{"uid":"fe095175-6"}]},"fe095175-6":{"id":"/dist/browser/browser.js","moduleParts":{"tsparticles.interaction.particles.attract.js":"fe095175-7"},"imported":[{"uid":"fe095175-4"}],"importedBy":[],"isEntry":true},"fe095175-8":{"id":"@tsparticles/plugin-interactivity","moduleParts":{},"imported":[],"importedBy":[{"uid":"fe095175-4"},{"uid":"fe095175-2"}],"isExternal":true},"fe095175-9":{"id":"@tsparticles/engine","moduleParts":{},"imported":[],"importedBy":[{"uid":"fe095175-2"},{"uid":"fe095175-0"}],"isExternal":true}},"env":{"rollup":"4.62.0"},"options":{"gzip":false,"brotli":false,"sourcemap":false}};
4934
4934
 
4935
4935
  const run = () => {
4936
4936
  const width = window.innerWidth;
@@ -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
- /* Particles Interaction v4.1.2 */
2
+ /* Particles Interaction v4.2.0 */
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) :
@@ -7,12 +7,10 @@
7
7
  })(this, (function (exports, pluginInteractivity, engine) { 'use strict';
8
8
 
9
9
  class Attract {
10
- distance;
11
- enable;
10
+ distance = 200;
11
+ enable = false;
12
12
  rotate;
13
13
  constructor() {
14
- this.distance = 200;
15
- this.enable = false;
16
14
  this.rotate = {
17
15
  x: 3000,
18
16
  y: 3000,
@@ -22,12 +20,8 @@
22
20
  if (engine.isNull(data)) {
23
21
  return;
24
22
  }
25
- if (data.distance !== undefined) {
26
- this.distance = engine.setRangeValue(data.distance);
27
- }
28
- if (data.enable !== undefined) {
29
- this.enable = data.enable;
30
- }
23
+ engine.loadRangeProperty(this, "distance", data.distance);
24
+ engine.loadProperty(this, "enable", data.enable);
31
25
  if (data.rotate) {
32
26
  const rotateX = data.rotate.x;
33
27
  if (rotateX !== undefined) {
@@ -83,17 +77,14 @@
83
77
  return particle.options.attract?.enable ?? false;
84
78
  }
85
79
  loadParticlesOptions(options, ...sources) {
86
- options.attract ??= new Attract();
87
- for (const source of sources) {
88
- options.attract.load(source?.attract);
89
- }
80
+ engine.loadOptionProperty(options, "attract", Attract, ...sources);
90
81
  }
91
82
  reset() {
92
83
  }
93
84
  }
94
85
 
95
86
  async function loadParticlesAttractInteraction(engine) {
96
- engine.checkVersion("4.1.2");
87
+ engine.checkVersion("4.2.0");
97
88
  await engine.pluginManager.register((e) => {
98
89
  pluginInteractivity.ensureInteractivityPluginLoaded(e);
99
90
  e.pluginManager.addInteractor?.("particlesAttract", container => {
@@ -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.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.interactions.particlesAttract=t.__tsParticlesInternals.interactions.particlesAttract||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,e){"use strict";class a{distance;enable;rotate;constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}load(t){if(!e.isNull(t)&&(void 0!==t.distance&&(this.distance=e.setRangeValue(t.distance)),void 0!==t.enable&&(this.enable=t.enable),t.rotate)){const s=t.rotate.x;void 0!==s&&(this.rotate.x=s);const e=t.rotate.y;void 0!==e&&(this.rotate.y=e)}}}class n extends s.ParticlesInteractorBase{#t;constructor(t){super(t),this.#t=0}get maxDistance(){return this.#t}clear(){}init(){}interact(t){if(!t.options.attract?.enable)return;const s=this.container;if(e.isNull(t.attractDistance)){const a=e.getRangeValue(t.options.attract.distance);a>this.#t&&(this.#t=a),t.attractDistance=a*s.retina.pixelRatio}const a=t.attractDistance,n=t.getPosition(),r=s.particles.grid.queryCircle(n,a);for(const s of r){if(t===s||!s.options.attract?.enable||s.destroyed||s.spawning)continue;const a=s.getPosition(),{dx:r,dy:i}=e.getDistances(n,a),l=t.options.attract.rotate,c=r/(1e3*l.x),_=i/(1e3*l.y),o=s.size.value/t.size.value,P=1/o;t.velocity.x-=c*o,t.velocity.y-=_*o,s.velocity.x+=c*P,s.velocity.y+=_*P}}isEnabled(t){return t.options.attract?.enable??!1}loadParticlesOptions(t,...s){t.attract??=new a;for(const e of s)t.attract.load(e?.attract)}reset(){}}async function r(t){t.checkVersion("4.1.2"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("particlesAttract",t=>Promise.resolve(new n(t)))})}const i=globalThis;i.__tsParticlesInternals=i.__tsParticlesInternals??{},i.loadParticlesAttractInteraction=r,t.loadParticlesAttractInteraction=r}),Object.assign(globalThis.window||globalThis,{loadParticlesAttractInteraction:(globalThis.__tsParticlesInternals.interactions.particlesAttract||{}).loadParticlesAttractInteraction}),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.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.interactions.particlesAttract=t.__tsParticlesInternals.interactions.particlesAttract||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,e){"use strict";class a{distance=200;enable=!1;rotate;constructor(){this.rotate={x:3e3,y:3e3}}load(t){if(!e.isNull(t)&&(e.loadRangeProperty(this,"distance",t.distance),e.loadProperty(this,"enable",t.enable),t.rotate)){const s=t.rotate.x;void 0!==s&&(this.rotate.x=s);const e=t.rotate.y;void 0!==e&&(this.rotate.y=e)}}}class n extends s.ParticlesInteractorBase{#t;constructor(t){super(t),this.#t=0}get maxDistance(){return this.#t}clear(){}init(){}interact(t){if(!t.options.attract?.enable)return;const s=this.container;if(e.isNull(t.attractDistance)){const a=e.getRangeValue(t.options.attract.distance);a>this.#t&&(this.#t=a),t.attractDistance=a*s.retina.pixelRatio}const a=t.attractDistance,n=t.getPosition(),r=s.particles.grid.queryCircle(n,a);for(const s of r){if(t===s||!s.options.attract?.enable||s.destroyed||s.spawning)continue;const a=s.getPosition(),{dx:r,dy:i}=e.getDistances(n,a),l=t.options.attract.rotate,c=r/(1e3*l.x),_=i/(1e3*l.y),o=s.size.value/t.size.value,P=1/o;t.velocity.x-=c*o,t.velocity.y-=_*o,s.velocity.x+=c*P,s.velocity.y+=_*P}}isEnabled(t){return t.options.attract?.enable??!1}loadParticlesOptions(t,...s){e.loadOptionProperty(t,"attract",a,...s)}reset(){}}async function r(t){t.checkVersion("4.2.0"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("particlesAttract",t=>Promise.resolve(new n(t)))})}const i=globalThis;i.__tsParticlesInternals=i.__tsParticlesInternals??{},i.loadParticlesAttractInteraction=r,t.loadParticlesAttractInteraction=r}),Object.assign(globalThis.window||globalThis,{loadParticlesAttractInteraction:(globalThis.__tsParticlesInternals.interactions.particlesAttract||{}).loadParticlesAttractInteraction}),delete(globalThis.window||globalThis).tsparticlesInternalExports;