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