@tsparticles/engine 4.0.0-alpha.8 → 4.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 (307) hide show
  1. package/155.min.js +1 -0
  2. package/README.md +41 -28
  3. package/browser/Core/CanvasManager.js +303 -0
  4. package/browser/Core/Container.js +134 -101
  5. package/browser/Core/Engine.js +29 -162
  6. package/browser/Core/Particle.js +197 -183
  7. package/browser/Core/ParticlesManager.js +363 -0
  8. package/browser/Core/RenderManager.js +303 -0
  9. package/browser/Core/Retina.js +6 -6
  10. package/browser/Core/Utils/Constants.js +2 -2
  11. package/browser/Core/Utils/EventListeners.js +67 -63
  12. package/browser/Core/Utils/PluginManager.js +145 -0
  13. package/browser/Core/Utils/Ranges.js +29 -10
  14. package/browser/Core/Utils/SpatialHashGrid.js +102 -0
  15. package/browser/Core/Utils/Vectors.js +17 -18
  16. package/browser/Options/Classes/AnimatableColor.js +1 -0
  17. package/browser/Options/Classes/AnimationOptions.js +8 -0
  18. package/browser/Options/Classes/Background/Background.js +6 -0
  19. package/browser/Options/Classes/ColorAnimation.js +12 -1
  20. package/browser/Options/Classes/FullScreen/FullScreen.js +2 -0
  21. package/browser/Options/Classes/HslAnimation.js +4 -5
  22. package/browser/Options/Classes/Options.js +67 -8
  23. package/browser/Options/Classes/OptionsColor.js +1 -0
  24. package/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  25. package/browser/Options/Classes/Particles/Effect/Effect.js +3 -4
  26. package/browser/Options/Classes/Particles/Fill.js +28 -0
  27. package/browser/Options/Classes/Particles/Move/Move.js +17 -3
  28. package/browser/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  29. package/browser/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  30. package/browser/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  31. package/browser/Options/Classes/Particles/Move/OutModes.js +5 -0
  32. package/browser/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  33. package/browser/Options/Classes/Particles/Move/Spin.js +3 -0
  34. package/browser/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  35. package/browser/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  36. package/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  37. package/browser/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  38. package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  39. package/browser/Options/Classes/Particles/ParticlesOptions.js +29 -9
  40. package/browser/Options/Classes/Particles/Shape/Shape.js +3 -4
  41. package/browser/Options/Classes/Particles/Size/Size.js +1 -0
  42. package/browser/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  43. package/browser/Options/Classes/Particles/Stroke.js +3 -0
  44. package/browser/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  45. package/browser/Options/Classes/ResizeEvent.js +2 -0
  46. package/browser/Options/Classes/ValueWithRandom.js +3 -4
  47. package/browser/Utils/CanvasUtils.js +44 -51
  48. package/browser/Utils/ColorUtils.js +51 -40
  49. package/browser/Utils/EventDispatcher.js +1 -0
  50. package/browser/Utils/LogUtils.js +1 -0
  51. package/browser/Utils/MathUtils.js +12 -7
  52. package/browser/Utils/OptionsUtils.js +2 -2
  53. package/browser/Utils/Utils.js +109 -31
  54. package/browser/exports.js +1 -2
  55. package/cjs/Core/CanvasManager.js +303 -0
  56. package/cjs/Core/Container.js +134 -101
  57. package/cjs/Core/Engine.js +29 -162
  58. package/cjs/Core/Particle.js +197 -183
  59. package/cjs/Core/ParticlesManager.js +363 -0
  60. package/cjs/Core/RenderManager.js +303 -0
  61. package/cjs/Core/Retina.js +6 -6
  62. package/cjs/Core/Utils/Constants.js +2 -2
  63. package/cjs/Core/Utils/EventListeners.js +67 -63
  64. package/cjs/Core/Utils/PluginManager.js +145 -0
  65. package/cjs/Core/Utils/Ranges.js +29 -10
  66. package/cjs/Core/Utils/SpatialHashGrid.js +102 -0
  67. package/cjs/Core/Utils/Vectors.js +17 -18
  68. package/cjs/Options/Classes/AnimatableColor.js +1 -0
  69. package/cjs/Options/Classes/AnimationOptions.js +8 -0
  70. package/cjs/Options/Classes/Background/Background.js +6 -0
  71. package/cjs/Options/Classes/ColorAnimation.js +12 -1
  72. package/cjs/Options/Classes/FullScreen/FullScreen.js +2 -0
  73. package/cjs/Options/Classes/HslAnimation.js +4 -5
  74. package/cjs/Options/Classes/Options.js +67 -8
  75. package/cjs/Options/Classes/OptionsColor.js +1 -0
  76. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  77. package/cjs/Options/Classes/Particles/Effect/Effect.js +3 -4
  78. package/cjs/Options/Classes/Particles/Fill.js +28 -0
  79. package/cjs/Options/Classes/Particles/Move/Move.js +17 -3
  80. package/cjs/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  81. package/cjs/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  82. package/cjs/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  83. package/cjs/Options/Classes/Particles/Move/OutModes.js +5 -0
  84. package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  85. package/cjs/Options/Classes/Particles/Move/Spin.js +3 -0
  86. package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  87. package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  88. package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  89. package/cjs/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  90. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  91. package/cjs/Options/Classes/Particles/ParticlesOptions.js +29 -9
  92. package/cjs/Options/Classes/Particles/Shape/Shape.js +3 -4
  93. package/cjs/Options/Classes/Particles/Size/Size.js +1 -0
  94. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  95. package/cjs/Options/Classes/Particles/Stroke.js +3 -0
  96. package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  97. package/cjs/Options/Classes/ResizeEvent.js +2 -0
  98. package/cjs/Options/Classes/ValueWithRandom.js +3 -4
  99. package/cjs/Utils/CanvasUtils.js +44 -51
  100. package/cjs/Utils/ColorUtils.js +51 -40
  101. package/cjs/Utils/EventDispatcher.js +1 -0
  102. package/cjs/Utils/LogUtils.js +1 -0
  103. package/cjs/Utils/MathUtils.js +12 -7
  104. package/cjs/Utils/OptionsUtils.js +2 -2
  105. package/cjs/Utils/Utils.js +109 -31
  106. package/cjs/exports.js +1 -2
  107. package/dist_browser_Core_Container_js.js +30 -20
  108. package/esm/Core/CanvasManager.js +303 -0
  109. package/esm/Core/Container.js +134 -101
  110. package/esm/Core/Engine.js +29 -162
  111. package/esm/Core/Particle.js +197 -183
  112. package/esm/Core/ParticlesManager.js +363 -0
  113. package/esm/Core/RenderManager.js +303 -0
  114. package/esm/Core/Retina.js +6 -6
  115. package/esm/Core/Utils/Constants.js +2 -2
  116. package/esm/Core/Utils/EventListeners.js +67 -63
  117. package/esm/Core/Utils/PluginManager.js +145 -0
  118. package/esm/Core/Utils/Ranges.js +29 -10
  119. package/esm/Core/Utils/SpatialHashGrid.js +102 -0
  120. package/esm/Core/Utils/Vectors.js +17 -18
  121. package/esm/Options/Classes/AnimatableColor.js +1 -0
  122. package/esm/Options/Classes/AnimationOptions.js +8 -0
  123. package/esm/Options/Classes/Background/Background.js +6 -0
  124. package/esm/Options/Classes/ColorAnimation.js +12 -1
  125. package/esm/Options/Classes/FullScreen/FullScreen.js +2 -0
  126. package/esm/Options/Classes/HslAnimation.js +4 -5
  127. package/esm/Options/Classes/Options.js +67 -8
  128. package/esm/Options/Classes/OptionsColor.js +1 -0
  129. package/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  130. package/esm/Options/Classes/Particles/Effect/Effect.js +3 -4
  131. package/esm/Options/Classes/Particles/Fill.js +28 -0
  132. package/esm/Options/Classes/Particles/Move/Move.js +17 -3
  133. package/esm/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  134. package/esm/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  135. package/esm/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  136. package/esm/Options/Classes/Particles/Move/OutModes.js +5 -0
  137. package/esm/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  138. package/esm/Options/Classes/Particles/Move/Spin.js +3 -0
  139. package/esm/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  140. package/esm/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  141. package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  142. package/esm/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  143. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  144. package/esm/Options/Classes/Particles/ParticlesOptions.js +29 -9
  145. package/esm/Options/Classes/Particles/Shape/Shape.js +3 -4
  146. package/esm/Options/Classes/Particles/Size/Size.js +1 -0
  147. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  148. package/esm/Options/Classes/Particles/Stroke.js +3 -0
  149. package/esm/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  150. package/esm/Options/Classes/ResizeEvent.js +2 -0
  151. package/esm/Options/Classes/ValueWithRandom.js +3 -4
  152. package/esm/Utils/CanvasUtils.js +44 -51
  153. package/esm/Utils/ColorUtils.js +51 -40
  154. package/esm/Utils/EventDispatcher.js +1 -0
  155. package/esm/Utils/LogUtils.js +1 -0
  156. package/esm/Utils/MathUtils.js +12 -7
  157. package/esm/Utils/OptionsUtils.js +2 -2
  158. package/esm/Utils/Utils.js +109 -31
  159. package/esm/exports.js +1 -2
  160. package/package.json +1 -1
  161. package/report.html +84 -29
  162. package/scripts/install.js +4 -20
  163. package/tsparticles.engine.js +98 -86
  164. package/tsparticles.engine.min.js +2 -2
  165. package/types/Core/CanvasManager.d.ts +39 -0
  166. package/types/Core/Container.d.ts +29 -14
  167. package/types/Core/Engine.d.ts +2 -61
  168. package/types/Core/Interfaces/IColorManager.d.ts +0 -1
  169. package/types/Core/Interfaces/IContainerPlugin.d.ts +10 -8
  170. package/types/Core/Interfaces/IDrawParticleParams.d.ts +2 -1
  171. package/types/Core/Interfaces/IPalette.d.ts +7 -0
  172. package/types/Core/Interfaces/IParticleOpacityData.d.ts +1 -0
  173. package/types/Core/Interfaces/IParticleRetinaProps.d.ts +4 -4
  174. package/types/Core/Interfaces/IParticleUpdater.d.ts +2 -1
  175. package/types/Core/Interfaces/IParticleValueAnimation.d.ts +3 -3
  176. package/types/Core/Interfaces/IShapeDrawData.d.ts +10 -1
  177. package/types/Core/Interfaces/IShapeDrawer.d.ts +0 -1
  178. package/types/Core/Interfaces/IShapeValues.d.ts +0 -1
  179. package/types/Core/Particle.d.ts +7 -11
  180. package/types/Core/{Particles.d.ts → ParticlesManager.d.ts} +15 -14
  181. package/types/Core/RenderManager.d.ts +49 -0
  182. package/types/Core/Retina.d.ts +0 -2
  183. package/types/Core/Utils/Constants.d.ts +2 -2
  184. package/types/Core/Utils/PluginManager.d.ts +62 -0
  185. package/types/Core/Utils/Ranges.d.ts +4 -1
  186. package/types/Core/Utils/SpatialHashGrid.d.ts +25 -0
  187. package/types/Core/Utils/Vectors.d.ts +8 -10
  188. package/types/Options/Classes/ColorAnimation.d.ts +3 -1
  189. package/types/Options/Classes/HslAnimation.d.ts +3 -4
  190. package/types/Options/Classes/Options.d.ts +5 -3
  191. package/types/Options/Classes/Particles/Effect/Effect.d.ts +0 -1
  192. package/types/Options/Classes/Particles/Fill.d.ts +12 -0
  193. package/types/Options/Classes/Particles/Move/Move.d.ts +0 -2
  194. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +5 -5
  195. package/types/Options/Classes/Particles/Shape/Shape.d.ts +0 -1
  196. package/types/Options/Classes/ValueWithRandom.d.ts +0 -1
  197. package/types/Options/Interfaces/IColorAnimation.d.ts +2 -0
  198. package/types/Options/Interfaces/IOptions.d.ts +1 -0
  199. package/types/Options/Interfaces/Particles/Effect/IEffect.d.ts +0 -1
  200. package/types/Options/Interfaces/Particles/IFill.d.ts +9 -0
  201. package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +2 -2
  202. package/types/Options/Interfaces/Particles/IStroke.d.ts +2 -2
  203. package/types/Options/Interfaces/Particles/Move/IMove.d.ts +0 -2
  204. package/types/Options/Interfaces/Particles/Shape/IShape.d.ts +0 -1
  205. package/types/Types/CanvasContextType.d.ts +1 -0
  206. package/types/Types/EngineInitializers.d.ts +6 -3
  207. package/types/Utils/CanvasUtils.d.ts +13 -16
  208. package/types/Utils/ColorUtils.d.ts +11 -10
  209. package/types/Utils/LogUtils.d.ts +1 -0
  210. package/types/Utils/MathUtils.d.ts +2 -0
  211. package/types/Utils/OptionsUtils.d.ts +2 -2
  212. package/types/Utils/Utils.d.ts +8 -1
  213. package/types/export-types.d.ts +7 -7
  214. package/types/exports.d.ts +1 -2
  215. package/umd/Core/CanvasManager.js +317 -0
  216. package/umd/Core/Container.js +134 -101
  217. package/umd/Core/Engine.js +28 -161
  218. package/umd/Core/Particle.js +198 -184
  219. package/umd/Core/{Particles.js → ParticlesManager.js} +186 -167
  220. package/umd/Core/RenderManager.js +317 -0
  221. package/umd/Core/Retina.js +6 -6
  222. package/umd/Core/Utils/Constants.js +3 -3
  223. package/umd/Core/Utils/EventListeners.js +67 -63
  224. package/umd/Core/Utils/PluginManager.js +159 -0
  225. package/umd/Core/Utils/Ranges.js +28 -9
  226. package/umd/Core/Utils/SpatialHashGrid.js +116 -0
  227. package/umd/Core/Utils/Vectors.js +17 -18
  228. package/umd/Options/Classes/AnimatableColor.js +1 -0
  229. package/umd/Options/Classes/AnimationOptions.js +8 -0
  230. package/umd/Options/Classes/Background/Background.js +6 -0
  231. package/umd/Options/Classes/ColorAnimation.js +12 -1
  232. package/umd/Options/Classes/FullScreen/FullScreen.js +2 -0
  233. package/umd/Options/Classes/HslAnimation.js +5 -6
  234. package/umd/Options/Classes/Options.js +67 -8
  235. package/umd/Options/Classes/OptionsColor.js +1 -0
  236. package/umd/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  237. package/umd/Options/Classes/Particles/Effect/Effect.js +3 -4
  238. package/umd/Options/Classes/Particles/Fill.js +42 -0
  239. package/umd/Options/Classes/Particles/Move/Move.js +18 -4
  240. package/umd/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  241. package/umd/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  242. package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  243. package/umd/Options/Classes/Particles/Move/OutModes.js +5 -0
  244. package/umd/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  245. package/umd/Options/Classes/Particles/Move/Spin.js +3 -0
  246. package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  247. package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  248. package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  249. package/umd/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  250. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  251. package/umd/Options/Classes/Particles/ParticlesOptions.js +30 -10
  252. package/umd/Options/Classes/Particles/Shape/Shape.js +3 -4
  253. package/umd/Options/Classes/Particles/Size/Size.js +1 -0
  254. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  255. package/umd/Options/Classes/Particles/Stroke.js +3 -0
  256. package/umd/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  257. package/umd/Options/Classes/ResizeEvent.js +2 -0
  258. package/umd/Options/Classes/ValueWithRandom.js +3 -4
  259. package/umd/Utils/CanvasUtils.js +44 -53
  260. package/umd/Utils/ColorUtils.js +51 -39
  261. package/umd/Utils/EventDispatcher.js +1 -0
  262. package/umd/Utils/LogUtils.js +1 -0
  263. package/umd/Utils/MathUtils.js +14 -7
  264. package/umd/Utils/OptionsUtils.js +2 -2
  265. package/umd/Utils/Utils.js +111 -32
  266. package/umd/exports.js +2 -3
  267. package/794.min.js +0 -2
  268. package/794.min.js.LICENSE.txt +0 -1
  269. package/browser/Core/Canvas.js +0 -469
  270. package/browser/Core/Particles.js +0 -344
  271. package/browser/Core/Utils/Point.js +0 -6
  272. package/browser/Core/Utils/QuadTree.js +0 -59
  273. package/browser/Options/Classes/Particles/Move/MoveAttract.js +0 -33
  274. package/cjs/Core/Canvas.js +0 -469
  275. package/cjs/Core/Particles.js +0 -344
  276. package/cjs/Core/Utils/Point.js +0 -6
  277. package/cjs/Core/Utils/QuadTree.js +0 -59
  278. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +0 -33
  279. package/esm/Core/Canvas.js +0 -469
  280. package/esm/Core/Particles.js +0 -344
  281. package/esm/Core/Utils/Point.js +0 -6
  282. package/esm/Core/Utils/QuadTree.js +0 -59
  283. package/esm/Options/Classes/Particles/Move/MoveAttract.js +0 -33
  284. package/tsparticles.engine.min.js.LICENSE.txt +0 -1
  285. package/types/Core/Canvas.d.ts +0 -55
  286. package/types/Core/Interfaces/IMovePathGenerator.d.ts +0 -10
  287. package/types/Core/Interfaces/IParticleMover.d.ts +0 -7
  288. package/types/Core/Utils/Point.d.ts +0 -7
  289. package/types/Core/Utils/QuadTree.d.ts +0 -18
  290. package/types/Options/Classes/Particles/Move/MoveAttract.d.ts +0 -12
  291. package/types/Options/Interfaces/Particles/Move/IMoveAttract.d.ts +0 -7
  292. package/umd/Core/Canvas.js +0 -483
  293. package/umd/Core/Utils/Point.js +0 -20
  294. package/umd/Core/Utils/QuadTree.js +0 -73
  295. package/umd/Options/Classes/Particles/Move/MoveAttract.js +0 -47
  296. /package/browser/Core/Interfaces/{IMovePathGenerator.js → IPalette.js} +0 -0
  297. /package/browser/{Core/Interfaces/IParticleMover.js → Options/Interfaces/Particles/IFill.js} +0 -0
  298. /package/browser/{Options/Interfaces/Particles/Move/IMoveAttract.js → Types/CanvasContextType.js} +0 -0
  299. /package/cjs/Core/Interfaces/{IMovePathGenerator.js → IPalette.js} +0 -0
  300. /package/cjs/{Core/Interfaces/IParticleMover.js → Options/Interfaces/Particles/IFill.js} +0 -0
  301. /package/cjs/{Options/Interfaces/Particles/Move/IMoveAttract.js → Types/CanvasContextType.js} +0 -0
  302. /package/esm/Core/Interfaces/{IMovePathGenerator.js → IPalette.js} +0 -0
  303. /package/esm/{Core/Interfaces/IParticleMover.js → Options/Interfaces/Particles/IFill.js} +0 -0
  304. /package/esm/{Options/Interfaces/Particles/Move/IMoveAttract.js → Types/CanvasContextType.js} +0 -0
  305. /package/umd/Core/Interfaces/{IMovePathGenerator.js → IPalette.js} +0 -0
  306. /package/umd/{Core/Interfaces/IParticleMover.js → Options/Interfaces/Particles/IFill.js} +0 -0
  307. /package/umd/{Options/Interfaces/Particles/Move/IMoveAttract.js → Types/CanvasContextType.js} +0 -0
@@ -13,6 +13,11 @@
13
13
  const OutMode_js_1 = require("../../../../Enums/Modes/OutMode.js");
14
14
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
15
15
  class OutModes {
16
+ bottom;
17
+ default;
18
+ left;
19
+ right;
20
+ top;
16
21
  constructor() {
17
22
  this.default = OutMode_js_1.OutMode.out;
18
23
  }
@@ -14,6 +14,11 @@
14
14
  const Utils_js_1 = require("../../../../../Utils/Utils.js");
15
15
  const TypeUtils_js_1 = require("../../../../../Utils/TypeUtils.js");
16
16
  class MovePath {
17
+ clamp;
18
+ delay;
19
+ enable;
20
+ generator;
21
+ options;
17
22
  constructor() {
18
23
  this.clamp = true;
19
24
  this.delay = new ValueWithRandom_js_1.ValueWithRandom();
@@ -14,6 +14,9 @@
14
14
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
15
15
  const MathUtils_js_1 = require("../../../../Utils/MathUtils.js");
16
16
  class Spin {
17
+ acceleration;
18
+ enable;
19
+ position;
17
20
  constructor() {
18
21
  this.acceleration = 0;
19
22
  this.enable = false;
@@ -12,6 +12,9 @@
12
12
  exports.ParticlesDensity = void 0;
13
13
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
14
14
  class ParticlesDensity {
15
+ enable;
16
+ height;
17
+ width;
15
18
  constructor() {
16
19
  this.enable = false;
17
20
  this.width = 1920;
@@ -14,6 +14,9 @@
14
14
  const ParticlesNumberLimit_js_1 = require("./ParticlesNumberLimit.js");
15
15
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
16
16
  class ParticlesNumber {
17
+ density;
18
+ limit;
19
+ value;
17
20
  constructor() {
18
21
  this.density = new ParticlesDensity_js_1.ParticlesDensity();
19
22
  this.limit = new ParticlesNumberLimit_js_1.ParticlesNumberLimit();
@@ -13,6 +13,8 @@
13
13
  const LimitMode_js_1 = require("../../../../Enums/Modes/LimitMode.js");
14
14
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
15
15
  class ParticlesNumberLimit {
16
+ mode;
17
+ value;
16
18
  constructor() {
17
19
  this.mode = LimitMode_js_1.LimitMode.delete;
18
20
  this.value = 0;
@@ -14,6 +14,7 @@
14
14
  const ValueWithRandom_js_1 = require("../../ValueWithRandom.js");
15
15
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
16
16
  class Opacity extends ValueWithRandom_js_1.RangedAnimationValueWithRandom {
17
+ animation;
17
18
  constructor() {
18
19
  super();
19
20
  this.animation = new OpacityAnimation_js_1.OpacityAnimation();
@@ -14,6 +14,7 @@
14
14
  const AnimationOptions_js_1 = require("../../AnimationOptions.js");
15
15
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
16
16
  class OpacityAnimation extends AnimationOptions_js_1.RangedAnimationOptions {
17
+ destroy;
17
18
  constructor() {
18
19
  super();
19
20
  this.destroy = DestroyType_js_1.DestroyType.none;
@@ -4,15 +4,15 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../../Utils/Utils.js", "../AnimatableColor.js", "./Effect/Effect.js", "./Move/Move.js", "./Opacity/Opacity.js", "./Bounce/ParticlesBounce.js", "./Number/ParticlesNumber.js", "./Shape/Shape.js", "./Size/Size.js", "./Stroke.js", "./ZIndex/ZIndex.js", "../../../Utils/TypeUtils.js"], factory);
7
+ define(["require", "exports", "../../../Utils/Utils.js", "./Effect/Effect.js", "./Fill.js", "./Move/Move.js", "./Opacity/Opacity.js", "./Bounce/ParticlesBounce.js", "./Number/ParticlesNumber.js", "./Shape/Shape.js", "./Size/Size.js", "./Stroke.js", "./ZIndex/ZIndex.js", "../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ParticlesOptions = void 0;
13
13
  const Utils_js_1 = require("../../../Utils/Utils.js");
14
- const AnimatableColor_js_1 = require("../AnimatableColor.js");
15
14
  const Effect_js_1 = require("./Effect/Effect.js");
15
+ const Fill_js_1 = require("./Fill.js");
16
16
  const Move_js_1 = require("./Move/Move.js");
17
17
  const Opacity_js_1 = require("./Opacity/Opacity.js");
18
18
  const ParticlesBounce_js_1 = require("./Bounce/ParticlesBounce.js");
@@ -23,13 +23,26 @@
23
23
  const ZIndex_js_1 = require("./ZIndex/ZIndex.js");
24
24
  const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
25
25
  class ParticlesOptions {
26
- constructor(engine, container) {
27
- this._engine = engine;
26
+ bounce;
27
+ effect;
28
+ fill;
29
+ groups;
30
+ move;
31
+ number;
32
+ opacity;
33
+ reduceDuplicates;
34
+ shape;
35
+ size;
36
+ stroke;
37
+ zIndex;
38
+ _container;
39
+ _pluginManager;
40
+ constructor(pluginManager, container) {
41
+ this._pluginManager = pluginManager;
28
42
  this._container = container;
29
43
  this.bounce = new ParticlesBounce_js_1.ParticlesBounce();
30
- this.color = new AnimatableColor_js_1.AnimatableColor();
31
- this.color.value = "#fff";
32
44
  this.effect = new Effect_js_1.Effect();
45
+ this.fill = new Fill_js_1.Fill();
33
46
  this.groups = {};
34
47
  this.move = new Move_js_1.Move();
35
48
  this.number = new ParticlesNumber_js_1.ParticlesNumber();
@@ -46,7 +59,7 @@
46
59
  }
47
60
  if (data.groups !== undefined) {
48
61
  for (const group of Object.keys(data.groups)) {
49
- if (!Object.hasOwn(data.groups, group)) {
62
+ if (!(group in data.groups)) {
50
63
  continue;
51
64
  }
52
65
  const item = data.groups[group];
@@ -59,7 +72,6 @@
59
72
  this.reduceDuplicates = data.reduceDuplicates;
60
73
  }
61
74
  this.bounce.load(data.bounce);
62
- this.color.load(AnimatableColor_js_1.AnimatableColor.create(this.color, data.color));
63
75
  this.effect.load(data.effect);
64
76
  this.move.load(data.move);
65
77
  this.number.load(data.number);
@@ -67,6 +79,14 @@
67
79
  this.shape.load(data.shape);
68
80
  this.size.load(data.size);
69
81
  this.zIndex.load(data.zIndex);
82
+ const fillToLoad = data.fill;
83
+ if (fillToLoad) {
84
+ this.fill = (0, Utils_js_1.executeOnSingleOrMultiple)(fillToLoad, t => {
85
+ const tmp = new Fill_js_1.Fill();
86
+ tmp.load(t);
87
+ return tmp;
88
+ });
89
+ }
70
90
  const strokeToLoad = data.stroke;
71
91
  if (strokeToLoad) {
72
92
  this.stroke = (0, Utils_js_1.executeOnSingleOrMultiple)(strokeToLoad, t => {
@@ -76,12 +96,12 @@
76
96
  });
77
97
  }
78
98
  if (this._container) {
79
- for (const plugin of this._engine.plugins) {
99
+ for (const plugin of this._pluginManager.plugins) {
80
100
  if (plugin.loadParticlesOptions) {
81
101
  plugin.loadParticlesOptions(this._container, this, data);
82
102
  }
83
103
  }
84
- const updaters = this._engine.updaters.get(this._container);
104
+ const updaters = this._pluginManager.updaters.get(this._container);
85
105
  if (updaters) {
86
106
  for (const updater of updaters) {
87
107
  if (updater.loadOptions) {
@@ -13,9 +13,11 @@
13
13
  const Utils_js_1 = require("../../../../Utils/Utils.js");
14
14
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
15
15
  class Shape {
16
+ close;
17
+ options;
18
+ type;
16
19
  constructor() {
17
20
  this.close = true;
18
- this.fill = true;
19
21
  this.options = {};
20
22
  this.type = "circle";
21
23
  }
@@ -35,9 +37,6 @@
35
37
  if (data.close !== undefined) {
36
38
  this.close = data.close;
37
39
  }
38
- if (data.fill !== undefined) {
39
- this.fill = data.fill;
40
- }
41
40
  if (data.type !== undefined) {
42
41
  this.type = data.type;
43
42
  }
@@ -14,6 +14,7 @@
14
14
  const SizeAnimation_js_1 = require("./SizeAnimation.js");
15
15
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
16
16
  class Size extends ValueWithRandom_js_1.RangedAnimationValueWithRandom {
17
+ animation;
17
18
  constructor() {
18
19
  super();
19
20
  this.animation = new SizeAnimation_js_1.SizeAnimation();
@@ -14,6 +14,7 @@
14
14
  const AnimationOptions_js_1 = require("../../AnimationOptions.js");
15
15
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
16
16
  class SizeAnimation extends AnimationOptions_js_1.RangedAnimationOptions {
17
+ destroy;
17
18
  constructor() {
18
19
  super();
19
20
  this.destroy = DestroyType_js_1.DestroyType.none;
@@ -14,6 +14,9 @@
14
14
  const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
15
15
  const MathUtils_js_1 = require("../../../Utils/MathUtils.js");
16
16
  class Stroke {
17
+ color;
18
+ opacity;
19
+ width;
17
20
  constructor() {
18
21
  this.width = 0;
19
22
  }
@@ -13,6 +13,9 @@
13
13
  const ValueWithRandom_js_1 = require("../../ValueWithRandom.js");
14
14
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
15
15
  class ZIndex extends ValueWithRandom_js_1.ValueWithRandom {
16
+ opacityRate;
17
+ sizeRate;
18
+ velocityRate;
16
19
  constructor() {
17
20
  super();
18
21
  this.opacityRate = 1;
@@ -12,6 +12,8 @@
12
12
  exports.ResizeEvent = void 0;
13
13
  const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
14
14
  class ResizeEvent {
15
+ delay;
16
+ enable;
15
17
  constructor() {
16
18
  this.delay = 0.5;
17
19
  this.enable = true;
@@ -14,6 +14,7 @@
14
14
  const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
15
15
  const MathUtils_js_1 = require("../../Utils/MathUtils.js");
16
16
  class ValueWithRandom {
17
+ value;
17
18
  constructor() {
18
19
  this.value = 0;
19
20
  }
@@ -28,10 +29,7 @@
28
29
  }
29
30
  exports.ValueWithRandom = ValueWithRandom;
30
31
  class AnimationValueWithRandom extends ValueWithRandom {
31
- constructor() {
32
- super();
33
- this.animation = new AnimationOptions_js_1.AnimationOptions();
34
- }
32
+ animation = new AnimationOptions_js_1.AnimationOptions();
35
33
  load(data) {
36
34
  super.load(data);
37
35
  if ((0, TypeUtils_js_1.isNull)(data)) {
@@ -45,6 +43,7 @@
45
43
  }
46
44
  exports.AnimationValueWithRandom = AnimationValueWithRandom;
47
45
  class RangedAnimationValueWithRandom extends AnimationValueWithRandom {
46
+ animation;
48
47
  constructor() {
49
48
  super();
50
49
  this.animation = new AnimationOptions_js_1.RangedAnimationOptions();
@@ -4,12 +4,11 @@
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/Constants.js", "../Enums/Types/AlterType.js"], factory);
7
+ define(["require", "exports", "../Core/Utils/Constants.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.drawLine = drawLine;
13
12
  exports.paintBase = paintBase;
14
13
  exports.paintImage = paintImage;
15
14
  exports.clear = clear;
@@ -20,15 +19,7 @@
20
19
  exports.drawShapeAfterDraw = drawShapeAfterDraw;
21
20
  exports.drawShapeBeforeDraw = drawShapeBeforeDraw;
22
21
  exports.drawParticlePlugin = drawParticlePlugin;
23
- exports.alterHsl = alterHsl;
24
22
  const Constants_js_1 = require("../Core/Utils/Constants.js");
25
- const AlterType_js_1 = require("../Enums/Types/AlterType.js");
26
- function drawLine(context, begin, end) {
27
- context.beginPath();
28
- context.moveTo(begin.x, begin.y);
29
- context.lineTo(end.x, end.y);
30
- context.closePath();
31
- }
32
23
  function paintBase(context, dimension, baseColor) {
33
24
  context.fillStyle = baseColor ?? "rgba(0,0,0,0)";
34
25
  context.fillRect(Constants_js_1.originPoint.x, Constants_js_1.originPoint.y, dimension.width, dimension.height);
@@ -37,20 +28,24 @@
37
28
  if (!image) {
38
29
  return;
39
30
  }
31
+ const prevAlpha = context.globalAlpha;
40
32
  context.globalAlpha = opacity;
41
33
  context.drawImage(image, Constants_js_1.originPoint.x, Constants_js_1.originPoint.y, dimension.width, dimension.height);
42
- context.globalAlpha = 1;
34
+ context.globalAlpha = prevAlpha;
43
35
  }
44
36
  function clear(context, dimension) {
45
37
  context.clearRect(Constants_js_1.originPoint.x, Constants_js_1.originPoint.y, dimension.width, dimension.height);
46
38
  }
47
39
  function drawParticle(data) {
48
- const { container, context, particle, delta, colorStyles, radius, opacity, transform } = data, pos = particle.getPosition(), transformData = particle.getTransformData(transform);
40
+ const { container, context, particle, delta, colorStyles, radius, opacity, transform } = data, { effectDrawers, shapeDrawers } = container, pos = particle.getPosition(), transformData = particle.getTransformData(transform), drawScale = Constants_js_1.defaultZoom, drawPosition = {
41
+ x: pos.x,
42
+ y: pos.y,
43
+ };
49
44
  context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);
50
45
  if (colorStyles.fill) {
51
46
  context.fillStyle = colorStyles.fill;
52
47
  }
53
- const strokeWidth = particle.strokeWidth ?? Constants_js_1.minStrokeWidth;
48
+ const fillEnabled = !!particle.fillEnabled, strokeWidth = particle.strokeWidth ?? Constants_js_1.minStrokeWidth;
54
49
  context.lineWidth = strokeWidth;
55
50
  if (colorStyles.stroke) {
56
51
  context.strokeStyle = colorStyles.stroke;
@@ -59,49 +54,54 @@
59
54
  context,
60
55
  particle,
61
56
  radius,
57
+ drawRadius: radius * drawScale,
62
58
  opacity,
63
59
  delta,
64
60
  pixelRatio: container.retina.pixelRatio,
65
- fill: particle.shapeFill,
66
- stroke: strokeWidth > Constants_js_1.minStrokeWidth || !particle.shapeFill,
61
+ fill: fillEnabled,
62
+ stroke: strokeWidth > Constants_js_1.minStrokeWidth,
67
63
  transformData,
64
+ position: { ...pos },
65
+ drawPosition,
66
+ drawScale,
68
67
  };
69
- drawBeforeEffect(container, drawData);
70
- drawShapeBeforeDraw(container, drawData);
71
- drawShape(container, drawData);
72
- drawShapeAfterDraw(container, drawData);
73
- drawAfterEffect(container, drawData);
68
+ for (const plugin of container.plugins) {
69
+ plugin.drawParticleTransform?.(drawData);
70
+ }
71
+ const effect = particle.effect ? effectDrawers.get(particle.effect) : undefined, shape = particle.shape ? shapeDrawers.get(particle.shape) : undefined;
72
+ drawBeforeEffect(effect, drawData);
73
+ drawShapeBeforeDraw(shape, drawData);
74
+ drawShape(shape, drawData);
75
+ drawShapeAfterDraw(shape, drawData);
76
+ drawAfterEffect(effect, drawData);
74
77
  context.resetTransform();
75
78
  }
76
- function drawAfterEffect(container, data) {
79
+ function drawAfterEffect(drawer, data) {
80
+ if (!drawer?.drawAfter) {
81
+ return;
82
+ }
77
83
  const { particle } = data;
78
84
  if (!particle.effect) {
79
85
  return;
80
86
  }
81
- const drawer = container.effectDrawers.get(particle.effect), drawFunc = drawer?.drawAfter;
82
- if (!drawFunc) {
87
+ drawer.drawAfter(data);
88
+ }
89
+ function drawBeforeEffect(drawer, data) {
90
+ if (!drawer?.drawBefore) {
83
91
  return;
84
92
  }
85
- drawFunc(data);
86
- }
87
- function drawBeforeEffect(container, data) {
88
93
  const { particle } = data;
89
94
  if (!particle.effect) {
90
95
  return;
91
96
  }
92
- const drawer = container.effectDrawers.get(particle.effect);
93
- if (!drawer?.drawBefore) {
94
- return;
95
- }
96
97
  drawer.drawBefore(data);
97
98
  }
98
- function drawShape(container, data) {
99
- const { context, particle, stroke } = data;
100
- if (!particle.shape) {
99
+ function drawShape(drawer, data) {
100
+ if (!drawer) {
101
101
  return;
102
102
  }
103
- const drawer = container.shapeDrawers.get(particle.shape);
104
- if (!drawer) {
103
+ const { context, fill, particle, stroke } = data;
104
+ if (!particle.shape) {
105
105
  return;
106
106
  }
107
107
  context.beginPath();
@@ -112,30 +112,28 @@
112
112
  if (stroke) {
113
113
  context.stroke();
114
114
  }
115
- if (particle.shapeFill) {
115
+ if (fill) {
116
116
  context.fill();
117
117
  }
118
118
  }
119
- function drawShapeAfterDraw(container, data) {
120
- const { particle } = data;
121
- if (!particle.shape) {
122
- return;
123
- }
124
- const drawer = container.shapeDrawers.get(particle.shape);
119
+ function drawShapeAfterDraw(drawer, data) {
125
120
  if (!drawer?.afterDraw) {
126
121
  return;
127
122
  }
128
- drawer.afterDraw(data);
129
- }
130
- function drawShapeBeforeDraw(container, data) {
131
123
  const { particle } = data;
132
124
  if (!particle.shape) {
133
125
  return;
134
126
  }
135
- const drawer = container.shapeDrawers.get(particle.shape);
127
+ drawer.afterDraw(data);
128
+ }
129
+ function drawShapeBeforeDraw(drawer, data) {
136
130
  if (!drawer?.beforeDraw) {
137
131
  return;
138
132
  }
133
+ const { particle } = data;
134
+ if (!particle.shape) {
135
+ return;
136
+ }
139
137
  drawer.beforeDraw(data);
140
138
  }
141
139
  function drawParticlePlugin(context, plugin, particle, delta) {
@@ -144,11 +142,4 @@
144
142
  }
145
143
  plugin.drawParticle(context, particle, delta);
146
144
  }
147
- function alterHsl(color, type, value) {
148
- return {
149
- h: color.h,
150
- s: color.s,
151
- l: color.l + (type === AlterType_js_1.AlterType.darken ? -Constants_js_1.lFactor : Constants_js_1.lFactor) * value,
152
- };
153
- }
154
145
  });