@tsparticles/plugin-absorbers 4.0.0-beta.0 → 4.0.0-beta.2

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/122.min.js +1 -0
  2. package/{497.min.js → 285.min.js} +1 -1
  3. package/677.min.js +1 -0
  4. package/698.min.js +1 -0
  5. package/920.min.js +1 -0
  6. package/998.min.js +1 -0
  7. package/README.md +2 -2
  8. package/browser/AbsorberInstance.js +18 -24
  9. package/browser/AbsorbersInstancesManager.js +4 -4
  10. package/browser/getAbsorbersInstancesManager.js +11 -0
  11. package/browser/index.js +5 -14
  12. package/browser/interaction.js +15 -0
  13. package/browser/plugin.js +11 -0
  14. package/cjs/AbsorberInstance.js +18 -24
  15. package/cjs/AbsorbersInstancesManager.js +4 -4
  16. package/cjs/getAbsorbersInstancesManager.js +11 -0
  17. package/cjs/index.js +5 -14
  18. package/cjs/interaction.js +15 -0
  19. package/cjs/plugin.js +11 -0
  20. package/dist_browser_AbsorberInstance_js.js +2 -2
  21. package/dist_browser_AbsorbersInstancesManager_js.js +2 -2
  22. package/dist_browser_AbsorbersInteractor_js.js +1 -1
  23. package/dist_browser_AbsorbersPluginInstance_js.js +1 -1
  24. package/dist_browser_AbsorbersPlugin_js.js +1 -1
  25. package/dist_browser_getAbsorbersInstancesManager_js.js +30 -0
  26. package/esm/AbsorberInstance.js +18 -24
  27. package/esm/AbsorbersInstancesManager.js +4 -4
  28. package/esm/getAbsorbersInstancesManager.js +11 -0
  29. package/esm/index.js +5 -14
  30. package/esm/interaction.js +15 -0
  31. package/esm/plugin.js +11 -0
  32. package/package.json +24 -6
  33. package/report.html +84 -29
  34. package/tsparticles.plugin.absorbers.js +26 -6
  35. package/tsparticles.plugin.absorbers.min.js +2 -2
  36. package/types/AbsorberInstance.d.ts +4 -4
  37. package/types/AbsorbersInstancesManager.d.ts +3 -3
  38. package/types/AbsorbersPluginInstance.d.ts +2 -2
  39. package/types/getAbsorbersInstancesManager.d.ts +3 -0
  40. package/types/interaction.d.ts +3 -0
  41. package/types/plugin.d.ts +3 -0
  42. package/162.min.js +0 -1
  43. package/166.min.js +0 -1
  44. package/49.min.js +0 -1
  45. package/598.min.js +0 -1
  46. package/umd/AbsorberContainer.js +0 -12
  47. package/umd/AbsorberInstance.js +0 -217
  48. package/umd/AbsorbersInstancesManager.js +0 -97
  49. package/umd/AbsorbersInteractor.js +0 -109
  50. package/umd/AbsorbersPlugin.js +0 -86
  51. package/umd/AbsorbersPluginInstance.js +0 -56
  52. package/umd/Options/Classes/Absorber.js +0 -74
  53. package/umd/Options/Classes/AbsorberLife.js +0 -41
  54. package/umd/Options/Classes/AbsorberSize.js +0 -41
  55. package/umd/Options/Classes/AbsorberSizeLimit.js +0 -34
  56. package/umd/Options/Interfaces/IAbsorber.js +0 -12
  57. package/umd/Options/Interfaces/IAbsorberLife.js +0 -12
  58. package/umd/Options/Interfaces/IAbsorberSize.js +0 -12
  59. package/umd/Options/Interfaces/IAbsorberSizeLimit.js +0 -12
  60. package/umd/index.js +0 -63
  61. package/umd/types.js +0 -12
@@ -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-beta.0
7
+ * v4.0.0-beta.2
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/plugin-interactivity"), require("@tsparticles/engine"));
19
+ module.exports = factory(require("@tsparticles/engine"), require("@tsparticles/plugin-interactivity"));
20
20
  else if(typeof define === 'function' && define.amd)
21
- define(["@tsparticles/plugin-interactivity", "@tsparticles/engine"], factory);
21
+ define(["@tsparticles/engine", "@tsparticles/plugin-interactivity"], factory);
22
22
  else {
23
- var a = typeof exports === 'object' ? factory(require("@tsparticles/plugin-interactivity"), require("@tsparticles/engine")) : factory(root["window"], root["window"]);
23
+ var a = typeof exports === 'object' ? factory(require("@tsparticles/engine"), require("@tsparticles/plugin-interactivity")) : 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_plugin_interactivity__, __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__) => {
26
+ })(this, (__WEBPACK_EXTERNAL_MODULE__tsparticles_engine__, __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__) => {
27
27
  return /******/ (() => { // webpackBootstrap
28
28
  /******/ "use strict";
29
29
  /******/ var __webpack_modules__ = ({
@@ -54,7 +54,27 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
54
54
  \*******************************/
55
55
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
56
56
 
57
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\nasync function loadAbsorbersPlugin(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin }] = 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_AbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInstancesManager.js */ \"./dist/browser/AbsorbersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"./dist/browser/AbsorbersPlugin.js\"))\n ]), instancesManager = new AbsorbersInstancesManager(e);\n ensureInteractivityPluginLoaded(e);\n e.addPlugin(new AbsorbersPlugin(instancesManager));\n e.addInteractor?.(\"externalAbsorbers\", async (container)=>{\n const { AbsorbersInteractor } = await __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInteractor.js */ \"./dist/browser/AbsorbersInteractor.js\"));\n return new AbsorbersInteractor(container, instancesManager);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/index.js?\n}");
57
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _interaction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./interaction.js */ \"./dist/browser/interaction.js\");\n/* harmony import */ var _plugin_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugin.js */ \"./dist/browser/plugin.js\");\n\n\n\nasync function loadAbsorbersPlugin(engine) {\n await (0,_plugin_js__WEBPACK_IMPORTED_MODULE_2__.loadAbsorbersPluginSimple)(engine);\n await (0,_interaction_js__WEBPACK_IMPORTED_MODULE_1__.loadAbsorbersInteraction)(engine);\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/index.js?\n}");
58
+
59
+ /***/ },
60
+
61
+ /***/ "./dist/browser/interaction.js"
62
+ /*!*************************************!*\
63
+ !*** ./dist/browser/interaction.js ***!
64
+ \*************************************/
65
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
66
+
67
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersInteraction: () => (/* binding */ loadAbsorbersInteraction)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nasync function loadAbsorbersInteraction(engine) {\n engine.checkVersion(\"4.0.0-beta.2\");\n await engine.pluginManager.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { getAbsorbersInstancesManager }] = 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_getAbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./getAbsorbersInstancesManager.js */ \"./dist/browser/getAbsorbersInstancesManager.js\"))\n ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);\n ensureInteractivityPluginLoaded(e);\n pluginManager.addInteractor?.(\"externalAbsorbers\", async (container)=>{\n const { AbsorbersInteractor } = await __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInteractor.js */ \"./dist/browser/AbsorbersInteractor.js\"));\n return new AbsorbersInteractor(container, instancesManager);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/interaction.js?\n}");
68
+
69
+ /***/ },
70
+
71
+ /***/ "./dist/browser/plugin.js"
72
+ /*!********************************!*\
73
+ !*** ./dist/browser/plugin.js ***!
74
+ \********************************/
75
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
76
+
77
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPluginSimple: () => (/* binding */ loadAbsorbersPluginSimple)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nasync function loadAbsorbersPluginSimple(engine) {\n engine.checkVersion(\"4.0.0-beta.2\");\n await engine.pluginManager.register(async (e)=>{\n const [{ getAbsorbersInstancesManager }, { AbsorbersPlugin }] = await Promise.all([\n __webpack_require__.e(/*! import() */ \"dist_browser_getAbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./getAbsorbersInstancesManager.js */ \"./dist/browser/getAbsorbersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"./dist/browser/AbsorbersPlugin.js\"))\n ]), pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);\n pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/plugin.js?\n}");
58
78
 
59
79
  /***/ }
60
80
 
@@ -1,2 +1,2 @@
1
- !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 o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(this,(e,t)=>(()=>{"use strict";var r,o,i,n={303(e){e.exports=t},702(t){t.exports=e}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return n[e](r,r.exports,s),r.exports}s.m=n,l=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.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);s.r(r);var o={};c=c||[null,l({}),l([]),l(l)];for(var i=2&t&&e;("object"==typeof i||"function"==typeof i)&&!~c.indexOf(i);i=l(i))Object.getOwnPropertyNames(i).forEach(t=>o[t]=()=>e[t]);return o.default=()=>e,s.d(r,o),r},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>""+e+".min.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={},s.l=(e,t,r,o)=>{if(p[e])return void p[e].push(t);if(void 0!==r)for(var i,n,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var l=a[c];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="@tsparticles/plugin-absorbers:"+r){i=l;break}}i||(n=!0,(i=document.createElement("script")).charset="utf-8",s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack","@tsparticles/plugin-absorbers:"+r),i.src=e),p[e]=[t];var u=(t,r)=>{i.onerror=i.onload=null,clearTimeout(d);var o=p[e];if(delete p[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),n&&document.head.appendChild(i)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.g.importScripts&&(u=s.g.location+"");var c,l,p,u,d=s.g.document;if(!u&&d&&(d.currentScript&&"SCRIPT"===d.currentScript.tagName.toUpperCase()&&(u=d.currentScript.src),!u)){var f=d.getElementsByTagName("script");if(f.length)for(var b=f.length-1;b>-1&&(!u||!/^http(s?):/.test(u));)u=f[b--].src}if(!u)throw Error("Automatic publicPath is not supported in this browser");s.p=u=u.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={425:0},s.f.j=(e,t)=>{var o=s.o(r,e)?r[e]:void 0;if(0!==o)if(o)t.push(o[2]);else{var i=new Promise((t,i)=>o=r[e]=[t,i]);t.push(o[2]=i);var n=s.p+s.u(e),a=Error();s.l(n,t=>{if(s.o(r,e)&&(0!==(o=r[e])&&(r[e]=void 0),o)){var i=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;a.message="Loading chunk "+e+` failed.
2
- (`+i+": "+n+")",a.name="ChunkLoadError",a.type=i,a.request=n,o[1](a)}},"chunk-"+e,e)}},o=(e,t)=>{var o,i,[n,a,c]=t,l=0;if(n.some(e=>0!==r[e])){for(o in a)s.o(a,o)&&(s.m[o]=a[o]);c&&c(s)}for(e&&e(t);l<n.length;l++)i=n[l],s.o(r,i)&&r[i]&&r[i][0](),r[i]=0},(i=this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).forEach(o.bind(null,0)),i.push=o.bind(null,i.push.bind(i));var g={};async function h(e){e.checkVersion("4.0.0-beta.0"),await e.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{AbsorbersInstancesManager:r},{AbsorbersPlugin:o}]=await Promise.all([Promise.resolve().then(s.t.bind(s,702,19)),s.e(598).then(s.bind(s,598)),s.e(162).then(s.bind(s,162))]),i=new r(e);t(e),e.addPlugin(new o(i)),e.addInteractor?.("externalAbsorbers",async e=>{let{AbsorbersInteractor:t}=await s.e(166).then(s.bind(s,166));return new t(e,i)})})}return s.r(g),s.d(g,{loadAbsorbersPlugin:()=>h}),g})());
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 n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(e,t)=>(()=>{"use strict";var r,n,i,o={303(t){t.exports=e},702(e){e.exports=t}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return o[e](r,r.exports,s),r.exports}s.m=o,l=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.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);s.r(r);var n={};c=c||[null,l({}),l([]),l(l)];for(var i=2&t&&e;("object"==typeof i||"function"==typeof i)&&!~c.indexOf(i);i=l(i))Object.getOwnPropertyNames(i).forEach(t=>n[t]=()=>e[t]);return n.default=()=>e,s.d(r,n),r},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>""+e+".min.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p={},s.l=(e,t,r,n)=>{if(p[e])return void p[e].push(t);if(void 0!==r)for(var i,o,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var l=a[c];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="@tsparticles/plugin-absorbers:"+r){i=l;break}}i||(o=!0,(i=document.createElement("script")).charset="utf-8",s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack","@tsparticles/plugin-absorbers:"+r),i.src=e),p[e]=[t];var u=(t,r)=>{i.onerror=i.onload=null,clearTimeout(d);var n=p[e];if(delete p[e],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),o&&document.head.appendChild(i)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.g.importScripts&&(u=s.g.location+"");var c,l,p,u,d=s.g.document;if(!u&&d&&(d.currentScript&&"SCRIPT"===d.currentScript.tagName.toUpperCase()&&(u=d.currentScript.src),!u)){var f=d.getElementsByTagName("script");if(f.length)for(var b=f.length-1;b>-1&&(!u||!/^http(s?):/.test(u));)u=f[b--].src}if(!u)throw Error("Automatic publicPath is not supported in this browser");s.p=u=u.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={425:0},s.f.j=(e,t)=>{var n=s.o(r,e)?r[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var i=new Promise((t,i)=>n=r[e]=[t,i]);t.push(n[2]=i);var o=s.p+s.u(e),a=Error();s.l(o,t=>{if(s.o(r,e)&&(0!==(n=r[e])&&(r[e]=void 0),n)){var i=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;a.message="Loading chunk "+e+` failed.
2
+ (`+i+": "+o+")",a.name="ChunkLoadError",a.type=i,a.request=o,n[1](a)}},"chunk-"+e,e)}},n=(e,t)=>{var n,i,[o,a,c]=t,l=0;if(o.some(e=>0!==r[e])){for(n in a)s.o(a,n)&&(s.m[n]=a[n]);c&&c(s)}for(e&&e(t);l<o.length;l++)i=o[l],s.o(r,i)&&r[i]&&r[i][0](),r[i]=0},(i=this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).forEach(n.bind(null,0)),i.push=n.bind(null,i.push.bind(i));var g={};async function h(e){e.checkVersion("4.0.0-beta.2"),await e.pluginManager.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{getAbsorbersInstancesManager:r}]=await Promise.all([Promise.resolve().then(s.t.bind(s,702,19)),s.e(920).then(s.bind(s,920))]),n=e.pluginManager,i=await r(e);t(e),n.addInteractor?.("externalAbsorbers",async e=>{let{AbsorbersInteractor:t}=await s.e(698).then(s.bind(s,698));return new t(e,i)})})}async function y(e){e.checkVersion("4.0.0-beta.2"),await e.pluginManager.register(async e=>{let[{getAbsorbersInstancesManager:t},{AbsorbersPlugin:r}]=await Promise.all([s.e(920).then(s.bind(s,920)),s.e(998).then(s.bind(s,998))]),n=e.pluginManager,i=await t(e);n.addPlugin(new r(i))})}async function m(e){await y(e),await h(e)}return s.r(g),s.d(g,{loadAbsorbersPlugin:()=>m}),s(303),g})());
@@ -1,4 +1,4 @@
1
- import { type Container, type Engine, type ICoordinates, type IDelta, type IRgb, type Particle, type RecursivePartial, RotateDirection, Vector } from "@tsparticles/engine";
1
+ import { type CanvasContextType, type Container, type ICoordinates, type IDelta, type IRgb, type Particle, type PluginManager, type RecursivePartial, RotateDirection, Vector } from "@tsparticles/engine";
2
2
  import { Absorber } from "./Options/Classes/Absorber.js";
3
3
  import type { IAbsorber } from "./Options/Interfaces/IAbsorber.js";
4
4
  import type { IAbsorberSizeLimit } from "./Options/Interfaces/IAbsorberSizeLimit.js";
@@ -20,15 +20,15 @@ export declare class AbsorberInstance {
20
20
  private _currentDuration;
21
21
  private _currentSpawnDelay;
22
22
  private _duration?;
23
- private readonly _engine;
24
23
  private _firstSpawn;
25
24
  private readonly _immortal;
26
25
  private _lifeCount;
26
+ private readonly _pluginManager;
27
27
  private _spawnDelay?;
28
28
  private readonly initialPosition?;
29
- constructor(engine: Engine, container: Container, options: RecursivePartial<IAbsorber>, position?: ICoordinates);
29
+ constructor(pluginManager: PluginManager, container: Container, options: RecursivePartial<IAbsorber>, position?: ICoordinates);
30
30
  attract(particle: OrbitingParticle, delta: IDelta): void;
31
- draw(context: CanvasRenderingContext2D): void;
31
+ draw(context: CanvasContextType): void;
32
32
  resize(): void;
33
33
  update(delta: IDelta): void;
34
34
  private readonly _calcPosition;
@@ -1,11 +1,11 @@
1
- import { type Engine, type ICoordinates, type RecursivePartial } from "@tsparticles/engine";
1
+ import { type ICoordinates, type PluginManager, type RecursivePartial } from "@tsparticles/engine";
2
2
  import type { AbsorberContainer } from "./AbsorberContainer.js";
3
3
  import type { AbsorberInstance } from "./AbsorberInstance.js";
4
4
  import type { IAbsorber } from "./Options/Interfaces/IAbsorber.js";
5
5
  export declare class AbsorbersInstancesManager {
6
6
  private readonly _containerArrays;
7
- private readonly _engine;
8
- constructor(engine: Engine);
7
+ private readonly _pluginManager;
8
+ constructor(pluginManager: PluginManager);
9
9
  addAbsorber(container: AbsorberContainer, options: RecursivePartial<IAbsorber>, position?: ICoordinates): Promise<AbsorberInstance>;
10
10
  clear(container: AbsorberContainer): void;
11
11
  getArray(container: AbsorberContainer): AbsorberInstance[];
@@ -1,11 +1,11 @@
1
- import { type IContainerPlugin, type IDelta, type Particle } from "@tsparticles/engine";
1
+ import { type CanvasContextType, type IContainerPlugin, type IDelta, type Particle } from "@tsparticles/engine";
2
2
  import type { AbsorberContainer } from "./AbsorberContainer.js";
3
3
  import type { AbsorbersInstancesManager } from "./AbsorbersInstancesManager.js";
4
4
  export declare class AbsorbersPluginInstance implements IContainerPlugin {
5
5
  private readonly _container;
6
6
  private readonly _instancesManager;
7
7
  constructor(container: AbsorberContainer, instancesManager: AbsorbersInstancesManager);
8
- draw(context: CanvasRenderingContext2D): void;
8
+ draw(context: CanvasContextType): void;
9
9
  init(): Promise<void>;
10
10
  particleUpdate(particle: Particle, delta: IDelta): void;
11
11
  resize(): void;
@@ -0,0 +1,3 @@
1
+ import type { AbsorbersInstancesManager } from "./AbsorbersInstancesManager.js";
2
+ import type { Engine } from "@tsparticles/engine";
3
+ export declare function getAbsorbersInstancesManager(e: Engine): Promise<AbsorbersInstancesManager>;
@@ -0,0 +1,3 @@
1
+ import { type Engine } from "@tsparticles/engine";
2
+ export declare function loadAbsorbersInteraction(engine: Engine): Promise<void>;
3
+ export type * from "./AbsorberContainer.js";
@@ -0,0 +1,3 @@
1
+ import { type Engine } from "@tsparticles/engine";
2
+ export declare function loadAbsorbersPluginSimple(engine: Engine): Promise<void>;
3
+ export type * from "./AbsorberContainer.js";
package/162.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[162],{162(i,s,t){t.r(s),t.d(s,{AbsorbersPlugin:()=>a});var o=t(303),e=t(866);class a{id="absorbers";_instancesManager;constructor(i){this._instancesManager=i}async getPlugin(i){let{AbsorbersPluginInstance:s}=await t.e(497).then(t.bind(t,497));return new s(i,this._instancesManager)}loadOptions(i,s,t){(this.needsPlugin(s)||this.needsPlugin(t))&&t?.absorbers&&(s.absorbers=(0,o.executeOnSingleOrMultiple)(t.absorbers,i=>{let s=new e.h;return s.load(i),s}))}needsPlugin(i){if(!i)return!1;let s=i.absorbers;return(0,o.isArray)(s)?!!s.length:!!s}}},866(i,s,t){t.d(s,{h:()=>l});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class l{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
package/166.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[166],{166(i,s,t){t.d(s,{AbsorbersInteractor:()=>n});var o=t(702),e=t(303),a=t(866);let r="absorbers";class n extends o.ExternalInteractorBase{handleClickMode;maxDistance;_dragging=!1;_draggingAbsorber;_instancesManager;constructor(i,s){super(i),this.maxDistance=0,this._instancesManager=s,this._instancesManager.initContainer(i),this.handleClickMode=(i,t)=>{let o=this.container,n=o.actualOptions.interactivity.modes.absorbers;if(!n||i!==r)return;let{clickPosition:l}=t.mouse;if(l&&s.getArray(this.container).some(i=>(0,e.getDistance)(i.position,l)<i.size))return;let d=(0,e.itemFromArray)(n)??new a.h;this._instancesManager.addAbsorber(o,d,l)}}clear(){}init(){}interact(i,s){for(let t of this.container.particles.filter(s=>this.isEnabled(i,s)))for(let o of this._instancesManager.getArray(this.container)){if(o.options.draggable){let s=i.mouse;s.clicking&&s.downPosition?(0,e.getDistance)(o.position,s.downPosition)<=o.size&&(this._dragging=!0,this._draggingAbsorber=o):(this._dragging=!1,this._draggingAbsorber=void 0),this._dragging&&this._draggingAbsorber==o&&s.position&&(o.position.x=s.position.x,o.position.y=s.position.y)}if(o.attract(t,s),t.destroyed)break}}isEnabled(i,s){let t=this.container.actualOptions,o=i.mouse,a=(s?.interactivity??t.interactivity).events;return!!o.clickPosition&&!!a.onClick.enable&&(0,e.isInArray)(r,a.onClick.mode)}loadModeOptions(i,...s){for(let t of(i.absorbers??=[],s))if(t)if((0,e.isArray)(t.absorbers))for(let s of t.absorbers){let t=new a.h;t.load(s),i.absorbers.push(t)}else{let s=new a.h;s.load(t.absorbers),i.absorbers.push(s)}}reset(){}}},866(i,s,t){t.d(s,{h:()=>n});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class n{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
package/49.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[49],{49(i,t,s){s.d(t,{AbsorberInstance:()=>n});var o=s(303),e=s(866);let a=o.doublePI;class n{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_engine;_firstSpawn;_immortal;_lifeCount;_spawnDelay;initialPosition;constructor(i,t,s,a){this._container=t,this._engine=i,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=a?o.Vector.create(a.x,a.y):void 0,s instanceof e.h?this.options=s:(this.options=new e.h,this.options.load(s)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=(0,o.getRangeValue)(this.options.size.value)*t.retina.pixelRatio,this.mass=this.size*this.options.size.density*t.retina.reduceFactor;const n=this.options.size.limit;this.limit={radius:n.radius*t.retina.pixelRatio*t.retina.reduceFactor,mass:n.mass},this.color=(0,o.rangeColorToRgb)(this._engine,this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition(),this._firstSpawn=!this.options.life.wait,this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this._spawnDelay=t.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/t.retina.reduceFactor:1/0}attract(i,t){let s=this._container,e=this.options,a=i.getPosition(),{dx:n,dy:r,distance:l}=(0,o.getDistances)(this.position,a),h=o.Vector.create(n,r);if(h.length=this.mass/Math.pow(l,2)*s.retina.reduceFactor,l<this.size+i.getRadius()){let o=.033*i.getRadius()*s.retina.pixelRatio*t.factor;this.size>i.getRadius()&&l<this.size-i.getRadius()||void 0!==i.absorberOrbit&&i.absorberOrbit.length<0?e.destroy?i.destroy():(i.needsNewPosition=!0,this._updateParticlePosition(i,h)):(e.destroy&&(i.size.value-=o),this._updateParticlePosition(i,h)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=o),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=o*this.options.size.density*s.retina.reduceFactor)}else this._updateParticlePosition(i,h)}draw(i){i.translate(this.position.x,this.position.y),i.beginPath(),i.arc(o.originPoint.x,o.originPoint.y,this.size,0,a,!1),i.closePath(),i.fillStyle=(0,o.getStyleFromRgb)(this.color,this._container.hdr,this.opacity),i.fill()}resize(){let i=this.initialPosition;this.position=i&&(0,o.isPointInside)(i,this._container.canvas.size,o.Vector.origin)?i:this._calcPosition()}update(i){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=i.value,this._currentDuration>=this._duration&&(!this._immortal&&this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=i.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{let i=(0,o.calcPositionOrRandomFromSizeRanged)({size:this._container.canvas.size,position:this.options.position});return o.Vector.create(i.x,i.y)};_prepareToDie=()=>{let i=void 0!==this.options.life.duration?(0,o.getRangeValue)(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==i&&i>0&&(this._duration=i*o.millisecondsToSeconds)};_updateParticlePosition=(i,t)=>{if(i.destroyed)return;let s=this._container,e=s.canvas.size;if(i.needsNewPosition){let t=(0,o.calcPositionOrRandomFromSize)({size:e});i.position.setTo(t),i.velocity.setTo(i.initialVelocity),i.absorberOrbit=void 0,i.needsNewPosition=!1}if(this.options.orbits){if(void 0===i.absorberOrbit&&(i.absorberOrbit=o.Vector.origin,i.absorberOrbit.length=(0,o.getDistance)(i.getPosition(),this.position),i.absorberOrbit.angle=(0,o.getRandom)()*a),i.absorberOrbit.length<=this.size&&!this.options.destroy){let t=Math.min(e.width,e.height);i.absorberOrbit.length=t*(1+(.2*(0,o.getRandom)()-.1))}i.absorberOrbitDirection??=i.velocity.x>=0?o.RotateDirection.clockwise:o.RotateDirection.counterClockwise;let n=i.absorberOrbit.length,r=i.absorberOrbit.angle,l=i.absorberOrbitDirection;i.velocity.setTo(o.Vector.origin);let h={x:l===o.RotateDirection.clockwise?Math.cos:Math.sin,y:l===o.RotateDirection.clockwise?Math.sin:Math.cos};i.position.x=this.position.x+n*h.x(r),i.position.y=this.position.y+n*h.y(r),i.absorberOrbit.length-=t.length,i.absorberOrbit.angle+=(i.retina.moveSpeed??0)*s.retina.pixelRatio/o.percentDenominator*s.retina.reduceFactor}else{let s=o.Vector.origin;s.length=t.length,s.angle=t.angle,i.velocity.addTo(s)}};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}},866(i,t,s){s.d(t,{h:()=>r});var o=s(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class n extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class r{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new n}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
package/598.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[598],{598(r,e,t){t.r(e),t.d(e,{AbsorbersInstancesManager:()=>i});var s=t(303);class i{_containerArrays;_engine;constructor(r){this._containerArrays=new Map,this._engine=r}async addAbsorber(r,e,s){let{AbsorberInstance:i}=await t.e(49).then(t.bind(t,49)),n=new i(this._engine,r,e,s);return this.getArray(r).push(n),n}clear(r){this.initContainer(r),this._containerArrays.set(r,[])}getArray(r){this.initContainer(r);let e=this._containerArrays.get(r);return e||(e=[],this._containerArrays.set(r,e)),e}initContainer(r){this._containerArrays.has(r)||(this._containerArrays.set(r,[]),r.getAbsorber??=e=>{let t=this.getArray(r);return void 0===e||(0,s.isNumber)(e)?t[e??0]:t.find(r=>r.name===e)},r.addAbsorber??=(e,t)=>this.addAbsorber(r,e,t))}removeAbsorber(r,e){let t=this.getArray(r).indexOf(e);t>=0&&this.getArray(r).splice(t,1)}}}}]);
@@ -1,12 +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"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- });
@@ -1,217 +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", "./Options/Classes/Absorber.js"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AbsorberInstance = void 0;
13
- const engine_1 = require("@tsparticles/engine");
14
- const Absorber_js_1 = require("./Options/Classes/Absorber.js");
15
- const squareExp = 2, absorbFactor = 0.033, minOrbitLength = 0, minRadius = 0, minMass = 0, minAngle = 0, maxAngle = engine_1.doublePI, minVelocity = 0, defaultLifeDelay = 0, minLifeCount = 0, defaultSpawnDelay = 0, defaultLifeCount = -1;
16
- class AbsorberInstance {
17
- color;
18
- limit;
19
- mass;
20
- name;
21
- opacity;
22
- options;
23
- position;
24
- size;
25
- _container;
26
- _currentDuration;
27
- _currentSpawnDelay;
28
- _duration;
29
- _engine;
30
- _firstSpawn;
31
- _immortal;
32
- _lifeCount;
33
- _spawnDelay;
34
- initialPosition;
35
- constructor(engine, container, options, position) {
36
- this._container = container;
37
- this._engine = engine;
38
- this._currentDuration = 0;
39
- this._currentSpawnDelay = 0;
40
- this.initialPosition = position ? engine_1.Vector.create(position.x, position.y) : undefined;
41
- if (options instanceof Absorber_js_1.Absorber) {
42
- this.options = options;
43
- }
44
- else {
45
- this.options = new Absorber_js_1.Absorber();
46
- this.options.load(options);
47
- }
48
- this.name = this.options.name;
49
- this.opacity = this.options.opacity;
50
- this.size = (0, engine_1.getRangeValue)(this.options.size.value) * container.retina.pixelRatio;
51
- this.mass = this.size * this.options.size.density * container.retina.reduceFactor;
52
- const limit = this.options.size.limit;
53
- this.limit = {
54
- radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor,
55
- mass: limit.mass,
56
- };
57
- this.color = (0, engine_1.rangeColorToRgb)(this._engine, this.options.color) ?? {
58
- b: 0,
59
- g: 0,
60
- r: 0,
61
- };
62
- this.position = this.initialPosition?.copy() ?? this._calcPosition();
63
- this._firstSpawn = !this.options.life.wait;
64
- this._lifeCount = this.options.life.count ?? defaultLifeCount;
65
- this._immortal = this._lifeCount <= minLifeCount;
66
- this._spawnDelay = container.retina.reduceFactor
67
- ? ((0, engine_1.getRangeValue)(this.options.life.delay ?? defaultLifeDelay) * engine_1.millisecondsToSeconds) /
68
- container.retina.reduceFactor
69
- : Infinity;
70
- }
71
- attract(particle, delta) {
72
- const container = this._container, options = this.options, pos = particle.getPosition(), { dx, dy, distance } = (0, engine_1.getDistances)(this.position, pos), v = engine_1.Vector.create(dx, dy);
73
- v.length = (this.mass / Math.pow(distance, squareExp)) * container.retina.reduceFactor;
74
- if (distance < this.size + particle.getRadius()) {
75
- const sizeFactor = particle.getRadius() * absorbFactor * container.retina.pixelRatio * delta.factor;
76
- if ((this.size > particle.getRadius() && distance < this.size - particle.getRadius()) ||
77
- (particle.absorberOrbit !== undefined && particle.absorberOrbit.length < minOrbitLength)) {
78
- if (options.destroy) {
79
- particle.destroy();
80
- }
81
- else {
82
- particle.needsNewPosition = true;
83
- this._updateParticlePosition(particle, v);
84
- }
85
- }
86
- else {
87
- if (options.destroy) {
88
- particle.size.value -= sizeFactor;
89
- }
90
- this._updateParticlePosition(particle, v);
91
- }
92
- if (this.limit.radius <= minRadius || this.size < this.limit.radius) {
93
- this.size += sizeFactor;
94
- }
95
- if (this.limit.mass <= minMass || this.mass < this.limit.mass) {
96
- this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;
97
- }
98
- }
99
- else {
100
- this._updateParticlePosition(particle, v);
101
- }
102
- }
103
- draw(context) {
104
- context.translate(this.position.x, this.position.y);
105
- context.beginPath();
106
- context.arc(engine_1.originPoint.x, engine_1.originPoint.y, this.size, minAngle, maxAngle, false);
107
- context.closePath();
108
- context.fillStyle = (0, engine_1.getStyleFromRgb)(this.color, this._container.hdr, this.opacity);
109
- context.fill();
110
- }
111
- resize() {
112
- const initialPosition = this.initialPosition;
113
- this.position =
114
- initialPosition && (0, engine_1.isPointInside)(initialPosition, this._container.canvas.size, engine_1.Vector.origin)
115
- ? initialPosition
116
- : this._calcPosition();
117
- }
118
- update(delta) {
119
- if (this._firstSpawn) {
120
- this._firstSpawn = false;
121
- this._currentSpawnDelay = this._spawnDelay ?? defaultSpawnDelay;
122
- }
123
- if (this._duration !== undefined) {
124
- this._currentDuration += delta.value;
125
- if (this._currentDuration >= this._duration) {
126
- if (!this._immortal) {
127
- this._lifeCount--;
128
- }
129
- if (this._lifeCount > minLifeCount || this._immortal) {
130
- this.position = this._calcPosition();
131
- this._spawnDelay = this._container.retina.reduceFactor
132
- ? ((0, engine_1.getRangeValue)(this.options.life.delay ?? defaultLifeDelay) * engine_1.millisecondsToSeconds) /
133
- this._container.retina.reduceFactor
134
- : Infinity;
135
- }
136
- this._currentDuration -= this._duration;
137
- delete this._duration;
138
- }
139
- }
140
- if (this._spawnDelay !== undefined) {
141
- this._currentSpawnDelay += delta.value;
142
- if (this._currentSpawnDelay >= this._spawnDelay) {
143
- this.play();
144
- this._currentSpawnDelay -= this._spawnDelay;
145
- delete this._spawnDelay;
146
- }
147
- }
148
- }
149
- _calcPosition = () => {
150
- const exactPosition = (0, engine_1.calcPositionOrRandomFromSizeRanged)({
151
- size: this._container.canvas.size,
152
- position: this.options.position,
153
- });
154
- return engine_1.Vector.create(exactPosition.x, exactPosition.y);
155
- };
156
- _prepareToDie = () => {
157
- const duration = this.options.life.duration !== undefined ? (0, engine_1.getRangeValue)(this.options.life.duration) : undefined, minDuration = 0;
158
- if ((this._lifeCount > minLifeCount || this._immortal) && duration !== undefined && duration > minDuration) {
159
- this._duration = duration * engine_1.millisecondsToSeconds;
160
- }
161
- };
162
- _updateParticlePosition = (particle, v) => {
163
- if (particle.destroyed) {
164
- return;
165
- }
166
- const container = this._container, canvasSize = container.canvas.size;
167
- if (particle.needsNewPosition) {
168
- const newPosition = (0, engine_1.calcPositionOrRandomFromSize)({ size: canvasSize });
169
- particle.position.setTo(newPosition);
170
- particle.velocity.setTo(particle.initialVelocity);
171
- particle.absorberOrbit = undefined;
172
- particle.needsNewPosition = false;
173
- }
174
- if (this.options.orbits) {
175
- if (particle.absorberOrbit === undefined) {
176
- particle.absorberOrbit = engine_1.Vector.origin;
177
- particle.absorberOrbit.length = (0, engine_1.getDistance)(particle.getPosition(), this.position);
178
- particle.absorberOrbit.angle = (0, engine_1.getRandom)() * maxAngle;
179
- }
180
- if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {
181
- const minSize = Math.min(canvasSize.width, canvasSize.height), offset = 1, randomOffset = 0.1, randomFactor = 0.2;
182
- particle.absorberOrbit.length = minSize * (offset + ((0, engine_1.getRandom)() * randomFactor - randomOffset));
183
- }
184
- particle.absorberOrbitDirection ??=
185
- particle.velocity.x >= minVelocity ? engine_1.RotateDirection.clockwise : engine_1.RotateDirection.counterClockwise;
186
- const orbitRadius = particle.absorberOrbit.length, orbitAngle = particle.absorberOrbit.angle, orbitDirection = particle.absorberOrbitDirection;
187
- particle.velocity.setTo(engine_1.Vector.origin);
188
- const updateFunc = {
189
- x: orbitDirection === engine_1.RotateDirection.clockwise ? Math.cos : Math.sin,
190
- y: orbitDirection === engine_1.RotateDirection.clockwise ? Math.sin : Math.cos,
191
- };
192
- particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);
193
- particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);
194
- particle.absorberOrbit.length -= v.length;
195
- particle.absorberOrbit.angle +=
196
- (((particle.retina.moveSpeed ?? minVelocity) * container.retina.pixelRatio) / engine_1.percentDenominator) *
197
- container.retina.reduceFactor;
198
- }
199
- else {
200
- const addV = engine_1.Vector.origin;
201
- addV.length = v.length;
202
- addV.angle = v.angle;
203
- particle.velocity.addTo(addV);
204
- }
205
- };
206
- play = () => {
207
- if (!((this._lifeCount > minLifeCount || this._immortal || !this.options.life.count) &&
208
- (this._firstSpawn || this._currentSpawnDelay >= (this._spawnDelay ?? defaultSpawnDelay)))) {
209
- return;
210
- }
211
- if (this._lifeCount > minLifeCount || this._immortal) {
212
- this._prepareToDie();
213
- }
214
- };
215
- }
216
- exports.AbsorberInstance = AbsorberInstance;
217
- });
@@ -1,97 +0,0 @@
1
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
- if (k2 === undefined) k2 = k;
3
- var desc = Object.getOwnPropertyDescriptor(m, k);
4
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
- desc = { enumerable: true, get: function() { return m[k]; } };
6
- }
7
- Object.defineProperty(o, k2, desc);
8
- }) : (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- o[k2] = m[k];
11
- }));
12
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
- Object.defineProperty(o, "default", { enumerable: true, value: v });
14
- }) : function(o, v) {
15
- o["default"] = v;
16
- });
17
- var __importStar = (this && this.__importStar) || (function () {
18
- var ownKeys = function(o) {
19
- ownKeys = Object.getOwnPropertyNames || function (o) {
20
- var ar = [];
21
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
22
- return ar;
23
- };
24
- return ownKeys(o);
25
- };
26
- return function (mod) {
27
- if (mod && mod.__esModule) return mod;
28
- var result = {};
29
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
30
- __setModuleDefault(result, mod);
31
- return result;
32
- };
33
- })();
34
- (function (factory) {
35
- if (typeof module === "object" && typeof module.exports === "object") {
36
- var v = factory(require, exports);
37
- if (v !== undefined) module.exports = v;
38
- }
39
- else if (typeof define === "function" && define.amd) {
40
- define(["require", "exports", "@tsparticles/engine"], factory);
41
- }
42
- })(function (require, exports) {
43
- "use strict";
44
- var __syncRequire = typeof module === "object" && typeof module.exports === "object";
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.AbsorbersInstancesManager = void 0;
47
- const engine_1 = require("@tsparticles/engine");
48
- const defaultIndex = 0;
49
- class AbsorbersInstancesManager {
50
- _containerArrays;
51
- _engine;
52
- constructor(engine) {
53
- this._containerArrays = new Map();
54
- this._engine = engine;
55
- }
56
- async addAbsorber(container, options, position) {
57
- const { AbsorberInstance } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./AbsorberInstance.js"))) : new Promise((resolve_1, reject_1) => { require(["./AbsorberInstance.js"], resolve_1, reject_1); }).then(__importStar)), absorber = new AbsorberInstance(this._engine, container, options, position), array = this.getArray(container);
58
- array.push(absorber);
59
- return absorber;
60
- }
61
- clear(container) {
62
- this.initContainer(container);
63
- this._containerArrays.set(container, []);
64
- }
65
- getArray(container) {
66
- this.initContainer(container);
67
- let array = this._containerArrays.get(container);
68
- if (!array) {
69
- array = [];
70
- this._containerArrays.set(container, array);
71
- }
72
- return array;
73
- }
74
- initContainer(container) {
75
- if (this._containerArrays.has(container)) {
76
- return;
77
- }
78
- this._containerArrays.set(container, []);
79
- container.getAbsorber ??= (idxOrName) => {
80
- const array = this.getArray(container);
81
- return idxOrName === undefined || (0, engine_1.isNumber)(idxOrName)
82
- ? array[idxOrName ?? defaultIndex]
83
- : array.find(t => t.name === idxOrName);
84
- };
85
- container.addAbsorber ??= (options, position) => {
86
- return this.addAbsorber(container, options, position);
87
- };
88
- }
89
- removeAbsorber(container, absorber) {
90
- const index = this.getArray(container).indexOf(absorber), deleteCount = 1;
91
- if (index >= defaultIndex) {
92
- this.getArray(container).splice(index, deleteCount);
93
- }
94
- }
95
- }
96
- exports.AbsorbersInstancesManager = AbsorbersInstancesManager;
97
- });