@tsparticles/interaction-external-particle 4.0.5 → 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.
@@ -4,9 +4,9 @@ import { InteractivityParticleOptions } from "./Options/Classes/InteractivityPar
4
4
  const particleMode = "particle";
5
5
  export class InteractivityParticleMaker extends ExternalInteractorBase {
6
6
  maxDistance = 0;
7
- _clearTimeout;
8
- _lastPosition;
9
- _particle;
7
+ #clearTimeout;
8
+ #lastPosition;
9
+ #particle;
10
10
  constructor(container) {
11
11
  super(container);
12
12
  }
@@ -24,24 +24,24 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
24
24
  return;
25
25
  }
26
26
  const mouseStopped = interactivityParticleOptions.pauseOnStop &&
27
- (interactivityData.mouse.position === this._lastPosition ||
28
- (interactivityData.mouse.position?.x === this._lastPosition?.x &&
29
- interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
27
+ (interactivityData.mouse.position === this.#lastPosition ||
28
+ (interactivityData.mouse.position?.x === this.#lastPosition?.x &&
29
+ interactivityData.mouse.position?.y === this.#lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
30
30
  if (mousePos) {
31
- this._lastPosition = { ...mousePos };
31
+ this.#lastPosition = { ...mousePos };
32
32
  }
33
33
  else {
34
- delete this._lastPosition;
34
+ this.#lastPosition = undefined;
35
35
  }
36
- if (!this._lastPosition) {
36
+ if (!this.#lastPosition) {
37
37
  return;
38
38
  }
39
39
  if (mouseStopped) {
40
- if (this._clearTimeout) {
40
+ if (this.#clearTimeout) {
41
41
  return;
42
42
  }
43
- this._clearTimeout = setTimeout(() => {
44
- if (!this._particle) {
43
+ this.#clearTimeout = setTimeout(() => {
44
+ if (!this.#particle) {
45
45
  return;
46
46
  }
47
47
  if (interactivityParticleOptions.replaceCursor) {
@@ -55,22 +55,22 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
55
55
  }
56
56
  }
57
57
  }
58
- this._particle.destroy(true);
59
- delete this._particle;
58
+ this.#particle.destroy(true);
59
+ this.#particle = undefined;
60
60
  }, clearDelay);
61
61
  return;
62
62
  }
63
- if (this._clearTimeout) {
64
- clearTimeout(this._clearTimeout);
65
- delete this._clearTimeout;
63
+ if (this.#clearTimeout) {
64
+ clearTimeout(this.#clearTimeout);
65
+ this.#clearTimeout = undefined;
66
66
  }
67
- if (!this._particle) {
67
+ if (!this.#particle) {
68
68
  const particleOptions = deepExtend(interactivityParticleOptions.options, {
69
69
  move: {
70
70
  enable: false,
71
71
  },
72
72
  });
73
- this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
73
+ this.#particle = container.particles.addParticle(this.#lastPosition, particleOptions);
74
74
  if (interactivityParticleOptions.replaceCursor) {
75
75
  const element = interactivityData.element;
76
76
  if (element) {
@@ -83,11 +83,11 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
83
83
  }
84
84
  }
85
85
  }
86
- if (!this._particle) {
86
+ if (!this.#particle) {
87
87
  return;
88
88
  }
89
- this._particle.position.x = this._lastPosition.x;
90
- this._particle.position.y = this._lastPosition.y;
89
+ this.#particle.position.x = this.#lastPosition.x;
90
+ this.#particle.position.y = this.#lastPosition.y;
91
91
  }
92
92
  isEnabled(interactivityData, particle) {
93
93
  const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
package/browser/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { InteractivityParticleMaker } from "./InteractivityParticleMaker.js";
3
3
  export async function loadExternalParticleInteraction(engine) {
4
- engine.checkVersion("4.0.5");
4
+ engine.checkVersion("4.1.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("externalParticle", container => {
@@ -1,5 +1,5 @@
1
1
  export async function loadExternalParticleInteraction(engine) {
2
- engine.checkVersion("4.0.5");
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);
@@ -4,9 +4,9 @@ import { InteractivityParticleOptions } from "./Options/Classes/InteractivityPar
4
4
  const particleMode = "particle";
5
5
  export class InteractivityParticleMaker extends ExternalInteractorBase {
6
6
  maxDistance = 0;
7
- _clearTimeout;
8
- _lastPosition;
9
- _particle;
7
+ #clearTimeout;
8
+ #lastPosition;
9
+ #particle;
10
10
  constructor(container) {
11
11
  super(container);
12
12
  }
@@ -24,24 +24,24 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
24
24
  return;
25
25
  }
26
26
  const mouseStopped = interactivityParticleOptions.pauseOnStop &&
27
- (interactivityData.mouse.position === this._lastPosition ||
28
- (interactivityData.mouse.position?.x === this._lastPosition?.x &&
29
- interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
27
+ (interactivityData.mouse.position === this.#lastPosition ||
28
+ (interactivityData.mouse.position?.x === this.#lastPosition?.x &&
29
+ interactivityData.mouse.position?.y === this.#lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
30
30
  if (mousePos) {
31
- this._lastPosition = { ...mousePos };
31
+ this.#lastPosition = { ...mousePos };
32
32
  }
33
33
  else {
34
- delete this._lastPosition;
34
+ this.#lastPosition = undefined;
35
35
  }
36
- if (!this._lastPosition) {
36
+ if (!this.#lastPosition) {
37
37
  return;
38
38
  }
39
39
  if (mouseStopped) {
40
- if (this._clearTimeout) {
40
+ if (this.#clearTimeout) {
41
41
  return;
42
42
  }
43
- this._clearTimeout = setTimeout(() => {
44
- if (!this._particle) {
43
+ this.#clearTimeout = setTimeout(() => {
44
+ if (!this.#particle) {
45
45
  return;
46
46
  }
47
47
  if (interactivityParticleOptions.replaceCursor) {
@@ -55,22 +55,22 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
55
55
  }
56
56
  }
57
57
  }
58
- this._particle.destroy(true);
59
- delete this._particle;
58
+ this.#particle.destroy(true);
59
+ this.#particle = undefined;
60
60
  }, clearDelay);
61
61
  return;
62
62
  }
63
- if (this._clearTimeout) {
64
- clearTimeout(this._clearTimeout);
65
- delete this._clearTimeout;
63
+ if (this.#clearTimeout) {
64
+ clearTimeout(this.#clearTimeout);
65
+ this.#clearTimeout = undefined;
66
66
  }
67
- if (!this._particle) {
67
+ if (!this.#particle) {
68
68
  const particleOptions = deepExtend(interactivityParticleOptions.options, {
69
69
  move: {
70
70
  enable: false,
71
71
  },
72
72
  });
73
- this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
73
+ this.#particle = container.particles.addParticle(this.#lastPosition, particleOptions);
74
74
  if (interactivityParticleOptions.replaceCursor) {
75
75
  const element = interactivityData.element;
76
76
  if (element) {
@@ -83,11 +83,11 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
83
83
  }
84
84
  }
85
85
  }
86
- if (!this._particle) {
86
+ if (!this.#particle) {
87
87
  return;
88
88
  }
89
- this._particle.position.x = this._lastPosition.x;
90
- this._particle.position.y = this._lastPosition.y;
89
+ this.#particle.position.x = this.#lastPosition.x;
90
+ this.#particle.position.y = this.#lastPosition.y;
91
91
  }
92
92
  isEnabled(interactivityData, particle) {
93
93
  const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
package/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { InteractivityParticleMaker } from "./InteractivityParticleMaker.js";
3
3
  export async function loadExternalParticleInteraction(engine) {
4
- engine.checkVersion("4.0.5");
4
+ engine.checkVersion("4.1.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("externalParticle", container => {
package/cjs/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadExternalParticleInteraction(engine) {
2
- engine.checkVersion("4.0.5");
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);
@@ -4,9 +4,9 @@ import { InteractivityParticleOptions } from "./Options/Classes/InteractivityPar
4
4
  const particleMode = "particle";
5
5
  export class InteractivityParticleMaker extends ExternalInteractorBase {
6
6
  maxDistance = 0;
7
- _clearTimeout;
8
- _lastPosition;
9
- _particle;
7
+ #clearTimeout;
8
+ #lastPosition;
9
+ #particle;
10
10
  constructor(container) {
11
11
  super(container);
12
12
  }
@@ -24,24 +24,24 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
24
24
  return;
25
25
  }
26
26
  const mouseStopped = interactivityParticleOptions.pauseOnStop &&
27
- (interactivityData.mouse.position === this._lastPosition ||
28
- (interactivityData.mouse.position?.x === this._lastPosition?.x &&
29
- interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
27
+ (interactivityData.mouse.position === this.#lastPosition ||
28
+ (interactivityData.mouse.position?.x === this.#lastPosition?.x &&
29
+ interactivityData.mouse.position?.y === this.#lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
30
30
  if (mousePos) {
31
- this._lastPosition = { ...mousePos };
31
+ this.#lastPosition = { ...mousePos };
32
32
  }
33
33
  else {
34
- delete this._lastPosition;
34
+ this.#lastPosition = undefined;
35
35
  }
36
- if (!this._lastPosition) {
36
+ if (!this.#lastPosition) {
37
37
  return;
38
38
  }
39
39
  if (mouseStopped) {
40
- if (this._clearTimeout) {
40
+ if (this.#clearTimeout) {
41
41
  return;
42
42
  }
43
- this._clearTimeout = setTimeout(() => {
44
- if (!this._particle) {
43
+ this.#clearTimeout = setTimeout(() => {
44
+ if (!this.#particle) {
45
45
  return;
46
46
  }
47
47
  if (interactivityParticleOptions.replaceCursor) {
@@ -55,22 +55,22 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
55
55
  }
56
56
  }
57
57
  }
58
- this._particle.destroy(true);
59
- delete this._particle;
58
+ this.#particle.destroy(true);
59
+ this.#particle = undefined;
60
60
  }, clearDelay);
61
61
  return;
62
62
  }
63
- if (this._clearTimeout) {
64
- clearTimeout(this._clearTimeout);
65
- delete this._clearTimeout;
63
+ if (this.#clearTimeout) {
64
+ clearTimeout(this.#clearTimeout);
65
+ this.#clearTimeout = undefined;
66
66
  }
67
- if (!this._particle) {
67
+ if (!this.#particle) {
68
68
  const particleOptions = deepExtend(interactivityParticleOptions.options, {
69
69
  move: {
70
70
  enable: false,
71
71
  },
72
72
  });
73
- this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
73
+ this.#particle = container.particles.addParticle(this.#lastPosition, particleOptions);
74
74
  if (interactivityParticleOptions.replaceCursor) {
75
75
  const element = interactivityData.element;
76
76
  if (element) {
@@ -83,11 +83,11 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
83
83
  }
84
84
  }
85
85
  }
86
- if (!this._particle) {
86
+ if (!this.#particle) {
87
87
  return;
88
88
  }
89
- this._particle.position.x = this._lastPosition.x;
90
- this._particle.position.y = this._lastPosition.y;
89
+ this.#particle.position.x = this.#lastPosition.x;
90
+ this.#particle.position.y = this.#lastPosition.y;
91
91
  }
92
92
  isEnabled(interactivityData, particle) {
93
93
  const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
package/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { InteractivityParticleMaker } from "./InteractivityParticleMaker.js";
3
3
  export async function loadExternalParticleInteraction(engine) {
4
- engine.checkVersion("4.0.5");
4
+ engine.checkVersion("4.1.0");
5
5
  await engine.pluginManager.register((e) => {
6
6
  ensureInteractivityPluginLoaded(e);
7
7
  e.pluginManager.addInteractor?.("externalParticle", container => {
package/esm/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadExternalParticleInteraction(engine) {
2
- engine.checkVersion("4.0.5");
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-external-particle",
3
- "version": "4.0.5",
3
+ "version": "4.1.0",
4
4
  "description": "tsParticles particle external interaction",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -97,7 +97,7 @@
97
97
  },
98
98
  "type": "module",
99
99
  "peerDependencies": {
100
- "@tsparticles/engine": "4.0.5",
101
- "@tsparticles/plugin-interactivity": "4.0.5"
100
+ "@tsparticles/engine": "4.1.0",
101
+ "@tsparticles/plugin-interactivity": "4.1.0"
102
102
  }
103
103
  }
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.external.particle.js","children":[{"name":"dist/browser","children":[{"name":"Options/Classes/InteractivityParticleOptions.js","uid":"018016c0-1"},{"uid":"018016c0-3","name":"InteractivityParticleMaker.js"},{"uid":"018016c0-5","name":"index.js"},{"uid":"018016c0-7","name":"browser.js"}]}]}],"isRoot":true},"nodeParts":{"018016c0-1":{"renderedLength":857,"gzipLength":0,"brotliLength":0,"metaUid":"018016c0-0"},"018016c0-3":{"renderedLength":4399,"gzipLength":0,"brotliLength":0,"metaUid":"018016c0-2"},"018016c0-5":{"renderedLength":415,"gzipLength":0,"brotliLength":0,"metaUid":"018016c0-4"},"018016c0-7":{"renderedLength":205,"gzipLength":0,"brotliLength":0,"metaUid":"018016c0-6"}},"nodeMetas":{"018016c0-0":{"id":"/dist/browser/Options/Classes/InteractivityParticleOptions.js","moduleParts":{"tsparticles.interaction.external.particle.js":"018016c0-1"},"imported":[{"uid":"018016c0-9"}],"importedBy":[{"uid":"018016c0-2"}]},"018016c0-2":{"id":"/dist/browser/InteractivityParticleMaker.js","moduleParts":{"tsparticles.interaction.external.particle.js":"018016c0-3"},"imported":[{"uid":"018016c0-8"},{"uid":"018016c0-9"},{"uid":"018016c0-0"}],"importedBy":[{"uid":"018016c0-4"}]},"018016c0-4":{"id":"/dist/browser/index.js","moduleParts":{"tsparticles.interaction.external.particle.js":"018016c0-5"},"imported":[{"uid":"018016c0-8"},{"uid":"018016c0-2"}],"importedBy":[{"uid":"018016c0-6"}]},"018016c0-6":{"id":"/dist/browser/browser.js","moduleParts":{"tsparticles.interaction.external.particle.js":"018016c0-7"},"imported":[{"uid":"018016c0-4"}],"importedBy":[],"isEntry":true},"018016c0-8":{"id":"@tsparticles/plugin-interactivity","moduleParts":{},"imported":[],"importedBy":[{"uid":"018016c0-4"},{"uid":"018016c0-2"}],"isExternal":true},"018016c0-9":{"id":"@tsparticles/engine","moduleParts":{},"imported":[],"importedBy":[{"uid":"018016c0-2"},{"uid":"018016c0-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.external.particle.js","children":[{"name":"dist/browser","children":[{"name":"Options/Classes/InteractivityParticleOptions.js","uid":"a7260bcf-1"},{"uid":"a7260bcf-3","name":"InteractivityParticleMaker.js"},{"uid":"a7260bcf-5","name":"index.js"},{"uid":"a7260bcf-7","name":"browser.js"}]}]}],"isRoot":true},"nodeParts":{"a7260bcf-1":{"renderedLength":857,"gzipLength":0,"brotliLength":0,"metaUid":"a7260bcf-0"},"a7260bcf-3":{"renderedLength":4414,"gzipLength":0,"brotliLength":0,"metaUid":"a7260bcf-2"},"a7260bcf-5":{"renderedLength":415,"gzipLength":0,"brotliLength":0,"metaUid":"a7260bcf-4"},"a7260bcf-7":{"renderedLength":205,"gzipLength":0,"brotliLength":0,"metaUid":"a7260bcf-6"}},"nodeMetas":{"a7260bcf-0":{"id":"/dist/browser/Options/Classes/InteractivityParticleOptions.js","moduleParts":{"tsparticles.interaction.external.particle.js":"a7260bcf-1"},"imported":[{"uid":"a7260bcf-9"}],"importedBy":[{"uid":"a7260bcf-2"}]},"a7260bcf-2":{"id":"/dist/browser/InteractivityParticleMaker.js","moduleParts":{"tsparticles.interaction.external.particle.js":"a7260bcf-3"},"imported":[{"uid":"a7260bcf-8"},{"uid":"a7260bcf-9"},{"uid":"a7260bcf-0"}],"importedBy":[{"uid":"a7260bcf-4"}]},"a7260bcf-4":{"id":"/dist/browser/index.js","moduleParts":{"tsparticles.interaction.external.particle.js":"a7260bcf-5"},"imported":[{"uid":"a7260bcf-8"},{"uid":"a7260bcf-2"}],"importedBy":[{"uid":"a7260bcf-6"}]},"a7260bcf-6":{"id":"/dist/browser/browser.js","moduleParts":{"tsparticles.interaction.external.particle.js":"a7260bcf-7"},"imported":[{"uid":"a7260bcf-4"}],"importedBy":[],"isEntry":true},"a7260bcf-8":{"id":"@tsparticles/plugin-interactivity","moduleParts":{},"imported":[],"importedBy":[{"uid":"a7260bcf-4"},{"uid":"a7260bcf-2"}],"isExternal":true},"a7260bcf-9":{"id":"@tsparticles/engine","moduleParts":{},"imported":[],"importedBy":[{"uid":"a7260bcf-2"},{"uid":"a7260bcf-0"}],"isExternal":true}},"env":{"rollup":"4.60.4"},"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
- /* External Interaction v4.0.5 */
2
+ /* External 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) :
@@ -38,9 +38,9 @@
38
38
  const particleMode = "particle";
39
39
  class InteractivityParticleMaker extends pluginInteractivity.ExternalInteractorBase {
40
40
  maxDistance = 0;
41
- _clearTimeout;
42
- _lastPosition;
43
- _particle;
41
+ #clearTimeout;
42
+ #lastPosition;
43
+ #particle;
44
44
  constructor(container) {
45
45
  super(container);
46
46
  }
@@ -58,24 +58,24 @@
58
58
  return;
59
59
  }
60
60
  const mouseStopped = interactivityParticleOptions.pauseOnStop &&
61
- (interactivityData.mouse.position === this._lastPosition ||
62
- (interactivityData.mouse.position?.x === this._lastPosition?.x &&
63
- interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
61
+ (interactivityData.mouse.position === this.#lastPosition ||
62
+ (interactivityData.mouse.position?.x === this.#lastPosition?.x &&
63
+ interactivityData.mouse.position?.y === this.#lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
64
64
  if (mousePos) {
65
- this._lastPosition = { ...mousePos };
65
+ this.#lastPosition = { ...mousePos };
66
66
  }
67
67
  else {
68
- delete this._lastPosition;
68
+ this.#lastPosition = undefined;
69
69
  }
70
- if (!this._lastPosition) {
70
+ if (!this.#lastPosition) {
71
71
  return;
72
72
  }
73
73
  if (mouseStopped) {
74
- if (this._clearTimeout) {
74
+ if (this.#clearTimeout) {
75
75
  return;
76
76
  }
77
- this._clearTimeout = setTimeout(() => {
78
- if (!this._particle) {
77
+ this.#clearTimeout = setTimeout(() => {
78
+ if (!this.#particle) {
79
79
  return;
80
80
  }
81
81
  if (interactivityParticleOptions.replaceCursor) {
@@ -89,22 +89,22 @@
89
89
  }
90
90
  }
91
91
  }
92
- this._particle.destroy(true);
93
- delete this._particle;
92
+ this.#particle.destroy(true);
93
+ this.#particle = undefined;
94
94
  }, clearDelay);
95
95
  return;
96
96
  }
97
- if (this._clearTimeout) {
98
- clearTimeout(this._clearTimeout);
99
- delete this._clearTimeout;
97
+ if (this.#clearTimeout) {
98
+ clearTimeout(this.#clearTimeout);
99
+ this.#clearTimeout = undefined;
100
100
  }
101
- if (!this._particle) {
101
+ if (!this.#particle) {
102
102
  const particleOptions = engine.deepExtend(interactivityParticleOptions.options, {
103
103
  move: {
104
104
  enable: false,
105
105
  },
106
106
  });
107
- this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
107
+ this.#particle = container.particles.addParticle(this.#lastPosition, particleOptions);
108
108
  if (interactivityParticleOptions.replaceCursor) {
109
109
  const element = interactivityData.element;
110
110
  if (element) {
@@ -117,11 +117,11 @@
117
117
  }
118
118
  }
119
119
  }
120
- if (!this._particle) {
120
+ if (!this.#particle) {
121
121
  return;
122
122
  }
123
- this._particle.position.x = this._lastPosition.x;
124
- this._particle.position.y = this._lastPosition.y;
123
+ this.#particle.position.x = this.#lastPosition.x;
124
+ this.#particle.position.y = this.#lastPosition.y;
125
125
  }
126
126
  isEnabled(interactivityData, particle) {
127
127
  const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
@@ -140,7 +140,7 @@
140
140
  }
141
141
 
142
142
  async function loadExternalParticleInteraction(engine) {
143
- engine.checkVersion("4.0.5");
143
+ engine.checkVersion("4.1.0");
144
144
  await engine.pluginManager.register((e) => {
145
145
  pluginInteractivity.ensureInteractivityPluginLoaded(e);
146
146
  e.pluginManager.addInteractor?.("externalParticle", 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.externalParticle=t.__tsParticlesInternals.interactions.externalParticle||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,e){"use strict";class n{options;pauseOnStop;replaceCursor;stopDelay;constructor(){this.replaceCursor=!1,this.pauseOnStop=!1,this.stopDelay=0}load(t){e.isNull(t)||(void 0!==t.options&&(this.options=e.deepExtend({},t.options)),void 0!==t.replaceCursor&&(this.replaceCursor=t.replaceCursor),void 0!==t.pauseOnStop&&(this.pauseOnStop=t.pauseOnStop),void 0!==t.stopDelay&&(this.stopDelay=t.stopDelay))}}const a="particle";class i extends s.ExternalInteractorBase{maxDistance=0;_clearTimeout;_lastPosition;_particle;constructor(t){super(t)}clear(){}init(){}interact(t){const s=this.container,n=s.actualOptions;if(!s.retina.reduceFactor)return;const a=t.mouse.position,i=n.interactivity?.modes.particle;if(!i)return;const r=i.pauseOnStop&&(t.mouse.position===this._lastPosition||t.mouse.position?.x===this._lastPosition?.x&&t.mouse.position?.y===this._lastPosition?.y),l=i.stopDelay;if(a?this._lastPosition={...a}:delete this._lastPosition,this._lastPosition)if(r){if(this._clearTimeout)return;this._clearTimeout=setTimeout(()=>{if(this._particle){if(i.replaceCursor){const s=t.element;s&&(s instanceof Window||s instanceof Document?e.safeDocument().body.style.cursor="":s.style.cursor="")}this._particle.destroy(!0),delete this._particle}},l)}else{if(this._clearTimeout&&(clearTimeout(this._clearTimeout),delete this._clearTimeout),!this._particle){const n=e.deepExtend(i.options,{move:{enable:!1}});if(this._particle=s.particles.addParticle(this._lastPosition,n),i.replaceCursor){const s=t.element;s&&(s instanceof Window||s instanceof Document?e.safeDocument().body.style.cursor="none":s.style.cursor="none")}}this._particle&&(this._particle.position.x=this._lastPosition.x,this._particle.position.y=this._lastPosition.y)}}isEnabled(t,s){const n=this.container.actualOptions,i=t.mouse,r=(s?.interactivity??n.interactivity)?.events;return!!r&&(i.clicking&&i.inside&&!!i.position&&e.isInArray(a,r.onClick.mode)||i.inside&&!!i.position&&e.isInArray(a,r.onHover.mode))}loadModeOptions(t,...s){t.particle??=new n;for(const e of s)t.particle.load(e?.particle)}reset(){}}async function r(t){t.checkVersion("4.0.5"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("externalParticle",t=>Promise.resolve(new i(t)))})}const l=globalThis;l.__tsParticlesInternals=l.__tsParticlesInternals??{},l.loadExternalParticleInteraction=r,t.loadExternalParticleInteraction=r}),Object.assign(globalThis.window||globalThis,{loadExternalParticleInteraction:(globalThis.__tsParticlesInternals.interactions.externalParticle||{}).loadExternalParticleInteraction}),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.externalParticle=t.__tsParticlesInternals.interactions.externalParticle||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine)}(this,function(t,s,e){"use strict";class n{options;pauseOnStop;replaceCursor;stopDelay;constructor(){this.replaceCursor=!1,this.pauseOnStop=!1,this.stopDelay=0}load(t){e.isNull(t)||(void 0!==t.options&&(this.options=e.deepExtend({},t.options)),void 0!==t.replaceCursor&&(this.replaceCursor=t.replaceCursor),void 0!==t.pauseOnStop&&(this.pauseOnStop=t.pauseOnStop),void 0!==t.stopDelay&&(this.stopDelay=t.stopDelay))}}const a="particle";class i extends s.ExternalInteractorBase{maxDistance=0;#t;#s;#e;constructor(t){super(t)}clear(){}init(){}interact(t){const s=this.container,n=s.actualOptions;if(!s.retina.reduceFactor)return;const a=t.mouse.position,i=n.interactivity?.modes.particle;if(!i)return;const r=i.pauseOnStop&&(t.mouse.position===this.#s||t.mouse.position?.x===this.#s?.x&&t.mouse.position?.y===this.#s?.y),l=i.stopDelay;if(this.#s=a?{...a}:void 0,this.#s)if(r){if(this.#t)return;this.#t=setTimeout(()=>{if(this.#e){if(i.replaceCursor){const s=t.element;s&&(s instanceof Window||s instanceof Document?e.safeDocument().body.style.cursor="":s.style.cursor="")}this.#e.destroy(!0),this.#e=void 0}},l)}else{if(this.#t&&(clearTimeout(this.#t),this.#t=void 0),!this.#e){const n=e.deepExtend(i.options,{move:{enable:!1}});if(this.#e=s.particles.addParticle(this.#s,n),i.replaceCursor){const s=t.element;s&&(s instanceof Window||s instanceof Document?e.safeDocument().body.style.cursor="none":s.style.cursor="none")}}this.#e&&(this.#e.position.x=this.#s.x,this.#e.position.y=this.#s.y)}}isEnabled(t,s){const n=this.container.actualOptions,i=t.mouse,r=(s?.interactivity??n.interactivity)?.events;return!!r&&(i.clicking&&i.inside&&!!i.position&&e.isInArray(a,r.onClick.mode)||i.inside&&!!i.position&&e.isInArray(a,r.onHover.mode))}loadModeOptions(t,...s){t.particle??=new n;for(const e of s)t.particle.load(e?.particle)}reset(){}}async function r(t){t.checkVersion("4.1.0"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("externalParticle",t=>Promise.resolve(new i(t)))})}const l=globalThis;l.__tsParticlesInternals=l.__tsParticlesInternals??{},l.loadExternalParticleInteraction=r,t.loadExternalParticleInteraction=r}),Object.assign(globalThis.window||globalThis,{loadExternalParticleInteraction:(globalThis.__tsParticlesInternals.interactions.externalParticle||{}).loadExternalParticleInteraction}),delete(globalThis.window||globalThis).tsparticlesInternalExports;
@@ -2,10 +2,8 @@ import { ExternalInteractorBase, type IInteractivityData, type IModes, type Inte
2
2
  import { type RecursivePartial } from "@tsparticles/engine";
3
3
  import type { IParticleMode, InteractivityParticleContainer, ParticleMode } from "./Types.js";
4
4
  export declare class InteractivityParticleMaker extends ExternalInteractorBase<InteractivityParticleContainer> {
5
+ #private;
5
6
  readonly maxDistance = 0;
6
- private _clearTimeout?;
7
- private _lastPosition?;
8
- private _particle?;
9
7
  constructor(container: InteractivityParticleContainer);
10
8
  clear(): void;
11
9
  init(): void;