@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,26 @@
1
- import { collisionVelocity, getDistances, getRandom, getRangeMax, getRangeMin, getRangeValue, getValue, randomInRange, } from "./NumberUtils";
2
- import { Vector } from "../Core/Utils/Vector";
3
- function rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {
4
- const res = { bounced: false };
1
+ import { collisionVelocity, getDistances, getRandom, getRangeMax, getRangeMin, getRangeValue, getValue, randomInRange, } from "./NumberUtils.js";
2
+ import { Vector } from "../Core/Utils/Vector.js";
3
+ const _logger = {
4
+ debug: console.debug,
5
+ error: console.error,
6
+ info: console.info,
7
+ log: console.log,
8
+ verbose: console.log,
9
+ warning: console.warn,
10
+ };
11
+ export function setLogger(logger) {
12
+ _logger.debug = logger.debug || _logger.debug;
13
+ _logger.error = logger.error || _logger.error;
14
+ _logger.info = logger.info || _logger.info;
15
+ _logger.log = logger.log || _logger.log;
16
+ _logger.verbose = logger.verbose || _logger.verbose;
17
+ _logger.warning = logger.warning || _logger.warning;
18
+ }
19
+ export function getLogger() {
20
+ return _logger;
21
+ }
22
+ function rectSideBounce(data) {
23
+ const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data;
5
24
  if (pOtherSide.min < rectOtherSide.min ||
6
25
  pOtherSide.min > rectOtherSide.max ||
7
26
  pOtherSide.max < rectOtherSide.min ||
@@ -19,7 +38,7 @@ function checkSelector(element, selectors) {
19
38
  const res = executeOnSingleOrMultiple(selectors, (selector) => {
20
39
  return element.matches(selector);
21
40
  });
22
- return res instanceof Array ? res.some((t) => t) : res;
41
+ return isArray(res) ? res.some((t) => t) : res;
23
42
  }
24
43
  export function isSsr() {
25
44
  return typeof window === "undefined" || !window || typeof window.document === "undefined" || !window.document;
@@ -33,24 +52,20 @@ export function safeMatchMedia(query) {
33
52
  }
34
53
  return matchMedia(query);
35
54
  }
36
- export function animate() {
37
- return isSsr()
38
- ? (callback) => setTimeout(callback)
39
- : (callback) => (requestAnimationFrame || setTimeout)(callback);
40
- }
41
- export function cancelAnimation() {
42
- return isSsr()
43
- ? (handle) => clearTimeout(handle)
44
- : (handle) => (cancelAnimationFrame || clearTimeout)(handle);
55
+ export function safeMutationObserver(callback) {
56
+ if (isSsr() || typeof MutationObserver === "undefined") {
57
+ return;
58
+ }
59
+ return new MutationObserver(callback);
45
60
  }
46
61
  export function isInArray(value, array) {
47
- return value === array || (array instanceof Array && array.indexOf(value) > -1);
62
+ return value === array || (isArray(array) && array.indexOf(value) > -1);
48
63
  }
49
64
  export async function loadFont(font, weight) {
50
65
  try {
51
- await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : "400"} 36px '${font !== null && font !== void 0 ? font : "Verdana"}'`);
66
+ await document.fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`);
52
67
  }
53
- catch (_a) {
68
+ catch {
54
69
  }
55
70
  }
56
71
  export function arrayRandomIndex(array) {
@@ -60,7 +75,7 @@ export function itemFromArray(array, index, useIndex = true) {
60
75
  return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];
61
76
  }
62
77
  export function isPointInside(point, size, offset, radius, direction) {
63
- return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);
78
+ return areBoundsInside(calculateBounds(point, radius ?? 0), size, offset, direction);
64
79
  }
65
80
  export function areBoundsInside(bounds, size, offset, direction) {
66
81
  let inside = true;
@@ -91,24 +106,24 @@ export function deepExtend(destination, ...sources) {
91
106
  if (source === undefined || source === null) {
92
107
  continue;
93
108
  }
94
- if (typeof source !== "object") {
109
+ if (!isObject(source)) {
95
110
  destination = source;
96
111
  continue;
97
112
  }
98
113
  const sourceIsArray = Array.isArray(source);
99
- if (sourceIsArray && (typeof destination !== "object" || !destination || !Array.isArray(destination))) {
114
+ if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {
100
115
  destination = [];
101
116
  }
102
- else if (!sourceIsArray && (typeof destination !== "object" || !destination || Array.isArray(destination))) {
117
+ else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {
103
118
  destination = {};
104
119
  }
105
120
  for (const key in source) {
106
121
  if (key === "__proto__") {
107
122
  continue;
108
123
  }
109
- const sourceDict = source, value = sourceDict[key], isObject = typeof value === "object", destDict = destination;
124
+ const sourceDict = source, value = sourceDict[key], destDict = destination;
110
125
  destDict[key] =
111
- isObject && Array.isArray(value)
126
+ isObject(value) && Array.isArray(value)
112
127
  ? value.map((v) => deepExtend(destDict[key], v))
113
128
  : deepExtend(destDict[key], value);
114
129
  }
@@ -162,18 +177,25 @@ export function circleBounce(p1, p2) {
162
177
  }
163
178
  export function rectBounce(particle, divBounds) {
164
179
  const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), resH = rectSideBounce({
165
- min: bounds.left,
166
- max: bounds.right,
167
- }, {
168
- min: bounds.top,
169
- max: bounds.bottom,
170
- }, {
171
- min: divBounds.left,
172
- max: divBounds.right,
173
- }, {
174
- min: divBounds.top,
175
- max: divBounds.bottom,
176
- }, particle.velocity.x, getValue(particle.options.bounce.horizontal));
180
+ pSide: {
181
+ min: bounds.left,
182
+ max: bounds.right,
183
+ },
184
+ pOtherSide: {
185
+ min: bounds.top,
186
+ max: bounds.bottom,
187
+ },
188
+ rectSide: {
189
+ min: divBounds.left,
190
+ max: divBounds.right,
191
+ },
192
+ rectOtherSide: {
193
+ min: divBounds.top,
194
+ max: divBounds.bottom,
195
+ },
196
+ velocity: particle.velocity.x,
197
+ factor: getValue(particle.options.bounce.horizontal),
198
+ });
177
199
  if (resH.bounced) {
178
200
  if (resH.velocity !== undefined) {
179
201
  particle.velocity.x = resH.velocity;
@@ -183,18 +205,25 @@ export function rectBounce(particle, divBounds) {
183
205
  }
184
206
  }
185
207
  const resV = rectSideBounce({
186
- min: bounds.top,
187
- max: bounds.bottom,
188
- }, {
189
- min: bounds.left,
190
- max: bounds.right,
191
- }, {
192
- min: divBounds.top,
193
- max: divBounds.bottom,
194
- }, {
195
- min: divBounds.left,
196
- max: divBounds.right,
197
- }, particle.velocity.y, getValue(particle.options.bounce.vertical));
208
+ pSide: {
209
+ min: bounds.top,
210
+ max: bounds.bottom,
211
+ },
212
+ pOtherSide: {
213
+ min: bounds.left,
214
+ max: bounds.right,
215
+ },
216
+ rectSide: {
217
+ min: divBounds.top,
218
+ max: divBounds.bottom,
219
+ },
220
+ rectOtherSide: {
221
+ min: divBounds.left,
222
+ max: divBounds.right,
223
+ },
224
+ velocity: particle.velocity.y,
225
+ factor: getValue(particle.options.bounce.vertical),
226
+ });
198
227
  if (resV.bounced) {
199
228
  if (resV.velocity !== undefined) {
200
229
  particle.velocity.y = resV.velocity;
@@ -205,27 +234,27 @@ export function rectBounce(particle, divBounds) {
205
234
  }
206
235
  }
207
236
  export function executeOnSingleOrMultiple(obj, callback) {
208
- return obj instanceof Array ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
237
+ return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
209
238
  }
210
239
  export function itemFromSingleOrMultiple(obj, index, useIndex) {
211
- return obj instanceof Array ? itemFromArray(obj, index, useIndex) : obj;
240
+ return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;
212
241
  }
213
242
  export function findItemFromSingleOrMultiple(obj, callback) {
214
- return obj instanceof Array ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
243
+ return isArray(obj) ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
215
244
  }
216
245
  export function initParticleNumericAnimationValue(options, pxRatio) {
217
- const valueRange = options.value, animationOptions = options.animation;
218
- const res = {
219
- enable: options.animation.enable,
246
+ const valueRange = options.value, animationOptions = options.animation, res = {
247
+ delayTime: getRangeValue(animationOptions.delay) * 1000,
248
+ enable: animationOptions.enable,
220
249
  value: getRangeValue(options.value) * pxRatio,
221
250
  max: getRangeMax(valueRange) * pxRatio,
222
251
  min: getRangeMin(valueRange) * pxRatio,
223
252
  loops: 0,
224
- maxLoops: getRangeValue(options.animation.count),
253
+ maxLoops: getRangeValue(animationOptions.count),
254
+ time: 0,
225
255
  };
226
256
  if (animationOptions.enable) {
227
257
  res.decay = 1 - getRangeValue(animationOptions.decay);
228
- let autoStatus = false;
229
258
  switch (animationOptions.mode) {
230
259
  case "increase":
231
260
  res.status = "increasing";
@@ -236,10 +265,8 @@ export function initParticleNumericAnimationValue(options, pxRatio) {
236
265
  case "random":
237
266
  res.status = getRandom() >= 0.5 ? "increasing" : "decreasing";
238
267
  break;
239
- case "auto":
240
- autoStatus = true;
241
- break;
242
268
  }
269
+ const autoStatus = animationOptions.mode === "auto";
243
270
  switch (animationOptions.startValue) {
244
271
  case "min":
245
272
  res.value = res.min;
@@ -247,17 +274,17 @@ export function initParticleNumericAnimationValue(options, pxRatio) {
247
274
  res.status = "increasing";
248
275
  }
249
276
  break;
250
- case "random":
251
- res.value = randomInRange(res);
277
+ case "max":
278
+ res.value = res.max;
252
279
  if (autoStatus) {
253
- res.status = getRandom() >= 0.5 ? "increasing" : "decreasing";
280
+ res.status = "decreasing";
254
281
  }
255
282
  break;
256
- case "max":
283
+ case "random":
257
284
  default:
258
- res.value = res.max;
285
+ res.value = randomInRange(res);
259
286
  if (autoStatus) {
260
- res.status = "decreasing";
287
+ res.status = getRandom() >= 0.5 ? "increasing" : "decreasing";
261
288
  }
262
289
  break;
263
290
  }
@@ -265,3 +292,47 @@ export function initParticleNumericAnimationValue(options, pxRatio) {
265
292
  res.initialValue = res.value;
266
293
  return res;
267
294
  }
295
+ function getPositionOrSize(positionOrSize, canvasSize) {
296
+ const isPercent = positionOrSize.mode === "percent";
297
+ if (!isPercent) {
298
+ const { mode: _, ...rest } = positionOrSize;
299
+ return rest;
300
+ }
301
+ const isPosition = "x" in positionOrSize;
302
+ if (isPosition) {
303
+ return {
304
+ x: (positionOrSize.x / 100) * canvasSize.width,
305
+ y: (positionOrSize.y / 100) * canvasSize.height,
306
+ };
307
+ }
308
+ else {
309
+ return {
310
+ width: (positionOrSize.width / 100) * canvasSize.width,
311
+ height: (positionOrSize.height / 100) * canvasSize.height,
312
+ };
313
+ }
314
+ }
315
+ export function getPosition(position, canvasSize) {
316
+ return getPositionOrSize(position, canvasSize);
317
+ }
318
+ export function getSize(size, canvasSize) {
319
+ return getPositionOrSize(size, canvasSize);
320
+ }
321
+ export function isBoolean(arg) {
322
+ return typeof arg === "boolean";
323
+ }
324
+ export function isString(arg) {
325
+ return typeof arg === "string";
326
+ }
327
+ export function isNumber(arg) {
328
+ return typeof arg === "number";
329
+ }
330
+ export function isFunction(arg) {
331
+ return typeof arg === "function";
332
+ }
333
+ export function isObject(arg) {
334
+ return typeof arg === "object" && arg !== null;
335
+ }
336
+ export function isArray(arg) {
337
+ return Array.isArray(arg);
338
+ }
package/esm/bundle.js CHANGED
@@ -1,98 +1,5 @@
1
- import { Engine } from "./engine";
2
- import { HslColorManager } from "./Utils/HslColorManager";
3
- import { RgbColorManager } from "./Utils/RgbColorManager";
4
- import { addColorManager } from "./Utils/ColorUtils";
5
- const rgbColorManager = new RgbColorManager(), hslColorManager = new HslColorManager();
6
- addColorManager(rgbColorManager);
7
- addColorManager(hslColorManager);
8
- const tsParticles = new Engine();
9
- export * from "./Core/Utils/Circle";
10
- export * from "./Core/Utils/Constants";
11
- export * from "./Core/Utils/ExternalInteractorBase";
12
- export * from "./Core/Utils/ParticlesInteractorBase";
13
- export * from "./Core/Utils/Point";
14
- export * from "./Core/Utils/Range";
15
- export * from "./Core/Utils/Rectangle";
16
- export * from "./Core/Utils/Vector";
17
- export * from "./Core/Utils/Vector3d";
18
- export * from "./Enums/Directions/MoveDirection";
19
- export * from "./Enums/Directions/RotateDirection";
20
- export * from "./Enums/Directions/OutModeDirection";
21
- export * from "./Enums/Modes/AnimationMode";
22
- export * from "./Enums/Modes/ClickMode";
23
- export * from "./Enums/Modes/DivMode";
24
- export * from "./Enums/Modes/HoverMode";
25
- export * from "./Enums/Modes/CollisionMode";
26
- export * from "./Enums/Modes/OutMode";
27
- export * from "./Enums/Modes/SizeMode";
28
- export * from "./Enums/Modes/ThemeMode";
29
- export * from "./Enums/Modes/ResponsiveMode";
30
- export * from "./Enums/Types/AlterType";
31
- export * from "./Enums/Types/DestroyType";
32
- export * from "./Enums/Types/GradientType";
33
- export * from "./Enums/Types/InteractorType";
34
- export * from "./Enums/Types/ParticleOutType";
35
- export * from "./Enums/Types/StartValueType";
36
- export * from "./Enums/Types/DivType";
37
- export * from "./Enums/Types/EasingType";
38
- export * from "./Enums/AnimationStatus";
39
- export * from "./Enums/InteractivityDetect";
40
- export * from "./Options/Classes/AnimatableColor";
41
- export * from "./Options/Classes/AnimationOptions";
42
- export * from "./Options/Classes/Background/Background";
43
- export * from "./Options/Classes/BackgroundMask/BackgroundMask";
44
- export * from "./Options/Classes/BackgroundMask/BackgroundMaskCover";
45
- export * from "./Options/Classes/ColorAnimation";
46
- export * from "./Options/Classes/FullScreen/FullScreen";
47
- export * from "./Options/Classes/HslAnimation";
48
- export * from "./Options/Classes/Interactivity/Events/ClickEvent";
49
- export * from "./Options/Classes/Interactivity/Events/DivEvent";
50
- export * from "./Options/Classes/Interactivity/Events/ClickEvent";
51
- export * from "./Options/Classes/Interactivity/Events/DivEvent";
52
- export * from "./Options/Classes/Interactivity/Events/Events";
53
- export * from "./Options/Classes/Interactivity/Events/HoverEvent";
54
- export * from "./Options/Classes/Interactivity/Events/Parallax";
55
- export * from "./Options/Classes/Interactivity/Events/ResizeEvent";
56
- export * from "./Options/Classes/Interactivity/Interactivity";
57
- export * from "./Options/Classes/Interactivity/Modes/Modes";
58
- export * from "./Options/Classes/ManualParticle";
59
- export * from "./Options/Classes/Options";
60
- export * from "./Options/Classes/OptionsColor";
61
- export * from "./Options/Classes/Particles/Bounce/ParticlesBounce";
62
- export * from "./Options/Classes/Particles/Bounce/ParticlesBounceFactor";
63
- export * from "./Options/Classes/Particles/Collisions/Collisions";
64
- export * from "./Options/Classes/Particles/Collisions/CollisionsAbsorb";
65
- export * from "./Options/Classes/Particles/Collisions/CollisionsOverlap";
66
- export * from "./Options/Classes/Particles/ParticlesOptions";
67
- export * from "./Options/Classes/Particles/Shadow";
68
- export * from "./Options/Classes/Particles/Stroke";
69
- export * from "./Options/Classes/Particles/Move/MoveAttract";
70
- export * from "./Options/Classes/Particles/Move/Move";
71
- export * from "./Options/Classes/Particles/Move/MoveAngle";
72
- export * from "./Options/Classes/Particles/Move/MoveCenter";
73
- export * from "./Options/Classes/Particles/Move/MoveGravity";
74
- export * from "./Options/Classes/Particles/Move/MoveTrail";
75
- export * from "./Options/Classes/Particles/Move/MoveTrailFill";
76
- export * from "./Options/Classes/Particles/Move/OutModes";
77
- export * from "./Options/Classes/Particles/Move/Path/MovePath";
78
- export * from "./Options/Classes/Particles/Move/Spin";
79
- export * from "./Options/Classes/Particles/Number/ParticlesNumber";
80
- export * from "./Options/Classes/Particles/Number/ParticlesDensity";
81
- export * from "./Options/Classes/Particles/Opacity/Opacity";
82
- export * from "./Options/Classes/Particles/Opacity/OpacityAnimation";
83
- export * from "./Options/Classes/Particles/Shape/Shape";
84
- export * from "./Options/Classes/Particles/Size/Size";
85
- export * from "./Options/Classes/Particles/Size/SizeAnimation";
86
- export * from "./Options/Classes/Particles/ZIndex/ZIndex";
87
- export * from "./Options/Classes/Responsive";
88
- export * from "./Options/Classes/Theme/Theme";
89
- export * from "./Options/Classes/Theme/ThemeDefault";
90
- export * from "./Options/Classes/ValueWithRandom";
91
- export * from "./Utils/CanvasUtils";
92
- export * from "./Utils/ColorUtils";
93
- export * from "./Utils/HslColorManager";
94
- export * from "./Utils/NumberUtils";
95
- export * from "./Utils/OptionsUtils";
96
- export * from "./Utils/RgbColorManager";
97
- export * from "./Utils/Utils";
1
+ import { init } from "./init.js";
2
+ const tsParticles = init();
3
+ window.tsParticles = tsParticles;
4
+ export * from "./exports.js";
98
5
  export { tsParticles };
@@ -0,0 +1,97 @@
1
+ export * from "./Core/Interfaces/Colors.js";
2
+ export * from "./Core/Interfaces/IBounds.js";
3
+ export * from "./Core/Interfaces/IBubbleParticleData.js";
4
+ export * from "./Core/Interfaces/ICircleBouncer.js";
5
+ export * from "./Core/Interfaces/IColorManager.js";
6
+ export * from "./Core/Interfaces/IContainerInteractivity.js";
7
+ export * from "./Core/Interfaces/IContainerPlugin.js";
8
+ export * from "./Core/Interfaces/ICoordinates.js";
9
+ export * from "./Core/Interfaces/IDelta.js";
10
+ export * from "./Core/Interfaces/IDimension.js";
11
+ export * from "./Core/Interfaces/IDistance.js";
12
+ export * from "./Core/Interfaces/IDrawParticleParams.js";
13
+ export * from "./Core/Interfaces/IExternalInteractor.js";
14
+ export * from "./Core/Interfaces/IInteractor.js";
15
+ export * from "./Core/Interfaces/ILoadParams.js";
16
+ export * from "./Core/Interfaces/IMouseData.js";
17
+ export * from "./Core/Interfaces/IMovePathGenerator.js";
18
+ export * from "./Core/Interfaces/IParticle.js";
19
+ export * from "./Core/Interfaces/IParticleColorStyle.js";
20
+ export * from "./Core/Interfaces/IParticleHslAnimation.js";
21
+ export * from "./Core/Interfaces/IParticleLife.js";
22
+ export * from "./Core/Interfaces/IParticleMover.js";
23
+ export * from "./Core/Interfaces/IParticleRetinaProps.js";
24
+ export * from "./Core/Interfaces/IParticleRoll.js";
25
+ export * from "./Core/Interfaces/IParticleTransformValues.js";
26
+ export * from "./Core/Interfaces/IParticleUpdater.js";
27
+ export * from "./Core/Interfaces/IParticleValueAnimation.js";
28
+ export * from "./Core/Interfaces/IParticlesInteractor.js";
29
+ export * from "./Core/Interfaces/IPlugin.js";
30
+ export * from "./Core/Interfaces/IPositionFromSizeParams.js";
31
+ export * from "./Core/Interfaces/IRangeValue.js";
32
+ export * from "./Core/Interfaces/IRectSideResult.js";
33
+ export * from "./Core/Interfaces/IShapeDrawer.js";
34
+ export * from "./Core/Interfaces/IShapeValues.js";
35
+ export * from "./Core/Interfaces/ISlowParticleData.js";
36
+ export * from "./Core/Interfaces/ITrailFillData.js";
37
+ export * from "./Options/Interfaces/Background/IBackground.js";
38
+ export * from "./Options/Interfaces/BackgroundMask/IBackgroundMask.js";
39
+ export * from "./Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js";
40
+ export * from "./Options/Interfaces/FullScreen/IFullScreen.js";
41
+ export * from "./Options/Interfaces/IAnimatable.js";
42
+ export * from "./Options/Interfaces/IAnimatableColor.js";
43
+ export * from "./Options/Interfaces/IAnimation.js";
44
+ export * from "./Options/Interfaces/IColorAnimation.js";
45
+ export * from "./Options/Interfaces/IHslAnimation.js";
46
+ export * from "./Options/Interfaces/IManualParticle.js";
47
+ export * from "./Options/Interfaces/IOptionLoader.js";
48
+ export * from "./Options/Interfaces/IOptions.js";
49
+ export * from "./Options/Interfaces/IOptionsColor.js";
50
+ export * from "./Options/Interfaces/IResponsive.js";
51
+ export * from "./Options/Interfaces/IValueWithRandom.js";
52
+ export * from "./Options/Interfaces/Interactivity/Events/IClickEvent.js";
53
+ export * from "./Options/Interfaces/Interactivity/Events/IDivEvent.js";
54
+ export * from "./Options/Interfaces/Interactivity/Events/IEvents.js";
55
+ export * from "./Options/Interfaces/Interactivity/Events/IHoverEvent.js";
56
+ export * from "./Options/Interfaces/Interactivity/Events/IParallax.js";
57
+ export * from "./Options/Interfaces/Interactivity/Events/IResizeEvent.js";
58
+ export * from "./Options/Interfaces/Interactivity/Modes/IModeDiv.js";
59
+ export * from "./Options/Interfaces/Interactivity/Modes/IModes.js";
60
+ export * from "./Options/Interfaces/Interactivity/IInteractivity.js";
61
+ export * from "./Options/Interfaces/Particles/Bounce/IParticlesBounce.js";
62
+ export * from "./Options/Interfaces/Particles/Collisions/ICollisions.js";
63
+ export * from "./Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js";
64
+ export * from "./Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js";
65
+ export * from "./Options/Interfaces/Particles/IParticlesOptions.js";
66
+ export * from "./Options/Interfaces/Particles/IShadow.js";
67
+ export * from "./Options/Interfaces/Particles/IStroke.js";
68
+ export * from "./Options/Interfaces/Particles/Move/IMoveAttract.js";
69
+ export * from "./Options/Interfaces/Particles/Move/IMove.js";
70
+ export * from "./Options/Interfaces/Particles/Move/IMoveAngle.js";
71
+ export * from "./Options/Interfaces/Particles/Move/IMoveCenter.js";
72
+ export * from "./Options/Interfaces/Particles/Move/IMoveGravity.js";
73
+ export * from "./Options/Interfaces/Particles/Move/Path/IMovePath.js";
74
+ export * from "./Options/Interfaces/Particles/Move/IOutModes.js";
75
+ export * from "./Options/Interfaces/Particles/Move/ISpin.js";
76
+ export * from "./Options/Interfaces/Particles/Move/IMoveTrail.js";
77
+ export * from "./Options/Interfaces/Particles/Number/IParticlesDensity.js";
78
+ export * from "./Options/Interfaces/Particles/Number/IParticlesNumber.js";
79
+ export * from "./Options/Interfaces/Particles/Opacity/IOpacity.js";
80
+ export * from "./Options/Interfaces/Particles/Opacity/IOpacityAnimation.js";
81
+ export * from "./Options/Interfaces/Particles/Shape/IShape.js";
82
+ export * from "./Options/Interfaces/Particles/Size/ISize.js";
83
+ export * from "./Options/Interfaces/Particles/Size/ISizeAnimation.js";
84
+ export * from "./Options/Interfaces/Particles/ZIndex/IZIndex.js";
85
+ export * from "./Options/Interfaces/Theme/ITheme.js";
86
+ export * from "./Options/Interfaces/Theme/IThemeDefault.js";
87
+ export * from "./Types/CustomEventArgs.js";
88
+ export * from "./Types/CustomEventListener.js";
89
+ export * from "./Types/ExportResult.js";
90
+ export * from "./Types/ISourceOptions.js";
91
+ export * from "./Types/ParticlesGroups.js";
92
+ export * from "./Types/PathOptions.js";
93
+ export * from "./Types/RangeValue.js";
94
+ export * from "./Types/RecursivePartial.js";
95
+ export * from "./Types/ShapeData.js";
96
+ export * from "./Types/ShapeDrawerFunctions.js";
97
+ export * from "./Types/SingleOrMultiple.js";
package/esm/exports.js ADDED
@@ -0,0 +1,89 @@
1
+ export * from "./Core/Utils/Circle.js";
2
+ export * from "./Core/Utils/Constants.js";
3
+ export * from "./Core/Utils/ExternalInteractorBase.js";
4
+ export * from "./Core/Utils/ParticlesInteractorBase.js";
5
+ export * from "./Core/Utils/Point.js";
6
+ export * from "./Core/Utils/Range.js";
7
+ export * from "./Core/Utils/Rectangle.js";
8
+ export * from "./Core/Utils/Vector.js";
9
+ export * from "./Core/Utils/Vector3d.js";
10
+ export * from "./Enums/Directions/MoveDirection.js";
11
+ export * from "./Enums/Directions/RotateDirection.js";
12
+ export * from "./Enums/Directions/OutModeDirection.js";
13
+ export * from "./Enums/Modes/AnimationMode.js";
14
+ export * from "./Enums/Modes/ClickMode.js";
15
+ export * from "./Enums/Modes/DivMode.js";
16
+ export * from "./Enums/Modes/HoverMode.js";
17
+ export * from "./Enums/Modes/CollisionMode.js";
18
+ export * from "./Enums/Modes/OutMode.js";
19
+ export * from "./Enums/Modes/PixelMode.js";
20
+ export * from "./Enums/Modes/ThemeMode.js";
21
+ export * from "./Enums/Modes/ResponsiveMode.js";
22
+ export * from "./Enums/Types/AlterType.js";
23
+ export * from "./Enums/Types/DestroyType.js";
24
+ export * from "./Enums/Types/GradientType.js";
25
+ export * from "./Enums/Types/InteractorType.js";
26
+ export * from "./Enums/Types/ParticleOutType.js";
27
+ export * from "./Enums/Types/StartValueType.js";
28
+ export * from "./Enums/Types/DivType.js";
29
+ export * from "./Enums/Types/EasingType.js";
30
+ export * from "./Enums/Types/EventType.js";
31
+ export * from "./Enums/AnimationStatus.js";
32
+ export * from "./Enums/InteractivityDetect.js";
33
+ export * from "./Options/Classes/AnimatableColor.js";
34
+ export * from "./Options/Classes/AnimationOptions.js";
35
+ export * from "./Options/Classes/Background/Background.js";
36
+ export * from "./Options/Classes/BackgroundMask/BackgroundMask.js";
37
+ export * from "./Options/Classes/BackgroundMask/BackgroundMaskCover.js";
38
+ export * from "./Options/Classes/ColorAnimation.js";
39
+ export * from "./Options/Classes/FullScreen/FullScreen.js";
40
+ export * from "./Options/Classes/HslAnimation.js";
41
+ export * from "./Options/Classes/Interactivity/Events/ClickEvent.js";
42
+ export * from "./Options/Classes/Interactivity/Events/DivEvent.js";
43
+ export * from "./Options/Classes/Interactivity/Events/ClickEvent.js";
44
+ export * from "./Options/Classes/Interactivity/Events/DivEvent.js";
45
+ export * from "./Options/Classes/Interactivity/Events/Events.js";
46
+ export * from "./Options/Classes/Interactivity/Events/HoverEvent.js";
47
+ export * from "./Options/Classes/Interactivity/Events/Parallax.js";
48
+ export * from "./Options/Classes/Interactivity/Events/ResizeEvent.js";
49
+ export * from "./Options/Classes/Interactivity/Interactivity.js";
50
+ export * from "./Options/Classes/Interactivity/Modes/Modes.js";
51
+ export * from "./Options/Classes/ManualParticle.js";
52
+ export * from "./Options/Classes/Options.js";
53
+ export * from "./Options/Classes/OptionsColor.js";
54
+ export * from "./Options/Classes/Particles/Bounce/ParticlesBounce.js";
55
+ export * from "./Options/Classes/Particles/Bounce/ParticlesBounceFactor.js";
56
+ export * from "./Options/Classes/Particles/Collisions/Collisions.js";
57
+ export * from "./Options/Classes/Particles/Collisions/CollisionsAbsorb.js";
58
+ export * from "./Options/Classes/Particles/Collisions/CollisionsOverlap.js";
59
+ export * from "./Options/Classes/Particles/ParticlesOptions.js";
60
+ export * from "./Options/Classes/Particles/Shadow.js";
61
+ export * from "./Options/Classes/Particles/Stroke.js";
62
+ export * from "./Options/Classes/Particles/Move/MoveAttract.js";
63
+ export * from "./Options/Classes/Particles/Move/Move.js";
64
+ export * from "./Options/Classes/Particles/Move/MoveAngle.js";
65
+ export * from "./Options/Classes/Particles/Move/MoveCenter.js";
66
+ export * from "./Options/Classes/Particles/Move/MoveGravity.js";
67
+ export * from "./Options/Classes/Particles/Move/OutModes.js";
68
+ export * from "./Options/Classes/Particles/Move/Path/MovePath.js";
69
+ export * from "./Options/Classes/Particles/Move/Spin.js";
70
+ export * from "./Options/Classes/Particles/Move/MoveTrail.js";
71
+ export * from "./Options/Classes/Particles/Number/ParticlesNumber.js";
72
+ export * from "./Options/Classes/Particles/Number/ParticlesDensity.js";
73
+ export * from "./Options/Classes/Particles/Opacity/Opacity.js";
74
+ export * from "./Options/Classes/Particles/Opacity/OpacityAnimation.js";
75
+ export * from "./Options/Classes/Particles/Shape/Shape.js";
76
+ export * from "./Options/Classes/Particles/Size/Size.js";
77
+ export * from "./Options/Classes/Particles/Size/SizeAnimation.js";
78
+ export * from "./Options/Classes/Particles/ZIndex/ZIndex.js";
79
+ export * from "./Options/Classes/Responsive.js";
80
+ export * from "./Options/Classes/Theme/Theme.js";
81
+ export * from "./Options/Classes/Theme/ThemeDefault.js";
82
+ export * from "./Options/Classes/ValueWithRandom.js";
83
+ export * from "./Utils/CanvasUtils.js";
84
+ export * from "./Utils/ColorUtils.js";
85
+ export * from "./Utils/HslColorManager.js";
86
+ export * from "./Utils/NumberUtils.js";
87
+ export * from "./Utils/OptionsUtils.js";
88
+ export * from "./Utils/RgbColorManager.js";
89
+ export * from "./Utils/Utils.js";