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
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.4 by Matteo Bruni */
2
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var o in i)("object"==typeof exports?exports:t)[o]=i[o]}}(window,(function(){return function(){"use strict";var t={d:function(e,i){for(var o in i)t.o(i,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:i[o]})},o:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{loadEmittersPlugin:function(){return J}});class i{randomPosition(t,e,i){const[o,n]=[e.width/2,e.height/2],s=((t,e)=>{const i=Math.random()/4,o=Math.atan(e/t*Math.tan(2*Math.PI*i)),n=Math.random();return n<.25?o:n<.5?Math.PI-o:n<.75?Math.PI+o:-o})(o,n),r=(d=s,(h=o)*(l=n)/Math.sqrt((l*Math.cos(d))**2+(h*Math.sin(d))**2)),a=i?r*Math.sqrt(Math.random()):r;var h,l,d;return{x:t.x+a*Math.cos(s),y:t.y+a*Math.sin(s)}}}class o{}o.generatedAttribute="generated",o.randomColorValue="random",o.midColorValue="mid",o.touchEndEvent="touchend",o.mouseDownEvent="mousedown",o.mouseUpEvent="mouseup",o.mouseMoveEvent="mousemove",o.touchStartEvent="touchstart",o.touchMoveEvent="touchmove",o.mouseLeaveEvent="mouseleave",o.mouseOutEvent="mouseout",o.touchCancelEvent="touchcancel",o.resizeEvent="resize",o.visibilityChangeEvent="visibilitychange",o.noPolygonDataLoaded="No polygon data loaded.",o.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function n(t){const e=a(t);let i=r(t);return e===i&&(i=0),Math.random()*(e-i)+i}function s(t){return"number"==typeof t?t:n(t)}function r(t){return"number"==typeof t?t:t.min}function a(t){return"number"==typeof t?t:t.max}function h(t,e){if(t===e||void 0===e&&"number"==typeof t)return t;const i=r(t),o=a(t);return void 0!==e?{min:Math.min(i,e),max:Math.max(o,e)}:h(i,o)}function l(t,e){return t===e||e instanceof Array&&e.indexOf(t)>-1}function d(t,e,i=!0){return t[void 0!==e&&i?e%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function c(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function u(t,...e){for(const i of e){if(null==i)continue;if("object"!=typeof i){t=i;continue}const e=Array.isArray(i);!e||"object"==typeof t&&t&&Array.isArray(t)?e||"object"==typeof t&&t&&!Array.isArray(t)||(t={}):t=[];for(const e in i){if("__proto__"===e)continue;const o=i[e],n="object"==typeof o,s=t;s[e]=n&&Array.isArray(o)?o.map((t=>u(s[e],t))):u(s[e],o)}}return t}function f(t,e,i){let o=i;return o<0&&(o+=1),o>1&&(o-=1),o<1/6?t+6*(e-t)*o:o<.5?e:o<2/3?t+(e-t)*(2/3-o)*6:t}function p(t){if(t.startsWith("rgb")){const e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?{a:e.length>4?parseFloat(e[5]):1,b:parseInt(e[3],10),g:parseInt(e[2],10),r:parseInt(e[1],10)}:void 0}if(t.startsWith("hsl")){const e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=y(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),l:parseInt(e[3],10),s:parseInt(e[2],10)}):void 0}if(t.startsWith("hsv")){const e=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=w(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),s:parseInt(e[2],10),v:parseInt(e[3],10)}):void 0}{const e=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,i=t.replace(e,((t,e,i,o,n)=>e+e+i+i+o+o+(void 0!==n?n+n:""))),o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(i);return o?{a:void 0!==o[4]?parseInt(o[4],16)/255:1,b:parseInt(o[3],16),g:parseInt(o[2],16),r:parseInt(o[1],16)}:void 0}}function v(t,e,i=!0){var n,s,r;if(void 0===t)return;const a="string"==typeof t?{value:t}:t;let h;if("string"==typeof a.value)h=a.value===o.randomColorValue?g():function(t){return p(t)}(a.value);else if(a.value instanceof Array){h=v({value:d(a.value,e,i)})}else{const t=a.value,e=null!==(n=t.rgb)&&void 0!==n?n:a.value;if(void 0!==e.r)h=e;else{const e=null!==(s=t.hsl)&&void 0!==s?s:a.value;if(void 0!==e.h&&void 0!==e.l)h=y(e);else{const e=null!==(r=t.hsv)&&void 0!==r?r:a.value;void 0!==e.h&&void 0!==e.v&&(h=w(e))}}}return h}function m(t,e,i=!0){const o=v(t,e,i);return void 0!==o?function(t){const e=t.r/255,i=t.g/255,o=t.b/255,n=Math.max(e,i,o),s=Math.min(e,i,o),r={h:0,l:(n+s)/2,s:0};n!=s&&(r.s=r.l<.5?(n-s)/(n+s):(n-s)/(2-n-s),r.h=e===n?(i-o)/(n-s):r.h=i===n?2+(o-e)/(n-s):4+(e-i)/(n-s));r.l*=100,r.s*=100,r.h*=60,r.h<0&&(r.h+=360);return r}(o):void 0}function y(t){const e={b:0,g:0,r:0},i={h:t.h/360,l:t.l/100,s:t.s/100};if(0===i.s)e.b=i.l,e.g=i.l,e.r=i.l;else{const t=i.l<.5?i.l*(1+i.s):i.l+i.s-i.l*i.s,o=2*i.l-t;e.r=f(o,t,i.h+1/3),e.g=f(o,t,i.h),e.b=f(o,t,i.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 w(t){const e={b:0,g:0,r:0},i=t.h/60,o=t.s/100,n=t.v/100,s=n*o,r=s*(1-Math.abs(i%2-1));let a;if(i>=0&&i<=1?a={r:s,g:r,b:0}:i>1&&i<=2?a={r:r,g:s,b:0}:i>2&&i<=3?a={r:0,g:s,b:r}:i>3&&i<=4?a={r:0,g:r,b:s}:i>4&&i<=5?a={r:r,g:0,b:s}:i>5&&i<=6&&(a={r:s,g:0,b:r}),a){const t=n-s;e.r=Math.floor(255*(a.r+t)),e.g=Math.floor(255*(a.g+t)),e.b=Math.floor(255*(a.b+t))}return e}function g(t){const e=null!=t?t:0;return{b:Math.floor(n(h(e,256))),g:Math.floor(n(h(e,256))),r:Math.floor(n(h(e,256)))}}new WeakMap;class b{constructor(){this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.sync=!0}load(t){void 0!==t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(this.offset=h(t.offset)),void 0!==t.speed&&(this.speed=t.speed),void 0!==t.sync&&(this.sync=t.sync))}}class E{constructor(){this.h=new b,this.s=new b,this.l=new b}load(t){t&&(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}class M{constructor(){this.value="#fff"}static create(t,e){const i=new M;return i.load(t),void 0!==e&&("string"==typeof e||e instanceof Array?i.load({value:e}):i.load(e)),i}load(t){void 0!==(null==t?void 0:t.value)&&(this.value=t.value)}}class C extends M{constructor(){super(),this.animation=new E}static create(t,e){const i=new C;return i.load(t),void 0!==e&&("string"==typeof e||e instanceof Array?i.load({value:e}):i.load(e)),i}load(t){if(super.load(t),!t)return;const e=t.animation;void 0!==e&&(void 0!==e.enable?this.animation.h.load(e):this.animation.load(t.animation))}}class P{constructor(){this.wait=!1}load(t){void 0!==t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=t.delay),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.wait&&(this.wait=t.wait))}}class x{constructor(){this.quantity=1,this.delay=.1}load(t){void 0!==t&&(void 0!==t.quantity&&(this.quantity=h(t.quantity)),void 0!==t.delay&&(this.delay=h(t.delay)))}}class D{constructor(){this.mode="percent",this.height=0,this.width=0}load(t){void 0!==t&&(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.height&&(this.height=t.height),void 0!==t.width&&(this.width=t.width))}}class S{constructor(){this.autoPlay=!0,this.fill=!0,this.life=new P,this.rate=new x,this.shape="square",this.startCount=0}load(t){void 0!==t&&(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.size&&(void 0===this.size&&(this.size=new D),this.size.load(t.size)),void 0!==t.direction&&(this.direction=t.direction),this.domId=t.domId,void 0!==t.fill&&(this.fill=t.fill),this.life.load(t.life),this.name=t.name,void 0!==t.particles&&(this.particles=u({},t.particles)),this.rate.load(t.rate),void 0!==t.shape&&(this.shape=t.shape),void 0!==t.position&&(this.position={x:t.position.x,y:t.position.y}),void 0!==t.spawnColor&&(void 0===this.spawnColor&&(this.spawnColor=new C),this.spawnColor.load(t.spawnColor)),void 0!==t.startCount&&(this.startCount=t.startCount))}}var A,z,I,T=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i},k=function(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)};class j{constructor(t,e,i,o,n){var s,r,a,h,l,d,c;this.emitters=e,this.container=i,A.set(this,void 0),z.set(this,void 0),I.set(this,void 0),T(this,I,t,"f"),this.currentDuration=0,this.currentEmitDelay=0,this.currentSpawnDelay=0,this.initialPosition=n,o instanceof S?this.options=o:(this.options=new S,this.options.load(o)),this.spawnDelay=1e3*(null!==(s=this.options.life.delay)&&void 0!==s?s:0)/this.container.retina.reduceFactor,this.name=this.options.name,this.shape=null===(r=k(this,I,"f").emitterShapeManager)||void 0===r?void 0:r.getShape(this.options.shape),this.fill=this.options.fill,T(this,A,!this.options.life.wait,"f"),T(this,z,!1,"f");let f=u({},this.options.particles);null!=f||(f={}),null!==(a=f.move)&&void 0!==a||(f.move={}),null!==(h=(c=f.move).direction)&&void 0!==h||(c.direction=this.options.direction),this.options.spawnColor&&(this.spawnColor=m(this.options.spawnColor)),this.paused=!this.options.autoPlay,this.particlesOptions=f,this.size=null!==(l=this.options.size)&&void 0!==l?l:(()=>{const t=new D;return t.load({height:0,mode:"percent",width:0}),t})(),this.lifeCount=null!==(d=this.options.life.count)&&void 0!==d?d:-1,this.immortal=this.lifeCount<=0,this.play()}externalPlay(){this.paused=!1,this.play()}externalPause(){this.paused=!0,this.pause()}play(){var t;if(!this.paused&&this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal||!this.options.life.count)&&(k(this,A,"f")||this.currentSpawnDelay>=(null!==(t=this.spawnDelay)&&void 0!==t?t:0))){if(void 0===this.emitDelay){const t=s(this.options.rate.delay);this.emitDelay=1e3*t/this.container.retina.reduceFactor}(this.lifeCount>0||this.immortal)&&this.prepareToDie()}}pause(){this.paused||delete this.emitDelay}resize(){const t=this.initialPosition;var e,i,o,n;this.position=t&&(e=t,i=this.container.canvas.size,function(t,e,i){let o=!0;return i&&"bottom"!==i||(o=t.top<e.height),!o||i&&"left"!==i||(o=t.right>0),!o||i&&"right"!==i||(o=t.left<e.width),!o||i&&"top"!==i||(o=t.bottom>0),o}(c(e,null!=o?o:0),i,n))?t:this.calcPosition()}update(t){var e,i,o;this.paused||(k(this,A,"f")&&(T(this,A,!1,"f"),this.currentSpawnDelay=null!==(e=this.spawnDelay)&&void 0!==e?e:0,this.currentEmitDelay=null!==(i=this.emitDelay)&&void 0!==i?i:0),k(this,z,"f")||(T(this,z,!0,"f"),this.emitParticles(this.options.startCount)),void 0!==this.duration&&(this.currentDuration+=t.value,this.currentDuration>=this.duration&&(this.pause(),void 0!==this.spawnDelay&&delete this.spawnDelay,this.immortal||this.lifeCount--,this.lifeCount>0||this.immortal?(this.position=this.calcPosition(),this.spawnDelay=1e3*(null!==(o=this.options.life.delay)&&void 0!==o?o:0)/this.container.retina.reduceFactor):this.destroy(),this.currentDuration-=this.duration,delete this.duration)),void 0!==this.spawnDelay&&(this.currentSpawnDelay+=t.value,this.currentSpawnDelay>=this.spawnDelay&&(this.play(),this.currentSpawnDelay-=this.currentSpawnDelay,delete this.spawnDelay)),void 0!==this.emitDelay&&(this.currentEmitDelay+=t.value,this.currentEmitDelay>=this.emitDelay&&(this.emit(),this.currentEmitDelay-=this.emitDelay)))}getPosition(){if(this.options.domId){const t=this.container,e=document.getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect();return{x:(i.x+i.width/2)*t.retina.pixelRatio,y:(i.y+i.height/2)*t.retina.pixelRatio}}}return this.position}getSize(){const t=this.container;if(this.options.domId){const e=document.getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect();return{width:i.width*t.retina.pixelRatio,height:i.height*t.retina.pixelRatio}}}return{width:"percent"===this.size.mode?t.canvas.size.width*this.size.width/100:this.size.width,height:"percent"===this.size.mode?t.canvas.size.height*this.size.height/100:this.size.height}}prepareToDie(){var t;if(this.paused)return;const e=null===(t=this.options.life)||void 0===t?void 0:t.duration;this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal)&&void 0!==e&&e>0&&(this.duration=1e3*e)}destroy(){this.emitters.removeEmitter(this)}calcPosition(){var t,e;const i=this.container,o=this.options.position;return{x:(null!==(t=null==o?void 0:o.x)&&void 0!==t?t:100*Math.random())/100*i.canvas.size.width,y:(null!==(e=null==o?void 0:o.y)&&void 0!==e?e:100*Math.random())/100*i.canvas.size.height}}emit(){if(this.paused)return;const t=s(this.options.rate.quantity);this.emitParticles(t)}emitParticles(t){var e,i,o;const n=this.container,s=this.getPosition(),r=this.getSize();for(let a=0;a<t;a++){const t=u({},this.particlesOptions);if(this.spawnColor){const i=null===(e=this.options.spawnColor)||void 0===e?void 0:e.animation;i&&(this.spawnColor.h=this.setColorAnimation(i.h,this.spawnColor.h,360),this.spawnColor.s=this.setColorAnimation(i.s,this.spawnColor.s,100),this.spawnColor.l=this.setColorAnimation(i.l,this.spawnColor.l,100)),t.color?t.color.value=this.spawnColor:t.color={value:this.spawnColor}}if(!s)return;const a=null!==(o=null===(i=this.shape)||void 0===i?void 0:i.randomPosition(s,r,this.fill))&&void 0!==o?o:s;n.particles.addParticle(a,t)}}setColorAnimation(t,e,i){var o;const r=this.container;if(!t.enable)return e;const a=n(t.offset),h=1e3*s(this.options.rate.delay)/r.retina.reduceFactor;return(e+(null!==(o=t.speed)&&void 0!==o?o:0)*r.fpsLimit/h+3.6*a)%i}}A=new WeakMap,z=new WeakMap,I=new WeakMap;var W,O=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i},F=function(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)};class q{constructor(t,e){this.container=e,W.set(this,void 0),O(this,W,t,"f"),this.array=[],this.emitters=[],this.interactivityEmitters=[];const i=e;i.getEmitter=t=>void 0===t||"number"==typeof t?this.array[t||0]:this.array.find((e=>e.name===t)),i.addEmitter=(t,e)=>this.addEmitter(t,e),i.removeEmitter=t=>{const e=i.getEmitter(t);e&&this.removeEmitter(e)},i.playEmitter=t=>{const e=i.getEmitter(t);e&&e.externalPlay()},i.pauseEmitter=t=>{const e=i.getEmitter(t);e&&e.externalPause()}}init(t){var e,i;if(!t)return;t.emitters&&(t.emitters instanceof Array?this.emitters=t.emitters.map((t=>{const e=new S;return e.load(t),e})):(this.emitters instanceof Array&&(this.emitters=new S),this.emitters.load(t.emitters)));const o=null===(i=null===(e=t.interactivity)||void 0===e?void 0:e.modes)||void 0===i?void 0:i.emitters;if(o&&(o instanceof Array?this.interactivityEmitters=o.map((t=>{const e=new S;return e.load(t),e})):(this.interactivityEmitters instanceof Array&&(this.interactivityEmitters=new S),this.interactivityEmitters.load(o))),this.emitters instanceof Array)for(const t of this.emitters)this.addEmitter(t);else this.addEmitter(this.emitters)}play(){for(const t of this.array)t.play()}pause(){for(const t of this.array)t.pause()}stop(){this.array=[]}update(t){for(const e of this.array)e.update(t)}handleClickMode(t){const e=this.container,i=this.emitters,o=this.interactivityEmitters;if("emitter"===t){let t;o instanceof Array?o.length>0&&(t=d(o)):t=o;const n=null!=t?t:i instanceof Array?d(i):i,s=e.interactivity.mouse.clickPosition;this.addEmitter(u({},n),s)}}resize(){for(const t of this.array)t.resize()}addEmitter(t,e){const i=new S;i.load(t);const o=new j(F(this,W,"f"),this,this.container,i,e);return this.array.push(o),o}removeEmitter(t){const e=this.array.indexOf(t);e>=0&&this.array.splice(e,1)}}W=new WeakMap;var R,_=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i};const B=new Map;class V{constructor(t){R.set(this,void 0),_(this,R,t,"f")}addShape(t,e){this.getShape(t)||B.set(t,e)}getShape(t){return B.get(t)}getSupportedShapes(){return B.keys()}}function L(t,e){return t+e*(Math.random()-.5)}R=new WeakMap;class N{randomPosition(t,e,i){if(i)return{x:L(t.x,e.width),y:L(t.y,e.height)};{const i=e.width/2,o=e.height/2,n=Math.floor(4*Math.random()),s=2*(Math.random()-.5);switch(n){case 0:return{x:t.x+s*i,y:t.y-o};case 1:return{x:t.x-i,y:t.y+s*o};case 2:return{x:t.x+s*i,y:t.y+o};case 3:default:return{x:t.x+i,y:t.y+s*o}}}}}var $,G=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i},U=function(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)};class H{constructor(t){$.set(this,void 0),G(this,$,t,"f"),this.id="emitters"}getPlugin(t){return new q(U(this,$,"f"),t)}needsPlugin(t){var e,i,o;if(void 0===t)return!1;const n=t.emitters;return n instanceof Array&&!!n.length||void 0!==n||!!(null===(o=null===(i=null===(e=t.interactivity)||void 0===e?void 0:e.events)||void 0===i?void 0:i.onClick)||void 0===o?void 0:o.mode)&&l("emitter",t.interactivity.events.onClick.mode)}loadOptions(t,e){var i,o;if(!this.needsPlugin(t)&&!this.needsPlugin(e))return;const n=t;if(null==e?void 0:e.emitters)if((null==e?void 0:e.emitters)instanceof Array)n.emitters=null==e?void 0:e.emitters.map((t=>{const e=new S;return e.load(t),e}));else{let t=n.emitters;void 0===(null==t?void 0:t.load)&&(n.emitters=t=new S),t.load(null==e?void 0:e.emitters)}const s=null===(o=null===(i=null==e?void 0:e.interactivity)||void 0===i?void 0:i.modes)||void 0===o?void 0:o.emitters;if(s)if(s instanceof Array)n.interactivity.modes.emitters=s.map((t=>{const e=new S;return e.load(t),e}));else{let t=n.interactivity.modes.emitters;void 0===(null==t?void 0:t.load)&&(n.interactivity.modes.emitters=t=new S),t.load(s)}}}async function J(t){t.emitterShapeManager||(t.emitterShapeManager=new V(t)),t.addEmitterShape||(t.addEmitterShape=(e,i)=>{var o;null===(o=t.emitterShapeManager)||void 0===o||o.addShape(e,i)});const e=new H(t);await t.addPlugin(e),t.addEmitterShape("circle",new i),t.addEmitterShape("square",new N)}return $=new WeakMap,e}()}));
1
+ /*! tsParticles v1.42.0 by Matteo Bruni */
2
+ !function(t,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i();else if("function"==typeof define&&define.amd)define([],i);else{var e=i();for(var o in e)("object"==typeof exports?exports:t)[o]=e[o]}}(window,(function(){return function(){"use strict";var t={d:function(i,e){for(var o in e)t.o(e,o)&&!t.o(i,o)&&Object.defineProperty(i,o,{enumerable:!0,get:e[o]})},o:function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},i={};t.r(i),t.d(i,{loadEmittersPlugin:function(){return J}});class e{randomPosition(t,i,e){const[o,s]=[i.width/2,i.height/2],n=((t,i)=>{const e=Math.random()/4,o=Math.atan(i/t*Math.tan(2*Math.PI*e)),s=Math.random();return s<.25?o:s<.5?Math.PI-o:s<.75?Math.PI+o:-o})(o,s),r=(d=n,(h=o)*(l=s)/Math.sqrt((l*Math.cos(d))**2+(h*Math.sin(d))**2)),a=e?r*Math.sqrt(Math.random()):r;var h,l,d;return{x:t.x+a*Math.cos(n),y:t.y+a*Math.sin(n)}}}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;class s{constructor(){this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.sync=!0}load(t){void 0!==t&&(void 0!==t.count&&(this.count=u(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(this.offset=u(t.offset)),void 0!==t.speed&&(this.speed=u(t.speed)),void 0!==t.sync&&(this.sync=t.sync))}}class n{constructor(){this.h=new s,this.s=new s,this.l=new s}load(t){t&&(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}class r{constructor(){this.value="#fff"}static create(t,i){const e=new r;return e.load(t),void 0!==i&&("string"==typeof i||i instanceof Array?e.load({value:i}):e.load(i)),e}load(t){void 0!==(null==t?void 0:t.value)&&(this.value=t.value)}}class a extends r{constructor(){super(),this.animation=new n}static create(t,i){const e=new a;return e.load(t),void 0!==i&&("string"==typeof i||i instanceof Array?e.load({value:i}):e.load(i)),e}load(t){if(super.load(t),!t)return;const i=t.animation;void 0!==i&&(void 0!==i.enable?this.animation.h.load(i):this.animation.load(t.animation))}}new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function h(t){const i=c(t);let e=d(t);return i===e&&(e=0),Math.random()*(i-e)+e}function l(t){return"number"==typeof t?t:h(t)}function d(t){return"number"==typeof t?t:t.min}function c(t){return"number"==typeof t?t:t.max}function u(t,i){if(t===i||void 0===i&&"number"==typeof t)return t;const e=d(t),o=c(t);return void 0!==i?{min:Math.min(e,i),max:Math.max(o,i)}:u(e,o)}function p(t,i){return t===i||i instanceof Array&&i.indexOf(t)>-1}function f(t,i,e=!0){return t[void 0!==i&&e?i%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function v(t,i){return{bottom:t.y+i,left:t.x-i,right:t.x+i,top:t.y-i}}function m(t,...i){for(const e of i){if(null==e)continue;if("object"!=typeof e){t=e;continue}const i=Array.isArray(e);!i||"object"==typeof t&&t&&Array.isArray(t)?i||"object"==typeof t&&t&&!Array.isArray(t)||(t={}):t=[];for(const i in e){if("__proto__"===i)continue;const o=e[i],s="object"==typeof o,n=t;n[i]=s&&Array.isArray(o)?o.map((t=>m(n[i],t))):m(n[i],o)}}return t}function y(t,i,e){let o=e;return o<0&&(o+=1),o>1&&(o-=1),o<1/6?t+6*(i-t)*o:o<.5?i:o<2/3?t+(i-t)*(2/3-o)*6:t}function w(t){if(t.startsWith("rgb")){const i=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return i?{a:i.length>4?parseFloat(i[5]):1,b:parseInt(i[3],10),g:parseInt(i[2],10),r:parseInt(i[1],10)}:void 0}if(t.startsWith("hsl")){const i=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return i?function(t){const i=E(t);return{a:t.a,b:i.b,g:i.g,r:i.r}}({a:i.length>4?parseFloat(i[5]):1,h:parseInt(i[1],10),l:parseInt(i[3],10),s:parseInt(i[2],10)}):void 0}if(t.startsWith("hsv")){const i=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return i?function(t){const i=M(t);return{a:t.a,b:i.b,g:i.g,r:i.r}}({a:i.length>4?parseFloat(i[5]):1,h:parseInt(i[1],10),s:parseInt(i[2],10),v:parseInt(i[3],10)}):void 0}{const i=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,e=t.replace(i,((t,i,e,o,s)=>i+i+e+e+o+o+(void 0!==s?s+s:""))),o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e);return o?{a:void 0!==o[4]?parseInt(o[4],16)/255:1,b:parseInt(o[3],16),g:parseInt(o[2],16),r:parseInt(o[1],16)}:void 0}}function g(t,i,e=!0){var s,n,r;if(void 0===t)return;const a="string"==typeof t?{value:t}:t;let h;if("string"==typeof a.value)h=a.value===o.randomColorValue?P():function(t){return w(t)}(a.value);else if(a.value instanceof Array){h=g({value:f(a.value,i,e)})}else{const t=a.value,i=null!==(s=t.rgb)&&void 0!==s?s:a.value;if(void 0!==i.r)h=i;else{const i=null!==(n=t.hsl)&&void 0!==n?n:a.value;if(void 0!==i.h&&void 0!==i.l)h=E(i);else{const i=null!==(r=t.hsv)&&void 0!==r?r:a.value;void 0!==i.h&&void 0!==i.v&&(h=M(i))}}}return h}function b(t,i,e=!0){const o=g(t,i,e);return void 0!==o?function(t){const i=t.r/255,e=t.g/255,o=t.b/255,s=Math.max(i,e,o),n=Math.min(i,e,o),r={h:0,l:(s+n)/2,s:0};s!=n&&(r.s=r.l<.5?(s-n)/(s+n):(s-n)/(2-s-n),r.h=i===s?(e-o)/(s-n):r.h=e===s?2+(o-i)/(s-n):4+(i-e)/(s-n));r.l*=100,r.s*=100,r.h*=60,r.h<0&&(r.h+=360);return r}(o):void 0}function E(t){const i={b:0,g:0,r:0},e={h:t.h/360,l:t.l/100,s:t.s/100};if(0===e.s)i.b=e.l,i.g=e.l,i.r=e.l;else{const t=e.l<.5?e.l*(1+e.s):e.l+e.s-e.l*e.s,o=2*e.l-t;i.r=y(o,t,e.h+1/3),i.g=y(o,t,e.h),i.b=y(o,t,e.h-1/3)}return i.r=Math.floor(255*i.r),i.g=Math.floor(255*i.g),i.b=Math.floor(255*i.b),i}function M(t){const i={b:0,g:0,r:0},e=t.h/60,o=t.s/100,s=t.v/100,n=s*o,r=n*(1-Math.abs(e%2-1));let a;if(e>=0&&e<=1?a={r:n,g:r,b:0}:e>1&&e<=2?a={r:r,g:n,b:0}:e>2&&e<=3?a={r:0,g:n,b:r}:e>3&&e<=4?a={r:0,g:r,b:n}:e>4&&e<=5?a={r:r,g:0,b:n}:e>5&&e<=6&&(a={r:n,g:0,b:r}),a){const t=s-n;i.r=Math.floor(255*(a.r+t)),i.g=Math.floor(255*(a.g+t)),i.b=Math.floor(255*(a.b+t))}return i}function P(t){const i=null!=t?t:0;return{b:Math.floor(h(u(i,256))),g:Math.floor(h(u(i,256))),r:Math.floor(h(u(i,256)))}}new WeakMap;class C{constructor(){this.wait=!1}load(t){void 0!==t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=t.delay),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.wait&&(this.wait=t.wait))}}class x{constructor(){this.quantity=1,this.delay=.1}load(t){void 0!==t&&(void 0!==t.quantity&&(this.quantity=u(t.quantity)),void 0!==t.delay&&(this.delay=u(t.delay)))}}class D{constructor(){this.mode="percent",this.height=0,this.width=0}load(t){void 0!==t&&(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.height&&(this.height=t.height),void 0!==t.width&&(this.width=t.width))}}class S{constructor(){this.autoPlay=!0,this.fill=!0,this.life=new C,this.rate=new x,this.shape="square",this.startCount=0}load(t){void 0!==t&&(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.size&&(void 0===this.size&&(this.size=new D),this.size.load(t.size)),void 0!==t.direction&&(this.direction=t.direction),this.domId=t.domId,void 0!==t.fill&&(this.fill=t.fill),this.life.load(t.life),this.name=t.name,void 0!==t.particles&&(this.particles=m({},t.particles)),this.rate.load(t.rate),void 0!==t.shape&&(this.shape=t.shape),void 0!==t.position&&(this.position={},t.position.x&&(this.position.x=u(t.position.x)),t.position.y&&(this.position.y=u(t.position.y))),void 0!==t.spawnColor&&(void 0===this.spawnColor&&(this.spawnColor=new a),this.spawnColor.load(t.spawnColor)),void 0!==t.startCount&&(this.startCount=t.startCount))}}var A,z,I,T=function(t,i,e,o,s){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof i?t!==i||!s:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?s.call(t,e):s?s.value=e:i.set(t,e),e},k=function(t,i,e,o){if("a"===e&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof i?t!==i||!o:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?o:"a"===e?o.call(t):o?o.value:i.get(t)};class j{constructor(t,i,e,o,s){var n,r,a,h,l,d,c,u;this.emitters=i,this.container=e,A.set(this,void 0),z.set(this,void 0),I.set(this,void 0),T(this,I,t,"f"),this.currentDuration=0,this.currentEmitDelay=0,this.currentSpawnDelay=0,this.initialPosition=s,o instanceof S?this.options=o:(this.options=new S,this.options.load(o)),this.spawnDelay=1e3*(null!==(n=this.options.life.delay)&&void 0!==n?n:0)/this.container.retina.reduceFactor,this.position=null!==(r=this.initialPosition)&&void 0!==r?r:this.calcPosition(),this.name=this.options.name,this.shape=null===(a=k(this,I,"f").emitterShapeManager)||void 0===a?void 0:a.getShape(this.options.shape),this.fill=this.options.fill,T(this,A,!this.options.life.wait,"f"),T(this,z,!1,"f");let p=m({},this.options.particles);null!=p||(p={}),null!==(h=p.move)&&void 0!==h||(p.move={}),null!==(l=(u=p.move).direction)&&void 0!==l||(u.direction=this.options.direction),this.options.spawnColor&&(this.spawnColor=b(this.options.spawnColor)),this.paused=!this.options.autoPlay,this.particlesOptions=p,this.size=null!==(d=this.options.size)&&void 0!==d?d:(()=>{const t=new D;return t.load({height:0,mode:"percent",width:0}),t})(),this.lifeCount=null!==(c=this.options.life.count)&&void 0!==c?c:-1,this.immortal=this.lifeCount<=0,this.play()}externalPlay(){this.paused=!1,this.play()}externalPause(){this.paused=!0,this.pause()}play(){var t;if(!this.paused&&this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal||!this.options.life.count)&&(k(this,A,"f")||this.currentSpawnDelay>=(null!==(t=this.spawnDelay)&&void 0!==t?t:0))){if(void 0===this.emitDelay){const t=l(this.options.rate.delay);this.emitDelay=1e3*t/this.container.retina.reduceFactor}(this.lifeCount>0||this.immortal)&&this.prepareToDie()}}pause(){this.paused||delete this.emitDelay}resize(){const t=this.initialPosition;var i,e,o,s;this.position=t&&(i=t,e=this.container.canvas.size,function(t,i,e){let o=!0;return e&&"bottom"!==e||(o=t.top<i.height),!o||e&&"left"!==e||(o=t.right>0),!o||e&&"right"!==e||(o=t.left<i.width),!o||e&&"top"!==e||(o=t.bottom>0),o}(v(i,null!=o?o:0),e,s))?t:this.calcPosition()}update(t){var i,e,o;this.paused||(k(this,A,"f")&&(T(this,A,!1,"f"),this.currentSpawnDelay=null!==(i=this.spawnDelay)&&void 0!==i?i:0,this.currentEmitDelay=null!==(e=this.emitDelay)&&void 0!==e?e:0),k(this,z,"f")||(T(this,z,!0,"f"),this.emitParticles(this.options.startCount)),void 0!==this.duration&&(this.currentDuration+=t.value,this.currentDuration>=this.duration&&(this.pause(),void 0!==this.spawnDelay&&delete this.spawnDelay,this.immortal||this.lifeCount--,this.lifeCount>0||this.immortal?(this.position=this.calcPosition(),this.spawnDelay=1e3*(null!==(o=this.options.life.delay)&&void 0!==o?o:0)/this.container.retina.reduceFactor):this.destroy(),this.currentDuration-=this.duration,delete this.duration)),void 0!==this.spawnDelay&&(this.currentSpawnDelay+=t.value,this.currentSpawnDelay>=this.spawnDelay&&(this.play(),this.currentSpawnDelay-=this.currentSpawnDelay,delete this.spawnDelay)),void 0!==this.emitDelay&&(this.currentEmitDelay+=t.value,this.currentEmitDelay>=this.emitDelay&&(this.emit(),this.currentEmitDelay-=this.emitDelay)))}getPosition(){if(this.options.domId){const t=this.container,i=document.getElementById(this.options.domId);if(i){const e=i.getBoundingClientRect();return{x:(e.x+e.width/2)*t.retina.pixelRatio,y:(e.y+e.height/2)*t.retina.pixelRatio}}}return this.position}getSize(){const t=this.container;if(this.options.domId){const i=document.getElementById(this.options.domId);if(i){const e=i.getBoundingClientRect();return{width:e.width*t.retina.pixelRatio,height:e.height*t.retina.pixelRatio}}}return{width:"percent"===this.size.mode?t.canvas.size.width*this.size.width/100:this.size.width,height:"percent"===this.size.mode?t.canvas.size.height*this.size.height/100:this.size.height}}prepareToDie(){var t;if(this.paused)return;const i=null===(t=this.options.life)||void 0===t?void 0:t.duration;this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal)&&void 0!==i&&i>0&&(this.duration=1e3*i)}destroy(){this.emitters.removeEmitter(this)}calcPosition(){var t,i;const e=this.container,o=this.options.position;return{x:l(null!==(t=null==o?void 0:o.x)&&void 0!==t?t:100*Math.random())/100*e.canvas.size.width,y:l(null!==(i=null==o?void 0:o.y)&&void 0!==i?i:100*Math.random())/100*e.canvas.size.height}}emit(){if(this.paused)return;const t=l(this.options.rate.quantity);this.emitParticles(t)}emitParticles(t){var i,e,o;const s=this.container,n=this.getPosition(),r=this.getSize();for(let a=0;a<t;a++){const t=m({},this.particlesOptions);if(this.spawnColor){const e=null===(i=this.options.spawnColor)||void 0===i?void 0:i.animation;e&&(this.spawnColor.h=this.setColorAnimation(e.h,this.spawnColor.h,360),this.spawnColor.s=this.setColorAnimation(e.s,this.spawnColor.s,100),this.spawnColor.l=this.setColorAnimation(e.l,this.spawnColor.l,100)),t.color?t.color.value=this.spawnColor:t.color={value:this.spawnColor}}if(!n)return;const a=null!==(o=null===(e=this.shape)||void 0===e?void 0:e.randomPosition(n,r,this.fill))&&void 0!==o?o:n;s.particles.addParticle(a,t)}}setColorAnimation(t,i,e){var o;const s=this.container;if(!t.enable)return i;const n=h(t.offset),r=1e3*l(this.options.rate.delay)/s.retina.reduceFactor;return(i+l(null!==(o=t.speed)&&void 0!==o?o:0)*s.fpsLimit/r+3.6*n)%e}}A=new WeakMap,z=new WeakMap,I=new WeakMap;var W,O=function(t,i,e,o,s){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof i?t!==i||!s:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?s.call(t,e):s?s.value=e:i.set(t,e),e},F=function(t,i,e,o){if("a"===e&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof i?t!==i||!o:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?o:"a"===e?o.call(t):o?o.value:i.get(t)};class q{constructor(t,i){this.container=i,W.set(this,void 0),O(this,W,t,"f"),this.array=[],this.emitters=[],this.interactivityEmitters=[];const e=i;e.getEmitter=t=>void 0===t||"number"==typeof t?this.array[t||0]:this.array.find((i=>i.name===t)),e.addEmitter=(t,i)=>this.addEmitter(t,i),e.removeEmitter=t=>{const i=e.getEmitter(t);i&&this.removeEmitter(i)},e.playEmitter=t=>{const i=e.getEmitter(t);i&&i.externalPlay()},e.pauseEmitter=t=>{const i=e.getEmitter(t);i&&i.externalPause()}}init(t){var i,e;if(!t)return;t.emitters&&(t.emitters instanceof Array?this.emitters=t.emitters.map((t=>{const i=new S;return i.load(t),i})):(this.emitters instanceof Array&&(this.emitters=new S),this.emitters.load(t.emitters)));const o=null===(e=null===(i=t.interactivity)||void 0===i?void 0:i.modes)||void 0===e?void 0:e.emitters;if(o&&(o instanceof Array?this.interactivityEmitters=o.map((t=>{const i=new S;return i.load(t),i})):(this.interactivityEmitters instanceof Array&&(this.interactivityEmitters=new S),this.interactivityEmitters.load(o))),this.emitters instanceof Array)for(const t of this.emitters)this.addEmitter(t);else this.addEmitter(this.emitters)}play(){for(const t of this.array)t.play()}pause(){for(const t of this.array)t.pause()}stop(){this.array=[]}update(t){for(const i of this.array)i.update(t)}handleClickMode(t){const i=this.container,e=this.emitters,o=this.interactivityEmitters;if("emitter"===t){let t;o instanceof Array?o.length>0&&(t=f(o)):t=o;const s=null!=t?t:e instanceof Array?f(e):e,n=i.interactivity.mouse.clickPosition;this.addEmitter(m({},s),n)}}resize(){for(const t of this.array)t.resize()}addEmitter(t,i){const e=new S;e.load(t);const o=new j(F(this,W,"f"),this,this.container,e,i);return this.array.push(o),o}removeEmitter(t){const i=this.array.indexOf(t);i>=0&&this.array.splice(i,1)}}W=new WeakMap;var R,_=function(t,i,e,o,s){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof i?t!==i||!s:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?s.call(t,e):s?s.value=e:i.set(t,e),e};const B=new Map;class V{constructor(t){R.set(this,void 0),_(this,R,t,"f")}addShape(t,i){this.getShape(t)||B.set(t,i)}getShape(t){return B.get(t)}getSupportedShapes(){return B.keys()}}function L(t,i){return t+i*(Math.random()-.5)}R=new WeakMap;class N{randomPosition(t,i,e){if(e)return{x:L(t.x,i.width),y:L(t.y,i.height)};{const e=i.width/2,o=i.height/2,s=Math.floor(4*Math.random()),n=2*(Math.random()-.5);switch(s){case 0:return{x:t.x+n*e,y:t.y-o};case 1:return{x:t.x-e,y:t.y+n*o};case 2:return{x:t.x+n*e,y:t.y+o};case 3:default:return{x:t.x+e,y:t.y+n*o}}}}}var $,G=function(t,i,e,o,s){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof i?t!==i||!s:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?s.call(t,e):s?s.value=e:i.set(t,e),e},U=function(t,i,e,o){if("a"===e&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof i?t!==i||!o:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?o:"a"===e?o.call(t):o?o.value:i.get(t)};class H{constructor(t){$.set(this,void 0),G(this,$,t,"f"),this.id="emitters"}getPlugin(t){return new q(U(this,$,"f"),t)}needsPlugin(t){var i,e,o;if(void 0===t)return!1;const s=t.emitters;return s instanceof Array&&!!s.length||void 0!==s||!!(null===(o=null===(e=null===(i=t.interactivity)||void 0===i?void 0:i.events)||void 0===e?void 0:e.onClick)||void 0===o?void 0:o.mode)&&p("emitter",t.interactivity.events.onClick.mode)}loadOptions(t,i){var e,o;if(!this.needsPlugin(t)&&!this.needsPlugin(i))return;const s=t;if(null==i?void 0:i.emitters)if((null==i?void 0:i.emitters)instanceof Array)s.emitters=null==i?void 0:i.emitters.map((t=>{const i=new S;return i.load(t),i}));else{let t=s.emitters;void 0===(null==t?void 0:t.load)&&(s.emitters=t=new S),t.load(null==i?void 0:i.emitters)}const n=null===(o=null===(e=null==i?void 0:i.interactivity)||void 0===e?void 0:e.modes)||void 0===o?void 0:o.emitters;if(n)if(n instanceof Array)s.interactivity.modes.emitters=n.map((t=>{const i=new S;return i.load(t),i}));else{let t=s.interactivity.modes.emitters;void 0===(null==t?void 0:t.load)&&(s.interactivity.modes.emitters=t=new S),t.load(n)}}}async function J(t){t.emitterShapeManager||(t.emitterShapeManager=new V(t)),t.addEmitterShape||(t.addEmitterShape=(i,e)=>{var o;null===(o=t.emitterShapeManager)||void 0===o||o.addShape(i,e)});const i=new H(t);await t.addPlugin(i),t.addEmitterShape("circle",new e),t.addEmitterShape("square",new N)}return $=new WeakMap,i}()}));
@@ -903,7 +903,7 @@
903
903
  }
904
904
  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;
905
905
  this.applyPath(particle, delta);
906
- const gravityOptions = moveOptions.gravity;
906
+ const gravityOptions = particle.gravity;
907
907
  const gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;
908
908
  if (gravityOptions.enable && moveSpeed) {
909
909
  particle.velocity.y += gravityFactor * (gravityOptions.acceleration * delta.factor) / (60 * moveSpeed);
@@ -917,7 +917,7 @@
917
917
  }
918
918
  const velocity = particle.velocity.mult(moveSpeed);
919
919
  const maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;
920
- if (gravityOptions.enable && gravityOptions.maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {
920
+ if (gravityOptions.enable && maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {
921
921
  velocity.y = gravityFactor * maxSpeed;
922
922
  if (moveSpeed) {
923
923
  particle.velocity.y = velocity.y / moveSpeed;
@@ -1367,10 +1367,7 @@
1367
1367
  const container = this.container;
1368
1368
  const pxRatio = container.retina.pixelRatio;
1369
1369
  const size = container.canvas.size;
1370
- const oldSize = {
1371
- width: size.width,
1372
- height: size.height
1373
- };
1370
+ const oldSize = Object.assign({}, size);
1374
1371
  size.width = this.element.offsetWidth * pxRatio;
1375
1372
  size.height = this.element.offsetHeight * pxRatio;
1376
1373
  this.element.width = size.width;
@@ -1429,7 +1426,7 @@
1429
1426
  const zIndexOptions = particle.options.zIndex;
1430
1427
  const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;
1431
1428
  const radius = particle.getRadius();
1432
- 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;
1429
+ 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;
1433
1430
  const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;
1434
1431
  const zOpacity = opacity * zOpacityFactor;
1435
1432
  const fillColorValue = fColor ? getStyleFromHsl(fColor, zOpacity) : undefined;
@@ -1700,7 +1697,7 @@
1700
1697
  return;
1701
1698
  }
1702
1699
  if (data.count !== undefined) {
1703
- this.count = data.count;
1700
+ this.count = setRangeValue(data.count);
1704
1701
  }
1705
1702
  if (data.enable !== undefined) {
1706
1703
  this.enable = data.enable;
@@ -1709,7 +1706,7 @@
1709
1706
  this.offset = setRangeValue(data.offset);
1710
1707
  }
1711
1708
  if (data.speed !== undefined) {
1712
- this.speed = data.speed;
1709
+ this.speed = setRangeValue(data.speed);
1713
1710
  }
1714
1711
  if (data.sync !== undefined) {
1715
1712
  this.sync = data.sync;
@@ -1857,13 +1854,13 @@
1857
1854
  return;
1858
1855
  }
1859
1856
  if (data.count !== undefined) {
1860
- this.count = data.count;
1857
+ this.count = setRangeValue(data.count);
1861
1858
  }
1862
1859
  if (data.enable !== undefined) {
1863
1860
  this.enable = data.enable;
1864
1861
  }
1865
1862
  if (data.speed !== undefined) {
1866
- this.speed = data.speed;
1863
+ this.speed = setRangeValue(data.speed);
1867
1864
  }
1868
1865
  if (data.sync !== undefined) {
1869
1866
  this.sync = data.sync;
@@ -1883,13 +1880,13 @@
1883
1880
  return;
1884
1881
  }
1885
1882
  if (data.count !== undefined) {
1886
- this.count = data.count;
1883
+ this.count = setRangeValue(data.count);
1887
1884
  }
1888
1885
  if (data.enable !== undefined) {
1889
1886
  this.enable = data.enable;
1890
1887
  }
1891
1888
  if (data.speed !== undefined) {
1892
- this.speed = data.speed;
1889
+ this.speed = setRangeValue(data.speed);
1893
1890
  }
1894
1891
  if (data.sync !== undefined) {
1895
1892
  this.sync = data.sync;
@@ -2061,6 +2058,90 @@
2061
2058
  this.duration.load(data.duration);
2062
2059
  }
2063
2060
  }
2061
+ class Attract_Attract {
2062
+ constructor() {
2063
+ this.distance = 200;
2064
+ this.enable = false;
2065
+ this.rotate = {
2066
+ x: 3e3,
2067
+ y: 3e3
2068
+ };
2069
+ }
2070
+ get rotateX() {
2071
+ return this.rotate.x;
2072
+ }
2073
+ set rotateX(value) {
2074
+ this.rotate.x = value;
2075
+ }
2076
+ get rotateY() {
2077
+ return this.rotate.y;
2078
+ }
2079
+ set rotateY(value) {
2080
+ this.rotate.y = value;
2081
+ }
2082
+ load(data) {
2083
+ var _a, _b, _c, _d;
2084
+ if (!data) {
2085
+ return;
2086
+ }
2087
+ if (data.distance !== undefined) {
2088
+ this.distance = setRangeValue(data.distance);
2089
+ }
2090
+ if (data.enable !== undefined) {
2091
+ this.enable = data.enable;
2092
+ }
2093
+ const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;
2094
+ if (rotateX !== undefined) {
2095
+ this.rotate.x = rotateX;
2096
+ }
2097
+ const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;
2098
+ if (rotateY !== undefined) {
2099
+ this.rotate.y = rotateY;
2100
+ }
2101
+ }
2102
+ }
2103
+ class MoveAngle_MoveAngle {
2104
+ constructor() {
2105
+ this.offset = 0;
2106
+ this.value = 90;
2107
+ }
2108
+ load(data) {
2109
+ if (data === undefined) {
2110
+ return;
2111
+ }
2112
+ if (data.offset !== undefined) {
2113
+ this.offset = setRangeValue(data.offset);
2114
+ }
2115
+ if (data.value !== undefined) {
2116
+ this.value = setRangeValue(data.value);
2117
+ }
2118
+ }
2119
+ }
2120
+ class MoveGravity_MoveGravity {
2121
+ constructor() {
2122
+ this.acceleration = 9.81;
2123
+ this.enable = false;
2124
+ this.inverse = false;
2125
+ this.maxSpeed = 50;
2126
+ }
2127
+ load(data) {
2128
+ if (!data) {
2129
+ return;
2130
+ }
2131
+ if (data.acceleration !== undefined) {
2132
+ this.acceleration = setRangeValue(data.acceleration);
2133
+ }
2134
+ if (data.enable !== undefined) {
2135
+ this.enable = data.enable;
2136
+ }
2137
+ if (data.inverse !== undefined) {
2138
+ this.inverse = data.inverse;
2139
+ }
2140
+ if (data.maxSpeed !== undefined) {
2141
+ this.maxSpeed = setRangeValue(data.maxSpeed);
2142
+ }
2143
+ }
2144
+ }
2064
2145
  class PathDelay_PathDelay extends(null && ValueWithRandom){
2065
2146
  constructor() {
2066
2147
  super();
@@ -2222,6 +2303,70 @@
2222
2303
  }
2223
2304
  }
2224
2305
  }
2306
+ class AnimationOptions_AnimationOptions {
2307
+ constructor() {
2308
+ this.count = 0;
2309
+ this.enable = false;
2310
+ this.speed = 1;
2311
+ this.sync = false;
2312
+ }
2313
+ load(data) {
2314
+ if (!data) {
2315
+ return;
2316
+ }
2317
+ if (data.count !== undefined) {
2318
+ this.count = setRangeValue(data.count);
2319
+ }
2320
+ if (data.enable !== undefined) {
2321
+ this.enable = data.enable;
2322
+ }
2323
+ if (data.speed !== undefined) {
2324
+ this.speed = setRangeValue(data.speed);
2325
+ }
2326
+ if (data.sync !== undefined) {
2327
+ this.sync = data.sync;
2328
+ }
2329
+ }
2330
+ }
2331
+ class OpacityAnimation_OpacityAnimation extends(null && AnimationOptions){
2332
+ constructor() {
2333
+ super();
2334
+ this.destroy = "none";
2335
+ this.enable = false;
2336
+ this.speed = 2;
2337
+ this.startValue = "random";
2338
+ this.sync = false;
2339
+ }
2340
+ get opacity_min() {
2341
+ return this.minimumValue;
2342
+ }
2343
+ set opacity_min(value) {
2344
+ this.minimumValue = value;
2345
+ }
2346
+ load(data) {
2347
+ var _a;
2348
+ if (data === undefined) {
2349
+ return;
2350
+ }
2351
+ super.load(data);
2352
+ if (data.destroy !== undefined) {
2353
+ this.destroy = data.destroy;
2354
+ }
2355
+ if (data.enable !== undefined) {
2356
+ this.enable = data.enable;
2357
+ }
2358
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;
2359
+ if (data.speed !== undefined) {
2360
+ this.speed = data.speed;
2361
+ }
2362
+ if (data.startValue !== undefined) {
2363
+ this.startValue = data.startValue;
2364
+ }
2365
+ if (data.sync !== undefined) {
2366
+ this.sync = data.sync;
2367
+ }
2368
+ }
2369
+ }
2225
2370
  class Opacity_Opacity extends(null && ValueWithRandom){
2226
2371
  constructor() {
2227
2372
  super();
@@ -2280,13 +2425,13 @@
2280
2425
  this.enable = data.enable;
2281
2426
  }
2282
2427
  if (data.opacity !== undefined) {
2283
- this.opacity = data.opacity;
2428
+ this.opacity = setRangeValue(data.opacity);
2284
2429
  }
2285
2430
  if (data.width !== undefined) {
2286
- this.width = data.width;
2431
+ this.width = setRangeValue(data.width);
2287
2432
  }
2288
2433
  if (data.radius !== undefined) {
2289
- this.radius = data.radius;
2434
+ this.radius = setRangeValue(data.radius);
2290
2435
  }
2291
2436
  if (data.color !== undefined) {
2292
2437
  this.color = OptionsColor.create(this.color, data.color);
@@ -2311,16 +2456,33 @@
2311
2456
  this.enabled = data.enabled;
2312
2457
  }
2313
2458
  if (data.distance !== undefined) {
2314
- this.distance = data.distance;
2459
+ this.distance = setRangeValue(data.distance);
2315
2460
  }
2316
2461
  if (data.duration !== undefined) {
2317
- this.duration = data.duration;
2462
+ this.duration = setRangeValue(data.duration);
2318
2463
  }
2319
2464
  if (data.factor !== undefined) {
2320
- this.factor = data.factor;
2465
+ this.factor = setRangeValue(data.factor);
2321
2466
  }
2322
2467
  if (data.speed !== undefined) {
2323
- this.speed = data.speed;
2468
+ this.speed = setRangeValue(data.speed);
2469
+ }
2470
+ }
2471
+ }
2472
+ class RollLight_RollLight {
2473
+ constructor() {
2474
+ this.enable = false;
2475
+ this.value = 0;
2476
+ }
2477
+ load(data) {
2478
+ if (!data) {
2479
+ return;
2480
+ }
2481
+ if (data.enable !== undefined) {
2482
+ this.enable = data.enable;
2483
+ }
2484
+ if (data.value !== undefined) {
2485
+ this.value = setRangeValue(data.value);
2324
2486
  }
2325
2487
  }
2326
2488
  }
@@ -2352,6 +2514,27 @@
2352
2514
  }
2353
2515
  }
2354
2516
  }
2517
+ class RotateAnimation_RotateAnimation {
2518
+ constructor() {
2519
+ this.enable = false;
2520
+ this.speed = 0;
2521
+ this.sync = false;
2522
+ }
2523
+ load(data) {
2524
+ if (data === undefined) {
2525
+ return;
2526
+ }
2527
+ if (data.enable !== undefined) {
2528
+ this.enable = data.enable;
2529
+ }
2530
+ if (data.speed !== undefined) {
2531
+ this.speed = setRangeValue(data.speed);
2532
+ }
2533
+ if (data.sync !== undefined) {
2534
+ this.sync = data.sync;
2535
+ }
2536
+ }
2537
+ }
2355
2538
  class Rotate_Rotate extends(null && ValueWithRandom){
2356
2539
  constructor() {
2357
2540
  super();
@@ -2470,6 +2653,45 @@
2470
2653
  }
2471
2654
  }
2472
2655
  }
2656
+ class SizeAnimation_SizeAnimation extends(null && AnimationOptions){
2657
+ constructor() {
2658
+ super();
2659
+ this.destroy = "none";
2660
+ this.enable = false;
2661
+ this.speed = 5;
2662
+ this.startValue = "random";
2663
+ this.sync = false;
2664
+ }
2665
+ get size_min() {
2666
+ return this.minimumValue;
2667
+ }
2668
+ set size_min(value) {
2669
+ this.minimumValue = value;
2670
+ }
2671
+ load(data) {
2672
+ var _a;
2673
+ if (data === undefined) {
2674
+ return;
2675
+ }
2676
+ super.load(data);
2677
+ if (data.destroy !== undefined) {
2678
+ this.destroy = data.destroy;
2679
+ }
2680
+ if (data.enable !== undefined) {
2681
+ this.enable = data.enable;
2682
+ }
2683
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;
2684
+ if (data.speed !== undefined) {
2685
+ this.speed = data.speed;
2686
+ }
2687
+ if (data.startValue !== undefined) {
2688
+ this.startValue = data.startValue;
2689
+ }
2690
+ if (data.sync !== undefined) {
2691
+ this.sync = data.sync;
2692
+ }
2693
+ }
2694
+ }
2473
2695
  class Size_Size extends(null && ValueWithRandom){
2474
2696
  constructor() {
2475
2697
  super();
@@ -2515,6 +2737,27 @@
2515
2737
  }
2516
2738
  }
2517
2739
  }
2740
+ class TiltAnimation_TiltAnimation {
2741
+ constructor() {
2742
+ this.enable = false;
2743
+ this.speed = 0;
2744
+ this.sync = false;
2745
+ }
2746
+ load(data) {
2747
+ if (data === undefined) {
2748
+ return;
2749
+ }
2750
+ if (data.enable !== undefined) {
2751
+ this.enable = data.enable;
2752
+ }
2753
+ if (data.speed !== undefined) {
2754
+ this.speed = setRangeValue(data.speed);
2755
+ }
2756
+ if (data.sync !== undefined) {
2757
+ this.sync = data.sync;
2758
+ }
2759
+ }
2760
+ }
2518
2761
  class Tilt_Tilt extends(null && ValueWithRandom){
2519
2762
  constructor() {
2520
2763
  super();
@@ -2537,6 +2780,43 @@
2537
2780
  }
2538
2781
  }
2539
2782
  }
2783
+ class TwinkleValues_TwinkleValues {
2784
+ constructor() {
2785
+ this.enable = false;
2786
+ this.frequency = .05;
2787
+ this.opacity = 1;
2788
+ }
2789
+ load(data) {
2790
+ if (data === undefined) {
2791
+ return;
2792
+ }
2793
+ if (data.color !== undefined) {
2794
+ this.color = OptionsColor.create(this.color, data.color);
2795
+ }
2796
+ if (data.enable !== undefined) {
2797
+ this.enable = data.enable;
2798
+ }
2799
+ if (data.frequency !== undefined) {
2800
+ this.frequency = data.frequency;
2801
+ }
2802
+ if (data.opacity !== undefined) {
2803
+ this.opacity = setRangeValue(data.opacity);
2804
+ }
2805
+ }
2806
+ }
2807
+ class Twinkle_Twinkle {
2808
+ constructor() {
2809
+ this.lines = new TwinkleValues;
2810
+ this.particles = new TwinkleValues;
2811
+ }
2812
+ load(data) {
2813
+ if (data === undefined) {
2814
+ return;
2815
+ }
2816
+ this.lines.load(data.lines);
2817
+ this.particles.load(data.particles);
2818
+ }
2819
+ }
2540
2820
  class Wobble_Wobble {
2541
2821
  constructor() {
2542
2822
  this.distance = 5;
@@ -2934,6 +3214,7 @@
2934
3214
  this.retina = {
2935
3215
  maxDistance: {}
2936
3216
  };
3217
+ this.ignoresResizeRatio = true;
2937
3218
  const pxRatio = container.retina.pixelRatio;
2938
3219
  const mainOptions = container.actualOptions;
2939
3220
  const particlesOptions = new ParticlesOptions;
@@ -2973,7 +3254,7 @@
2973
3254
  max: getRangeMax(sizeRange) * pxRatio,
2974
3255
  min: getRangeMin(sizeRange) * pxRatio,
2975
3256
  loops: 0,
2976
- maxLoops: sizeOptions.animation.count
3257
+ maxLoops: getRangeValue(sizeOptions.animation.count)
2977
3258
  };
2978
3259
  const sizeAnimation = sizeOptions.animation;
2979
3260
  if (sizeAnimation.enable) {
@@ -3007,6 +3288,12 @@
3007
3288
  this.initialVelocity = this.calculateVelocity();
3008
3289
  this.velocity = this.initialVelocity.copy();
3009
3290
  this.moveDecay = 1 - getRangeValue(this.options.move.decay);
3291
+ const gravityOptions = this.options.move.gravity;
3292
+ this.gravity = {
3293
+ enable: gravityOptions.enable,
3294
+ acceleration: getRangeValue(gravityOptions.acceleration),
3295
+ inverse: gravityOptions.inverse
3296
+ };
3010
3297
  this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));
3011
3298
  this.initialPosition = this.position.copy();
3012
3299
  this.offset = Vector.origin;
@@ -3214,12 +3501,7 @@
3214
3501
  return overlaps;
3215
3502
  }
3216
3503
  calculateVelocity() {
3217
- const baseVelocity = getParticleBaseVelocity(this.direction);
3218
- const res = baseVelocity.copy();
3219
- const moveOptions = this.options.move;
3220
- const rad = Math.PI / 180 * moveOptions.angle.value;
3221
- const radOffset = Math.PI / 180 * moveOptions.angle.offset;
3222
- const range = {
3504
+ 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 = {
3223
3505
  left: radOffset - rad / 2,
3224
3506
  right: radOffset + rad / 2
3225
3507
  };
@@ -3369,10 +3651,11 @@
3369
3651
  }
3370
3652
  for (const particle of this.array) {
3371
3653
  const resizeFactor = container.canvas.resizeFactor;
3372
- if (resizeFactor) {
3654
+ if (resizeFactor && !particle.ignoresResizeRatio) {
3373
3655
  particle.position.x *= resizeFactor.width;
3374
3656
  particle.position.y *= resizeFactor.height;
3375
3657
  }
3658
+ particle.ignoresResizeRatio = false;
3376
3659
  particle.bubble.inRange = false;
3377
3660
  for (const [, plugin] of this.container.plugins) {
3378
3661
  if (particle.destroyed) {
@@ -3608,13 +3891,13 @@
3608
3891
  container.canvas.size.height = element.offsetHeight * ratio;
3609
3892
  }
3610
3893
  const particles = options.particles;
3611
- this.attractDistance = particles.move.attract.distance * ratio;
3894
+ this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;
3612
3895
  this.linksDistance = particles.links.distance * ratio;
3613
3896
  this.linksWidth = particles.links.width * ratio;
3614
- this.sizeAnimationSpeed = particles.size.animation.speed * ratio;
3615
- this.maxSpeed = particles.move.gravity.maxSpeed * ratio;
3897
+ this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;
3898
+ this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;
3616
3899
  if (particles.orbit.radius !== undefined) {
3617
- this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;
3900
+ this.orbitRadius = getRangeValue(particles.orbit.radius) * this.container.retina.pixelRatio;
3618
3901
  }
3619
3902
  const modes = options.interactivity.modes;
3620
3903
  this.connectModeDistance = modes.connect.distance * ratio;
@@ -3634,19 +3917,19 @@
3634
3917
  const ratio = this.pixelRatio;
3635
3918
  const moveDistance = options.move.distance;
3636
3919
  const props = particle.retina;
3637
- props.attractDistance = options.move.attract.distance * ratio;
3920
+ props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;
3638
3921
  props.linksDistance = options.links.distance * ratio;
3639
3922
  props.linksWidth = options.links.width * ratio;
3640
3923
  props.moveDrift = getRangeValue(options.move.drift) * ratio;
3641
3924
  props.moveSpeed = getRangeValue(options.move.speed) * ratio;
3642
- props.sizeAnimationSpeed = options.size.animation.speed * ratio;
3925
+ props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;
3643
3926
  if (particle.spin) {
3644
3927
  props.spinAcceleration = getRangeValue(options.move.spin.acceleration) * ratio;
3645
3928
  }
3646
3929
  const maxDistance = props.maxDistance;
3647
3930
  maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;
3648
3931
  maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;
3649
- props.maxSpeed = options.move.gravity.maxSpeed * ratio;
3932
+ props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;
3650
3933
  }
3651
3934
  handleMotionChange(mediaQuery) {
3652
3935
  const options = this.container.actualOptions;
@@ -4978,7 +5261,7 @@
4978
5261
  function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
4979
5262
  colorValue.enable = colorAnimation.enable;
4980
5263
  if (colorValue.enable) {
4981
- colorValue.velocity = colorAnimation.speed / 100 * reduceFactor;
5264
+ colorValue.velocity = getRangeValue(colorAnimation.speed) / 100 * reduceFactor;
4982
5265
  if (colorAnimation.sync) {
4983
5266
  return;
4984
5267
  }