tsparticles 1.41.0 → 1.41.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/Core/Container.js +2 -2
  2. package/Core/Interfaces/IExternalInteractor.d.ts +1 -1
  3. package/Core/Interfaces/IParticlesInteractor.d.ts +1 -1
  4. package/Core/Particle.js +2 -2
  5. package/Core/Particles.d.ts +3 -3
  6. package/Core/Particles.js +7 -7
  7. package/Core/Utils/ExternalInteractorBase.d.ts +1 -1
  8. package/Core/Utils/FrameManager.d.ts +1 -1
  9. package/Core/Utils/FrameManager.js +2 -2
  10. package/Core/Utils/InteractionManager.d.ts +2 -2
  11. package/Core/Utils/InteractionManager.js +4 -4
  12. package/Core/Utils/ParticlesInteractorBase.d.ts +1 -1
  13. package/Interactions/External/Attract/Attractor.d.ts +1 -1
  14. package/Interactions/External/Attract/Attractor.js +1 -1
  15. package/Interactions/External/Bounce/Bouncer.d.ts +1 -1
  16. package/Interactions/External/Bounce/Bouncer.js +1 -1
  17. package/Interactions/External/Bubble/Bubbler.d.ts +1 -1
  18. package/Interactions/External/Bubble/Bubbler.js +1 -1
  19. package/Interactions/External/Connect/Connector.d.ts +1 -1
  20. package/Interactions/External/Connect/Connector.js +1 -1
  21. package/Interactions/External/Grab/Grabber.d.ts +1 -1
  22. package/Interactions/External/Grab/Grabber.js +1 -1
  23. package/Interactions/External/Repulse/Repulser.d.ts +1 -1
  24. package/Interactions/External/Repulse/Repulser.js +1 -1
  25. package/Interactions/External/Trail/TrailMaker.d.ts +1 -1
  26. package/Interactions/External/Trail/TrailMaker.js +1 -1
  27. package/Interactions/Particles/Attract/Attractor.d.ts +1 -1
  28. package/Interactions/Particles/Attract/Attractor.js +1 -1
  29. package/Interactions/Particles/Collisions/Collider.d.ts +1 -1
  30. package/Interactions/Particles/Collisions/Collider.js +1 -1
  31. package/Interactions/Particles/Links/Linker.d.ts +1 -1
  32. package/Interactions/Particles/Links/Linker.js +1 -1
  33. package/Plugins/PolygonMask/PolygonMaskInstance.js +1 -1
  34. package/Updaters/Opacity/OpacityUpdater.js +7 -5
  35. package/Updaters/Size/SizeUpdater.js +6 -5
  36. package/browser/Core/Container.js +2 -2
  37. package/browser/Core/Interfaces/IExternalInteractor.d.ts +1 -1
  38. package/browser/Core/Interfaces/IParticlesInteractor.d.ts +1 -1
  39. package/browser/Core/Particle.js +2 -2
  40. package/browser/Core/Particles.d.ts +3 -3
  41. package/browser/Core/Particles.js +7 -7
  42. package/browser/Core/Utils/ExternalInteractorBase.d.ts +1 -1
  43. package/browser/Core/Utils/FrameManager.d.ts +1 -1
  44. package/browser/Core/Utils/FrameManager.js +2 -2
  45. package/browser/Core/Utils/InteractionManager.d.ts +2 -2
  46. package/browser/Core/Utils/InteractionManager.js +4 -4
  47. package/browser/Core/Utils/ParticlesInteractorBase.d.ts +1 -1
  48. package/browser/Interactions/External/Attract/Attractor.d.ts +1 -1
  49. package/browser/Interactions/External/Attract/Attractor.js +1 -1
  50. package/browser/Interactions/External/Bounce/Bouncer.d.ts +1 -1
  51. package/browser/Interactions/External/Bounce/Bouncer.js +1 -1
  52. package/browser/Interactions/External/Bubble/Bubbler.d.ts +1 -1
  53. package/browser/Interactions/External/Bubble/Bubbler.js +1 -1
  54. package/browser/Interactions/External/Connect/Connector.d.ts +1 -1
  55. package/browser/Interactions/External/Connect/Connector.js +1 -1
  56. package/browser/Interactions/External/Grab/Grabber.d.ts +1 -1
  57. package/browser/Interactions/External/Grab/Grabber.js +1 -1
  58. package/browser/Interactions/External/Repulse/Repulser.d.ts +1 -1
  59. package/browser/Interactions/External/Repulse/Repulser.js +1 -1
  60. package/browser/Interactions/External/Trail/TrailMaker.d.ts +1 -1
  61. package/browser/Interactions/External/Trail/TrailMaker.js +1 -1
  62. package/browser/Interactions/Particles/Attract/Attractor.d.ts +1 -1
  63. package/browser/Interactions/Particles/Attract/Attractor.js +1 -1
  64. package/browser/Interactions/Particles/Collisions/Collider.d.ts +1 -1
  65. package/browser/Interactions/Particles/Collisions/Collider.js +1 -1
  66. package/browser/Interactions/Particles/Links/Linker.d.ts +1 -1
  67. package/browser/Interactions/Particles/Links/Linker.js +1 -1
  68. package/browser/Plugins/PolygonMask/PolygonMaskInstance.js +1 -1
  69. package/browser/Updaters/Opacity/OpacityUpdater.js +7 -5
  70. package/browser/Updaters/Size/SizeUpdater.js +6 -5
  71. package/esm/Core/Container.js +2 -2
  72. package/esm/Core/Interfaces/IExternalInteractor.d.ts +1 -1
  73. package/esm/Core/Interfaces/IParticlesInteractor.d.ts +1 -1
  74. package/esm/Core/Particle.js +2 -2
  75. package/esm/Core/Particles.d.ts +3 -3
  76. package/esm/Core/Particles.js +7 -7
  77. package/esm/Core/Utils/ExternalInteractorBase.d.ts +1 -1
  78. package/esm/Core/Utils/FrameManager.d.ts +1 -1
  79. package/esm/Core/Utils/FrameManager.js +2 -2
  80. package/esm/Core/Utils/InteractionManager.d.ts +2 -2
  81. package/esm/Core/Utils/InteractionManager.js +4 -4
  82. package/esm/Core/Utils/ParticlesInteractorBase.d.ts +1 -1
  83. package/esm/Interactions/External/Attract/Attractor.d.ts +1 -1
  84. package/esm/Interactions/External/Attract/Attractor.js +1 -1
  85. package/esm/Interactions/External/Bounce/Bouncer.d.ts +1 -1
  86. package/esm/Interactions/External/Bounce/Bouncer.js +1 -1
  87. package/esm/Interactions/External/Bubble/Bubbler.d.ts +1 -1
  88. package/esm/Interactions/External/Bubble/Bubbler.js +1 -1
  89. package/esm/Interactions/External/Connect/Connector.d.ts +1 -1
  90. package/esm/Interactions/External/Connect/Connector.js +1 -1
  91. package/esm/Interactions/External/Grab/Grabber.d.ts +1 -1
  92. package/esm/Interactions/External/Grab/Grabber.js +1 -1
  93. package/esm/Interactions/External/Repulse/Repulser.d.ts +1 -1
  94. package/esm/Interactions/External/Repulse/Repulser.js +1 -1
  95. package/esm/Interactions/External/Trail/TrailMaker.d.ts +1 -1
  96. package/esm/Interactions/External/Trail/TrailMaker.js +1 -1
  97. package/esm/Interactions/Particles/Attract/Attractor.d.ts +1 -1
  98. package/esm/Interactions/Particles/Attract/Attractor.js +1 -1
  99. package/esm/Interactions/Particles/Collisions/Collider.d.ts +1 -1
  100. package/esm/Interactions/Particles/Collisions/Collider.js +1 -1
  101. package/esm/Interactions/Particles/Links/Linker.d.ts +1 -1
  102. package/esm/Interactions/Particles/Links/Linker.js +1 -1
  103. package/esm/Plugins/PolygonMask/PolygonMaskInstance.js +1 -1
  104. package/esm/Updaters/Opacity/OpacityUpdater.js +7 -5
  105. package/esm/Updaters/Size/SizeUpdater.js +6 -5
  106. package/package.json +1 -1
  107. package/report.html +6 -5
  108. package/report.slim.html +6 -5
  109. package/tsparticles.engine.js +17 -17
  110. package/tsparticles.engine.min.js +2 -2
  111. package/tsparticles.interaction.external.attract.js +16 -16
  112. package/tsparticles.interaction.external.attract.min.js +2 -2
  113. package/tsparticles.interaction.external.bounce.js +16 -16
  114. package/tsparticles.interaction.external.bounce.min.js +2 -2
  115. package/tsparticles.interaction.external.bubble.js +16 -16
  116. package/tsparticles.interaction.external.bubble.min.js +2 -2
  117. package/tsparticles.interaction.external.connect.js +16 -16
  118. package/tsparticles.interaction.external.connect.min.js +2 -2
  119. package/tsparticles.interaction.external.grab.js +16 -16
  120. package/tsparticles.interaction.external.grab.min.js +2 -2
  121. package/tsparticles.interaction.external.repulse.js +16 -16
  122. package/tsparticles.interaction.external.repulse.min.js +2 -2
  123. package/tsparticles.interaction.external.trail.js +16 -16
  124. package/tsparticles.interaction.external.trail.min.js +2 -2
  125. package/tsparticles.interaction.particles.attract.js +16 -16
  126. package/tsparticles.interaction.particles.attract.min.js +2 -2
  127. package/tsparticles.interaction.particles.collisions.js +16 -16
  128. package/tsparticles.interaction.particles.collisions.min.js +2 -2
  129. package/tsparticles.interaction.particles.links.js +16 -16
  130. package/tsparticles.interaction.particles.links.min.js +2 -2
  131. package/tsparticles.js +35 -35
  132. package/tsparticles.min.js +2 -2
  133. package/tsparticles.pathseg.min.js +1 -1
  134. package/tsparticles.plugins.absorbers.js +15 -15
  135. package/tsparticles.plugins.absorbers.min.js +1 -1
  136. package/tsparticles.plugins.emitters.js +15 -15
  137. package/tsparticles.plugins.emitters.min.js +1 -1
  138. package/tsparticles.plugins.polygonMask.js +17 -17
  139. package/tsparticles.plugins.polygonMask.min.js +2 -2
  140. package/tsparticles.shape.circle.min.js +1 -1
  141. package/tsparticles.shape.image.js +15 -15
  142. package/tsparticles.shape.image.min.js +1 -1
  143. package/tsparticles.shape.line.min.js +1 -1
  144. package/tsparticles.shape.polygon.min.js +1 -1
  145. package/tsparticles.shape.square.min.js +1 -1
  146. package/tsparticles.shape.star.min.js +1 -1
  147. package/tsparticles.shape.text.js +15 -15
  148. package/tsparticles.shape.text.min.js +1 -1
  149. package/tsparticles.slim.js +32 -32
  150. package/tsparticles.slim.min.js +2 -2
  151. package/tsparticles.updater.angle.js +15 -15
  152. package/tsparticles.updater.angle.min.js +1 -1
  153. package/tsparticles.updater.color.js +15 -15
  154. package/tsparticles.updater.color.min.js +1 -1
  155. package/tsparticles.updater.life.js +15 -15
  156. package/tsparticles.updater.life.min.js +1 -1
  157. package/tsparticles.updater.opacity.js +18 -18
  158. package/tsparticles.updater.opacity.min.js +2 -2
  159. package/tsparticles.updater.outModes.js +15 -15
  160. package/tsparticles.updater.outModes.min.js +1 -1
  161. package/tsparticles.updater.roll.js +15 -15
  162. package/tsparticles.updater.roll.min.js +1 -1
  163. package/tsparticles.updater.size.js +18 -18
  164. package/tsparticles.updater.size.min.js +2 -2
  165. package/tsparticles.updater.strokeColor.js +15 -15
  166. package/tsparticles.updater.strokeColor.min.js +1 -1
  167. package/tsparticles.updater.tilt.js +15 -15
  168. package/tsparticles.updater.tilt.min.js +1 -1
  169. package/tsparticles.updater.wobble.js +15 -15
  170. package/tsparticles.updater.wobble.min.js +1 -1
  171. package/umd/Core/Container.js +2 -2
  172. package/umd/Core/Interfaces/IExternalInteractor.d.ts +1 -1
  173. package/umd/Core/Interfaces/IParticlesInteractor.d.ts +1 -1
  174. package/umd/Core/Particle.js +2 -2
  175. package/umd/Core/Particles.d.ts +3 -3
  176. package/umd/Core/Particles.js +7 -7
  177. package/umd/Core/Utils/ExternalInteractorBase.d.ts +1 -1
  178. package/umd/Core/Utils/FrameManager.d.ts +1 -1
  179. package/umd/Core/Utils/FrameManager.js +2 -2
  180. package/umd/Core/Utils/InteractionManager.d.ts +2 -2
  181. package/umd/Core/Utils/InteractionManager.js +4 -4
  182. package/umd/Core/Utils/ParticlesInteractorBase.d.ts +1 -1
  183. package/umd/Interactions/External/Attract/Attractor.d.ts +1 -1
  184. package/umd/Interactions/External/Attract/Attractor.js +1 -1
  185. package/umd/Interactions/External/Bounce/Bouncer.d.ts +1 -1
  186. package/umd/Interactions/External/Bounce/Bouncer.js +1 -1
  187. package/umd/Interactions/External/Bubble/Bubbler.d.ts +1 -1
  188. package/umd/Interactions/External/Bubble/Bubbler.js +1 -1
  189. package/umd/Interactions/External/Connect/Connector.d.ts +1 -1
  190. package/umd/Interactions/External/Connect/Connector.js +1 -1
  191. package/umd/Interactions/External/Grab/Grabber.d.ts +1 -1
  192. package/umd/Interactions/External/Grab/Grabber.js +1 -1
  193. package/umd/Interactions/External/Repulse/Repulser.d.ts +1 -1
  194. package/umd/Interactions/External/Repulse/Repulser.js +1 -1
  195. package/umd/Interactions/External/Trail/TrailMaker.d.ts +1 -1
  196. package/umd/Interactions/External/Trail/TrailMaker.js +1 -1
  197. package/umd/Interactions/Particles/Attract/Attractor.d.ts +1 -1
  198. package/umd/Interactions/Particles/Attract/Attractor.js +1 -1
  199. package/umd/Interactions/Particles/Collisions/Collider.d.ts +1 -1
  200. package/umd/Interactions/Particles/Collisions/Collider.js +1 -1
  201. package/umd/Interactions/Particles/Links/Linker.d.ts +1 -1
  202. package/umd/Interactions/Particles/Links/Linker.js +1 -1
  203. package/umd/Plugins/PolygonMask/PolygonMaskInstance.js +1 -1
  204. package/umd/Updaters/Opacity/OpacityUpdater.js +7 -5
  205. package/umd/Updaters/Size/SizeUpdater.js +6 -5
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
2
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var i in n)("object"==typeof exports?exports:t)[i]=n[i]}}(window,(function(){return function(){"use strict";var t,e,n,i,o,r={},s={};function a(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}};return r[t](n,n.exports,a),n.exports}a.m=r,t=[],a.O=function(e,n,i,o){if(!n){var r=1/0;for(c=0;c<t.length;c++){n=t[c][0],i=t[c][1],o=t[c][2];for(var s=!0,l=0;l<n.length;l++)(!1&o||r>=o)&&Object.keys(a.O).every((function(t){return a.O[t](n[l])}))?n.splice(l--,1):(s=!1,o<r&&(r=o));if(s){t.splice(c--,1);var h=i();void 0!==h&&(e=h)}}return e}o=o||0;for(var c=t.length;c>0&&t[c-1][2]>o;c--)t[c]=t[c-1];t[c]=[n,i,o]},a.F={},a.E=function(t){Object.keys(a.F).map((function(e){a.F[e](t)}))},n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},a.t=function(t,i){if(1&i&&(t=this(t)),8&i)return t;if("object"==typeof t&&t){if(4&i&&t.__esModule)return t;if(16&i&&"function"==typeof t.then)return t}var o=Object.create(null);a.r(o);var r={};e=e||[null,n({}),n([]),n(n)];for(var s=2&i&&t;"object"==typeof s&&!~e.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((function(e){r[e]=function(){return t[e]}}));return r.default=function(){return t},a.d(o,r),o},a.d=function(t,e){for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.f={},a.e=function(t){return Promise.all(Object.keys(a.f).reduce((function(e,n){return a.f[n](t,e),e}),[]))},a.u=function(t){return"tsparticles.pathseg.min.js"},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i={},o="tsparticles:",a.l=function(t,e,n,r){if(i[t])i[t].push(e);else{var s,l;if(void 0!==n)for(var h=document.getElementsByTagName("script"),c=0;c<h.length;c++){var u=h[c];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==o+n){s=u;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.setAttribute("data-webpack",o+n),s.src=t),i[t]=[e];var d=function(e,n){s.onerror=s.onload=null,clearTimeout(p);var o=i[t];if(delete i[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((function(t){return t(n)})),e)return e(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),l&&document.head.appendChild(s)}},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},function(){var t;a.g.importScripts&&(t=a.g.location+"");var e=a.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=t}(),function(){var t={475:0,143:0};a.f.j=function(e,n){var i=a.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var o=new Promise((function(n,o){i=t[e]=[n,o]}));n.push(i[2]=o);var r=a.p+a.u(e),s=new Error;a.l(r,(function(n){if(a.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var o=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+r+")",s.name="ChunkLoadError",s.type=o,s.request=r,i[1](s)}}),"chunk-"+e,e)}},a.F.j=function(e){if(!a.o(t,e)||void 0===t[e]){t[e]=null;var n=document.createElement("link");a.nc&&n.setAttribute("nonce",a.nc),n.rel="prefetch",n.as="script",n.href=a.p+a.u(e),document.head.appendChild(n)}},a.O.j=function(e){return 0===t[e]};var e=function(e,n){var i,o,r=n[0],s=n[1],l=n[2],h=0;if(r.some((function(e){return 0!==t[e]}))){for(i in s)a.o(s,i)&&(a.m[i]=s[i]);if(l)var c=l(a)}for(e&&e(n);h<r.length;h++)o=r[h],a.o(t,o)&&t[o]&&t[o][0](),t[r[h]]=0;return a.O(c)},n=window.webpackChunktsparticles=window.webpackChunktsparticles||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))}(),a.O(0,[475],(function(){a.E(404)}),5);var l={};a.r(l),a.d(l,{loadPolygonMaskPlugin:function(){return G}});class h{constructor(){this.value="#fff"}static create(t,e){const n=new h;return n.load(t),void 0!==e&&("string"==typeof e||e instanceof Array?n.load({value:e}):n.load(e)),n}load(t){void 0!==(null==t?void 0:t.value)&&(this.value=t.value)}}class c{}c.generatedAttribute="generated",c.randomColorValue="random",c.midColorValue="mid",c.touchEndEvent="touchend",c.mouseDownEvent="mousedown",c.mouseUpEvent="mouseup",c.mouseMoveEvent="mousemove",c.touchStartEvent="touchstart",c.touchMoveEvent="touchmove",c.mouseLeaveEvent="mouseleave",c.mouseOutEvent="mouseout",c.touchCancelEvent="touchcancel",c.resizeEvent="resize",c.visibilityChangeEvent="visibilitychange",c.noPolygonDataLoaded="No polygon data loaded.",c.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;class u{constructor(t,e){let n,i;if(void 0===e){if("number"==typeof t)throw new Error("tsParticles - Vector not initialized correctly");const e=t;[n,i]=[e.x,e.y]}else[n,i]=[t,e];this.x=n,this.y=i}static clone(t){return u.create(t.x,t.y)}static create(t,e){return new u(t,e)}static get origin(){return u.create(0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(t){this.updateFromAngle(t,this.length)}get length(){return Math.sqrt(this.x**2+this.y**2)}set length(t){this.updateFromAngle(this.angle,t)}add(t){return u.create(this.x+t.x,this.y+t.y)}addTo(t){this.x+=t.x,this.y+=t.y}sub(t){return u.create(this.x-t.x,this.y-t.y)}subFrom(t){this.x-=t.x,this.y-=t.y}mult(t){return u.create(this.x*t,this.y*t)}multTo(t){this.x*=t,this.y*=t}div(t){return u.create(this.x/t,this.y/t)}divTo(t){this.x/=t,this.y/=t}distanceTo(t){return this.sub(t).length}getLengthSq(){return this.x**2+this.y**2}distanceToSq(t){return this.sub(t).getLengthSq()}manhattanDistanceTo(t){return Math.abs(t.x-this.x)+Math.abs(t.y-this.y)}copy(){return u.clone(this)}setTo(t){this.x=t.x,this.y=t.y}rotate(t){return u.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t))}updateFromAngle(t,e){this.x=Math.cos(t)*e,this.y=Math.sin(t)*e}}new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function d(t){const e=f(t);let n=p(t);return e===n&&(n=0),Math.random()*(e-n)+n}function p(t){return"number"==typeof t?t:t.min}function f(t){return"number"==typeof t?t:t.max}function v(t,e){if(t===e||void 0===e&&"number"==typeof t)return t;const n=p(t),i=f(t);return void 0!==e?{min:Math.min(n,e),max:Math.max(i,e)}:v(n,i)}function y(t,e){const n=t.x-e.x,i=t.y-e.y;return{dx:n,dy:i,distance:Math.sqrt(n*n+i*i)}}function g(){return"undefined"==typeof window||!window||void 0===window.document||!window.document}function w(t,e,n=!0){return t[void 0!==e&&n?e%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function m(t,...e){for(const n of e){if(null==n)continue;if("object"!=typeof n){t=n;continue}const e=Array.isArray(n);!e||"object"==typeof t&&t&&Array.isArray(t)?e||"object"==typeof t&&t&&!Array.isArray(t)||(t={}):t=[];for(const e in n){if("__proto__"===e)continue;const i=n[e],o="object"==typeof i,r=t;r[e]=o&&Array.isArray(i)?i.map((t=>m(r[e],t))):m(r[e],i)}}return t}function b(t,e,n){let i=n;return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function x(t){if(t.startsWith("rgb")){const e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?{a:e.length>4?parseFloat(e[5]):1,b:parseInt(e[3],10),g:parseInt(e[2],10),r:parseInt(e[1],10)}:void 0}if(t.startsWith("hsl")){const e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=E(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),l:parseInt(e[3],10),s:parseInt(e[2],10)}):void 0}if(t.startsWith("hsv")){const e=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=T(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),s:parseInt(e[2],10),v:parseInt(e[3],10)}):void 0}{const e=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,n=t.replace(e,((t,e,n,i,o)=>e+e+n+n+i+i+(void 0!==o?o+o:""))),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(n);return i?{a:void 0!==i[4]?parseInt(i[4],16)/255:1,b:parseInt(i[3],16),g:parseInt(i[2],16),r:parseInt(i[1],16)}:void 0}}function P(t,e,n=!0){var i,o,r;if(void 0===t)return;const s="string"==typeof t?{value:t}:t;let a;if("string"==typeof s.value)a=s.value===c.randomColorValue?A():function(t){return x(t)}(s.value);else if(s.value instanceof Array){a=P({value:w(s.value,e,n)})}else{const t=s.value,e=null!==(i=t.rgb)&&void 0!==i?i:s.value;if(void 0!==e.r)a=e;else{const e=null!==(o=t.hsl)&&void 0!==o?o:s.value;if(void 0!==e.h&&void 0!==e.l)a=E(e);else{const e=null!==(r=t.hsv)&&void 0!==r?r:s.value;void 0!==e.h&&void 0!==e.v&&(a=T(e))}}}return a}function E(t){const e={b:0,g:0,r:0},n={h:t.h/360,l:t.l/100,s:t.s/100};if(0===n.s)e.b=n.l,e.g=n.l,e.r=n.l;else{const t=n.l<.5?n.l*(1+n.s):n.l+n.s-n.l*n.s,i=2*n.l-t;e.r=b(i,t,n.h+1/3),e.g=b(i,t,n.h),e.b=b(i,t,n.h-1/3)}return e.r=Math.floor(255*e.r),e.g=Math.floor(255*e.g),e.b=Math.floor(255*e.b),e}function T(t){const e={b:0,g:0,r:0},n=t.h/60,i=t.s/100,o=t.v/100,r=o*i,s=r*(1-Math.abs(n%2-1));let a;if(n>=0&&n<=1?a={r:r,g:s,b:0}:n>1&&n<=2?a={r:s,g:r,b:0}:n>2&&n<=3?a={r:0,g:r,b:s}:n>3&&n<=4?a={r:0,g:s,b:r}:n>4&&n<=5?a={r:s,g:0,b:r}:n>5&&n<=6&&(a={r:r,g:0,b:s}),a){const t=o-r;e.r=Math.floor(255*(a.r+t)),e.g=Math.floor(255*(a.g+t)),e.b=Math.floor(255*(a.b+t))}return e}function A(t){const e=null!=t?t:0;return{b:Math.floor(d(v(e,256))),g:Math.floor(d(v(e,256))),r:Math.floor(d(v(e,256)))}}function S(t,e){return`rgba(${t.r}, ${t.g}, ${t.b}, ${null!=e?e:1})`}new WeakMap;class _{constructor(){this.color=new h,this.width=.5,this.opacity=1}load(t){var e;t&&(this.color=h.create(this.color,t.color),"string"==typeof this.color.value&&(this.opacity=null!==(e=function(t){var e;return null===(e=x(t))||void 0===e?void 0:e.a}(this.color.value))&&void 0!==e?e:this.opacity),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.width&&(this.width=t.width))}}class M{constructor(){this.enable=!1,this.stroke=new _}get lineWidth(){return this.stroke.width}set lineWidth(t){this.stroke.width=t}get lineColor(){return this.stroke.color}set lineColor(t){this.stroke.color=h.create(this.stroke.color,t)}load(t){var e;if(!t)return;void 0!==t.enable&&(this.enable=t.enable);const n=null!==(e=t.stroke)&&void 0!==e?e:{color:t.lineColor,width:t.lineWidth};this.stroke.load(n)}}class O{constructor(){this.arrangement="one-per-point"}load(t){t&&void 0!==t.arrangement&&(this.arrangement=t.arrangement)}}class k{constructor(){this.path=[],this.size={height:0,width:0}}load(t){t&&(void 0!==t.path&&(this.path=t.path),void 0!==t.size&&(void 0!==t.size.width&&(this.size.width=t.size.width),void 0!==t.size.height&&(this.size.height=t.size.height)))}}class I{constructor(){this.radius=10,this.type="path"}load(t){t&&(void 0!==t.radius&&(this.radius=t.radius),void 0!==t.type&&(this.type=t.type))}}class R{constructor(){this.draw=new M,this.enable=!1,this.inline=new O,this.move=new I,this.scale=1,this.type="none"}get inlineArrangement(){return this.inline.arrangement}set inlineArrangement(t){this.inline.arrangement=t}load(t){var e;if(!t)return;this.draw.load(t.draw);const n=null!==(e=t.inline)&&void 0!==e?e:{arrangement:t.inlineArrangement};void 0!==n&&this.inline.load(n),this.move.load(t.move),void 0!==t.scale&&(this.scale=t.scale),void 0!==t.type&&(this.type=t.type),void 0!==t.enable?this.enable=t.enable:this.enable="none"!==this.type,void 0!==t.url&&(this.url=t.url),void 0!==t.data&&("string"==typeof t.data?this.data=t.data:(this.data=new k,this.data.load(t.data))),void 0!==t.position&&(this.position=m({},t.position))}}function C(t,e,n){const i=P(n.color);if(i){t.beginPath(),t.moveTo(e[0].x,e[0].y);for(const n of e)t.lineTo(n.x,n.y);t.closePath(),t.strokeStyle=S(i),t.lineWidth=n.width,t.stroke()}}function L(t,e,n,i){t.translate(i.x,i.y);const o=P(n.color);o&&(t.strokeStyle=S(o,n.opacity),t.lineWidth=n.width,t.stroke(e))}function j(t,e,n){const{dx:i,dy:o}=y(n,t),{dx:r,dy:s}=y(e,t),a=(i*r+o*s)/(r**2+s**2),l={x:t.x+r*a,y:t.x+s*a,isOnSegment:a>=0&&a<=1};return a<0?(l.x=t.x,l.y=t.y):a>1&&(l.x=e.x,l.y=e.y),l}function B(t,e,n){const{dx:i,dy:o}=y(t,e),r=Math.atan2(o,i),s=u.create(Math.sin(r),-Math.cos(r)),a=2*(n.x*s.x+n.y*s.y);s.multTo(a),n.subFrom(s)}class H{constructor(t){this.container=t,this.dimension={height:0,width:0},this.path2DSupported=!!window.Path2D,this.options=new R,this.polygonMaskMoveRadius=this.options.move.radius*t.retina.pixelRatio}async initAsync(t){this.options.load(null==t?void 0:t.polygon);const e=this.options;this.polygonMaskMoveRadius=e.move.radius*this.container.retina.pixelRatio,e.enable&&await this.initRawData()}resize(){const t=this.container,e=this.options;e.enable&&"none"!==e.type&&(this.redrawTimeout&&clearTimeout(this.redrawTimeout),this.redrawTimeout=window.setTimeout((async()=>{await this.initRawData(!0),t.particles.redraw()}),250))}stop(){delete this.raw,delete this.paths}particlesInitialization(){const t=this.options;return!(!t.enable||"inline"!==t.type||"one-per-point"!==t.inline.arrangement&&"per-point"!==t.inline.arrangement)&&(this.drawPoints(),!0)}particlePosition(t){var e,n;if(this.options.enable&&(null!==(n=null===(e=this.raw)||void 0===e?void 0:e.length)&&void 0!==n?n:0)>0)return m({},t||this.randomPoint())}particleBounce(t,e,n){return this.polygonBounce(t,e,n)}clickPositionValid(t){const e=this.options;return e.enable&&"none"!==e.type&&"inline"!==e.type&&this.checkInsidePolygon(t)}draw(t){var e;if(!(null===(e=this.paths)||void 0===e?void 0:e.length))return;const n=this.options,i=n.draw;if(!n.enable||!i.enable)return;const o=this.raw;for(const e of this.paths){const n=e.path2d,r=this.path2DSupported;t&&(r&&n&&this.offset?L(t,n,i.stroke,this.offset):o&&C(t,o,i.stroke))}}polygonBounce(t,e,n){const i=this.options;if(!this.raw||!i.enable||"top"!==n)return!1;if("inside"===i.type||"outside"===i.type){let e,n,i;const o=t.getPosition(),r=t.getRadius();for(let s=0,a=this.raw.length-1;s<this.raw.length;a=s++){const l=this.raw[s],h=this.raw[a];e=j(l,h,o);const c=y(o,e);if([n,i]=[c.dx,c.dy],c.distance<r)return B(l,h,t.velocity),!0}if(e&&void 0!==n&&void 0!==i&&!this.checkInsidePolygon(o)){const n={x:1,y:1};return t.position.x>=e.x&&(n.x=-1),t.position.y>=e.y&&(n.y=-1),t.position.x=e.x+2*r*n.x,t.position.y=e.y+2*r*n.y,t.velocity.mult(-1),!0}}else if("inline"===i.type&&t.initialPosition){if((o=t.initialPosition,r=t.getPosition(),y(o,r).distance)>this.polygonMaskMoveRadius)return t.velocity.x=t.velocity.y/2-t.velocity.x,t.velocity.y=t.velocity.x/2-t.velocity.y,!0}var o,r;return!1}checkInsidePolygon(t){var e,n;const i=this.container,o=this.options;if(!o.enable||"none"===o.type||"inline"===o.type)return!0;if(!this.raw)throw new Error(c.noPolygonFound);const r=i.canvas.size,s=null!==(e=null==t?void 0:t.x)&&void 0!==e?e:Math.random()*r.width,a=null!==(n=null==t?void 0:t.y)&&void 0!==n?n:Math.random()*r.height;let l=!1;for(let t=0,e=this.raw.length-1;t<this.raw.length;e=t++){const n=this.raw[t],i=this.raw[e];n.y>a!=i.y>a&&s<(i.x-n.x)*(a-n.y)/(i.y-n.y)+n.x&&(l=!l)}return"inside"===o.type?l:"outside"===o.type&&!l}parseSvgPath(t,e){var n,i,o;const r=null!=e&&e;if(void 0!==this.paths&&!r)return this.raw;const s=this.container,a=this.options,l=(new DOMParser).parseFromString(t,"image/svg+xml"),h=l.getElementsByTagName("svg")[0];let c=h.getElementsByTagName("path");c.length||(c=l.getElementsByTagName("path")),this.paths=[];for(let t=0;t<c.length;t++){const e=c.item(t);e&&this.paths.push({element:e,length:e.getTotalLength()})}const u=s.retina.pixelRatio,d=a.scale/u;this.dimension.width=parseFloat(null!==(n=h.getAttribute("width"))&&void 0!==n?n:"0")*d,this.dimension.height=parseFloat(null!==(i=h.getAttribute("height"))&&void 0!==i?i:"0")*d;const p=null!==(o=a.position)&&void 0!==o?o:{x:50,y:50};return this.offset={x:s.canvas.size.width*p.x/(100*u)-this.dimension.width/2,y:s.canvas.size.height*p.y/(100*u)-this.dimension.height/2},function(t,e,n){var i;const o=[];for(const r of t){const t=r.element.pathSegList,s=null!==(i=null==t?void 0:t.numberOfItems)&&void 0!==i?i:0,a={x:0,y:0};for(let i=0;i<s;i++){const r=null==t?void 0:t.getItem(i),s=window.SVGPathSeg;switch(null==r?void 0:r.pathSegType){case s.PATHSEG_MOVETO_ABS:case s.PATHSEG_LINETO_ABS:case s.PATHSEG_CURVETO_CUBIC_ABS:case s.PATHSEG_CURVETO_QUADRATIC_ABS:case s.PATHSEG_ARC_ABS:case s.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:case s.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:{const t=r;a.x=t.x,a.y=t.y;break}case s.PATHSEG_LINETO_HORIZONTAL_ABS:a.x=r.x;break;case s.PATHSEG_LINETO_VERTICAL_ABS:a.y=r.y;break;case s.PATHSEG_LINETO_REL:case s.PATHSEG_MOVETO_REL:case s.PATHSEG_CURVETO_CUBIC_REL:case s.PATHSEG_CURVETO_QUADRATIC_REL:case s.PATHSEG_ARC_REL:case s.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:case s.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:{const t=r;a.x+=t.x,a.y+=t.y;break}case s.PATHSEG_LINETO_HORIZONTAL_REL:a.x+=r.x;break;case s.PATHSEG_LINETO_VERTICAL_REL:a.y+=r.y;break;case s.PATHSEG_UNKNOWN:case s.PATHSEG_CLOSEPATH:continue}o.push({x:a.x*e+n.x,y:a.y*e+n.y})}}return o}(this.paths,d,this.offset)}async downloadSvgPath(t,e){const n=this.options,i=t||n.url,o=null!=e&&e;if(!i||void 0!==this.paths&&!o)return this.raw;const r=await fetch(i);if(!r.ok)throw new Error("tsParticles Error - Error occurred during polygon mask download");return this.parseSvgPath(await r.text(),e)}drawPoints(){if(this.raw)for(const t of this.raw)this.container.particles.addParticle({x:t.x,y:t.y})}randomPoint(){const t=this.container,e=this.options;let n;if("inline"===e.type)switch(e.inline.arrangement){case"random-point":n=this.getRandomPoint();break;case"random-length":n=this.getRandomPointByLength();break;case"equidistant":n=this.getEquidistantPointByIndex(t.particles.count);break;case"one-per-point":case"per-point":default:n=this.getPointByIndex(t.particles.count)}else n={x:Math.random()*t.canvas.size.width,y:Math.random()*t.canvas.size.height};return this.checkInsidePolygon(n)?n:this.randomPoint()}getRandomPoint(){if(!this.raw||!this.raw.length)throw new Error(c.noPolygonDataLoaded);const t=w(this.raw);return{x:t.x,y:t.y}}getRandomPointByLength(){var t,e,n;const i=this.options;if(!this.raw||!this.raw.length||!(null===(t=this.paths)||void 0===t?void 0:t.length))throw new Error(c.noPolygonDataLoaded);const o=w(this.paths),r=Math.floor(Math.random()*o.length)+1,s=o.element.getPointAtLength(r);return{x:s.x*i.scale+((null===(e=this.offset)||void 0===e?void 0:e.x)||0),y:s.y*i.scale+((null===(n=this.offset)||void 0===n?void 0:n.y)||0)}}getEquidistantPointByIndex(t){var e,n,i,o,r,s,a;const l=this.container.actualOptions,h=this.options;if(!this.raw||!this.raw.length||!(null===(e=this.paths)||void 0===e?void 0:e.length))throw new Error(c.noPolygonDataLoaded);let u,d=0;const p=this.paths.reduce(((t,e)=>t+e.length),0)/l.particles.number.value;for(const e of this.paths){const n=p*t-d;if(n<=e.length){u=e.element.getPointAtLength(n);break}d+=e.length}return{x:(null!==(n=null==u?void 0:u.x)&&void 0!==n?n:0)*h.scale+(null!==(o=null===(i=this.offset)||void 0===i?void 0:i.x)&&void 0!==o?o:0),y:(null!==(r=null==u?void 0:u.y)&&void 0!==r?r:0)*h.scale+(null!==(a=null===(s=this.offset)||void 0===s?void 0:s.y)&&void 0!==a?a:0)}}getPointByIndex(t){if(!this.raw||!this.raw.length)throw new Error(c.noPolygonDataLoaded);const e=this.raw[t%this.raw.length];return{x:e.x,y:e.y}}createPath2D(){var t,e;const n=this.options;if(this.path2DSupported&&(null===(t=this.paths)||void 0===t?void 0:t.length))for(const t of this.paths){const i=null===(e=t.element)||void 0===e?void 0:e.getAttribute("d");if(i){const e=new Path2D(i),o=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix(),r=new Path2D,s=o.scale(n.scale);r.addPath?(r.addPath(e,s),t.path2d=r):delete t.path2d}else delete t.path2d;!t.path2d&&this.raw&&(t.path2d=new Path2D,t.path2d.moveTo(this.raw[0].x,this.raw[0].y),this.raw.forEach(((e,n)=>{var i;n>0&&(null===(i=t.path2d)||void 0===i||i.lineTo(e.x,e.y))})),t.path2d.closePath())}}async initRawData(t){const e=this.options;if(e.url)this.raw=await this.downloadSvgPath(e.url,t);else if(e.data){const n=e.data;let i;if("string"!=typeof n){const t=n.path instanceof Array?n.path.map((t=>`<path d="${t}" />`)).join(""):`<path d="${n.path}" />`;i=`<svg ${'xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"'} width="${n.size.width}" height="${n.size.height}">${t}</svg>`}else i=n;this.raw=this.parseSvgPath(i,t)}this.createPath2D()}}class D{constructor(){this.id="polygonMask"}getPlugin(t){return new H(t)}needsPlugin(t){var e,n,i;return null!==(n=null===(e=null==t?void 0:t.polygon)||void 0===e?void 0:e.enable)&&void 0!==n?n:void 0!==(null===(i=null==t?void 0:t.polygon)||void 0===i?void 0:i.type)&&"none"!==t.polygon.type}loadOptions(t,e){if(!this.needsPlugin(e))return;const n=t;let i=n.polygon;void 0===(null==i?void 0:i.load)&&(n.polygon=i=new R),i.load(null==e?void 0:e.polygon)}}async function G(t){g()||"SVGPathSeg"in window||await a.e(404).then(a.t.bind(a,167,23));const e=new D;await t.addPlugin(e)}return l=a.O(l)}()}));
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var i in n)("object"==typeof exports?exports:t)[i]=n[i]}}(window,(function(){return function(){"use strict";var t,e,n,i,o,r={},s={};function a(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}};return r[t](n,n.exports,a),n.exports}a.m=r,t=[],a.O=function(e,n,i,o){if(!n){var r=1/0;for(c=0;c<t.length;c++){n=t[c][0],i=t[c][1],o=t[c][2];for(var s=!0,l=0;l<n.length;l++)(!1&o||r>=o)&&Object.keys(a.O).every((function(t){return a.O[t](n[l])}))?n.splice(l--,1):(s=!1,o<r&&(r=o));if(s){t.splice(c--,1);var h=i();void 0!==h&&(e=h)}}return e}o=o||0;for(var c=t.length;c>0&&t[c-1][2]>o;c--)t[c]=t[c-1];t[c]=[n,i,o]},a.F={},a.E=function(t){Object.keys(a.F).map((function(e){a.F[e](t)}))},n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},a.t=function(t,i){if(1&i&&(t=this(t)),8&i)return t;if("object"==typeof t&&t){if(4&i&&t.__esModule)return t;if(16&i&&"function"==typeof t.then)return t}var o=Object.create(null);a.r(o);var r={};e=e||[null,n({}),n([]),n(n)];for(var s=2&i&&t;"object"==typeof s&&!~e.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((function(e){r[e]=function(){return t[e]}}));return r.default=function(){return t},a.d(o,r),o},a.d=function(t,e){for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.f={},a.e=function(t){return Promise.all(Object.keys(a.f).reduce((function(e,n){return a.f[n](t,e),e}),[]))},a.u=function(t){return"tsparticles.pathseg.min.js"},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i={},o="tsparticles:",a.l=function(t,e,n,r){if(i[t])i[t].push(e);else{var s,l;if(void 0!==n)for(var h=document.getElementsByTagName("script"),c=0;c<h.length;c++){var u=h[c];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==o+n){s=u;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.setAttribute("data-webpack",o+n),s.src=t),i[t]=[e];var d=function(e,n){s.onerror=s.onload=null,clearTimeout(p);var o=i[t];if(delete i[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((function(t){return t(n)})),e)return e(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),l&&document.head.appendChild(s)}},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},function(){var t;a.g.importScripts&&(t=a.g.location+"");var e=a.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=t}(),function(){var t={475:0,143:0};a.f.j=function(e,n){var i=a.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var o=new Promise((function(n,o){i=t[e]=[n,o]}));n.push(i[2]=o);var r=a.p+a.u(e),s=new Error;a.l(r,(function(n){if(a.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var o=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+r+")",s.name="ChunkLoadError",s.type=o,s.request=r,i[1](s)}}),"chunk-"+e,e)}},a.F.j=function(e){if(!a.o(t,e)||void 0===t[e]){t[e]=null;var n=document.createElement("link");a.nc&&n.setAttribute("nonce",a.nc),n.rel="prefetch",n.as="script",n.href=a.p+a.u(e),document.head.appendChild(n)}},a.O.j=function(e){return 0===t[e]};var e=function(e,n){var i,o,r=n[0],s=n[1],l=n[2],h=0;if(r.some((function(e){return 0!==t[e]}))){for(i in s)a.o(s,i)&&(a.m[i]=s[i]);if(l)var c=l(a)}for(e&&e(n);h<r.length;h++)o=r[h],a.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return a.O(c)},n=window.webpackChunktsparticles=window.webpackChunktsparticles||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))}(),a.O(0,[475],(function(){a.E(404)}),5);var l={};a.r(l),a.d(l,{loadPolygonMaskPlugin:function(){return G}});class h{constructor(){this.value="#fff"}static create(t,e){const n=new h;return n.load(t),void 0!==e&&("string"==typeof e||e instanceof Array?n.load({value:e}):n.load(e)),n}load(t){void 0!==(null==t?void 0:t.value)&&(this.value=t.value)}}class c{}c.generatedAttribute="generated",c.randomColorValue="random",c.midColorValue="mid",c.touchEndEvent="touchend",c.mouseDownEvent="mousedown",c.mouseUpEvent="mouseup",c.mouseMoveEvent="mousemove",c.touchStartEvent="touchstart",c.touchMoveEvent="touchmove",c.mouseLeaveEvent="mouseleave",c.mouseOutEvent="mouseout",c.touchCancelEvent="touchcancel",c.resizeEvent="resize",c.visibilityChangeEvent="visibilitychange",c.noPolygonDataLoaded="No polygon data loaded.",c.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;class u{constructor(t,e){let n,i;if(void 0===e){if("number"==typeof t)throw new Error("tsParticles - Vector not initialized correctly");const e=t;[n,i]=[e.x,e.y]}else[n,i]=[t,e];this.x=n,this.y=i}static clone(t){return u.create(t.x,t.y)}static create(t,e){return new u(t,e)}static get origin(){return u.create(0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(t){this.updateFromAngle(t,this.length)}get length(){return Math.sqrt(this.x**2+this.y**2)}set length(t){this.updateFromAngle(this.angle,t)}add(t){return u.create(this.x+t.x,this.y+t.y)}addTo(t){this.x+=t.x,this.y+=t.y}sub(t){return u.create(this.x-t.x,this.y-t.y)}subFrom(t){this.x-=t.x,this.y-=t.y}mult(t){return u.create(this.x*t,this.y*t)}multTo(t){this.x*=t,this.y*=t}div(t){return u.create(this.x/t,this.y/t)}divTo(t){this.x/=t,this.y/=t}distanceTo(t){return this.sub(t).length}getLengthSq(){return this.x**2+this.y**2}distanceToSq(t){return this.sub(t).getLengthSq()}manhattanDistanceTo(t){return Math.abs(t.x-this.x)+Math.abs(t.y-this.y)}copy(){return u.clone(this)}setTo(t){this.x=t.x,this.y=t.y}rotate(t){return u.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t))}updateFromAngle(t,e){this.x=Math.cos(t)*e,this.y=Math.sin(t)*e}}new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function d(t){const e=f(t);let n=p(t);return e===n&&(n=0),Math.random()*(e-n)+n}function p(t){return"number"==typeof t?t:t.min}function f(t){return"number"==typeof t?t:t.max}function v(t,e){if(t===e||void 0===e&&"number"==typeof t)return t;const n=p(t),i=f(t);return void 0!==e?{min:Math.min(n,e),max:Math.max(i,e)}:v(n,i)}function y(t,e){const n=t.x-e.x,i=t.y-e.y;return{dx:n,dy:i,distance:Math.sqrt(n*n+i*i)}}function g(){return"undefined"==typeof window||!window||void 0===window.document||!window.document}function w(t,e,n=!0){return t[void 0!==e&&n?e%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function m(t,...e){for(const n of e){if(null==n)continue;if("object"!=typeof n){t=n;continue}const e=Array.isArray(n);!e||"object"==typeof t&&t&&Array.isArray(t)?e||"object"==typeof t&&t&&!Array.isArray(t)||(t={}):t=[];for(const e in n){if("__proto__"===e)continue;const i=n[e],o="object"==typeof i,r=t;r[e]=o&&Array.isArray(i)?i.map((t=>m(r[e],t))):m(r[e],i)}}return t}function b(t,e,n){let i=n;return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function x(t){if(t.startsWith("rgb")){const e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?{a:e.length>4?parseFloat(e[5]):1,b:parseInt(e[3],10),g:parseInt(e[2],10),r:parseInt(e[1],10)}:void 0}if(t.startsWith("hsl")){const e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=E(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),l:parseInt(e[3],10),s:parseInt(e[2],10)}):void 0}if(t.startsWith("hsv")){const e=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=T(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),s:parseInt(e[2],10),v:parseInt(e[3],10)}):void 0}{const e=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,n=t.replace(e,((t,e,n,i,o)=>e+e+n+n+i+i+(void 0!==o?o+o:""))),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(n);return i?{a:void 0!==i[4]?parseInt(i[4],16)/255:1,b:parseInt(i[3],16),g:parseInt(i[2],16),r:parseInt(i[1],16)}:void 0}}function P(t,e,n=!0){var i,o,r;if(void 0===t)return;const s="string"==typeof t?{value:t}:t;let a;if("string"==typeof s.value)a=s.value===c.randomColorValue?A():function(t){return x(t)}(s.value);else if(s.value instanceof Array){a=P({value:w(s.value,e,n)})}else{const t=s.value,e=null!==(i=t.rgb)&&void 0!==i?i:s.value;if(void 0!==e.r)a=e;else{const e=null!==(o=t.hsl)&&void 0!==o?o:s.value;if(void 0!==e.h&&void 0!==e.l)a=E(e);else{const e=null!==(r=t.hsv)&&void 0!==r?r:s.value;void 0!==e.h&&void 0!==e.v&&(a=T(e))}}}return a}function E(t){const e={b:0,g:0,r:0},n={h:t.h/360,l:t.l/100,s:t.s/100};if(0===n.s)e.b=n.l,e.g=n.l,e.r=n.l;else{const t=n.l<.5?n.l*(1+n.s):n.l+n.s-n.l*n.s,i=2*n.l-t;e.r=b(i,t,n.h+1/3),e.g=b(i,t,n.h),e.b=b(i,t,n.h-1/3)}return e.r=Math.floor(255*e.r),e.g=Math.floor(255*e.g),e.b=Math.floor(255*e.b),e}function T(t){const e={b:0,g:0,r:0},n=t.h/60,i=t.s/100,o=t.v/100,r=o*i,s=r*(1-Math.abs(n%2-1));let a;if(n>=0&&n<=1?a={r:r,g:s,b:0}:n>1&&n<=2?a={r:s,g:r,b:0}:n>2&&n<=3?a={r:0,g:r,b:s}:n>3&&n<=4?a={r:0,g:s,b:r}:n>4&&n<=5?a={r:s,g:0,b:r}:n>5&&n<=6&&(a={r:r,g:0,b:s}),a){const t=o-r;e.r=Math.floor(255*(a.r+t)),e.g=Math.floor(255*(a.g+t)),e.b=Math.floor(255*(a.b+t))}return e}function A(t){const e=null!=t?t:0;return{b:Math.floor(d(v(e,256))),g:Math.floor(d(v(e,256))),r:Math.floor(d(v(e,256)))}}function S(t,e){return`rgba(${t.r}, ${t.g}, ${t.b}, ${null!=e?e:1})`}new WeakMap;class _{constructor(){this.color=new h,this.width=.5,this.opacity=1}load(t){var e;t&&(this.color=h.create(this.color,t.color),"string"==typeof this.color.value&&(this.opacity=null!==(e=function(t){var e;return null===(e=x(t))||void 0===e?void 0:e.a}(this.color.value))&&void 0!==e?e:this.opacity),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.width&&(this.width=t.width))}}class M{constructor(){this.enable=!1,this.stroke=new _}get lineWidth(){return this.stroke.width}set lineWidth(t){this.stroke.width=t}get lineColor(){return this.stroke.color}set lineColor(t){this.stroke.color=h.create(this.stroke.color,t)}load(t){var e;if(!t)return;void 0!==t.enable&&(this.enable=t.enable);const n=null!==(e=t.stroke)&&void 0!==e?e:{color:t.lineColor,width:t.lineWidth};this.stroke.load(n)}}class O{constructor(){this.arrangement="one-per-point"}load(t){t&&void 0!==t.arrangement&&(this.arrangement=t.arrangement)}}class k{constructor(){this.path=[],this.size={height:0,width:0}}load(t){t&&(void 0!==t.path&&(this.path=t.path),void 0!==t.size&&(void 0!==t.size.width&&(this.size.width=t.size.width),void 0!==t.size.height&&(this.size.height=t.size.height)))}}class I{constructor(){this.radius=10,this.type="path"}load(t){t&&(void 0!==t.radius&&(this.radius=t.radius),void 0!==t.type&&(this.type=t.type))}}class R{constructor(){this.draw=new M,this.enable=!1,this.inline=new O,this.move=new I,this.scale=1,this.type="none"}get inlineArrangement(){return this.inline.arrangement}set inlineArrangement(t){this.inline.arrangement=t}load(t){var e;if(!t)return;this.draw.load(t.draw);const n=null!==(e=t.inline)&&void 0!==e?e:{arrangement:t.inlineArrangement};void 0!==n&&this.inline.load(n),this.move.load(t.move),void 0!==t.scale&&(this.scale=t.scale),void 0!==t.type&&(this.type=t.type),void 0!==t.enable?this.enable=t.enable:this.enable="none"!==this.type,void 0!==t.url&&(this.url=t.url),void 0!==t.data&&("string"==typeof t.data?this.data=t.data:(this.data=new k,this.data.load(t.data))),void 0!==t.position&&(this.position=m({},t.position))}}function C(t,e,n){const i=P(n.color);if(i){t.beginPath(),t.moveTo(e[0].x,e[0].y);for(const n of e)t.lineTo(n.x,n.y);t.closePath(),t.strokeStyle=S(i),t.lineWidth=n.width,t.stroke()}}function L(t,e,n,i){t.translate(i.x,i.y);const o=P(n.color);o&&(t.strokeStyle=S(o,n.opacity),t.lineWidth=n.width,t.stroke(e))}function j(t,e,n){const{dx:i,dy:o}=y(n,t),{dx:r,dy:s}=y(e,t),a=(i*r+o*s)/(r**2+s**2),l={x:t.x+r*a,y:t.x+s*a,isOnSegment:a>=0&&a<=1};return a<0?(l.x=t.x,l.y=t.y):a>1&&(l.x=e.x,l.y=e.y),l}function B(t,e,n){const{dx:i,dy:o}=y(t,e),r=Math.atan2(o,i),s=u.create(Math.sin(r),-Math.cos(r)),a=2*(n.x*s.x+n.y*s.y);s.multTo(a),n.subFrom(s)}class H{constructor(t){this.container=t,this.dimension={height:0,width:0},this.path2DSupported=!!window.Path2D,this.options=new R,this.polygonMaskMoveRadius=this.options.move.radius*t.retina.pixelRatio}async initAsync(t){this.options.load(null==t?void 0:t.polygon);const e=this.options;this.polygonMaskMoveRadius=e.move.radius*this.container.retina.pixelRatio,e.enable&&await this.initRawData()}resize(){const t=this.container,e=this.options;e.enable&&"none"!==e.type&&(this.redrawTimeout&&clearTimeout(this.redrawTimeout),this.redrawTimeout=window.setTimeout((async()=>{await this.initRawData(!0),await t.particles.redraw()}),250))}stop(){delete this.raw,delete this.paths}particlesInitialization(){const t=this.options;return!(!t.enable||"inline"!==t.type||"one-per-point"!==t.inline.arrangement&&"per-point"!==t.inline.arrangement)&&(this.drawPoints(),!0)}particlePosition(t){var e,n;if(this.options.enable&&(null!==(n=null===(e=this.raw)||void 0===e?void 0:e.length)&&void 0!==n?n:0)>0)return m({},t||this.randomPoint())}particleBounce(t,e,n){return this.polygonBounce(t,e,n)}clickPositionValid(t){const e=this.options;return e.enable&&"none"!==e.type&&"inline"!==e.type&&this.checkInsidePolygon(t)}draw(t){var e;if(!(null===(e=this.paths)||void 0===e?void 0:e.length))return;const n=this.options,i=n.draw;if(!n.enable||!i.enable)return;const o=this.raw;for(const e of this.paths){const n=e.path2d,r=this.path2DSupported;t&&(r&&n&&this.offset?L(t,n,i.stroke,this.offset):o&&C(t,o,i.stroke))}}polygonBounce(t,e,n){const i=this.options;if(!this.raw||!i.enable||"top"!==n)return!1;if("inside"===i.type||"outside"===i.type){let e,n,i;const o=t.getPosition(),r=t.getRadius();for(let s=0,a=this.raw.length-1;s<this.raw.length;a=s++){const l=this.raw[s],h=this.raw[a];e=j(l,h,o);const c=y(o,e);if([n,i]=[c.dx,c.dy],c.distance<r)return B(l,h,t.velocity),!0}if(e&&void 0!==n&&void 0!==i&&!this.checkInsidePolygon(o)){const n={x:1,y:1};return t.position.x>=e.x&&(n.x=-1),t.position.y>=e.y&&(n.y=-1),t.position.x=e.x+2*r*n.x,t.position.y=e.y+2*r*n.y,t.velocity.mult(-1),!0}}else if("inline"===i.type&&t.initialPosition){if((o=t.initialPosition,r=t.getPosition(),y(o,r).distance)>this.polygonMaskMoveRadius)return t.velocity.x=t.velocity.y/2-t.velocity.x,t.velocity.y=t.velocity.x/2-t.velocity.y,!0}var o,r;return!1}checkInsidePolygon(t){var e,n;const i=this.container,o=this.options;if(!o.enable||"none"===o.type||"inline"===o.type)return!0;if(!this.raw)throw new Error(c.noPolygonFound);const r=i.canvas.size,s=null!==(e=null==t?void 0:t.x)&&void 0!==e?e:Math.random()*r.width,a=null!==(n=null==t?void 0:t.y)&&void 0!==n?n:Math.random()*r.height;let l=!1;for(let t=0,e=this.raw.length-1;t<this.raw.length;e=t++){const n=this.raw[t],i=this.raw[e];n.y>a!=i.y>a&&s<(i.x-n.x)*(a-n.y)/(i.y-n.y)+n.x&&(l=!l)}return"inside"===o.type?l:"outside"===o.type&&!l}parseSvgPath(t,e){var n,i,o;const r=null!=e&&e;if(void 0!==this.paths&&!r)return this.raw;const s=this.container,a=this.options,l=(new DOMParser).parseFromString(t,"image/svg+xml"),h=l.getElementsByTagName("svg")[0];let c=h.getElementsByTagName("path");c.length||(c=l.getElementsByTagName("path")),this.paths=[];for(let t=0;t<c.length;t++){const e=c.item(t);e&&this.paths.push({element:e,length:e.getTotalLength()})}const u=s.retina.pixelRatio,d=a.scale/u;this.dimension.width=parseFloat(null!==(n=h.getAttribute("width"))&&void 0!==n?n:"0")*d,this.dimension.height=parseFloat(null!==(i=h.getAttribute("height"))&&void 0!==i?i:"0")*d;const p=null!==(o=a.position)&&void 0!==o?o:{x:50,y:50};return this.offset={x:s.canvas.size.width*p.x/(100*u)-this.dimension.width/2,y:s.canvas.size.height*p.y/(100*u)-this.dimension.height/2},function(t,e,n){var i;const o=[];for(const r of t){const t=r.element.pathSegList,s=null!==(i=null==t?void 0:t.numberOfItems)&&void 0!==i?i:0,a={x:0,y:0};for(let i=0;i<s;i++){const r=null==t?void 0:t.getItem(i),s=window.SVGPathSeg;switch(null==r?void 0:r.pathSegType){case s.PATHSEG_MOVETO_ABS:case s.PATHSEG_LINETO_ABS:case s.PATHSEG_CURVETO_CUBIC_ABS:case s.PATHSEG_CURVETO_QUADRATIC_ABS:case s.PATHSEG_ARC_ABS:case s.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:case s.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:{const t=r;a.x=t.x,a.y=t.y;break}case s.PATHSEG_LINETO_HORIZONTAL_ABS:a.x=r.x;break;case s.PATHSEG_LINETO_VERTICAL_ABS:a.y=r.y;break;case s.PATHSEG_LINETO_REL:case s.PATHSEG_MOVETO_REL:case s.PATHSEG_CURVETO_CUBIC_REL:case s.PATHSEG_CURVETO_QUADRATIC_REL:case s.PATHSEG_ARC_REL:case s.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:case s.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:{const t=r;a.x+=t.x,a.y+=t.y;break}case s.PATHSEG_LINETO_HORIZONTAL_REL:a.x+=r.x;break;case s.PATHSEG_LINETO_VERTICAL_REL:a.y+=r.y;break;case s.PATHSEG_UNKNOWN:case s.PATHSEG_CLOSEPATH:continue}o.push({x:a.x*e+n.x,y:a.y*e+n.y})}}return o}(this.paths,d,this.offset)}async downloadSvgPath(t,e){const n=this.options,i=t||n.url,o=null!=e&&e;if(!i||void 0!==this.paths&&!o)return this.raw;const r=await fetch(i);if(!r.ok)throw new Error("tsParticles Error - Error occurred during polygon mask download");return this.parseSvgPath(await r.text(),e)}drawPoints(){if(this.raw)for(const t of this.raw)this.container.particles.addParticle({x:t.x,y:t.y})}randomPoint(){const t=this.container,e=this.options;let n;if("inline"===e.type)switch(e.inline.arrangement){case"random-point":n=this.getRandomPoint();break;case"random-length":n=this.getRandomPointByLength();break;case"equidistant":n=this.getEquidistantPointByIndex(t.particles.count);break;case"one-per-point":case"per-point":default:n=this.getPointByIndex(t.particles.count)}else n={x:Math.random()*t.canvas.size.width,y:Math.random()*t.canvas.size.height};return this.checkInsidePolygon(n)?n:this.randomPoint()}getRandomPoint(){if(!this.raw||!this.raw.length)throw new Error(c.noPolygonDataLoaded);const t=w(this.raw);return{x:t.x,y:t.y}}getRandomPointByLength(){var t,e,n;const i=this.options;if(!this.raw||!this.raw.length||!(null===(t=this.paths)||void 0===t?void 0:t.length))throw new Error(c.noPolygonDataLoaded);const o=w(this.paths),r=Math.floor(Math.random()*o.length)+1,s=o.element.getPointAtLength(r);return{x:s.x*i.scale+((null===(e=this.offset)||void 0===e?void 0:e.x)||0),y:s.y*i.scale+((null===(n=this.offset)||void 0===n?void 0:n.y)||0)}}getEquidistantPointByIndex(t){var e,n,i,o,r,s,a;const l=this.container.actualOptions,h=this.options;if(!this.raw||!this.raw.length||!(null===(e=this.paths)||void 0===e?void 0:e.length))throw new Error(c.noPolygonDataLoaded);let u,d=0;const p=this.paths.reduce(((t,e)=>t+e.length),0)/l.particles.number.value;for(const e of this.paths){const n=p*t-d;if(n<=e.length){u=e.element.getPointAtLength(n);break}d+=e.length}return{x:(null!==(n=null==u?void 0:u.x)&&void 0!==n?n:0)*h.scale+(null!==(o=null===(i=this.offset)||void 0===i?void 0:i.x)&&void 0!==o?o:0),y:(null!==(r=null==u?void 0:u.y)&&void 0!==r?r:0)*h.scale+(null!==(a=null===(s=this.offset)||void 0===s?void 0:s.y)&&void 0!==a?a:0)}}getPointByIndex(t){if(!this.raw||!this.raw.length)throw new Error(c.noPolygonDataLoaded);const e=this.raw[t%this.raw.length];return{x:e.x,y:e.y}}createPath2D(){var t,e;const n=this.options;if(this.path2DSupported&&(null===(t=this.paths)||void 0===t?void 0:t.length))for(const t of this.paths){const i=null===(e=t.element)||void 0===e?void 0:e.getAttribute("d");if(i){const e=new Path2D(i),o=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix(),r=new Path2D,s=o.scale(n.scale);r.addPath?(r.addPath(e,s),t.path2d=r):delete t.path2d}else delete t.path2d;!t.path2d&&this.raw&&(t.path2d=new Path2D,t.path2d.moveTo(this.raw[0].x,this.raw[0].y),this.raw.forEach(((e,n)=>{var i;n>0&&(null===(i=t.path2d)||void 0===i||i.lineTo(e.x,e.y))})),t.path2d.closePath())}}async initRawData(t){const e=this.options;if(e.url)this.raw=await this.downloadSvgPath(e.url,t);else if(e.data){const n=e.data;let i;if("string"!=typeof n){const t=n.path instanceof Array?n.path.map((t=>`<path d="${t}" />`)).join(""):`<path d="${n.path}" />`;i=`<svg ${'xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"'} width="${n.size.width}" height="${n.size.height}">${t}</svg>`}else i=n;this.raw=this.parseSvgPath(i,t)}this.createPath2D()}}class D{constructor(){this.id="polygonMask"}getPlugin(t){return new H(t)}needsPlugin(t){var e,n,i;return null!==(n=null===(e=null==t?void 0:t.polygon)||void 0===e?void 0:e.enable)&&void 0!==n?n:void 0!==(null===(i=null==t?void 0:t.polygon)||void 0===i?void 0:i.type)&&"none"!==t.polygon.type}loadOptions(t,e){if(!this.needsPlugin(e))return;const n=t;let i=n.polygon;void 0===(null==i?void 0:i.load)&&(n.polygon=i=new R),i.load(null==e?void 0:e.polygon)}}async function G(t){g()||"SVGPathSeg"in window||await a.e(404).then(a.t.bind(a,167,23));const e=new D;await t.addPlugin(e)}return l=a.O(l)}()}));
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
2
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{loadCircleShape:function(){return n}});class o{getSidesCount(){return 12}draw(e,t,o){e.arc(0,0,o,0,2*Math.PI,!1)}}async function n(e){await e.addShape("circle",new o)}return t}()}));
@@ -544,20 +544,20 @@
544
544
  }
545
545
  }
546
546
  }
547
- externalInteract(delta) {
547
+ async externalInteract(delta) {
548
548
  for (const interactor of this.externalInteractors) {
549
549
  if (interactor.isEnabled()) {
550
- interactor.interact(delta);
550
+ await interactor.interact(delta);
551
551
  }
552
552
  }
553
553
  }
554
- particlesInteract(particle, delta) {
554
+ async particlesInteract(particle, delta) {
555
555
  for (const interactor of this.externalInteractors) {
556
556
  interactor.reset(particle);
557
557
  }
558
558
  for (const interactor of this.particleInteractors) {
559
559
  if (interactor.isEnabled(particle)) {
560
- interactor.interact(particle, delta);
560
+ await interactor.interact(particle, delta);
561
561
  }
562
562
  }
563
563
  }
@@ -2714,10 +2714,10 @@
2714
2714
  return this.getRadius() ** 2 * Math.PI / 2;
2715
2715
  }
2716
2716
  getFillColor() {
2717
- var _a, _b, _c;
2717
+ var _a, _b;
2718
2718
  const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color);
2719
2719
  if (color && this.roll && (this.backColor || this.roll.alter)) {
2720
- const rolled = Math.floor(((_c = (_b = this.roll) === null || _b === void 0 ? void 0 : _b.angle) !== null && _c !== void 0 ? _c : 0) / (Math.PI / 2)) % 2;
2720
+ const backFactor = this.options.roll.mode === "both" ? 2 : 1, backSum = this.options.roll.mode === "horizontal" ? Math.PI / 2 : 0, rolled = Math.floor((((_b = this.roll.angle) !== null && _b !== void 0 ? _b : 0) + backSum) / (Math.PI / backFactor)) % 2;
2721
2721
  if (rolled) {
2722
2722
  if (this.backColor) {
2723
2723
  return this.backColor;
@@ -2949,10 +2949,10 @@
2949
2949
  }
2950
2950
  container.pathGenerator.init(container);
2951
2951
  }
2952
- redraw() {
2952
+ async redraw() {
2953
2953
  this.clear();
2954
2954
  this.init();
2955
- this.draw({
2955
+ await this.draw({
2956
2956
  value: 0,
2957
2957
  factor: 0
2958
2958
  });
@@ -2977,7 +2977,7 @@
2977
2977
  remove(particle, group, override) {
2978
2978
  this.removeAt(this.array.indexOf(particle), undefined, group, override);
2979
2979
  }
2980
- update(delta) {
2980
+ async update(delta) {
2981
2981
  const container = this.container;
2982
2982
  const particlesToDelete = [];
2983
2983
  container.pathGenerator.update();
@@ -3011,23 +3011,23 @@
3011
3011
  for (const particle of particlesToDelete) {
3012
3012
  this.remove(particle);
3013
3013
  }
3014
- this.interactionManager.externalInteract(delta);
3014
+ await this.interactionManager.externalInteract(delta);
3015
3015
  for (const particle of container.particles.array) {
3016
3016
  for (const updater of this.updaters) {
3017
3017
  updater.update(particle, delta);
3018
3018
  }
3019
3019
  if (!particle.destroyed && !particle.spawning) {
3020
- this.interactionManager.particlesInteract(particle, delta);
3020
+ await this.interactionManager.particlesInteract(particle, delta);
3021
3021
  }
3022
3022
  }
3023
3023
  delete container.canvas.resizeFactor;
3024
3024
  }
3025
- draw(delta) {
3025
+ async draw(delta) {
3026
3026
  const container = this.container;
3027
3027
  container.canvas.clear();
3028
3028
  const canvasSize = this.container.canvas.size;
3029
3029
  this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
3030
- this.update(delta);
3030
+ await this.update(delta);
3031
3031
  if (this.needsSort) {
3032
3032
  this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
3033
3033
  this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;
@@ -3388,12 +3388,12 @@
3388
3388
  }
3389
3389
  draw(force) {
3390
3390
  let refreshTime = force;
3391
- this.drawAnimationFrame = animate()((timestamp => {
3391
+ this.drawAnimationFrame = animate()((async timestamp => {
3392
3392
  if (refreshTime) {
3393
3393
  this.lastFrameTime = undefined;
3394
3394
  refreshTime = false;
3395
3395
  }
3396
- this.drawer.nextFrame(timestamp);
3396
+ await this.drawer.nextFrame(timestamp);
3397
3397
  }));
3398
3398
  }
3399
3399
  getAnimationStatus() {
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
2
  !function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var t=o();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(window,(function(){return function(){"use strict";var e={d:function(o,t){for(var r in t)e.o(t,r)&&!e.o(o,r)&&Object.defineProperty(o,r,{enumerable:!0,get:t[r]})},o:function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};e.r(o),e.d(o,{loadImageShape:function(){return g}});class t{}t.generatedAttribute="generated",t.randomColorValue="random",t.midColorValue="mid",t.touchEndEvent="touchend",t.mouseDownEvent="mousedown",t.mouseUpEvent="mouseup",t.mouseMoveEvent="mousemove",t.touchStartEvent="touchstart",t.touchMoveEvent="touchmove",t.mouseLeaveEvent="mouseleave",t.mouseOutEvent="mouseout",t.touchCancelEvent="touchcancel",t.resizeEvent="resize",t.visibilityChangeEvent="visibilitychange",t.noPolygonDataLoaded="No polygon data loaded.",t.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function r(e,o){return`hsla(${e.h}, ${e.s}%, ${e.l}%, ${null!=o?o:1})`}new WeakMap;const a=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;async function n(e){return new Promise((o=>{e.loading=!0;const t=new Image;t.addEventListener("load",(()=>{e.element=t,e.loading=!1,o()})),t.addEventListener("error",(()=>{e.error=!0,e.loading=!1,console.error(`Error tsParticles - loading image: ${e.source}`),o()})),t.src=e.source}))}async function i(e){if("svg"!==e.type)return void await n(e);e.loading=!0;const o=await fetch(e.source);e.loading=!1,o.ok||(console.error("Error tsParticles - Image not found"),e.error=!0),e.error||(e.svgData=await o.text())}function s(e,o,t,i){var s,l,c;const d=function(e,o,t){const{svgData:n}=e;if(!n)return"";const i=r(o,t);if(n.includes("fill"))return n.replace(a,(()=>i));const s=n.indexOf(">");return`${n.substring(0,s)} fill="${i}"${n.substring(s)}`}(e,t,null!==(l=null===(s=i.opacity)||void 0===s?void 0:s.value)&&void 0!==l?l:1),u=new Blob([d],{type:"image/svg+xml"}),g=URL||window.URL||window.webkitURL||window,f=g.createObjectURL(u),v=new Image,m={data:Object.assign(Object.assign({},e),{svgData:d}),ratio:o.width/o.height,replaceColor:null!==(c=o.replaceColor)&&void 0!==c?c:o.replace_color,source:o.src};return v.addEventListener("load",(()=>{const o=i.image;o&&(o.loaded=!0,e.element=v),g.revokeObjectURL(f)})),v.addEventListener("error",(()=>{g.revokeObjectURL(f);const o=Object.assign(Object.assign({},e),{error:!1,loading:!0});n(o).then((()=>{const t=i.image;t&&(e.element=o.element,t.loaded=!0)}))})),v.src=f,m}var l,c=function(e,o,t,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof o?e!==o||!a:!o.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,t):a?a.value=t:o.set(e,t),t},d=function(e,o,t,r){if("a"===t&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof o?e!==o||!r:!o.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?r:"a"===t?r.call(e):r?r.value:o.get(e)};class u{constructor(){l.set(this,void 0),c(this,l,[],"f")}getSidesCount(){return 12}getImages(e){const o=d(this,l,"f").find((o=>o.id===e.id));return o||(d(this,l,"f").push({id:e.id,images:[]}),this.getImages(e))}addImage(e,o){const t=this.getImages(e);null==t||t.images.push(o)}destroy(){c(this,l,[],"f")}async loadImageShape(e,o){const t=o.src;if(!t)throw new Error("Error tsParticles - No image.src");try{const r={source:t,type:t.substr(t.length-3),error:!1,loading:!0};this.addImage(e,r);const a=o.replaceColor?i:n;await a(r)}catch(e){throw new Error(`tsParticles error - ${o.src} not found`)}}draw(e,o,t,r){var a,n;const i=o.image,s=null===(a=null==i?void 0:i.data)||void 0===a?void 0:a.element;if(!s)return;const l=null!==(n=null==i?void 0:i.ratio)&&void 0!==n?n:1,c={x:-t,y:-t};(null==i?void 0:i.data.svgData)&&(null==i?void 0:i.replaceColor)||(e.globalAlpha=r),e.drawImage(s,c.x,c.y,2*t,2*t/l),(null==i?void 0:i.data.svgData)&&(null==i?void 0:i.replaceColor)||(e.globalAlpha=1)}loadShape(e){var o,t,r;if("image"!==e.shape&&"images"!==e.shape)return;const a=this.getImages(e.container).images,n=e.shapeData,i=a.find((e=>e.source===n.src));let l;if(!i)return void this.loadImageShape(e.container,n).then((()=>{this.loadShape(e)}));if(i.error)return;const c=e.getFillColor();l=i.svgData&&n.replaceColor&&c?s(i,n,c,e):{data:i,loaded:!0,ratio:n.width/n.height,replaceColor:null!==(o=n.replaceColor)&&void 0!==o?o:n.replace_color,source:n.src},l.ratio||(l.ratio=1);const d={image:l,fill:null!==(t=n.fill)&&void 0!==t?t:e.fill,close:null!==(r=n.close)&&void 0!==r?r:e.close};e.image=d.image,e.fill=d.fill,e.close=d.close}}async function g(e){const o=new u;await e.addShape("image",o),await e.addShape("images",o)}return l=new WeakMap,o}()}));
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
2
  !function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var t=o();for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(window,(function(){return function(){"use strict";var e={d:function(o,t){for(var n in t)e.o(t,n)&&!e.o(o,n)&&Object.defineProperty(o,n,{enumerable:!0,get:t[n]})},o:function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};e.r(o),e.d(o,{loadLineShape:function(){return n}});class t{getSidesCount(){return 1}draw(e,o,t){e.moveTo(-t/2,0),e.lineTo(t/2,0)}}async function n(e){await e.addShape("line",new t)}return o}()}));
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
2
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(window,(function(){return function(){"use strict";var e={d:function(t,n){for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{loadGenericPolygonShape:function(){return a},loadPolygonShape:function(){return u},loadTriangleShape:function(){return i}});class n{getSidesCount(e){var t,n;const o=e.shapeData;return null!==(n=null!==(t=null==o?void 0:o.sides)&&void 0!==t?t:null==o?void 0:o.nb_sides)&&void 0!==n?n:5}draw(e,t,n){const o=this.getCenter(t,n),r=this.getSidesData(t,n),a=r.count.numerator*r.count.denominator,i=r.count.numerator/r.count.denominator,u=180*(i-2)/i,l=Math.PI-Math.PI*u/180;if(e){e.beginPath(),e.translate(o.x,o.y),e.moveTo(0,0);for(let t=0;t<a;t++)e.lineTo(r.length,0),e.translate(r.length,0),e.rotate(l)}}}class o extends n{getSidesData(e,t){var n,o;const r=e.shapeData,a=null!==(o=null!==(n=null==r?void 0:r.sides)&&void 0!==n?n:null==r?void 0:r.nb_sides)&&void 0!==o?o:5;return{count:{denominator:1,numerator:a},length:2.66*t/(a/3)}}getCenter(e,t){return{x:-t/(this.getSidesCount(e)/3.5),y:-t/.76}}}class r extends n{getSidesCount(){return 3}getSidesData(e,t){return{count:{denominator:2,numerator:3},length:2*t}}getCenter(e,t){return{x:-t,y:t/1.66}}}async function a(e){await e.addShape("polygon",new o)}async function i(e){await e.addShape("triangle",new r)}async function u(e){await a(e),await i(e)}return t}()}));
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
2
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{loadSquareShape:function(){return r}});const o=Math.sqrt(2);class n{getSidesCount(){return 4}draw(e,t,n){e.rect(-n/o,-n/o,2*n/o,2*n/o)}}async function r(e){const t=new n;await e.addShape("edge",t),await e.addShape("square",t)}return t}()}));
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
2
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{loadStarShape:function(){return n}});class o{getSidesCount(e){var t,o;const n=e.shapeData;return null!==(o=null!==(t=null==n?void 0:n.sides)&&void 0!==t?t:null==n?void 0:n.nb_sides)&&void 0!==o?o:5}draw(e,t,o){var n;const r=t.shapeData,i=this.getSidesCount(t),a=null!==(n=null==r?void 0:r.inset)&&void 0!==n?n:2;e.moveTo(0,0-o);for(let t=0;t<i;t++)e.rotate(Math.PI/i),e.lineTo(0,0-o*a),e.rotate(Math.PI/i),e.lineTo(0,0-o)}}async function n(e){await e.addShape("star",new o)}return t}()}));
@@ -544,20 +544,20 @@
544
544
  }
545
545
  }
546
546
  }
547
- externalInteract(delta) {
547
+ async externalInteract(delta) {
548
548
  for (const interactor of this.externalInteractors) {
549
549
  if (interactor.isEnabled()) {
550
- interactor.interact(delta);
550
+ await interactor.interact(delta);
551
551
  }
552
552
  }
553
553
  }
554
- particlesInteract(particle, delta) {
554
+ async particlesInteract(particle, delta) {
555
555
  for (const interactor of this.externalInteractors) {
556
556
  interactor.reset(particle);
557
557
  }
558
558
  for (const interactor of this.particleInteractors) {
559
559
  if (interactor.isEnabled(particle)) {
560
- interactor.interact(particle, delta);
560
+ await interactor.interact(particle, delta);
561
561
  }
562
562
  }
563
563
  }
@@ -2714,10 +2714,10 @@
2714
2714
  return this.getRadius() ** 2 * Math.PI / 2;
2715
2715
  }
2716
2716
  getFillColor() {
2717
- var _a, _b, _c;
2717
+ var _a, _b;
2718
2718
  const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color);
2719
2719
  if (color && this.roll && (this.backColor || this.roll.alter)) {
2720
- const rolled = Math.floor(((_c = (_b = this.roll) === null || _b === void 0 ? void 0 : _b.angle) !== null && _c !== void 0 ? _c : 0) / (Math.PI / 2)) % 2;
2720
+ const backFactor = this.options.roll.mode === "both" ? 2 : 1, backSum = this.options.roll.mode === "horizontal" ? Math.PI / 2 : 0, rolled = Math.floor((((_b = this.roll.angle) !== null && _b !== void 0 ? _b : 0) + backSum) / (Math.PI / backFactor)) % 2;
2721
2721
  if (rolled) {
2722
2722
  if (this.backColor) {
2723
2723
  return this.backColor;
@@ -2949,10 +2949,10 @@
2949
2949
  }
2950
2950
  container.pathGenerator.init(container);
2951
2951
  }
2952
- redraw() {
2952
+ async redraw() {
2953
2953
  this.clear();
2954
2954
  this.init();
2955
- this.draw({
2955
+ await this.draw({
2956
2956
  value: 0,
2957
2957
  factor: 0
2958
2958
  });
@@ -2977,7 +2977,7 @@
2977
2977
  remove(particle, group, override) {
2978
2978
  this.removeAt(this.array.indexOf(particle), undefined, group, override);
2979
2979
  }
2980
- update(delta) {
2980
+ async update(delta) {
2981
2981
  const container = this.container;
2982
2982
  const particlesToDelete = [];
2983
2983
  container.pathGenerator.update();
@@ -3011,23 +3011,23 @@
3011
3011
  for (const particle of particlesToDelete) {
3012
3012
  this.remove(particle);
3013
3013
  }
3014
- this.interactionManager.externalInteract(delta);
3014
+ await this.interactionManager.externalInteract(delta);
3015
3015
  for (const particle of container.particles.array) {
3016
3016
  for (const updater of this.updaters) {
3017
3017
  updater.update(particle, delta);
3018
3018
  }
3019
3019
  if (!particle.destroyed && !particle.spawning) {
3020
- this.interactionManager.particlesInteract(particle, delta);
3020
+ await this.interactionManager.particlesInteract(particle, delta);
3021
3021
  }
3022
3022
  }
3023
3023
  delete container.canvas.resizeFactor;
3024
3024
  }
3025
- draw(delta) {
3025
+ async draw(delta) {
3026
3026
  const container = this.container;
3027
3027
  container.canvas.clear();
3028
3028
  const canvasSize = this.container.canvas.size;
3029
3029
  this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
3030
- this.update(delta);
3030
+ await this.update(delta);
3031
3031
  if (this.needsSort) {
3032
3032
  this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
3033
3033
  this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;
@@ -3388,12 +3388,12 @@
3388
3388
  }
3389
3389
  draw(force) {
3390
3390
  let refreshTime = force;
3391
- this.drawAnimationFrame = animate()((timestamp => {
3391
+ this.drawAnimationFrame = animate()((async timestamp => {
3392
3392
  if (refreshTime) {
3393
3393
  this.lastFrameTime = undefined;
3394
3394
  refreshTime = false;
3395
3395
  }
3396
- this.drawer.nextFrame(timestamp);
3396
+ await this.drawer.nextFrame(timestamp);
3397
3397
  }));
3398
3398
  }
3399
3399
  getAnimationStatus() {
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.0 by Matteo Bruni */
1
+ /*! tsParticles v1.41.4 by Matteo Bruni */
2
2
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{loadTextShape:function(){return l}});class o{}o.generatedAttribute="generated",o.randomColorValue="random",o.midColorValue="mid",o.touchEndEvent="touchend",o.mouseDownEvent="mousedown",o.mouseUpEvent="mouseup",o.mouseMoveEvent="mousemove",o.touchStartEvent="touchstart",o.touchMoveEvent="touchmove",o.mouseLeaveEvent="mouseleave",o.mouseOutEvent="mouseout",o.touchCancelEvent="touchcancel",o.resizeEvent="resize",o.visibilityChangeEvent="visibilitychange",o.noPolygonDataLoaded="No polygon data loaded.",o.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function n(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}async function a(e){var t,o;try{await document.fonts.load(`${null!==(t=e.weight)&&void 0!==t?t:"400"} 36px '${null!==(o=e.font)&&void 0!==o?o:"Verdana"}'`)}catch(e){}}function r(e,t,o=!0){return e[void 0!==t&&o?t%e.length:function(e){return Math.floor(Math.random()*e.length)}(e)]}new WeakMap;const i=["text","character","char"];class u{getSidesCount(){return 12}async init(e){const t=e.actualOptions;if(i.find((e=>n(e,t.particles.shape.type)))){const e=i.map((e=>t.particles.shape.options[e])).find((e=>!!e));if(e instanceof Array){const t=[];for(const o of e)t.push(a(o));await Promise.allSettled(t)}else void 0!==e&&await a(e)}}draw(e,t,o,n){var a,i,u;const l=t.shapeData;if(void 0===l)return;const c=l.value;if(void 0===c)return;const s=t;void 0===s.text&&(s.text=c instanceof Array?r(c,t.randomIndexData):c);const d=s.text,f=null!==(a=l.style)&&void 0!==a?a:"",p=null!==(i=l.weight)&&void 0!==i?i:"400",v=2*Math.round(o),y=null!==(u=l.font)&&void 0!==u?u:"Verdana",h=t.fill,m=d.length*o/2;e.font=`${f} ${p} ${v}px "${y}"`;const g={x:-m,y:o/2};e.globalAlpha=n,h?e.fillText(d,g.x,g.y):e.strokeText(d,g.x,g.y),e.globalAlpha=1}}async function l(e){const t=new u;for(const o of i)await e.addShape(o,t)}return t}()}));
@@ -1891,7 +1891,7 @@
1891
1891
  constructor(container) {
1892
1892
  this.container = container;
1893
1893
  }
1894
- nextFrame(timestamp) {
1894
+ async nextFrame(timestamp) {
1895
1895
  var _a;
1896
1896
  try {
1897
1897
  const container = this.container;
@@ -1911,7 +1911,7 @@
1911
1911
  container.draw(false);
1912
1912
  return;
1913
1913
  }
1914
- container.particles.draw(delta);
1914
+ await container.particles.draw(delta);
1915
1915
  if (container.duration > 0 && container.lifeTime > container.duration) {
1916
1916
  container.destroy();
1917
1917
  return;
@@ -1962,20 +1962,20 @@
1962
1962
  }
1963
1963
  }
1964
1964
  }
1965
- externalInteract(delta) {
1965
+ async externalInteract(delta) {
1966
1966
  for (const interactor of this.externalInteractors) {
1967
1967
  if (interactor.isEnabled()) {
1968
- interactor.interact(delta);
1968
+ await interactor.interact(delta);
1969
1969
  }
1970
1970
  }
1971
1971
  }
1972
- particlesInteract(particle, delta) {
1972
+ async particlesInteract(particle, delta) {
1973
1973
  for (const interactor of this.externalInteractors) {
1974
1974
  interactor.reset(particle);
1975
1975
  }
1976
1976
  for (const interactor of this.particleInteractors) {
1977
1977
  if (interactor.isEnabled(particle)) {
1978
- interactor.interact(particle, delta);
1978
+ await interactor.interact(particle, delta);
1979
1979
  }
1980
1980
  }
1981
1981
  }
@@ -5593,10 +5593,10 @@
5593
5593
  return this.getRadius() ** 2 * Math.PI / 2;
5594
5594
  }
5595
5595
  getFillColor() {
5596
- var _a, _b, _c;
5596
+ var _a, _b;
5597
5597
  const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color);
5598
5598
  if (color && this.roll && (this.backColor || this.roll.alter)) {
5599
- const rolled = Math.floor(((_c = (_b = this.roll) === null || _b === void 0 ? void 0 : _b.angle) !== null && _c !== void 0 ? _c : 0) / (Math.PI / 2)) % 2;
5599
+ const backFactor = this.options.roll.mode === "both" ? 2 : 1, backSum = this.options.roll.mode === "horizontal" ? Math.PI / 2 : 0, rolled = Math.floor((((_b = this.roll.angle) !== null && _b !== void 0 ? _b : 0) + backSum) / (Math.PI / backFactor)) % 2;
5600
5600
  if (rolled) {
5601
5601
  if (this.backColor) {
5602
5602
  return this.backColor;
@@ -5828,10 +5828,10 @@
5828
5828
  }
5829
5829
  container.pathGenerator.init(container);
5830
5830
  }
5831
- redraw() {
5831
+ async redraw() {
5832
5832
  this.clear();
5833
5833
  this.init();
5834
- this.draw({
5834
+ await this.draw({
5835
5835
  value: 0,
5836
5836
  factor: 0
5837
5837
  });
@@ -5856,7 +5856,7 @@
5856
5856
  remove(particle, group, override) {
5857
5857
  this.removeAt(this.array.indexOf(particle), undefined, group, override);
5858
5858
  }
5859
- update(delta) {
5859
+ async update(delta) {
5860
5860
  const container = this.container;
5861
5861
  const particlesToDelete = [];
5862
5862
  container.pathGenerator.update();
@@ -5890,23 +5890,23 @@
5890
5890
  for (const particle of particlesToDelete) {
5891
5891
  this.remove(particle);
5892
5892
  }
5893
- this.interactionManager.externalInteract(delta);
5893
+ await this.interactionManager.externalInteract(delta);
5894
5894
  for (const particle of container.particles.array) {
5895
5895
  for (const updater of this.updaters) {
5896
5896
  updater.update(particle, delta);
5897
5897
  }
5898
5898
  if (!particle.destroyed && !particle.spawning) {
5899
- this.interactionManager.particlesInteract(particle, delta);
5899
+ await this.interactionManager.particlesInteract(particle, delta);
5900
5900
  }
5901
5901
  }
5902
5902
  delete container.canvas.resizeFactor;
5903
5903
  }
5904
- draw(delta) {
5904
+ async draw(delta) {
5905
5905
  const container = this.container;
5906
5906
  container.canvas.clear();
5907
5907
  const canvasSize = this.container.canvas.size;
5908
5908
  this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
5909
- this.update(delta);
5909
+ await this.update(delta);
5910
5910
  if (this.needsSort) {
5911
5911
  this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
5912
5912
  this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;
@@ -6267,12 +6267,12 @@
6267
6267
  }
6268
6268
  draw(force) {
6269
6269
  let refreshTime = force;
6270
- this.drawAnimationFrame = animate()((timestamp => {
6270
+ this.drawAnimationFrame = animate()((async timestamp => {
6271
6271
  if (refreshTime) {
6272
6272
  this.lastFrameTime = undefined;
6273
6273
  refreshTime = false;
6274
6274
  }
6275
- this.drawer.nextFrame(timestamp);
6275
+ await this.drawer.nextFrame(timestamp);
6276
6276
  }));
6277
6277
  }
6278
6278
  getAnimationStatus() {
@@ -6995,7 +6995,7 @@
6995
6995
  return isInArray("attract", hoverMode) || isInArray("attract", clickMode);
6996
6996
  }
6997
6997
  reset() {}
6998
- interact() {
6998
+ async interact() {
6999
6999
  const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;
7000
7000
  if (mouseMoveStatus && hoverEnabled && isInArray("attract", hoverMode)) {
7001
7001
  this.hoverAttract();
@@ -7059,7 +7059,7 @@
7059
7059
  const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv;
7060
7060
  return mouse.position && events.onHover.enable && isInArray("bounce", events.onHover.mode) || isDivModeEnabled("bounce", divs);
7061
7061
  }
7062
- interact() {
7062
+ async interact() {
7063
7063
  const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === Constants.mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;
7064
7064
  if (mouseMoveStatus && hoverEnabled && isInArray("bounce", hoverMode)) {
7065
7065
  this.processMouseBounce();
@@ -7140,7 +7140,7 @@
7140
7140
  delete particle.bubble.radius;
7141
7141
  delete particle.bubble.color;
7142
7142
  }
7143
- interact() {
7143
+ async interact() {
7144
7144
  const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;
7145
7145
  if (hoverEnabled && isInArray("bubble", hoverMode)) {
7146
7146
  this.hoverBubble();
@@ -7356,7 +7356,7 @@
7356
7356
  return isInArray("connect", events.onHover.mode);
7357
7357
  }
7358
7358
  reset() {}
7359
- interact() {
7359
+ async interact() {
7360
7360
  const container = this.container, options = container.actualOptions;
7361
7361
  if (options.interactivity.events.onHover.enable && container.interactivity.status === "mousemove") {
7362
7362
  const mousePos = container.interactivity.mouse.position;
@@ -7390,7 +7390,7 @@
7390
7390
  return events.onHover.enable && !!mouse.position && isInArray("grab", events.onHover.mode);
7391
7391
  }
7392
7392
  reset() {}
7393
- interact() {
7393
+ async interact() {
7394
7394
  var _a;
7395
7395
  const container = this.container, options = container.actualOptions, interactivity = options.interactivity;
7396
7396
  if (interactivity.events.onHover.enable && container.interactivity.status === Constants.mouseMoveEvent) {
@@ -7437,7 +7437,7 @@
7437
7437
  return isInArray("repulse", hoverMode) || isInArray("repulse", clickMode) || divRepulse;
7438
7438
  }
7439
7439
  reset() {}
7440
- interact() {
7440
+ async interact() {
7441
7441
  const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode, divs = events.onDiv;
7442
7442
  if (mouseMoveStatus && hoverEnabled && isInArray("repulse", hoverMode)) {
7443
7443
  this.hoverRepulse();
@@ -7828,7 +7828,7 @@
7828
7828
  }
7829
7829
  const minValue = particle.opacity.min;
7830
7830
  const maxValue = particle.opacity.max;
7831
- if (!(!particle.destroyed && particle.opacity.enable && (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 0)))) {
7831
+ if (particle.destroyed || !particle.opacity.enable || ((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) > 0 && ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) > ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 0)) {
7832
7832
  return;
7833
7833
  }
7834
7834
  switch (particle.opacity.status) {
@@ -7905,8 +7905,8 @@
7905
7905
  }
7906
7906
  }
7907
7907
  isEnabled(particle) {
7908
- var _a, _b, _c;
7909
- return !particle.destroyed && !particle.spawning && !!particle.opacity && particle.opacity.enable && (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 0));
7908
+ var _a, _b, _c, _d;
7909
+ return !particle.destroyed && !particle.spawning && !!particle.opacity && particle.opacity.enable && (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.opacity.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.opacity.maxLoops) !== null && _d !== void 0 ? _d : 0));
7910
7910
  }
7911
7911
  update(particle, delta) {
7912
7912
  if (!this.isEnabled(particle)) {
@@ -8118,7 +8118,7 @@
8118
8118
  constructor(container) {
8119
8119
  super(container);
8120
8120
  }
8121
- interact(p1) {
8121
+ async interact(p1) {
8122
8122
  var _a;
8123
8123
  const container = this.container, distance = (_a = p1.retina.attractDistance) !== null && _a !== void 0 ? _a : container.retina.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);
8124
8124
  for (const p2 of query) {
@@ -8167,7 +8167,7 @@
8167
8167
  return particle.options.collisions.enable;
8168
8168
  }
8169
8169
  reset() {}
8170
- interact(p1) {
8170
+ async interact(p1) {
8171
8171
  const container = this.container;
8172
8172
  const pos1 = p1.getPosition();
8173
8173
  const radius1 = p1.getRadius();
@@ -8276,7 +8276,7 @@
8276
8276
  return particle.options.links.enable;
8277
8277
  }
8278
8278
  reset() {}
8279
- interact(p1) {
8279
+ async interact(p1) {
8280
8280
  var _a;
8281
8281
  p1.links = [];
8282
8282
  const pos1 = p1.getPosition();
@@ -8560,7 +8560,7 @@
8560
8560
  const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;
8561
8561
  const minValue = particle.size.min;
8562
8562
  const maxValue = particle.size.max;
8563
- if (!(!particle.destroyed && particle.size.enable && (((_b = particle.size.loops) !== null && _b !== void 0 ? _b : 0) <= 0 || ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0)))) {
8563
+ if (particle.destroyed || !particle.size.enable || ((_b = particle.size.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) > ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0)) {
8564
8564
  return;
8565
8565
  }
8566
8566
  switch (particle.size.status) {
@@ -8595,8 +8595,8 @@
8595
8595
  class SizeUpdater {
8596
8596
  init() {}
8597
8597
  isEnabled(particle) {
8598
- var _a, _b, _c;
8599
- return !particle.destroyed && !particle.spawning && particle.size.enable && (((_a = particle.size.loops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.size.loops) !== null && _b !== void 0 ? _b : 0) < ((_c = particle.size.maxLoops) !== null && _c !== void 0 ? _c : 0));
8598
+ var _a, _b, _c, _d;
8599
+ return !particle.destroyed && !particle.spawning && particle.size.enable && (((_a = particle.size.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.size.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0));
8600
8600
  }
8601
8601
  update(particle, delta) {
8602
8602
  if (!this.isEnabled(particle)) {