@tsparticles/interaction-external-grab 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.
- package/browser/Grabber.js +7 -7
- package/browser/index.js +1 -1
- package/browser/index.lazy.js +1 -1
- package/cjs/Grabber.js +7 -7
- package/cjs/index.js +1 -1
- package/cjs/index.lazy.js +1 -1
- package/esm/Grabber.js +7 -7
- package/esm/index.js +1 -1
- package/esm/index.lazy.js +1 -1
- package/package.json +4 -4
- package/tsparticles.interaction.external.grab.js +9 -9
- package/tsparticles.interaction.external.grab.min.js +1 -1
- package/types/Grabber.d.ts +1 -2
package/browser/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
|
-
|
|
8
|
-
|
|
7
|
+
#maxDistance;
|
|
8
|
+
#pluginManager;
|
|
9
9
|
constructor(pluginManager, container) {
|
|
10
10
|
super(container);
|
|
11
|
-
this
|
|
12
|
-
this
|
|
11
|
+
this.#pluginManager = pluginManager;
|
|
12
|
+
this.#maxDistance = 0;
|
|
13
13
|
}
|
|
14
14
|
get maxDistance() {
|
|
15
|
-
return this
|
|
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
|
|
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
|
|
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
|
+
engine.checkVersion("4.1.0");
|
|
5
5
|
await engine.pluginManager.register((e) => {
|
|
6
6
|
ensureInteractivityPluginLoaded(e);
|
|
7
7
|
e.pluginManager.addInteractor?.("externalGrab", container => {
|
package/browser/index.lazy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export async function loadExternalGrabInteraction(engine) {
|
|
2
|
-
engine.checkVersion("4.0
|
|
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
|
-
|
|
8
|
-
|
|
7
|
+
#maxDistance;
|
|
8
|
+
#pluginManager;
|
|
9
9
|
constructor(pluginManager, container) {
|
|
10
10
|
super(container);
|
|
11
|
-
this
|
|
12
|
-
this
|
|
11
|
+
this.#pluginManager = pluginManager;
|
|
12
|
+
this.#maxDistance = 0;
|
|
13
13
|
}
|
|
14
14
|
get maxDistance() {
|
|
15
|
-
return this
|
|
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
|
|
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
|
|
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
|
+
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
|
|
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
|
-
|
|
8
|
-
|
|
7
|
+
#maxDistance;
|
|
8
|
+
#pluginManager;
|
|
9
9
|
constructor(pluginManager, container) {
|
|
10
10
|
super(container);
|
|
11
|
-
this
|
|
12
|
-
this
|
|
11
|
+
this.#pluginManager = pluginManager;
|
|
12
|
+
this.#maxDistance = 0;
|
|
13
13
|
}
|
|
14
14
|
get maxDistance() {
|
|
15
|
-
return this
|
|
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
|
|
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
|
|
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
|
+
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
|
|
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
|
|
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
|
|
101
|
-
"@tsparticles/plugin-interactivity": "4.0
|
|
100
|
+
"@tsparticles/engine": "4.1.0",
|
|
101
|
+
"@tsparticles/plugin-interactivity": "4.1.0"
|
|
102
102
|
},
|
|
103
103
|
"dependencies": {
|
|
104
|
-
"@tsparticles/canvas-utils": "4.0
|
|
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
|
|
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
|
-
|
|
73
|
-
|
|
72
|
+
#maxDistance;
|
|
73
|
+
#pluginManager;
|
|
74
74
|
constructor(pluginManager, container) {
|
|
75
75
|
super(container);
|
|
76
|
-
this
|
|
77
|
-
this
|
|
76
|
+
this.#pluginManager = pluginManager;
|
|
77
|
+
this.#maxDistance = 0;
|
|
78
78
|
}
|
|
79
79
|
get maxDistance() {
|
|
80
|
-
return this
|
|
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
|
|
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
|
|
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
|
|
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{
|
|
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;
|
package/types/Grabber.d.ts
CHANGED
|
@@ -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
|
|
6
|
-
private readonly _pluginManager;
|
|
5
|
+
#private;
|
|
7
6
|
constructor(pluginManager: PluginManager, container: GrabContainer);
|
|
8
7
|
get maxDistance(): number;
|
|
9
8
|
clear(): void;
|