tsparticles 1.41.6 → 1.42.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/Core/Canvas.d.ts +1 -1
  2. package/Core/Canvas.js +8 -4
  3. package/Core/Interfaces/ICoordinates.d.ts +8 -0
  4. package/Core/Interfaces/IParticleGravity.d.ts +5 -0
  5. package/Core/Interfaces/IParticleGravity.js +2 -0
  6. package/Core/Interfaces/index.d.ts +1 -0
  7. package/Core/Interfaces/index.js +1 -0
  8. package/Core/Particle.d.ts +2 -1
  9. package/Core/Particle.js +8 -7
  10. package/Core/Retina.js +7 -7
  11. package/Core/Utils/ParticlesMover.js +2 -2
  12. package/Interactions/Particles/Links/LinkInstance.js +1 -1
  13. package/Options/Classes/AnimatableGradient.d.ts +4 -4
  14. package/Options/Classes/AnimatableGradient.js +4 -4
  15. package/Options/Classes/AnimationOptions.d.ts +5 -5
  16. package/Options/Classes/AnimationOptions.js +3 -2
  17. package/Options/Classes/ColorAnimation.d.ts +2 -2
  18. package/Options/Classes/ColorAnimation.js +2 -2
  19. package/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  20. package/Options/Classes/Particles/Move/Attract.js +2 -1
  21. package/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  22. package/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  23. package/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  24. package/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  25. package/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  26. package/Options/Classes/Particles/Orbit/Orbit.js +4 -3
  27. package/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  28. package/Options/Classes/Particles/Repulse/Repulse.js +5 -4
  29. package/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  30. package/Options/Classes/Particles/Roll/RollLight.js +2 -1
  31. package/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  32. package/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
  33. package/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  34. package/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
  35. package/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  36. package/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
  37. package/Options/Interfaces/IAnimation.d.ts +3 -2
  38. package/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  39. package/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  40. package/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  41. package/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  42. package/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  43. package/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  44. package/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  45. package/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  46. package/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  47. package/Plugins/Absorbers/AbsorberInstance.js +1 -1
  48. package/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  49. package/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
  50. package/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  51. package/Plugins/Emitters/EmitterInstance.js +3 -3
  52. package/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  53. package/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
  54. package/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  55. package/Updaters/Angle/AngleUpdater.js +2 -1
  56. package/Updaters/Opacity/OpacityUpdater.js +3 -2
  57. package/Updaters/Roll/RollUpdater.js +3 -3
  58. package/Updaters/Tilt/TiltUpdater.js +1 -1
  59. package/Utils/ColorUtils.js +1 -1
  60. package/browser/Core/Canvas.d.ts +1 -1
  61. package/browser/Core/Canvas.js +9 -5
  62. package/browser/Core/Interfaces/ICoordinates.d.ts +8 -0
  63. package/browser/Core/Interfaces/IParticleGravity.d.ts +5 -0
  64. package/browser/Core/Interfaces/IParticleGravity.js +1 -0
  65. package/browser/Core/Interfaces/index.d.ts +1 -0
  66. package/browser/Core/Interfaces/index.js +1 -0
  67. package/browser/Core/Particle.d.ts +2 -1
  68. package/browser/Core/Particle.js +8 -7
  69. package/browser/Core/Retina.js +7 -7
  70. package/browser/Core/Utils/ParticlesMover.js +2 -2
  71. package/browser/Interactions/Particles/Links/LinkInstance.js +2 -2
  72. package/browser/Options/Classes/AnimatableGradient.d.ts +4 -4
  73. package/browser/Options/Classes/AnimatableGradient.js +4 -4
  74. package/browser/Options/Classes/AnimationOptions.d.ts +5 -5
  75. package/browser/Options/Classes/AnimationOptions.js +3 -2
  76. package/browser/Options/Classes/ColorAnimation.d.ts +2 -2
  77. package/browser/Options/Classes/ColorAnimation.js +2 -2
  78. package/browser/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  79. package/browser/Options/Classes/Particles/Move/Attract.js +2 -1
  80. package/browser/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  81. package/browser/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  82. package/browser/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  83. package/browser/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  84. package/browser/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  85. package/browser/Options/Classes/Particles/Orbit/Orbit.js +4 -3
  86. package/browser/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  87. package/browser/Options/Classes/Particles/Repulse/Repulse.js +5 -4
  88. package/browser/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  89. package/browser/Options/Classes/Particles/Roll/RollLight.js +2 -1
  90. package/browser/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  91. package/browser/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
  92. package/browser/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  93. package/browser/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
  94. package/browser/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  95. package/browser/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
  96. package/browser/Options/Interfaces/IAnimation.d.ts +3 -2
  97. package/browser/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  98. package/browser/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  99. package/browser/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  100. package/browser/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  101. package/browser/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  102. package/browser/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  103. package/browser/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  104. package/browser/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  105. package/browser/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  106. package/browser/Plugins/Absorbers/AbsorberInstance.js +1 -1
  107. package/browser/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  108. package/browser/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
  109. package/browser/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  110. package/browser/Plugins/Emitters/EmitterInstance.js +3 -3
  111. package/browser/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  112. package/browser/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
  113. package/browser/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  114. package/browser/Updaters/Angle/AngleUpdater.js +2 -1
  115. package/browser/Updaters/Opacity/OpacityUpdater.js +3 -2
  116. package/browser/Updaters/Roll/RollUpdater.js +3 -3
  117. package/browser/Updaters/Tilt/TiltUpdater.js +1 -1
  118. package/browser/Utils/ColorUtils.js +2 -2
  119. package/esm/Core/Canvas.d.ts +1 -1
  120. package/esm/Core/Canvas.js +9 -5
  121. package/esm/Core/Interfaces/ICoordinates.d.ts +8 -0
  122. package/esm/Core/Interfaces/IParticleGravity.d.ts +5 -0
  123. package/esm/Core/Interfaces/IParticleGravity.js +1 -0
  124. package/esm/Core/Interfaces/index.d.ts +1 -0
  125. package/esm/Core/Interfaces/index.js +1 -0
  126. package/esm/Core/Particle.d.ts +2 -1
  127. package/esm/Core/Particle.js +8 -7
  128. package/esm/Core/Retina.js +7 -7
  129. package/esm/Core/Utils/ParticlesMover.js +2 -2
  130. package/esm/Interactions/Particles/Links/LinkInstance.js +2 -2
  131. package/esm/Options/Classes/AnimatableGradient.d.ts +4 -4
  132. package/esm/Options/Classes/AnimatableGradient.js +4 -4
  133. package/esm/Options/Classes/AnimationOptions.d.ts +5 -5
  134. package/esm/Options/Classes/AnimationOptions.js +3 -2
  135. package/esm/Options/Classes/ColorAnimation.d.ts +2 -2
  136. package/esm/Options/Classes/ColorAnimation.js +2 -2
  137. package/esm/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  138. package/esm/Options/Classes/Particles/Move/Attract.js +2 -1
  139. package/esm/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  140. package/esm/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  141. package/esm/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  142. package/esm/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  143. package/esm/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  144. package/esm/Options/Classes/Particles/Orbit/Orbit.js +4 -3
  145. package/esm/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  146. package/esm/Options/Classes/Particles/Repulse/Repulse.js +5 -4
  147. package/esm/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  148. package/esm/Options/Classes/Particles/Roll/RollLight.js +2 -1
  149. package/esm/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  150. package/esm/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
  151. package/esm/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  152. package/esm/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
  153. package/esm/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  154. package/esm/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
  155. package/esm/Options/Interfaces/IAnimation.d.ts +3 -2
  156. package/esm/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  157. package/esm/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  158. package/esm/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  159. package/esm/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  160. package/esm/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  161. package/esm/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  162. package/esm/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  163. package/esm/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  164. package/esm/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  165. package/esm/Plugins/Absorbers/AbsorberInstance.js +1 -1
  166. package/esm/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  167. package/esm/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
  168. package/esm/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  169. package/esm/Plugins/Emitters/EmitterInstance.js +3 -3
  170. package/esm/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  171. package/esm/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
  172. package/esm/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  173. package/esm/Updaters/Angle/AngleUpdater.js +2 -1
  174. package/esm/Updaters/Opacity/OpacityUpdater.js +3 -2
  175. package/esm/Updaters/Roll/RollUpdater.js +3 -3
  176. package/esm/Updaters/Tilt/TiltUpdater.js +1 -1
  177. package/esm/Utils/ColorUtils.js +2 -2
  178. package/package.json +15 -3
  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 +48 -45
  183. package/tsparticles.engine.min.js +2 -2
  184. package/tsparticles.interaction.external.attract.js +320 -34
  185. package/tsparticles.interaction.external.attract.min.js +1 -1
  186. package/tsparticles.interaction.external.bounce.js +320 -34
  187. package/tsparticles.interaction.external.bounce.min.js +1 -1
  188. package/tsparticles.interaction.external.bubble.js +320 -34
  189. package/tsparticles.interaction.external.bubble.min.js +1 -1
  190. package/tsparticles.interaction.external.connect.js +320 -34
  191. package/tsparticles.interaction.external.connect.min.js +1 -1
  192. package/tsparticles.interaction.external.grab.js +320 -34
  193. package/tsparticles.interaction.external.grab.min.js +1 -1
  194. package/tsparticles.interaction.external.repulse.js +320 -34
  195. package/tsparticles.interaction.external.repulse.min.js +1 -1
  196. package/tsparticles.interaction.external.trail.js +320 -34
  197. package/tsparticles.interaction.external.trail.min.js +1 -1
  198. package/tsparticles.interaction.particles.attract.js +320 -34
  199. package/tsparticles.interaction.particles.attract.min.js +1 -1
  200. package/tsparticles.interaction.particles.collisions.js +320 -34
  201. package/tsparticles.interaction.particles.collisions.min.js +1 -1
  202. package/tsparticles.interaction.particles.links.js +321 -35
  203. package/tsparticles.interaction.particles.links.min.js +2 -2
  204. package/tsparticles.js +74 -65
  205. package/tsparticles.min.js +2 -2
  206. package/tsparticles.pathseg.min.js +1 -1
  207. package/tsparticles.plugins.absorbers.js +328 -39
  208. package/tsparticles.plugins.absorbers.min.js +2 -2
  209. package/tsparticles.plugins.emitters.js +431 -142
  210. package/tsparticles.plugins.emitters.min.js +2 -2
  211. package/tsparticles.plugins.polygonMask.js +320 -34
  212. package/tsparticles.plugins.polygonMask.min.js +1 -1
  213. package/tsparticles.shape.circle.min.js +1 -1
  214. package/tsparticles.shape.image.js +320 -34
  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 +320 -34
  221. package/tsparticles.shape.text.min.js +1 -1
  222. package/tsparticles.slim.js +52 -49
  223. package/tsparticles.slim.min.js +2 -2
  224. package/tsparticles.updater.angle.js +321 -35
  225. package/tsparticles.updater.angle.min.js +2 -2
  226. package/tsparticles.updater.color.js +320 -34
  227. package/tsparticles.updater.color.min.js +2 -2
  228. package/tsparticles.updater.life.js +320 -34
  229. package/tsparticles.updater.life.min.js +1 -1
  230. package/tsparticles.updater.opacity.js +322 -36
  231. package/tsparticles.updater.opacity.min.js +2 -2
  232. package/tsparticles.updater.outModes.js +320 -34
  233. package/tsparticles.updater.outModes.min.js +1 -1
  234. package/tsparticles.updater.roll.js +323 -37
  235. package/tsparticles.updater.roll.min.js +2 -2
  236. package/tsparticles.updater.size.js +320 -34
  237. package/tsparticles.updater.size.min.js +1 -1
  238. package/tsparticles.updater.strokeColor.js +320 -34
  239. package/tsparticles.updater.strokeColor.min.js +2 -2
  240. package/tsparticles.updater.tilt.js +321 -35
  241. package/tsparticles.updater.tilt.min.js +2 -2
  242. package/tsparticles.updater.wobble.js +320 -34
  243. package/tsparticles.updater.wobble.min.js +1 -1
  244. package/umd/Core/Canvas.d.ts +1 -1
  245. package/umd/Core/Canvas.js +8 -4
  246. package/umd/Core/Interfaces/ICoordinates.d.ts +8 -0
  247. package/umd/Core/Interfaces/IParticleGravity.d.ts +5 -0
  248. package/umd/Core/Interfaces/IParticleGravity.js +12 -0
  249. package/umd/Core/Interfaces/index.d.ts +1 -0
  250. package/umd/Core/Interfaces/index.js +2 -1
  251. package/umd/Core/Particle.d.ts +2 -1
  252. package/umd/Core/Particle.js +8 -7
  253. package/umd/Core/Retina.js +7 -7
  254. package/umd/Core/Utils/ParticlesMover.js +2 -2
  255. package/umd/Interactions/Particles/Links/LinkInstance.js +1 -1
  256. package/umd/Options/Classes/AnimatableGradient.d.ts +4 -4
  257. package/umd/Options/Classes/AnimatableGradient.js +4 -4
  258. package/umd/Options/Classes/AnimationOptions.d.ts +5 -5
  259. package/umd/Options/Classes/AnimationOptions.js +4 -3
  260. package/umd/Options/Classes/ColorAnimation.d.ts +2 -2
  261. package/umd/Options/Classes/ColorAnimation.js +2 -2
  262. package/umd/Options/Classes/Particles/Move/Attract.d.ts +2 -2
  263. package/umd/Options/Classes/Particles/Move/Attract.js +3 -2
  264. package/umd/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
  265. package/umd/Options/Classes/Particles/Move/MoveAngle.js +4 -3
  266. package/umd/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
  267. package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -3
  268. package/umd/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
  269. package/umd/Options/Classes/Particles/Orbit/Orbit.js +5 -4
  270. package/umd/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
  271. package/umd/Options/Classes/Particles/Repulse/Repulse.js +6 -5
  272. package/umd/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
  273. package/umd/Options/Classes/Particles/Roll/RollLight.js +3 -2
  274. package/umd/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
  275. package/umd/Options/Classes/Particles/Rotate/RotateAnimation.js +3 -2
  276. package/umd/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
  277. package/umd/Options/Classes/Particles/Tilt/TiltAnimation.js +3 -2
  278. package/umd/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
  279. package/umd/Options/Classes/Particles/Twinkle/TwinkleValues.js +3 -2
  280. package/umd/Options/Interfaces/IAnimation.d.ts +3 -2
  281. package/umd/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
  282. package/umd/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
  283. package/umd/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
  284. package/umd/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
  285. package/umd/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
  286. package/umd/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
  287. package/umd/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
  288. package/umd/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
  289. package/umd/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
  290. package/umd/Plugins/Absorbers/AbsorberInstance.js +1 -1
  291. package/umd/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
  292. package/umd/Plugins/Absorbers/Options/Classes/Absorber.js +9 -5
  293. package/umd/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
  294. package/umd/Plugins/Emitters/EmitterInstance.js +3 -3
  295. package/umd/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
  296. package/umd/Plugins/Emitters/Options/Classes/Emitter.js +9 -6
  297. package/umd/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
  298. package/umd/Updaters/Angle/AngleUpdater.js +2 -1
  299. package/umd/Updaters/Opacity/OpacityUpdater.js +3 -2
  300. package/umd/Updaters/Roll/RollUpdater.js +3 -3
  301. package/umd/Updaters/Tilt/TiltUpdater.js +1 -1
  302. package/umd/Utils/ColorUtils.js +1 -1
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.41.6 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 p(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 f(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 f(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=p(o,t,i.h+1/3),e.g=p(o,t,i.h),e.b=p(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 P extends M{constructor(){super(),this.animation=new E}static create(t,e){const i=new P;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 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=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 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=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 P),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,p;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.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 f=u({},this.options.particles);null!=f||(f={}),null!==(h=f.move)&&void 0!==h||(f.move={}),null!==(l=(p=f.move).direction)&&void 0!==l||(p.direction=this.options.direction),this.options.spawnColor&&(this.spawnColor=m(this.options.spawnColor)),this.paused=!this.options.autoPlay,this.particlesOptions=f,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=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.2 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={},void 0!==t.position.x&&(this.position.x=u(t.position.x)),void 0!==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;
@@ -1322,9 +1322,9 @@
1322
1322
  paint() {
1323
1323
  const options = this.container.actualOptions;
1324
1324
  this.draw((ctx => {
1325
- if (options.backgroundMask.enable && options.backgroundMask.cover && this.coverColor) {
1325
+ if (options.backgroundMask.enable && options.backgroundMask.cover) {
1326
1326
  clear(ctx, this.size);
1327
- this.paintBase(getStyleFromRgb(this.coverColor, this.coverColor.a));
1327
+ this.paintBase(this.coverColorStyle);
1328
1328
  } else {
1329
1329
  this.paintBase();
1330
1330
  }
@@ -1426,7 +1426,7 @@
1426
1426
  const zIndexOptions = particle.options.zIndex;
1427
1427
  const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;
1428
1428
  const radius = particle.getRadius();
1429
- 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;
1430
1430
  const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;
1431
1431
  const zOpacity = opacity * zOpacityFactor;
1432
1432
  const fillColorValue = fColor ? getStyleFromHsl(fColor, zOpacity) : undefined;
@@ -1495,12 +1495,14 @@
1495
1495
  const color = cover.color;
1496
1496
  const coverRgb = colorToRgb(color);
1497
1497
  if (coverRgb) {
1498
- this.coverColor = {
1498
+ const coverColor = {
1499
1499
  r: coverRgb.r,
1500
1500
  g: coverRgb.g,
1501
1501
  b: coverRgb.b,
1502
1502
  a: cover.opacity
1503
1503
  };
1504
+ this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
1505
+ console.log(this.coverColorStyle);
1504
1506
  }
1505
1507
  }
1506
1508
  initTrail() {
@@ -1697,7 +1699,7 @@
1697
1699
  return;
1698
1700
  }
1699
1701
  if (data.count !== undefined) {
1700
- this.count = data.count;
1702
+ this.count = setRangeValue(data.count);
1701
1703
  }
1702
1704
  if (data.enable !== undefined) {
1703
1705
  this.enable = data.enable;
@@ -1706,7 +1708,7 @@
1706
1708
  this.offset = setRangeValue(data.offset);
1707
1709
  }
1708
1710
  if (data.speed !== undefined) {
1709
- this.speed = data.speed;
1711
+ this.speed = setRangeValue(data.speed);
1710
1712
  }
1711
1713
  if (data.sync !== undefined) {
1712
1714
  this.sync = data.sync;
@@ -1854,13 +1856,13 @@
1854
1856
  return;
1855
1857
  }
1856
1858
  if (data.count !== undefined) {
1857
- this.count = data.count;
1859
+ this.count = setRangeValue(data.count);
1858
1860
  }
1859
1861
  if (data.enable !== undefined) {
1860
1862
  this.enable = data.enable;
1861
1863
  }
1862
1864
  if (data.speed !== undefined) {
1863
- this.speed = data.speed;
1865
+ this.speed = setRangeValue(data.speed);
1864
1866
  }
1865
1867
  if (data.sync !== undefined) {
1866
1868
  this.sync = data.sync;
@@ -1880,13 +1882,13 @@
1880
1882
  return;
1881
1883
  }
1882
1884
  if (data.count !== undefined) {
1883
- this.count = data.count;
1885
+ this.count = setRangeValue(data.count);
1884
1886
  }
1885
1887
  if (data.enable !== undefined) {
1886
1888
  this.enable = data.enable;
1887
1889
  }
1888
1890
  if (data.speed !== undefined) {
1889
- this.speed = data.speed;
1891
+ this.speed = setRangeValue(data.speed);
1890
1892
  }
1891
1893
  if (data.sync !== undefined) {
1892
1894
  this.sync = data.sync;
@@ -2058,6 +2060,90 @@
2058
2060
  this.duration.load(data.duration);
2059
2061
  }
2060
2062
  }
2063
+ class Attract_Attract {
2064
+ constructor() {
2065
+ this.distance = 200;
2066
+ this.enable = false;
2067
+ this.rotate = {
2068
+ x: 3e3,
2069
+ y: 3e3
2070
+ };
2071
+ }
2072
+ get rotateX() {
2073
+ return this.rotate.x;
2074
+ }
2075
+ set rotateX(value) {
2076
+ this.rotate.x = value;
2077
+ }
2078
+ get rotateY() {
2079
+ return this.rotate.y;
2080
+ }
2081
+ set rotateY(value) {
2082
+ this.rotate.y = value;
2083
+ }
2084
+ load(data) {
2085
+ var _a, _b, _c, _d;
2086
+ if (!data) {
2087
+ return;
2088
+ }
2089
+ if (data.distance !== undefined) {
2090
+ this.distance = setRangeValue(data.distance);
2091
+ }
2092
+ if (data.enable !== undefined) {
2093
+ this.enable = data.enable;
2094
+ }
2095
+ const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;
2096
+ if (rotateX !== undefined) {
2097
+ this.rotate.x = rotateX;
2098
+ }
2099
+ const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;
2100
+ if (rotateY !== undefined) {
2101
+ this.rotate.y = rotateY;
2102
+ }
2103
+ }
2104
+ }
2105
+ class MoveAngle_MoveAngle {
2106
+ constructor() {
2107
+ this.offset = 0;
2108
+ this.value = 90;
2109
+ }
2110
+ load(data) {
2111
+ if (data === undefined) {
2112
+ return;
2113
+ }
2114
+ if (data.offset !== undefined) {
2115
+ this.offset = setRangeValue(data.offset);
2116
+ }
2117
+ if (data.value !== undefined) {
2118
+ this.value = setRangeValue(data.value);
2119
+ }
2120
+ }
2121
+ }
2122
+ class MoveGravity_MoveGravity {
2123
+ constructor() {
2124
+ this.acceleration = 9.81;
2125
+ this.enable = false;
2126
+ this.inverse = false;
2127
+ this.maxSpeed = 50;
2128
+ }
2129
+ load(data) {
2130
+ if (!data) {
2131
+ return;
2132
+ }
2133
+ if (data.acceleration !== undefined) {
2134
+ this.acceleration = setRangeValue(data.acceleration);
2135
+ }
2136
+ if (data.enable !== undefined) {
2137
+ this.enable = data.enable;
2138
+ }
2139
+ if (data.inverse !== undefined) {
2140
+ this.inverse = data.inverse;
2141
+ }
2142
+ if (data.maxSpeed !== undefined) {
2143
+ this.maxSpeed = setRangeValue(data.maxSpeed);
2144
+ }
2145
+ }
2146
+ }
2061
2147
  class PathDelay_PathDelay extends(null && ValueWithRandom){
2062
2148
  constructor() {
2063
2149
  super();
@@ -2219,6 +2305,70 @@
2219
2305
  }
2220
2306
  }
2221
2307
  }
2308
+ class AnimationOptions_AnimationOptions {
2309
+ constructor() {
2310
+ this.count = 0;
2311
+ this.enable = false;
2312
+ this.speed = 1;
2313
+ this.sync = false;
2314
+ }
2315
+ load(data) {
2316
+ if (!data) {
2317
+ return;
2318
+ }
2319
+ if (data.count !== undefined) {
2320
+ this.count = setRangeValue(data.count);
2321
+ }
2322
+ if (data.enable !== undefined) {
2323
+ this.enable = data.enable;
2324
+ }
2325
+ if (data.speed !== undefined) {
2326
+ this.speed = setRangeValue(data.speed);
2327
+ }
2328
+ if (data.sync !== undefined) {
2329
+ this.sync = data.sync;
2330
+ }
2331
+ }
2332
+ }
2333
+ class OpacityAnimation_OpacityAnimation extends(null && AnimationOptions){
2334
+ constructor() {
2335
+ super();
2336
+ this.destroy = "none";
2337
+ this.enable = false;
2338
+ this.speed = 2;
2339
+ this.startValue = "random";
2340
+ this.sync = false;
2341
+ }
2342
+ get opacity_min() {
2343
+ return this.minimumValue;
2344
+ }
2345
+ set opacity_min(value) {
2346
+ this.minimumValue = value;
2347
+ }
2348
+ load(data) {
2349
+ var _a;
2350
+ if (data === undefined) {
2351
+ return;
2352
+ }
2353
+ super.load(data);
2354
+ if (data.destroy !== undefined) {
2355
+ this.destroy = data.destroy;
2356
+ }
2357
+ if (data.enable !== undefined) {
2358
+ this.enable = data.enable;
2359
+ }
2360
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;
2361
+ if (data.speed !== undefined) {
2362
+ this.speed = data.speed;
2363
+ }
2364
+ if (data.startValue !== undefined) {
2365
+ this.startValue = data.startValue;
2366
+ }
2367
+ if (data.sync !== undefined) {
2368
+ this.sync = data.sync;
2369
+ }
2370
+ }
2371
+ }
2222
2372
  class Opacity_Opacity extends(null && ValueWithRandom){
2223
2373
  constructor() {
2224
2374
  super();
@@ -2277,13 +2427,13 @@
2277
2427
  this.enable = data.enable;
2278
2428
  }
2279
2429
  if (data.opacity !== undefined) {
2280
- this.opacity = data.opacity;
2430
+ this.opacity = setRangeValue(data.opacity);
2281
2431
  }
2282
2432
  if (data.width !== undefined) {
2283
- this.width = data.width;
2433
+ this.width = setRangeValue(data.width);
2284
2434
  }
2285
2435
  if (data.radius !== undefined) {
2286
- this.radius = data.radius;
2436
+ this.radius = setRangeValue(data.radius);
2287
2437
  }
2288
2438
  if (data.color !== undefined) {
2289
2439
  this.color = OptionsColor.create(this.color, data.color);
@@ -2308,16 +2458,33 @@
2308
2458
  this.enabled = data.enabled;
2309
2459
  }
2310
2460
  if (data.distance !== undefined) {
2311
- this.distance = data.distance;
2461
+ this.distance = setRangeValue(data.distance);
2312
2462
  }
2313
2463
  if (data.duration !== undefined) {
2314
- this.duration = data.duration;
2464
+ this.duration = setRangeValue(data.duration);
2315
2465
  }
2316
2466
  if (data.factor !== undefined) {
2317
- this.factor = data.factor;
2467
+ this.factor = setRangeValue(data.factor);
2318
2468
  }
2319
2469
  if (data.speed !== undefined) {
2320
- this.speed = data.speed;
2470
+ this.speed = setRangeValue(data.speed);
2471
+ }
2472
+ }
2473
+ }
2474
+ class RollLight_RollLight {
2475
+ constructor() {
2476
+ this.enable = false;
2477
+ this.value = 0;
2478
+ }
2479
+ load(data) {
2480
+ if (!data) {
2481
+ return;
2482
+ }
2483
+ if (data.enable !== undefined) {
2484
+ this.enable = data.enable;
2485
+ }
2486
+ if (data.value !== undefined) {
2487
+ this.value = setRangeValue(data.value);
2321
2488
  }
2322
2489
  }
2323
2490
  }
@@ -2349,6 +2516,27 @@
2349
2516
  }
2350
2517
  }
2351
2518
  }
2519
+ class RotateAnimation_RotateAnimation {
2520
+ constructor() {
2521
+ this.enable = false;
2522
+ this.speed = 0;
2523
+ this.sync = false;
2524
+ }
2525
+ load(data) {
2526
+ if (data === undefined) {
2527
+ return;
2528
+ }
2529
+ if (data.enable !== undefined) {
2530
+ this.enable = data.enable;
2531
+ }
2532
+ if (data.speed !== undefined) {
2533
+ this.speed = setRangeValue(data.speed);
2534
+ }
2535
+ if (data.sync !== undefined) {
2536
+ this.sync = data.sync;
2537
+ }
2538
+ }
2539
+ }
2352
2540
  class Rotate_Rotate extends(null && ValueWithRandom){
2353
2541
  constructor() {
2354
2542
  super();
@@ -2467,6 +2655,45 @@
2467
2655
  }
2468
2656
  }
2469
2657
  }
2658
+ class SizeAnimation_SizeAnimation extends(null && AnimationOptions){
2659
+ constructor() {
2660
+ super();
2661
+ this.destroy = "none";
2662
+ this.enable = false;
2663
+ this.speed = 5;
2664
+ this.startValue = "random";
2665
+ this.sync = false;
2666
+ }
2667
+ get size_min() {
2668
+ return this.minimumValue;
2669
+ }
2670
+ set size_min(value) {
2671
+ this.minimumValue = value;
2672
+ }
2673
+ load(data) {
2674
+ var _a;
2675
+ if (data === undefined) {
2676
+ return;
2677
+ }
2678
+ super.load(data);
2679
+ if (data.destroy !== undefined) {
2680
+ this.destroy = data.destroy;
2681
+ }
2682
+ if (data.enable !== undefined) {
2683
+ this.enable = data.enable;
2684
+ }
2685
+ this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;
2686
+ if (data.speed !== undefined) {
2687
+ this.speed = data.speed;
2688
+ }
2689
+ if (data.startValue !== undefined) {
2690
+ this.startValue = data.startValue;
2691
+ }
2692
+ if (data.sync !== undefined) {
2693
+ this.sync = data.sync;
2694
+ }
2695
+ }
2696
+ }
2470
2697
  class Size_Size extends(null && ValueWithRandom){
2471
2698
  constructor() {
2472
2699
  super();
@@ -2512,6 +2739,27 @@
2512
2739
  }
2513
2740
  }
2514
2741
  }
2742
+ class TiltAnimation_TiltAnimation {
2743
+ constructor() {
2744
+ this.enable = false;
2745
+ this.speed = 0;
2746
+ this.sync = false;
2747
+ }
2748
+ load(data) {
2749
+ if (data === undefined) {
2750
+ return;
2751
+ }
2752
+ if (data.enable !== undefined) {
2753
+ this.enable = data.enable;
2754
+ }
2755
+ if (data.speed !== undefined) {
2756
+ this.speed = setRangeValue(data.speed);
2757
+ }
2758
+ if (data.sync !== undefined) {
2759
+ this.sync = data.sync;
2760
+ }
2761
+ }
2762
+ }
2515
2763
  class Tilt_Tilt extends(null && ValueWithRandom){
2516
2764
  constructor() {
2517
2765
  super();
@@ -2534,6 +2782,43 @@
2534
2782
  }
2535
2783
  }
2536
2784
  }
2785
+ class TwinkleValues_TwinkleValues {
2786
+ constructor() {
2787
+ this.enable = false;
2788
+ this.frequency = .05;
2789
+ this.opacity = 1;
2790
+ }
2791
+ load(data) {
2792
+ if (data === undefined) {
2793
+ return;
2794
+ }
2795
+ if (data.color !== undefined) {
2796
+ this.color = OptionsColor.create(this.color, data.color);
2797
+ }
2798
+ if (data.enable !== undefined) {
2799
+ this.enable = data.enable;
2800
+ }
2801
+ if (data.frequency !== undefined) {
2802
+ this.frequency = data.frequency;
2803
+ }
2804
+ if (data.opacity !== undefined) {
2805
+ this.opacity = setRangeValue(data.opacity);
2806
+ }
2807
+ }
2808
+ }
2809
+ class Twinkle_Twinkle {
2810
+ constructor() {
2811
+ this.lines = new TwinkleValues;
2812
+ this.particles = new TwinkleValues;
2813
+ }
2814
+ load(data) {
2815
+ if (data === undefined) {
2816
+ return;
2817
+ }
2818
+ this.lines.load(data.lines);
2819
+ this.particles.load(data.particles);
2820
+ }
2821
+ }
2537
2822
  class Wobble_Wobble {
2538
2823
  constructor() {
2539
2824
  this.distance = 5;
@@ -2971,7 +3256,7 @@
2971
3256
  max: getRangeMax(sizeRange) * pxRatio,
2972
3257
  min: getRangeMin(sizeRange) * pxRatio,
2973
3258
  loops: 0,
2974
- maxLoops: sizeOptions.animation.count
3259
+ maxLoops: getRangeValue(sizeOptions.animation.count)
2975
3260
  };
2976
3261
  const sizeAnimation = sizeOptions.animation;
2977
3262
  if (sizeAnimation.enable) {
@@ -3005,6 +3290,12 @@
3005
3290
  this.initialVelocity = this.calculateVelocity();
3006
3291
  this.velocity = this.initialVelocity.copy();
3007
3292
  this.moveDecay = 1 - getRangeValue(this.options.move.decay);
3293
+ const gravityOptions = this.options.move.gravity;
3294
+ this.gravity = {
3295
+ enable: gravityOptions.enable,
3296
+ acceleration: getRangeValue(gravityOptions.acceleration),
3297
+ inverse: gravityOptions.inverse
3298
+ };
3008
3299
  this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));
3009
3300
  this.initialPosition = this.position.copy();
3010
3301
  this.offset = Vector.origin;
@@ -3212,12 +3503,7 @@
3212
3503
  return overlaps;
3213
3504
  }
3214
3505
  calculateVelocity() {
3215
- const baseVelocity = getParticleBaseVelocity(this.direction);
3216
- const res = baseVelocity.copy();
3217
- const moveOptions = this.options.move;
3218
- const rad = Math.PI / 180 * moveOptions.angle.value;
3219
- const radOffset = Math.PI / 180 * moveOptions.angle.offset;
3220
- const range = {
3506
+ 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 = {
3221
3507
  left: radOffset - rad / 2,
3222
3508
  right: radOffset + rad / 2
3223
3509
  };
@@ -3607,13 +3893,13 @@
3607
3893
  container.canvas.size.height = element.offsetHeight * ratio;
3608
3894
  }
3609
3895
  const particles = options.particles;
3610
- this.attractDistance = particles.move.attract.distance * ratio;
3896
+ this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;
3611
3897
  this.linksDistance = particles.links.distance * ratio;
3612
3898
  this.linksWidth = particles.links.width * ratio;
3613
- this.sizeAnimationSpeed = particles.size.animation.speed * ratio;
3614
- this.maxSpeed = particles.move.gravity.maxSpeed * ratio;
3899
+ this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;
3900
+ this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;
3615
3901
  if (particles.orbit.radius !== undefined) {
3616
- this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;
3902
+ this.orbitRadius = getRangeValue(particles.orbit.radius) * this.container.retina.pixelRatio;
3617
3903
  }
3618
3904
  const modes = options.interactivity.modes;
3619
3905
  this.connectModeDistance = modes.connect.distance * ratio;
@@ -3633,19 +3919,19 @@
3633
3919
  const ratio = this.pixelRatio;
3634
3920
  const moveDistance = options.move.distance;
3635
3921
  const props = particle.retina;
3636
- props.attractDistance = options.move.attract.distance * ratio;
3922
+ props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;
3637
3923
  props.linksDistance = options.links.distance * ratio;
3638
3924
  props.linksWidth = options.links.width * ratio;
3639
3925
  props.moveDrift = getRangeValue(options.move.drift) * ratio;
3640
3926
  props.moveSpeed = getRangeValue(options.move.speed) * ratio;
3641
- props.sizeAnimationSpeed = options.size.animation.speed * ratio;
3927
+ props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;
3642
3928
  if (particle.spin) {
3643
3929
  props.spinAcceleration = getRangeValue(options.move.spin.acceleration) * ratio;
3644
3930
  }
3645
3931
  const maxDistance = props.maxDistance;
3646
3932
  maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;
3647
3933
  maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;
3648
- props.maxSpeed = options.move.gravity.maxSpeed * ratio;
3934
+ props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;
3649
3935
  }
3650
3936
  handleMotionChange(mediaQuery) {
3651
3937
  const options = this.container.actualOptions;
@@ -4977,7 +5263,7 @@
4977
5263
  function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
4978
5264
  colorValue.enable = colorAnimation.enable;
4979
5265
  if (colorValue.enable) {
4980
- colorValue.velocity = colorAnimation.speed / 100 * reduceFactor;
5266
+ colorValue.velocity = getRangeValue(colorAnimation.speed) / 100 * reduceFactor;
4981
5267
  if (colorAnimation.sync) {
4982
5268
  return;
4983
5269
  }