@tsparticles/interaction-external-particle 4.0.0-alpha.2 → 4.0.0-alpha.4
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/623.min.js +2 -0
- package/623.min.js.LICENSE.txt +1 -0
- package/browser/InteractivityParticleMaker.js +17 -15
- package/browser/Options/Classes/InteractivityParticleOptions.js +25 -1
- package/browser/index.js +5 -3
- package/cjs/InteractivityParticleMaker.js +17 -15
- package/cjs/Options/Classes/InteractivityParticleOptions.js +25 -1
- package/cjs/Options/Interfaces/IInteractivityParticleOptions.js +1 -0
- package/cjs/index.js +5 -3
- package/dist_browser_InteractivityParticleMaker_js.js +7 -7
- package/esm/InteractivityParticleMaker.js +17 -15
- package/esm/Options/Classes/InteractivityParticleOptions.js +25 -1
- package/esm/Options/Classes/InteractivityParticleOptionsData.js +1 -0
- package/esm/Options/Interfaces/IInteractivityParticleOptions.js +1 -0
- package/esm/index.js +5 -3
- package/package.json +3 -2
- package/report.html +1 -1
- package/tsparticles.interaction.external.particle.js +48 -20
- package/tsparticles.interaction.external.particle.min.js +1 -1
- package/tsparticles.interaction.external.particle.min.js.LICENSE.txt +1 -1
- package/types/InteractivityParticleMaker.d.ts +4 -3
- package/types/Options/Classes/InteractivityParticleOptions.d.ts +10 -7
- package/types/Options/Classes/InteractivityParticleOptionsData.d.ts +7 -0
- package/types/Options/Interfaces/{IInteractivityParticle.d.ts → IInteractivityParticleOptions.d.ts} +1 -1
- package/types/Types.d.ts +7 -7
- package/umd/InteractivityParticleMaker.js +18 -16
- package/umd/Options/Classes/InteractivityParticleOptions.js +28 -1
- package/umd/Options/Interfaces/IInteractivityParticleOptions.js +12 -0
- package/umd/index.js +6 -4
- package/302.min.js +0 -2
- package/302.min.js.LICENSE.txt +0 -1
- package/browser/Options/Classes/InteractivityParticle.js +0 -25
- package/cjs/Options/Classes/InteractivityParticle.js +0 -25
- package/esm/Options/Classes/InteractivityParticle.js +0 -25
- package/types/Options/Classes/InteractivityParticle.d.ts +0 -10
- package/umd/Options/Classes/InteractivityParticle.js +0 -39
- /package/browser/Options/{Interfaces/IInteractivityParticle.js → Classes/InteractivityParticleOptionsData.js} +0 -0
- /package/{cjs/Options/Interfaces/IInteractivityParticle.js → browser/Options/Interfaces/IInteractivityParticleOptions.js} +0 -0
- /package/{esm/Options/Interfaces/IInteractivityParticle.js → cjs/Options/Classes/InteractivityParticleOptionsData.js} +0 -0
- /package/umd/Options/{Interfaces/IInteractivityParticle.js → Classes/InteractivityParticleOptionsData.js} +0 -0
package/623.min.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see 623.min.js.LICENSE.txt */
|
|
2
|
+
(this.webpackChunk_tsparticles_interaction_external_particle=this.webpackChunk_tsparticles_interaction_external_particle||[]).push([[623],{623(t,i,e){e.d(i,{InteractivityParticleMaker:()=>a});var s=e(702),o=e(303);class n{constructor(){this.replaceCursor=!1,this.pauseOnStop=!1,this.stopDelay=0}load(t){(0,o.isNull)(t)||(void 0!==t.options&&(this.options=(0,o.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 r="particle";class a extends s.ExternalInteractorBase{constructor(t){super(t)}clear(){}init(){}interact(t){const i=this.container,e=i.actualOptions;if(!i.retina.reduceFactor)return;const s=t.mouse.position,n=e.interactivity?.modes.particle;if(!n)return;const r=n.pauseOnStop&&(t.mouse.position===this._lastPosition||t.mouse.position?.x===this._lastPosition?.x&&t.mouse.position?.y===this._lastPosition?.y),a=n.stopDelay;if(s?this._lastPosition={...s}:delete this._lastPosition,this._lastPosition)if(r){if(this._clearTimeout)return;this._clearTimeout=setTimeout((()=>{if(this._particle){if(n.replaceCursor){const i=t.element;i&&(i instanceof Window?(0,o.safeDocument)().body.style.cursor="":i.style.cursor="")}this.container.particles.remove(this._particle,void 0,!0),delete this._particle}}),a)}else{if(this._clearTimeout&&(clearTimeout(this._clearTimeout),delete this._clearTimeout),!this._particle){const e=(0,o.deepExtend)(n.options,{move:{enable:!1}});if(this._particle=i.particles.addParticle(this._lastPosition,e),n.replaceCursor){const i=t.element;i&&(i instanceof Window?(0,o.safeDocument)().body.style.cursor="none":i.style.cursor="none")}}this._particle&&(this._particle.position.x=this._lastPosition.x,this._particle.position.y=this._lastPosition.y)}}isEnabled(t,i){const e=this.container.actualOptions,s=t.mouse,n=(i?.interactivity??e.interactivity)?.events;return!!n&&(s.clicking&&s.inside&&!!s.position&&(0,o.isInArray)(r,n.onClick.mode)||s.inside&&!!s.position&&(0,o.isInArray)(r,n.onHover.mode))}loadModeOptions(t,...i){t.particle??=new n;for(const e of i)t.particle.load(e?.particle)}reset(){}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tsParticles Particle External Interaction v4.0.0-alpha.4 by Matteo Bruni */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ExternalInteractorBase,
|
|
2
|
-
import {
|
|
1
|
+
import { ExternalInteractorBase, } from "@tsparticles/plugin-interactivity";
|
|
2
|
+
import { deepExtend, isInArray, safeDocument, } from "@tsparticles/engine";
|
|
3
|
+
import { InteractivityParticleOptions } from "./Options/Classes/InteractivityParticleOptions.js";
|
|
3
4
|
const particleMode = "particle";
|
|
4
5
|
export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
5
6
|
constructor(container) {
|
|
@@ -9,19 +10,19 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
9
10
|
}
|
|
10
11
|
init() {
|
|
11
12
|
}
|
|
12
|
-
interact() {
|
|
13
|
-
const container = this.container,
|
|
13
|
+
interact(interactivityData) {
|
|
14
|
+
const container = this.container, options = container.actualOptions;
|
|
14
15
|
if (!container.retina.reduceFactor) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const mousePos =
|
|
18
|
+
const mousePos = interactivityData.mouse.position, interactivityParticleOptions = options.interactivity?.modes.particle;
|
|
18
19
|
if (!interactivityParticleOptions) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
22
|
const mouseStopped = interactivityParticleOptions.pauseOnStop &&
|
|
22
|
-
(
|
|
23
|
-
(
|
|
24
|
-
|
|
23
|
+
(interactivityData.mouse.position === this._lastPosition ||
|
|
24
|
+
(interactivityData.mouse.position?.x === this._lastPosition?.x &&
|
|
25
|
+
interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
|
|
25
26
|
if (mousePos) {
|
|
26
27
|
this._lastPosition = { ...mousePos };
|
|
27
28
|
}
|
|
@@ -40,7 +41,7 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
43
|
if (interactivityParticleOptions.replaceCursor) {
|
|
43
|
-
const element =
|
|
44
|
+
const element = interactivityData.element;
|
|
44
45
|
if (element) {
|
|
45
46
|
if (element instanceof Window) {
|
|
46
47
|
safeDocument().body.style.cursor = "";
|
|
@@ -67,7 +68,7 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
67
68
|
});
|
|
68
69
|
this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
|
|
69
70
|
if (interactivityParticleOptions.replaceCursor) {
|
|
70
|
-
const element =
|
|
71
|
+
const element = interactivityData.element;
|
|
71
72
|
if (element) {
|
|
72
73
|
if (element instanceof Window) {
|
|
73
74
|
safeDocument().body.style.cursor = "none";
|
|
@@ -84,13 +85,14 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
84
85
|
this._particle.position.x = this._lastPosition.x;
|
|
85
86
|
this._particle.position.y = this._lastPosition.y;
|
|
86
87
|
}
|
|
87
|
-
isEnabled(particle) {
|
|
88
|
-
const container = this.container, options = container.actualOptions, mouse =
|
|
89
|
-
return (
|
|
90
|
-
(mouse.inside && !!mouse.position && isInArray(particleMode, events.
|
|
88
|
+
isEnabled(interactivityData, particle) {
|
|
89
|
+
const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
|
|
90
|
+
return (!!events &&
|
|
91
|
+
((mouse.clicking && mouse.inside && !!mouse.position && isInArray(particleMode, events.onClick.mode)) ||
|
|
92
|
+
(mouse.inside && !!mouse.position && isInArray(particleMode, events.onHover.mode))));
|
|
91
93
|
}
|
|
92
94
|
loadModeOptions(options, ...sources) {
|
|
93
|
-
options.particle ??= new
|
|
95
|
+
options.particle ??= new InteractivityParticleOptions();
|
|
94
96
|
for (const source of sources) {
|
|
95
97
|
options.particle.load(source?.particle);
|
|
96
98
|
}
|
|
@@ -1 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { deepExtend, isNull, } from "@tsparticles/engine";
|
|
2
|
+
export class InteractivityParticleOptions {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.replaceCursor = false;
|
|
5
|
+
this.pauseOnStop = false;
|
|
6
|
+
this.stopDelay = 0;
|
|
7
|
+
}
|
|
8
|
+
load(data) {
|
|
9
|
+
if (isNull(data)) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (data.options !== undefined) {
|
|
13
|
+
this.options = deepExtend({}, data.options);
|
|
14
|
+
}
|
|
15
|
+
if (data.replaceCursor !== undefined) {
|
|
16
|
+
this.replaceCursor = data.replaceCursor;
|
|
17
|
+
}
|
|
18
|
+
if (data.pauseOnStop !== undefined) {
|
|
19
|
+
this.pauseOnStop = data.pauseOnStop;
|
|
20
|
+
}
|
|
21
|
+
if (data.stopDelay !== undefined) {
|
|
22
|
+
this.stopDelay = data.stopDelay;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
package/browser/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export function loadExternalParticleInteraction(engine) {
|
|
2
|
-
engine.checkVersion("4.0.0-alpha.
|
|
3
|
-
engine.register(e => {
|
|
4
|
-
|
|
2
|
+
engine.checkVersion("4.0.0-alpha.4");
|
|
3
|
+
engine.register(async (e) => {
|
|
4
|
+
const { loadInteractivityPlugin } = await import("@tsparticles/plugin-interactivity");
|
|
5
|
+
loadInteractivityPlugin(e);
|
|
6
|
+
e.addInteractor?.("externalParticle", async (container) => {
|
|
5
7
|
const { InteractivityParticleMaker } = await import("./InteractivityParticleMaker.js");
|
|
6
8
|
return new InteractivityParticleMaker(container);
|
|
7
9
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ExternalInteractorBase,
|
|
2
|
-
import {
|
|
1
|
+
import { ExternalInteractorBase, } from "@tsparticles/plugin-interactivity";
|
|
2
|
+
import { deepExtend, isInArray, safeDocument, } from "@tsparticles/engine";
|
|
3
|
+
import { InteractivityParticleOptions } from "./Options/Classes/InteractivityParticleOptions.js";
|
|
3
4
|
const particleMode = "particle";
|
|
4
5
|
export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
5
6
|
constructor(container) {
|
|
@@ -9,19 +10,19 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
9
10
|
}
|
|
10
11
|
init() {
|
|
11
12
|
}
|
|
12
|
-
interact() {
|
|
13
|
-
const container = this.container,
|
|
13
|
+
interact(interactivityData) {
|
|
14
|
+
const container = this.container, options = container.actualOptions;
|
|
14
15
|
if (!container.retina.reduceFactor) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const mousePos =
|
|
18
|
+
const mousePos = interactivityData.mouse.position, interactivityParticleOptions = options.interactivity?.modes.particle;
|
|
18
19
|
if (!interactivityParticleOptions) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
22
|
const mouseStopped = interactivityParticleOptions.pauseOnStop &&
|
|
22
|
-
(
|
|
23
|
-
(
|
|
24
|
-
|
|
23
|
+
(interactivityData.mouse.position === this._lastPosition ||
|
|
24
|
+
(interactivityData.mouse.position?.x === this._lastPosition?.x &&
|
|
25
|
+
interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
|
|
25
26
|
if (mousePos) {
|
|
26
27
|
this._lastPosition = { ...mousePos };
|
|
27
28
|
}
|
|
@@ -40,7 +41,7 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
43
|
if (interactivityParticleOptions.replaceCursor) {
|
|
43
|
-
const element =
|
|
44
|
+
const element = interactivityData.element;
|
|
44
45
|
if (element) {
|
|
45
46
|
if (element instanceof Window) {
|
|
46
47
|
safeDocument().body.style.cursor = "";
|
|
@@ -67,7 +68,7 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
67
68
|
});
|
|
68
69
|
this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
|
|
69
70
|
if (interactivityParticleOptions.replaceCursor) {
|
|
70
|
-
const element =
|
|
71
|
+
const element = interactivityData.element;
|
|
71
72
|
if (element) {
|
|
72
73
|
if (element instanceof Window) {
|
|
73
74
|
safeDocument().body.style.cursor = "none";
|
|
@@ -84,13 +85,14 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
84
85
|
this._particle.position.x = this._lastPosition.x;
|
|
85
86
|
this._particle.position.y = this._lastPosition.y;
|
|
86
87
|
}
|
|
87
|
-
isEnabled(particle) {
|
|
88
|
-
const container = this.container, options = container.actualOptions, mouse =
|
|
89
|
-
return (
|
|
90
|
-
(mouse.inside && !!mouse.position && isInArray(particleMode, events.
|
|
88
|
+
isEnabled(interactivityData, particle) {
|
|
89
|
+
const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
|
|
90
|
+
return (!!events &&
|
|
91
|
+
((mouse.clicking && mouse.inside && !!mouse.position && isInArray(particleMode, events.onClick.mode)) ||
|
|
92
|
+
(mouse.inside && !!mouse.position && isInArray(particleMode, events.onHover.mode))));
|
|
91
93
|
}
|
|
92
94
|
loadModeOptions(options, ...sources) {
|
|
93
|
-
options.particle ??= new
|
|
95
|
+
options.particle ??= new InteractivityParticleOptions();
|
|
94
96
|
for (const source of sources) {
|
|
95
97
|
options.particle.load(source?.particle);
|
|
96
98
|
}
|
|
@@ -1 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { deepExtend, isNull, } from "@tsparticles/engine";
|
|
2
|
+
export class InteractivityParticleOptions {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.replaceCursor = false;
|
|
5
|
+
this.pauseOnStop = false;
|
|
6
|
+
this.stopDelay = 0;
|
|
7
|
+
}
|
|
8
|
+
load(data) {
|
|
9
|
+
if (isNull(data)) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (data.options !== undefined) {
|
|
13
|
+
this.options = deepExtend({}, data.options);
|
|
14
|
+
}
|
|
15
|
+
if (data.replaceCursor !== undefined) {
|
|
16
|
+
this.replaceCursor = data.replaceCursor;
|
|
17
|
+
}
|
|
18
|
+
if (data.pauseOnStop !== undefined) {
|
|
19
|
+
this.pauseOnStop = data.pauseOnStop;
|
|
20
|
+
}
|
|
21
|
+
if (data.stopDelay !== undefined) {
|
|
22
|
+
this.stopDelay = data.stopDelay;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/cjs/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export function loadExternalParticleInteraction(engine) {
|
|
2
|
-
engine.checkVersion("4.0.0-alpha.
|
|
3
|
-
engine.register(e => {
|
|
4
|
-
|
|
2
|
+
engine.checkVersion("4.0.0-alpha.4");
|
|
3
|
+
engine.register(async (e) => {
|
|
4
|
+
const { loadInteractivityPlugin } = await import("@tsparticles/plugin-interactivity");
|
|
5
|
+
loadInteractivityPlugin(e);
|
|
6
|
+
e.addInteractor?.("externalParticle", async (container) => {
|
|
5
7
|
const { InteractivityParticleMaker } = await import("./InteractivityParticleMaker.js");
|
|
6
8
|
return new InteractivityParticleMaker(container);
|
|
7
9
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Demo / Generator : https://particles.js.org/
|
|
5
5
|
* GitHub : https://www.github.com/matteobruni/tsparticles
|
|
6
6
|
* How to use? : Check the GitHub README
|
|
7
|
-
* v4.0.0-alpha.
|
|
7
|
+
* v4.0.0-alpha.4
|
|
8
8
|
*/
|
|
9
9
|
"use strict";
|
|
10
10
|
/*
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
\****************************************************/
|
|
24
24
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
25
25
|
|
|
26
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InteractivityParticleMaker: () => (/* binding */ InteractivityParticleMaker)\n/* harmony export */ });\n/* harmony import */ var
|
|
26
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InteractivityParticleMaker: () => (/* binding */ InteractivityParticleMaker)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _Options_Classes_InteractivityParticleOptions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/InteractivityParticleOptions.js */ \"./dist/browser/Options/Classes/InteractivityParticleOptions.js\");\n\n\n\nconst particleMode = \"particle\";\nclass InteractivityParticleMaker extends _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {}\n init() {}\n interact(interactivityData) {\n const container = this.container,\n options = container.actualOptions;\n if (!container.retina.reduceFactor) {\n return;\n }\n const mousePos = interactivityData.mouse.position,\n interactivityParticleOptions = options.interactivity?.modes.particle;\n if (!interactivityParticleOptions) {\n return;\n }\n const mouseStopped = interactivityParticleOptions.pauseOnStop && (interactivityData.mouse.position === this._lastPosition || interactivityData.mouse.position?.x === this._lastPosition?.x && interactivityData.mouse.position?.y === this._lastPosition?.y),\n clearDelay = interactivityParticleOptions.stopDelay;\n if (mousePos) {\n this._lastPosition = {\n ...mousePos\n };\n } else {\n delete this._lastPosition;\n }\n if (!this._lastPosition) {\n return;\n }\n if (mouseStopped) {\n if (this._clearTimeout) {\n return;\n }\n this._clearTimeout = setTimeout(() => {\n if (!this._particle) {\n return;\n }\n if (interactivityParticleOptions.replaceCursor) {\n const element = interactivityData.element;\n if (element) {\n if (element instanceof Window) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().body.style.cursor = \"\";\n } else {\n element.style.cursor = \"\";\n }\n }\n }\n this.container.particles.remove(this._particle, undefined, true);\n delete this._particle;\n }, clearDelay);\n return;\n }\n if (this._clearTimeout) {\n clearTimeout(this._clearTimeout);\n delete this._clearTimeout;\n }\n if (!this._particle) {\n const particleOptions = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.deepExtend)(interactivityParticleOptions.options, {\n move: {\n enable: false\n }\n });\n this._particle = container.particles.addParticle(this._lastPosition, particleOptions);\n if (interactivityParticleOptions.replaceCursor) {\n const element = interactivityData.element;\n if (element) {\n if (element instanceof Window) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().body.style.cursor = \"none\";\n } else {\n element.style.cursor = \"none\";\n }\n }\n }\n }\n if (!this._particle) {\n return;\n }\n this._particle.position.x = this._lastPosition.x;\n this._particle.position.y = this._lastPosition.y;\n }\n isEnabled(interactivityData, particle) {\n const container = this.container,\n options = container.actualOptions,\n mouse = interactivityData.mouse,\n events = (particle?.interactivity ?? options.interactivity)?.events;\n return !!events && (mouse.clicking && mouse.inside && !!mouse.position && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isInArray)(particleMode, events.onClick.mode) || mouse.inside && !!mouse.position && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isInArray)(particleMode, events.onHover.mode));\n }\n loadModeOptions(options, ...sources) {\n options.particle ??= new _Options_Classes_InteractivityParticleOptions_js__WEBPACK_IMPORTED_MODULE_2__.InteractivityParticleOptions();\n for (const source of sources) {\n options.particle.load(source?.particle);\n }\n }\n reset() {}\n}\n\n//# sourceURL=webpack://@tsparticles/interaction-external-particle/./dist/browser/InteractivityParticleMaker.js?\n}");
|
|
27
27
|
|
|
28
28
|
/***/ },
|
|
29
29
|
|
|
30
|
-
/***/ "./dist/browser/Options/Classes/
|
|
31
|
-
|
|
32
|
-
!*** ./dist/browser/Options/Classes/
|
|
33
|
-
|
|
30
|
+
/***/ "./dist/browser/Options/Classes/InteractivityParticleOptions.js"
|
|
31
|
+
/*!**********************************************************************!*\
|
|
32
|
+
!*** ./dist/browser/Options/Classes/InteractivityParticleOptions.js ***!
|
|
33
|
+
\**********************************************************************/
|
|
34
34
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
35
35
|
|
|
36
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */
|
|
36
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InteractivityParticleOptions: () => (/* binding */ InteractivityParticleOptions)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nclass InteractivityParticleOptions {\n constructor() {\n this.replaceCursor = false;\n this.pauseOnStop = false;\n this.stopDelay = 0;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.options !== undefined) {\n this.options = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, data.options);\n }\n if (data.replaceCursor !== undefined) {\n this.replaceCursor = data.replaceCursor;\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n if (data.stopDelay !== undefined) {\n this.stopDelay = data.stopDelay;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/interaction-external-particle/./dist/browser/Options/Classes/InteractivityParticleOptions.js?\n}");
|
|
37
37
|
|
|
38
38
|
/***/ }
|
|
39
39
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ExternalInteractorBase,
|
|
2
|
-
import {
|
|
1
|
+
import { ExternalInteractorBase, } from "@tsparticles/plugin-interactivity";
|
|
2
|
+
import { deepExtend, isInArray, safeDocument, } from "@tsparticles/engine";
|
|
3
|
+
import { InteractivityParticleOptions } from "./Options/Classes/InteractivityParticleOptions.js";
|
|
3
4
|
const particleMode = "particle";
|
|
4
5
|
export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
5
6
|
constructor(container) {
|
|
@@ -9,19 +10,19 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
9
10
|
}
|
|
10
11
|
init() {
|
|
11
12
|
}
|
|
12
|
-
interact() {
|
|
13
|
-
const container = this.container,
|
|
13
|
+
interact(interactivityData) {
|
|
14
|
+
const container = this.container, options = container.actualOptions;
|
|
14
15
|
if (!container.retina.reduceFactor) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const mousePos =
|
|
18
|
+
const mousePos = interactivityData.mouse.position, interactivityParticleOptions = options.interactivity?.modes.particle;
|
|
18
19
|
if (!interactivityParticleOptions) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
22
|
const mouseStopped = interactivityParticleOptions.pauseOnStop &&
|
|
22
|
-
(
|
|
23
|
-
(
|
|
24
|
-
|
|
23
|
+
(interactivityData.mouse.position === this._lastPosition ||
|
|
24
|
+
(interactivityData.mouse.position?.x === this._lastPosition?.x &&
|
|
25
|
+
interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
|
|
25
26
|
if (mousePos) {
|
|
26
27
|
this._lastPosition = { ...mousePos };
|
|
27
28
|
}
|
|
@@ -40,7 +41,7 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
43
|
if (interactivityParticleOptions.replaceCursor) {
|
|
43
|
-
const element =
|
|
44
|
+
const element = interactivityData.element;
|
|
44
45
|
if (element) {
|
|
45
46
|
if (element instanceof Window) {
|
|
46
47
|
safeDocument().body.style.cursor = "";
|
|
@@ -67,7 +68,7 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
67
68
|
});
|
|
68
69
|
this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
|
|
69
70
|
if (interactivityParticleOptions.replaceCursor) {
|
|
70
|
-
const element =
|
|
71
|
+
const element = interactivityData.element;
|
|
71
72
|
if (element) {
|
|
72
73
|
if (element instanceof Window) {
|
|
73
74
|
safeDocument().body.style.cursor = "none";
|
|
@@ -84,13 +85,14 @@ export class InteractivityParticleMaker extends ExternalInteractorBase {
|
|
|
84
85
|
this._particle.position.x = this._lastPosition.x;
|
|
85
86
|
this._particle.position.y = this._lastPosition.y;
|
|
86
87
|
}
|
|
87
|
-
isEnabled(particle) {
|
|
88
|
-
const container = this.container, options = container.actualOptions, mouse =
|
|
89
|
-
return (
|
|
90
|
-
(mouse.inside && !!mouse.position && isInArray(particleMode, events.
|
|
88
|
+
isEnabled(interactivityData, particle) {
|
|
89
|
+
const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
|
|
90
|
+
return (!!events &&
|
|
91
|
+
((mouse.clicking && mouse.inside && !!mouse.position && isInArray(particleMode, events.onClick.mode)) ||
|
|
92
|
+
(mouse.inside && !!mouse.position && isInArray(particleMode, events.onHover.mode))));
|
|
91
93
|
}
|
|
92
94
|
loadModeOptions(options, ...sources) {
|
|
93
|
-
options.particle ??= new
|
|
95
|
+
options.particle ??= new InteractivityParticleOptions();
|
|
94
96
|
for (const source of sources) {
|
|
95
97
|
options.particle.load(source?.particle);
|
|
96
98
|
}
|
|
@@ -1 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { deepExtend, isNull, } from "@tsparticles/engine";
|
|
2
|
+
export class InteractivityParticleOptions {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.replaceCursor = false;
|
|
5
|
+
this.pauseOnStop = false;
|
|
6
|
+
this.stopDelay = 0;
|
|
7
|
+
}
|
|
8
|
+
load(data) {
|
|
9
|
+
if (isNull(data)) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (data.options !== undefined) {
|
|
13
|
+
this.options = deepExtend({}, data.options);
|
|
14
|
+
}
|
|
15
|
+
if (data.replaceCursor !== undefined) {
|
|
16
|
+
this.replaceCursor = data.replaceCursor;
|
|
17
|
+
}
|
|
18
|
+
if (data.pauseOnStop !== undefined) {
|
|
19
|
+
this.pauseOnStop = data.pauseOnStop;
|
|
20
|
+
}
|
|
21
|
+
if (data.stopDelay !== undefined) {
|
|
22
|
+
this.stopDelay = data.stopDelay;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/esm/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export function loadExternalParticleInteraction(engine) {
|
|
2
|
-
engine.checkVersion("4.0.0-alpha.
|
|
3
|
-
engine.register(e => {
|
|
4
|
-
|
|
2
|
+
engine.checkVersion("4.0.0-alpha.4");
|
|
3
|
+
engine.register(async (e) => {
|
|
4
|
+
const { loadInteractivityPlugin } = await import("@tsparticles/plugin-interactivity");
|
|
5
|
+
loadInteractivityPlugin(e);
|
|
6
|
+
e.addInteractor?.("externalParticle", async (container) => {
|
|
5
7
|
const { InteractivityParticleMaker } = await import("./InteractivityParticleMaker.js");
|
|
6
8
|
return new InteractivityParticleMaker(container);
|
|
7
9
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsparticles/interaction-external-particle",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.4",
|
|
4
4
|
"description": "tsParticles particle external interaction",
|
|
5
5
|
"homepage": "https://particles.js.org",
|
|
6
6
|
"repository": {
|
|
@@ -87,7 +87,8 @@
|
|
|
87
87
|
"./package.json": "./package.json"
|
|
88
88
|
},
|
|
89
89
|
"dependencies": {
|
|
90
|
-
"@tsparticles/engine": "4.0.0-alpha.
|
|
90
|
+
"@tsparticles/engine": "4.0.0-alpha.4",
|
|
91
|
+
"@tsparticles/plugin-interactivity": "4.0.0-alpha.4"
|
|
91
92
|
},
|
|
92
93
|
"publishConfig": {
|
|
93
94
|
"access": "public"
|
package/report.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>@tsparticles/interaction-external-particle [
|
|
6
|
+
<title>@tsparticles/interaction-external-particle [21 Jan 2026 at 14:43]</title>
|
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
|
8
8
|
|
|
9
9
|
<script>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Demo / Generator : https://particles.js.org/
|
|
5
5
|
* GitHub : https://www.github.com/matteobruni/tsparticles
|
|
6
6
|
* How to use? : Check the GitHub README
|
|
7
|
-
* v4.0.0-alpha.
|
|
7
|
+
* v4.0.0-alpha.4
|
|
8
8
|
*/
|
|
9
9
|
/*
|
|
10
10
|
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
*/
|
|
17
17
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
18
18
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
19
|
-
module.exports = factory(require("@tsparticles/engine"));
|
|
19
|
+
module.exports = factory(require("@tsparticles/plugin-interactivity"), require("@tsparticles/engine"));
|
|
20
20
|
else if(typeof define === 'function' && define.amd)
|
|
21
|
-
define(["@tsparticles/engine"], factory);
|
|
21
|
+
define(["@tsparticles/plugin-interactivity", "@tsparticles/engine"], factory);
|
|
22
22
|
else {
|
|
23
|
-
var a = typeof exports === 'object' ? factory(require("@tsparticles/engine")) : factory(root["window"]);
|
|
23
|
+
var a = typeof exports === 'object' ? factory(require("@tsparticles/plugin-interactivity"), require("@tsparticles/engine")) : factory(root["window"], root["window"]);
|
|
24
24
|
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
|
25
25
|
}
|
|
26
|
-
})(this, (__WEBPACK_EXTERNAL_MODULE__tsparticles_engine__) => {
|
|
26
|
+
})(this, (__WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__, __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__) => {
|
|
27
27
|
return /******/ (() => { // webpackBootstrap
|
|
28
28
|
/******/ "use strict";
|
|
29
29
|
/******/ var __webpack_modules__ = ({
|
|
@@ -34,7 +34,7 @@ return /******/ (() => { // webpackBootstrap
|
|
|
34
34
|
\*******************************/
|
|
35
35
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
36
36
|
|
|
37
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadExternalParticleInteraction: () => (/* binding */ loadExternalParticleInteraction)\n/* harmony export */ });\nfunction loadExternalParticleInteraction(engine) {\n engine.checkVersion(\"4.0.0-alpha.
|
|
37
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadExternalParticleInteraction: () => (/* binding */ loadExternalParticleInteraction)\n/* harmony export */ });\nfunction loadExternalParticleInteraction(engine) {\n engine.checkVersion(\"4.0.0-alpha.4\");\n engine.register(async e => {\n const {\n loadInteractivityPlugin\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\", 19));\n loadInteractivityPlugin(e);\n e.addInteractor?.(\"externalParticle\", async container => {\n const {\n InteractivityParticleMaker\n } = await __webpack_require__.e(/*! import() */ \"dist_browser_InteractivityParticleMaker_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./InteractivityParticleMaker.js */ \"./dist/browser/InteractivityParticleMaker.js\"));\n return new InteractivityParticleMaker(container);\n });\n });\n}\n\n//# sourceURL=webpack://@tsparticles/interaction-external-particle/./dist/browser/index.js?\n}");
|
|
38
38
|
|
|
39
39
|
/***/ },
|
|
40
40
|
|
|
@@ -46,6 +46,16 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
46
46
|
|
|
47
47
|
module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
48
48
|
|
|
49
|
+
/***/ },
|
|
50
|
+
|
|
51
|
+
/***/ "@tsparticles/plugin-interactivity"
|
|
52
|
+
/*!***************************************************************************************************************************************************************************!*\
|
|
53
|
+
!*** external {"commonjs":"@tsparticles/plugin-interactivity","commonjs2":"@tsparticles/plugin-interactivity","amd":"@tsparticles/plugin-interactivity","root":"window"} ***!
|
|
54
|
+
\***************************************************************************************************************************************************************************/
|
|
55
|
+
(module) {
|
|
56
|
+
|
|
57
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
|
|
58
|
+
|
|
49
59
|
/***/ }
|
|
50
60
|
|
|
51
61
|
/******/ });
|
|
@@ -84,6 +94,36 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
|
84
94
|
/******/ __webpack_require__.m = __webpack_modules__;
|
|
85
95
|
/******/
|
|
86
96
|
/************************************************************************/
|
|
97
|
+
/******/ /* webpack/runtime/create fake namespace object */
|
|
98
|
+
/******/ (() => {
|
|
99
|
+
/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
|
|
100
|
+
/******/ var leafPrototypes;
|
|
101
|
+
/******/ // create a fake namespace object
|
|
102
|
+
/******/ // mode & 1: value is a module id, require it
|
|
103
|
+
/******/ // mode & 2: merge all properties of value into the ns
|
|
104
|
+
/******/ // mode & 4: return value when already ns object
|
|
105
|
+
/******/ // mode & 16: return value when it's Promise-like
|
|
106
|
+
/******/ // mode & 8|1: behave like require
|
|
107
|
+
/******/ __webpack_require__.t = function(value, mode) {
|
|
108
|
+
/******/ if(mode & 1) value = this(value);
|
|
109
|
+
/******/ if(mode & 8) return value;
|
|
110
|
+
/******/ if(typeof value === 'object' && value) {
|
|
111
|
+
/******/ if((mode & 4) && value.__esModule) return value;
|
|
112
|
+
/******/ if((mode & 16) && typeof value.then === 'function') return value;
|
|
113
|
+
/******/ }
|
|
114
|
+
/******/ var ns = Object.create(null);
|
|
115
|
+
/******/ __webpack_require__.r(ns);
|
|
116
|
+
/******/ var def = {};
|
|
117
|
+
/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
|
|
118
|
+
/******/ for(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {
|
|
119
|
+
/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
|
|
120
|
+
/******/ }
|
|
121
|
+
/******/ def['default'] = () => (value);
|
|
122
|
+
/******/ __webpack_require__.d(ns, def);
|
|
123
|
+
/******/ return ns;
|
|
124
|
+
/******/ };
|
|
125
|
+
/******/ })();
|
|
126
|
+
/******/
|
|
87
127
|
/******/ /* webpack/runtime/define property getters */
|
|
88
128
|
/******/ (() => {
|
|
89
129
|
/******/ // define getter functions for harmony exports
|
|
@@ -118,18 +158,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
|
118
158
|
/******/ };
|
|
119
159
|
/******/ })();
|
|
120
160
|
/******/
|
|
121
|
-
/******/ /* webpack/runtime/global */
|
|
122
|
-
/******/ (() => {
|
|
123
|
-
/******/ __webpack_require__.g = (function() {
|
|
124
|
-
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
125
|
-
/******/ try {
|
|
126
|
-
/******/ return this || new Function('return this')();
|
|
127
|
-
/******/ } catch (e) {
|
|
128
|
-
/******/ if (typeof window === 'object') return window;
|
|
129
|
-
/******/ }
|
|
130
|
-
/******/ })();
|
|
131
|
-
/******/ })();
|
|
132
|
-
/******/
|
|
133
161
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
134
162
|
/******/ (() => {
|
|
135
163
|
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
@@ -194,8 +222,8 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
|
194
222
|
/******/ /* webpack/runtime/publicPath */
|
|
195
223
|
/******/ (() => {
|
|
196
224
|
/******/ var scriptUrl;
|
|
197
|
-
/******/ if (
|
|
198
|
-
/******/ var document =
|
|
225
|
+
/******/ if (globalThis.importScripts) scriptUrl = globalThis.location + "";
|
|
226
|
+
/******/ var document = globalThis.document;
|
|
199
227
|
/******/ if (!scriptUrl && document) {
|
|
200
228
|
/******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')
|
|
201
229
|
/******/ scriptUrl = document.currentScript.src;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see tsparticles.interaction.external.particle.min.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var
|
|
2
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/plugin-interactivity","@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):t(e.window,e.window);for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(this,((e,t)=>(()=>{var r,i,n,o,a={303(e){e.exports=t},702(t){t.exports=e}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return a[e](r,r.exports,l),r.exports}l.m=a,i=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var n=Object.create(null);l.r(n);var o={};r=r||[null,i({}),i([]),i(i)];for(var a=2&t&&e;("object"==typeof a||"function"==typeof a)&&!~r.indexOf(a);a=i(a))Object.getOwnPropertyNames(a).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,l.d(n,o),n},l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce(((t,r)=>(l.f[r](e,t),t)),[])),l.u=e=>e+".min.js",l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},o="@tsparticles/interaction-external-particle:",l.l=(e,t,r,i)=>{if(n[e])n[e].push(t);else{var a,c;if(void 0!==r)for(var s=document.getElementsByTagName("script"),p=0;p<s.length;p++){var u=s[p];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+r){a=u;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",l.nc&&a.setAttribute("nonce",l.nc),a.setAttribute("data-webpack",o+r),a.src=e),n[e]=[t];var f=(t,r)=>{a.onerror=a.onload=null,clearTimeout(d);var i=n[e];if(delete n[e],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach((e=>e(r))),t)return t(r)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=f.bind(null,a.onerror),a.onload=f.bind(null,a.onload),c&&document.head.appendChild(a)}},l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=r[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e})(),(()=>{var e={464:0};l.f.j=(t,r)=>{var i=l.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else{var n=new Promise(((r,n)=>i=e[t]=[r,n]));r.push(i[2]=n);var o=l.p+l.u(t),a=new Error;l.l(o,(r=>{if(l.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;a.message="Loading chunk "+t+" failed.\n("+n+": "+o+")",a.name="ChunkLoadError",a.type=n,a.request=o,i[1](a)}}),"chunk-"+t,t)}};var t=(t,r)=>{var i,n,[o,a,c]=r,s=0;if(o.some((t=>0!==e[t]))){for(i in a)l.o(a,i)&&(l.m[i]=a[i]);if(c)c(l)}for(t&&t(r);s<o.length;s++)n=o[s],l.o(e,n)&&e[n]&&e[n][0](),e[n]=0},r=this.webpackChunk_tsparticles_interaction_external_particle=this.webpackChunk_tsparticles_interaction_external_particle||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var s={};function p(e){e.checkVersion("4.0.0-alpha.4"),e.register((async e=>{const{loadInteractivityPlugin:t}=await Promise.resolve().then(l.t.bind(l,702,19));t(e),e.addInteractor?.("externalParticle",(async e=>{const{InteractivityParticleMaker:t}=await l.e(623).then(l.bind(l,623));return new t(e)}))}))}return l.r(s),l.d(s,{loadExternalParticleInteraction:()=>p}),s})()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tsParticles Particle External Interaction v4.0.0-alpha.
|
|
1
|
+
/*! tsParticles Particle External Interaction v4.0.0-alpha.4 by Matteo Bruni */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ExternalInteractorBase, type
|
|
1
|
+
import { ExternalInteractorBase, type IInteractivityData, type IModes, type InteractivityParticle, type Modes } from "@tsparticles/plugin-interactivity";
|
|
2
|
+
import { type RecursivePartial } from "@tsparticles/engine";
|
|
2
3
|
import type { IParticleMode, InteractivityParticleContainer, ParticleMode } from "./Types.js";
|
|
3
4
|
export declare class InteractivityParticleMaker extends ExternalInteractorBase<InteractivityParticleContainer> {
|
|
4
5
|
private _clearTimeout?;
|
|
@@ -7,8 +8,8 @@ export declare class InteractivityParticleMaker extends ExternalInteractorBase<I
|
|
|
7
8
|
constructor(container: InteractivityParticleContainer);
|
|
8
9
|
clear(): void;
|
|
9
10
|
init(): void;
|
|
10
|
-
interact(): void;
|
|
11
|
-
isEnabled(particle?:
|
|
11
|
+
interact(interactivityData: IInteractivityData): void;
|
|
12
|
+
isEnabled(interactivityData: IInteractivityData, particle?: InteractivityParticle): boolean;
|
|
12
13
|
loadModeOptions(options: Modes & ParticleMode, ...sources: RecursivePartial<(IModes & IParticleMode) | undefined>[]): void;
|
|
13
14
|
reset(): void;
|
|
14
15
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { type IOptionLoader, type IParticlesOptions, type RecursivePartial } from "@tsparticles/engine";
|
|
2
|
+
import type { IInteractivityParticleOptions } from "../Interfaces/IInteractivityParticleOptions.js";
|
|
3
|
+
export declare class InteractivityParticleOptions implements IInteractivityParticleOptions, IOptionLoader<IInteractivityParticleOptions> {
|
|
4
|
+
options?: RecursivePartial<IParticlesOptions>;
|
|
5
|
+
pauseOnStop: boolean;
|
|
6
|
+
replaceCursor: boolean;
|
|
7
|
+
stopDelay: number;
|
|
8
|
+
constructor();
|
|
9
|
+
load(data?: RecursivePartial<IInteractivityParticleOptions>): void;
|
|
10
|
+
}
|
package/types/Options/Interfaces/{IInteractivityParticle.d.ts → IInteractivityParticleOptions.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IParticlesOptions, RecursivePartial } from "@tsparticles/engine";
|
|
2
|
-
export interface
|
|
2
|
+
export interface IInteractivityParticleOptions {
|
|
3
3
|
options?: RecursivePartial<IParticlesOptions>;
|
|
4
4
|
pauseOnStop: boolean;
|
|
5
5
|
replaceCursor: boolean;
|
package/types/Types.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { InteractivityParticle } from "./Options/Classes/InteractivityParticle.js";
|
|
1
|
+
import type { IInteractivityParticleOptions } from "./Options/Interfaces/IInteractivityParticleOptions.js";
|
|
2
|
+
import type { InteractivityContainer } from "@tsparticles/plugin-interactivity";
|
|
4
3
|
import type { InteractivityParticleOptions } from "./Options/Classes/InteractivityParticleOptions.js";
|
|
4
|
+
import type { InteractivityParticleOptionsData } from "./Options/Classes/InteractivityParticleOptionsData.js";
|
|
5
5
|
export interface IParticleMode {
|
|
6
|
-
particle:
|
|
6
|
+
particle: IInteractivityParticleOptions;
|
|
7
7
|
}
|
|
8
8
|
export interface ParticleMode {
|
|
9
|
-
particle?:
|
|
9
|
+
particle?: InteractivityParticleOptions;
|
|
10
10
|
}
|
|
11
|
-
export type InteractivityParticleContainer =
|
|
12
|
-
actualOptions:
|
|
11
|
+
export type InteractivityParticleContainer = InteractivityContainer & {
|
|
12
|
+
actualOptions: InteractivityParticleOptionsData;
|
|
13
13
|
};
|
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "@tsparticles/engine", "./Options/Classes/
|
|
7
|
+
define(["require", "exports", "@tsparticles/plugin-interactivity", "@tsparticles/engine", "./Options/Classes/InteractivityParticleOptions.js"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.InteractivityParticleMaker = void 0;
|
|
13
|
+
const plugin_interactivity_1 = require("@tsparticles/plugin-interactivity");
|
|
13
14
|
const engine_1 = require("@tsparticles/engine");
|
|
14
|
-
const
|
|
15
|
+
const InteractivityParticleOptions_js_1 = require("./Options/Classes/InteractivityParticleOptions.js");
|
|
15
16
|
const particleMode = "particle";
|
|
16
|
-
class InteractivityParticleMaker extends
|
|
17
|
+
class InteractivityParticleMaker extends plugin_interactivity_1.ExternalInteractorBase {
|
|
17
18
|
constructor(container) {
|
|
18
19
|
super(container);
|
|
19
20
|
}
|
|
@@ -21,19 +22,19 @@
|
|
|
21
22
|
}
|
|
22
23
|
init() {
|
|
23
24
|
}
|
|
24
|
-
interact() {
|
|
25
|
-
const container = this.container,
|
|
25
|
+
interact(interactivityData) {
|
|
26
|
+
const container = this.container, options = container.actualOptions;
|
|
26
27
|
if (!container.retina.reduceFactor) {
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
29
|
-
const mousePos =
|
|
30
|
+
const mousePos = interactivityData.mouse.position, interactivityParticleOptions = options.interactivity?.modes.particle;
|
|
30
31
|
if (!interactivityParticleOptions) {
|
|
31
32
|
return;
|
|
32
33
|
}
|
|
33
34
|
const mouseStopped = interactivityParticleOptions.pauseOnStop &&
|
|
34
|
-
(
|
|
35
|
-
(
|
|
36
|
-
|
|
35
|
+
(interactivityData.mouse.position === this._lastPosition ||
|
|
36
|
+
(interactivityData.mouse.position?.x === this._lastPosition?.x &&
|
|
37
|
+
interactivityData.mouse.position?.y === this._lastPosition?.y)), clearDelay = interactivityParticleOptions.stopDelay;
|
|
37
38
|
if (mousePos) {
|
|
38
39
|
this._lastPosition = { ...mousePos };
|
|
39
40
|
}
|
|
@@ -52,7 +53,7 @@
|
|
|
52
53
|
return;
|
|
53
54
|
}
|
|
54
55
|
if (interactivityParticleOptions.replaceCursor) {
|
|
55
|
-
const element =
|
|
56
|
+
const element = interactivityData.element;
|
|
56
57
|
if (element) {
|
|
57
58
|
if (element instanceof Window) {
|
|
58
59
|
(0, engine_1.safeDocument)().body.style.cursor = "";
|
|
@@ -79,7 +80,7 @@
|
|
|
79
80
|
});
|
|
80
81
|
this._particle = container.particles.addParticle(this._lastPosition, particleOptions);
|
|
81
82
|
if (interactivityParticleOptions.replaceCursor) {
|
|
82
|
-
const element =
|
|
83
|
+
const element = interactivityData.element;
|
|
83
84
|
if (element) {
|
|
84
85
|
if (element instanceof Window) {
|
|
85
86
|
(0, engine_1.safeDocument)().body.style.cursor = "none";
|
|
@@ -96,13 +97,14 @@
|
|
|
96
97
|
this._particle.position.x = this._lastPosition.x;
|
|
97
98
|
this._particle.position.y = this._lastPosition.y;
|
|
98
99
|
}
|
|
99
|
-
isEnabled(particle) {
|
|
100
|
-
const container = this.container, options = container.actualOptions, mouse =
|
|
101
|
-
return (
|
|
102
|
-
(mouse.inside && !!mouse.position && (0, engine_1.isInArray)(particleMode, events.
|
|
100
|
+
isEnabled(interactivityData, particle) {
|
|
101
|
+
const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
|
|
102
|
+
return (!!events &&
|
|
103
|
+
((mouse.clicking && mouse.inside && !!mouse.position && (0, engine_1.isInArray)(particleMode, events.onClick.mode)) ||
|
|
104
|
+
(mouse.inside && !!mouse.position && (0, engine_1.isInArray)(particleMode, events.onHover.mode))));
|
|
103
105
|
}
|
|
104
106
|
loadModeOptions(options, ...sources) {
|
|
105
|
-
options.particle ??= new
|
|
107
|
+
options.particle ??= new InteractivityParticleOptions_js_1.InteractivityParticleOptions();
|
|
106
108
|
for (const source of sources) {
|
|
107
109
|
options.particle.load(source?.particle);
|
|
108
110
|
}
|
|
@@ -4,9 +4,36 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.InteractivityParticleOptions = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
14
|
+
class InteractivityParticleOptions {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.replaceCursor = false;
|
|
17
|
+
this.pauseOnStop = false;
|
|
18
|
+
this.stopDelay = 0;
|
|
19
|
+
}
|
|
20
|
+
load(data) {
|
|
21
|
+
if ((0, engine_1.isNull)(data)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (data.options !== undefined) {
|
|
25
|
+
this.options = (0, engine_1.deepExtend)({}, data.options);
|
|
26
|
+
}
|
|
27
|
+
if (data.replaceCursor !== undefined) {
|
|
28
|
+
this.replaceCursor = data.replaceCursor;
|
|
29
|
+
}
|
|
30
|
+
if (data.pauseOnStop !== undefined) {
|
|
31
|
+
this.pauseOnStop = data.pauseOnStop;
|
|
32
|
+
}
|
|
33
|
+
if (data.stopDelay !== undefined) {
|
|
34
|
+
this.stopDelay = data.stopDelay;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.InteractivityParticleOptions = InteractivityParticleOptions;
|
|
12
39
|
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
});
|
package/umd/index.js
CHANGED
|
@@ -45,10 +45,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
46
|
exports.loadExternalParticleInteraction = loadExternalParticleInteraction;
|
|
47
47
|
function loadExternalParticleInteraction(engine) {
|
|
48
|
-
engine.checkVersion("4.0.0-alpha.
|
|
49
|
-
engine.register(e => {
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
engine.checkVersion("4.0.0-alpha.4");
|
|
49
|
+
engine.register(async (e) => {
|
|
50
|
+
const { loadInteractivityPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("@tsparticles/plugin-interactivity"))) : new Promise((resolve_1, reject_1) => { require(["@tsparticles/plugin-interactivity"], resolve_1, reject_1); }).then(__importStar));
|
|
51
|
+
loadInteractivityPlugin(e);
|
|
52
|
+
e.addInteractor?.("externalParticle", async (container) => {
|
|
53
|
+
const { InteractivityParticleMaker } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./InteractivityParticleMaker.js"))) : new Promise((resolve_2, reject_2) => { require(["./InteractivityParticleMaker.js"], resolve_2, reject_2); }).then(__importStar));
|
|
52
54
|
return new InteractivityParticleMaker(container);
|
|
53
55
|
});
|
|
54
56
|
});
|
package/302.min.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 302.min.js.LICENSE.txt */
|
|
2
|
-
(this.webpackChunk_tsparticles_interaction_external_particle=this.webpackChunk_tsparticles_interaction_external_particle||[]).push([[302],{302(t,i,e){e.d(i,{InteractivityParticleMaker:()=>r});var s=e(303);class o{constructor(){this.replaceCursor=!1,this.pauseOnStop=!1,this.stopDelay=0}load(t){(0,s.isNull)(t)||(void 0!==t.options&&(this.options=(0,s.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 n="particle";class r extends s.ExternalInteractorBase{constructor(t){super(t)}clear(){}init(){}interact(){const t=this.container,{interactivity:i}=t,e=t.actualOptions;if(!t.retina.reduceFactor)return;const o=i.mouse.position,n=e.interactivity.modes.particle;if(!n)return;const r=n.pauseOnStop&&(i.mouse.position===this._lastPosition||i.mouse.position?.x===this._lastPosition?.x&&i.mouse.position?.y===this._lastPosition?.y),a=n.stopDelay;if(o?this._lastPosition={...o}:delete this._lastPosition,this._lastPosition)if(r){if(this._clearTimeout)return;this._clearTimeout=setTimeout((()=>{if(this._particle){if(n.replaceCursor){const t=i.element;t&&(t instanceof Window?(0,s.safeDocument)().body.style.cursor="":t.style.cursor="")}this.container.particles.remove(this._particle,void 0,!0),delete this._particle}}),a)}else{if(this._clearTimeout&&(clearTimeout(this._clearTimeout),delete this._clearTimeout),!this._particle){const e=(0,s.deepExtend)(n.options,{move:{enable:!1}});if(this._particle=t.particles.addParticle(this._lastPosition,e),n.replaceCursor){const t=i.element;t&&(t instanceof Window?(0,s.safeDocument)().body.style.cursor="none":t.style.cursor="none")}}this._particle&&(this._particle.position.x=this._lastPosition.x,this._particle.position.y=this._lastPosition.y)}}isEnabled(t){const i=this.container,e=i.actualOptions,o=i.interactivity.mouse,r=(t?.interactivity??e.interactivity).events;return o.clicking&&o.inside&&!!o.position&&(0,s.isInArray)(n,r.onClick.mode)||o.inside&&!!o.position&&(0,s.isInArray)(n,r.onHover.mode)}loadModeOptions(t,...i){t.particle??=new o;for(const e of i)t.particle.load(e?.particle)}reset(){}}}}]);
|
package/302.min.js.LICENSE.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! tsParticles Particle External Interaction v4.0.0-alpha.2 by Matteo Bruni */
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { deepExtend, isNull, } from "@tsparticles/engine";
|
|
2
|
-
export class InteractivityParticle {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.replaceCursor = false;
|
|
5
|
-
this.pauseOnStop = false;
|
|
6
|
-
this.stopDelay = 0;
|
|
7
|
-
}
|
|
8
|
-
load(data) {
|
|
9
|
-
if (isNull(data)) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
if (data.options !== undefined) {
|
|
13
|
-
this.options = deepExtend({}, data.options);
|
|
14
|
-
}
|
|
15
|
-
if (data.replaceCursor !== undefined) {
|
|
16
|
-
this.replaceCursor = data.replaceCursor;
|
|
17
|
-
}
|
|
18
|
-
if (data.pauseOnStop !== undefined) {
|
|
19
|
-
this.pauseOnStop = data.pauseOnStop;
|
|
20
|
-
}
|
|
21
|
-
if (data.stopDelay !== undefined) {
|
|
22
|
-
this.stopDelay = data.stopDelay;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { deepExtend, isNull, } from "@tsparticles/engine";
|
|
2
|
-
export class InteractivityParticle {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.replaceCursor = false;
|
|
5
|
-
this.pauseOnStop = false;
|
|
6
|
-
this.stopDelay = 0;
|
|
7
|
-
}
|
|
8
|
-
load(data) {
|
|
9
|
-
if (isNull(data)) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
if (data.options !== undefined) {
|
|
13
|
-
this.options = deepExtend({}, data.options);
|
|
14
|
-
}
|
|
15
|
-
if (data.replaceCursor !== undefined) {
|
|
16
|
-
this.replaceCursor = data.replaceCursor;
|
|
17
|
-
}
|
|
18
|
-
if (data.pauseOnStop !== undefined) {
|
|
19
|
-
this.pauseOnStop = data.pauseOnStop;
|
|
20
|
-
}
|
|
21
|
-
if (data.stopDelay !== undefined) {
|
|
22
|
-
this.stopDelay = data.stopDelay;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { deepExtend, isNull, } from "@tsparticles/engine";
|
|
2
|
-
export class InteractivityParticle {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.replaceCursor = false;
|
|
5
|
-
this.pauseOnStop = false;
|
|
6
|
-
this.stopDelay = 0;
|
|
7
|
-
}
|
|
8
|
-
load(data) {
|
|
9
|
-
if (isNull(data)) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
if (data.options !== undefined) {
|
|
13
|
-
this.options = deepExtend({}, data.options);
|
|
14
|
-
}
|
|
15
|
-
if (data.replaceCursor !== undefined) {
|
|
16
|
-
this.replaceCursor = data.replaceCursor;
|
|
17
|
-
}
|
|
18
|
-
if (data.pauseOnStop !== undefined) {
|
|
19
|
-
this.pauseOnStop = data.pauseOnStop;
|
|
20
|
-
}
|
|
21
|
-
if (data.stopDelay !== undefined) {
|
|
22
|
-
this.stopDelay = data.stopDelay;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type IOptionLoader, type IParticlesOptions, type RecursivePartial } from "@tsparticles/engine";
|
|
2
|
-
import type { IInteractivityParticle } from "../Interfaces/IInteractivityParticle.js";
|
|
3
|
-
export declare class InteractivityParticle implements IInteractivityParticle, IOptionLoader<IInteractivityParticle> {
|
|
4
|
-
options?: RecursivePartial<IParticlesOptions>;
|
|
5
|
-
pauseOnStop: boolean;
|
|
6
|
-
replaceCursor: boolean;
|
|
7
|
-
stopDelay: number;
|
|
8
|
-
constructor();
|
|
9
|
-
load(data?: RecursivePartial<IInteractivityParticle>): void;
|
|
10
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.InteractivityParticle = void 0;
|
|
13
|
-
const engine_1 = require("@tsparticles/engine");
|
|
14
|
-
class InteractivityParticle {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.replaceCursor = false;
|
|
17
|
-
this.pauseOnStop = false;
|
|
18
|
-
this.stopDelay = 0;
|
|
19
|
-
}
|
|
20
|
-
load(data) {
|
|
21
|
-
if ((0, engine_1.isNull)(data)) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (data.options !== undefined) {
|
|
25
|
-
this.options = (0, engine_1.deepExtend)({}, data.options);
|
|
26
|
-
}
|
|
27
|
-
if (data.replaceCursor !== undefined) {
|
|
28
|
-
this.replaceCursor = data.replaceCursor;
|
|
29
|
-
}
|
|
30
|
-
if (data.pauseOnStop !== undefined) {
|
|
31
|
-
this.pauseOnStop = data.pauseOnStop;
|
|
32
|
-
}
|
|
33
|
-
if (data.stopDelay !== undefined) {
|
|
34
|
-
this.stopDelay = data.stopDelay;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.InteractivityParticle = InteractivityParticle;
|
|
39
|
-
});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|