@tsparticles/interaction-particles-repulse 4.0.4 → 4.1.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.
@@ -3,17 +3,17 @@ import { Vector, clamp, getDistances, getRangeValue } from "@tsparticles/engine"
3
3
  import { ParticlesRepulse } from "./Options/Classes/ParticlesRepulse.js";
4
4
  const minDistance = 0, identity = 1, squareExp = 2, minVelocity = 0;
5
5
  export class Repulser extends ParticlesInteractorBase {
6
- _maxDistance;
7
- _normVec;
8
- _velocityVec;
6
+ #maxDistance;
7
+ #normVec;
8
+ #velocityVec;
9
9
  constructor(container) {
10
10
  super(container);
11
- this._maxDistance = 0;
12
- this._normVec = Vector.origin;
13
- this._velocityVec = Vector.origin;
11
+ this.#maxDistance = 0;
12
+ this.#normVec = Vector.origin;
13
+ this.#velocityVec = Vector.origin;
14
14
  }
15
15
  get maxDistance() {
16
- return this._maxDistance;
16
+ return this.#maxDistance;
17
17
  }
18
18
  clear() {
19
19
  }
@@ -28,7 +28,7 @@ export class Repulser extends ParticlesInteractorBase {
28
28
  }
29
29
  const repulseDistance = getRangeValue(repulseOpt1.distance);
30
30
  if (repulseDistance > this.maxDistance) {
31
- this._maxDistance = repulseDistance;
31
+ this.#maxDistance = repulseDistance;
32
32
  }
33
33
  p1.repulse = {
34
34
  distance: repulseDistance * container.retina.pixelRatio,
@@ -45,14 +45,14 @@ export class Repulser extends ParticlesInteractorBase {
45
45
  if (distance > minDistance) {
46
46
  const repulseFactor = clamp((identity - Math.pow(distance * p1DistanceFactor, squareExp)) * velocity, minVelocity, velocity) *
47
47
  distanceFactor;
48
- this._normVec.x = dx * repulseFactor;
49
- this._normVec.y = dy * repulseFactor;
50
- p2.position.addTo(this._normVec);
48
+ this.#normVec.x = dx * repulseFactor;
49
+ this.#normVec.y = dy * repulseFactor;
50
+ p2.position.addTo(this.#normVec);
51
51
  }
52
52
  else {
53
- this._velocityVec.x = velocity;
54
- this._velocityVec.y = velocity;
55
- p2.position.addTo(this._velocityVec);
53
+ this.#velocityVec.x = velocity;
54
+ this.#velocityVec.y = velocity;
55
+ p2.position.addTo(this.#velocityVec);
56
56
  }
57
57
  }
58
58
  }
package/browser/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Repulser } from "./Repulser.js";
3
3
  export async function loadParticlesRepulseInteraction(engine) {
4
- engine.checkVersion("4.0.4");
4
+ engine.checkVersion("4.1.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("particlesRepulse", container => {
@@ -1,5 +1,5 @@
1
1
  export async function loadParticlesRepulseInteraction(engine) {
2
- engine.checkVersion("4.0.4");
2
+ engine.checkVersion("4.1.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/Repulser.js CHANGED
@@ -3,17 +3,17 @@ import { Vector, clamp, getDistances, getRangeValue } from "@tsparticles/engine"
3
3
  import { ParticlesRepulse } from "./Options/Classes/ParticlesRepulse.js";
4
4
  const minDistance = 0, identity = 1, squareExp = 2, minVelocity = 0;
5
5
  export class Repulser extends ParticlesInteractorBase {
6
- _maxDistance;
7
- _normVec;
8
- _velocityVec;
6
+ #maxDistance;
7
+ #normVec;
8
+ #velocityVec;
9
9
  constructor(container) {
10
10
  super(container);
11
- this._maxDistance = 0;
12
- this._normVec = Vector.origin;
13
- this._velocityVec = Vector.origin;
11
+ this.#maxDistance = 0;
12
+ this.#normVec = Vector.origin;
13
+ this.#velocityVec = Vector.origin;
14
14
  }
15
15
  get maxDistance() {
16
- return this._maxDistance;
16
+ return this.#maxDistance;
17
17
  }
18
18
  clear() {
19
19
  }
@@ -28,7 +28,7 @@ export class Repulser extends ParticlesInteractorBase {
28
28
  }
29
29
  const repulseDistance = getRangeValue(repulseOpt1.distance);
30
30
  if (repulseDistance > this.maxDistance) {
31
- this._maxDistance = repulseDistance;
31
+ this.#maxDistance = repulseDistance;
32
32
  }
33
33
  p1.repulse = {
34
34
  distance: repulseDistance * container.retina.pixelRatio,
@@ -45,14 +45,14 @@ export class Repulser extends ParticlesInteractorBase {
45
45
  if (distance > minDistance) {
46
46
  const repulseFactor = clamp((identity - Math.pow(distance * p1DistanceFactor, squareExp)) * velocity, minVelocity, velocity) *
47
47
  distanceFactor;
48
- this._normVec.x = dx * repulseFactor;
49
- this._normVec.y = dy * repulseFactor;
50
- p2.position.addTo(this._normVec);
48
+ this.#normVec.x = dx * repulseFactor;
49
+ this.#normVec.y = dy * repulseFactor;
50
+ p2.position.addTo(this.#normVec);
51
51
  }
52
52
  else {
53
- this._velocityVec.x = velocity;
54
- this._velocityVec.y = velocity;
55
- p2.position.addTo(this._velocityVec);
53
+ this.#velocityVec.x = velocity;
54
+ this.#velocityVec.y = velocity;
55
+ p2.position.addTo(this.#velocityVec);
56
56
  }
57
57
  }
58
58
  }
package/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Repulser } from "./Repulser.js";
3
3
  export async function loadParticlesRepulseInteraction(engine) {
4
- engine.checkVersion("4.0.4");
4
+ engine.checkVersion("4.1.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("particlesRepulse", container => {
package/cjs/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadParticlesRepulseInteraction(engine) {
2
- engine.checkVersion("4.0.4");
2
+ engine.checkVersion("4.1.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/Repulser.js CHANGED
@@ -3,17 +3,17 @@ import { Vector, clamp, getDistances, getRangeValue } from "@tsparticles/engine"
3
3
  import { ParticlesRepulse } from "./Options/Classes/ParticlesRepulse.js";
4
4
  const minDistance = 0, identity = 1, squareExp = 2, minVelocity = 0;
5
5
  export class Repulser extends ParticlesInteractorBase {
6
- _maxDistance;
7
- _normVec;
8
- _velocityVec;
6
+ #maxDistance;
7
+ #normVec;
8
+ #velocityVec;
9
9
  constructor(container) {
10
10
  super(container);
11
- this._maxDistance = 0;
12
- this._normVec = Vector.origin;
13
- this._velocityVec = Vector.origin;
11
+ this.#maxDistance = 0;
12
+ this.#normVec = Vector.origin;
13
+ this.#velocityVec = Vector.origin;
14
14
  }
15
15
  get maxDistance() {
16
- return this._maxDistance;
16
+ return this.#maxDistance;
17
17
  }
18
18
  clear() {
19
19
  }
@@ -28,7 +28,7 @@ export class Repulser extends ParticlesInteractorBase {
28
28
  }
29
29
  const repulseDistance = getRangeValue(repulseOpt1.distance);
30
30
  if (repulseDistance > this.maxDistance) {
31
- this._maxDistance = repulseDistance;
31
+ this.#maxDistance = repulseDistance;
32
32
  }
33
33
  p1.repulse = {
34
34
  distance: repulseDistance * container.retina.pixelRatio,
@@ -45,14 +45,14 @@ export class Repulser extends ParticlesInteractorBase {
45
45
  if (distance > minDistance) {
46
46
  const repulseFactor = clamp((identity - Math.pow(distance * p1DistanceFactor, squareExp)) * velocity, minVelocity, velocity) *
47
47
  distanceFactor;
48
- this._normVec.x = dx * repulseFactor;
49
- this._normVec.y = dy * repulseFactor;
50
- p2.position.addTo(this._normVec);
48
+ this.#normVec.x = dx * repulseFactor;
49
+ this.#normVec.y = dy * repulseFactor;
50
+ p2.position.addTo(this.#normVec);
51
51
  }
52
52
  else {
53
- this._velocityVec.x = velocity;
54
- this._velocityVec.y = velocity;
55
- p2.position.addTo(this._velocityVec);
53
+ this.#velocityVec.x = velocity;
54
+ this.#velocityVec.y = velocity;
55
+ p2.position.addTo(this.#velocityVec);
56
56
  }
57
57
  }
58
58
  }
package/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Repulser } from "./Repulser.js";
3
3
  export async function loadParticlesRepulseInteraction(engine) {
4
- engine.checkVersion("4.0.4");
4
+ engine.checkVersion("4.1.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("particlesRepulse", container => {
package/esm/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadParticlesRepulseInteraction(engine) {
2
- engine.checkVersion("4.0.4");
2
+ engine.checkVersion("4.1.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-repulse",
3
- "version": "4.0.4",
3
+ "version": "4.1.0",
4
4
  "description": "tsParticles repulse particles interaction",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -107,8 +107,8 @@
107
107
  "./package.json": "./package.json"
108
108
  },
109
109
  "peerDependencies": {
110
- "@tsparticles/engine": "4.0.4",
111
- "@tsparticles/plugin-interactivity": "4.0.4"
110
+ "@tsparticles/engine": "4.1.0",
111
+ "@tsparticles/plugin-interactivity": "4.1.0"
112
112
  },
113
113
  "publishConfig": {
114
114
  "access": "public"
@@ -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.0.4 */
2
+ /* Particles Interaction v4.1.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) :
@@ -45,17 +45,17 @@
45
45
 
46
46
  const minDistance = 0, identity = 1, squareExp = 2, minVelocity = 0;
47
47
  class Repulser extends pluginInteractivity.ParticlesInteractorBase {
48
- _maxDistance;
49
- _normVec;
50
- _velocityVec;
48
+ #maxDistance;
49
+ #normVec;
50
+ #velocityVec;
51
51
  constructor(container) {
52
52
  super(container);
53
- this._maxDistance = 0;
54
- this._normVec = engine.Vector.origin;
55
- this._velocityVec = engine.Vector.origin;
53
+ this.#maxDistance = 0;
54
+ this.#normVec = engine.Vector.origin;
55
+ this.#velocityVec = engine.Vector.origin;
56
56
  }
57
57
  get maxDistance() {
58
- return this._maxDistance;
58
+ return this.#maxDistance;
59
59
  }
60
60
  clear() {
61
61
  }
@@ -70,7 +70,7 @@
70
70
  }
71
71
  const repulseDistance = engine.getRangeValue(repulseOpt1.distance);
72
72
  if (repulseDistance > this.maxDistance) {
73
- this._maxDistance = repulseDistance;
73
+ this.#maxDistance = repulseDistance;
74
74
  }
75
75
  p1.repulse = {
76
76
  distance: repulseDistance * container.retina.pixelRatio,
@@ -87,14 +87,14 @@
87
87
  if (distance > minDistance) {
88
88
  const repulseFactor = engine.clamp((identity - Math.pow(distance * p1DistanceFactor, squareExp)) * velocity, minVelocity, velocity) *
89
89
  distanceFactor;
90
- this._normVec.x = dx * repulseFactor;
91
- this._normVec.y = dy * repulseFactor;
92
- p2.position.addTo(this._normVec);
90
+ this.#normVec.x = dx * repulseFactor;
91
+ this.#normVec.y = dy * repulseFactor;
92
+ p2.position.addTo(this.#normVec);
93
93
  }
94
94
  else {
95
- this._velocityVec.x = velocity;
96
- this._velocityVec.y = velocity;
97
- p2.position.addTo(this._velocityVec);
95
+ this.#velocityVec.x = velocity;
96
+ this.#velocityVec.y = velocity;
97
+ p2.position.addTo(this.#velocityVec);
98
98
  }
99
99
  }
100
100
  }
@@ -112,7 +112,7 @@
112
112
  }
113
113
 
114
114
  async function loadParticlesRepulseInteraction(engine) {
115
- engine.checkVersion("4.0.4");
115
+ engine.checkVersion("4.1.0");
116
116
  await engine.pluginManager.register((e) => {
117
117
  pluginInteractivity.ensureInteractivityPluginLoaded(e);
118
118
  e.pluginManager.addInteractor?.("particlesRepulse", 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.particlesRepulse=t.__tsParticlesInternals.interactions.particlesRepulse||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,e){"use strict";class n extends e.ValueWithRandom{distance;duration;enabled;factor;speed;constructor(){super(),this.enabled=!1,this.distance=1,this.duration=1,this.factor=1,this.speed=1}load(t){super.load(t),e.isNull(t)||(void 0!==t.enabled&&(this.enabled=t.enabled),void 0!==t.distance&&(this.distance=e.setRangeValue(t.distance)),void 0!==t.duration&&(this.duration=e.setRangeValue(t.duration)),void 0!==t.factor&&(this.factor=e.setRangeValue(t.factor)),void 0!==t.speed&&(this.speed=e.setRangeValue(t.speed)))}}class a extends s.ParticlesInteractorBase{_maxDistance;_normVec;_velocityVec;constructor(t){super(t),this._maxDistance=0,this._normVec=e.Vector.origin,this._velocityVec=e.Vector.origin}get maxDistance(){return this._maxDistance}clear(){}init(){}interact(t){const s=this.container;if(!t.repulse){const n=t.options.repulse;if(!n)return;const a=e.getRangeValue(n.distance);a>this.maxDistance&&(this._maxDistance=a),t.repulse={distance:a*s.retina.pixelRatio,speed:e.getRangeValue(n.speed),factor:e.getRangeValue(n.factor)}}const n=t.getPosition(),a=s.particles.grid.queryCircle(n,t.repulse.distance),r=1/t.repulse.distance;for(const s of a){if(t===s||s.destroyed)continue;const a=s.getPosition(),{dx:i,dy:l,distance:c}=e.getDistances(a,n),_=1/c,o=t.repulse.speed*t.repulse.factor;if(c>0){const t=e.clamp((1-Math.pow(c*r,2))*o,0,o)*_;this._normVec.x=i*t,this._normVec.y=l*t,s.position.addTo(this._normVec)}else this._velocityVec.x=o,this._velocityVec.y=o,s.position.addTo(this._velocityVec)}}isEnabled(t){return t.options.repulse?.enabled??!1}loadParticlesOptions(t,...s){t.repulse??=new n;for(const e of s)t.repulse.load(e?.repulse)}reset(){}}async function r(t){t.checkVersion("4.0.4"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("particlesRepulse",t=>Promise.resolve(new a(t)))})}const i=globalThis;i.__tsParticlesInternals=i.__tsParticlesInternals??{},i.loadParticlesRepulseInteraction=r,t.loadParticlesRepulseInteraction=r}),Object.assign(globalThis.window||globalThis,{loadParticlesRepulseInteraction:(globalThis.__tsParticlesInternals.interactions.particlesRepulse||{}).loadParticlesRepulseInteraction}),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.particlesRepulse=t.__tsParticlesInternals.interactions.particlesRepulse||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,e){"use strict";class n extends e.ValueWithRandom{distance;duration;enabled;factor;speed;constructor(){super(),this.enabled=!1,this.distance=1,this.duration=1,this.factor=1,this.speed=1}load(t){super.load(t),e.isNull(t)||(void 0!==t.enabled&&(this.enabled=t.enabled),void 0!==t.distance&&(this.distance=e.setRangeValue(t.distance)),void 0!==t.duration&&(this.duration=e.setRangeValue(t.duration)),void 0!==t.factor&&(this.factor=e.setRangeValue(t.factor)),void 0!==t.speed&&(this.speed=e.setRangeValue(t.speed)))}}class a extends s.ParticlesInteractorBase{#t;#s;#e;constructor(t){super(t),this.#t=0,this.#s=e.Vector.origin,this.#e=e.Vector.origin}get maxDistance(){return this.#t}clear(){}init(){}interact(t){const s=this.container;if(!t.repulse){const n=t.options.repulse;if(!n)return;const a=e.getRangeValue(n.distance);a>this.maxDistance&&(this.#t=a),t.repulse={distance:a*s.retina.pixelRatio,speed:e.getRangeValue(n.speed),factor:e.getRangeValue(n.factor)}}const n=t.getPosition(),a=s.particles.grid.queryCircle(n,t.repulse.distance),r=1/t.repulse.distance;for(const s of a){if(t===s||s.destroyed)continue;const a=s.getPosition(),{dx:i,dy:l,distance:c}=e.getDistances(a,n),_=1/c,o=t.repulse.speed*t.repulse.factor;if(c>0){const t=e.clamp((1-Math.pow(c*r,2))*o,0,o)*_;this.#s.x=i*t,this.#s.y=l*t,s.position.addTo(this.#s)}else this.#e.x=o,this.#e.y=o,s.position.addTo(this.#e)}}isEnabled(t){return t.options.repulse?.enabled??!1}loadParticlesOptions(t,...s){t.repulse??=new n;for(const e of s)t.repulse.load(e?.repulse)}reset(){}}async function r(t){t.checkVersion("4.1.0"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("particlesRepulse",t=>Promise.resolve(new a(t)))})}const i=globalThis;i.__tsParticlesInternals=i.__tsParticlesInternals??{},i.loadParticlesRepulseInteraction=r,t.loadParticlesRepulseInteraction=r}),Object.assign(globalThis.window||globalThis,{loadParticlesRepulseInteraction:(globalThis.__tsParticlesInternals.interactions.particlesRepulse||{}).loadParticlesRepulseInteraction}),delete(globalThis.window||globalThis).tsparticlesInternalExports;
@@ -10,9 +10,7 @@ export type RepulseParticle = Particle & {
10
10
  };
11
11
  };
12
12
  export declare class Repulser extends ParticlesInteractorBase {
13
- private _maxDistance;
14
- private readonly _normVec;
15
- private readonly _velocityVec;
13
+ #private;
16
14
  constructor(container: InteractivityContainer);
17
15
  get maxDistance(): number;
18
16
  clear(): void;