@tsparticles/interaction-external-grab 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.
@@ -4,15 +4,15 @@ import { Grab } from "./Options/Classes/Grab.js";
4
4
  import { drawGrab } from "./Utils.js";
5
5
  const grabMode = "grab", minDistance = 0, minOpacity = 0;
6
6
  export class Grabber extends ExternalInteractorBase {
7
- _maxDistance;
8
- _pluginManager;
7
+ #maxDistance;
8
+ #pluginManager;
9
9
  constructor(pluginManager, container) {
10
10
  super(container);
11
- this._pluginManager = pluginManager;
12
- this._maxDistance = 0;
11
+ this.#pluginManager = pluginManager;
12
+ this.#maxDistance = 0;
13
13
  }
14
14
  get maxDistance() {
15
- return this._maxDistance;
15
+ return this.#maxDistance;
16
16
  }
17
17
  clear() {
18
18
  }
@@ -21,7 +21,7 @@ export class Grabber extends ExternalInteractorBase {
21
21
  if (!grab) {
22
22
  return;
23
23
  }
24
- this._maxDistance = grab.distance;
24
+ this.#maxDistance = grab.distance;
25
25
  container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;
26
26
  }
27
27
  interact(interactivityData) {
@@ -52,7 +52,7 @@ export class Grabber extends ExternalInteractorBase {
52
52
  const optColor = grabLineOptions.color ?? particle.options.links?.color;
53
53
  if (!container.particles.grabLineColor && optColor) {
54
54
  const linksOptions = interactivity.modes.grab.links;
55
- container.particles.grabLineColor = getLinkRandomColor(this._pluginManager, optColor, linksOptions.blink, linksOptions.consent);
55
+ container.particles.grabLineColor = getLinkRandomColor(this.#pluginManager, optColor, linksOptions.blink, linksOptions.consent);
56
56
  }
57
57
  const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);
58
58
  if (!colorLine) {
package/browser/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Grabber } from "./Grabber.js";
3
3
  export async function loadExternalGrabInteraction(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?.("externalGrab", container => {
@@ -1,5 +1,5 @@
1
1
  export async function loadExternalGrabInteraction(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/Grabber.js CHANGED
@@ -4,15 +4,15 @@ import { Grab } from "./Options/Classes/Grab.js";
4
4
  import { drawGrab } from "./Utils.js";
5
5
  const grabMode = "grab", minDistance = 0, minOpacity = 0;
6
6
  export class Grabber extends ExternalInteractorBase {
7
- _maxDistance;
8
- _pluginManager;
7
+ #maxDistance;
8
+ #pluginManager;
9
9
  constructor(pluginManager, container) {
10
10
  super(container);
11
- this._pluginManager = pluginManager;
12
- this._maxDistance = 0;
11
+ this.#pluginManager = pluginManager;
12
+ this.#maxDistance = 0;
13
13
  }
14
14
  get maxDistance() {
15
- return this._maxDistance;
15
+ return this.#maxDistance;
16
16
  }
17
17
  clear() {
18
18
  }
@@ -21,7 +21,7 @@ export class Grabber extends ExternalInteractorBase {
21
21
  if (!grab) {
22
22
  return;
23
23
  }
24
- this._maxDistance = grab.distance;
24
+ this.#maxDistance = grab.distance;
25
25
  container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;
26
26
  }
27
27
  interact(interactivityData) {
@@ -52,7 +52,7 @@ export class Grabber extends ExternalInteractorBase {
52
52
  const optColor = grabLineOptions.color ?? particle.options.links?.color;
53
53
  if (!container.particles.grabLineColor && optColor) {
54
54
  const linksOptions = interactivity.modes.grab.links;
55
- container.particles.grabLineColor = getLinkRandomColor(this._pluginManager, optColor, linksOptions.blink, linksOptions.consent);
55
+ container.particles.grabLineColor = getLinkRandomColor(this.#pluginManager, optColor, linksOptions.blink, linksOptions.consent);
56
56
  }
57
57
  const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);
58
58
  if (!colorLine) {
package/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Grabber } from "./Grabber.js";
3
3
  export async function loadExternalGrabInteraction(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?.("externalGrab", container => {
package/cjs/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadExternalGrabInteraction(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/Grabber.js CHANGED
@@ -4,15 +4,15 @@ import { Grab } from "./Options/Classes/Grab.js";
4
4
  import { drawGrab } from "./Utils.js";
5
5
  const grabMode = "grab", minDistance = 0, minOpacity = 0;
6
6
  export class Grabber extends ExternalInteractorBase {
7
- _maxDistance;
8
- _pluginManager;
7
+ #maxDistance;
8
+ #pluginManager;
9
9
  constructor(pluginManager, container) {
10
10
  super(container);
11
- this._pluginManager = pluginManager;
12
- this._maxDistance = 0;
11
+ this.#pluginManager = pluginManager;
12
+ this.#maxDistance = 0;
13
13
  }
14
14
  get maxDistance() {
15
- return this._maxDistance;
15
+ return this.#maxDistance;
16
16
  }
17
17
  clear() {
18
18
  }
@@ -21,7 +21,7 @@ export class Grabber extends ExternalInteractorBase {
21
21
  if (!grab) {
22
22
  return;
23
23
  }
24
- this._maxDistance = grab.distance;
24
+ this.#maxDistance = grab.distance;
25
25
  container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;
26
26
  }
27
27
  interact(interactivityData) {
@@ -52,7 +52,7 @@ export class Grabber extends ExternalInteractorBase {
52
52
  const optColor = grabLineOptions.color ?? particle.options.links?.color;
53
53
  if (!container.particles.grabLineColor && optColor) {
54
54
  const linksOptions = interactivity.modes.grab.links;
55
- container.particles.grabLineColor = getLinkRandomColor(this._pluginManager, optColor, linksOptions.blink, linksOptions.consent);
55
+ container.particles.grabLineColor = getLinkRandomColor(this.#pluginManager, optColor, linksOptions.blink, linksOptions.consent);
56
56
  }
57
57
  const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);
58
58
  if (!colorLine) {
package/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ensureInteractivityPluginLoaded } from "@tsparticles/plugin-interactivity";
2
2
  import { Grabber } from "./Grabber.js";
3
3
  export async function loadExternalGrabInteraction(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?.("externalGrab", container => {
package/esm/index.lazy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadExternalGrabInteraction(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-external-grab",
3
- "version": "4.0.4",
3
+ "version": "4.1.0",
4
4
  "description": "tsParticles grab external interaction",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -97,10 +97,10 @@
97
97
  },
98
98
  "type": "module",
99
99
  "peerDependencies": {
100
- "@tsparticles/engine": "4.0.4",
101
- "@tsparticles/plugin-interactivity": "4.0.4"
100
+ "@tsparticles/engine": "4.1.0",
101
+ "@tsparticles/plugin-interactivity": "4.1.0"
102
102
  },
103
103
  "dependencies": {
104
- "@tsparticles/canvas-utils": "4.0.4"
104
+ "@tsparticles/canvas-utils": "4.1.0"
105
105
  }
106
106
  }
@@ -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.4 */
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'), require('@tsparticles/canvas-utils')) :
5
5
  typeof define === 'function' && define.amd ? define(['exports', '@tsparticles/plugin-interactivity', '@tsparticles/engine', '@tsparticles/canvas-utils'], factory) :
@@ -69,15 +69,15 @@
69
69
 
70
70
  const grabMode = "grab", minDistance = 0, minOpacity = 0;
71
71
  class Grabber extends pluginInteractivity.ExternalInteractorBase {
72
- _maxDistance;
73
- _pluginManager;
72
+ #maxDistance;
73
+ #pluginManager;
74
74
  constructor(pluginManager, container) {
75
75
  super(container);
76
- this._pluginManager = pluginManager;
77
- this._maxDistance = 0;
76
+ this.#pluginManager = pluginManager;
77
+ this.#maxDistance = 0;
78
78
  }
79
79
  get maxDistance() {
80
- return this._maxDistance;
80
+ return this.#maxDistance;
81
81
  }
82
82
  clear() {
83
83
  }
@@ -86,7 +86,7 @@
86
86
  if (!grab) {
87
87
  return;
88
88
  }
89
- this._maxDistance = grab.distance;
89
+ this.#maxDistance = grab.distance;
90
90
  container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;
91
91
  }
92
92
  interact(interactivityData) {
@@ -117,7 +117,7 @@
117
117
  const optColor = grabLineOptions.color ?? particle.options.links?.color;
118
118
  if (!container.particles.grabLineColor && optColor) {
119
119
  const linksOptions = interactivity.modes.grab.links;
120
- container.particles.grabLineColor = engine.getLinkRandomColor(this._pluginManager, optColor, linksOptions.blink, linksOptions.consent);
120
+ container.particles.grabLineColor = engine.getLinkRandomColor(this.#pluginManager, optColor, linksOptions.blink, linksOptions.consent);
121
121
  }
122
122
  const colorLine = engine.getLinkColor(particle, undefined, container.particles.grabLineColor);
123
123
  if (!colorLine) {
@@ -141,7 +141,7 @@
141
141
  }
142
142
 
143
143
  async function loadExternalGrabInteraction(engine) {
144
- engine.checkVersion("4.0.4");
144
+ engine.checkVersion("4.1.0");
145
145
  await engine.pluginManager.register((e) => {
146
146
  pluginInteractivity.ensureInteractivityPluginLoaded(e);
147
147
  e.pluginManager.addInteractor?.("externalGrab", 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"),require("@tsparticles/canvas-utils")):"function"==typeof define&&define.amd?define(["exports","@tsparticles/plugin-interactivity","@tsparticles/engine","@tsparticles/canvas-utils"],s):s(((t="undefined"!=typeof globalThis?globalThis:t||self).__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.interactions.externalGrab=t.__tsParticlesInternals.interactions.externalGrab||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine,t.__tsParticlesInternals.canvas.utils)}(this,function(t,s,e,n){"use strict";class a{blink;color;consent;opacity;constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(t){e.isNull(t)||(void 0!==t.blink&&(this.blink=t.blink),void 0!==t.color&&(this.color=e.OptionsColor.create(this.color,t.color)),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.opacity&&(this.opacity=t.opacity))}}class r{distance;links;constructor(){this.distance=100,this.links=new a}load(t){e.isNull(t)||(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links))}}function i(t,s,a,r,i){t.canvas.render.draw(l=>{const c=s.getPosition();!function(t,s,a,r,i,l,c=!1){n.drawLine(t,a,r),t.strokeStyle=e.getStyleFromRgb(i,c,l),t.lineWidth=s,t.stroke()}(l,s.retina.linksWidth??0,c,i,a,r,t.hdr)})}class l extends s.ExternalInteractorBase{_maxDistance;_pluginManager;constructor(t,s){super(s),this._pluginManager=t,this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){const t=this.container,s=t.actualOptions.interactivity?.modes.grab;s&&(this._maxDistance=s.distance,t.retina.grabModeDistance=s.distance*t.retina.pixelRatio)}interact(t){const n=this.container,a=n.actualOptions.interactivity;if(!a?.modes.grab||!a.events.onHover.enable||t.status!==s.mouseMoveEvent)return;const r=t.mouse.position;if(!r)return;const l=n.retina.grabModeDistance;if(!l||l<0)return;const c=n.particles.grid.queryCircle(r,l,s=>this.isEnabled(t,s));for(const t of c){const s=t.getPosition(),c=e.getDistance(s,r);if(c>l)continue;const o=a.modes.grab.links,_=o.opacity,p=_-c*_/l;if(p<=0)continue;const I=o.color??t.options.links?.color;if(!n.particles.grabLineColor&&I){const t=a.modes.grab.links;n.particles.grabLineColor=e.getLinkRandomColor(this._pluginManager,I,t.blink,t.consent)}const u=e.getLinkColor(t,void 0,n.particles.grabLineColor);u&&i(n,t,u,p,r)}}isEnabled(t,s){const n=this.container,a=t.mouse,r=(s?.interactivity??n.actualOptions.interactivity)?.events;return!!r?.onHover.enable&&!!a.position&&e.isInArray("grab",r.onHover.mode)}loadModeOptions(t,...s){t.grab??=new r;for(const e of s)t.grab.load(e?.grab)}reset(){}}async function c(t){t.checkVersion("4.0.4"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("externalGrab",s=>Promise.resolve(new l(t.pluginManager,s)))})}const o=globalThis;o.__tsParticlesInternals=o.__tsParticlesInternals??{},o.loadExternalGrabInteraction=c,t.Grab=r,t.GrabLinks=a,t.loadExternalGrabInteraction=c}),Object.assign(globalThis.window||globalThis,{loadExternalGrabInteraction:(globalThis.__tsParticlesInternals.interactions.externalGrab||{}).loadExternalGrabInteraction}),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"),require("@tsparticles/canvas-utils")):"function"==typeof define&&define.amd?define(["exports","@tsparticles/plugin-interactivity","@tsparticles/engine","@tsparticles/canvas-utils"],s):s(((t="undefined"!=typeof globalThis?globalThis:t||self).__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.interactions.externalGrab=t.__tsParticlesInternals.interactions.externalGrab||{}),t.__tsParticlesInternals.plugins.interactivity,t.__tsParticlesInternals.engine,t.__tsParticlesInternals.canvas.utils)}(this,function(t,s,e,n){"use strict";class a{blink;color;consent;opacity;constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(t){e.isNull(t)||(void 0!==t.blink&&(this.blink=t.blink),void 0!==t.color&&(this.color=e.OptionsColor.create(this.color,t.color)),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.opacity&&(this.opacity=t.opacity))}}class r{distance;links;constructor(){this.distance=100,this.links=new a}load(t){e.isNull(t)||(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links))}}function i(t,s,a,r,i){t.canvas.render.draw(l=>{const c=s.getPosition();!function(t,s,a,r,i,l,c=!1){n.drawLine(t,a,r),t.strokeStyle=e.getStyleFromRgb(i,c,l),t.lineWidth=s,t.stroke()}(l,s.retina.linksWidth??0,c,i,a,r,t.hdr)})}class l extends s.ExternalInteractorBase{#t;#s;constructor(t,s){super(s),this.#s=t,this.#t=0}get maxDistance(){return this.#t}clear(){}init(){const t=this.container,s=t.actualOptions.interactivity?.modes.grab;s&&(this.#t=s.distance,t.retina.grabModeDistance=s.distance*t.retina.pixelRatio)}interact(t){const n=this.container,a=n.actualOptions.interactivity;if(!a?.modes.grab||!a.events.onHover.enable||t.status!==s.mouseMoveEvent)return;const r=t.mouse.position;if(!r)return;const l=n.retina.grabModeDistance;if(!l||l<0)return;const c=n.particles.grid.queryCircle(r,l,s=>this.isEnabled(t,s));for(const t of c){const s=t.getPosition(),c=e.getDistance(s,r);if(c>l)continue;const o=a.modes.grab.links,_=o.opacity,p=_-c*_/l;if(p<=0)continue;const I=o.color??t.options.links?.color;if(!n.particles.grabLineColor&&I){const t=a.modes.grab.links;n.particles.grabLineColor=e.getLinkRandomColor(this.#s,I,t.blink,t.consent)}const u=e.getLinkColor(t,void 0,n.particles.grabLineColor);u&&i(n,t,u,p,r)}}isEnabled(t,s){const n=this.container,a=t.mouse,r=(s?.interactivity??n.actualOptions.interactivity)?.events;return!!r?.onHover.enable&&!!a.position&&e.isInArray("grab",r.onHover.mode)}loadModeOptions(t,...s){t.grab??=new r;for(const e of s)t.grab.load(e?.grab)}reset(){}}async function c(t){t.checkVersion("4.1.0"),await t.pluginManager.register(t=>{s.ensureInteractivityPluginLoaded(t),t.pluginManager.addInteractor?.("externalGrab",s=>Promise.resolve(new l(t.pluginManager,s)))})}const o=globalThis;o.__tsParticlesInternals=o.__tsParticlesInternals??{},o.loadExternalGrabInteraction=c,t.Grab=r,t.GrabLinks=a,t.loadExternalGrabInteraction=c}),Object.assign(globalThis.window||globalThis,{loadExternalGrabInteraction:(globalThis.__tsParticlesInternals.interactions.externalGrab||{}).loadExternalGrabInteraction}),delete(globalThis.window||globalThis).tsparticlesInternalExports;
@@ -2,8 +2,7 @@ import { ExternalInteractorBase, type IInteractivityData, type IModes, type Inte
2
2
  import type { GrabContainer, GrabMode, IGrabMode } from "./Types.js";
3
3
  import { type PluginManager, type RecursivePartial } from "@tsparticles/engine";
4
4
  export declare class Grabber extends ExternalInteractorBase<GrabContainer> {
5
- private _maxDistance;
6
- private readonly _pluginManager;
5
+ #private;
7
6
  constructor(pluginManager: PluginManager, container: GrabContainer);
8
7
  get maxDistance(): number;
9
8
  clear(): void;