@tsparticles/interaction-particles-links 4.0.0-alpha.5 → 4.0.0-beta.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.
Files changed (61) hide show
  1. package/13.min.js +1 -0
  2. package/342.min.js +1 -0
  3. package/823.min.js +1 -0
  4. package/README.md +5 -0
  5. package/browser/CircleWarp.js +34 -18
  6. package/browser/LinkInstance.js +138 -131
  7. package/browser/Linker.js +49 -50
  8. package/browser/LinksPlugin.js +2 -1
  9. package/browser/Options/Classes/Links.js +12 -0
  10. package/browser/Options/Classes/LinksShadow.js +3 -0
  11. package/browser/Options/Classes/LinksTriangle.js +4 -0
  12. package/browser/Utils.js +2 -83
  13. package/browser/index.js +7 -4
  14. package/cjs/CircleWarp.js +34 -18
  15. package/cjs/LinkInstance.js +138 -131
  16. package/cjs/Linker.js +49 -50
  17. package/cjs/LinksPlugin.js +2 -1
  18. package/cjs/Options/Classes/Links.js +12 -0
  19. package/cjs/Options/Classes/LinksShadow.js +3 -0
  20. package/cjs/Options/Classes/LinksTriangle.js +4 -0
  21. package/cjs/Utils.js +2 -83
  22. package/cjs/index.js +7 -4
  23. package/dist_browser_LinkInstance_js.js +3 -3
  24. package/dist_browser_Linker_js.js +3 -3
  25. package/dist_browser_LinksPlugin_js.js +2 -2
  26. package/esm/CircleWarp.js +34 -18
  27. package/esm/LinkInstance.js +138 -131
  28. package/esm/Linker.js +49 -50
  29. package/esm/LinksPlugin.js +2 -1
  30. package/esm/Options/Classes/Links.js +12 -0
  31. package/esm/Options/Classes/LinksShadow.js +3 -0
  32. package/esm/Options/Classes/LinksTriangle.js +4 -0
  33. package/esm/Utils.js +2 -83
  34. package/esm/index.js +7 -4
  35. package/package.json +4 -3
  36. package/report.html +3 -3
  37. package/tsparticles.interaction.particles.links.js +45 -33
  38. package/tsparticles.interaction.particles.links.min.js +2 -2
  39. package/types/CircleWarp.d.ts +2 -2
  40. package/types/Interfaces.d.ts +4 -2
  41. package/types/LinkInstance.d.ts +6 -6
  42. package/types/Linker.d.ts +4 -1
  43. package/types/LinksPlugin.d.ts +1 -1
  44. package/types/Types.d.ts +11 -20
  45. package/types/Utils.d.ts +1 -5
  46. package/umd/CircleWarp.js +33 -17
  47. package/umd/LinkInstance.js +136 -129
  48. package/umd/Linker.js +48 -49
  49. package/umd/LinksPlugin.js +2 -1
  50. package/umd/Options/Classes/Links.js +12 -0
  51. package/umd/Options/Classes/LinksShadow.js +3 -0
  52. package/umd/Options/Classes/LinksTriangle.js +4 -0
  53. package/umd/Utils.js +1 -85
  54. package/umd/index.js +7 -4
  55. package/161.min.js +0 -2
  56. package/161.min.js.LICENSE.txt +0 -1
  57. package/29.min.js +0 -2
  58. package/29.min.js.LICENSE.txt +0 -1
  59. package/94.min.js +0 -2
  60. package/94.min.js.LICENSE.txt +0 -1
  61. package/tsparticles.interaction.particles.links.min.js.LICENSE.txt +0 -1
@@ -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.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -28,13 +28,33 @@ return /******/ (() => { // webpackBootstrap
28
28
  /******/ "use strict";
29
29
  /******/ var __webpack_modules__ = ({
30
30
 
31
+ /***/ "@tsparticles/engine"
32
+ /*!*********************************************************************************************************************************!*\
33
+ !*** external {"commonjs":"@tsparticles/engine","commonjs2":"@tsparticles/engine","amd":"@tsparticles/engine","root":"window"} ***!
34
+ \*********************************************************************************************************************************/
35
+ (module) {
36
+
37
+ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
38
+
39
+ /***/ },
40
+
41
+ /***/ "@tsparticles/plugin-interactivity"
42
+ /*!***************************************************************************************************************************************************************************!*\
43
+ !*** external {"commonjs":"@tsparticles/plugin-interactivity","commonjs2":"@tsparticles/plugin-interactivity","amd":"@tsparticles/plugin-interactivity","root":"window"} ***!
44
+ \***************************************************************************************************************************************************************************/
45
+ (module) {
46
+
47
+ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
48
+
49
+ /***/ },
50
+
31
51
  /***/ "./dist/browser/Options/Classes/Links.js"
32
52
  /*!***********************************************!*\
33
53
  !*** ./dist/browser/Options/Classes/Links.js ***!
34
54
  \***********************************************/
35
55
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36
56
 
37
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Links: () => (/* binding */ Links)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LinksShadow.js */ \"./dist/browser/Options/Classes/LinksShadow.js\");\n/* harmony import */ var _LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LinksTriangle.js */ \"./dist/browser/Options/Classes/LinksTriangle.js\");\n\n\n\nclass Links {\n constructor() {\n this.blink = false;\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new _LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__.LinksShadow();\n this.triangles = new _LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__.LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/Options/Classes/Links.js?\n}");
57
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Links: () => (/* binding */ Links)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LinksShadow.js */ \"./dist/browser/Options/Classes/LinksShadow.js\");\n/* harmony import */ var _LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LinksTriangle.js */ \"./dist/browser/Options/Classes/LinksTriangle.js\");\n\n\n\nclass Links {\n blink;\n color;\n consent;\n distance;\n enable;\n frequency;\n id;\n opacity;\n shadow;\n triangles;\n warp;\n width;\n constructor(){\n this.blink = false;\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new _LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__.LinksShadow();\n this.triangles = new _LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__.LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/Options/Classes/Links.js?\n}");
38
58
 
39
59
  /***/ },
40
60
 
@@ -44,7 +64,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
44
64
  \*****************************************************/
45
65
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
46
66
 
47
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LinksShadow: () => (/* binding */ LinksShadow)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nclass LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/Options/Classes/LinksShadow.js?\n}");
67
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LinksShadow: () => (/* binding */ LinksShadow)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nclass LinksShadow {\n blur;\n color;\n enable;\n constructor(){\n this.blur = 5;\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/Options/Classes/LinksShadow.js?\n}");
48
68
 
49
69
  /***/ },
50
70
 
@@ -54,7 +74,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
54
74
  \*******************************************************/
55
75
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
56
76
 
57
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LinksTriangle: () => (/* binding */ LinksTriangle)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nclass LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/Options/Classes/LinksTriangle.js?\n}");
77
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LinksTriangle: () => (/* binding */ LinksTriangle)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nclass LinksTriangle {\n color;\n enable;\n frequency;\n opacity;\n constructor(){\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/Options/Classes/LinksTriangle.js?\n}");
58
78
 
59
79
  /***/ },
60
80
 
@@ -64,27 +84,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
64
84
  \*******************************/
65
85
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
66
86
 
67
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Links: () => (/* reexport safe */ _Options_Classes_Links_js__WEBPACK_IMPORTED_MODULE_0__.Links),\n/* harmony export */ LinksShadow: () => (/* reexport safe */ _Options_Classes_LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__.LinksShadow),\n/* harmony export */ LinksTriangle: () => (/* reexport safe */ _Options_Classes_LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__.LinksTriangle),\n/* harmony export */ loadParticlesLinksInteraction: () => (/* binding */ loadParticlesLinksInteraction)\n/* harmony export */ });\n/* harmony import */ var _Options_Classes_Links_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Options/Classes/Links.js */ \"./dist/browser/Options/Classes/Links.js\");\n/* harmony import */ var _Options_Classes_LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/LinksShadow.js */ \"./dist/browser/Options/Classes/LinksShadow.js\");\n/* harmony import */ var _Options_Classes_LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/LinksTriangle.js */ \"./dist/browser/Options/Classes/LinksTriangle.js\");\nasync function loadParticlesLinksInteraction(engine) {\n engine.checkVersion(\"4.0.0-alpha.5\");\n await 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 {\n LinksPlugin\n } = await __webpack_require__.e(/*! import() */ \"dist_browser_LinksPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./LinksPlugin.js */ \"./dist/browser/LinksPlugin.js\"));\n await loadInteractivityPlugin(e);\n e.addPlugin(new LinksPlugin(e));\n e.addInteractor?.(\"particlesLinks\", async container => {\n const {\n Linker\n } = await __webpack_require__.e(/*! import() */ \"dist_browser_Linker_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Linker.js */ \"./dist/browser/Linker.js\"));\n return new Linker(container, engine);\n });\n });\n}\n\n\n\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/index.js?\n}");
68
-
69
- /***/ },
70
-
71
- /***/ "@tsparticles/engine"
72
- /*!*********************************************************************************************************************************!*\
73
- !*** external {"commonjs":"@tsparticles/engine","commonjs2":"@tsparticles/engine","amd":"@tsparticles/engine","root":"window"} ***!
74
- \*********************************************************************************************************************************/
75
- (module) {
76
-
77
- module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
78
-
79
- /***/ },
80
-
81
- /***/ "@tsparticles/plugin-interactivity"
82
- /*!***************************************************************************************************************************************************************************!*\
83
- !*** external {"commonjs":"@tsparticles/plugin-interactivity","commonjs2":"@tsparticles/plugin-interactivity","amd":"@tsparticles/plugin-interactivity","root":"window"} ***!
84
- \***************************************************************************************************************************************************************************/
85
- (module) {
86
-
87
- module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
87
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Links: () => (/* reexport safe */ _Options_Classes_Links_js__WEBPACK_IMPORTED_MODULE_0__.Links),\n/* harmony export */ LinksShadow: () => (/* reexport safe */ _Options_Classes_LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__.LinksShadow),\n/* harmony export */ LinksTriangle: () => (/* reexport safe */ _Options_Classes_LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__.LinksTriangle),\n/* harmony export */ loadParticlesLinksInteraction: () => (/* binding */ loadParticlesLinksInteraction)\n/* harmony export */ });\n/* harmony import */ var _Options_Classes_Links_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Options/Classes/Links.js */ \"./dist/browser/Options/Classes/Links.js\");\n/* harmony import */ var _Options_Classes_LinksShadow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/LinksShadow.js */ \"./dist/browser/Options/Classes/LinksShadow.js\");\n/* harmony import */ var _Options_Classes_LinksTriangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/LinksTriangle.js */ \"./dist/browser/Options/Classes/LinksTriangle.js\");\nasync function loadParticlesLinksInteraction(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { LinksPlugin }] = await Promise.all([\n Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\", 19)),\n __webpack_require__.e(/*! import() */ \"dist_browser_LinksPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./LinksPlugin.js */ \"./dist/browser/LinksPlugin.js\"))\n ]);\n ensureInteractivityPluginLoaded(e);\n e.addPlugin(new LinksPlugin(e));\n e.addInteractor?.(\"particlesLinks\", async (container)=>{\n const { Linker } = await __webpack_require__.e(/*! import() */ \"dist_browser_Linker_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Linker.js */ \"./dist/browser/Linker.js\"));\n return new Linker(container, e);\n });\n });\n}\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/interaction-particles-links/./dist/browser/index.js?\n}");
88
88
 
89
89
  /***/ }
90
90
 
@@ -100,12 +100,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
100
100
  /******/ if (cachedModule !== undefined) {
101
101
  /******/ return cachedModule.exports;
102
102
  /******/ }
103
- /******/ // Check if module exists (development only)
104
- /******/ if (__webpack_modules__[moduleId] === undefined) {
105
- /******/ var e = new Error("Cannot find module '" + moduleId + "'");
106
- /******/ e.code = 'MODULE_NOT_FOUND';
107
- /******/ throw e;
108
- /******/ }
109
103
  /******/ // Create a new module (and put it into the cache)
110
104
  /******/ var module = __webpack_module_cache__[moduleId] = {
111
105
  /******/ // no module.id needed
@@ -114,6 +108,12 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
114
108
  /******/ };
115
109
  /******/
116
110
  /******/ // Execute the module function
111
+ /******/ if (!(moduleId in __webpack_modules__)) {
112
+ /******/ delete __webpack_module_cache__[moduleId];
113
+ /******/ var e = new Error("Cannot find module '" + moduleId + "'");
114
+ /******/ e.code = 'MODULE_NOT_FOUND';
115
+ /******/ throw e;
116
+ /******/ }
117
117
  /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
118
118
  /******/
119
119
  /******/ // Return the exports of the module
@@ -188,6 +188,18 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
188
188
  /******/ };
189
189
  /******/ })();
190
190
  /******/
191
+ /******/ /* webpack/runtime/global */
192
+ /******/ (() => {
193
+ /******/ __webpack_require__.g = (function() {
194
+ /******/ if (typeof globalThis === 'object') return globalThis;
195
+ /******/ try {
196
+ /******/ return this || new Function('return this')();
197
+ /******/ } catch (e) {
198
+ /******/ if (typeof window === 'object') return window;
199
+ /******/ }
200
+ /******/ })();
201
+ /******/ })();
202
+ /******/
191
203
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
192
204
  /******/ (() => {
193
205
  /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
@@ -252,8 +264,8 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
252
264
  /******/ /* webpack/runtime/publicPath */
253
265
  /******/ (() => {
254
266
  /******/ var scriptUrl;
255
- /******/ if (globalThis.importScripts) scriptUrl = globalThis.location + "";
256
- /******/ var document = globalThis.document;
267
+ /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
268
+ /******/ var document = __webpack_require__.g.document;
257
269
  /******/ if (!scriptUrl && document) {
258
270
  /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')
259
271
  /******/ scriptUrl = document.currentScript.src;
@@ -1,2 +1,2 @@
1
- /*! For license information please see tsparticles.interaction.particles.links.min.js.LICENSE.txt */
2
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"),require("@tsparticles/plugin-interactivity"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine","@tsparticles/plugin-interactivity"],t);else{var i="object"==typeof exports?t(require("@tsparticles/engine"),require("@tsparticles/plugin-interactivity")):t(e.window,e.window);for(var r in i)("object"==typeof exports?exports:e)[r]=i[r]}}(this,((e,t)=>(()=>{var i,r,o,n,a={0(e,t,i){i.d(t,{s:()=>o});var r=i(303);class o{constructor(){this.blur=5,this.color=new r.OptionsColor,this.color.value="#000",this.enable=!1}load(e){(0,r.isNull)(e)||(void 0!==e.blur&&(this.blur=e.blur),this.color=r.OptionsColor.create(this.color,e.color),void 0!==e.enable&&(this.enable=e.enable))}}},132(e,t,i){i.d(t,{G:()=>o});var r=i(303);class o{constructor(){this.enable=!1,this.frequency=1}load(e){(0,r.isNull)(e)||(void 0!==e.color&&(this.color=r.OptionsColor.create(this.color,e.color)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.frequency&&(this.frequency=e.frequency),void 0!==e.opacity&&(this.opacity=e.opacity))}}},303(t){t.exports=e},702(e){e.exports=t},880(e,t,i){i.d(t,{q:()=>a});var r=i(303),o=i(0),n=i(132);class a{constructor(){this.blink=!1,this.color=new r.OptionsColor,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new o.s,this.triangles=new n.G,this.width=1,this.warp=!1}load(e){(0,r.isNull)(e)||(void 0!==e.id&&(this.id=e.id),void 0!==e.blink&&(this.blink=e.blink),this.color=r.OptionsColor.create(this.color,e.color),void 0!==e.consent&&(this.consent=e.consent),void 0!==e.distance&&(this.distance=e.distance),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.frequency&&(this.frequency=e.frequency),void 0!==e.opacity&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),void 0!==e.width&&(this.width=e.width),void 0!==e.warp&&(this.warp=e.warp))}}}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return a[e](i,i.exports,l),i.exports}l.m=a,r=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 o=Object.create(null);l.r(o);var n={};i=i||[null,r({}),r([]),r(r)];for(var a=2&t&&e;("object"==typeof a||"function"==typeof a)&&!~i.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,l.d(o,n),o},l.d=(e,t)=>{for(var i in t)l.o(t,i)&&!l.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce(((t,i)=>(l.f[i](e,t),t)),[])),l.u=e=>e+".min.js",l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},n="@tsparticles/interaction-particles-links:",l.l=(e,t,i,r)=>{if(o[e])o[e].push(t);else{var a,s;if(void 0!==i)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var p=c[d];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==n+i){a=p;break}}a||(s=!0,(a=document.createElement("script")).charset="utf-8",l.nc&&a.setAttribute("nonce",l.nc),a.setAttribute("data-webpack",n+i),a.src=e),o[e]=[t];var u=(t,i)=>{a.onerror=a.onload=null,clearTimeout(h);var r=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),r&&r.forEach((e=>e(i))),t)return t(i)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),s&&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 i=t.getElementsByTagName("script");if(i.length)for(var r=i.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=i[r--].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={203:0};l.f.j=(t,i)=>{var r=l.o(e,t)?e[t]:void 0;if(0!==r)if(r)i.push(r[2]);else{var o=new Promise(((i,o)=>r=e[t]=[i,o]));i.push(r[2]=o);var n=l.p+l.u(t),a=new Error;l.l(n,(i=>{if(l.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=i&&("load"===i.type?"missing":i.type),n=i&&i.target&&i.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",a.name="ChunkLoadError",a.type=o,a.request=n,r[1](a)}}),"chunk-"+t,t)}};var t=(t,i)=>{var r,o,[n,a,s]=i,c=0;if(n.some((t=>0!==e[t]))){for(r in a)l.o(a,r)&&(l.m[r]=a[r]);if(s)s(l)}for(t&&t(i);c<n.length;c++)o=n[c],l.o(e,o)&&e[o]&&e[o][0](),e[o]=0},i=this.webpackChunk_tsparticles_interaction_particles_links=this.webpackChunk_tsparticles_interaction_particles_links||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))})();var c={};l.r(c),l.d(c,{Links:()=>d.q,LinksShadow:()=>p.s,LinksTriangle:()=>u.G,loadParticlesLinksInteraction:()=>h});var d=l(880),p=l(0),u=l(132);async function h(e){e.checkVersion("4.0.0-alpha.5"),await e.register((async t=>{const{loadInteractivityPlugin:i}=await Promise.resolve().then(l.t.bind(l,702,19)),{LinksPlugin:r}=await l.e(161).then(l.bind(l,161));await i(t),t.addPlugin(new r(t)),t.addInteractor?.("particlesLinks",(async t=>{const{Linker:i}=await l.e(94).then(l.bind(l,94));return new i(t,e)}))}))}return c})()));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"),require("@tsparticles/plugin-interactivity"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine","@tsparticles/plugin-interactivity"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine"),require("@tsparticles/plugin-interactivity")):t(e.window,e.window);for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(this,(e,t)=>(()=>{"use strict";var r,i,o,n={303(t){t.exports=e},702(e){e.exports=t},348(e,t,r){r.d(t,{q:()=>s});var i=r(303),o=r(724),n=r(200);class s{blink;color;consent;distance;enable;frequency;id;opacity;shadow;triangles;warp;width;constructor(){this.blink=!1,this.color=new i.OptionsColor,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new o.s,this.triangles=new n.G,this.width=1,this.warp=!1}load(e){(0,i.isNull)(e)||(void 0!==e.id&&(this.id=e.id),void 0!==e.blink&&(this.blink=e.blink),this.color=i.OptionsColor.create(this.color,e.color),void 0!==e.consent&&(this.consent=e.consent),void 0!==e.distance&&(this.distance=e.distance),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.frequency&&(this.frequency=e.frequency),void 0!==e.opacity&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),void 0!==e.width&&(this.width=e.width),void 0!==e.warp&&(this.warp=e.warp))}}},724(e,t,r){r.d(t,{s:()=>o});var i=r(303);class o{blur;color;enable;constructor(){this.blur=5,this.color=new i.OptionsColor,this.color.value="#000",this.enable=!1}load(e){(0,i.isNull)(e)||(void 0!==e.blur&&(this.blur=e.blur),this.color=i.OptionsColor.create(this.color,e.color),void 0!==e.enable&&(this.enable=e.enable))}}},200(e,t,r){r.d(t,{G:()=>o});var i=r(303);class o{color;enable;frequency;opacity;constructor(){this.enable=!1,this.frequency=1}load(e){(0,i.isNull)(e)||(void 0!==e.color&&(this.color=i.OptionsColor.create(this.color,e.color)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.frequency&&(this.frequency=e.frequency),void 0!==e.opacity&&(this.opacity=e.opacity))}}}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var r=s[e]={exports:{}};return n[e](r,r.exports,a),r.exports}a.m=n,c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,t){if(1&t&&(e=this(e)),8&t||"object"==typeof e&&e&&(4&t&&e.__esModule||16&t&&"function"==typeof e.then))return e;var r=Object.create(null);a.r(r);var i={};l=l||[null,c({}),c([]),c(c)];for(var o=2&t&&e;("object"==typeof o||"function"==typeof o)&&!~l.indexOf(o);o=c(o))Object.getOwnPropertyNames(o).forEach(t=>i[t]=()=>e[t]);return i.default=()=>e,a.d(r,i),r},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce((t,r)=>(a.f[r](e,t),t),[])),a.u=e=>""+e+".min.js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={},a.l=(e,t,r,i)=>{if(p[e])return void p[e].push(t);if(void 0!==r)for(var o,n,s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var c=s[l];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")=="@tsparticles/interaction-particles-links:"+r){o=c;break}}o||(n=!0,(o=document.createElement("script")).charset="utf-8",a.nc&&o.setAttribute("nonce",a.nc),o.setAttribute("data-webpack","@tsparticles/interaction-particles-links:"+r),o.src=e),p[e]=[t];var d=(t,r)=>{o.onerror=o.onload=null,clearTimeout(u);var i=p[e];if(delete p[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach(e=>e(r)),t)return t(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=d.bind(null,o.onerror),o.onload=d.bind(null,o.onload),n&&document.head.appendChild(o)},a.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.g.importScripts&&(d=a.g.location+"");var l,c,p,d,u=a.g.document;if(!d&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(d=u.currentScript.src),!d)){var h=u.getElementsByTagName("script");if(h.length)for(var f=h.length-1;f>-1&&(!d||!/^http(s?):/.test(d));)d=h[f--].src}if(!d)throw Error("Automatic publicPath is not supported in this browser");a.p=d=d.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={203:0},a.f.j=(e,t)=>{var i=a.o(r,e)?r[e]:void 0;if(0!==i)if(i)t.push(i[2]);else{var o=new Promise((t,o)=>i=r[e]=[t,o]);t.push(i[2]=o);var n=a.p+a.u(e),s=Error();a.l(n,t=>{if(a.o(r,e)&&(0!==(i=r[e])&&(r[e]=void 0),i)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;s.message="Loading chunk "+e+` failed.
2
+ (`+o+": "+n+")",s.name="ChunkLoadError",s.type=o,s.request=n,i[1](s)}},"chunk-"+e,e)}},i=(e,t)=>{var i,o,[n,s,l]=t,c=0;if(n.some(e=>0!==r[e])){for(i in s)a.o(s,i)&&(a.m[i]=s[i]);l&&l(a)}for(e&&e(t);c<n.length;c++)o=n[c],a.o(r,o)&&r[o]&&r[o][0](),r[o]=0},(o=this.webpackChunk_tsparticles_interaction_particles_links=this.webpackChunk_tsparticles_interaction_particles_links||[]).forEach(i.bind(null,0)),o.push=i.bind(null,o.push.bind(o));var b={};a.r(b),a.d(b,{Links:()=>v.q,LinksShadow:()=>y.s,LinksTriangle:()=>g.G,loadParticlesLinksInteraction:()=>w});var v=a(348),y=a(724),g=a(200);async function w(e){e.checkVersion("4.0.0-beta.0"),await e.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{LinksPlugin:r}]=await Promise.all([Promise.resolve().then(a.t.bind(a,702,19)),a.e(13).then(a.bind(a,13))]);t(e),e.addPlugin(new r(e)),e.addInteractor?.("particlesLinks",async t=>{let{Linker:r}=await a.e(342).then(a.bind(a,342));return new r(t,e)})})}return b})());
@@ -1,7 +1,7 @@
1
- import { type BaseRange, Circle, type ICoordinates, type IDimension } from "@tsparticles/engine";
1
+ import { Circle, type ICoordinates, type IDimension, Rectangle } from "@tsparticles/engine";
2
2
  export declare class CircleWarp extends Circle {
3
3
  private readonly canvasSize;
4
4
  constructor(x: number, y: number, radius: number, canvasSize: IDimension);
5
5
  contains(point: ICoordinates): boolean;
6
- intersects(range: BaseRange): boolean;
6
+ intersects(range: Rectangle | Circle): boolean;
7
7
  }
@@ -1,7 +1,9 @@
1
- import type { IRangeColor, RangeValue } from "@tsparticles/engine";
1
+ import type { IRangeColor, IRgb, RangeValue } from "@tsparticles/engine";
2
2
  import type { LinkParticle } from "./Types.js";
3
3
  export interface ILink {
4
+ color?: IRgb;
4
5
  destination: LinkParticle;
6
+ isWarped?: boolean;
5
7
  opacity: number;
6
8
  }
7
9
  export interface ILinkTriangle {
@@ -13,7 +15,7 @@ export interface IParticlesFrequencies {
13
15
  triangles: Map<string, number>;
14
16
  }
15
17
  export interface ITwinkle {
16
- lines: {
18
+ links: {
17
19
  color: IRangeColor;
18
20
  enable: boolean;
19
21
  frequency: number;
@@ -1,17 +1,17 @@
1
1
  import { type Engine, type IContainerPlugin } from "@tsparticles/engine";
2
2
  import type { LinkContainer, LinkParticle } from "./Types.js";
3
3
  export declare class LinkInstance implements IContainerPlugin {
4
+ private readonly _colorCache;
4
5
  private readonly _container;
5
6
  private readonly _engine;
6
7
  private readonly _freqs;
7
8
  constructor(container: LinkContainer, engine: Engine);
8
- drawParticle(_context: CanvasRenderingContext2D, particle: LinkParticle): void;
9
+ drawParticle(context: CanvasRenderingContext2D, particle: LinkParticle): void;
9
10
  init(): Promise<void>;
10
11
  particleCreated(particle: LinkParticle): void;
11
12
  particleDestroyed(particle: LinkParticle): void;
12
- private readonly _drawLinkLine;
13
- private readonly _drawLinkTriangle;
14
- private readonly _drawTriangles;
15
- private readonly _getLinkFrequency;
16
- private readonly _getTriangleFrequency;
13
+ private _drawTriangles;
14
+ private _getCachedStyle;
15
+ private _getLinkFrequency;
16
+ private _getTriangleFrequency;
17
17
  }
package/types/Linker.d.ts CHANGED
@@ -3,12 +3,15 @@ import type { IParticlesLinkOptions, LinkContainer, LinkParticle, ParticlesLinkO
3
3
  import { ParticlesInteractorBase } from "@tsparticles/plugin-interactivity";
4
4
  export declare class Linker extends ParticlesInteractorBase<LinkContainer, LinkParticle> {
5
5
  private readonly _engine;
6
+ private _maxDistance;
6
7
  constructor(container: LinkContainer, engine: Engine);
8
+ get maxDistance(): number;
7
9
  clear(): void;
8
10
  init(): void;
9
11
  interact(p1: LinkParticle): void;
10
12
  isEnabled(particle: LinkParticle): boolean;
11
13
  loadParticlesOptions(options: ParticlesLinkOptions, ...sources: (RecursivePartial<IParticlesLinkOptions> | undefined)[]): void;
12
14
  reset(): void;
13
- private readonly _setColor;
15
+ private _getLinkColor;
16
+ private _setColor;
14
17
  }
@@ -2,7 +2,7 @@ import { type Engine, type IPlugin } from "@tsparticles/engine";
2
2
  import type { LinkContainer } from "./Types.js";
3
3
  import type { LinkInstance } from "./LinkInstance.js";
4
4
  export declare class LinksPlugin implements IPlugin {
5
- readonly id: string;
5
+ readonly id = "links";
6
6
  private readonly _engine;
7
7
  constructor(engine: Engine);
8
8
  getPlugin(container: LinkContainer): Promise<LinkInstance>;
package/types/Types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { ICoordinates, IDimension, IRgb } from "@tsparticles/engine";
2
- import type { IInteractivityParticlesOptions, InteractivityContainer, InteractivityEngine, InteractivityParticle, InteractivityParticlesOptions } from "@tsparticles/plugin-interactivity";
1
+ import type { IInteractivityParticlesOptions, InteractivityContainer, InteractivityParticle, InteractivityParticlesOptions } from "@tsparticles/plugin-interactivity";
3
2
  import type { ILink } from "./Interfaces.js";
4
3
  import type { ILinks } from "./Options/Interfaces/ILinks.js";
4
+ import type { IRgb } from "@tsparticles/engine";
5
5
  import type { Links } from "./Options/Classes/Links.js";
6
6
  export type LinkContainer = InteractivityContainer & {
7
7
  particles: {
@@ -11,33 +11,24 @@ export type LinkContainer = InteractivityContainer & {
11
11
  };
12
12
  export type LinkParticle = InteractivityParticle & {
13
13
  links?: ILink[];
14
+ linksDistance?: number;
15
+ linksWidth?: number;
14
16
  options: ParticlesLinkOptions;
15
17
  retina: {
16
18
  linksDistance?: number;
17
19
  linksWidth?: number;
18
20
  };
19
21
  };
20
- export interface LinkLineDrawParams {
21
- begin: ICoordinates;
22
- canvasSize: IDimension;
23
- colorLine: IRgb;
24
- context: CanvasRenderingContext2D;
25
- end: ICoordinates;
26
- engine: InteractivityEngine;
27
- hdr: boolean;
28
- links: Links;
29
- maxDistance: number;
22
+ export interface LinkBatch {
23
+ colorStyle: string;
24
+ coords: number[];
30
25
  opacity: number;
31
26
  width: number;
32
27
  }
33
- export interface LinkTriangleDrawParams {
34
- colorTriangle: IRgb;
35
- context: CanvasRenderingContext2D;
36
- hdr: boolean;
37
- opacityTriangle: number;
38
- pos1: ICoordinates;
39
- pos2: ICoordinates;
40
- pos3: ICoordinates;
28
+ export interface TriangleBatch {
29
+ colorStyle: string;
30
+ coords: number[];
31
+ opacity: number;
41
32
  }
42
33
  export type IParticlesLinkOptions = IInteractivityParticlesOptions & {
43
34
  links?: ILinks;
package/types/Utils.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- import { type ICoordinates } from "@tsparticles/engine";
2
- import type { LinkLineDrawParams, LinkParticle, LinkTriangleDrawParams } from "./Types.js";
3
- export declare function drawTriangle(context: CanvasRenderingContext2D, p1: ICoordinates, p2: ICoordinates, p3: ICoordinates): void;
4
- export declare function drawLinkLine(params: LinkLineDrawParams): void;
5
- export declare function drawLinkTriangle(params: LinkTriangleDrawParams): void;
1
+ import type { LinkParticle } from "./Types.js";
6
2
  export declare function getLinkKey(ids: number[]): string;
7
3
  export declare function setLinkFrequency(particles: LinkParticle[], dictionary: Map<string, number>): number;
package/umd/CircleWarp.js CHANGED
@@ -12,33 +12,49 @@
12
12
  exports.CircleWarp = void 0;
13
13
  const engine_1 = require("@tsparticles/engine");
14
14
  class CircleWarp extends engine_1.Circle {
15
+ canvasSize;
15
16
  constructor(x, y, radius, canvasSize) {
16
17
  super(x, y, radius);
17
18
  this.canvasSize = canvasSize;
18
- this.canvasSize = { ...canvasSize };
19
19
  }
20
20
  contains(point) {
21
+ if (super.contains(point))
22
+ return true;
21
23
  const { width, height } = this.canvasSize, { x, y } = point;
22
- return (super.contains(point) ||
23
- super.contains({ x: x - width, y }) ||
24
+ return (super.contains({ x: x - width, y }) ||
25
+ super.contains({ x: x + width, y }) ||
26
+ super.contains({ x, y: y - height }) ||
27
+ super.contains({ x, y: y + height }) ||
24
28
  super.contains({ x: x - width, y: y - height }) ||
25
- super.contains({ x, y: y - height }));
29
+ super.contains({ x: x + width, y: y + height }) ||
30
+ super.contains({ x: x - width, y: y + height }) ||
31
+ super.contains({ x: x + width, y: y - height }));
26
32
  }
27
33
  intersects(range) {
28
- if (super.intersects(range)) {
34
+ if (super.intersects(range))
29
35
  return true;
30
- }
31
- const rect = range, circle = range, newPos = {
32
- x: range.position.x - this.canvasSize.width,
33
- y: range.position.y - this.canvasSize.height,
34
- };
35
- if (Object.hasOwn(circle, "radius")) {
36
- const biggerCircle = new engine_1.Circle(newPos.x, newPos.y, circle.radius * engine_1.double);
37
- return super.intersects(biggerCircle);
38
- }
39
- else if (Object.hasOwn(rect, "size")) {
40
- const rectSW = new engine_1.Rectangle(newPos.x, newPos.y, rect.size.width * engine_1.double, rect.size.height * engine_1.double);
41
- return super.intersects(rectSW);
36
+ const { width, height } = this.canvasSize, pos = range.position, shifts = [
37
+ { x: -width, y: 0 },
38
+ { x: width, y: 0 },
39
+ { x: 0, y: -height },
40
+ { x: 0, y: height },
41
+ { x: -width, y: -height },
42
+ { x: width, y: height },
43
+ { x: -width, y: height },
44
+ { x: width, y: -height },
45
+ ];
46
+ for (const shift of shifts) {
47
+ const shiftedPos = { x: pos.x + shift.x, y: pos.y + shift.y };
48
+ let shiftedRange;
49
+ if (range instanceof engine_1.Circle) {
50
+ shiftedRange = new engine_1.Circle(shiftedPos.x, shiftedPos.y, range.radius);
51
+ }
52
+ else {
53
+ const rect = range;
54
+ shiftedRange = new engine_1.Rectangle(shiftedPos.x, shiftedPos.y, rect.size.width, rect.size.height);
55
+ }
56
+ if (super.intersects(shiftedRange))
57
+ return true;
42
58
  }
43
59
  return false;
44
60
  }