tsparticles 1.41.5 → 1.42.1

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 (302) hide show
  1. package/Core/Canvas.js +4 -5
  2. package/Core/Interfaces/ICoordinates.d.ts +8 -0
  3. package/Core/Interfaces/IParticleGravity.d.ts +5 -0
  4. package/Core/Interfaces/IParticleGravity.js +2 -0
  5. package/Core/Interfaces/index.d.ts +1 -0
  6. package/Core/Interfaces/index.js +1 -0
  7. package/Core/Particle.d.ts +3 -1
  8. package/Core/Particle.js +9 -7
  9. package/Core/Particles.js +2 -1
  10. package/Core/Retina.js +7 -7
  11. package/Core/Utils/ParticlesMover.js +2 -2
  12. package/Interactions/Particles/Links/LinkInstance.js +1 -1
  13. package/Options/Classes/AnimatableGradient.d.ts +4 -4
  14. package/Options/Classes/AnimatableGradient.js +4 -4
  15. package/Options/Classes/AnimationOptions.d.ts +5 -5
  16. package/Options/Classes/AnimationOptions.js +3 -2
  17. package/Options/Classes/ColorAnimation.d.ts +2 -2
  18. package/Options/Classes/ColorAnimation.js +2 -2
  19. package/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  20. package/Options/Classes/Particles/Move/Attract.js +2 -1
  21. package/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  22. package/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  23. package/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  24. package/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  25. package/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  26. package/Options/Classes/Particles/Orbit/Orbit.js +4 -3
  27. package/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  28. package/Options/Classes/Particles/Repulse/Repulse.js +5 -4
  29. package/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  30. package/Options/Classes/Particles/Roll/RollLight.js +2 -1
  31. package/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  32. package/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
  33. package/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  34. package/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
  35. package/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  36. package/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
  37. package/Options/Interfaces/IAnimation.d.ts +3 -2
  38. package/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  39. package/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  40. package/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  41. package/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  42. package/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  43. package/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  44. package/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  45. package/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  46. package/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  47. package/Plugins/Absorbers/AbsorberInstance.js +1 -1
  48. package/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  49. package/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
  50. package/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  51. package/Plugins/Emitters/EmitterInstance.js +3 -3
  52. package/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  53. package/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
  54. package/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  55. package/Updaters/Angle/AngleUpdater.js +2 -1
  56. package/Updaters/Opacity/OpacityUpdater.js +3 -2
  57. package/Updaters/Roll/RollUpdater.js +3 -3
  58. package/Updaters/Tilt/TiltUpdater.js +1 -1
  59. package/Utils/ColorUtils.js +1 -1
  60. package/browser/Core/Canvas.js +5 -6
  61. package/browser/Core/Interfaces/ICoordinates.d.ts +8 -0
  62. package/browser/Core/Interfaces/IParticleGravity.d.ts +5 -0
  63. package/browser/Core/Interfaces/IParticleGravity.js +1 -0
  64. package/browser/Core/Interfaces/index.d.ts +1 -0
  65. package/browser/Core/Interfaces/index.js +1 -0
  66. package/browser/Core/Particle.d.ts +3 -1
  67. package/browser/Core/Particle.js +9 -7
  68. package/browser/Core/Particles.js +2 -1
  69. package/browser/Core/Retina.js +7 -7
  70. package/browser/Core/Utils/ParticlesMover.js +2 -2
  71. package/browser/Interactions/Particles/Links/LinkInstance.js +2 -2
  72. package/browser/Options/Classes/AnimatableGradient.d.ts +4 -4
  73. package/browser/Options/Classes/AnimatableGradient.js +4 -4
  74. package/browser/Options/Classes/AnimationOptions.d.ts +5 -5
  75. package/browser/Options/Classes/AnimationOptions.js +3 -2
  76. package/browser/Options/Classes/ColorAnimation.d.ts +2 -2
  77. package/browser/Options/Classes/ColorAnimation.js +2 -2
  78. package/browser/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  79. package/browser/Options/Classes/Particles/Move/Attract.js +2 -1
  80. package/browser/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  81. package/browser/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  82. package/browser/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  83. package/browser/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  84. package/browser/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  85. package/browser/Options/Classes/Particles/Orbit/Orbit.js +4 -3
  86. package/browser/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  87. package/browser/Options/Classes/Particles/Repulse/Repulse.js +5 -4
  88. package/browser/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  89. package/browser/Options/Classes/Particles/Roll/RollLight.js +2 -1
  90. package/browser/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  91. package/browser/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
  92. package/browser/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  93. package/browser/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
  94. package/browser/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  95. package/browser/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
  96. package/browser/Options/Interfaces/IAnimation.d.ts +3 -2
  97. package/browser/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  98. package/browser/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  99. package/browser/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  100. package/browser/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  101. package/browser/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  102. package/browser/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  103. package/browser/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  104. package/browser/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  105. package/browser/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  106. package/browser/Plugins/Absorbers/AbsorberInstance.js +1 -1
  107. package/browser/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  108. package/browser/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
  109. package/browser/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  110. package/browser/Plugins/Emitters/EmitterInstance.js +3 -3
  111. package/browser/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  112. package/browser/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
  113. package/browser/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  114. package/browser/Updaters/Angle/AngleUpdater.js +2 -1
  115. package/browser/Updaters/Opacity/OpacityUpdater.js +3 -2
  116. package/browser/Updaters/Roll/RollUpdater.js +3 -3
  117. package/browser/Updaters/Tilt/TiltUpdater.js +1 -1
  118. package/browser/Utils/ColorUtils.js +2 -2
  119. package/esm/Core/Canvas.js +5 -6
  120. package/esm/Core/Interfaces/ICoordinates.d.ts +8 -0
  121. package/esm/Core/Interfaces/IParticleGravity.d.ts +5 -0
  122. package/esm/Core/Interfaces/IParticleGravity.js +1 -0
  123. package/esm/Core/Interfaces/index.d.ts +1 -0
  124. package/esm/Core/Interfaces/index.js +1 -0
  125. package/esm/Core/Particle.d.ts +3 -1
  126. package/esm/Core/Particle.js +9 -7
  127. package/esm/Core/Particles.js +2 -1
  128. package/esm/Core/Retina.js +7 -7
  129. package/esm/Core/Utils/ParticlesMover.js +2 -2
  130. package/esm/Interactions/Particles/Links/LinkInstance.js +2 -2
  131. package/esm/Options/Classes/AnimatableGradient.d.ts +4 -4
  132. package/esm/Options/Classes/AnimatableGradient.js +4 -4
  133. package/esm/Options/Classes/AnimationOptions.d.ts +5 -5
  134. package/esm/Options/Classes/AnimationOptions.js +3 -2
  135. package/esm/Options/Classes/ColorAnimation.d.ts +2 -2
  136. package/esm/Options/Classes/ColorAnimation.js +2 -2
  137. package/esm/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  138. package/esm/Options/Classes/Particles/Move/Attract.js +2 -1
  139. package/esm/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  140. package/esm/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  141. package/esm/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  142. package/esm/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  143. package/esm/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  144. package/esm/Options/Classes/Particles/Orbit/Orbit.js +4 -3
  145. package/esm/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  146. package/esm/Options/Classes/Particles/Repulse/Repulse.js +5 -4
  147. package/esm/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  148. package/esm/Options/Classes/Particles/Roll/RollLight.js +2 -1
  149. package/esm/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  150. package/esm/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
  151. package/esm/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  152. package/esm/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
  153. package/esm/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  154. package/esm/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
  155. package/esm/Options/Interfaces/IAnimation.d.ts +3 -2
  156. package/esm/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  157. package/esm/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  158. package/esm/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  159. package/esm/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  160. package/esm/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  161. package/esm/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  162. package/esm/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  163. package/esm/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  164. package/esm/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  165. package/esm/Plugins/Absorbers/AbsorberInstance.js +1 -1
  166. package/esm/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  167. package/esm/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
  168. package/esm/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  169. package/esm/Plugins/Emitters/EmitterInstance.js +3 -3
  170. package/esm/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  171. package/esm/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
  172. package/esm/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  173. package/esm/Updaters/Angle/AngleUpdater.js +2 -1
  174. package/esm/Updaters/Opacity/OpacityUpdater.js +3 -2
  175. package/esm/Updaters/Roll/RollUpdater.js +3 -3
  176. package/esm/Updaters/Tilt/TiltUpdater.js +1 -1
  177. package/esm/Utils/ColorUtils.js +2 -2
  178. package/package.json +1 -1
  179. package/report.html +2 -2
  180. package/report.slim.html +2 -2
  181. package/scripts/install.js +11 -2
  182. package/tsparticles.engine.js +47 -47
  183. package/tsparticles.engine.min.js +2 -2
  184. package/tsparticles.interaction.external.attract.js +319 -36
  185. package/tsparticles.interaction.external.attract.min.js +1 -1
  186. package/tsparticles.interaction.external.bounce.js +319 -36
  187. package/tsparticles.interaction.external.bounce.min.js +1 -1
  188. package/tsparticles.interaction.external.bubble.js +319 -36
  189. package/tsparticles.interaction.external.bubble.min.js +1 -1
  190. package/tsparticles.interaction.external.connect.js +319 -36
  191. package/tsparticles.interaction.external.connect.min.js +1 -1
  192. package/tsparticles.interaction.external.grab.js +319 -36
  193. package/tsparticles.interaction.external.grab.min.js +1 -1
  194. package/tsparticles.interaction.external.repulse.js +319 -36
  195. package/tsparticles.interaction.external.repulse.min.js +1 -1
  196. package/tsparticles.interaction.external.trail.js +319 -36
  197. package/tsparticles.interaction.external.trail.min.js +1 -1
  198. package/tsparticles.interaction.particles.attract.js +319 -36
  199. package/tsparticles.interaction.particles.attract.min.js +1 -1
  200. package/tsparticles.interaction.particles.collisions.js +319 -36
  201. package/tsparticles.interaction.particles.collisions.min.js +1 -1
  202. package/tsparticles.interaction.particles.links.js +320 -37
  203. package/tsparticles.interaction.particles.links.min.js +2 -2
  204. package/tsparticles.js +73 -67
  205. package/tsparticles.min.js +2 -2
  206. package/tsparticles.pathseg.min.js +1 -1
  207. package/tsparticles.plugins.absorbers.js +327 -41
  208. package/tsparticles.plugins.absorbers.min.js +2 -2
  209. package/tsparticles.plugins.emitters.js +430 -144
  210. package/tsparticles.plugins.emitters.min.js +2 -2
  211. package/tsparticles.plugins.polygonMask.js +319 -36
  212. package/tsparticles.plugins.polygonMask.min.js +1 -1
  213. package/tsparticles.shape.circle.min.js +1 -1
  214. package/tsparticles.shape.image.js +319 -36
  215. package/tsparticles.shape.image.min.js +1 -1
  216. package/tsparticles.shape.line.min.js +1 -1
  217. package/tsparticles.shape.polygon.min.js +1 -1
  218. package/tsparticles.shape.square.min.js +1 -1
  219. package/tsparticles.shape.star.min.js +1 -1
  220. package/tsparticles.shape.text.js +319 -36
  221. package/tsparticles.shape.text.min.js +1 -1
  222. package/tsparticles.slim.js +51 -51
  223. package/tsparticles.slim.min.js +2 -2
  224. package/tsparticles.updater.angle.js +320 -37
  225. package/tsparticles.updater.angle.min.js +2 -2
  226. package/tsparticles.updater.color.js +319 -36
  227. package/tsparticles.updater.color.min.js +2 -2
  228. package/tsparticles.updater.life.js +319 -36
  229. package/tsparticles.updater.life.min.js +1 -1
  230. package/tsparticles.updater.opacity.js +321 -38
  231. package/tsparticles.updater.opacity.min.js +2 -2
  232. package/tsparticles.updater.outModes.js +319 -36
  233. package/tsparticles.updater.outModes.min.js +1 -1
  234. package/tsparticles.updater.roll.js +322 -39
  235. package/tsparticles.updater.roll.min.js +2 -2
  236. package/tsparticles.updater.size.js +319 -36
  237. package/tsparticles.updater.size.min.js +1 -1
  238. package/tsparticles.updater.strokeColor.js +319 -36
  239. package/tsparticles.updater.strokeColor.min.js +2 -2
  240. package/tsparticles.updater.tilt.js +320 -37
  241. package/tsparticles.updater.tilt.min.js +2 -2
  242. package/tsparticles.updater.wobble.js +319 -36
  243. package/tsparticles.updater.wobble.min.js +1 -1
  244. package/umd/Core/Canvas.js +4 -5
  245. package/umd/Core/Interfaces/ICoordinates.d.ts +8 -0
  246. package/umd/Core/Interfaces/IParticleGravity.d.ts +5 -0
  247. package/umd/Core/Interfaces/IParticleGravity.js +12 -0
  248. package/umd/Core/Interfaces/index.d.ts +1 -0
  249. package/umd/Core/Interfaces/index.js +2 -1
  250. package/umd/Core/Particle.d.ts +3 -1
  251. package/umd/Core/Particle.js +9 -7
  252. package/umd/Core/Particles.js +2 -1
  253. package/umd/Core/Retina.js +7 -7
  254. package/umd/Core/Utils/ParticlesMover.js +2 -2
  255. package/umd/Interactions/Particles/Links/LinkInstance.js +1 -1
  256. package/umd/Options/Classes/AnimatableGradient.d.ts +4 -4
  257. package/umd/Options/Classes/AnimatableGradient.js +4 -4
  258. package/umd/Options/Classes/AnimationOptions.d.ts +5 -5
  259. package/umd/Options/Classes/AnimationOptions.js +4 -3
  260. package/umd/Options/Classes/ColorAnimation.d.ts +2 -2
  261. package/umd/Options/Classes/ColorAnimation.js +2 -2
  262. package/umd/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  263. package/umd/Options/Classes/Particles/Move/Attract.js +3 -2
  264. package/umd/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  265. package/umd/Options/Classes/Particles/Move/MoveAngle.js +4 -3
  266. package/umd/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  267. package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -3
  268. package/umd/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  269. package/umd/Options/Classes/Particles/Orbit/Orbit.js +5 -4
  270. package/umd/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  271. package/umd/Options/Classes/Particles/Repulse/Repulse.js +6 -5
  272. package/umd/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  273. package/umd/Options/Classes/Particles/Roll/RollLight.js +3 -2
  274. package/umd/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  275. package/umd/Options/Classes/Particles/Rotate/RotateAnimation.js +3 -2
  276. package/umd/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  277. package/umd/Options/Classes/Particles/Tilt/TiltAnimation.js +3 -2
  278. package/umd/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  279. package/umd/Options/Classes/Particles/Twinkle/TwinkleValues.js +3 -2
  280. package/umd/Options/Interfaces/IAnimation.d.ts +3 -2
  281. package/umd/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  282. package/umd/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  283. package/umd/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  284. package/umd/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  285. package/umd/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  286. package/umd/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  287. package/umd/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  288. package/umd/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  289. package/umd/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  290. package/umd/Plugins/Absorbers/AbsorberInstance.js +1 -1
  291. package/umd/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  292. package/umd/Plugins/Absorbers/Options/Classes/Absorber.js +9 -5
  293. package/umd/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  294. package/umd/Plugins/Emitters/EmitterInstance.js +3 -3
  295. package/umd/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  296. package/umd/Plugins/Emitters/Options/Classes/Emitter.js +9 -6
  297. package/umd/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  298. package/umd/Updaters/Angle/AngleUpdater.js +2 -1
  299. package/umd/Updaters/Opacity/OpacityUpdater.js +3 -2
  300. package/umd/Updaters/Roll/RollUpdater.js +3 -3
  301. package/umd/Updaters/Tilt/TiltUpdater.js +1 -1
  302. package/umd/Utils/ColorUtils.js +1 -1
@@ -799,7 +799,7 @@
799
799
  function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
800
800
  colorValue.enable = colorAnimation.enable;
801
801
  if (colorValue.enable) {
802
- colorValue.velocity = colorAnimation.speed / 100 * reduceFactor;
802
+ colorValue.velocity = getRangeValue(colorAnimation.speed) / 100 * reduceFactor;
803
803
  if (colorAnimation.sync) {
804
804
  return;
805
805
  }
@@ -1666,7 +1666,7 @@
1666
1666
  }
1667
1667
  const container = this.container, slowFactor = this.getProximitySpeedFactor(particle), baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : _d.moveSpeed = getRangeValue(moveOptions.speed) * container.retina.pixelRatio) * container.retina.reduceFactor, moveDrift = (_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : _e.moveDrift = getRangeValue(particle.options.move.drift) * container.retina.pixelRatio, maxSize = getRangeMax(particleOptions.size.value) * container.retina.pixelRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, diffFactor = 2, speedFactor = sizeFactor * slowFactor * (delta.factor || 1) / diffFactor, moveSpeed = baseSpeed * speedFactor;
1668
1668
  this.applyPath(particle, delta);
1669
- const gravityOptions = moveOptions.gravity;
1669
+ const gravityOptions = particle.gravity;
1670
1670
  const gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;
1671
1671
  if (gravityOptions.enable && moveSpeed) {
1672
1672
  particle.velocity.y += gravityFactor * (gravityOptions.acceleration * delta.factor) / (60 * moveSpeed);
@@ -1680,7 +1680,7 @@
1680
1680
  }
1681
1681
  const velocity = particle.velocity.mult(moveSpeed);
1682
1682
  const maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;
1683
- if (gravityOptions.enable && gravityOptions.maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {
1683
+ if (gravityOptions.enable && maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {
1684
1684
  velocity.y = gravityFactor * maxSpeed;
1685
1685
  if (moveSpeed) {
1686
1686
  particle.velocity.y = velocity.y / moveSpeed;
@@ -2039,10 +2039,7 @@
2039
2039
  const container = this.container;
2040
2040
  const pxRatio = container.retina.pixelRatio;
2041
2041
  const size = container.canvas.size;
2042
- const oldSize = {
2043
- width: size.width,
2044
- height: size.height
2045
- };
2042
+ const oldSize = Object.assign({}, size);
2046
2043
  size.width = this.element.offsetWidth * pxRatio;
2047
2044
  size.height = this.element.offsetHeight * pxRatio;
2048
2045
  this.element.width = size.width;
@@ -2101,7 +2098,7 @@
2101
2098
  const zIndexOptions = particle.options.zIndex;
2102
2099
  const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;
2103
2100
  const radius = particle.getRadius();
2104
- const opacity = twinkling ? twinkle.opacity : (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;
2101
+ const opacity = twinkling ? getRangeValue(twinkle.opacity) : (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;
2105
2102
  const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;
2106
2103
  const zOpacity = opacity * zOpacityFactor;
2107
2104
  const fillColorValue = fColor ? getStyleFromHsl(fColor, zOpacity) : undefined;
@@ -2372,7 +2369,7 @@
2372
2369
  return;
2373
2370
  }
2374
2371
  if (data.count !== undefined) {
2375
- this.count = data.count;
2372
+ this.count = setRangeValue(data.count);
2376
2373
  }
2377
2374
  if (data.enable !== undefined) {
2378
2375
  this.enable = data.enable;
@@ -2381,7 +2378,7 @@
2381
2378
  this.offset = setRangeValue(data.offset);
2382
2379
  }
2383
2380
  if (data.speed !== undefined) {
2384
- this.speed = data.speed;
2381
+ this.speed = setRangeValue(data.speed);
2385
2382
  }
2386
2383
  if (data.sync !== undefined) {
2387
2384
  this.sync = data.sync;
@@ -2529,13 +2526,13 @@
2529
2526
  return;
2530
2527
  }
2531
2528
  if (data.count !== undefined) {
2532
- this.count = data.count;
2529
+ this.count = setRangeValue(data.count);
2533
2530
  }
2534
2531
  if (data.enable !== undefined) {
2535
2532
  this.enable = data.enable;
2536
2533
  }
2537
2534
  if (data.speed !== undefined) {
2538
- this.speed = data.speed;
2535
+ this.speed = setRangeValue(data.speed);
2539
2536
  }
2540
2537
  if (data.sync !== undefined) {
2541
2538
  this.sync = data.sync;
@@ -2555,13 +2552,13 @@
2555
2552
  return;
2556
2553
  }
2557
2554
  if (data.count !== undefined) {
2558
- this.count = data.count;
2555
+ this.count = setRangeValue(data.count);
2559
2556
  }
2560
2557
  if (data.enable !== undefined) {
2561
2558
  this.enable = data.enable;
2562
2559
  }
2563
2560
  if (data.speed !== undefined) {
2564
- this.speed = data.speed;
2561
+ this.speed = setRangeValue(data.speed);
2565
2562
  }
2566
2563
  if (data.sync !== undefined) {
2567
2564
  this.sync = data.sync;
@@ -2733,6 +2730,90 @@
2733
2730
  this.duration.load(data.duration);
2734
2731
  }
2735
2732
  }
2733
+ class Attract_Attract {
2734
+ constructor() {
2735
+ this.distance = 200;
2736
+ this.enable = false;
2737
+ this.rotate = {
2738
+ x: 3e3,
2739
+ y: 3e3
2740
+ };
2741
+ }
2742
+ get rotateX() {
2743
+ return this.rotate.x;
2744
+ }
2745
+ set rotateX(value) {
2746
+ this.rotate.x = value;
2747
+ }
2748
+ get rotateY() {
2749
+ return this.rotate.y;
2750
+ }
2751
+ set rotateY(value) {
2752
+ this.rotate.y = value;
2753
+ }
2754
+ load(data) {
2755
+ var _a, _b, _c, _d;
2756
+ if (!data) {
2757
+ return;
2758
+ }
2759
+ if (data.distance !== undefined) {
2760
+ this.distance = setRangeValue(data.distance);
2761
+ }
2762
+ if (data.enable !== undefined) {
2763
+ this.enable = data.enable;
2764
+ }
2765
+ const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;
2766
+ if (rotateX !== undefined) {
2767
+ this.rotate.x = rotateX;
2768
+ }
2769
+ const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;
2770
+ if (rotateY !== undefined) {
2771
+ this.rotate.y = rotateY;
2772
+ }
2773
+ }
2774
+ }
2775
+ class MoveAngle_MoveAngle {
2776
+ constructor() {
2777
+ this.offset = 0;
2778
+ this.value = 90;
2779
+ }
2780
+ load(data) {
2781
+ if (data === undefined) {
2782
+ return;
2783
+ }
2784
+ if (data.offset !== undefined) {
2785
+ this.offset = setRangeValue(data.offset);
2786
+ }
2787
+ if (data.value !== undefined) {
2788
+ this.value = setRangeValue(data.value);
2789
+ }
2790
+ }
2791
+ }
2792
+ class MoveGravity_MoveGravity {
2793
+ constructor() {
2794
+ this.acceleration = 9.81;
2795
+ this.enable = false;
2796
+ this.inverse = false;
2797
+ this.maxSpeed = 50;
2798
+ }
2799
+ load(data) {
2800
+ if (!data) {
2801
+ return;
2802
+ }
2803
+ if (data.acceleration !== undefined) {
2804
+ this.acceleration = setRangeValue(data.acceleration);
2805
+ }
2806
+ if (data.enable !== undefined) {
2807
+ this.enable = data.enable;
2808
+ }
2809
+ if (data.inverse !== undefined) {
2810
+ this.inverse = data.inverse;
2811
+ }
2812
+ if (data.maxSpeed !== undefined) {
2813
+ this.maxSpeed = setRangeValue(data.maxSpeed);
2814
+ }
2815
+ }
2816
+ }
2736
2817
  class PathDelay_PathDelay extends(null && ValueWithRandom){
2737
2818
  constructor() {
2738
2819
  super();
@@ -2894,6 +2975,70 @@
2894
2975
  }
2895
2976
  }
2896
2977
  }
2978
+ class AnimationOptions_AnimationOptions {
2979
+ constructor() {
2980
+ this.count = 0;
2981
+ this.enable = false;
2982
+ this.speed = 1;
2983
+ this.sync = false;
2984
+ }
2985
+ load(data) {
2986
+ if (!data) {
2987
+ return;
2988
+ }
2989
+ if (data.count !== undefined) {
2990
+ this.count = setRangeValue(data.count);
2991
+ }
2992
+ if (data.enable !== undefined) {
2993
+ this.enable = data.enable;
2994
+ }
2995
+ if (data.speed !== undefined) {
2996
+ this.speed = setRangeValue(data.speed);
2997
+ }
2998
+ if (data.sync !== undefined) {
2999
+ this.sync = data.sync;
3000
+ }
3001
+ }
3002
+ }
3003
+ class OpacityAnimation_OpacityAnimation extends(null && AnimationOptions){
3004
+ constructor() {
3005
+ super();
3006
+ this.destroy = "none";
3007
+ this.enable = false;
3008
+ this.speed = 2;
3009
+ this.startValue = "random";
3010
+ this.sync = false;
3011
+ }
3012
+ get opacity_min() {
3013
+ return this.minimumValue;
3014
+ }
3015
+ set opacity_min(value) {
3016
+ this.minimumValue = value;
3017
+ }
3018
+ load(data) {
3019
+ var _a;
3020
+ if (data === undefined) {
3021
+ return;
3022
+ }
3023
+ super.load(data);
3024
+ if (data.destroy !== undefined) {
3025
+ this.destroy = data.destroy;
3026
+ }
3027
+ if (data.enable !== undefined) {
3028
+ this.enable = data.enable;
3029
+ }
3030
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;
3031
+ if (data.speed !== undefined) {
3032
+ this.speed = data.speed;
3033
+ }
3034
+ if (data.startValue !== undefined) {
3035
+ this.startValue = data.startValue;
3036
+ }
3037
+ if (data.sync !== undefined) {
3038
+ this.sync = data.sync;
3039
+ }
3040
+ }
3041
+ }
2897
3042
  class Opacity_Opacity extends(null && ValueWithRandom){
2898
3043
  constructor() {
2899
3044
  super();
@@ -2952,13 +3097,13 @@
2952
3097
  this.enable = data.enable;
2953
3098
  }
2954
3099
  if (data.opacity !== undefined) {
2955
- this.opacity = data.opacity;
3100
+ this.opacity = setRangeValue(data.opacity);
2956
3101
  }
2957
3102
  if (data.width !== undefined) {
2958
- this.width = data.width;
3103
+ this.width = setRangeValue(data.width);
2959
3104
  }
2960
3105
  if (data.radius !== undefined) {
2961
- this.radius = data.radius;
3106
+ this.radius = setRangeValue(data.radius);
2962
3107
  }
2963
3108
  if (data.color !== undefined) {
2964
3109
  this.color = OptionsColor.create(this.color, data.color);
@@ -2983,16 +3128,33 @@
2983
3128
  this.enabled = data.enabled;
2984
3129
  }
2985
3130
  if (data.distance !== undefined) {
2986
- this.distance = data.distance;
3131
+ this.distance = setRangeValue(data.distance);
2987
3132
  }
2988
3133
  if (data.duration !== undefined) {
2989
- this.duration = data.duration;
3134
+ this.duration = setRangeValue(data.duration);
2990
3135
  }
2991
3136
  if (data.factor !== undefined) {
2992
- this.factor = data.factor;
3137
+ this.factor = setRangeValue(data.factor);
2993
3138
  }
2994
3139
  if (data.speed !== undefined) {
2995
- this.speed = data.speed;
3140
+ this.speed = setRangeValue(data.speed);
3141
+ }
3142
+ }
3143
+ }
3144
+ class RollLight_RollLight {
3145
+ constructor() {
3146
+ this.enable = false;
3147
+ this.value = 0;
3148
+ }
3149
+ load(data) {
3150
+ if (!data) {
3151
+ return;
3152
+ }
3153
+ if (data.enable !== undefined) {
3154
+ this.enable = data.enable;
3155
+ }
3156
+ if (data.value !== undefined) {
3157
+ this.value = setRangeValue(data.value);
2996
3158
  }
2997
3159
  }
2998
3160
  }
@@ -3024,6 +3186,27 @@
3024
3186
  }
3025
3187
  }
3026
3188
  }
3189
+ class RotateAnimation_RotateAnimation {
3190
+ constructor() {
3191
+ this.enable = false;
3192
+ this.speed = 0;
3193
+ this.sync = false;
3194
+ }
3195
+ load(data) {
3196
+ if (data === undefined) {
3197
+ return;
3198
+ }
3199
+ if (data.enable !== undefined) {
3200
+ this.enable = data.enable;
3201
+ }
3202
+ if (data.speed !== undefined) {
3203
+ this.speed = setRangeValue(data.speed);
3204
+ }
3205
+ if (data.sync !== undefined) {
3206
+ this.sync = data.sync;
3207
+ }
3208
+ }
3209
+ }
3027
3210
  class Rotate_Rotate extends(null && ValueWithRandom){
3028
3211
  constructor() {
3029
3212
  super();
@@ -3142,6 +3325,45 @@
3142
3325
  }
3143
3326
  }
3144
3327
  }
3328
+ class SizeAnimation_SizeAnimation extends(null && AnimationOptions){
3329
+ constructor() {
3330
+ super();
3331
+ this.destroy = "none";
3332
+ this.enable = false;
3333
+ this.speed = 5;
3334
+ this.startValue = "random";
3335
+ this.sync = false;
3336
+ }
3337
+ get size_min() {
3338
+ return this.minimumValue;
3339
+ }
3340
+ set size_min(value) {
3341
+ this.minimumValue = value;
3342
+ }
3343
+ load(data) {
3344
+ var _a;
3345
+ if (data === undefined) {
3346
+ return;
3347
+ }
3348
+ super.load(data);
3349
+ if (data.destroy !== undefined) {
3350
+ this.destroy = data.destroy;
3351
+ }
3352
+ if (data.enable !== undefined) {
3353
+ this.enable = data.enable;
3354
+ }
3355
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;
3356
+ if (data.speed !== undefined) {
3357
+ this.speed = data.speed;
3358
+ }
3359
+ if (data.startValue !== undefined) {
3360
+ this.startValue = data.startValue;
3361
+ }
3362
+ if (data.sync !== undefined) {
3363
+ this.sync = data.sync;
3364
+ }
3365
+ }
3366
+ }
3145
3367
  class Size_Size extends(null && ValueWithRandom){
3146
3368
  constructor() {
3147
3369
  super();
@@ -3187,6 +3409,27 @@
3187
3409
  }
3188
3410
  }
3189
3411
  }
3412
+ class TiltAnimation_TiltAnimation {
3413
+ constructor() {
3414
+ this.enable = false;
3415
+ this.speed = 0;
3416
+ this.sync = false;
3417
+ }
3418
+ load(data) {
3419
+ if (data === undefined) {
3420
+ return;
3421
+ }
3422
+ if (data.enable !== undefined) {
3423
+ this.enable = data.enable;
3424
+ }
3425
+ if (data.speed !== undefined) {
3426
+ this.speed = setRangeValue(data.speed);
3427
+ }
3428
+ if (data.sync !== undefined) {
3429
+ this.sync = data.sync;
3430
+ }
3431
+ }
3432
+ }
3190
3433
  class Tilt_Tilt extends(null && ValueWithRandom){
3191
3434
  constructor() {
3192
3435
  super();
@@ -3209,6 +3452,43 @@
3209
3452
  }
3210
3453
  }
3211
3454
  }
3455
+ class TwinkleValues_TwinkleValues {
3456
+ constructor() {
3457
+ this.enable = false;
3458
+ this.frequency = .05;
3459
+ this.opacity = 1;
3460
+ }
3461
+ load(data) {
3462
+ if (data === undefined) {
3463
+ return;
3464
+ }
3465
+ if (data.color !== undefined) {
3466
+ this.color = OptionsColor.create(this.color, data.color);
3467
+ }
3468
+ if (data.enable !== undefined) {
3469
+ this.enable = data.enable;
3470
+ }
3471
+ if (data.frequency !== undefined) {
3472
+ this.frequency = data.frequency;
3473
+ }
3474
+ if (data.opacity !== undefined) {
3475
+ this.opacity = setRangeValue(data.opacity);
3476
+ }
3477
+ }
3478
+ }
3479
+ class Twinkle_Twinkle {
3480
+ constructor() {
3481
+ this.lines = new TwinkleValues;
3482
+ this.particles = new TwinkleValues;
3483
+ }
3484
+ load(data) {
3485
+ if (data === undefined) {
3486
+ return;
3487
+ }
3488
+ this.lines.load(data.lines);
3489
+ this.particles.load(data.particles);
3490
+ }
3491
+ }
3212
3492
  class Wobble_Wobble {
3213
3493
  constructor() {
3214
3494
  this.distance = 5;
@@ -3606,6 +3886,7 @@
3606
3886
  this.retina = {
3607
3887
  maxDistance: {}
3608
3888
  };
3889
+ this.ignoresResizeRatio = true;
3609
3890
  const pxRatio = container.retina.pixelRatio;
3610
3891
  const mainOptions = container.actualOptions;
3611
3892
  const particlesOptions = new ParticlesOptions;
@@ -3645,7 +3926,7 @@
3645
3926
  max: getRangeMax(sizeRange) * pxRatio,
3646
3927
  min: getRangeMin(sizeRange) * pxRatio,
3647
3928
  loops: 0,
3648
- maxLoops: sizeOptions.animation.count
3929
+ maxLoops: getRangeValue(sizeOptions.animation.count)
3649
3930
  };
3650
3931
  const sizeAnimation = sizeOptions.animation;
3651
3932
  if (sizeAnimation.enable) {
@@ -3679,6 +3960,12 @@
3679
3960
  this.initialVelocity = this.calculateVelocity();
3680
3961
  this.velocity = this.initialVelocity.copy();
3681
3962
  this.moveDecay = 1 - getRangeValue(this.options.move.decay);
3963
+ const gravityOptions = this.options.move.gravity;
3964
+ this.gravity = {
3965
+ enable: gravityOptions.enable,
3966
+ acceleration: getRangeValue(gravityOptions.acceleration),
3967
+ inverse: gravityOptions.inverse
3968
+ };
3682
3969
  this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));
3683
3970
  this.initialPosition = this.position.copy();
3684
3971
  this.offset = Vector.origin;
@@ -3886,12 +4173,7 @@
3886
4173
  return overlaps;
3887
4174
  }
3888
4175
  calculateVelocity() {
3889
- const baseVelocity = getParticleBaseVelocity(this.direction);
3890
- const res = baseVelocity.copy();
3891
- const moveOptions = this.options.move;
3892
- const rad = Math.PI / 180 * moveOptions.angle.value;
3893
- const radOffset = Math.PI / 180 * moveOptions.angle.offset;
3894
- const range = {
4176
+ const baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move, rad = Math.PI / 180 * getRangeValue(moveOptions.angle.value), radOffset = Math.PI / 180 * getRangeValue(moveOptions.angle.offset), range = {
3895
4177
  left: radOffset - rad / 2,
3896
4178
  right: radOffset + rad / 2
3897
4179
  };
@@ -4041,10 +4323,11 @@
4041
4323
  }
4042
4324
  for (const particle of this.array) {
4043
4325
  const resizeFactor = container.canvas.resizeFactor;
4044
- if (resizeFactor) {
4326
+ if (resizeFactor && !particle.ignoresResizeRatio) {
4045
4327
  particle.position.x *= resizeFactor.width;
4046
4328
  particle.position.y *= resizeFactor.height;
4047
4329
  }
4330
+ particle.ignoresResizeRatio = false;
4048
4331
  particle.bubble.inRange = false;
4049
4332
  for (const [, plugin] of this.container.plugins) {
4050
4333
  if (particle.destroyed) {
@@ -4280,13 +4563,13 @@
4280
4563
  container.canvas.size.height = element.offsetHeight * ratio;
4281
4564
  }
4282
4565
  const particles = options.particles;
4283
- this.attractDistance = particles.move.attract.distance * ratio;
4566
+ this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;
4284
4567
  this.linksDistance = particles.links.distance * ratio;
4285
4568
  this.linksWidth = particles.links.width * ratio;
4286
- this.sizeAnimationSpeed = particles.size.animation.speed * ratio;
4287
- this.maxSpeed = particles.move.gravity.maxSpeed * ratio;
4569
+ this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;
4570
+ this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;
4288
4571
  if (particles.orbit.radius !== undefined) {
4289
- this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;
4572
+ this.orbitRadius = getRangeValue(particles.orbit.radius) * this.container.retina.pixelRatio;
4290
4573
  }
4291
4574
  const modes = options.interactivity.modes;
4292
4575
  this.connectModeDistance = modes.connect.distance * ratio;
@@ -4306,19 +4589,19 @@
4306
4589
  const ratio = this.pixelRatio;
4307
4590
  const moveDistance = options.move.distance;
4308
4591
  const props = particle.retina;
4309
- props.attractDistance = options.move.attract.distance * ratio;
4592
+ props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;
4310
4593
  props.linksDistance = options.links.distance * ratio;
4311
4594
  props.linksWidth = options.links.width * ratio;
4312
4595
  props.moveDrift = getRangeValue(options.move.drift) * ratio;
4313
4596
  props.moveSpeed = getRangeValue(options.move.speed) * ratio;
4314
- props.sizeAnimationSpeed = options.size.animation.speed * ratio;
4597
+ props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;
4315
4598
  if (particle.spin) {
4316
4599
  props.spinAcceleration = getRangeValue(options.move.spin.acceleration) * ratio;
4317
4600
  }
4318
4601
  const maxDistance = props.maxDistance;
4319
4602
  maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;
4320
4603
  maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;
4321
- props.maxSpeed = options.move.gravity.maxSpeed * ratio;
4604
+ props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;
4322
4605
  }
4323
4606
  handleMotionChange(mediaQuery) {
4324
4607
  const options = this.container.actualOptions;
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.5 by Matteo Bruni */
1
+ /*! tsParticles v1.42.1 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={};function n(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}e.r(t),e.d(t,{loadExternalConnectInteraction:function(){return i}});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;new WeakMap;class a extends class{constructor(e){this.container=e,this.type=0}}{constructor(e){super(e)}isEnabled(){const e=this.container,t=e.interactivity.mouse,o=e.actualOptions.interactivity.events;return!(!o.onHover.enable||!t.position)&&n("connect",o.onHover.mode)}reset(){}async interact(){const e=this.container;if(e.actualOptions.interactivity.events.onHover.enable&&"mousemove"===e.interactivity.status){const t=e.interactivity.mouse.position;if(!t)return;const n=Math.abs(e.retina.connectModeRadius),o=e.particles.quadTree.queryCircle(t,n);let a=0;for(const t of o){const n=t.getPosition();for(const i of o.slice(a+1)){const o=i.getPosition(),a=Math.abs(e.retina.connectModeDistance),r=Math.abs(n.x-o.x),c=Math.abs(n.y-o.y);r<a&&c<a&&e.canvas.drawConnectLine(t,i)}++a}}}}async function i(e){await e.addInteractor("externalConnect",(e=>new a(e)))}return t}()}));