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
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TwinkleValues = void 0;
4
4
  const OptionsColor_1 = require("../../OptionsColor");
5
+ const Utils_1 = require("../../../../Utils");
5
6
  class TwinkleValues {
6
7
  constructor() {
7
8
  this.enable = false;
@@ -22,7 +23,7 @@ class TwinkleValues {
22
23
  this.frequency = data.frequency;
23
24
  }
24
25
  if (data.opacity !== undefined) {
25
- this.opacity = data.opacity;
26
+ this.opacity = (0, Utils_1.setRangeValue)(data.opacity);
26
27
  }
27
28
  }
28
29
  }
@@ -1,6 +1,7 @@
1
+ import { RangeValue } from "../../Types";
1
2
  export interface IAnimation {
2
- count: number;
3
+ count: RangeValue;
3
4
  enable: boolean;
4
- speed: number;
5
+ speed: RangeValue;
5
6
  sync: boolean;
6
7
  }
@@ -1,6 +1,7 @@
1
- import type { ICoordinates } from "../../../../Core/Interfaces/ICoordinates";
1
+ import type { ICoordinates } from "../../../../Core";
2
+ import type { RangeValue } from "../../../../Types";
2
3
  export interface IAttract {
3
- distance: number;
4
+ distance: RangeValue;
4
5
  enable: boolean;
5
6
  rotateX: number;
6
7
  rotateY: number;
@@ -1,4 +1,5 @@
1
+ import type { RangeValue } from "../../../../Types";
1
2
  export interface IMoveAngle {
2
- offset: number;
3
- value: number;
3
+ offset: RangeValue;
4
+ value: RangeValue;
4
5
  }
@@ -1,6 +1,7 @@
1
+ import type { RangeValue } from "../../../../Types";
1
2
  export interface IMoveGravity {
2
- acceleration: number;
3
+ acceleration: RangeValue;
3
4
  enable: boolean;
4
5
  inverse: boolean;
5
- maxSpeed: number;
6
+ maxSpeed: RangeValue;
6
7
  }
@@ -2,11 +2,12 @@ import type { IAnimatable } from "../../IAnimatable";
2
2
  import type { IAnimation } from "../../IAnimation";
3
3
  import type { IColor } from "../../../../Core";
4
4
  import type { IValueWithRandom } from "../../IValueWithRandom";
5
+ import type { RangeValue } from "../../../../Types";
5
6
  export interface IOrbit extends IAnimatable<IAnimation> {
6
7
  color?: string | IColor;
7
8
  enable: boolean;
8
- radius?: number;
9
+ radius?: RangeValue;
9
10
  rotation: IValueWithRandom;
10
- opacity: number;
11
- width: number;
11
+ opacity: RangeValue;
12
+ width: RangeValue;
12
13
  }
@@ -1,8 +1,9 @@
1
1
  import type { IValueWithRandom } from "../../IValueWithRandom";
2
+ import type { RangeValue } from "../../../../Types";
2
3
  export interface IRepulse extends IValueWithRandom {
3
4
  enabled: boolean;
4
- distance: number;
5
- duration: number;
6
- factor: number;
7
- speed: number;
5
+ distance: RangeValue;
6
+ duration: RangeValue;
7
+ factor: RangeValue;
8
+ speed: RangeValue;
8
9
  }
@@ -1,4 +1,5 @@
1
+ import type { RangeValue } from "../../../../Types";
1
2
  export interface IRollLight {
2
3
  enable: boolean;
3
- value: number;
4
+ value: RangeValue;
4
5
  }
@@ -1,5 +1,6 @@
1
+ import type { RangeValue } from "../../../../Types";
1
2
  export interface IRotateAnimation {
2
3
  enable: boolean;
3
- speed: number;
4
+ speed: RangeValue;
4
5
  sync: boolean;
5
6
  }
@@ -1,5 +1,6 @@
1
+ import type { RangeValue } from "../../../../Types";
1
2
  export interface ITiltAnimation {
2
3
  enable: boolean;
3
- speed: number;
4
+ speed: RangeValue;
4
5
  sync: boolean;
5
6
  }
@@ -1,7 +1,8 @@
1
- import type { IColor } from "../../../../Core/Interfaces/Colors";
1
+ import type { IColor } from "../../../../Core";
2
+ import type { RangeValue } from "../../../../Types";
2
3
  export interface ITwinkleValues {
3
4
  color?: string | IColor;
4
5
  enable: boolean;
5
6
  frequency: number;
6
- opacity: number;
7
+ opacity: RangeValue;
7
8
  }
@@ -105,7 +105,7 @@ class AbsorberInstance {
105
105
  var _a, _b;
106
106
  const container = this.container;
107
107
  const percentPosition = this.options.position;
108
- return Core_1.Vector.create((((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width, (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height);
108
+ return Core_1.Vector.create(((0, Utils_1.getRangeValue)((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width, ((0, Utils_1.getRangeValue)((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height);
109
109
  }
110
110
  updateParticlePosition(particle, v) {
111
111
  var _a;
@@ -1,7 +1,7 @@
1
1
  import { AbsorberSize } from "./AbsorberSize";
2
2
  import type { IAbsorber } from "../Interfaces/IAbsorber";
3
- import type { ICoordinates } from "../../../../Core";
4
3
  import type { IOptionLoader } from "../../../../Options/Interfaces/IOptionLoader";
4
+ import type { IRangedCoordinates } from "../../../../Core";
5
5
  import { OptionsColor } from "../../../../Options/Classes/OptionsColor";
6
6
  import type { RecursivePartial } from "../../../../Types";
7
7
  export declare class Absorber implements IAbsorber, IOptionLoader<IAbsorber> {
@@ -9,7 +9,7 @@ export declare class Absorber implements IAbsorber, IOptionLoader<IAbsorber> {
9
9
  draggable: boolean;
10
10
  name?: string;
11
11
  opacity: number;
12
- position?: RecursivePartial<ICoordinates>;
12
+ position?: RecursivePartial<IRangedCoordinates>;
13
13
  size: AbsorberSize;
14
14
  destroy: boolean;
15
15
  orbits: boolean;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Absorber = void 0;
4
4
  const AbsorberSize_1 = require("./AbsorberSize");
5
5
  const OptionsColor_1 = require("../../../../Options/Classes/OptionsColor");
6
+ const Utils_1 = require("../../../../Utils");
6
7
  class Absorber {
7
8
  constructor() {
8
9
  this.color = new OptionsColor_1.OptionsColor();
@@ -28,10 +29,13 @@ class Absorber {
28
29
  this.opacity = data.opacity;
29
30
  }
30
31
  if (data.position !== undefined) {
31
- this.position = {
32
- x: data.position.x,
33
- y: data.position.y,
34
- };
32
+ this.position = {};
33
+ if (data.position.x !== undefined) {
34
+ this.position.x = (0, Utils_1.setRangeValue)(data.position.x);
35
+ }
36
+ if (data.position.y !== undefined) {
37
+ this.position.y = (0, Utils_1.setRangeValue)(data.position.y);
38
+ }
35
39
  }
36
40
  if (data.size !== undefined) {
37
41
  this.size.load(data.size);
@@ -1,11 +1,11 @@
1
- import type { IColor, ICoordinates } from "../../../../Core";
1
+ import type { IColor, IRangedCoordinates } from "../../../../Core";
2
2
  import type { IAbsorberSize } from "./IAbsorberSize";
3
3
  import { RecursivePartial } from "../../../../Types";
4
4
  export interface IAbsorber {
5
5
  color: IColor | string;
6
6
  name?: string;
7
7
  opacity: number;
8
- position?: RecursivePartial<ICoordinates>;
8
+ position?: RecursivePartial<IRangedCoordinates>;
9
9
  size: IAbsorberSize;
10
10
  draggable: boolean;
11
11
  destroy: boolean;
@@ -211,8 +211,8 @@ class EmitterInstance {
211
211
  const container = this.container;
212
212
  const percentPosition = this.options.position;
213
213
  return {
214
- x: (((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width,
215
- y: (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height,
214
+ x: ((0, Utils_1.getRangeValue)((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width,
215
+ y: ((0, Utils_1.getRangeValue)((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height,
216
216
  };
217
217
  }
218
218
  emit() {
@@ -261,7 +261,7 @@ class EmitterInstance {
261
261
  const colorOffset = (0, Utils_1.randomInRange)(animation.offset);
262
262
  const delay = (0, Utils_1.getRangeValue)(this.options.rate.delay);
263
263
  const emitFactor = (1000 * delay) / container.retina.reduceFactor;
264
- const colorSpeed = (_a = animation.speed) !== null && _a !== void 0 ? _a : 0;
264
+ const colorSpeed = (0, Utils_1.getRangeValue)((_a = animation.speed) !== null && _a !== void 0 ? _a : 0);
265
265
  return (initValue + (colorSpeed * container.fpsLimit) / emitFactor + colorOffset * 3.6) % maxValue;
266
266
  }
267
267
  }
@@ -4,10 +4,10 @@ import { EmitterLife } from "./EmitterLife";
4
4
  import { EmitterRate } from "./EmitterRate";
5
5
  import { EmitterShapeType } from "../../Enums";
6
6
  import { EmitterSize } from "./EmitterSize";
7
- import type { ICoordinates } from "../../../../Core";
8
7
  import type { IEmitter } from "../Interfaces/IEmitter";
9
8
  import type { IOptionLoader } from "../../../../Options/Interfaces/IOptionLoader";
10
9
  import type { IParticles } from "../../../../Options/Interfaces/Particles/IParticles";
10
+ import type { IRangedCoordinates } from "../../../../Core";
11
11
  import type { RecursivePartial } from "../../../../Types";
12
12
  export declare class Emitter implements IEmitter, IOptionLoader<IEmitter> {
13
13
  autoPlay: boolean;
@@ -18,7 +18,7 @@ export declare class Emitter implements IEmitter, IOptionLoader<IEmitter> {
18
18
  life: EmitterLife;
19
19
  name?: string;
20
20
  particles?: RecursivePartial<IParticles>;
21
- position?: RecursivePartial<ICoordinates>;
21
+ position?: RecursivePartial<IRangedCoordinates>;
22
22
  rate: EmitterRate;
23
23
  shape: EmitterShapeType | keyof typeof EmitterShapeType;
24
24
  spawnColor?: AnimatableColor;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Emitter = void 0;
4
+ const Utils_1 = require("../../../../Utils");
4
5
  const AnimatableColor_1 = require("../../../../Options/Classes/AnimatableColor");
5
6
  const EmitterLife_1 = require("./EmitterLife");
6
7
  const EmitterRate_1 = require("./EmitterRate");
7
8
  const EmitterSize_1 = require("./EmitterSize");
8
- const Utils_1 = require("../../../../Utils");
9
9
  class Emitter {
10
10
  constructor() {
11
11
  this.autoPlay = true;
@@ -45,10 +45,13 @@ class Emitter {
45
45
  this.shape = data.shape;
46
46
  }
47
47
  if (data.position !== undefined) {
48
- this.position = {
49
- x: data.position.x,
50
- y: data.position.y,
51
- };
48
+ this.position = {};
49
+ if (data.position.x) {
50
+ this.position.x = (0, Utils_1.setRangeValue)(data.position.x);
51
+ }
52
+ if (data.position.y) {
53
+ this.position.y = (0, Utils_1.setRangeValue)(data.position.y);
54
+ }
52
55
  }
53
56
  if (data.spawnColor !== undefined) {
54
57
  if (this.spawnColor === undefined) {
@@ -1,11 +1,11 @@
1
1
  import type { MoveDirection, MoveDirectionAlt } from "../../../../Enums";
2
2
  import type { EmitterShapeType } from "../../Enums";
3
3
  import type { IAnimatableColor } from "../../../../Options/Interfaces/IAnimatableColor";
4
- import type { ICoordinates } from "../../../../Core";
5
4
  import type { IEmitterLife } from "./IEmitterLife";
6
5
  import type { IEmitterRate } from "./IEmitterRate";
7
6
  import type { IEmitterSize } from "./IEmitterSize";
8
7
  import type { IParticles } from "../../../../Options/Interfaces/Particles/IParticles";
8
+ import type { IRangedCoordinates } from "../../../../Core";
9
9
  import type { RecursivePartial } from "../../../../Types";
10
10
  export interface IEmitter {
11
11
  autoPlay: boolean;
@@ -16,7 +16,7 @@ export interface IEmitter {
16
16
  life: IEmitterLife;
17
17
  name?: string;
18
18
  particles?: RecursivePartial<IParticles>;
19
- position?: RecursivePartial<ICoordinates>;
19
+ position?: RecursivePartial<IRangedCoordinates>;
20
20
  rate: IEmitterRate;
21
21
  shape: EmitterShapeType | keyof typeof EmitterShapeType;
22
22
  spawnColor?: IAnimatableColor;
@@ -57,7 +57,8 @@ class AngleUpdater {
57
57
  }
58
58
  const rotateAnimation = particle.options.rotate.animation;
59
59
  if (rotateAnimation.enable) {
60
- particle.rotate.velocity = (rotateAnimation.speed / 360) * this.container.retina.reduceFactor;
60
+ particle.rotate.velocity =
61
+ ((0, Utils_1.getRangeValue)(rotateAnimation.speed) / 360) * this.container.retina.reduceFactor;
61
62
  if (!rotateAnimation.sync) {
62
63
  particle.rotate.velocity *= Math.random();
63
64
  }
@@ -71,7 +71,7 @@ class OpacityUpdater {
71
71
  min: (0, Utils_1.getRangeMin)(opacityOptions.value),
72
72
  value: (0, Utils_1.getRangeValue)(opacityOptions.value),
73
73
  loops: 0,
74
- maxLoops: opacityOptions.animation.count,
74
+ maxLoops: (0, Utils_1.getRangeValue)(opacityOptions.animation.count),
75
75
  };
76
76
  const opacityAnimation = opacityOptions.animation;
77
77
  if (opacityAnimation.enable) {
@@ -95,7 +95,8 @@ class OpacityUpdater {
95
95
  particle.opacity.status = 1;
96
96
  break;
97
97
  }
98
- particle.opacity.velocity = (opacityAnimation.speed / 100) * this.container.retina.reduceFactor;
98
+ particle.opacity.velocity =
99
+ ((0, Utils_1.getRangeValue)(opacityAnimation.speed) / 100) * this.container.retina.reduceFactor;
99
100
  if (!opacityAnimation.sync) {
100
101
  particle.opacity.velocity *= Math.random();
101
102
  }
@@ -29,19 +29,19 @@ class RollUpdater {
29
29
  const alterType = Math.random() >= 0.5 ? "darken" : "enlighten";
30
30
  particle.roll.alter = {
31
31
  type: alterType,
32
- value: alterType === "darken" ? rollOpt.darken.value : rollOpt.enlighten.value,
32
+ value: (0, Utils_1.getRangeValue)(alterType === "darken" ? rollOpt.darken.value : rollOpt.enlighten.value),
33
33
  };
34
34
  }
35
35
  else if (rollOpt.darken.enable) {
36
36
  particle.roll.alter = {
37
37
  type: "darken",
38
- value: rollOpt.darken.value,
38
+ value: (0, Utils_1.getRangeValue)(rollOpt.darken.value),
39
39
  };
40
40
  }
41
41
  else if (rollOpt.enlighten.enable) {
42
42
  particle.roll.alter = {
43
43
  type: "enlighten",
44
- value: rollOpt.enlighten.value,
44
+ value: (0, Utils_1.getRangeValue)(rollOpt.enlighten.value),
45
45
  };
46
46
  }
47
47
  }
@@ -58,7 +58,7 @@ class TiltUpdater {
58
58
  }
59
59
  const tiltAnimation = particle.options.tilt.animation;
60
60
  if (tiltAnimation.enable) {
61
- particle.tilt.velocity = (tiltAnimation.speed / 360) * this.container.retina.reduceFactor;
61
+ particle.tilt.velocity = ((0, Utils_1.getRangeValue)(tiltAnimation.speed) / 360) * this.container.retina.reduceFactor;
62
62
  if (!tiltAnimation.sync) {
63
63
  particle.tilt.velocity *= Math.random();
64
64
  }
@@ -460,7 +460,7 @@ exports.getHslAnimationFromHsl = getHslAnimationFromHsl;
460
460
  function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
461
461
  colorValue.enable = colorAnimation.enable;
462
462
  if (colorValue.enable) {
463
- colorValue.velocity = (colorAnimation.speed / 100) * reduceFactor;
463
+ colorValue.velocity = ((0, NumberUtils_1.getRangeValue)(colorAnimation.speed) / 100) * reduceFactor;
464
464
  if (colorAnimation.sync) {
465
465
  return;
466
466
  }
@@ -1,4 +1,4 @@
1
- import { clear, colorToHsl, colorToRgb, deepExtend, drawConnectLine, drawGrabLine, drawParticle, drawParticlePlugin, drawPlugin, getStyleFromHsl, getStyleFromRgb, gradient, paintBase, } from "../Utils";
1
+ import { clear, colorToHsl, colorToRgb, deepExtend, drawConnectLine, drawGrabLine, drawParticle, drawParticlePlugin, drawPlugin, getRangeValue, getStyleFromHsl, getStyleFromRgb, gradient, paintBase, } from "../Utils";
2
2
  import { Constants } from "./Utils";
3
3
  /**
4
4
  * Canvas manager
@@ -176,7 +176,9 @@ export class Canvas {
176
176
  const zIndexOptions = particle.options.zIndex;
177
177
  const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;
178
178
  const radius = particle.getRadius();
179
- 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;
179
+ const opacity = twinkling
180
+ ? getRangeValue(twinkle.opacity)
181
+ : (_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;
180
182
  const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;
181
183
  const zOpacity = opacity * zOpacityFactor;
182
184
  const fillColorValue = fColor ? getStyleFromHsl(fColor, zOpacity) : undefined;
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @category Interfaces
3
3
  */
4
+ import type { RangeValue } from "../../Types";
4
5
  export interface ICoordinates {
5
6
  x: number;
6
7
  y: number;
@@ -8,3 +9,10 @@ export interface ICoordinates {
8
9
  export interface ICoordinates3d extends ICoordinates {
9
10
  z: number;
10
11
  }
12
+ export interface IRangedCoordinates {
13
+ x: RangeValue;
14
+ y: RangeValue;
15
+ }
16
+ export interface IRangedCoordinates3d extends IRangedCoordinates {
17
+ z: RangeValue;
18
+ }
@@ -0,0 +1,5 @@
1
+ export interface IParticleGravity {
2
+ enable: boolean;
3
+ acceleration: number;
4
+ inverse: boolean;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -18,6 +18,7 @@ export * from "./IMovePathGenerator";
18
18
  export * from "./IParticle";
19
19
  export * from "./IParticleGradientAnimation";
20
20
  export * from "./IParticleGradientColorAnimation";
21
+ export * from "./IParticleGravity";
21
22
  export * from "./IParticleHslAnimation";
22
23
  export * from "./IParticlesInteractor";
23
24
  export * from "./IParticleLife";
@@ -18,6 +18,7 @@ export * from "./IMovePathGenerator";
18
18
  export * from "./IParticle";
19
19
  export * from "./IParticleGradientAnimation";
20
20
  export * from "./IParticleGradientColorAnimation";
21
+ export * from "./IParticleGravity";
21
22
  export * from "./IParticleHslAnimation";
22
23
  export * from "./IParticlesInteractor";
23
24
  export * from "./IParticleLife";
@@ -1,5 +1,5 @@
1
1
  import { ShapeType } from "../Enums";
2
- import type { IBubbleParticleData, ICoordinates, ICoordinates3d, IDelta, IHsl, IParticle, IParticleGradientAnimation, IParticleHslAnimation, IParticleLife, IParticleNumericValueAnimation, IParticleRetinaProps, IParticleRoll, IParticleSpin, IParticleTiltValueAnimation, IParticleValueAnimation, IParticleWobble, IRgb, IShapeValues } from "./Interfaces";
2
+ import type { IBubbleParticleData, ICoordinates, ICoordinates3d, IDelta, IHsl, IParticle, IParticleGradientAnimation, IParticleGravity, IParticleHslAnimation, IParticleLife, IParticleNumericValueAnimation, IParticleRetinaProps, IParticleRoll, IParticleSpin, IParticleTiltValueAnimation, IParticleValueAnimation, IParticleWobble, IRgb, IShapeValues } from "./Interfaces";
3
3
  import { Vector, Vector3d } from "./Utils";
4
4
  import type { Container } from "./Container";
5
5
  import type { Engine } from "../engine";
@@ -41,6 +41,7 @@ export declare class Particle implements IParticle {
41
41
  strokeWidth?: number;
42
42
  stroke?: Stroke;
43
43
  strokeColor?: IParticleHslAnimation;
44
+ readonly gravity: IParticleGravity;
44
45
  readonly moveDecay: number;
45
46
  readonly direction: number;
46
47
  readonly position: Vector3d;
@@ -91,7 +91,7 @@ export class Particle {
91
91
  max: getRangeMax(sizeRange) * pxRatio,
92
92
  min: getRangeMin(sizeRange) * pxRatio,
93
93
  loops: 0,
94
- maxLoops: sizeOptions.animation.count,
94
+ maxLoops: getRangeValue(sizeOptions.animation.count),
95
95
  };
96
96
  const sizeAnimation = sizeOptions.animation;
97
97
  if (sizeAnimation.enable) {
@@ -126,6 +126,12 @@ export class Particle {
126
126
  this.initialVelocity = this.calculateVelocity();
127
127
  this.velocity = this.initialVelocity.copy();
128
128
  this.moveDecay = 1 - getRangeValue(this.options.move.decay);
129
+ const gravityOptions = this.options.move.gravity;
130
+ this.gravity = {
131
+ enable: gravityOptions.enable,
132
+ acceleration: getRangeValue(gravityOptions.acceleration),
133
+ inverse: gravityOptions.inverse,
134
+ };
129
135
  /* position */
130
136
  this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));
131
137
  this.initialPosition = this.position.copy();
@@ -340,12 +346,7 @@ export class Particle {
340
346
  return overlaps;
341
347
  }
342
348
  calculateVelocity() {
343
- const baseVelocity = getParticleBaseVelocity(this.direction);
344
- const res = baseVelocity.copy();
345
- const moveOptions = this.options.move;
346
- const rad = (Math.PI / 180) * moveOptions.angle.value;
347
- const radOffset = (Math.PI / 180) * moveOptions.angle.offset;
348
- const range = {
349
+ 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 = {
349
350
  left: radOffset - rad / 2,
350
351
  right: radOffset + rad / 2,
351
352
  };
@@ -49,13 +49,13 @@ export class Retina {
49
49
  container.canvas.size.height = element.offsetHeight * ratio;
50
50
  }
51
51
  const particles = options.particles;
52
- this.attractDistance = particles.move.attract.distance * ratio;
52
+ this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;
53
53
  this.linksDistance = particles.links.distance * ratio;
54
54
  this.linksWidth = particles.links.width * ratio;
55
- this.sizeAnimationSpeed = particles.size.animation.speed * ratio;
56
- this.maxSpeed = particles.move.gravity.maxSpeed * ratio;
55
+ this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;
56
+ this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;
57
57
  if (particles.orbit.radius !== undefined) {
58
- this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;
58
+ this.orbitRadius = getRangeValue(particles.orbit.radius) * this.container.retina.pixelRatio;
59
59
  }
60
60
  const modes = options.interactivity.modes;
61
61
  this.connectModeDistance = modes.connect.distance * ratio;
@@ -75,19 +75,19 @@ export class Retina {
75
75
  const ratio = this.pixelRatio;
76
76
  const moveDistance = options.move.distance;
77
77
  const props = particle.retina;
78
- props.attractDistance = options.move.attract.distance * ratio;
78
+ props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;
79
79
  props.linksDistance = options.links.distance * ratio;
80
80
  props.linksWidth = options.links.width * ratio;
81
81
  props.moveDrift = getRangeValue(options.move.drift) * ratio;
82
82
  props.moveSpeed = getRangeValue(options.move.speed) * ratio;
83
- props.sizeAnimationSpeed = options.size.animation.speed * ratio;
83
+ props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;
84
84
  if (particle.spin) {
85
85
  props.spinAcceleration = getRangeValue(options.move.spin.acceleration) * ratio;
86
86
  }
87
87
  const maxDistance = props.maxDistance;
88
88
  maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;
89
89
  maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;
90
- props.maxSpeed = options.move.gravity.maxSpeed * ratio;
90
+ props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;
91
91
  }
92
92
  handleMotionChange(mediaQuery) {
93
93
  const options = this.container.actualOptions;
@@ -56,7 +56,7 @@ export class ParticlesMover {
56
56
  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)) *
57
57
  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;
58
58
  this.applyPath(particle, delta);
59
- const gravityOptions = moveOptions.gravity;
59
+ const gravityOptions = particle.gravity;
60
60
  const gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;
61
61
  if (gravityOptions.enable && moveSpeed) {
62
62
  particle.velocity.y += (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (60 * moveSpeed);
@@ -71,7 +71,7 @@ export class ParticlesMover {
71
71
  const velocity = particle.velocity.mult(moveSpeed);
72
72
  const maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;
73
73
  if (gravityOptions.enable &&
74
- gravityOptions.maxSpeed > 0 &&
74
+ maxSpeed > 0 &&
75
75
  ((!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed) ||
76
76
  (gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed))) {
77
77
  velocity.y = gravityFactor * maxSpeed;
@@ -1,4 +1,4 @@
1
- import { colorToRgb, drawLinkLine, drawLinkTriangle, getDistance, getLinkColor } from "../../../Utils";
1
+ import { colorToRgb, drawLinkLine, drawLinkTriangle, getDistance, getLinkColor, getRangeValue } from "../../../Utils";
2
2
  export class LinkInstance {
3
3
  constructor(container) {
4
4
  this.container = container;
@@ -107,7 +107,7 @@ export class LinkInstance {
107
107
  const twinkling = Math.random() < twinkleFreq;
108
108
  if (twinkling && twinkleRgb !== undefined) {
109
109
  colorLine = twinkleRgb;
110
- opacity = twinkle.opacity;
110
+ opacity = getRangeValue(twinkle.opacity);
111
111
  }
112
112
  }
113
113
  if (!colorLine) {
@@ -35,17 +35,17 @@ export declare class AnimatableGradientColor implements IAnimatableGradientColor
35
35
  load(data?: RecursivePartial<IAnimatableGradientColor>): void;
36
36
  }
37
37
  export declare class GradientAngleAnimation implements IAnimation, IOptionLoader<IAnimation> {
38
- count: number;
38
+ count: RangeValue;
39
39
  enable: boolean;
40
- speed: number;
40
+ speed: RangeValue;
41
41
  sync: boolean;
42
42
  constructor();
43
43
  load(data?: RecursivePartial<IAnimation>): void;
44
44
  }
45
45
  export declare class GradientColorOpacityAnimation implements IGradientColorOpacityAnimation, IOptionLoader<IGradientColorOpacityAnimation> {
46
- count: number;
46
+ count: RangeValue;
47
47
  enable: boolean;
48
- speed: number;
48
+ speed: RangeValue;
49
49
  sync: boolean;
50
50
  startValue: StartValueType | keyof typeof StartValueType;
51
51
  constructor();
@@ -93,13 +93,13 @@ export class GradientAngleAnimation {
93
93
  return;
94
94
  }
95
95
  if (data.count !== undefined) {
96
- this.count = data.count;
96
+ this.count = setRangeValue(data.count);
97
97
  }
98
98
  if (data.enable !== undefined) {
99
99
  this.enable = data.enable;
100
100
  }
101
101
  if (data.speed !== undefined) {
102
- this.speed = data.speed;
102
+ this.speed = setRangeValue(data.speed);
103
103
  }
104
104
  if (data.sync !== undefined) {
105
105
  this.sync = data.sync;
@@ -119,13 +119,13 @@ export class GradientColorOpacityAnimation {
119
119
  return;
120
120
  }
121
121
  if (data.count !== undefined) {
122
- this.count = data.count;
122
+ this.count = setRangeValue(data.count);
123
123
  }
124
124
  if (data.enable !== undefined) {
125
125
  this.enable = data.enable;
126
126
  }
127
127
  if (data.speed !== undefined) {
128
- this.speed = data.speed;
128
+ this.speed = setRangeValue(data.speed);
129
129
  }
130
130
  if (data.sync !== undefined) {
131
131
  this.sync = data.sync;