tsparticles 1.41.4 → 1.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +11 -10
  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 +11 -10
  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 +11 -10
  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 +81 -74
  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 +438 -151
  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 +11 -10
  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
@@ -613,7 +613,7 @@
613
613
  }
614
614
  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;
615
615
  this.applyPath(particle, delta);
616
- const gravityOptions = moveOptions.gravity;
616
+ const gravityOptions = particle.gravity;
617
617
  const gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;
618
618
  if (gravityOptions.enable && moveSpeed) {
619
619
  particle.velocity.y += gravityFactor * (gravityOptions.acceleration * delta.factor) / (60 * moveSpeed);
@@ -627,7 +627,7 @@
627
627
  }
628
628
  const velocity = particle.velocity.mult(moveSpeed);
629
629
  const maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;
630
- if (gravityOptions.enable && gravityOptions.maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {
630
+ if (gravityOptions.enable && maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {
631
631
  velocity.y = gravityFactor * maxSpeed;
632
632
  if (moveSpeed) {
633
633
  particle.velocity.y = velocity.y / moveSpeed;
@@ -986,10 +986,7 @@
986
986
  const container = this.container;
987
987
  const pxRatio = container.retina.pixelRatio;
988
988
  const size = container.canvas.size;
989
- const oldSize = {
990
- width: size.width,
991
- height: size.height
992
- };
989
+ const oldSize = Object.assign({}, size);
993
990
  size.width = this.element.offsetWidth * pxRatio;
994
991
  size.height = this.element.offsetHeight * pxRatio;
995
992
  this.element.width = size.width;
@@ -1048,7 +1045,7 @@
1048
1045
  const zIndexOptions = particle.options.zIndex;
1049
1046
  const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;
1050
1047
  const radius = particle.getRadius();
1051
- 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;
1048
+ 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;
1052
1049
  const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;
1053
1050
  const zOpacity = opacity * zOpacityFactor;
1054
1051
  const fillColorValue = fColor ? getStyleFromHsl(fColor, zOpacity) : undefined;
@@ -1319,7 +1316,7 @@
1319
1316
  return;
1320
1317
  }
1321
1318
  if (data.count !== undefined) {
1322
- this.count = data.count;
1319
+ this.count = setRangeValue(data.count);
1323
1320
  }
1324
1321
  if (data.enable !== undefined) {
1325
1322
  this.enable = data.enable;
@@ -1328,7 +1325,7 @@
1328
1325
  this.offset = setRangeValue(data.offset);
1329
1326
  }
1330
1327
  if (data.speed !== undefined) {
1331
- this.speed = data.speed;
1328
+ this.speed = setRangeValue(data.speed);
1332
1329
  }
1333
1330
  if (data.sync !== undefined) {
1334
1331
  this.sync = data.sync;
@@ -1476,13 +1473,13 @@
1476
1473
  return;
1477
1474
  }
1478
1475
  if (data.count !== undefined) {
1479
- this.count = data.count;
1476
+ this.count = setRangeValue(data.count);
1480
1477
  }
1481
1478
  if (data.enable !== undefined) {
1482
1479
  this.enable = data.enable;
1483
1480
  }
1484
1481
  if (data.speed !== undefined) {
1485
- this.speed = data.speed;
1482
+ this.speed = setRangeValue(data.speed);
1486
1483
  }
1487
1484
  if (data.sync !== undefined) {
1488
1485
  this.sync = data.sync;
@@ -1502,13 +1499,13 @@
1502
1499
  return;
1503
1500
  }
1504
1501
  if (data.count !== undefined) {
1505
- this.count = data.count;
1502
+ this.count = setRangeValue(data.count);
1506
1503
  }
1507
1504
  if (data.enable !== undefined) {
1508
1505
  this.enable = data.enable;
1509
1506
  }
1510
1507
  if (data.speed !== undefined) {
1511
- this.speed = data.speed;
1508
+ this.speed = setRangeValue(data.speed);
1512
1509
  }
1513
1510
  if (data.sync !== undefined) {
1514
1511
  this.sync = data.sync;
@@ -1680,6 +1677,90 @@
1680
1677
  this.duration.load(data.duration);
1681
1678
  }
1682
1679
  }
1680
+ class Attract_Attract {
1681
+ constructor() {
1682
+ this.distance = 200;
1683
+ this.enable = false;
1684
+ this.rotate = {
1685
+ x: 3e3,
1686
+ y: 3e3
1687
+ };
1688
+ }
1689
+ get rotateX() {
1690
+ return this.rotate.x;
1691
+ }
1692
+ set rotateX(value) {
1693
+ this.rotate.x = value;
1694
+ }
1695
+ get rotateY() {
1696
+ return this.rotate.y;
1697
+ }
1698
+ set rotateY(value) {
1699
+ this.rotate.y = value;
1700
+ }
1701
+ load(data) {
1702
+ var _a, _b, _c, _d;
1703
+ if (!data) {
1704
+ return;
1705
+ }
1706
+ if (data.distance !== undefined) {
1707
+ this.distance = setRangeValue(data.distance);
1708
+ }
1709
+ if (data.enable !== undefined) {
1710
+ this.enable = data.enable;
1711
+ }
1712
+ const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;
1713
+ if (rotateX !== undefined) {
1714
+ this.rotate.x = rotateX;
1715
+ }
1716
+ const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;
1717
+ if (rotateY !== undefined) {
1718
+ this.rotate.y = rotateY;
1719
+ }
1720
+ }
1721
+ }
1722
+ class MoveAngle_MoveAngle {
1723
+ constructor() {
1724
+ this.offset = 0;
1725
+ this.value = 90;
1726
+ }
1727
+ load(data) {
1728
+ if (data === undefined) {
1729
+ return;
1730
+ }
1731
+ if (data.offset !== undefined) {
1732
+ this.offset = setRangeValue(data.offset);
1733
+ }
1734
+ if (data.value !== undefined) {
1735
+ this.value = setRangeValue(data.value);
1736
+ }
1737
+ }
1738
+ }
1739
+ class MoveGravity_MoveGravity {
1740
+ constructor() {
1741
+ this.acceleration = 9.81;
1742
+ this.enable = false;
1743
+ this.inverse = false;
1744
+ this.maxSpeed = 50;
1745
+ }
1746
+ load(data) {
1747
+ if (!data) {
1748
+ return;
1749
+ }
1750
+ if (data.acceleration !== undefined) {
1751
+ this.acceleration = setRangeValue(data.acceleration);
1752
+ }
1753
+ if (data.enable !== undefined) {
1754
+ this.enable = data.enable;
1755
+ }
1756
+ if (data.inverse !== undefined) {
1757
+ this.inverse = data.inverse;
1758
+ }
1759
+ if (data.maxSpeed !== undefined) {
1760
+ this.maxSpeed = setRangeValue(data.maxSpeed);
1761
+ }
1762
+ }
1763
+ }
1683
1764
  class PathDelay_PathDelay extends(null && ValueWithRandom){
1684
1765
  constructor() {
1685
1766
  super();
@@ -1841,6 +1922,70 @@
1841
1922
  }
1842
1923
  }
1843
1924
  }
1925
+ class AnimationOptions_AnimationOptions {
1926
+ constructor() {
1927
+ this.count = 0;
1928
+ this.enable = false;
1929
+ this.speed = 1;
1930
+ this.sync = false;
1931
+ }
1932
+ load(data) {
1933
+ if (!data) {
1934
+ return;
1935
+ }
1936
+ if (data.count !== undefined) {
1937
+ this.count = setRangeValue(data.count);
1938
+ }
1939
+ if (data.enable !== undefined) {
1940
+ this.enable = data.enable;
1941
+ }
1942
+ if (data.speed !== undefined) {
1943
+ this.speed = setRangeValue(data.speed);
1944
+ }
1945
+ if (data.sync !== undefined) {
1946
+ this.sync = data.sync;
1947
+ }
1948
+ }
1949
+ }
1950
+ class OpacityAnimation_OpacityAnimation extends(null && AnimationOptions){
1951
+ constructor() {
1952
+ super();
1953
+ this.destroy = "none";
1954
+ this.enable = false;
1955
+ this.speed = 2;
1956
+ this.startValue = "random";
1957
+ this.sync = false;
1958
+ }
1959
+ get opacity_min() {
1960
+ return this.minimumValue;
1961
+ }
1962
+ set opacity_min(value) {
1963
+ this.minimumValue = value;
1964
+ }
1965
+ load(data) {
1966
+ var _a;
1967
+ if (data === undefined) {
1968
+ return;
1969
+ }
1970
+ super.load(data);
1971
+ if (data.destroy !== undefined) {
1972
+ this.destroy = data.destroy;
1973
+ }
1974
+ if (data.enable !== undefined) {
1975
+ this.enable = data.enable;
1976
+ }
1977
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;
1978
+ if (data.speed !== undefined) {
1979
+ this.speed = data.speed;
1980
+ }
1981
+ if (data.startValue !== undefined) {
1982
+ this.startValue = data.startValue;
1983
+ }
1984
+ if (data.sync !== undefined) {
1985
+ this.sync = data.sync;
1986
+ }
1987
+ }
1988
+ }
1844
1989
  class Opacity_Opacity extends(null && ValueWithRandom){
1845
1990
  constructor() {
1846
1991
  super();
@@ -1899,13 +2044,13 @@
1899
2044
  this.enable = data.enable;
1900
2045
  }
1901
2046
  if (data.opacity !== undefined) {
1902
- this.opacity = data.opacity;
2047
+ this.opacity = setRangeValue(data.opacity);
1903
2048
  }
1904
2049
  if (data.width !== undefined) {
1905
- this.width = data.width;
2050
+ this.width = setRangeValue(data.width);
1906
2051
  }
1907
2052
  if (data.radius !== undefined) {
1908
- this.radius = data.radius;
2053
+ this.radius = setRangeValue(data.radius);
1909
2054
  }
1910
2055
  if (data.color !== undefined) {
1911
2056
  this.color = OptionsColor.create(this.color, data.color);
@@ -1930,16 +2075,33 @@
1930
2075
  this.enabled = data.enabled;
1931
2076
  }
1932
2077
  if (data.distance !== undefined) {
1933
- this.distance = data.distance;
2078
+ this.distance = setRangeValue(data.distance);
1934
2079
  }
1935
2080
  if (data.duration !== undefined) {
1936
- this.duration = data.duration;
2081
+ this.duration = setRangeValue(data.duration);
1937
2082
  }
1938
2083
  if (data.factor !== undefined) {
1939
- this.factor = data.factor;
2084
+ this.factor = setRangeValue(data.factor);
1940
2085
  }
1941
2086
  if (data.speed !== undefined) {
1942
- this.speed = data.speed;
2087
+ this.speed = setRangeValue(data.speed);
2088
+ }
2089
+ }
2090
+ }
2091
+ class RollLight_RollLight {
2092
+ constructor() {
2093
+ this.enable = false;
2094
+ this.value = 0;
2095
+ }
2096
+ load(data) {
2097
+ if (!data) {
2098
+ return;
2099
+ }
2100
+ if (data.enable !== undefined) {
2101
+ this.enable = data.enable;
2102
+ }
2103
+ if (data.value !== undefined) {
2104
+ this.value = setRangeValue(data.value);
1943
2105
  }
1944
2106
  }
1945
2107
  }
@@ -1971,6 +2133,27 @@
1971
2133
  }
1972
2134
  }
1973
2135
  }
2136
+ class RotateAnimation_RotateAnimation {
2137
+ constructor() {
2138
+ this.enable = false;
2139
+ this.speed = 0;
2140
+ this.sync = false;
2141
+ }
2142
+ load(data) {
2143
+ if (data === undefined) {
2144
+ return;
2145
+ }
2146
+ if (data.enable !== undefined) {
2147
+ this.enable = data.enable;
2148
+ }
2149
+ if (data.speed !== undefined) {
2150
+ this.speed = setRangeValue(data.speed);
2151
+ }
2152
+ if (data.sync !== undefined) {
2153
+ this.sync = data.sync;
2154
+ }
2155
+ }
2156
+ }
1974
2157
  class Rotate_Rotate extends(null && ValueWithRandom){
1975
2158
  constructor() {
1976
2159
  super();
@@ -2089,6 +2272,45 @@
2089
2272
  }
2090
2273
  }
2091
2274
  }
2275
+ class SizeAnimation_SizeAnimation extends(null && AnimationOptions){
2276
+ constructor() {
2277
+ super();
2278
+ this.destroy = "none";
2279
+ this.enable = false;
2280
+ this.speed = 5;
2281
+ this.startValue = "random";
2282
+ this.sync = false;
2283
+ }
2284
+ get size_min() {
2285
+ return this.minimumValue;
2286
+ }
2287
+ set size_min(value) {
2288
+ this.minimumValue = value;
2289
+ }
2290
+ load(data) {
2291
+ var _a;
2292
+ if (data === undefined) {
2293
+ return;
2294
+ }
2295
+ super.load(data);
2296
+ if (data.destroy !== undefined) {
2297
+ this.destroy = data.destroy;
2298
+ }
2299
+ if (data.enable !== undefined) {
2300
+ this.enable = data.enable;
2301
+ }
2302
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;
2303
+ if (data.speed !== undefined) {
2304
+ this.speed = data.speed;
2305
+ }
2306
+ if (data.startValue !== undefined) {
2307
+ this.startValue = data.startValue;
2308
+ }
2309
+ if (data.sync !== undefined) {
2310
+ this.sync = data.sync;
2311
+ }
2312
+ }
2313
+ }
2092
2314
  class Size_Size extends(null && ValueWithRandom){
2093
2315
  constructor() {
2094
2316
  super();
@@ -2134,6 +2356,27 @@
2134
2356
  }
2135
2357
  }
2136
2358
  }
2359
+ class TiltAnimation_TiltAnimation {
2360
+ constructor() {
2361
+ this.enable = false;
2362
+ this.speed = 0;
2363
+ this.sync = false;
2364
+ }
2365
+ load(data) {
2366
+ if (data === undefined) {
2367
+ return;
2368
+ }
2369
+ if (data.enable !== undefined) {
2370
+ this.enable = data.enable;
2371
+ }
2372
+ if (data.speed !== undefined) {
2373
+ this.speed = setRangeValue(data.speed);
2374
+ }
2375
+ if (data.sync !== undefined) {
2376
+ this.sync = data.sync;
2377
+ }
2378
+ }
2379
+ }
2137
2380
  class Tilt_Tilt extends(null && ValueWithRandom){
2138
2381
  constructor() {
2139
2382
  super();
@@ -2156,6 +2399,43 @@
2156
2399
  }
2157
2400
  }
2158
2401
  }
2402
+ class TwinkleValues_TwinkleValues {
2403
+ constructor() {
2404
+ this.enable = false;
2405
+ this.frequency = .05;
2406
+ this.opacity = 1;
2407
+ }
2408
+ load(data) {
2409
+ if (data === undefined) {
2410
+ return;
2411
+ }
2412
+ if (data.color !== undefined) {
2413
+ this.color = OptionsColor.create(this.color, data.color);
2414
+ }
2415
+ if (data.enable !== undefined) {
2416
+ this.enable = data.enable;
2417
+ }
2418
+ if (data.frequency !== undefined) {
2419
+ this.frequency = data.frequency;
2420
+ }
2421
+ if (data.opacity !== undefined) {
2422
+ this.opacity = setRangeValue(data.opacity);
2423
+ }
2424
+ }
2425
+ }
2426
+ class Twinkle_Twinkle {
2427
+ constructor() {
2428
+ this.lines = new TwinkleValues;
2429
+ this.particles = new TwinkleValues;
2430
+ }
2431
+ load(data) {
2432
+ if (data === undefined) {
2433
+ return;
2434
+ }
2435
+ this.lines.load(data.lines);
2436
+ this.particles.load(data.particles);
2437
+ }
2438
+ }
2159
2439
  class Wobble_Wobble {
2160
2440
  constructor() {
2161
2441
  this.distance = 5;
@@ -2553,6 +2833,7 @@
2553
2833
  this.retina = {
2554
2834
  maxDistance: {}
2555
2835
  };
2836
+ this.ignoresResizeRatio = true;
2556
2837
  const pxRatio = container.retina.pixelRatio;
2557
2838
  const mainOptions = container.actualOptions;
2558
2839
  const particlesOptions = new ParticlesOptions;
@@ -2592,7 +2873,7 @@
2592
2873
  max: getRangeMax(sizeRange) * pxRatio,
2593
2874
  min: getRangeMin(sizeRange) * pxRatio,
2594
2875
  loops: 0,
2595
- maxLoops: sizeOptions.animation.count
2876
+ maxLoops: getRangeValue(sizeOptions.animation.count)
2596
2877
  };
2597
2878
  const sizeAnimation = sizeOptions.animation;
2598
2879
  if (sizeAnimation.enable) {
@@ -2626,6 +2907,12 @@
2626
2907
  this.initialVelocity = this.calculateVelocity();
2627
2908
  this.velocity = this.initialVelocity.copy();
2628
2909
  this.moveDecay = 1 - getRangeValue(this.options.move.decay);
2910
+ const gravityOptions = this.options.move.gravity;
2911
+ this.gravity = {
2912
+ enable: gravityOptions.enable,
2913
+ acceleration: getRangeValue(gravityOptions.acceleration),
2914
+ inverse: gravityOptions.inverse
2915
+ };
2629
2916
  this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));
2630
2917
  this.initialPosition = this.position.copy();
2631
2918
  this.offset = Vector.origin;
@@ -2833,12 +3120,7 @@
2833
3120
  return overlaps;
2834
3121
  }
2835
3122
  calculateVelocity() {
2836
- const baseVelocity = getParticleBaseVelocity(this.direction);
2837
- const res = baseVelocity.copy();
2838
- const moveOptions = this.options.move;
2839
- const rad = Math.PI / 180 * moveOptions.angle.value;
2840
- const radOffset = Math.PI / 180 * moveOptions.angle.offset;
2841
- const range = {
3123
+ 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 = {
2842
3124
  left: radOffset - rad / 2,
2843
3125
  right: radOffset + rad / 2
2844
3126
  };
@@ -2988,10 +3270,11 @@
2988
3270
  }
2989
3271
  for (const particle of this.array) {
2990
3272
  const resizeFactor = container.canvas.resizeFactor;
2991
- if (resizeFactor) {
3273
+ if (resizeFactor && !particle.ignoresResizeRatio) {
2992
3274
  particle.position.x *= resizeFactor.width;
2993
3275
  particle.position.y *= resizeFactor.height;
2994
3276
  }
3277
+ particle.ignoresResizeRatio = false;
2995
3278
  particle.bubble.inRange = false;
2996
3279
  for (const [, plugin] of this.container.plugins) {
2997
3280
  if (particle.destroyed) {
@@ -3227,13 +3510,13 @@
3227
3510
  container.canvas.size.height = element.offsetHeight * ratio;
3228
3511
  }
3229
3512
  const particles = options.particles;
3230
- this.attractDistance = particles.move.attract.distance * ratio;
3513
+ this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;
3231
3514
  this.linksDistance = particles.links.distance * ratio;
3232
3515
  this.linksWidth = particles.links.width * ratio;
3233
- this.sizeAnimationSpeed = particles.size.animation.speed * ratio;
3234
- this.maxSpeed = particles.move.gravity.maxSpeed * ratio;
3516
+ this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;
3517
+ this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;
3235
3518
  if (particles.orbit.radius !== undefined) {
3236
- this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;
3519
+ this.orbitRadius = getRangeValue(particles.orbit.radius) * this.container.retina.pixelRatio;
3237
3520
  }
3238
3521
  const modes = options.interactivity.modes;
3239
3522
  this.connectModeDistance = modes.connect.distance * ratio;
@@ -3253,19 +3536,19 @@
3253
3536
  const ratio = this.pixelRatio;
3254
3537
  const moveDistance = options.move.distance;
3255
3538
  const props = particle.retina;
3256
- props.attractDistance = options.move.attract.distance * ratio;
3539
+ props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;
3257
3540
  props.linksDistance = options.links.distance * ratio;
3258
3541
  props.linksWidth = options.links.width * ratio;
3259
3542
  props.moveDrift = getRangeValue(options.move.drift) * ratio;
3260
3543
  props.moveSpeed = getRangeValue(options.move.speed) * ratio;
3261
- props.sizeAnimationSpeed = options.size.animation.speed * ratio;
3544
+ props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;
3262
3545
  if (particle.spin) {
3263
3546
  props.spinAcceleration = getRangeValue(options.move.spin.acceleration) * ratio;
3264
3547
  }
3265
3548
  const maxDistance = props.maxDistance;
3266
3549
  maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;
3267
3550
  maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;
3268
- props.maxSpeed = options.move.gravity.maxSpeed * ratio;
3551
+ props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;
3269
3552
  }
3270
3553
  handleMotionChange(mediaQuery) {
3271
3554
  const options = this.container.actualOptions;
@@ -4597,7 +4880,7 @@
4597
4880
  function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
4598
4881
  colorValue.enable = colorAnimation.enable;
4599
4882
  if (colorValue.enable) {
4600
- colorValue.velocity = colorAnimation.speed / 100 * reduceFactor;
4883
+ colorValue.velocity = NumberUtils_getRangeValue(colorAnimation.speed) / 100 * reduceFactor;
4601
4884
  if (colorAnimation.sync) {
4602
4885
  return;
4603
4886
  }
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.4 by Matteo Bruni */
2
- !function(o,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t=e();for(var n in t)("object"==typeof exports?exports:o)[n]=t[n]}}(window,(function(){return function(){"use strict";var o={d:function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:function(o,e){return Object.prototype.hasOwnProperty.call(o,e)},r:function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{loadStrokeColorUpdater:function(){return m}});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 n(o){const e=a(o);let t=r(o);return e===t&&(t=0),Math.random()*(e-t)+t}function r(o){return"number"==typeof o?o:o.min}function a(o){return"number"==typeof o?o:o.max}function l(o,e){if(o===e||void 0===e&&"number"==typeof o)return o;const t=r(o),n=a(o);return void 0!==e?{min:Math.min(t,e),max:Math.max(n,e)}:l(t,n)}function s(o,e,t=!0){return o[void 0!==e&&t?e%o.length:function(o){return Math.floor(Math.random()*o.length)}(o)]}function i(o,e,t){let n=t;return n<0&&(n+=1),n>1&&(n-=1),n<1/6?o+6*(e-o)*n:n<.5?e:n<2/3?o+(e-o)*(2/3-n)*6:o}function u(o){if(o.startsWith("rgb")){const e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(o);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(o.startsWith("hsl")){const e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(o);return e?function(o){const e=c(o);return{a:o.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(o.startsWith("hsv")){const e=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(o);return e?function(o){const e=f(o);return{a:o.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,t=o.replace(e,((o,e,t,n,r)=>e+e+t+t+n+n+(void 0!==r?r+r:""))),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(t);return n?{a:void 0!==n[4]?parseInt(n[4],16)/255:1,b:parseInt(n[3],16),g:parseInt(n[2],16),r:parseInt(n[1],16)}:void 0}}function d(o,e,n=!0){var r,a,l;if(void 0===o)return;const i="string"==typeof o?{value:o}:o;let v;if("string"==typeof i.value)v=i.value===t.randomColorValue?h():function(o){return u(o)}(i.value);else if(i.value instanceof Array){v=d({value:s(i.value,e,n)})}else{const o=i.value,e=null!==(r=o.rgb)&&void 0!==r?r:i.value;if(void 0!==e.r)v=e;else{const e=null!==(a=o.hsl)&&void 0!==a?a:i.value;if(void 0!==e.h&&void 0!==e.l)v=c(e);else{const e=null!==(l=o.hsv)&&void 0!==l?l:i.value;void 0!==e.h&&void 0!==e.v&&(v=f(e))}}}return v}function v(o,e,t=!0){const n=d(o,e,t);return void 0!==n?function(o){const e=o.r/255,t=o.g/255,n=o.b/255,r=Math.max(e,t,n),a=Math.min(e,t,n),l={h:0,l:(r+a)/2,s:0};r!=a&&(l.s=l.l<.5?(r-a)/(r+a):(r-a)/(2-r-a),l.h=e===r?(t-n)/(r-a):l.h=t===r?2+(n-e)/(r-a):4+(e-t)/(r-a));l.l*=100,l.s*=100,l.h*=60,l.h<0&&(l.h+=360);return l}(n):void 0}function c(o){const e={b:0,g:0,r:0},t={h:o.h/360,l:o.l/100,s:o.s/100};if(0===t.s)e.b=t.l,e.g=t.l,e.r=t.l;else{const o=t.l<.5?t.l*(1+t.s):t.l+t.s-t.l*t.s,n=2*t.l-o;e.r=i(n,o,t.h+1/3),e.g=i(n,o,t.h),e.b=i(n,o,t.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 f(o){const e={b:0,g:0,r:0},t=o.h/60,n=o.s/100,r=o.v/100,a=r*n,l=a*(1-Math.abs(t%2-1));let s;if(t>=0&&t<=1?s={r:a,g:l,b:0}:t>1&&t<=2?s={r:l,g:a,b:0}:t>2&&t<=3?s={r:0,g:a,b:l}:t>3&&t<=4?s={r:0,g:l,b:a}:t>4&&t<=5?s={r:l,g:0,b:a}:t>5&&t<=6&&(s={r:a,g:0,b:l}),s){const o=r-a;e.r=Math.floor(255*(s.r+o)),e.g=Math.floor(255*(s.g+o)),e.b=Math.floor(255*(s.b+o))}return e}function h(o){const e=null!=o?o:0;return{b:Math.floor(n(l(e,256))),g:Math.floor(n(l(e,256))),r:Math.floor(n(l(e,256)))}}function p(o,e,t){if(o.enable=e.enable,o.enable){if(o.velocity=e.speed/100*t,e.sync)return;o.status=0,o.velocity*=Math.random(),o.value&&(o.value*=Math.random())}else o.velocity=0}function b(o,e,t,r,a){var l;const s=e;if(!s||!s.enable)return;const i=n(t.offset),u=(null!==(l=e.velocity)&&void 0!==l?l:0)*o.factor+3.6*i;a&&0!==s.status?(s.value-=u,s.value<0&&(s.status=0,s.value+=s.value)):(s.value+=u,a&&s.value>r&&(s.status=1,s.value-=s.value%r)),s.value>r&&(s.value%=r)}new WeakMap;class g{constructor(o){this.container=o}init(o){var e,t;const n=this.container;o.stroke=o.options.stroke instanceof Array?s(o.options.stroke,o.id,o.options.reduceDuplicates):o.options.stroke,o.strokeWidth=o.stroke.width*n.retina.pixelRatio;const r=null!==(e=v(o.stroke.color))&&void 0!==e?e:o.getFillColor();r&&(o.strokeColor=function(o,e,t){const n={h:{enable:!1,value:o.h},s:{enable:!1,value:o.s},l:{enable:!1,value:o.l}};return e&&(p(n.h,e.h,t),p(n.s,e.s,t),p(n.l,e.l,t)),n}(r,null===(t=o.stroke.color)||void 0===t?void 0:t.animation,n.retina.reduceFactor))}isEnabled(o){var e,t,n,r;const a=null===(e=o.stroke)||void 0===e?void 0:e.color;return!o.destroyed&&!o.spawning&&!!a&&(void 0!==(null===(t=o.strokeColor)||void 0===t?void 0:t.h.value)&&a.animation.h.enable||void 0!==(null===(n=o.strokeColor)||void 0===n?void 0:n.s.value)&&a.animation.s.enable||void 0!==(null===(r=o.strokeColor)||void 0===r?void 0:r.l.value)&&a.animation.l.enable)}update(o,e){this.isEnabled(o)&&function(o,e){var t,n,r,a,l,s,i,u,d,v;if(!(null===(t=o.stroke)||void 0===t?void 0:t.color))return;const c=o.stroke.color.animation,f=null!==(r=null===(n=o.strokeColor)||void 0===n?void 0:n.h)&&void 0!==r?r:null===(a=o.color)||void 0===a?void 0:a.h;f&&b(e,f,c.h,360,!1);const h=null!==(s=null===(l=o.strokeColor)||void 0===l?void 0:l.s)&&void 0!==s?s:null===(i=o.color)||void 0===i?void 0:i.s;h&&b(e,h,c.s,100,!0);const p=null!==(d=null===(u=o.strokeColor)||void 0===u?void 0:u.l)&&void 0!==d?d:null===(v=o.color)||void 0===v?void 0:v.l;p&&b(e,p,c.l,100,!0)}(o,e)}}async function m(o){await o.addParticleUpdater("strokeColor",(o=>new g(o)))}return e}()}));
1
+ /*! tsParticles v1.42.0 by Matteo Bruni */
2
+ !function(o,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t=e();for(var n in t)("object"==typeof exports?exports:o)[n]=t[n]}}(window,(function(){return function(){"use strict";var o={d:function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:function(o,e){return Object.prototype.hasOwnProperty.call(o,e)},r:function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{loadStrokeColorUpdater:function(){return y}});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 n(o){const e=l(o);let t=a(o);return e===t&&(t=0),Math.random()*(e-t)+t}function r(o){return"number"==typeof o?o:n(o)}function a(o){return"number"==typeof o?o:o.min}function l(o){return"number"==typeof o?o:o.max}function s(o,e){if(o===e||void 0===e&&"number"==typeof o)return o;const t=a(o),n=l(o);return void 0!==e?{min:Math.min(t,e),max:Math.max(n,e)}:s(t,n)}function i(o,e,t=!0){return o[void 0!==e&&t?e%o.length:function(o){return Math.floor(Math.random()*o.length)}(o)]}function u(o,e,t){let n=t;return n<0&&(n+=1),n>1&&(n-=1),n<1/6?o+6*(e-o)*n:n<.5?e:n<2/3?o+(e-o)*(2/3-n)*6:o}function d(o){if(o.startsWith("rgb")){const e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(o);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(o.startsWith("hsl")){const e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(o);return e?function(o){const e=f(o);return{a:o.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(o.startsWith("hsv")){const e=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(o);return e?function(o){const e=h(o);return{a:o.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,t=o.replace(e,((o,e,t,n,r)=>e+e+t+t+n+n+(void 0!==r?r+r:""))),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(t);return n?{a:void 0!==n[4]?parseInt(n[4],16)/255:1,b:parseInt(n[3],16),g:parseInt(n[2],16),r:parseInt(n[1],16)}:void 0}}function v(o,e,n=!0){var r,a,l;if(void 0===o)return;const s="string"==typeof o?{value:o}:o;let u;if("string"==typeof s.value)u=s.value===t.randomColorValue?p():function(o){return d(o)}(s.value);else if(s.value instanceof Array){u=v({value:i(s.value,e,n)})}else{const o=s.value,e=null!==(r=o.rgb)&&void 0!==r?r:s.value;if(void 0!==e.r)u=e;else{const e=null!==(a=o.hsl)&&void 0!==a?a:s.value;if(void 0!==e.h&&void 0!==e.l)u=f(e);else{const e=null!==(l=o.hsv)&&void 0!==l?l:s.value;void 0!==e.h&&void 0!==e.v&&(u=h(e))}}}return u}function c(o,e,t=!0){const n=v(o,e,t);return void 0!==n?function(o){const e=o.r/255,t=o.g/255,n=o.b/255,r=Math.max(e,t,n),a=Math.min(e,t,n),l={h:0,l:(r+a)/2,s:0};r!=a&&(l.s=l.l<.5?(r-a)/(r+a):(r-a)/(2-r-a),l.h=e===r?(t-n)/(r-a):l.h=t===r?2+(n-e)/(r-a):4+(e-t)/(r-a));l.l*=100,l.s*=100,l.h*=60,l.h<0&&(l.h+=360);return l}(n):void 0}function f(o){const e={b:0,g:0,r:0},t={h:o.h/360,l:o.l/100,s:o.s/100};if(0===t.s)e.b=t.l,e.g=t.l,e.r=t.l;else{const o=t.l<.5?t.l*(1+t.s):t.l+t.s-t.l*t.s,n=2*t.l-o;e.r=u(n,o,t.h+1/3),e.g=u(n,o,t.h),e.b=u(n,o,t.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 h(o){const e={b:0,g:0,r:0},t=o.h/60,n=o.s/100,r=o.v/100,a=r*n,l=a*(1-Math.abs(t%2-1));let s;if(t>=0&&t<=1?s={r:a,g:l,b:0}:t>1&&t<=2?s={r:l,g:a,b:0}:t>2&&t<=3?s={r:0,g:a,b:l}:t>3&&t<=4?s={r:0,g:l,b:a}:t>4&&t<=5?s={r:l,g:0,b:a}:t>5&&t<=6&&(s={r:a,g:0,b:l}),s){const o=r-a;e.r=Math.floor(255*(s.r+o)),e.g=Math.floor(255*(s.g+o)),e.b=Math.floor(255*(s.b+o))}return e}function p(o){const e=null!=o?o:0;return{b:Math.floor(n(s(e,256))),g:Math.floor(n(s(e,256))),r:Math.floor(n(s(e,256)))}}function b(o,e,t){if(o.enable=e.enable,o.enable){if(o.velocity=r(e.speed)/100*t,e.sync)return;o.status=0,o.velocity*=Math.random(),o.value&&(o.value*=Math.random())}else o.velocity=0}function g(o,e,t,r,a){var l;const s=e;if(!s||!s.enable)return;const i=n(t.offset),u=(null!==(l=e.velocity)&&void 0!==l?l:0)*o.factor+3.6*i;a&&0!==s.status?(s.value-=u,s.value<0&&(s.status=0,s.value+=s.value)):(s.value+=u,a&&s.value>r&&(s.status=1,s.value-=s.value%r)),s.value>r&&(s.value%=r)}new WeakMap;class m{constructor(o){this.container=o}init(o){var e,t;const n=this.container;o.stroke=o.options.stroke instanceof Array?i(o.options.stroke,o.id,o.options.reduceDuplicates):o.options.stroke,o.strokeWidth=o.stroke.width*n.retina.pixelRatio;const r=null!==(e=c(o.stroke.color))&&void 0!==e?e:o.getFillColor();r&&(o.strokeColor=function(o,e,t){const n={h:{enable:!1,value:o.h},s:{enable:!1,value:o.s},l:{enable:!1,value:o.l}};return e&&(b(n.h,e.h,t),b(n.s,e.s,t),b(n.l,e.l,t)),n}(r,null===(t=o.stroke.color)||void 0===t?void 0:t.animation,n.retina.reduceFactor))}isEnabled(o){var e,t,n,r;const a=null===(e=o.stroke)||void 0===e?void 0:e.color;return!o.destroyed&&!o.spawning&&!!a&&(void 0!==(null===(t=o.strokeColor)||void 0===t?void 0:t.h.value)&&a.animation.h.enable||void 0!==(null===(n=o.strokeColor)||void 0===n?void 0:n.s.value)&&a.animation.s.enable||void 0!==(null===(r=o.strokeColor)||void 0===r?void 0:r.l.value)&&a.animation.l.enable)}update(o,e){this.isEnabled(o)&&function(o,e){var t,n,r,a,l,s,i,u,d,v;if(!(null===(t=o.stroke)||void 0===t?void 0:t.color))return;const c=o.stroke.color.animation,f=null!==(r=null===(n=o.strokeColor)||void 0===n?void 0:n.h)&&void 0!==r?r:null===(a=o.color)||void 0===a?void 0:a.h;f&&g(e,f,c.h,360,!1);const h=null!==(s=null===(l=o.strokeColor)||void 0===l?void 0:l.s)&&void 0!==s?s:null===(i=o.color)||void 0===i?void 0:i.s;h&&g(e,h,c.s,100,!0);const p=null!==(d=null===(u=o.strokeColor)||void 0===u?void 0:u.l)&&void 0!==d?d:null===(v=o.color)||void 0===v?void 0:v.l;p&&g(e,p,c.l,100,!0)}(o,e)}}async function y(o){await o.addParticleUpdater("strokeColor",(o=>new m(o)))}return e}()}));