@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.
- package/browser/InteractivityParticleMaker.js +22 -22
- package/browser/index.js +1 -1
- package/browser/index.lazy.js +1 -1
- package/cjs/InteractivityParticleMaker.js +22 -22
- package/cjs/index.js +1 -1
- package/cjs/index.lazy.js +1 -1
- package/esm/InteractivityParticleMaker.js +22 -22
- package/esm/index.js +1 -1
- package/esm/index.lazy.js +1 -1
- package/package.json +3 -3
- package/report.html +1 -1
- package/tsparticles.interaction.external.particle.js +24 -24
- package/tsparticles.interaction.external.particle.min.js +1 -1
- package/types/InteractivityParticleMaker.d.ts +1 -3
|
@@ -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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
28
|
-
(interactivityData.mouse.position?.x === this
|
|
29
|
-
interactivityData.mouse.position?.y === this
|
|
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
|
|
31
|
+
this.#lastPosition = { ...mousePos };
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
|
|
34
|
+
this.#lastPosition = undefined;
|
|
35
35
|
}
|
|
36
|
-
if (!this
|
|
36
|
+
if (!this.#lastPosition) {
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
if (mouseStopped) {
|
|
40
|
-
if (this
|
|
40
|
+
if (this.#clearTimeout) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
this
|
|
44
|
-
if (!this
|
|
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.
|
|
59
|
-
|
|
58
|
+
this.#particle.destroy(true);
|
|
59
|
+
this.#particle = undefined;
|
|
60
60
|
}, clearDelay);
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
|
-
if (this
|
|
64
|
-
clearTimeout(this
|
|
65
|
-
|
|
63
|
+
if (this.#clearTimeout) {
|
|
64
|
+
clearTimeout(this.#clearTimeout);
|
|
65
|
+
this.#clearTimeout = undefined;
|
|
66
66
|
}
|
|
67
|
-
if (!this
|
|
67
|
+
if (!this.#particle) {
|
|
68
68
|
const particleOptions = deepExtend(interactivityParticleOptions.options, {
|
|
69
69
|
move: {
|
|
70
70
|
enable: false,
|
|
71
71
|
},
|
|
72
72
|
});
|
|
73
|
-
this
|
|
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
|
|
86
|
+
if (!this.#particle) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
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
|
|
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/browser/index.lazy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export async function loadExternalParticleInteraction(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);
|
|
@@ -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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
28
|
-
(interactivityData.mouse.position?.x === this
|
|
29
|
-
interactivityData.mouse.position?.y === this
|
|
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
|
|
31
|
+
this.#lastPosition = { ...mousePos };
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
|
|
34
|
+
this.#lastPosition = undefined;
|
|
35
35
|
}
|
|
36
|
-
if (!this
|
|
36
|
+
if (!this.#lastPosition) {
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
if (mouseStopped) {
|
|
40
|
-
if (this
|
|
40
|
+
if (this.#clearTimeout) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
this
|
|
44
|
-
if (!this
|
|
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.
|
|
59
|
-
|
|
58
|
+
this.#particle.destroy(true);
|
|
59
|
+
this.#particle = undefined;
|
|
60
60
|
}, clearDelay);
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
|
-
if (this
|
|
64
|
-
clearTimeout(this
|
|
65
|
-
|
|
63
|
+
if (this.#clearTimeout) {
|
|
64
|
+
clearTimeout(this.#clearTimeout);
|
|
65
|
+
this.#clearTimeout = undefined;
|
|
66
66
|
}
|
|
67
|
-
if (!this
|
|
67
|
+
if (!this.#particle) {
|
|
68
68
|
const particleOptions = deepExtend(interactivityParticleOptions.options, {
|
|
69
69
|
move: {
|
|
70
70
|
enable: false,
|
|
71
71
|
},
|
|
72
72
|
});
|
|
73
|
-
this
|
|
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
|
|
86
|
+
if (!this.#particle) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
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
|
|
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
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
28
|
-
(interactivityData.mouse.position?.x === this
|
|
29
|
-
interactivityData.mouse.position?.y === this
|
|
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
|
|
31
|
+
this.#lastPosition = { ...mousePos };
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
|
|
34
|
+
this.#lastPosition = undefined;
|
|
35
35
|
}
|
|
36
|
-
if (!this
|
|
36
|
+
if (!this.#lastPosition) {
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
if (mouseStopped) {
|
|
40
|
-
if (this
|
|
40
|
+
if (this.#clearTimeout) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
this
|
|
44
|
-
if (!this
|
|
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.
|
|
59
|
-
|
|
58
|
+
this.#particle.destroy(true);
|
|
59
|
+
this.#particle = undefined;
|
|
60
60
|
}, clearDelay);
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
|
-
if (this
|
|
64
|
-
clearTimeout(this
|
|
65
|
-
|
|
63
|
+
if (this.#clearTimeout) {
|
|
64
|
+
clearTimeout(this.#clearTimeout);
|
|
65
|
+
this.#clearTimeout = undefined;
|
|
66
66
|
}
|
|
67
|
-
if (!this
|
|
67
|
+
if (!this.#particle) {
|
|
68
68
|
const particleOptions = deepExtend(interactivityParticleOptions.options, {
|
|
69
69
|
move: {
|
|
70
70
|
enable: false,
|
|
71
71
|
},
|
|
72
72
|
});
|
|
73
|
-
this
|
|
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
|
|
86
|
+
if (!this.#particle) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
101
|
-
"@tsparticles/plugin-interactivity": "4.0
|
|
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":"
|
|
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
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
|
62
|
-
(interactivityData.mouse.position?.x === this
|
|
63
|
-
interactivityData.mouse.position?.y === this
|
|
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
|
|
65
|
+
this.#lastPosition = { ...mousePos };
|
|
66
66
|
}
|
|
67
67
|
else {
|
|
68
|
-
|
|
68
|
+
this.#lastPosition = undefined;
|
|
69
69
|
}
|
|
70
|
-
if (!this
|
|
70
|
+
if (!this.#lastPosition) {
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
73
|
if (mouseStopped) {
|
|
74
|
-
if (this
|
|
74
|
+
if (this.#clearTimeout) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
-
this
|
|
78
|
-
if (!this
|
|
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.
|
|
93
|
-
|
|
92
|
+
this.#particle.destroy(true);
|
|
93
|
+
this.#particle = undefined;
|
|
94
94
|
}, clearDelay);
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
|
-
if (this
|
|
98
|
-
clearTimeout(this
|
|
99
|
-
|
|
97
|
+
if (this.#clearTimeout) {
|
|
98
|
+
clearTimeout(this.#clearTimeout);
|
|
99
|
+
this.#clearTimeout = undefined;
|
|
100
100
|
}
|
|
101
|
-
if (!this
|
|
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
|
|
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
|
|
120
|
+
if (!this.#particle) {
|
|
121
121
|
return;
|
|
122
122
|
}
|
|
123
|
-
this.
|
|
124
|
-
this.
|
|
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
|
|
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;
|
|
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;
|