@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
@@ -4,19 +4,21 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../Core/Utils/Vector"], factory);
7
+ define(["require", "exports", "./Utils.js", "../Core/Utils/Vector.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.parseAlpha = exports.calcExactPositionOrRandomFromSizeRanged = exports.calcExactPositionOrRandomFromSize = exports.calcPositionOrRandomFromSizeRanged = exports.calcPositionOrRandomFromSize = exports.calcPositionFromSize = exports.collisionVelocity = exports.getParticleBaseVelocity = exports.getParticleDirectionAngle = exports.getDistance = exports.getDistances = exports.getValue = exports.setRangeValue = exports.getRangeMax = exports.getRangeMin = exports.getRangeValue = exports.randomInRange = exports.mix = exports.clamp = exports.getRandom = exports.setRandom = exports.getEasing = exports.addEasing = void 0;
13
- const Vector_1 = require("../Core/Utils/Vector");
13
+ const Utils_js_1 = require("./Utils.js");
14
+ const Vector_js_1 = require("../Core/Utils/Vector.js");
14
15
  let _random = Math.random;
15
16
  const easings = new Map();
16
17
  function addEasing(name, easing) {
17
- if (!easings.get(name)) {
18
- easings.set(name, easing);
18
+ if (easings.get(name)) {
19
+ return;
19
20
  }
21
+ easings.set(name, easing);
20
22
  }
21
23
  exports.addEasing = addEasing;
22
24
  function getEasing(name) {
@@ -49,19 +51,19 @@
49
51
  }
50
52
  exports.randomInRange = randomInRange;
51
53
  function getRangeValue(value) {
52
- return typeof value === "number" ? value : randomInRange(value);
54
+ return (0, Utils_js_1.isNumber)(value) ? value : randomInRange(value);
53
55
  }
54
56
  exports.getRangeValue = getRangeValue;
55
57
  function getRangeMin(value) {
56
- return typeof value === "number" ? value : value.min;
58
+ return (0, Utils_js_1.isNumber)(value) ? value : value.min;
57
59
  }
58
60
  exports.getRangeMin = getRangeMin;
59
61
  function getRangeMax(value) {
60
- return typeof value === "number" ? value : value.max;
62
+ return (0, Utils_js_1.isNumber)(value) ? value : value.max;
61
63
  }
62
64
  exports.getRangeMax = getRangeMax;
63
65
  function setRangeValue(source, value) {
64
- if (source === value || (value === undefined && typeof source === "number")) {
66
+ if (source === value || (value === undefined && (0, Utils_js_1.isNumber)(source))) {
65
67
  return source;
66
68
  }
67
69
  const min = getRangeMin(source), max = getRangeMax(source);
@@ -74,7 +76,7 @@
74
76
  }
75
77
  exports.setRangeValue = setRangeValue;
76
78
  function getValue(options) {
77
- const random = options.random, { enable, minimumValue } = typeof random === "boolean"
79
+ const random = options.random, { enable, minimumValue } = (0, Utils_js_1.isBoolean)(random)
78
80
  ? {
79
81
  enable: random,
80
82
  minimumValue: 0,
@@ -93,46 +95,44 @@
93
95
  }
94
96
  exports.getDistance = getDistance;
95
97
  function getParticleDirectionAngle(direction, position, center) {
96
- if (typeof direction === "number") {
98
+ if ((0, Utils_js_1.isNumber)(direction)) {
97
99
  return (direction * Math.PI) / 180;
98
100
  }
99
- else {
100
- switch (direction) {
101
- case "top":
102
- return -Math.PI / 2;
103
- case "top-right":
104
- return -Math.PI / 4;
105
- case "right":
106
- return 0;
107
- case "bottom-right":
108
- return Math.PI / 4;
109
- case "bottom":
110
- return Math.PI / 2;
111
- case "bottom-left":
112
- return (3 * Math.PI) / 4;
113
- case "left":
114
- return Math.PI;
115
- case "top-left":
116
- return (-3 * Math.PI) / 4;
117
- case "inside":
118
- return Math.atan2(center.y - position.y, center.x - position.x);
119
- case "outside":
120
- return Math.atan2(position.y - center.y, position.x - center.x);
121
- default:
122
- return getRandom() * Math.PI * 2;
123
- }
101
+ switch (direction) {
102
+ case "top":
103
+ return -Math.PI / 2;
104
+ case "top-right":
105
+ return -Math.PI / 4;
106
+ case "right":
107
+ return 0;
108
+ case "bottom-right":
109
+ return Math.PI / 4;
110
+ case "bottom":
111
+ return Math.PI / 2;
112
+ case "bottom-left":
113
+ return (3 * Math.PI) / 4;
114
+ case "left":
115
+ return Math.PI;
116
+ case "top-left":
117
+ return (-3 * Math.PI) / 4;
118
+ case "inside":
119
+ return Math.atan2(center.y - position.y, center.x - position.x);
120
+ case "outside":
121
+ return Math.atan2(position.y - center.y, position.x - center.x);
122
+ default:
123
+ return getRandom() * Math.PI * 2;
124
124
  }
125
125
  }
126
126
  exports.getParticleDirectionAngle = getParticleDirectionAngle;
127
127
  function getParticleBaseVelocity(direction) {
128
- const baseVelocity = Vector_1.Vector.origin;
128
+ const baseVelocity = Vector_js_1.Vector.origin;
129
129
  baseVelocity.length = 1;
130
130
  baseVelocity.angle = direction;
131
131
  return baseVelocity;
132
132
  }
133
133
  exports.getParticleBaseVelocity = getParticleBaseVelocity;
134
134
  function collisionVelocity(v1, v2, m1, m2) {
135
- return Vector_1.Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);
135
+ return Vector_js_1.Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);
136
136
  }
137
137
  exports.collisionVelocity = collisionVelocity;
138
138
  function calcPositionFromSize(data) {
@@ -145,35 +145,31 @@
145
145
  }
146
146
  exports.calcPositionFromSize = calcPositionFromSize;
147
147
  function calcPositionOrRandomFromSize(data) {
148
- var _a, _b, _c, _d;
149
148
  return {
150
- x: (((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * 100) * data.size.width) / 100,
151
- y: (((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * 100) * data.size.height) / 100,
149
+ x: ((data.position?.x ?? getRandom() * 100) * data.size.width) / 100,
150
+ y: ((data.position?.y ?? getRandom() * 100) * data.size.height) / 100,
152
151
  };
153
152
  }
154
153
  exports.calcPositionOrRandomFromSize = calcPositionOrRandomFromSize;
155
154
  function calcPositionOrRandomFromSizeRanged(data) {
156
- var _a, _b;
157
155
  const position = {
158
- x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,
159
- y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,
156
+ x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
157
+ y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,
160
158
  };
161
159
  return calcPositionOrRandomFromSize({ size: data.size, position });
162
160
  }
163
161
  exports.calcPositionOrRandomFromSizeRanged = calcPositionOrRandomFromSizeRanged;
164
162
  function calcExactPositionOrRandomFromSize(data) {
165
- var _a, _b, _c, _d;
166
163
  return {
167
- x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * data.size.width,
168
- y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * data.size.height,
164
+ x: data.position?.x ?? getRandom() * data.size.width,
165
+ y: data.position?.y ?? getRandom() * data.size.height,
169
166
  };
170
167
  }
171
168
  exports.calcExactPositionOrRandomFromSize = calcExactPositionOrRandomFromSize;
172
169
  function calcExactPositionOrRandomFromSizeRanged(data) {
173
- var _a, _b;
174
170
  const position = {
175
- x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,
176
- y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,
171
+ x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
172
+ y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,
177
173
  };
178
174
  return calcExactPositionOrRandomFromSize({ size: data.size, position });
179
175
  }
@@ -4,13 +4,13 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../Options/Classes/Particles/ParticlesOptions"], factory);
7
+ define(["require", "exports", "../Options/Classes/Particles/ParticlesOptions.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.loadParticlesOptions = exports.loadOptions = void 0;
13
- const ParticlesOptions_1 = require("../Options/Classes/Particles/ParticlesOptions");
13
+ const ParticlesOptions_js_1 = require("../Options/Classes/Particles/ParticlesOptions.js");
14
14
  function loadOptions(options, ...sourceOptionsArr) {
15
15
  for (const sourceOptions of sourceOptionsArr) {
16
16
  options.load(sourceOptions);
@@ -18,7 +18,7 @@
18
18
  }
19
19
  exports.loadOptions = loadOptions;
20
20
  function loadParticlesOptions(engine, container, ...sourceOptionsArr) {
21
- const options = new ParticlesOptions_1.ParticlesOptions(engine, container);
21
+ const options = new ParticlesOptions_js_1.ParticlesOptions(engine, container);
22
22
  loadOptions(options, ...sourceOptionsArr);
23
23
  return options;
24
24
  }
@@ -4,33 +4,31 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./NumberUtils"], factory);
7
+ define(["require", "exports", "./NumberUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RgbColorManager = void 0;
13
- const NumberUtils_1 = require("./NumberUtils");
13
+ const NumberUtils_js_1 = require("./NumberUtils.js");
14
14
  class RgbColorManager {
15
15
  constructor() {
16
16
  this.key = "rgb";
17
17
  this.stringPrefix = "rgb";
18
18
  }
19
19
  handleColor(color) {
20
- var _a;
21
- const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;
20
+ const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;
22
21
  if (rgbColor.r !== undefined) {
23
22
  return rgbColor;
24
23
  }
25
24
  }
26
25
  handleRangeColor(color) {
27
- var _a;
28
- const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;
26
+ const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;
29
27
  if (rgbColor.r !== undefined) {
30
28
  return {
31
- r: (0, NumberUtils_1.getRangeValue)(rgbColor.r),
32
- g: (0, NumberUtils_1.getRangeValue)(rgbColor.g),
33
- b: (0, NumberUtils_1.getRangeValue)(rgbColor.b),
29
+ r: (0, NumberUtils_js_1.getRangeValue)(rgbColor.r),
30
+ g: (0, NumberUtils_js_1.getRangeValue)(rgbColor.g),
31
+ b: (0, NumberUtils_js_1.getRangeValue)(rgbColor.b),
34
32
  };
35
33
  }
36
34
  }
@@ -41,7 +39,7 @@
41
39
  const regex = /rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i, result = regex.exec(input);
42
40
  return result
43
41
  ? {
44
- a: result.length > 4 ? (0, NumberUtils_1.parseAlpha)(result[5]) : 1,
42
+ a: result.length > 4 ? (0, NumberUtils_js_1.parseAlpha)(result[5]) : 1,
45
43
  b: parseInt(result[3], 10),
46
44
  g: parseInt(result[2], 10),
47
45
  r: parseInt(result[1], 10),
@@ -4,16 +4,37 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./NumberUtils", "../Core/Utils/Vector"], factory);
7
+ define(["require", "exports", "./NumberUtils.js", "../Core/Utils/Vector.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.initParticleNumericAnimationValue = exports.findItemFromSingleOrMultiple = exports.itemFromSingleOrMultiple = exports.executeOnSingleOrMultiple = exports.rectBounce = exports.circleBounce = exports.circleBounceDataFromParticle = exports.divMode = exports.singleDivModeExecute = exports.divModeExecute = exports.isDivModeEnabled = exports.deepExtend = exports.calculateBounds = exports.areBoundsInside = exports.isPointInside = exports.itemFromArray = exports.arrayRandomIndex = exports.loadFont = exports.isInArray = exports.cancelAnimation = exports.animate = exports.safeMatchMedia = exports.hasMatchMedia = exports.isSsr = void 0;
13
- const NumberUtils_1 = require("./NumberUtils");
14
- const Vector_1 = require("../Core/Utils/Vector");
15
- function rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {
16
- const res = { bounced: false };
12
+ exports.isArray = exports.isObject = exports.isFunction = exports.isNumber = exports.isString = exports.isBoolean = exports.getSize = exports.getPosition = exports.initParticleNumericAnimationValue = exports.findItemFromSingleOrMultiple = exports.itemFromSingleOrMultiple = exports.executeOnSingleOrMultiple = exports.rectBounce = exports.circleBounce = exports.circleBounceDataFromParticle = exports.divMode = exports.singleDivModeExecute = exports.divModeExecute = exports.isDivModeEnabled = exports.deepExtend = exports.calculateBounds = exports.areBoundsInside = exports.isPointInside = exports.itemFromArray = exports.arrayRandomIndex = exports.loadFont = exports.isInArray = exports.safeMutationObserver = exports.safeMatchMedia = exports.hasMatchMedia = exports.isSsr = exports.getLogger = exports.setLogger = void 0;
13
+ const NumberUtils_js_1 = require("./NumberUtils.js");
14
+ const Vector_js_1 = require("../Core/Utils/Vector.js");
15
+ const _logger = {
16
+ debug: console.debug,
17
+ error: console.error,
18
+ info: console.info,
19
+ log: console.log,
20
+ verbose: console.log,
21
+ warning: console.warn,
22
+ };
23
+ function setLogger(logger) {
24
+ _logger.debug = logger.debug || _logger.debug;
25
+ _logger.error = logger.error || _logger.error;
26
+ _logger.info = logger.info || _logger.info;
27
+ _logger.log = logger.log || _logger.log;
28
+ _logger.verbose = logger.verbose || _logger.verbose;
29
+ _logger.warning = logger.warning || _logger.warning;
30
+ }
31
+ exports.setLogger = setLogger;
32
+ function getLogger() {
33
+ return _logger;
34
+ }
35
+ exports.getLogger = getLogger;
36
+ function rectSideBounce(data) {
37
+ const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data;
17
38
  if (pOtherSide.min < rectOtherSide.min ||
18
39
  pOtherSide.min > rectOtherSide.max ||
19
40
  pOtherSide.max < rectOtherSide.min ||
@@ -31,7 +52,7 @@
31
52
  const res = executeOnSingleOrMultiple(selectors, (selector) => {
32
53
  return element.matches(selector);
33
54
  });
34
- return res instanceof Array ? res.some((t) => t) : res;
55
+ return isArray(res) ? res.some((t) => t) : res;
35
56
  }
36
57
  function isSsr() {
37
58
  return typeof window === "undefined" || !window || typeof window.document === "undefined" || !window.document;
@@ -48,32 +69,27 @@
48
69
  return matchMedia(query);
49
70
  }
50
71
  exports.safeMatchMedia = safeMatchMedia;
51
- function animate() {
52
- return isSsr()
53
- ? (callback) => setTimeout(callback)
54
- : (callback) => (requestAnimationFrame || setTimeout)(callback);
55
- }
56
- exports.animate = animate;
57
- function cancelAnimation() {
58
- return isSsr()
59
- ? (handle) => clearTimeout(handle)
60
- : (handle) => (cancelAnimationFrame || clearTimeout)(handle);
61
- }
62
- exports.cancelAnimation = cancelAnimation;
72
+ function safeMutationObserver(callback) {
73
+ if (isSsr() || typeof MutationObserver === "undefined") {
74
+ return;
75
+ }
76
+ return new MutationObserver(callback);
77
+ }
78
+ exports.safeMutationObserver = safeMutationObserver;
63
79
  function isInArray(value, array) {
64
- return value === array || (array instanceof Array && array.indexOf(value) > -1);
80
+ return value === array || (isArray(array) && array.indexOf(value) > -1);
65
81
  }
66
82
  exports.isInArray = isInArray;
67
83
  async function loadFont(font, weight) {
68
84
  try {
69
- await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : "400"} 36px '${font !== null && font !== void 0 ? font : "Verdana"}'`);
85
+ await document.fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`);
70
86
  }
71
- catch (_a) {
87
+ catch {
72
88
  }
73
89
  }
74
90
  exports.loadFont = loadFont;
75
91
  function arrayRandomIndex(array) {
76
- return Math.floor((0, NumberUtils_1.getRandom)() * array.length);
92
+ return Math.floor((0, NumberUtils_js_1.getRandom)() * array.length);
77
93
  }
78
94
  exports.arrayRandomIndex = arrayRandomIndex;
79
95
  function itemFromArray(array, index, useIndex = true) {
@@ -81,7 +97,7 @@
81
97
  }
82
98
  exports.itemFromArray = itemFromArray;
83
99
  function isPointInside(point, size, offset, radius, direction) {
84
- return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);
100
+ return areBoundsInside(calculateBounds(point, radius ?? 0), size, offset, direction);
85
101
  }
86
102
  exports.isPointInside = isPointInside;
87
103
  function areBoundsInside(bounds, size, offset, direction) {
@@ -115,24 +131,24 @@
115
131
  if (source === undefined || source === null) {
116
132
  continue;
117
133
  }
118
- if (typeof source !== "object") {
134
+ if (!isObject(source)) {
119
135
  destination = source;
120
136
  continue;
121
137
  }
122
138
  const sourceIsArray = Array.isArray(source);
123
- if (sourceIsArray && (typeof destination !== "object" || !destination || !Array.isArray(destination))) {
139
+ if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {
124
140
  destination = [];
125
141
  }
126
- else if (!sourceIsArray && (typeof destination !== "object" || !destination || Array.isArray(destination))) {
142
+ else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {
127
143
  destination = {};
128
144
  }
129
145
  for (const key in source) {
130
146
  if (key === "__proto__") {
131
147
  continue;
132
148
  }
133
- const sourceDict = source, value = sourceDict[key], isObject = typeof value === "object", destDict = destination;
149
+ const sourceDict = source, value = sourceDict[key], destDict = destination;
134
150
  destDict[key] =
135
- isObject && Array.isArray(value)
151
+ isObject(value) && Array.isArray(value)
136
152
  ? value.map((v) => deepExtend(destDict[key], v))
137
153
  : deepExtend(destDict[key], value);
138
154
  }
@@ -175,16 +191,16 @@
175
191
  radius: p.getRadius(),
176
192
  mass: p.getMass(),
177
193
  velocity: p.velocity,
178
- factor: Vector_1.Vector.create((0, NumberUtils_1.getValue)(p.options.bounce.horizontal), (0, NumberUtils_1.getValue)(p.options.bounce.vertical)),
194
+ factor: Vector_js_1.Vector.create((0, NumberUtils_js_1.getValue)(p.options.bounce.horizontal), (0, NumberUtils_js_1.getValue)(p.options.bounce.vertical)),
179
195
  };
180
196
  }
181
197
  exports.circleBounceDataFromParticle = circleBounceDataFromParticle;
182
198
  function circleBounce(p1, p2) {
183
- const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = (0, NumberUtils_1.getDistances)(pos2, pos1);
199
+ const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = (0, NumberUtils_js_1.getDistances)(pos2, pos1);
184
200
  if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) {
185
201
  return;
186
202
  }
187
- const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = (0, NumberUtils_1.collisionVelocity)(u1, u2, m1, m2), v2 = (0, NumberUtils_1.collisionVelocity)(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);
203
+ const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = (0, NumberUtils_js_1.collisionVelocity)(u1, u2, m1, m2), v2 = (0, NumberUtils_js_1.collisionVelocity)(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);
188
204
  p1.velocity.x = vFinal1.x * p1.factor.x;
189
205
  p1.velocity.y = vFinal1.y * p1.factor.y;
190
206
  p2.velocity.x = vFinal2.x * p2.factor.x;
@@ -193,18 +209,25 @@
193
209
  exports.circleBounce = circleBounce;
194
210
  function rectBounce(particle, divBounds) {
195
211
  const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), resH = rectSideBounce({
196
- min: bounds.left,
197
- max: bounds.right,
198
- }, {
199
- min: bounds.top,
200
- max: bounds.bottom,
201
- }, {
202
- min: divBounds.left,
203
- max: divBounds.right,
204
- }, {
205
- min: divBounds.top,
206
- max: divBounds.bottom,
207
- }, particle.velocity.x, (0, NumberUtils_1.getValue)(particle.options.bounce.horizontal));
212
+ pSide: {
213
+ min: bounds.left,
214
+ max: bounds.right,
215
+ },
216
+ pOtherSide: {
217
+ min: bounds.top,
218
+ max: bounds.bottom,
219
+ },
220
+ rectSide: {
221
+ min: divBounds.left,
222
+ max: divBounds.right,
223
+ },
224
+ rectOtherSide: {
225
+ min: divBounds.top,
226
+ max: divBounds.bottom,
227
+ },
228
+ velocity: particle.velocity.x,
229
+ factor: (0, NumberUtils_js_1.getValue)(particle.options.bounce.horizontal),
230
+ });
208
231
  if (resH.bounced) {
209
232
  if (resH.velocity !== undefined) {
210
233
  particle.velocity.x = resH.velocity;
@@ -214,18 +237,25 @@
214
237
  }
215
238
  }
216
239
  const resV = rectSideBounce({
217
- min: bounds.top,
218
- max: bounds.bottom,
219
- }, {
220
- min: bounds.left,
221
- max: bounds.right,
222
- }, {
223
- min: divBounds.top,
224
- max: divBounds.bottom,
225
- }, {
226
- min: divBounds.left,
227
- max: divBounds.right,
228
- }, particle.velocity.y, (0, NumberUtils_1.getValue)(particle.options.bounce.vertical));
240
+ pSide: {
241
+ min: bounds.top,
242
+ max: bounds.bottom,
243
+ },
244
+ pOtherSide: {
245
+ min: bounds.left,
246
+ max: bounds.right,
247
+ },
248
+ rectSide: {
249
+ min: divBounds.top,
250
+ max: divBounds.bottom,
251
+ },
252
+ rectOtherSide: {
253
+ min: divBounds.left,
254
+ max: divBounds.right,
255
+ },
256
+ velocity: particle.velocity.y,
257
+ factor: (0, NumberUtils_js_1.getValue)(particle.options.bounce.vertical),
258
+ });
229
259
  if (resV.bounced) {
230
260
  if (resV.velocity !== undefined) {
231
261
  particle.velocity.y = resV.velocity;
@@ -237,30 +267,30 @@
237
267
  }
238
268
  exports.rectBounce = rectBounce;
239
269
  function executeOnSingleOrMultiple(obj, callback) {
240
- return obj instanceof Array ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
270
+ return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
241
271
  }
242
272
  exports.executeOnSingleOrMultiple = executeOnSingleOrMultiple;
243
273
  function itemFromSingleOrMultiple(obj, index, useIndex) {
244
- return obj instanceof Array ? itemFromArray(obj, index, useIndex) : obj;
274
+ return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;
245
275
  }
246
276
  exports.itemFromSingleOrMultiple = itemFromSingleOrMultiple;
247
277
  function findItemFromSingleOrMultiple(obj, callback) {
248
- return obj instanceof Array ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
278
+ return isArray(obj) ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
249
279
  }
250
280
  exports.findItemFromSingleOrMultiple = findItemFromSingleOrMultiple;
251
281
  function initParticleNumericAnimationValue(options, pxRatio) {
252
- const valueRange = options.value, animationOptions = options.animation;
253
- const res = {
254
- enable: options.animation.enable,
255
- value: (0, NumberUtils_1.getRangeValue)(options.value) * pxRatio,
256
- max: (0, NumberUtils_1.getRangeMax)(valueRange) * pxRatio,
257
- min: (0, NumberUtils_1.getRangeMin)(valueRange) * pxRatio,
282
+ const valueRange = options.value, animationOptions = options.animation, res = {
283
+ delayTime: (0, NumberUtils_js_1.getRangeValue)(animationOptions.delay) * 1000,
284
+ enable: animationOptions.enable,
285
+ value: (0, NumberUtils_js_1.getRangeValue)(options.value) * pxRatio,
286
+ max: (0, NumberUtils_js_1.getRangeMax)(valueRange) * pxRatio,
287
+ min: (0, NumberUtils_js_1.getRangeMin)(valueRange) * pxRatio,
258
288
  loops: 0,
259
- maxLoops: (0, NumberUtils_1.getRangeValue)(options.animation.count),
289
+ maxLoops: (0, NumberUtils_js_1.getRangeValue)(animationOptions.count),
290
+ time: 0,
260
291
  };
261
292
  if (animationOptions.enable) {
262
- res.decay = 1 - (0, NumberUtils_1.getRangeValue)(animationOptions.decay);
263
- let autoStatus = false;
293
+ res.decay = 1 - (0, NumberUtils_js_1.getRangeValue)(animationOptions.decay);
264
294
  switch (animationOptions.mode) {
265
295
  case "increase":
266
296
  res.status = "increasing";
@@ -269,12 +299,10 @@
269
299
  res.status = "decreasing";
270
300
  break;
271
301
  case "random":
272
- res.status = (0, NumberUtils_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
273
- break;
274
- case "auto":
275
- autoStatus = true;
302
+ res.status = (0, NumberUtils_js_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
276
303
  break;
277
304
  }
305
+ const autoStatus = animationOptions.mode === "auto";
278
306
  switch (animationOptions.startValue) {
279
307
  case "min":
280
308
  res.value = res.min;
@@ -282,17 +310,17 @@
282
310
  res.status = "increasing";
283
311
  }
284
312
  break;
285
- case "random":
286
- res.value = (0, NumberUtils_1.randomInRange)(res);
313
+ case "max":
314
+ res.value = res.max;
287
315
  if (autoStatus) {
288
- res.status = (0, NumberUtils_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
316
+ res.status = "decreasing";
289
317
  }
290
318
  break;
291
- case "max":
319
+ case "random":
292
320
  default:
293
- res.value = res.max;
321
+ res.value = (0, NumberUtils_js_1.randomInRange)(res);
294
322
  if (autoStatus) {
295
- res.status = "decreasing";
323
+ res.status = (0, NumberUtils_js_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
296
324
  }
297
325
  break;
298
326
  }
@@ -301,4 +329,56 @@
301
329
  return res;
302
330
  }
303
331
  exports.initParticleNumericAnimationValue = initParticleNumericAnimationValue;
332
+ function getPositionOrSize(positionOrSize, canvasSize) {
333
+ const isPercent = positionOrSize.mode === "percent";
334
+ if (!isPercent) {
335
+ const { mode: _, ...rest } = positionOrSize;
336
+ return rest;
337
+ }
338
+ const isPosition = "x" in positionOrSize;
339
+ if (isPosition) {
340
+ return {
341
+ x: (positionOrSize.x / 100) * canvasSize.width,
342
+ y: (positionOrSize.y / 100) * canvasSize.height,
343
+ };
344
+ }
345
+ else {
346
+ return {
347
+ width: (positionOrSize.width / 100) * canvasSize.width,
348
+ height: (positionOrSize.height / 100) * canvasSize.height,
349
+ };
350
+ }
351
+ }
352
+ function getPosition(position, canvasSize) {
353
+ return getPositionOrSize(position, canvasSize);
354
+ }
355
+ exports.getPosition = getPosition;
356
+ function getSize(size, canvasSize) {
357
+ return getPositionOrSize(size, canvasSize);
358
+ }
359
+ exports.getSize = getSize;
360
+ function isBoolean(arg) {
361
+ return typeof arg === "boolean";
362
+ }
363
+ exports.isBoolean = isBoolean;
364
+ function isString(arg) {
365
+ return typeof arg === "string";
366
+ }
367
+ exports.isString = isString;
368
+ function isNumber(arg) {
369
+ return typeof arg === "number";
370
+ }
371
+ exports.isNumber = isNumber;
372
+ function isFunction(arg) {
373
+ return typeof arg === "function";
374
+ }
375
+ exports.isFunction = isFunction;
376
+ function isObject(arg) {
377
+ return typeof arg === "object" && arg !== null;
378
+ }
379
+ exports.isObject = isObject;
380
+ function isArray(arg) {
381
+ return Array.isArray(arg);
382
+ }
383
+ exports.isArray = isArray;
304
384
  });