@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
@@ -0,0 +1,71 @@
1
+ import type { ShapeDrawerAfterEffectFunction, ShapeDrawerDestroyFunction, ShapeDrawerDrawFunction, ShapeDrawerInitFunction } from "../Types/ShapeDrawerFunctions.js";
2
+ import { Container } from "./Container.js";
3
+ import type { CustomEventArgs } from "../Types/CustomEventArgs.js";
4
+ import type { CustomEventListener } from "../Types/CustomEventListener.js";
5
+ import type { IContainerPlugin } from "./Interfaces/IContainerPlugin.js";
6
+ import type { IInteractor } from "./Interfaces/IInteractor.js";
7
+ import type { ILoadParams } from "./Interfaces/ILoadParams.js";
8
+ import type { IMovePathGenerator } from "./Interfaces/IMovePathGenerator.js";
9
+ import type { IOptions } from "../Options/Interfaces/IOptions.js";
10
+ import type { IParticleMover } from "./Interfaces/IParticleMover.js";
11
+ import type { IParticleUpdater } from "./Interfaces/IParticleUpdater.js";
12
+ import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js";
13
+ import type { IPlugin } from "./Interfaces/IPlugin.js";
14
+ import type { IShapeDrawer } from "./Interfaces/IShapeDrawer.js";
15
+ import type { ISourceOptions } from "../Types/ISourceOptions.js";
16
+ import type { Options } from "../Options/Classes/Options.js";
17
+ import type { Particle } from "./Particle.js";
18
+ import type { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions.js";
19
+ import type { RecursivePartial } from "../Types/RecursivePartial.js";
20
+ import type { SingleOrMultiple } from "../Types/SingleOrMultiple.js";
21
+ declare global {
22
+ interface Window {
23
+ tsParticles: Engine;
24
+ }
25
+ }
26
+ export declare class Engine {
27
+ readonly drawers: Map<string, IShapeDrawer>;
28
+ readonly interactors: Map<Container, IInteractor[]>;
29
+ readonly movers: Map<Container, IParticleMover[]>;
30
+ readonly pathGenerators: Map<string, IMovePathGenerator>;
31
+ readonly plugins: IPlugin[];
32
+ readonly presets: Map<string, RecursivePartial<IOptions>>;
33
+ readonly updaters: Map<Container, IParticleUpdater[]>;
34
+ private readonly _configs;
35
+ private readonly _domArray;
36
+ private readonly _eventDispatcher;
37
+ private _initialized;
38
+ private readonly _initializers;
39
+ constructor();
40
+ get configs(): Record<string, ISourceOptions>;
41
+ get version(): string;
42
+ addConfig(nameOrConfig: string | ISourceOptions, config?: ISourceOptions): void;
43
+ addEventListener(type: string, listener: CustomEventListener): void;
44
+ addInteractor(name: string, interactorInitializer: (container: Container) => IInteractor, refresh?: boolean): Promise<void>;
45
+ addMover(name: string, moverInitializer: (container: Container) => IParticleMover, refresh?: boolean): Promise<void>;
46
+ addParticleUpdater(name: string, updaterInitializer: (container: Container) => IParticleUpdater, refresh?: boolean): Promise<void>;
47
+ addPathGenerator(name: string, generator: IMovePathGenerator, refresh?: boolean): Promise<void>;
48
+ addPlugin(plugin: IPlugin, refresh?: boolean): Promise<void>;
49
+ addPreset(preset: string, options: RecursivePartial<IOptions>, override?: boolean, refresh?: boolean): Promise<void>;
50
+ addShape(shape: SingleOrMultiple<string>, drawer: IShapeDrawer | ShapeDrawerDrawFunction, initOrRefresh?: ShapeDrawerInitFunction | boolean, afterEffectOrRefresh?: ShapeDrawerAfterEffectFunction | boolean, destroyOrRefresh?: ShapeDrawerDestroyFunction | boolean, refresh?: boolean): Promise<void>;
51
+ clearPlugins(container: Container): void;
52
+ dispatchEvent(type: string, args: CustomEventArgs): void;
53
+ dom(): Container[];
54
+ domItem(index: number): Container | undefined;
55
+ getAvailablePlugins(container: Container): Map<string, IContainerPlugin>;
56
+ getInteractors(container: Container, force?: boolean): IInteractor[];
57
+ getMovers(container: Container, force?: boolean): IParticleMover[];
58
+ getPathGenerator(type: string): IMovePathGenerator | undefined;
59
+ getPlugin(plugin: string): IPlugin | undefined;
60
+ getPreset(preset: string): ISourceOptions | undefined;
61
+ getShapeDrawer(type: string): IShapeDrawer | undefined;
62
+ getSupportedShapes(): IterableIterator<string>;
63
+ getUpdaters(container: Container, force?: boolean): IParticleUpdater[];
64
+ init(): void;
65
+ load(params: ILoadParams): Promise<Container | undefined>;
66
+ loadOptions(options: Options, sourceOptions: ISourceOptions): void;
67
+ loadParticlesOptions(container: Container, options: ParticlesOptions, ...sourceOptions: (RecursivePartial<IParticlesOptions> | undefined)[]): void;
68
+ refresh(refresh?: boolean): Promise<void>;
69
+ removeEventListener(type: string, listener: CustomEventListener): void;
70
+ setOnClickHandler(callback: (e: Event, particles?: Particle[]) => void): void;
71
+ }
@@ -1,5 +1,5 @@
1
- import type { RangeValue } from "../../Types/RangeValue";
2
- import type { SingleOrMultiple } from "../../Types/SingleOrMultiple";
1
+ import type { RangeValue } from "../../Types/RangeValue.js";
2
+ import type { SingleOrMultiple } from "../../Types/SingleOrMultiple.js";
3
3
  export interface IAlphaColor {
4
4
  a: number;
5
5
  }
@@ -1,4 +1,4 @@
1
- import type { IHsl } from "./Colors";
1
+ import type { IHsl } from "./Colors.js";
2
2
  export interface IBubbleParticleData {
3
3
  color?: IHsl;
4
4
  div?: HTMLElement;
@@ -1,5 +1,5 @@
1
- import type { ICoordinates } from "./ICoordinates";
2
- import type { Vector } from "../Utils/Vector";
1
+ import type { ICoordinates } from "./ICoordinates.js";
2
+ import type { Vector } from "../Utils/Vector.js";
3
3
  export interface ICircleBouncer {
4
4
  factor: Vector;
5
5
  mass: number;
@@ -1,4 +1,4 @@
1
- import type { IColor, IRangeColor, IRgb, IRgba } from "./Colors";
1
+ import type { IColor, IRangeColor, IRgb, IRgba } from "./Colors.js";
2
2
  export interface IColorManager {
3
3
  readonly key: string;
4
4
  readonly stringPrefix: string;
@@ -1,4 +1,4 @@
1
- import type { IMouseData } from "./IMouseData";
1
+ import type { IMouseData } from "./IMouseData.js";
2
2
  export interface IContainerInteractivity {
3
3
  element?: HTMLElement | Window | Node | null;
4
4
  mouse: IMouseData;
@@ -1,13 +1,15 @@
1
- import type { ClickMode } from "../../Enums/Modes/ClickMode";
2
- import type { ICoordinates } from "./ICoordinates";
3
- import type { IDelta } from "./IDelta";
4
- import type { IOptionsColor } from "../../Options/Interfaces/IOptionsColor";
5
- import type { OutModeDirection } from "../../Enums/Directions/OutModeDirection";
6
- import type { Particle } from "../Particle";
1
+ import type { ClickMode } from "../../Enums/Modes/ClickMode.js";
2
+ import type { ExportResult } from "../../Types/ExportResult.js";
3
+ import type { ICoordinates } from "./ICoordinates.js";
4
+ import type { IDelta } from "./IDelta.js";
5
+ import type { IOptionsColor } from "../../Options/Interfaces/IOptionsColor.js";
6
+ import type { OutModeDirection } from "../../Enums/Directions/OutModeDirection.js";
7
+ import type { Particle } from "../Particle.js";
7
8
  export interface IContainerPlugin {
8
9
  clickPositionValid?: (position: ICoordinates) => boolean;
9
10
  draw?: (context: CanvasRenderingContext2D, delta: IDelta) => void;
10
11
  drawParticle?: (context: CanvasRenderingContext2D, particle: Particle, delta: IDelta) => void;
12
+ export?: (type: string, data: Record<string, unknown>) => Promise<ExportResult>;
11
13
  handleClickMode?: (mode: ClickMode | string) => void;
12
14
  init?: () => Promise<void>;
13
15
  particleBounce?: (particle: Particle, delta: IDelta, direction: OutModeDirection) => boolean;
@@ -1,5 +1,5 @@
1
- import type { RangeValue } from "../../Types/RangeValue";
2
- import type { SizeMode } from "../../Enums/Modes/SizeMode";
1
+ import type { PixelMode } from "../../Enums/Modes/PixelMode.js";
2
+ import type { RangeValue } from "../../Types/RangeValue.js";
3
3
  export interface ICoordinates {
4
4
  x: number;
5
5
  y: number;
@@ -15,7 +15,7 @@ export interface IRangedCoordinates3d extends IRangedCoordinates {
15
15
  z: RangeValue;
16
16
  }
17
17
  export interface ICoordinatesWithMode extends ICoordinates {
18
- mode: SizeMode;
18
+ mode: PixelMode | keyof typeof PixelMode;
19
19
  }
20
20
  export interface ICenterCoordinates extends ICoordinatesWithMode {
21
21
  radius: number;
@@ -1,8 +1,8 @@
1
- import type { SizeMode } from "../../Enums/Modes/SizeMode";
1
+ import type { PixelMode } from "../../Enums/Modes/PixelMode.js";
2
2
  export interface IDimension {
3
3
  height: number;
4
4
  width: number;
5
5
  }
6
6
  export interface IDimensionWithMode extends IDimension {
7
- mode: SizeMode;
7
+ mode: PixelMode | keyof typeof PixelMode;
8
8
  }
@@ -1,9 +1,9 @@
1
- import type { Container } from "../Container";
2
- import type { IDelta } from "./IDelta";
3
- import type { IParticleColorStyle } from "./IParticleColorStyle";
4
- import type { IParticleTransformValues } from "./IParticleTransformValues";
5
- import type { IShadow } from "../../Options/Interfaces/Particles/IShadow";
6
- import type { Particle } from "../Particle";
1
+ import type { Container } from "../Container.js";
2
+ import type { IDelta } from "./IDelta.js";
3
+ import type { IParticleColorStyle } from "./IParticleColorStyle.js";
4
+ import type { IParticleTransformValues } from "./IParticleTransformValues.js";
5
+ import type { IShadow } from "../../Options/Interfaces/Particles/IShadow.js";
6
+ import type { Particle } from "../Particle.js";
7
7
  export interface IDrawParticleParams {
8
8
  backgroundMask: boolean;
9
9
  colorStyles: IParticleColorStyle;
@@ -1,10 +1,10 @@
1
- import type { ClickMode } from "../../Enums/Modes/ClickMode";
2
- import type { IDelta } from "./IDelta";
3
- import type { IInteractor } from "./IInteractor";
4
- import type { IModes } from "../../Options/Interfaces/Interactivity/Modes/IModes";
5
- import type { Modes } from "../../Options/Classes/Interactivity/Modes/Modes";
6
- import type { Particle } from "../Particle";
7
- import type { RecursivePartial } from "../../Types/RecursivePartial";
1
+ import type { ClickMode } from "../../Enums/Modes/ClickMode.js";
2
+ import type { IDelta } from "./IDelta.js";
3
+ import type { IInteractor } from "./IInteractor.js";
4
+ import type { IModes } from "../../Options/Interfaces/Interactivity/Modes/IModes.js";
5
+ import type { Modes } from "../../Options/Classes/Interactivity/Modes/Modes.js";
6
+ import type { Particle } from "../Particle.js";
7
+ import type { RecursivePartial } from "../../Types/RecursivePartial.js";
8
8
  export interface IExternalInteractor extends IInteractor {
9
9
  handleClickMode?: (mode: ClickMode | string) => void;
10
10
  loadModeOptions?: (options: Modes, ...sources: RecursivePartial<IModes | undefined>[]) => void;
@@ -1,11 +1,11 @@
1
- import type { IDelta } from "./IDelta";
2
- import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions";
3
- import type { ISourceOptions } from "../../Types/ISourceOptions";
4
- import type { InteractorType } from "../../Enums/Types/InteractorType";
5
- import type { Options } from "../../Options/Classes/Options";
6
- import type { Particle } from "../Particle";
7
- import type { ParticlesOptions } from "../../Options/Classes/Particles/ParticlesOptions";
8
- import type { RecursivePartial } from "../../Types/RecursivePartial";
1
+ import type { IDelta } from "./IDelta.js";
2
+ import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions.js";
3
+ import type { ISourceOptions } from "../../Types/ISourceOptions.js";
4
+ import type { InteractorType } from "../../Enums/Types/InteractorType.js";
5
+ import type { Options } from "../../Options/Classes/Options.js";
6
+ import type { Particle } from "../Particle.js";
7
+ import type { ParticlesOptions } from "../../Options/Classes/Particles/ParticlesOptions.js";
8
+ import type { RecursivePartial } from "../../Types/RecursivePartial.js";
9
9
  export interface IInteractor {
10
10
  loadOptions?: (options: Options, ...sources: (ISourceOptions | undefined)[]) => void;
11
11
  loadParticlesOptions?: (options: ParticlesOptions, ...sources: (RecursivePartial<IParticlesOptions> | undefined)[]) => void;
@@ -1,5 +1,5 @@
1
- import type { ISourceOptions } from "../../Types/ISourceOptions";
2
- import type { SingleOrMultiple } from "../../Types/SingleOrMultiple";
1
+ import type { ISourceOptions } from "../../Types/ISourceOptions.js";
2
+ import type { SingleOrMultiple } from "../../Types/SingleOrMultiple.js";
3
3
  export interface ILoadParams {
4
4
  element?: HTMLElement;
5
5
  id?: string;
@@ -1,4 +1,4 @@
1
- import type { ICoordinates } from "./ICoordinates";
1
+ import type { ICoordinates } from "./ICoordinates.js";
2
2
  export interface IMouseData {
3
3
  clickPosition?: ICoordinates;
4
4
  clickTime?: number;
@@ -1,8 +1,9 @@
1
- import type { Container } from "../Container";
2
- import type { Particle } from "../Particle";
3
- import type { Vector } from "../Utils/Vector";
1
+ import type { Container } from "../Container.js";
2
+ import type { IDelta } from "./IDelta.js";
3
+ import type { Particle } from "../Particle.js";
4
+ import type { Vector } from "../Utils/Vector.js";
4
5
  export interface IMovePathGenerator {
5
- generate: (particle: Particle) => Vector;
6
+ generate: (particle: Particle, delta: IDelta) => Vector;
6
7
  init: (container: Container) => void;
7
8
  reset: (particle: Particle) => void;
8
9
  update: () => void;
@@ -1,14 +1,14 @@
1
- import type { IHsl, IRgb } from "./Colors";
2
- import type { IBubbleParticleData } from "./IBubbleParticleData";
3
- import type { ICoordinates3d } from "./ICoordinates";
4
- import type { IParticleHslAnimation } from "./IParticleHslAnimation";
5
- import type { IParticleNumericValueAnimation } from "./IParticleValueAnimation";
6
- import type { IParticleRetinaProps } from "./IParticleRetinaProps";
7
- import type { IParticleRoll } from "./IParticleRoll";
8
- import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions";
9
- import type { IShapeValues } from "./IShapeValues";
10
- import type { Interactivity } from "../../Options/Classes/Interactivity/Interactivity";
11
- import type { Vector } from "../Utils/Vector";
1
+ import type { IHsl, IRgb } from "./Colors.js";
2
+ import type { IBubbleParticleData } from "./IBubbleParticleData.js";
3
+ import type { ICoordinates3d } from "./ICoordinates.js";
4
+ import type { IParticleHslAnimation } from "./IParticleHslAnimation.js";
5
+ import type { IParticleNumericValueAnimation } from "./IParticleValueAnimation.js";
6
+ import type { IParticleRetinaProps } from "./IParticleRetinaProps.js";
7
+ import type { IParticleRoll } from "./IParticleRoll.js";
8
+ import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions.js";
9
+ import type { IShapeValues } from "./IShapeValues.js";
10
+ import type { Interactivity } from "../../Options/Classes/Interactivity/Interactivity.js";
11
+ import type { Vector } from "../Utils/Vector.js";
12
12
  export interface IParticle {
13
13
  readonly backColor?: IHsl;
14
14
  readonly bubble: IBubbleParticleData;
@@ -1,4 +1,4 @@
1
- import type { IParticleValueAnimation } from "./IParticleValueAnimation";
1
+ import type { IParticleValueAnimation } from "./IParticleValueAnimation.js";
2
2
  export interface IParticleHslAnimation {
3
3
  h: IParticleValueAnimation<number>;
4
4
  l: IParticleValueAnimation<number>;
@@ -1,5 +1,5 @@
1
- import type { IDelta } from "./IDelta";
2
- import type { Particle } from "../Particle";
1
+ import type { IDelta } from "./IDelta.js";
2
+ import type { Particle } from "../Particle.js";
3
3
  export interface IParticleMover {
4
4
  init(particle: Particle): void;
5
5
  isEnabled(particle: Particle): boolean;
@@ -1,4 +1,4 @@
1
- import type { IDistance } from "./IDistance";
1
+ import type { IDistance } from "./IDistance.js";
2
2
  export interface IParticleRetinaProps {
3
3
  attractDistance?: number;
4
4
  maxDistance: Partial<IDistance>;
@@ -1,4 +1,4 @@
1
- import type { AlterType } from "../../Enums/Types/AlterType";
1
+ import type { AlterType } from "../../Enums/Types/AlterType.js";
2
2
  export interface IParticleRoll {
3
3
  alter?: {
4
4
  type: AlterType;
@@ -1,16 +1,14 @@
1
- import type { IDelta } from "./IDelta";
2
- import type { IParticleColorStyle } from "./IParticleColorStyle";
3
- import type { IParticleOverride } from "./IParticleOverride";
4
- import type { IParticleTransformValues } from "./IParticleTransformValues";
5
- import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions";
6
- import type { Particle } from "../Particle";
7
- import type { ParticlesOptions } from "../../Options/Classes/Particles/ParticlesOptions";
8
- import type { RecursivePartial } from "../../Types/RecursivePartial";
1
+ import type { IDelta } from "./IDelta.js";
2
+ import type { IParticleColorStyle } from "./IParticleColorStyle.js";
3
+ import type { IParticleTransformValues } from "./IParticleTransformValues.js";
4
+ import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions.js";
5
+ import type { Particle } from "../Particle.js";
6
+ import type { ParticlesOptions } from "../../Options/Classes/Particles/ParticlesOptions.js";
7
+ import type { RecursivePartial } from "../../Types/RecursivePartial.js";
9
8
  export interface IParticleUpdater {
10
9
  afterDraw?: (particle: Particle) => void;
11
10
  beforeDraw?: (particle: Particle) => void;
12
11
  getColorStyles?: (particle: Particle, context: CanvasRenderingContext2D, radius: number, opacity: number) => IParticleColorStyle;
13
- getOverrides?: (particle: Particle, context: CanvasRenderingContext2D, radius: number, opacity: number) => IParticleOverride;
14
12
  getTransformValues?: (particle: Particle) => IParticleTransformValues;
15
13
  loadOptions?: (options: ParticlesOptions, ...sources: (RecursivePartial<IParticlesOptions> | undefined)[]) => void;
16
14
  particleDestroyed?: (particle: Particle, override?: boolean) => void;
@@ -1,11 +1,13 @@
1
- import type { AnimationStatus } from "../../Enums/AnimationStatus";
1
+ import type { AnimationStatus } from "../../Enums/AnimationStatus.js";
2
2
  export interface IParticleValueAnimation<T> {
3
3
  decay?: number;
4
+ delayTime?: number;
4
5
  enable: boolean;
5
6
  initialValue?: number;
6
7
  loops?: number;
7
8
  maxLoops?: number;
8
9
  status?: AnimationStatus;
10
+ time?: number;
9
11
  value: T;
10
12
  velocity?: number;
11
13
  }
@@ -1,6 +1,6 @@
1
- import type { IDelta } from "./IDelta";
2
- import type { IInteractor } from "./IInteractor";
3
- import type { Particle } from "../Particle";
1
+ import type { IDelta } from "./IDelta.js";
2
+ import type { IInteractor } from "./IInteractor.js";
3
+ import type { Particle } from "../Particle.js";
4
4
  export interface IParticlesInteractor extends IInteractor {
5
5
  interact(particle: Particle, delta: IDelta): Promise<void>;
6
6
  isEnabled(particle: Particle): boolean;
@@ -1,10 +1,11 @@
1
- import type { Container } from "../Container";
2
- import type { IContainerPlugin } from "./IContainerPlugin";
3
- import type { ISourceOptions } from "../../Types/ISourceOptions";
4
- import type { Options } from "../../Options/Classes/Options";
1
+ import type { Container } from "../Container.js";
2
+ import type { IContainerPlugin } from "./IContainerPlugin.js";
3
+ import type { IOptions } from "../../Options/Interfaces/IOptions.js";
4
+ import type { Options } from "../../Options/Classes/Options.js";
5
+ import type { RecursivePartial } from "../../Types/RecursivePartial.js";
5
6
  export interface IPlugin {
6
7
  readonly id: string;
7
8
  getPlugin(container: Container): IContainerPlugin;
8
- loadOptions(options: Options, source?: ISourceOptions): void;
9
- needsPlugin(options?: ISourceOptions): boolean;
9
+ loadOptions(options: Options, source?: RecursivePartial<IOptions>): void;
10
+ needsPlugin(options?: RecursivePartial<IOptions>): boolean;
10
11
  }
@@ -1,5 +1,5 @@
1
- import type { ICoordinates, IRangedCoordinates } from "./ICoordinates";
2
- import type { IDimension } from "./IDimension";
1
+ import type { ICoordinates, IRangedCoordinates } from "./ICoordinates.js";
2
+ import type { IDimension } from "./IDimension.js";
3
3
  export interface IPositionFromSizeParams {
4
4
  position?: Partial<ICoordinates>;
5
5
  size: IDimension;
@@ -1,4 +1,4 @@
1
- import type { ShapeDrawerAfterEffectFunction, ShapeDrawerDestroyFunction, ShapeDrawerDrawFunction, ShapeDrawerInitFunction, ShapeDrawerLoadFunction, ShapeDrawerParticleInitFunction, ShapeDrawerSidesCountFunction } from "../../Types/ShapeDrawerFunctions";
1
+ import type { ShapeDrawerAfterEffectFunction, ShapeDrawerDestroyFunction, ShapeDrawerDrawFunction, ShapeDrawerInitFunction, ShapeDrawerLoadFunction, ShapeDrawerParticleInitFunction, ShapeDrawerSidesCountFunction } from "../../Types/ShapeDrawerFunctions.js";
2
2
  export interface IShapeDrawer {
3
3
  afterEffect?: ShapeDrawerAfterEffectFunction;
4
4
  destroy?: ShapeDrawerDestroyFunction;
@@ -1,5 +1,5 @@
1
- import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions";
2
- import type { RecursivePartial } from "../../Types/RecursivePartial";
1
+ import type { IParticlesOptions } from "../../Options/Interfaces/Particles/IParticlesOptions.js";
2
+ import type { RecursivePartial } from "../../Types/RecursivePartial.js";
3
3
  export interface IShapeValues {
4
4
  [key: string]: unknown;
5
5
  close?: boolean;
@@ -1,4 +1,4 @@
1
- import type { IRgb } from "./Colors";
1
+ import type { IRgb } from "./Colors.js";
2
2
  export interface ITrailFillData {
3
3
  color?: IRgb;
4
4
  image?: HTMLImageElement;
@@ -1,24 +1,24 @@
1
- import type { ICenterCoordinates, ICoordinates, ICoordinates3d } from "./Interfaces/ICoordinates";
2
- import type { IHsl, IRgb } from "./Interfaces/Colors";
3
- import type { Container } from "./Container";
4
- import type { Engine } from "../engine";
5
- import type { IBubbleParticleData } from "./Interfaces/IBubbleParticleData";
6
- import type { IDelta } from "./Interfaces/IDelta";
7
- import type { IMovePathGenerator } from "./Interfaces/IMovePathGenerator";
8
- import type { IParticle } from "./Interfaces/IParticle";
9
- import type { IParticleHslAnimation } from "./Interfaces/IParticleHslAnimation";
10
- import type { IParticleNumericValueAnimation } from "./Interfaces/IParticleValueAnimation";
11
- import type { IParticleRetinaProps } from "./Interfaces/IParticleRetinaProps";
12
- import type { IParticleRoll } from "./Interfaces/IParticleRoll";
13
- import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions";
14
- import type { IShapeValues } from "./Interfaces/IShapeValues";
15
- import type { ISlowParticleData } from "./Interfaces/ISlowParticleData";
16
- import { Interactivity } from "../Options/Classes/Interactivity/Interactivity";
17
- import { ParticleOutType } from "../Enums/Types/ParticleOutType";
18
- import type { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions";
19
- import type { RecursivePartial } from "../Types/RecursivePartial";
20
- import { Vector } from "./Utils/Vector";
21
- import { Vector3d } from "./Utils/Vector3d";
1
+ import type { ICenterCoordinates, ICoordinates, ICoordinates3d } from "./Interfaces/ICoordinates.js";
2
+ import type { IHsl, IRgb } from "./Interfaces/Colors.js";
3
+ import type { Container } from "./Container.js";
4
+ import type { Engine } from "./Engine.js";
5
+ import type { IBubbleParticleData } from "./Interfaces/IBubbleParticleData.js";
6
+ import type { IDelta } from "./Interfaces/IDelta.js";
7
+ import type { IMovePathGenerator } from "./Interfaces/IMovePathGenerator.js";
8
+ import type { IParticle } from "./Interfaces/IParticle.js";
9
+ import type { IParticleHslAnimation } from "./Interfaces/IParticleHslAnimation.js";
10
+ import type { IParticleNumericValueAnimation } from "./Interfaces/IParticleValueAnimation.js";
11
+ import type { IParticleRetinaProps } from "./Interfaces/IParticleRetinaProps.js";
12
+ import type { IParticleRoll } from "./Interfaces/IParticleRoll.js";
13
+ import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js";
14
+ import type { IShapeValues } from "./Interfaces/IShapeValues.js";
15
+ import type { ISlowParticleData } from "./Interfaces/ISlowParticleData.js";
16
+ import { Interactivity } from "../Options/Classes/Interactivity/Interactivity.js";
17
+ import { ParticleOutType } from "../Enums/Types/ParticleOutType.js";
18
+ import type { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions.js";
19
+ import type { RecursivePartial } from "../Types/RecursivePartial.js";
20
+ import { Vector } from "./Utils/Vector.js";
21
+ import { Vector3d } from "./Utils/Vector3d.js";
22
22
  export declare class Particle implements IParticle {
23
23
  readonly container: Container;
24
24
  backColor?: IHsl;
@@ -76,10 +76,10 @@ export declare class Particle implements IParticle {
76
76
  isInsideCanvas(): boolean;
77
77
  isVisible(): boolean;
78
78
  reset(): void;
79
- private _calcPosition;
80
- private _calculateVelocity;
81
- private _checkOverlap;
82
- private _getRollColor;
83
- private _initPosition;
84
- private _loadShapeData;
79
+ private readonly _calcPosition;
80
+ private readonly _calculateVelocity;
81
+ private readonly _checkOverlap;
82
+ private readonly _getRollColor;
83
+ private readonly _initPosition;
84
+ private readonly _loadShapeData;
85
85
  }
@@ -1,28 +1,28 @@
1
- import type { ClickMode } from "../Enums/Modes/ClickMode";
2
- import type { Container } from "./Container";
3
- import type { Engine } from "../engine";
4
- import type { ICoordinates } from "./Interfaces/ICoordinates";
5
- import type { IDelta } from "./Interfaces/IDelta";
6
- import type { IMouseData } from "./Interfaces/IMouseData";
7
- import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions";
8
- import { Particle } from "./Particle";
9
- import { QuadTree } from "./Utils/QuadTree";
10
- import type { RecursivePartial } from "../Types/RecursivePartial";
1
+ import type { ClickMode } from "../Enums/Modes/ClickMode.js";
2
+ import type { Container } from "./Container.js";
3
+ import type { Engine } from "./Engine.js";
4
+ import type { ICoordinates } from "./Interfaces/ICoordinates.js";
5
+ import type { IDelta } from "./Interfaces/IDelta.js";
6
+ import type { IMouseData } from "./Interfaces/IMouseData.js";
7
+ import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js";
8
+ import { Particle } from "./Particle.js";
9
+ import { QuadTree } from "./Utils/QuadTree.js";
10
+ import type { RecursivePartial } from "../Types/RecursivePartial.js";
11
11
  export declare class Particles {
12
- private readonly container;
13
- array: Particle[];
14
12
  lastZIndex: number;
15
13
  limit: number;
16
- movers: import("./Interfaces/IParticleMover").IParticleMover[];
14
+ movers: import("./Interfaces/IParticleMover.js").IParticleMover[];
17
15
  needsSort: boolean;
18
16
  pool: Particle[];
19
17
  pushing?: boolean;
20
18
  quadTree: QuadTree;
21
- updaters: import("..").IParticleUpdater[];
22
- zArray: Particle[];
19
+ updaters: import("./Interfaces/IParticleUpdater.js").IParticleUpdater[];
20
+ private _array;
21
+ private readonly _container;
23
22
  private readonly _engine;
24
- private readonly interactionManager;
25
- private nextId;
23
+ private readonly _interactionManager;
24
+ private _nextId;
25
+ private _zArray;
26
26
  constructor(engine: Engine, container: Container);
27
27
  get count(): number;
28
28
  addManualParticles(): void;
@@ -30,6 +30,9 @@ export declare class Particles {
30
30
  clear(): void;
31
31
  destroy(): void;
32
32
  draw(delta: IDelta): Promise<void>;
33
+ filter(condition: (particle: Particle) => boolean): Particle[];
34
+ find(condition: (particle: Particle) => boolean): Particle | undefined;
35
+ get(index: number): Particle | undefined;
33
36
  handleClickMode(mode: ClickMode | string): void;
34
37
  init(): void;
35
38
  push(nb: number, mouse?: IMouseData, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string): void;
@@ -39,8 +42,8 @@ export declare class Particles {
39
42
  removeQuantity(quantity: number, group?: string): void;
40
43
  setDensity(): void;
41
44
  update(delta: IDelta): Promise<void>;
42
- private _applyDensity;
43
- private _initDensityFactor;
44
- private _pushParticle;
45
- private _removeParticle;
45
+ private readonly _applyDensity;
46
+ private readonly _initDensityFactor;
47
+ private readonly _pushParticle;
48
+ private readonly _removeParticle;
46
49
  }
@@ -1,5 +1,5 @@
1
- import type { Container } from "./Container";
2
- import type { Particle } from "./Particle";
1
+ import type { Container } from "./Container.js";
2
+ import type { Particle } from "./Particle.js";
3
3
  export declare class Retina {
4
4
  private readonly container;
5
5
  attractDistance: number;
@@ -1,5 +1,5 @@
1
- import type { ICoordinates } from "../Interfaces/ICoordinates";
2
- import { Range } from "./Range";
1
+ import type { ICoordinates } from "../Interfaces/ICoordinates.js";
2
+ import { Range } from "./Range.js";
3
3
  export declare class Circle extends Range {
4
4
  readonly radius: number;
5
5
  constructor(x: number, y: number, radius: number);
@@ -1,12 +1,13 @@
1
1
  export declare const generatedAttribute = "generated";
2
- export declare const touchEndEvent = "touchend";
3
2
  export declare const mouseDownEvent = "pointerdown";
4
3
  export declare const mouseUpEvent = "pointerup";
4
+ export declare const mouseLeaveEvent = "pointerleave";
5
+ export declare const mouseOutEvent = "pointerout";
5
6
  export declare const mouseMoveEvent = "pointermove";
6
7
  export declare const touchStartEvent = "touchstart";
8
+ export declare const touchEndEvent = "touchend";
7
9
  export declare const touchMoveEvent = "touchmove";
8
- export declare const mouseLeaveEvent = "pointerleave";
9
- export declare const mouseOutEvent = "pointerout";
10
10
  export declare const touchCancelEvent = "touchcancel";
11
11
  export declare const resizeEvent = "resize";
12
12
  export declare const visibilityChangeEvent = "visibilitychange";
13
+ export declare const errorPrefix = "tsParticles - Error";