@tsparticles/engine 3.0.0-alpha.1 → 3.0.0-beta.1

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 (498) hide show
  1. package/README.md +244 -188
  2. package/browser/Core/Canvas.js +273 -243
  3. package/browser/Core/Container.js +97 -113
  4. package/browser/Core/Engine.js +271 -0
  5. package/browser/Core/Particle.js +165 -172
  6. package/browser/Core/Particles.js +153 -148
  7. package/browser/Core/Retina.js +17 -15
  8. package/browser/Core/Utils/Circle.js +12 -8
  9. package/browser/Core/Utils/Constants.js +4 -3
  10. package/browser/Core/Utils/EventListeners.js +259 -235
  11. package/browser/Core/Utils/InteractionManager.js +6 -16
  12. package/browser/Core/Utils/QuadTree.js +17 -23
  13. package/browser/Core/Utils/Rectangle.js +2 -2
  14. package/browser/Core/Utils/Vector.js +1 -1
  15. package/browser/Core/Utils/Vector3d.js +17 -9
  16. package/browser/Options/Classes/AnimatableColor.js +4 -3
  17. package/browser/Options/Classes/AnimationOptions.js +5 -4
  18. package/browser/Options/Classes/Background/Background.js +1 -1
  19. package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +3 -2
  20. package/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js +1 -1
  21. package/browser/Options/Classes/ColorAnimation.js +5 -1
  22. package/browser/Options/Classes/HslAnimation.js +1 -1
  23. package/browser/Options/Classes/Interactivity/Events/DivEvent.js +0 -24
  24. package/browser/Options/Classes/Interactivity/Events/Events.js +9 -28
  25. package/browser/Options/Classes/Interactivity/Events/HoverEvent.js +1 -1
  26. package/browser/Options/Classes/Interactivity/Interactivity.js +3 -10
  27. package/browser/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  28. package/browser/Options/Classes/ManualParticle.js +6 -7
  29. package/browser/Options/Classes/Options.js +28 -48
  30. package/browser/Options/Classes/OptionsColor.js +3 -2
  31. package/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js +1 -1
  32. package/browser/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js +1 -1
  33. package/browser/Options/Classes/Particles/Collisions/Collisions.js +8 -3
  34. package/browser/Options/Classes/Particles/Move/Move.js +20 -50
  35. package/browser/Options/Classes/Particles/Move/MoveAngle.js +1 -1
  36. package/browser/Options/Classes/Particles/Move/MoveAttract.js +10 -21
  37. package/browser/Options/Classes/Particles/Move/MoveGravity.js +1 -1
  38. package/browser/Options/Classes/Particles/Move/MoveTrail.js +3 -9
  39. package/browser/Options/Classes/Particles/Move/MoveTrailFill.js +1 -1
  40. package/browser/Options/Classes/Particles/Move/OutModes.js +4 -5
  41. package/browser/Options/Classes/Particles/Move/Path/MovePath.js +2 -2
  42. package/browser/Options/Classes/Particles/Move/Spin.js +5 -3
  43. package/browser/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  44. package/browser/Options/Classes/Particles/Number/ParticlesNumber.js +3 -10
  45. package/browser/Options/Classes/Particles/Opacity/Opacity.js +12 -8
  46. package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -10
  47. package/browser/Options/Classes/Particles/ParticlesOptions.js +18 -23
  48. package/browser/Options/Classes/Particles/Shadow.js +1 -1
  49. package/browser/Options/Classes/Particles/Shape/Shape.js +10 -11
  50. package/browser/Options/Classes/Particles/Size/Size.js +12 -8
  51. package/browser/Options/Classes/Particles/Size/SizeAnimation.js +1 -10
  52. package/browser/Options/Classes/Particles/Stroke.js +2 -2
  53. package/browser/Options/Classes/Particles/ZIndex/ZIndex.js +1 -1
  54. package/browser/Options/Classes/Responsive.js +1 -1
  55. package/browser/Options/Classes/Theme/Theme.js +2 -2
  56. package/browser/Options/Classes/ValueWithRandom.js +6 -19
  57. package/browser/Utils/CanvasUtils.js +19 -55
  58. package/browser/Utils/ColorUtils.js +18 -20
  59. package/browser/Utils/EventDispatcher.js +7 -6
  60. package/browser/Utils/HslColorManager.js +4 -6
  61. package/browser/Utils/NumberUtils.js +42 -46
  62. package/browser/Utils/OptionsUtils.js +1 -1
  63. package/browser/Utils/RgbColorManager.js +3 -5
  64. package/browser/Utils/Utils.js +135 -64
  65. package/browser/bundle.js +4 -97
  66. package/browser/export-types.js +97 -0
  67. package/browser/exports.js +89 -0
  68. package/browser/index.js +8 -199
  69. package/browser/init.js +12 -0
  70. package/browser/package.json +1 -0
  71. package/cjs/Core/Canvas.js +278 -248
  72. package/cjs/Core/Container.js +104 -120
  73. package/cjs/Core/Engine.js +275 -0
  74. package/cjs/Core/Particle.js +173 -180
  75. package/cjs/Core/Particles.js +154 -149
  76. package/cjs/Core/Retina.js +20 -18
  77. package/cjs/Core/Utils/Circle.js +14 -10
  78. package/cjs/Core/Utils/Constants.js +5 -4
  79. package/cjs/Core/Utils/EventListeners.js +267 -243
  80. package/cjs/Core/Utils/InteractionManager.js +6 -16
  81. package/cjs/Core/Utils/QuadTree.js +20 -26
  82. package/cjs/Core/Utils/Rectangle.js +4 -4
  83. package/cjs/Core/Utils/Vector.js +2 -2
  84. package/cjs/Core/Utils/Vector3d.js +17 -9
  85. package/cjs/Options/Classes/AnimatableColor.js +6 -5
  86. package/cjs/Options/Classes/AnimationOptions.js +8 -7
  87. package/cjs/Options/Classes/Background/Background.js +3 -3
  88. package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +4 -3
  89. package/cjs/Options/Classes/BackgroundMask/BackgroundMaskCover.js +3 -3
  90. package/cjs/Options/Classes/ColorAnimation.js +9 -5
  91. package/cjs/Options/Classes/HslAnimation.js +4 -4
  92. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +0 -24
  93. package/cjs/Options/Classes/Interactivity/Events/Events.js +15 -34
  94. package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +2 -2
  95. package/cjs/Options/Classes/Interactivity/Interactivity.js +5 -12
  96. package/cjs/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  97. package/cjs/Options/Classes/ManualParticle.js +7 -8
  98. package/cjs/Options/Classes/Options.js +41 -61
  99. package/cjs/Options/Classes/OptionsColor.js +3 -2
  100. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +3 -3
  101. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js +2 -2
  102. package/cjs/Options/Classes/Particles/Collisions/Collisions.js +11 -6
  103. package/cjs/Options/Classes/Particles/Move/Move.js +31 -61
  104. package/cjs/Options/Classes/Particles/Move/MoveAngle.js +3 -3
  105. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +11 -22
  106. package/cjs/Options/Classes/Particles/Move/MoveGravity.js +3 -3
  107. package/cjs/Options/Classes/Particles/Move/MoveTrail.js +4 -10
  108. package/cjs/Options/Classes/Particles/Move/MoveTrailFill.js +2 -2
  109. package/cjs/Options/Classes/Particles/Move/OutModes.js +4 -5
  110. package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +4 -4
  111. package/cjs/Options/Classes/Particles/Move/Spin.js +6 -4
  112. package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  113. package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +4 -11
  114. package/cjs/Options/Classes/Particles/Opacity/Opacity.js +13 -9
  115. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -11
  116. package/cjs/Options/Classes/Particles/ParticlesOptions.js +32 -37
  117. package/cjs/Options/Classes/Particles/Shadow.js +3 -3
  118. package/cjs/Options/Classes/Particles/Shape/Shape.js +10 -11
  119. package/cjs/Options/Classes/Particles/Size/Size.js +13 -9
  120. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +2 -11
  121. package/cjs/Options/Classes/Particles/Stroke.js +5 -5
  122. package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +2 -2
  123. package/cjs/Options/Classes/Responsive.js +2 -2
  124. package/cjs/Options/Classes/Theme/Theme.js +4 -4
  125. package/cjs/Options/Classes/ValueWithRandom.js +10 -23
  126. package/cjs/Utils/CanvasUtils.js +23 -60
  127. package/cjs/Utils/ColorUtils.js +31 -33
  128. package/cjs/Utils/EventDispatcher.js +7 -6
  129. package/cjs/Utils/HslColorManager.js +11 -13
  130. package/cjs/Utils/NumberUtils.js +44 -48
  131. package/cjs/Utils/OptionsUtils.js +2 -2
  132. package/cjs/Utils/RgbColorManager.js +7 -9
  133. package/cjs/Utils/Utils.js +157 -77
  134. package/cjs/bundle.js +4 -97
  135. package/cjs/export-types.js +113 -0
  136. package/cjs/exports.js +105 -0
  137. package/cjs/index.js +8 -199
  138. package/cjs/init.js +16 -0
  139. package/cjs/package.json +1 -0
  140. package/esm/Core/Canvas.js +273 -243
  141. package/esm/Core/Container.js +97 -113
  142. package/esm/Core/Engine.js +271 -0
  143. package/esm/Core/Particle.js +165 -172
  144. package/esm/Core/Particles.js +153 -148
  145. package/esm/Core/Retina.js +17 -15
  146. package/esm/Core/Utils/Circle.js +12 -8
  147. package/esm/Core/Utils/Constants.js +4 -3
  148. package/esm/Core/Utils/EventListeners.js +259 -235
  149. package/esm/Core/Utils/InteractionManager.js +6 -16
  150. package/esm/Core/Utils/QuadTree.js +17 -23
  151. package/esm/Core/Utils/Rectangle.js +2 -2
  152. package/esm/Core/Utils/Vector.js +1 -1
  153. package/esm/Core/Utils/Vector3d.js +17 -9
  154. package/esm/Options/Classes/AnimatableColor.js +4 -3
  155. package/esm/Options/Classes/AnimationOptions.js +5 -4
  156. package/esm/Options/Classes/Background/Background.js +1 -1
  157. package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +3 -2
  158. package/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js +1 -1
  159. package/esm/Options/Classes/ColorAnimation.js +5 -1
  160. package/esm/Options/Classes/HslAnimation.js +1 -1
  161. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +0 -24
  162. package/esm/Options/Classes/Interactivity/Events/Events.js +9 -28
  163. package/esm/Options/Classes/Interactivity/Events/HoverEvent.js +1 -1
  164. package/esm/Options/Classes/Interactivity/Interactivity.js +3 -10
  165. package/esm/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  166. package/esm/Options/Classes/ManualParticle.js +6 -7
  167. package/esm/Options/Classes/Options.js +28 -48
  168. package/esm/Options/Classes/OptionsColor.js +3 -2
  169. package/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js +1 -1
  170. package/esm/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js +1 -1
  171. package/esm/Options/Classes/Particles/Collisions/Collisions.js +8 -3
  172. package/esm/Options/Classes/Particles/Move/Move.js +20 -50
  173. package/esm/Options/Classes/Particles/Move/MoveAngle.js +1 -1
  174. package/esm/Options/Classes/Particles/Move/MoveAttract.js +10 -21
  175. package/esm/Options/Classes/Particles/Move/MoveGravity.js +1 -1
  176. package/esm/Options/Classes/Particles/Move/MoveTrail.js +3 -9
  177. package/esm/Options/Classes/Particles/Move/MoveTrailFill.js +1 -1
  178. package/esm/Options/Classes/Particles/Move/OutModes.js +4 -5
  179. package/esm/Options/Classes/Particles/Move/Path/MovePath.js +2 -2
  180. package/esm/Options/Classes/Particles/Move/Spin.js +5 -3
  181. package/esm/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  182. package/esm/Options/Classes/Particles/Number/ParticlesNumber.js +3 -10
  183. package/esm/Options/Classes/Particles/Opacity/Opacity.js +12 -8
  184. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -10
  185. package/esm/Options/Classes/Particles/ParticlesOptions.js +18 -23
  186. package/esm/Options/Classes/Particles/Shadow.js +1 -1
  187. package/esm/Options/Classes/Particles/Shape/Shape.js +10 -11
  188. package/esm/Options/Classes/Particles/Size/Size.js +12 -8
  189. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +1 -10
  190. package/esm/Options/Classes/Particles/Stroke.js +2 -2
  191. package/esm/Options/Classes/Particles/ZIndex/ZIndex.js +1 -1
  192. package/esm/Options/Classes/Responsive.js +1 -1
  193. package/esm/Options/Classes/Theme/Theme.js +2 -2
  194. package/esm/Options/Classes/ValueWithRandom.js +6 -19
  195. package/esm/Utils/CanvasUtils.js +19 -55
  196. package/esm/Utils/ColorUtils.js +18 -20
  197. package/esm/Utils/EventDispatcher.js +7 -6
  198. package/esm/Utils/HslColorManager.js +4 -6
  199. package/esm/Utils/NumberUtils.js +42 -46
  200. package/esm/Utils/OptionsUtils.js +1 -1
  201. package/esm/Utils/RgbColorManager.js +3 -5
  202. package/esm/Utils/Utils.js +135 -64
  203. package/esm/bundle.js +4 -97
  204. package/esm/export-types.js +97 -0
  205. package/esm/exports.js +89 -0
  206. package/esm/index.js +8 -199
  207. package/esm/init.js +12 -0
  208. package/esm/package.json +1 -0
  209. package/package.json +21 -4
  210. package/report.html +4 -4
  211. package/scripts/install.js +90 -33
  212. package/tsparticles.engine.js +1832 -2007
  213. package/tsparticles.engine.min.js +1 -1
  214. package/tsparticles.engine.min.js.LICENSE.txt +1 -10
  215. package/types/Core/Canvas.d.ts +25 -21
  216. package/types/Core/Container.d.ts +21 -25
  217. package/types/Core/Engine.d.ts +71 -0
  218. package/types/Core/Interfaces/Colors.d.ts +2 -2
  219. package/types/Core/Interfaces/IBubbleParticleData.d.ts +1 -1
  220. package/types/Core/Interfaces/ICircleBouncer.d.ts +2 -2
  221. package/types/Core/Interfaces/IColorManager.d.ts +1 -1
  222. package/types/Core/Interfaces/IContainerInteractivity.d.ts +1 -1
  223. package/types/Core/Interfaces/IContainerPlugin.d.ts +8 -6
  224. package/types/Core/Interfaces/ICoordinates.d.ts +3 -3
  225. package/types/Core/Interfaces/IDimension.d.ts +2 -2
  226. package/types/Core/Interfaces/IDrawParticleParams.d.ts +6 -6
  227. package/types/Core/Interfaces/IExternalInteractor.d.ts +7 -7
  228. package/types/Core/Interfaces/IInteractor.d.ts +8 -8
  229. package/types/Core/Interfaces/ILoadParams.d.ts +2 -2
  230. package/types/Core/Interfaces/IMouseData.d.ts +1 -1
  231. package/types/Core/Interfaces/IMovePathGenerator.d.ts +5 -4
  232. package/types/Core/Interfaces/IParticle.d.ts +11 -11
  233. package/types/Core/Interfaces/IParticleHslAnimation.d.ts +1 -1
  234. package/types/Core/Interfaces/IParticleMover.d.ts +2 -2
  235. package/types/Core/Interfaces/IParticleRetinaProps.d.ts +1 -1
  236. package/types/Core/Interfaces/IParticleRoll.d.ts +1 -1
  237. package/types/Core/Interfaces/IParticleUpdater.d.ts +7 -9
  238. package/types/Core/Interfaces/IParticleValueAnimation.d.ts +3 -1
  239. package/types/Core/Interfaces/IParticlesInteractor.d.ts +3 -3
  240. package/types/Core/Interfaces/IPlugin.d.ts +7 -6
  241. package/types/Core/Interfaces/IPositionFromSizeParams.d.ts +2 -2
  242. package/types/Core/Interfaces/IShapeDrawer.d.ts +1 -1
  243. package/types/Core/Interfaces/IShapeValues.d.ts +2 -2
  244. package/types/Core/Interfaces/ITrailFillData.d.ts +1 -1
  245. package/types/Core/Particle.d.ts +27 -27
  246. package/types/Core/Particles.d.ts +24 -21
  247. package/types/Core/Retina.d.ts +2 -2
  248. package/types/Core/Utils/Circle.d.ts +2 -2
  249. package/types/Core/Utils/Constants.d.ts +4 -3
  250. package/types/Core/Utils/EventListeners.d.ts +21 -19
  251. package/types/Core/Utils/ExternalInteractorBase.d.ts +5 -5
  252. package/types/Core/Utils/InteractionManager.d.ts +5 -5
  253. package/types/Core/Utils/ParticlesInteractorBase.d.ts +5 -5
  254. package/types/Core/Utils/Point.d.ts +2 -2
  255. package/types/Core/Utils/QuadTree.d.ts +8 -11
  256. package/types/Core/Utils/Range.d.ts +1 -1
  257. package/types/Core/Utils/Rectangle.d.ts +3 -3
  258. package/types/Core/Utils/Vector.d.ts +2 -2
  259. package/types/Core/Utils/Vector3d.d.ts +3 -2
  260. package/types/Enums/Modes/{SizeMode.d.ts → PixelMode.d.ts} +1 -1
  261. package/types/Options/Classes/AnimatableColor.d.ts +6 -6
  262. package/types/Options/Classes/AnimationOptions.d.ts +7 -7
  263. package/types/Options/Classes/Background/Background.d.ts +4 -4
  264. package/types/Options/Classes/BackgroundMask/BackgroundMask.d.ts +4 -4
  265. package/types/Options/Classes/BackgroundMask/BackgroundMaskCover.d.ts +4 -4
  266. package/types/Options/Classes/ColorAnimation.d.ts +5 -4
  267. package/types/Options/Classes/FullScreen/FullScreen.d.ts +3 -3
  268. package/types/Options/Classes/HslAnimation.d.ts +4 -4
  269. package/types/Options/Classes/Interactivity/Events/ClickEvent.d.ts +5 -5
  270. package/types/Options/Classes/Interactivity/Events/DivEvent.d.ts +6 -12
  271. package/types/Options/Classes/Interactivity/Events/Events.d.ts +8 -14
  272. package/types/Options/Classes/Interactivity/Events/HoverEvent.d.ts +6 -6
  273. package/types/Options/Classes/Interactivity/Events/Parallax.d.ts +3 -3
  274. package/types/Options/Classes/Interactivity/Events/ResizeEvent.d.ts +3 -3
  275. package/types/Options/Classes/Interactivity/Interactivity.d.ts +8 -10
  276. package/types/Options/Classes/Interactivity/Modes/Modes.d.ts +5 -5
  277. package/types/Options/Classes/ManualParticle.d.ts +5 -5
  278. package/types/Options/Classes/Options.d.ts +19 -26
  279. package/types/Options/Classes/OptionsColor.d.ts +5 -5
  280. package/types/Options/Classes/Particles/Bounce/ParticlesBounce.d.ts +4 -4
  281. package/types/Options/Classes/Particles/Bounce/ParticlesBounceFactor.d.ts +1 -1
  282. package/types/Options/Classes/Particles/Collisions/Collisions.d.ts +9 -7
  283. package/types/Options/Classes/Particles/Collisions/CollisionsAbsorb.d.ts +3 -3
  284. package/types/Options/Classes/Particles/Collisions/CollisionsOverlap.d.ts +3 -3
  285. package/types/Options/Classes/Particles/Move/Move.d.ts +15 -26
  286. package/types/Options/Classes/Particles/Move/MoveAngle.d.ts +4 -4
  287. package/types/Options/Classes/Particles/Move/MoveAttract.d.ts +5 -9
  288. package/types/Options/Classes/Particles/Move/MoveCenter.d.ts +5 -5
  289. package/types/Options/Classes/Particles/Move/MoveGravity.d.ts +4 -4
  290. package/types/Options/Classes/Particles/Move/MoveTrail.d.ts +4 -7
  291. package/types/Options/Classes/Particles/Move/MoveTrailFill.d.ts +4 -4
  292. package/types/Options/Classes/Particles/Move/OutModes.d.ts +5 -5
  293. package/types/Options/Classes/Particles/Move/Path/MovePath.d.ts +5 -5
  294. package/types/Options/Classes/Particles/Move/Spin.d.ts +5 -5
  295. package/types/Options/Classes/Particles/Number/ParticlesDensity.d.ts +3 -9
  296. package/types/Options/Classes/Particles/Number/ParticlesNumber.d.ts +4 -6
  297. package/types/Options/Classes/Particles/Opacity/Opacity.d.ts +7 -7
  298. package/types/Options/Classes/Particles/Opacity/OpacityAnimation.d.ts +5 -7
  299. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +19 -19
  300. package/types/Options/Classes/Particles/Shadow.d.ts +5 -5
  301. package/types/Options/Classes/Particles/Shape/Shape.d.ts +5 -5
  302. package/types/Options/Classes/Particles/Size/Size.d.ts +7 -7
  303. package/types/Options/Classes/Particles/Size/SizeAnimation.d.ts +5 -7
  304. package/types/Options/Classes/Particles/Stroke.d.ts +5 -5
  305. package/types/Options/Classes/Particles/ZIndex/ZIndex.d.ts +4 -4
  306. package/types/Options/Classes/Random.d.ts +3 -3
  307. package/types/Options/Classes/Responsive.d.ts +7 -7
  308. package/types/Options/Classes/Theme/Theme.d.ts +6 -6
  309. package/types/Options/Classes/Theme/ThemeDefault.d.ts +4 -4
  310. package/types/Options/Classes/ValueWithRandom.d.ts +7 -11
  311. package/types/Options/Interfaces/Background/IBackground.d.ts +1 -1
  312. package/types/Options/Interfaces/BackgroundMask/IBackgroundMask.d.ts +2 -2
  313. package/types/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.d.ts +1 -1
  314. package/types/Options/Interfaces/IAnimatable.d.ts +1 -1
  315. package/types/Options/Interfaces/IAnimatableColor.d.ts +3 -3
  316. package/types/Options/Interfaces/IAnimation.d.ts +4 -4
  317. package/types/Options/Interfaces/IColorAnimation.d.ts +2 -2
  318. package/types/Options/Interfaces/IHslAnimation.d.ts +1 -1
  319. package/types/Options/Interfaces/IManualParticle.d.ts +3 -3
  320. package/types/Options/Interfaces/IOptionLoader.d.ts +1 -1
  321. package/types/Options/Interfaces/IOptions.d.ts +12 -15
  322. package/types/Options/Interfaces/IOptionsColor.d.ts +1 -1
  323. package/types/Options/Interfaces/IResponsive.d.ts +5 -4
  324. package/types/Options/Interfaces/IValueWithRandom.d.ts +3 -3
  325. package/types/Options/Interfaces/Interactivity/Events/IClickEvent.d.ts +2 -2
  326. package/types/Options/Interfaces/Interactivity/Events/IDivEvent.d.ts +3 -6
  327. package/types/Options/Interfaces/Interactivity/Events/IEvents.d.ts +5 -8
  328. package/types/Options/Interfaces/Interactivity/Events/IHoverEvent.d.ts +3 -3
  329. package/types/Options/Interfaces/Interactivity/IInteractivity.d.ts +3 -4
  330. package/types/Options/Interfaces/Interactivity/Modes/IModeDiv.d.ts +1 -2
  331. package/types/Options/Interfaces/Particles/Bounce/IParticlesBounce.d.ts +1 -1
  332. package/types/Options/Interfaces/Particles/Collisions/ICollisions.d.ts +6 -4
  333. package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +15 -15
  334. package/types/Options/Interfaces/Particles/IShadow.d.ts +2 -2
  335. package/types/Options/Interfaces/Particles/IStroke.d.ts +5 -4
  336. package/types/Options/Interfaces/Particles/Move/IMove.d.ts +12 -17
  337. package/types/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +1 -1
  338. package/types/Options/Interfaces/Particles/Move/IMoveAttract.d.ts +2 -4
  339. package/types/Options/Interfaces/Particles/Move/IMoveCenter.d.ts +1 -1
  340. package/types/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +1 -1
  341. package/types/Options/Interfaces/Particles/Move/IMoveTrail.d.ts +1 -3
  342. package/types/Options/Interfaces/Particles/Move/IMoveTrailFill.d.ts +1 -1
  343. package/types/Options/Interfaces/Particles/Move/IOutModes.d.ts +1 -1
  344. package/types/Options/Interfaces/Particles/Move/ISpin.d.ts +2 -2
  345. package/types/Options/Interfaces/Particles/Move/Path/IMovePath.d.ts +2 -2
  346. package/types/Options/Interfaces/Particles/Number/IParticlesDensity.d.ts +0 -3
  347. package/types/Options/Interfaces/Particles/Number/IParticlesNumber.d.ts +1 -2
  348. package/types/Options/Interfaces/Particles/Opacity/IOpacity.d.ts +2 -3
  349. package/types/Options/Interfaces/Particles/Opacity/IOpacityAnimation.d.ts +2 -3
  350. package/types/Options/Interfaces/Particles/Shape/IShape.d.ts +2 -2
  351. package/types/Options/Interfaces/Particles/Size/ISize.d.ts +2 -3
  352. package/types/Options/Interfaces/Particles/Size/ISizeAnimation.d.ts +2 -3
  353. package/types/Options/Interfaces/Particles/ZIndex/IZIndex.d.ts +1 -1
  354. package/types/Options/Interfaces/Theme/ITheme.d.ts +4 -3
  355. package/types/Options/Interfaces/Theme/IThemeDefault.d.ts +1 -1
  356. package/types/Types/CustomEventArgs.d.ts +1 -1
  357. package/types/Types/CustomEventListener.d.ts +1 -1
  358. package/types/Types/ExportResult.d.ts +5 -0
  359. package/types/Types/ISourceOptions.d.ts +2 -2
  360. package/types/Types/ParticlesGroups.d.ts +1 -1
  361. package/types/Types/RangeValue.d.ts +1 -1
  362. package/types/Types/ShapeData.d.ts +2 -2
  363. package/types/Types/ShapeDrawerFunctions.d.ts +3 -3
  364. package/types/Utils/CanvasUtils.d.ts +11 -14
  365. package/types/Utils/ColorUtils.d.ts +6 -6
  366. package/types/Utils/EventDispatcher.d.ts +2 -2
  367. package/types/Utils/HslColorManager.d.ts +2 -2
  368. package/types/Utils/NumberUtils.d.ts +8 -8
  369. package/types/Utils/OptionsUtils.d.ts +6 -6
  370. package/types/Utils/RgbColorManager.d.ts +2 -2
  371. package/types/Utils/Utils.d.ts +32 -14
  372. package/types/bundle.d.ts +2 -91
  373. package/types/export-types.d.ts +107 -0
  374. package/types/exports.d.ts +89 -0
  375. package/types/index.d.ts +3 -204
  376. package/types/init.d.ts +2 -0
  377. package/umd/Core/Canvas.js +279 -249
  378. package/umd/Core/Container.js +105 -121
  379. package/umd/Core/Engine.js +285 -0
  380. package/umd/Core/Particle.js +174 -181
  381. package/umd/Core/Particles.js +155 -150
  382. package/umd/Core/Retina.js +21 -19
  383. package/umd/Core/Utils/Circle.js +15 -11
  384. package/umd/Core/Utils/Constants.js +5 -4
  385. package/umd/Core/Utils/EventListeners.js +268 -244
  386. package/umd/Core/Utils/InteractionManager.js +6 -16
  387. package/umd/Core/Utils/QuadTree.js +21 -27
  388. package/umd/Core/Utils/Rectangle.js +5 -5
  389. package/umd/Core/Utils/Vector.js +3 -3
  390. package/umd/Core/Utils/Vector3d.js +18 -10
  391. package/umd/Options/Classes/AnimatableColor.js +7 -6
  392. package/umd/Options/Classes/AnimationOptions.js +9 -8
  393. package/umd/Options/Classes/Background/Background.js +4 -4
  394. package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +5 -4
  395. package/umd/Options/Classes/BackgroundMask/BackgroundMaskCover.js +4 -4
  396. package/umd/Options/Classes/ColorAnimation.js +10 -6
  397. package/umd/Options/Classes/HslAnimation.js +5 -5
  398. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +1 -25
  399. package/umd/Options/Classes/Interactivity/Events/Events.js +16 -35
  400. package/umd/Options/Classes/Interactivity/Events/HoverEvent.js +3 -3
  401. package/umd/Options/Classes/Interactivity/Interactivity.js +6 -13
  402. package/umd/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  403. package/umd/Options/Classes/ManualParticle.js +8 -9
  404. package/umd/Options/Classes/Options.js +42 -62
  405. package/umd/Options/Classes/OptionsColor.js +4 -3
  406. package/umd/Options/Classes/Particles/Bounce/ParticlesBounce.js +4 -4
  407. package/umd/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js +3 -3
  408. package/umd/Options/Classes/Particles/Collisions/Collisions.js +12 -7
  409. package/umd/Options/Classes/Particles/Move/Move.js +32 -62
  410. package/umd/Options/Classes/Particles/Move/MoveAngle.js +4 -4
  411. package/umd/Options/Classes/Particles/Move/MoveAttract.js +12 -23
  412. package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -4
  413. package/umd/Options/Classes/Particles/Move/MoveTrail.js +5 -11
  414. package/umd/Options/Classes/Particles/Move/MoveTrailFill.js +3 -3
  415. package/umd/Options/Classes/Particles/Move/OutModes.js +4 -5
  416. package/umd/Options/Classes/Particles/Move/Path/MovePath.js +5 -5
  417. package/umd/Options/Classes/Particles/Move/Spin.js +7 -5
  418. package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  419. package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +5 -12
  420. package/umd/Options/Classes/Particles/Opacity/Opacity.js +14 -10
  421. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +3 -12
  422. package/umd/Options/Classes/Particles/ParticlesOptions.js +33 -38
  423. package/umd/Options/Classes/Particles/Shadow.js +4 -4
  424. package/umd/Options/Classes/Particles/Shape/Shape.js +11 -12
  425. package/umd/Options/Classes/Particles/Size/Size.js +14 -10
  426. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +3 -12
  427. package/umd/Options/Classes/Particles/Stroke.js +6 -6
  428. package/umd/Options/Classes/Particles/ZIndex/ZIndex.js +3 -3
  429. package/umd/Options/Classes/Responsive.js +3 -3
  430. package/umd/Options/Classes/Theme/Theme.js +5 -5
  431. package/umd/Options/Classes/ValueWithRandom.js +11 -24
  432. package/umd/Utils/CanvasUtils.js +24 -61
  433. package/umd/Utils/ColorUtils.js +32 -34
  434. package/umd/Utils/EventDispatcher.js +7 -6
  435. package/umd/Utils/HslColorManager.js +12 -14
  436. package/umd/Utils/NumberUtils.js +45 -49
  437. package/umd/Utils/OptionsUtils.js +3 -3
  438. package/umd/Utils/RgbColorManager.js +8 -10
  439. package/umd/Utils/Utils.js +158 -78
  440. package/umd/bundle.js +5 -98
  441. package/umd/export-types.js +123 -0
  442. package/umd/exports.js +115 -0
  443. package/umd/index.js +9 -200
  444. package/umd/init.js +26 -0
  445. package/browser/Core/Utils/FrameManager.js +0 -42
  446. package/browser/Core/Utils/Plugins.js +0 -112
  447. package/browser/Options/Interfaces/Particles/Shape/IImageShape.js +0 -1
  448. package/browser/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -1
  449. package/browser/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -1
  450. package/browser/Options/Interfaces/Particles/Shape/IStarShape.js +0 -1
  451. package/browser/engine.js +0 -175
  452. package/cjs/Core/Utils/FrameManager.js +0 -46
  453. package/cjs/Core/Utils/Plugins.js +0 -116
  454. package/cjs/Enums/Modes/SizeMode.js +0 -2
  455. package/cjs/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -2
  456. package/cjs/Options/Interfaces/Particles/Shape/IImageShape.js +0 -2
  457. package/cjs/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -2
  458. package/cjs/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -17
  459. package/cjs/Options/Interfaces/Particles/Shape/IStarShape.js +0 -2
  460. package/cjs/engine.js +0 -179
  461. package/esm/Core/Interfaces/IParticleOverride.js +0 -1
  462. package/esm/Core/Interfaces/IParticlesMover.js +0 -1
  463. package/esm/Core/Utils/FrameManager.js +0 -42
  464. package/esm/Core/Utils/Plugins.js +0 -112
  465. package/esm/Enums/Modes/SizeMode.js +0 -1
  466. package/esm/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -1
  467. package/esm/Options/Interfaces/Particles/Shape/IImageShape.js +0 -1
  468. package/esm/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -1
  469. package/esm/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -1
  470. package/esm/Options/Interfaces/Particles/Shape/IStarShape.js +0 -1
  471. package/esm/engine.js +0 -175
  472. package/types/Core/Interfaces/IParticleOverride.d.ts +0 -6
  473. package/types/Core/Interfaces/IParticlesMover.d.ts +0 -7
  474. package/types/Core/Utils/FrameManager.d.ts +0 -6
  475. package/types/Core/Utils/Plugins.d.ts +0 -51
  476. package/types/Options/Interfaces/Particles/Shape/ICharacterShape.d.ts +0 -8
  477. package/types/Options/Interfaces/Particles/Shape/IImageShape.d.ts +0 -8
  478. package/types/Options/Interfaces/Particles/Shape/IPolygonShape.d.ts +0 -5
  479. package/types/Options/Interfaces/Particles/Shape/IShapeValues.d.ts +0 -1
  480. package/types/Options/Interfaces/Particles/Shape/IStarShape.d.ts +0 -6
  481. package/types/engine.d.ts +0 -39
  482. package/umd/Core/Utils/FrameManager.js +0 -56
  483. package/umd/Core/Utils/Plugins.js +0 -126
  484. package/umd/Enums/Modes/SizeMode.js +0 -12
  485. package/umd/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -12
  486. package/umd/Options/Interfaces/Particles/Shape/IImageShape.js +0 -12
  487. package/umd/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -12
  488. package/umd/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -27
  489. package/umd/Options/Interfaces/Particles/Shape/IStarShape.js +0 -12
  490. package/umd/engine.js +0 -189
  491. /package/browser/{Core/Interfaces/IParticleOverride.js → Enums/Modes/PixelMode.js} +0 -0
  492. /package/browser/{Core/Interfaces/IParticlesMover.js → Types/ExportResult.js} +0 -0
  493. /package/cjs/{Core/Interfaces/IParticleOverride.js → Enums/Modes/PixelMode.js} +0 -0
  494. /package/cjs/{Core/Interfaces/IParticlesMover.js → Types/ExportResult.js} +0 -0
  495. /package/{browser/Enums/Modes/SizeMode.js → esm/Enums/Modes/PixelMode.js} +0 -0
  496. /package/{browser/Options/Interfaces/Particles/Shape/ICharacterShape.js → esm/Types/ExportResult.js} +0 -0
  497. /package/umd/{Core/Interfaces/IParticleOverride.js → Enums/Modes/PixelMode.js} +0 -0
  498. /package/umd/{Core/Interfaces/IParticlesMover.js → Types/ExportResult.js} +0 -0
@@ -1,7 +1,7 @@
1
- import { AnimationOptions } from "./AnimationOptions";
2
- import { Random } from "./Random";
3
- import { RangedAnimationOptions } from "./AnimationOptions";
4
- import { setRangeValue } from "../../Utils/NumberUtils";
1
+ import { AnimationOptions, RangedAnimationOptions } from "./AnimationOptions.js";
2
+ import { Random } from "./Random.js";
3
+ import { isBoolean } from "../../Utils/Utils.js";
4
+ import { setRangeValue } from "../../Utils/NumberUtils.js";
5
5
  export class ValueWithRandom {
6
6
  constructor() {
7
7
  this.random = new Random();
@@ -11,7 +11,7 @@ export class ValueWithRandom {
11
11
  if (!data) {
12
12
  return;
13
13
  }
14
- if (typeof data.random === "boolean") {
14
+ if (isBoolean(data.random)) {
15
15
  this.random.enable = data.random;
16
16
  }
17
17
  else {
@@ -27,19 +27,12 @@ export class AnimationValueWithRandom extends ValueWithRandom {
27
27
  super();
28
28
  this.animation = new AnimationOptions();
29
29
  }
30
- get anim() {
31
- return this.animation;
32
- }
33
- set anim(value) {
34
- this.animation = value;
35
- }
36
30
  load(data) {
37
- var _a;
38
31
  super.load(data);
39
32
  if (!data) {
40
33
  return;
41
34
  }
42
- const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;
35
+ const animation = data.animation;
43
36
  if (animation !== undefined) {
44
37
  this.animation.load(animation);
45
38
  }
@@ -52,11 +45,5 @@ export class RangedAnimationValueWithRandom extends AnimationValueWithRandom {
52
45
  }
53
46
  load(data) {
54
47
  super.load(data);
55
- if (!data) {
56
- return;
57
- }
58
- if (data.animation !== undefined) {
59
- this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);
60
- }
61
48
  }
62
49
  }
@@ -1,51 +1,4 @@
1
- import { getStyleFromRgb } from "./ColorUtils";
2
- function paintBase(context, dimension, baseColor) {
3
- context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : "rgba(0,0,0,0)";
4
- context.fillRect(0, 0, dimension.width, dimension.height);
5
- }
6
- function paintImage(context, dimension, image, opacity) {
7
- if (!image) {
8
- return;
9
- }
10
- context.globalAlpha = opacity;
11
- context.drawImage(image, 0, 0, dimension.width, dimension.height);
12
- context.globalAlpha = 1;
13
- }
14
- export function getContext(canvas) {
15
- const context = canvas.getContext("2d");
16
- if (!context) {
17
- throw new Error("Error tsParticles - No canvas context found");
18
- }
19
- return context;
20
- }
21
- export function clearCanvas(context, size, options, trailFill, coverColorStyle) {
22
- if (options.backgroundMask.enable) {
23
- paintCanvas(context, size, options, coverColorStyle);
24
- }
25
- else {
26
- const trail = options.particles.move.trail;
27
- if (trail.enable && trail.length > 0 && trailFill) {
28
- if (trailFill.color) {
29
- paintBase(context, size, getStyleFromRgb(trailFill.color, trailFill.opacity));
30
- }
31
- else if (trailFill.image) {
32
- paintImage(context, size, trailFill.image, trailFill.opacity);
33
- }
34
- }
35
- else {
36
- clear(context, size);
37
- }
38
- }
39
- }
40
- export function paintCanvas(context, size, options, coverColorStyle) {
41
- if (options.backgroundMask.enable && coverColorStyle) {
42
- clear(context, size);
43
- paintBase(context, size, coverColorStyle);
44
- }
45
- else {
46
- paintBase(context, size);
47
- }
48
- }
1
+ import { getStyleFromRgb } from "./ColorUtils.js";
49
2
  export function drawLine(context, begin, end) {
50
3
  context.beginPath();
51
4
  context.moveTo(begin.x, begin.y);
@@ -59,20 +12,31 @@ export function drawTriangle(context, p1, p2, p3) {
59
12
  context.lineTo(p3.x, p3.y);
60
13
  context.closePath();
61
14
  }
15
+ export function paintBase(context, dimension, baseColor) {
16
+ context.fillStyle = baseColor ?? "rgba(0,0,0,0)";
17
+ context.fillRect(0, 0, dimension.width, dimension.height);
18
+ }
19
+ export function paintImage(context, dimension, image, opacity) {
20
+ if (!image) {
21
+ return;
22
+ }
23
+ context.globalAlpha = opacity;
24
+ context.drawImage(image, 0, 0, dimension.width, dimension.height);
25
+ context.globalAlpha = 1;
26
+ }
62
27
  export function clear(context, dimension) {
63
28
  context.clearRect(0, 0, dimension.width, dimension.height);
64
29
  }
65
30
  export function drawParticle(data) {
66
- var _a, _b, _c, _d, _e;
67
31
  const { container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow, transform, } = data;
68
32
  const pos = particle.getPosition(), angle = particle.rotation + (particle.pathRotation ? particle.velocity.angle : 0), rotateData = {
69
33
  sin: Math.sin(angle),
70
34
  cos: Math.cos(angle),
71
35
  }, transformData = {
72
- a: rotateData.cos * ((_a = transform.a) !== null && _a !== void 0 ? _a : 1),
73
- b: rotateData.sin * ((_b = transform.b) !== null && _b !== void 0 ? _b : 1),
74
- c: -rotateData.sin * ((_c = transform.c) !== null && _c !== void 0 ? _c : 1),
75
- d: rotateData.cos * ((_d = transform.d) !== null && _d !== void 0 ? _d : 1),
36
+ a: rotateData.cos * (transform.a ?? 1),
37
+ b: rotateData.sin * (transform.b ?? 1),
38
+ c: -rotateData.sin * (transform.c ?? 1),
39
+ d: rotateData.cos * (transform.d ?? 1),
76
40
  };
77
41
  context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);
78
42
  context.beginPath();
@@ -89,7 +53,7 @@ export function drawParticle(data) {
89
53
  if (colorStyles.fill) {
90
54
  context.fillStyle = colorStyles.fill;
91
55
  }
92
- const strokeWidth = (_e = particle.strokeWidth) !== null && _e !== void 0 ? _e : 0;
56
+ const strokeWidth = particle.strokeWidth ?? 0;
93
57
  context.lineWidth = strokeWidth;
94
58
  if (colorStyles.stroke) {
95
59
  context.strokeStyle = colorStyles.stroke;
@@ -123,7 +87,7 @@ export function drawShapeAfterEffect(container, context, particle, radius, opaci
123
87
  return;
124
88
  }
125
89
  const drawer = container.drawers.get(particle.shape);
126
- if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {
90
+ if (!drawer || !drawer.afterEffect) {
127
91
  return;
128
92
  }
129
93
  drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);
@@ -1,5 +1,5 @@
1
- import { getRandom, getRangeValue, mix, randomInRange, setRangeValue } from "./NumberUtils";
2
- import { itemFromArray } from "./Utils";
1
+ import { getRandom, getRangeValue, mix, randomInRange, setRangeValue } from "./NumberUtils.js";
2
+ import { isArray, isString, itemFromArray } from "./Utils.js";
3
3
  const randomColorValue = "random", midColorValue = "mid", colorManagers = new Map();
4
4
  export function addColorManager(manager) {
5
5
  colorManagers.set(manager.key, manager);
@@ -44,11 +44,11 @@ export function rangeColorToRgb(input, index, useIndex = true) {
44
44
  if (!input) {
45
45
  return;
46
46
  }
47
- const color = typeof input === "string" ? { value: input } : input;
48
- if (typeof color.value === "string") {
47
+ const color = isString(input) ? { value: input } : input;
48
+ if (isString(color.value)) {
49
49
  return colorToRgb(color.value, index, useIndex);
50
50
  }
51
- if (color.value instanceof Array) {
51
+ if (isArray(color.value)) {
52
52
  return rangeColorToRgb({
53
53
  value: itemFromArray(color.value, index, useIndex),
54
54
  });
@@ -64,11 +64,11 @@ export function colorToRgb(input, index, useIndex = true) {
64
64
  if (!input) {
65
65
  return;
66
66
  }
67
- const color = typeof input === "string" ? { value: input } : input;
68
- if (typeof color.value === "string") {
67
+ const color = isString(input) ? { value: input } : input;
68
+ if (isString(color.value)) {
69
69
  return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);
70
70
  }
71
- if (color.value instanceof Array) {
71
+ if (isArray(color.value)) {
72
72
  return colorToRgb({
73
73
  value: itemFromArray(color.value, index, useIndex),
74
74
  });
@@ -113,8 +113,7 @@ export function rgbToHsl(color) {
113
113
  return res;
114
114
  }
115
115
  export function stringToAlpha(input) {
116
- var _a;
117
- return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;
116
+ return stringToRgba(input)?.a;
118
117
  }
119
118
  export function stringToRgb(input) {
120
119
  return stringToRgba(input);
@@ -126,9 +125,7 @@ export function hslToRgb(hsl) {
126
125
  s: hsl.s / 100,
127
126
  };
128
127
  if (!hslPercent.s) {
129
- result.b = hslPercent.l;
130
- result.g = hslPercent.l;
131
- result.r = hslPercent.l;
128
+ result.r = result.g = result.b = hslPercent.l;
132
129
  }
133
130
  else {
134
131
  const q = hslPercent.l < 0.5
@@ -153,7 +150,7 @@ export function hslaToRgba(hsla) {
153
150
  };
154
151
  }
155
152
  export function getRandomRgbColor(min) {
156
- const fixedMin = min !== null && min !== void 0 ? min : 0;
153
+ const fixedMin = min ?? 0;
157
154
  return {
158
155
  b: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),
159
156
  g: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),
@@ -161,10 +158,10 @@ export function getRandomRgbColor(min) {
161
158
  };
162
159
  }
163
160
  export function getStyleFromRgb(color, opacity) {
164
- return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;
161
+ return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity ?? 1})`;
165
162
  }
166
163
  export function getStyleFromHsl(color, opacity) {
167
- return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;
164
+ return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity ?? 1})`;
168
165
  }
169
166
  export function colorMix(color1, color2, size1, size2) {
170
167
  let rgb1 = color1, rgb2 = color2;
@@ -181,17 +178,16 @@ export function colorMix(color1, color2, size1, size2) {
181
178
  };
182
179
  }
183
180
  export function getLinkColor(p1, p2, linkColor) {
184
- var _a, _b;
185
181
  if (linkColor === randomColorValue) {
186
182
  return getRandomRgbColor();
187
183
  }
188
184
  else if (linkColor === midColorValue) {
189
- const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor(), destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();
185
+ const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(), destColor = p2?.getFillColor() ?? p2?.getStrokeColor();
190
186
  if (sourceColor && destColor && p2) {
191
187
  return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());
192
188
  }
193
189
  else {
194
- const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;
190
+ const hslColor = sourceColor ?? destColor;
195
191
  if (hslColor) {
196
192
  return hslToRgb(hslColor);
197
193
  }
@@ -202,7 +198,7 @@ export function getLinkColor(p1, p2, linkColor) {
202
198
  }
203
199
  }
204
200
  export function getLinkRandomColor(optColor, blink, consent) {
205
- const color = typeof optColor === "string" ? optColor : optColor.value;
201
+ const color = isString(optColor) ? optColor : optColor.value;
206
202
  if (color === randomColorValue) {
207
203
  if (consent) {
208
204
  return rangeColorToRgb({
@@ -262,6 +258,8 @@ function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
262
258
  colorValue.status = "increasing";
263
259
  colorValue.loops = 0;
264
260
  colorValue.maxLoops = getRangeValue(colorAnimation.count);
261
+ colorValue.time = 0;
262
+ colorValue.delayTime = getRangeValue(colorAnimation.delay) * 1000;
265
263
  if (!colorAnimation.sync) {
266
264
  colorValue.velocity *= getRandom();
267
265
  colorValue.value *= getRandom();
@@ -3,16 +3,17 @@ export class EventDispatcher {
3
3
  this._listeners = new Map();
4
4
  }
5
5
  addEventListener(type, listener) {
6
- var _a;
7
6
  this.removeEventListener(type, listener);
8
- if (!this._listeners.get(type)) {
9
- this._listeners.set(type, []);
7
+ let arr = this._listeners.get(type);
8
+ if (!arr) {
9
+ arr = [];
10
+ this._listeners.set(type, arr);
10
11
  }
11
- (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.push(listener);
12
+ arr.push(listener);
12
13
  }
13
14
  dispatchEvent(type, args) {
14
- var _a;
15
- (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => handler(args));
15
+ const listeners = this._listeners.get(type);
16
+ listeners && listeners.forEach((handler) => handler(args));
16
17
  }
17
18
  hasEventListener(type) {
18
19
  return !!this._listeners.get(type);
@@ -1,20 +1,18 @@
1
- import { getRangeValue, parseAlpha } from "./NumberUtils";
2
- import { hslToRgb, hslaToRgba } from "./ColorUtils";
1
+ import { getRangeValue, parseAlpha } from "./NumberUtils.js";
2
+ import { hslToRgb, hslaToRgba } from "./ColorUtils.js";
3
3
  export class HslColorManager {
4
4
  constructor() {
5
5
  this.key = "hsl";
6
6
  this.stringPrefix = "hsl";
7
7
  }
8
8
  handleColor(color) {
9
- var _a;
10
- const colorValue = color.value, hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;
9
+ const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;
11
10
  if (hslColor.h !== undefined && hslColor.s !== undefined && hslColor.l !== undefined) {
12
11
  return hslToRgb(hslColor);
13
12
  }
14
13
  }
15
14
  handleRangeColor(color) {
16
- var _a;
17
- const colorValue = color.value, hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;
15
+ const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;
18
16
  if (hslColor.h !== undefined && hslColor.l !== undefined) {
19
17
  return hslToRgb({
20
18
  h: getRangeValue(hslColor.h),
@@ -1,10 +1,12 @@
1
- import { Vector } from "../Core/Utils/Vector";
1
+ import { isBoolean, isNumber } from "./Utils.js";
2
+ import { Vector } from "../Core/Utils/Vector.js";
2
3
  let _random = Math.random;
3
4
  const easings = new Map();
4
5
  export function addEasing(name, easing) {
5
- if (!easings.get(name)) {
6
- easings.set(name, easing);
6
+ if (easings.get(name)) {
7
+ return;
7
8
  }
9
+ easings.set(name, easing);
8
10
  }
9
11
  export function getEasing(name) {
10
12
  return easings.get(name) || ((value) => value);
@@ -30,16 +32,16 @@ export function randomInRange(r) {
30
32
  return getRandom() * (max - min) + min;
31
33
  }
32
34
  export function getRangeValue(value) {
33
- return typeof value === "number" ? value : randomInRange(value);
35
+ return isNumber(value) ? value : randomInRange(value);
34
36
  }
35
37
  export function getRangeMin(value) {
36
- return typeof value === "number" ? value : value.min;
38
+ return isNumber(value) ? value : value.min;
37
39
  }
38
40
  export function getRangeMax(value) {
39
- return typeof value === "number" ? value : value.max;
41
+ return isNumber(value) ? value : value.max;
40
42
  }
41
43
  export function setRangeValue(source, value) {
42
- if (source === value || (value === undefined && typeof source === "number")) {
44
+ if (source === value || (value === undefined && isNumber(source))) {
43
45
  return source;
44
46
  }
45
47
  const min = getRangeMin(source), max = getRangeMax(source);
@@ -51,7 +53,7 @@ export function setRangeValue(source, value) {
51
53
  : setRangeValue(min, max);
52
54
  }
53
55
  export function getValue(options) {
54
- const random = options.random, { enable, minimumValue } = typeof random === "boolean"
56
+ const random = options.random, { enable, minimumValue } = isBoolean(random)
55
57
  ? {
56
58
  enable: random,
57
59
  minimumValue: 0,
@@ -67,34 +69,32 @@ export function getDistance(pointA, pointB) {
67
69
  return getDistances(pointA, pointB).distance;
68
70
  }
69
71
  export function getParticleDirectionAngle(direction, position, center) {
70
- if (typeof direction === "number") {
72
+ if (isNumber(direction)) {
71
73
  return (direction * Math.PI) / 180;
72
74
  }
73
- else {
74
- switch (direction) {
75
- case "top":
76
- return -Math.PI / 2;
77
- case "top-right":
78
- return -Math.PI / 4;
79
- case "right":
80
- return 0;
81
- case "bottom-right":
82
- return Math.PI / 4;
83
- case "bottom":
84
- return Math.PI / 2;
85
- case "bottom-left":
86
- return (3 * Math.PI) / 4;
87
- case "left":
88
- return Math.PI;
89
- case "top-left":
90
- return (-3 * Math.PI) / 4;
91
- case "inside":
92
- return Math.atan2(center.y - position.y, center.x - position.x);
93
- case "outside":
94
- return Math.atan2(position.y - center.y, position.x - center.x);
95
- default:
96
- return getRandom() * Math.PI * 2;
97
- }
75
+ switch (direction) {
76
+ case "top":
77
+ return -Math.PI / 2;
78
+ case "top-right":
79
+ return -Math.PI / 4;
80
+ case "right":
81
+ return 0;
82
+ case "bottom-right":
83
+ return Math.PI / 4;
84
+ case "bottom":
85
+ return Math.PI / 2;
86
+ case "bottom-left":
87
+ return (3 * Math.PI) / 4;
88
+ case "left":
89
+ return Math.PI;
90
+ case "top-left":
91
+ return (-3 * Math.PI) / 4;
92
+ case "inside":
93
+ return Math.atan2(center.y - position.y, center.x - position.x);
94
+ case "outside":
95
+ return Math.atan2(position.y - center.y, position.x - center.x);
96
+ default:
97
+ return getRandom() * Math.PI * 2;
98
98
  }
99
99
  }
100
100
  export function getParticleBaseVelocity(direction) {
@@ -115,32 +115,28 @@ export function calcPositionFromSize(data) {
115
115
  : undefined;
116
116
  }
117
117
  export function calcPositionOrRandomFromSize(data) {
118
- var _a, _b, _c, _d;
119
118
  return {
120
- x: (((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * 100) * data.size.width) / 100,
121
- y: (((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * 100) * data.size.height) / 100,
119
+ x: ((data.position?.x ?? getRandom() * 100) * data.size.width) / 100,
120
+ y: ((data.position?.y ?? getRandom() * 100) * data.size.height) / 100,
122
121
  };
123
122
  }
124
123
  export function calcPositionOrRandomFromSizeRanged(data) {
125
- var _a, _b;
126
124
  const position = {
127
- x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,
128
- y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,
125
+ x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
126
+ y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,
129
127
  };
130
128
  return calcPositionOrRandomFromSize({ size: data.size, position });
131
129
  }
132
130
  export function calcExactPositionOrRandomFromSize(data) {
133
- var _a, _b, _c, _d;
134
131
  return {
135
- x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * data.size.width,
136
- y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * data.size.height,
132
+ x: data.position?.x ?? getRandom() * data.size.width,
133
+ y: data.position?.y ?? getRandom() * data.size.height,
137
134
  };
138
135
  }
139
136
  export function calcExactPositionOrRandomFromSizeRanged(data) {
140
- var _a, _b;
141
137
  const position = {
142
- x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,
143
- y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,
138
+ x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
139
+ y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,
144
140
  };
145
141
  return calcExactPositionOrRandomFromSize({ size: data.size, position });
146
142
  }
@@ -1,4 +1,4 @@
1
- import { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions";
1
+ import { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions.js";
2
2
  export function loadOptions(options, ...sourceOptionsArr) {
3
3
  for (const sourceOptions of sourceOptionsArr) {
4
4
  options.load(sourceOptions);
@@ -1,19 +1,17 @@
1
- import { getRangeValue, parseAlpha } from "./NumberUtils";
1
+ import { getRangeValue, parseAlpha } from "./NumberUtils.js";
2
2
  export class RgbColorManager {
3
3
  constructor() {
4
4
  this.key = "rgb";
5
5
  this.stringPrefix = "rgb";
6
6
  }
7
7
  handleColor(color) {
8
- var _a;
9
- const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;
8
+ const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;
10
9
  if (rgbColor.r !== undefined) {
11
10
  return rgbColor;
12
11
  }
13
12
  }
14
13
  handleRangeColor(color) {
15
- var _a;
16
- const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;
14
+ const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;
17
15
  if (rgbColor.r !== undefined) {
18
16
  return {
19
17
  r: getRangeValue(rgbColor.r),