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

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 (336) hide show
  1. package/README.md +246 -211
  2. package/browser/Core/Canvas.js +271 -241
  3. package/browser/Core/Container.js +90 -106
  4. package/browser/Core/Engine.js +271 -0
  5. package/browser/Core/Particle.js +158 -162
  6. package/browser/Core/Particles.js +148 -134
  7. package/browser/Core/Retina.js +15 -13
  8. package/browser/Core/Utils/Circle.js +10 -6
  9. package/browser/Core/Utils/Constants.js +4 -3
  10. package/browser/Core/Utils/EventListeners.js +259 -220
  11. package/browser/Core/Utils/InteractionManager.js +6 -16
  12. package/browser/Core/Utils/QuadTree.js +14 -20
  13. package/browser/Core/Utils/Vector3d.js +17 -9
  14. package/browser/Options/Classes/AnimatableColor.js +2 -1
  15. package/browser/Options/Classes/AnimationOptions.js +7 -2
  16. package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +2 -1
  17. package/browser/Options/Classes/ColorAnimation.js +4 -0
  18. package/browser/Options/Classes/Interactivity/Events/DivEvent.js +0 -24
  19. package/browser/Options/Classes/Interactivity/Events/Events.js +5 -24
  20. package/browser/Options/Classes/Interactivity/Interactivity.js +1 -8
  21. package/browser/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  22. package/browser/Options/Classes/ManualParticle.js +5 -5
  23. package/browser/Options/Classes/Options.js +19 -39
  24. package/browser/Options/Classes/OptionsColor.js +3 -2
  25. package/browser/Options/Classes/Particles/Collisions/Collisions.js +5 -0
  26. package/browser/Options/Classes/Particles/Move/Move.js +11 -41
  27. package/browser/Options/Classes/Particles/Move/MoveAttract.js +9 -20
  28. package/browser/Options/Classes/Particles/Move/MoveTrail.js +2 -8
  29. package/browser/Options/Classes/Particles/Move/OutModes.js +4 -5
  30. package/browser/Options/Classes/Particles/Move/Spin.js +3 -1
  31. package/browser/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  32. package/browser/Options/Classes/Particles/Number/ParticlesNumber.js +2 -9
  33. package/browser/Options/Classes/Particles/Opacity/Opacity.js +11 -7
  34. package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +0 -9
  35. package/browser/Options/Classes/Particles/ParticlesOptions.js +6 -11
  36. package/browser/Options/Classes/Particles/Shape/Shape.js +9 -2
  37. package/browser/Options/Classes/Particles/Size/Size.js +11 -7
  38. package/browser/Options/Classes/Particles/Size/SizeAnimation.js +0 -9
  39. package/browser/Options/Classes/ValueWithRandom.js +4 -17
  40. package/browser/Utils/CanvasUtils.js +18 -54
  41. package/browser/Utils/ColorUtils.js +17 -19
  42. package/browser/Utils/EventDispatcher.js +7 -6
  43. package/browser/Utils/HslColorManager.js +2 -4
  44. package/browser/Utils/NumberUtils.js +41 -45
  45. package/browser/Utils/RgbColorManager.js +2 -4
  46. package/browser/Utils/Utils.js +150 -59
  47. package/browser/bundle.js +4 -96
  48. package/browser/export-types.js +97 -0
  49. package/browser/exports.js +89 -0
  50. package/browser/index.js +8 -198
  51. package/browser/init.js +12 -0
  52. package/cjs/Core/Canvas.js +269 -239
  53. package/cjs/Core/Container.js +90 -106
  54. package/cjs/Core/Engine.js +275 -0
  55. package/cjs/Core/Particle.js +157 -161
  56. package/cjs/Core/Particles.js +148 -134
  57. package/cjs/Core/Retina.js +15 -13
  58. package/cjs/Core/Utils/Circle.js +10 -6
  59. package/cjs/Core/Utils/Constants.js +5 -4
  60. package/cjs/Core/Utils/EventListeners.js +258 -219
  61. package/cjs/Core/Utils/InteractionManager.js +6 -16
  62. package/cjs/Core/Utils/QuadTree.js +14 -20
  63. package/cjs/Core/Utils/Vector3d.js +17 -9
  64. package/cjs/Options/Classes/AnimatableColor.js +2 -1
  65. package/cjs/Options/Classes/AnimationOptions.js +7 -2
  66. package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +2 -1
  67. package/cjs/Options/Classes/ColorAnimation.js +4 -0
  68. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +0 -24
  69. package/cjs/Options/Classes/Interactivity/Events/Events.js +5 -24
  70. package/cjs/Options/Classes/Interactivity/Interactivity.js +1 -8
  71. package/cjs/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  72. package/cjs/Options/Classes/ManualParticle.js +5 -5
  73. package/cjs/Options/Classes/Options.js +18 -38
  74. package/cjs/Options/Classes/OptionsColor.js +3 -2
  75. package/cjs/Options/Classes/Particles/Collisions/Collisions.js +5 -0
  76. package/cjs/Options/Classes/Particles/Move/Move.js +11 -41
  77. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +9 -20
  78. package/cjs/Options/Classes/Particles/Move/MoveTrail.js +2 -8
  79. package/cjs/Options/Classes/Particles/Move/OutModes.js +4 -5
  80. package/cjs/Options/Classes/Particles/Move/Spin.js +3 -1
  81. package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  82. package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +2 -9
  83. package/cjs/Options/Classes/Particles/Opacity/Opacity.js +10 -6
  84. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +0 -9
  85. package/cjs/Options/Classes/Particles/ParticlesOptions.js +6 -11
  86. package/cjs/Options/Classes/Particles/Shape/Shape.js +9 -2
  87. package/cjs/Options/Classes/Particles/Size/Size.js +11 -7
  88. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +0 -9
  89. package/cjs/Options/Classes/ValueWithRandom.js +4 -17
  90. package/cjs/Utils/CanvasUtils.js +21 -58
  91. package/cjs/Utils/ColorUtils.js +16 -18
  92. package/cjs/Utils/EventDispatcher.js +7 -6
  93. package/cjs/Utils/HslColorManager.js +2 -4
  94. package/cjs/Utils/NumberUtils.js +41 -45
  95. package/cjs/Utils/RgbColorManager.js +2 -4
  96. package/cjs/Utils/Utils.js +163 -63
  97. package/cjs/bundle.js +4 -96
  98. package/cjs/export-types.js +113 -0
  99. package/cjs/exports.js +105 -0
  100. package/cjs/index.js +8 -198
  101. package/cjs/init.js +16 -0
  102. package/esm/Core/Canvas.js +271 -241
  103. package/esm/Core/Container.js +90 -106
  104. package/esm/Core/Engine.js +271 -0
  105. package/esm/Core/Particle.js +158 -162
  106. package/esm/Core/Particles.js +148 -134
  107. package/esm/Core/Retina.js +15 -13
  108. package/esm/Core/Utils/Circle.js +10 -6
  109. package/esm/Core/Utils/Constants.js +4 -3
  110. package/esm/Core/Utils/EventListeners.js +259 -220
  111. package/esm/Core/Utils/InteractionManager.js +6 -16
  112. package/esm/Core/Utils/QuadTree.js +14 -20
  113. package/esm/Core/Utils/Vector3d.js +17 -9
  114. package/esm/Options/Classes/AnimatableColor.js +2 -1
  115. package/esm/Options/Classes/AnimationOptions.js +7 -2
  116. package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +2 -1
  117. package/esm/Options/Classes/ColorAnimation.js +4 -0
  118. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +0 -24
  119. package/esm/Options/Classes/Interactivity/Events/Events.js +5 -24
  120. package/esm/Options/Classes/Interactivity/Interactivity.js +1 -8
  121. package/esm/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  122. package/esm/Options/Classes/ManualParticle.js +5 -5
  123. package/esm/Options/Classes/Options.js +19 -39
  124. package/esm/Options/Classes/OptionsColor.js +3 -2
  125. package/esm/Options/Classes/Particles/Collisions/Collisions.js +5 -0
  126. package/esm/Options/Classes/Particles/Move/Move.js +11 -41
  127. package/esm/Options/Classes/Particles/Move/MoveAttract.js +9 -20
  128. package/esm/Options/Classes/Particles/Move/MoveTrail.js +2 -8
  129. package/esm/Options/Classes/Particles/Move/OutModes.js +4 -5
  130. package/esm/Options/Classes/Particles/Move/Spin.js +3 -1
  131. package/esm/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  132. package/esm/Options/Classes/Particles/Number/ParticlesNumber.js +2 -9
  133. package/esm/Options/Classes/Particles/Opacity/Opacity.js +11 -7
  134. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +0 -9
  135. package/esm/Options/Classes/Particles/ParticlesOptions.js +6 -11
  136. package/esm/Options/Classes/Particles/Shape/Shape.js +9 -2
  137. package/esm/Options/Classes/Particles/Size/Size.js +11 -7
  138. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +0 -9
  139. package/esm/Options/Classes/ValueWithRandom.js +4 -17
  140. package/esm/Utils/CanvasUtils.js +18 -54
  141. package/esm/Utils/ColorUtils.js +17 -19
  142. package/esm/Utils/EventDispatcher.js +7 -6
  143. package/esm/Utils/HslColorManager.js +2 -4
  144. package/esm/Utils/NumberUtils.js +41 -45
  145. package/esm/Utils/RgbColorManager.js +2 -4
  146. package/esm/Utils/Utils.js +150 -59
  147. package/esm/bundle.js +4 -96
  148. package/esm/export-types.js +97 -0
  149. package/esm/exports.js +89 -0
  150. package/esm/index.js +8 -198
  151. package/esm/init.js +12 -0
  152. package/package.json +17 -2
  153. package/report.html +4 -4
  154. package/scripts/install.js +90 -33
  155. package/tsparticles.engine.js +1848 -1961
  156. package/tsparticles.engine.min.js +1 -1
  157. package/tsparticles.engine.min.js.LICENSE.txt +1 -10
  158. package/types/Core/Canvas.d.ts +20 -16
  159. package/types/Core/Container.d.ts +10 -14
  160. package/types/Core/Engine.d.ts +71 -0
  161. package/types/Core/Interfaces/IContainerPlugin.d.ts +2 -0
  162. package/types/Core/Interfaces/ICoordinates.d.ts +5 -3
  163. package/types/Core/Interfaces/IDimension.d.ts +4 -0
  164. package/types/Core/Interfaces/IMovePathGenerator.d.ts +2 -1
  165. package/types/Core/Interfaces/IParticleUpdater.d.ts +0 -2
  166. package/types/Core/Interfaces/IParticleValueAnimation.d.ts +2 -0
  167. package/types/Core/Interfaces/IPlugin.d.ts +4 -3
  168. package/types/Core/Particle.d.ts +7 -7
  169. package/types/Core/Particles.d.ts +14 -10
  170. package/types/Core/Utils/Constants.d.ts +4 -3
  171. package/types/Core/Utils/EventListeners.d.ts +20 -14
  172. package/types/Core/Utils/InteractionManager.d.ts +1 -1
  173. package/types/Core/Utils/QuadTree.d.ts +2 -5
  174. package/types/Core/Utils/Vector3d.d.ts +2 -1
  175. package/types/Enums/Modes/AnimationMode.d.ts +6 -0
  176. package/types/Enums/Modes/{SizeMode.d.ts → PixelMode.d.ts} +1 -1
  177. package/types/Options/Classes/AnimationOptions.d.ts +3 -1
  178. package/types/Options/Classes/ColorAnimation.d.ts +1 -0
  179. package/types/Options/Classes/Interactivity/Events/DivEvent.d.ts +0 -6
  180. package/types/Options/Classes/Interactivity/Events/Events.d.ts +0 -6
  181. package/types/Options/Classes/Interactivity/Interactivity.d.ts +1 -3
  182. package/types/Options/Classes/Interactivity/Modes/Modes.d.ts +1 -1
  183. package/types/Options/Classes/ManualParticle.d.ts +2 -2
  184. package/types/Options/Classes/Options.d.ts +5 -12
  185. package/types/Options/Classes/Particles/Collisions/Collisions.d.ts +2 -0
  186. package/types/Options/Classes/Particles/Move/Move.d.ts +0 -11
  187. package/types/Options/Classes/Particles/Move/MoveAttract.d.ts +0 -4
  188. package/types/Options/Classes/Particles/Move/MoveCenter.d.ts +2 -2
  189. package/types/Options/Classes/Particles/Move/MoveTrail.d.ts +0 -3
  190. package/types/Options/Classes/Particles/Move/Spin.d.ts +2 -2
  191. package/types/Options/Classes/Particles/Number/ParticlesDensity.d.ts +0 -6
  192. package/types/Options/Classes/Particles/Number/ParticlesNumber.d.ts +0 -2
  193. package/types/Options/Classes/Particles/Opacity/Opacity.d.ts +4 -4
  194. package/types/Options/Classes/Particles/Opacity/OpacityAnimation.d.ts +0 -2
  195. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +1 -1
  196. package/types/Options/Classes/Particles/Shape/Shape.d.ts +2 -0
  197. package/types/Options/Classes/Particles/Size/Size.d.ts +4 -4
  198. package/types/Options/Classes/Particles/Size/SizeAnimation.d.ts +0 -2
  199. package/types/Options/Classes/Responsive.d.ts +3 -3
  200. package/types/Options/Classes/Theme/Theme.d.ts +2 -2
  201. package/types/Options/Classes/ValueWithRandom.d.ts +2 -6
  202. package/types/Options/Interfaces/IAnimation.d.ts +3 -1
  203. package/types/Options/Interfaces/IManualParticle.d.ts +2 -2
  204. package/types/Options/Interfaces/IOptions.d.ts +1 -4
  205. package/types/Options/Interfaces/IResponsive.d.ts +4 -3
  206. package/types/Options/Interfaces/Interactivity/Events/IDivEvent.d.ts +0 -3
  207. package/types/Options/Interfaces/Interactivity/Events/IEvents.d.ts +0 -3
  208. package/types/Options/Interfaces/Interactivity/IInteractivity.d.ts +0 -1
  209. package/types/Options/Interfaces/Interactivity/Modes/IModeDiv.d.ts +0 -1
  210. package/types/Options/Interfaces/Particles/Collisions/ICollisions.d.ts +2 -0
  211. package/types/Options/Interfaces/Particles/IStroke.d.ts +2 -1
  212. package/types/Options/Interfaces/Particles/Move/IMove.d.ts +0 -5
  213. package/types/Options/Interfaces/Particles/Move/IMoveAttract.d.ts +0 -2
  214. package/types/Options/Interfaces/Particles/Move/IMoveTrail.d.ts +0 -2
  215. package/types/Options/Interfaces/Particles/Move/ISpin.d.ts +2 -2
  216. package/types/Options/Interfaces/Particles/Number/IParticlesDensity.d.ts +0 -3
  217. package/types/Options/Interfaces/Particles/Number/IParticlesNumber.d.ts +0 -1
  218. package/types/Options/Interfaces/Particles/Opacity/IOpacity.d.ts +0 -1
  219. package/types/Options/Interfaces/Particles/Opacity/IOpacityAnimation.d.ts +0 -1
  220. package/types/Options/Interfaces/Particles/Shape/IShape.d.ts +2 -0
  221. package/types/Options/Interfaces/Particles/Size/ISize.d.ts +0 -1
  222. package/types/Options/Interfaces/Particles/Size/ISizeAnimation.d.ts +0 -1
  223. package/types/Options/Interfaces/Theme/ITheme.d.ts +3 -2
  224. package/types/Types/ExportResult.d.ts +5 -0
  225. package/types/Utils/CanvasUtils.d.ts +2 -5
  226. package/types/Utils/OptionsUtils.d.ts +1 -1
  227. package/types/Utils/Utils.d.ts +22 -4
  228. package/types/bundle.d.ts +2 -90
  229. package/types/export-types.d.ts +107 -0
  230. package/types/exports.d.ts +89 -0
  231. package/types/index.d.ts +3 -203
  232. package/types/init.d.ts +2 -0
  233. package/umd/Core/Canvas.js +269 -239
  234. package/umd/Core/Container.js +91 -107
  235. package/umd/Core/Engine.js +285 -0
  236. package/umd/Core/Particle.js +158 -162
  237. package/umd/Core/Particles.js +149 -135
  238. package/umd/Core/Retina.js +15 -13
  239. package/umd/Core/Utils/Circle.js +11 -7
  240. package/umd/Core/Utils/Constants.js +5 -4
  241. package/umd/Core/Utils/EventListeners.js +258 -219
  242. package/umd/Core/Utils/InteractionManager.js +6 -16
  243. package/umd/Core/Utils/QuadTree.js +14 -20
  244. package/umd/Core/Utils/Vector3d.js +18 -10
  245. package/umd/Options/Classes/AnimatableColor.js +3 -2
  246. package/umd/Options/Classes/AnimationOptions.js +7 -2
  247. package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +3 -2
  248. package/umd/Options/Classes/ColorAnimation.js +4 -0
  249. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +1 -25
  250. package/umd/Options/Classes/Interactivity/Events/Events.js +6 -25
  251. package/umd/Options/Classes/Interactivity/Interactivity.js +1 -8
  252. package/umd/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  253. package/umd/Options/Classes/ManualParticle.js +5 -5
  254. package/umd/Options/Classes/Options.js +18 -38
  255. package/umd/Options/Classes/OptionsColor.js +4 -3
  256. package/umd/Options/Classes/Particles/Collisions/Collisions.js +6 -1
  257. package/umd/Options/Classes/Particles/Move/Move.js +12 -42
  258. package/umd/Options/Classes/Particles/Move/MoveAttract.js +9 -20
  259. package/umd/Options/Classes/Particles/Move/MoveTrail.js +2 -8
  260. package/umd/Options/Classes/Particles/Move/OutModes.js +4 -5
  261. package/umd/Options/Classes/Particles/Move/Spin.js +3 -1
  262. package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  263. package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +2 -9
  264. package/umd/Options/Classes/Particles/Opacity/Opacity.js +10 -6
  265. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +0 -9
  266. package/umd/Options/Classes/Particles/ParticlesOptions.js +6 -11
  267. package/umd/Options/Classes/Particles/Shape/Shape.js +9 -2
  268. package/umd/Options/Classes/Particles/Size/Size.js +12 -8
  269. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +0 -9
  270. package/umd/Options/Classes/ValueWithRandom.js +5 -18
  271. package/umd/Utils/CanvasUtils.js +21 -58
  272. package/umd/Utils/ColorUtils.js +16 -18
  273. package/umd/Utils/EventDispatcher.js +7 -6
  274. package/umd/Utils/HslColorManager.js +2 -4
  275. package/umd/Utils/NumberUtils.js +42 -46
  276. package/umd/Utils/RgbColorManager.js +2 -4
  277. package/umd/Utils/Utils.js +163 -63
  278. package/umd/bundle.js +5 -97
  279. package/umd/export-types.js +123 -0
  280. package/umd/exports.js +115 -0
  281. package/umd/index.js +9 -199
  282. package/umd/init.js +26 -0
  283. package/browser/Core/Utils/FrameManager.js +0 -42
  284. package/browser/Core/Utils/Plugins.js +0 -112
  285. package/browser/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -1
  286. package/browser/Options/Interfaces/Particles/Shape/IStarShape.js +0 -1
  287. package/browser/engine.js +0 -175
  288. package/cjs/Core/Utils/FrameManager.js +0 -46
  289. package/cjs/Core/Utils/Plugins.js +0 -116
  290. package/cjs/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -2
  291. package/cjs/Options/Interfaces/Particles/Shape/IImageShape.js +0 -2
  292. package/cjs/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -2
  293. package/cjs/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -17
  294. package/cjs/Options/Interfaces/Particles/Shape/IStarShape.js +0 -2
  295. package/cjs/engine.js +0 -179
  296. package/esm/Core/Interfaces/IParticleOverride.js +0 -1
  297. package/esm/Core/Interfaces/IParticlesMover.js +0 -1
  298. package/esm/Core/Utils/FrameManager.js +0 -42
  299. package/esm/Core/Utils/Plugins.js +0 -112
  300. package/esm/Enums/Modes/SizeMode.js +0 -1
  301. package/esm/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -1
  302. package/esm/Options/Interfaces/Particles/Shape/IImageShape.js +0 -1
  303. package/esm/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -1
  304. package/esm/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -1
  305. package/esm/Options/Interfaces/Particles/Shape/IStarShape.js +0 -1
  306. package/esm/engine.js +0 -175
  307. package/types/Core/Interfaces/IParticleOverride.d.ts +0 -6
  308. package/types/Core/Interfaces/IParticlesMover.d.ts +0 -7
  309. package/types/Core/Utils/FrameManager.d.ts +0 -6
  310. package/types/Core/Utils/Plugins.d.ts +0 -51
  311. package/types/Options/Interfaces/Particles/Shape/ICharacterShape.d.ts +0 -8
  312. package/types/Options/Interfaces/Particles/Shape/IImageShape.d.ts +0 -8
  313. package/types/Options/Interfaces/Particles/Shape/IPolygonShape.d.ts +0 -5
  314. package/types/Options/Interfaces/Particles/Shape/IShapeValues.d.ts +0 -1
  315. package/types/Options/Interfaces/Particles/Shape/IStarShape.d.ts +0 -6
  316. package/types/engine.d.ts +0 -39
  317. package/umd/Core/Utils/FrameManager.js +0 -56
  318. package/umd/Core/Utils/Plugins.js +0 -126
  319. package/umd/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -12
  320. package/umd/Options/Interfaces/Particles/Shape/IImageShape.js +0 -12
  321. package/umd/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -12
  322. package/umd/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -27
  323. package/umd/Options/Interfaces/Particles/Shape/IStarShape.js +0 -12
  324. package/umd/engine.js +0 -189
  325. /package/browser/{Core/Interfaces/IParticleOverride.js → Enums/Modes/AnimationMode.js} +0 -0
  326. /package/browser/{Core/Interfaces/IParticlesMover.js → Enums/Modes/PixelMode.js} +0 -0
  327. /package/browser/{Enums/Modes/SizeMode.js → Types/ExportResult.js} +0 -0
  328. /package/cjs/{Core/Interfaces/IParticleOverride.js → Enums/Modes/AnimationMode.js} +0 -0
  329. /package/cjs/{Core/Interfaces/IParticlesMover.js → Enums/Modes/PixelMode.js} +0 -0
  330. /package/cjs/{Enums/Modes/SizeMode.js → Types/ExportResult.js} +0 -0
  331. /package/{browser/Options/Interfaces/Particles/Shape/ICharacterShape.js → esm/Enums/Modes/AnimationMode.js} +0 -0
  332. /package/{browser/Options/Interfaces/Particles/Shape/IImageShape.js → esm/Enums/Modes/PixelMode.js} +0 -0
  333. /package/{browser/Options/Interfaces/Particles/Shape/IPolygonShape.js → esm/Types/ExportResult.js} +0 -0
  334. /package/umd/{Core/Interfaces/IParticleOverride.js → Enums/Modes/AnimationMode.js} +0 -0
  335. /package/umd/{Core/Interfaces/IParticlesMover.js → Enums/Modes/PixelMode.js} +0 -0
  336. /package/umd/{Enums/Modes/SizeMode.js → Types/ExportResult.js} +0 -0
@@ -15,16 +15,17 @@
15
15
  this._listeners = new Map();
16
16
  }
17
17
  addEventListener(type, listener) {
18
- var _a;
19
18
  this.removeEventListener(type, listener);
20
- if (!this._listeners.get(type)) {
21
- this._listeners.set(type, []);
19
+ let arr = this._listeners.get(type);
20
+ if (!arr) {
21
+ arr = [];
22
+ this._listeners.set(type, arr);
22
23
  }
23
- (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.push(listener);
24
+ arr.push(listener);
24
25
  }
25
26
  dispatchEvent(type, args) {
26
- var _a;
27
- (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => handler(args));
27
+ const listeners = this._listeners.get(type);
28
+ listeners && listeners.forEach((handler) => handler(args));
28
29
  }
29
30
  hasEventListener(type) {
30
31
  return !!this._listeners.get(type);
@@ -18,15 +18,13 @@
18
18
  this.stringPrefix = "hsl";
19
19
  }
20
20
  handleColor(color) {
21
- var _a;
22
- const colorValue = color.value, hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;
21
+ const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;
23
22
  if (hslColor.h !== undefined && hslColor.s !== undefined && hslColor.l !== undefined) {
24
23
  return (0, ColorUtils_1.hslToRgb)(hslColor);
25
24
  }
26
25
  }
27
26
  handleRangeColor(color) {
28
- var _a;
29
- const colorValue = color.value, hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;
27
+ const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;
30
28
  if (hslColor.h !== undefined && hslColor.l !== undefined) {
31
29
  return (0, ColorUtils_1.hslToRgb)({
32
30
  h: (0, NumberUtils_1.getRangeValue)(hslColor.h),
@@ -4,19 +4,21 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../Core/Utils/Vector"], factory);
7
+ define(["require", "exports", "./Utils", "../Core/Utils/Vector"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.parseAlpha = exports.calcExactPositionOrRandomFromSizeRanged = exports.calcExactPositionOrRandomFromSize = exports.calcPositionOrRandomFromSizeRanged = exports.calcPositionOrRandomFromSize = exports.calcPositionFromSize = exports.collisionVelocity = exports.getParticleBaseVelocity = exports.getParticleDirectionAngle = exports.getDistance = exports.getDistances = exports.getValue = exports.setRangeValue = exports.getRangeMax = exports.getRangeMin = exports.getRangeValue = exports.randomInRange = exports.mix = exports.clamp = exports.getRandom = exports.setRandom = exports.getEasing = exports.addEasing = void 0;
13
+ const Utils_1 = require("./Utils");
13
14
  const Vector_1 = require("../Core/Utils/Vector");
14
15
  let _random = Math.random;
15
16
  const easings = new Map();
16
17
  function addEasing(name, easing) {
17
- if (!easings.get(name)) {
18
- easings.set(name, easing);
18
+ if (easings.get(name)) {
19
+ return;
19
20
  }
21
+ easings.set(name, easing);
20
22
  }
21
23
  exports.addEasing = addEasing;
22
24
  function getEasing(name) {
@@ -49,19 +51,19 @@
49
51
  }
50
52
  exports.randomInRange = randomInRange;
51
53
  function getRangeValue(value) {
52
- return typeof value === "number" ? value : randomInRange(value);
54
+ return (0, Utils_1.isNumber)(value) ? value : randomInRange(value);
53
55
  }
54
56
  exports.getRangeValue = getRangeValue;
55
57
  function getRangeMin(value) {
56
- return typeof value === "number" ? value : value.min;
58
+ return (0, Utils_1.isNumber)(value) ? value : value.min;
57
59
  }
58
60
  exports.getRangeMin = getRangeMin;
59
61
  function getRangeMax(value) {
60
- return typeof value === "number" ? value : value.max;
62
+ return (0, Utils_1.isNumber)(value) ? value : value.max;
61
63
  }
62
64
  exports.getRangeMax = getRangeMax;
63
65
  function setRangeValue(source, value) {
64
- if (source === value || (value === undefined && typeof source === "number")) {
66
+ if (source === value || (value === undefined && (0, Utils_1.isNumber)(source))) {
65
67
  return source;
66
68
  }
67
69
  const min = getRangeMin(source), max = getRangeMax(source);
@@ -74,7 +76,7 @@
74
76
  }
75
77
  exports.setRangeValue = setRangeValue;
76
78
  function getValue(options) {
77
- const random = options.random, { enable, minimumValue } = typeof random === "boolean"
79
+ const random = options.random, { enable, minimumValue } = (0, Utils_1.isBoolean)(random)
78
80
  ? {
79
81
  enable: random,
80
82
  minimumValue: 0,
@@ -93,34 +95,32 @@
93
95
  }
94
96
  exports.getDistance = getDistance;
95
97
  function getParticleDirectionAngle(direction, position, center) {
96
- if (typeof direction === "number") {
98
+ if ((0, Utils_1.isNumber)(direction)) {
97
99
  return (direction * Math.PI) / 180;
98
100
  }
99
- else {
100
- switch (direction) {
101
- case "top":
102
- return -Math.PI / 2;
103
- case "top-right":
104
- return -Math.PI / 4;
105
- case "right":
106
- return 0;
107
- case "bottom-right":
108
- return Math.PI / 4;
109
- case "bottom":
110
- return Math.PI / 2;
111
- case "bottom-left":
112
- return (3 * Math.PI) / 4;
113
- case "left":
114
- return Math.PI;
115
- case "top-left":
116
- return (-3 * Math.PI) / 4;
117
- case "inside":
118
- return Math.atan2(center.y - position.y, center.x - position.x);
119
- case "outside":
120
- return Math.atan2(position.y - center.y, position.x - center.x);
121
- default:
122
- return getRandom() * Math.PI * 2;
123
- }
101
+ switch (direction) {
102
+ case "top":
103
+ return -Math.PI / 2;
104
+ case "top-right":
105
+ return -Math.PI / 4;
106
+ case "right":
107
+ return 0;
108
+ case "bottom-right":
109
+ return Math.PI / 4;
110
+ case "bottom":
111
+ return Math.PI / 2;
112
+ case "bottom-left":
113
+ return (3 * Math.PI) / 4;
114
+ case "left":
115
+ return Math.PI;
116
+ case "top-left":
117
+ return (-3 * Math.PI) / 4;
118
+ case "inside":
119
+ return Math.atan2(center.y - position.y, center.x - position.x);
120
+ case "outside":
121
+ return Math.atan2(position.y - center.y, position.x - center.x);
122
+ default:
123
+ return getRandom() * Math.PI * 2;
124
124
  }
125
125
  }
126
126
  exports.getParticleDirectionAngle = getParticleDirectionAngle;
@@ -145,35 +145,31 @@
145
145
  }
146
146
  exports.calcPositionFromSize = calcPositionFromSize;
147
147
  function calcPositionOrRandomFromSize(data) {
148
- var _a, _b, _c, _d;
149
148
  return {
150
- x: (((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * 100) * data.size.width) / 100,
151
- y: (((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * 100) * data.size.height) / 100,
149
+ x: ((data.position?.x ?? getRandom() * 100) * data.size.width) / 100,
150
+ y: ((data.position?.y ?? getRandom() * 100) * data.size.height) / 100,
152
151
  };
153
152
  }
154
153
  exports.calcPositionOrRandomFromSize = calcPositionOrRandomFromSize;
155
154
  function calcPositionOrRandomFromSizeRanged(data) {
156
- var _a, _b;
157
155
  const position = {
158
- x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,
159
- y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,
156
+ x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
157
+ y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,
160
158
  };
161
159
  return calcPositionOrRandomFromSize({ size: data.size, position });
162
160
  }
163
161
  exports.calcPositionOrRandomFromSizeRanged = calcPositionOrRandomFromSizeRanged;
164
162
  function calcExactPositionOrRandomFromSize(data) {
165
- var _a, _b, _c, _d;
166
163
  return {
167
- x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * data.size.width,
168
- y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * data.size.height,
164
+ x: data.position?.x ?? getRandom() * data.size.width,
165
+ y: data.position?.y ?? getRandom() * data.size.height,
169
166
  };
170
167
  }
171
168
  exports.calcExactPositionOrRandomFromSize = calcExactPositionOrRandomFromSize;
172
169
  function calcExactPositionOrRandomFromSizeRanged(data) {
173
- var _a, _b;
174
170
  const position = {
175
- x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,
176
- y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,
171
+ x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
172
+ y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,
177
173
  };
178
174
  return calcExactPositionOrRandomFromSize({ size: data.size, position });
179
175
  }
@@ -17,15 +17,13 @@
17
17
  this.stringPrefix = "rgb";
18
18
  }
19
19
  handleColor(color) {
20
- var _a;
21
- const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;
20
+ const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;
22
21
  if (rgbColor.r !== undefined) {
23
22
  return rgbColor;
24
23
  }
25
24
  }
26
25
  handleRangeColor(color) {
27
- var _a;
28
- const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;
26
+ const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;
29
27
  if (rgbColor.r !== undefined) {
30
28
  return {
31
29
  r: (0, NumberUtils_1.getRangeValue)(rgbColor.r),
@@ -9,11 +9,32 @@
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.initParticleNumericAnimationValue = exports.findItemFromSingleOrMultiple = exports.itemFromSingleOrMultiple = exports.executeOnSingleOrMultiple = exports.rectBounce = exports.circleBounce = exports.circleBounceDataFromParticle = exports.divMode = exports.singleDivModeExecute = exports.divModeExecute = exports.isDivModeEnabled = exports.deepExtend = exports.calculateBounds = exports.areBoundsInside = exports.isPointInside = exports.itemFromArray = exports.arrayRandomIndex = exports.loadFont = exports.isInArray = exports.cancelAnimation = exports.animate = exports.safeMatchMedia = exports.hasMatchMedia = exports.isSsr = void 0;
12
+ exports.isArray = exports.isObject = exports.isFunction = exports.isNumber = exports.isString = exports.isBoolean = exports.getSize = exports.getPosition = exports.initParticleNumericAnimationValue = exports.findItemFromSingleOrMultiple = exports.itemFromSingleOrMultiple = exports.executeOnSingleOrMultiple = exports.rectBounce = exports.circleBounce = exports.circleBounceDataFromParticle = exports.divMode = exports.singleDivModeExecute = exports.divModeExecute = exports.isDivModeEnabled = exports.deepExtend = exports.calculateBounds = exports.areBoundsInside = exports.isPointInside = exports.itemFromArray = exports.arrayRandomIndex = exports.loadFont = exports.isInArray = exports.safeMutationObserver = exports.safeMatchMedia = exports.hasMatchMedia = exports.isSsr = exports.getLogger = exports.setLogger = void 0;
13
13
  const NumberUtils_1 = require("./NumberUtils");
14
14
  const Vector_1 = require("../Core/Utils/Vector");
15
- function rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {
16
- const res = { bounced: false };
15
+ const _logger = {
16
+ debug: console.debug,
17
+ error: console.error,
18
+ info: console.info,
19
+ log: console.log,
20
+ verbose: console.log,
21
+ warning: console.warn,
22
+ };
23
+ function setLogger(logger) {
24
+ _logger.debug = logger.debug || _logger.debug;
25
+ _logger.error = logger.error || _logger.error;
26
+ _logger.info = logger.info || _logger.info;
27
+ _logger.log = logger.log || _logger.log;
28
+ _logger.verbose = logger.verbose || _logger.verbose;
29
+ _logger.warning = logger.warning || _logger.warning;
30
+ }
31
+ exports.setLogger = setLogger;
32
+ function getLogger() {
33
+ return _logger;
34
+ }
35
+ exports.getLogger = getLogger;
36
+ function rectSideBounce(data) {
37
+ const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data;
17
38
  if (pOtherSide.min < rectOtherSide.min ||
18
39
  pOtherSide.min > rectOtherSide.max ||
19
40
  pOtherSide.max < rectOtherSide.min ||
@@ -31,7 +52,7 @@
31
52
  const res = executeOnSingleOrMultiple(selectors, (selector) => {
32
53
  return element.matches(selector);
33
54
  });
34
- return res instanceof Array ? res.some((t) => t) : res;
55
+ return isArray(res) ? res.some((t) => t) : res;
35
56
  }
36
57
  function isSsr() {
37
58
  return typeof window === "undefined" || !window || typeof window.document === "undefined" || !window.document;
@@ -48,27 +69,22 @@
48
69
  return matchMedia(query);
49
70
  }
50
71
  exports.safeMatchMedia = safeMatchMedia;
51
- function animate() {
52
- return isSsr()
53
- ? (callback) => setTimeout(callback)
54
- : (callback) => (requestAnimationFrame || setTimeout)(callback);
55
- }
56
- exports.animate = animate;
57
- function cancelAnimation() {
58
- return isSsr()
59
- ? (handle) => clearTimeout(handle)
60
- : (handle) => (cancelAnimationFrame || clearTimeout)(handle);
61
- }
62
- exports.cancelAnimation = cancelAnimation;
72
+ function safeMutationObserver(callback) {
73
+ if (isSsr() || typeof MutationObserver === "undefined") {
74
+ return;
75
+ }
76
+ return new MutationObserver(callback);
77
+ }
78
+ exports.safeMutationObserver = safeMutationObserver;
63
79
  function isInArray(value, array) {
64
- return value === array || (array instanceof Array && array.indexOf(value) > -1);
80
+ return value === array || (isArray(array) && array.indexOf(value) > -1);
65
81
  }
66
82
  exports.isInArray = isInArray;
67
83
  async function loadFont(font, weight) {
68
84
  try {
69
- await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : "400"} 36px '${font !== null && font !== void 0 ? font : "Verdana"}'`);
85
+ await document.fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`);
70
86
  }
71
- catch (_a) {
87
+ catch {
72
88
  }
73
89
  }
74
90
  exports.loadFont = loadFont;
@@ -81,7 +97,7 @@
81
97
  }
82
98
  exports.itemFromArray = itemFromArray;
83
99
  function isPointInside(point, size, offset, radius, direction) {
84
- return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);
100
+ return areBoundsInside(calculateBounds(point, radius ?? 0), size, offset, direction);
85
101
  }
86
102
  exports.isPointInside = isPointInside;
87
103
  function areBoundsInside(bounds, size, offset, direction) {
@@ -115,24 +131,24 @@
115
131
  if (source === undefined || source === null) {
116
132
  continue;
117
133
  }
118
- if (typeof source !== "object") {
134
+ if (!isObject(source)) {
119
135
  destination = source;
120
136
  continue;
121
137
  }
122
138
  const sourceIsArray = Array.isArray(source);
123
- if (sourceIsArray && (typeof destination !== "object" || !destination || !Array.isArray(destination))) {
139
+ if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {
124
140
  destination = [];
125
141
  }
126
- else if (!sourceIsArray && (typeof destination !== "object" || !destination || Array.isArray(destination))) {
142
+ else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {
127
143
  destination = {};
128
144
  }
129
145
  for (const key in source) {
130
146
  if (key === "__proto__") {
131
147
  continue;
132
148
  }
133
- const sourceDict = source, value = sourceDict[key], isObject = typeof value === "object", destDict = destination;
149
+ const sourceDict = source, value = sourceDict[key], destDict = destination;
134
150
  destDict[key] =
135
- isObject && Array.isArray(value)
151
+ isObject(value) && Array.isArray(value)
136
152
  ? value.map((v) => deepExtend(destDict[key], v))
137
153
  : deepExtend(destDict[key], value);
138
154
  }
@@ -193,18 +209,25 @@
193
209
  exports.circleBounce = circleBounce;
194
210
  function rectBounce(particle, divBounds) {
195
211
  const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), resH = rectSideBounce({
196
- min: bounds.left,
197
- max: bounds.right,
198
- }, {
199
- min: bounds.top,
200
- max: bounds.bottom,
201
- }, {
202
- min: divBounds.left,
203
- max: divBounds.right,
204
- }, {
205
- min: divBounds.top,
206
- max: divBounds.bottom,
207
- }, particle.velocity.x, (0, NumberUtils_1.getValue)(particle.options.bounce.horizontal));
212
+ pSide: {
213
+ min: bounds.left,
214
+ max: bounds.right,
215
+ },
216
+ pOtherSide: {
217
+ min: bounds.top,
218
+ max: bounds.bottom,
219
+ },
220
+ rectSide: {
221
+ min: divBounds.left,
222
+ max: divBounds.right,
223
+ },
224
+ rectOtherSide: {
225
+ min: divBounds.top,
226
+ max: divBounds.bottom,
227
+ },
228
+ velocity: particle.velocity.x,
229
+ factor: (0, NumberUtils_1.getValue)(particle.options.bounce.horizontal),
230
+ });
208
231
  if (resH.bounced) {
209
232
  if (resH.velocity !== undefined) {
210
233
  particle.velocity.x = resH.velocity;
@@ -214,18 +237,25 @@
214
237
  }
215
238
  }
216
239
  const resV = rectSideBounce({
217
- min: bounds.top,
218
- max: bounds.bottom,
219
- }, {
220
- min: bounds.left,
221
- max: bounds.right,
222
- }, {
223
- min: divBounds.top,
224
- max: divBounds.bottom,
225
- }, {
226
- min: divBounds.left,
227
- max: divBounds.right,
228
- }, particle.velocity.y, (0, NumberUtils_1.getValue)(particle.options.bounce.vertical));
240
+ pSide: {
241
+ min: bounds.top,
242
+ max: bounds.bottom,
243
+ },
244
+ pOtherSide: {
245
+ min: bounds.left,
246
+ max: bounds.right,
247
+ },
248
+ rectSide: {
249
+ min: divBounds.top,
250
+ max: divBounds.bottom,
251
+ },
252
+ rectOtherSide: {
253
+ min: divBounds.left,
254
+ max: divBounds.right,
255
+ },
256
+ velocity: particle.velocity.y,
257
+ factor: (0, NumberUtils_1.getValue)(particle.options.bounce.vertical),
258
+ });
229
259
  if (resV.bounced) {
230
260
  if (resV.velocity !== undefined) {
231
261
  particle.velocity.y = resV.velocity;
@@ -237,43 +267,61 @@
237
267
  }
238
268
  exports.rectBounce = rectBounce;
239
269
  function executeOnSingleOrMultiple(obj, callback) {
240
- return obj instanceof Array ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
270
+ return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
241
271
  }
242
272
  exports.executeOnSingleOrMultiple = executeOnSingleOrMultiple;
243
273
  function itemFromSingleOrMultiple(obj, index, useIndex) {
244
- return obj instanceof Array ? itemFromArray(obj, index, useIndex) : obj;
274
+ return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;
245
275
  }
246
276
  exports.itemFromSingleOrMultiple = itemFromSingleOrMultiple;
247
277
  function findItemFromSingleOrMultiple(obj, callback) {
248
- return obj instanceof Array ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
278
+ return isArray(obj) ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
249
279
  }
250
280
  exports.findItemFromSingleOrMultiple = findItemFromSingleOrMultiple;
251
281
  function initParticleNumericAnimationValue(options, pxRatio) {
252
- const valueRange = options.value, animationOptions = options.animation;
253
- const res = {
254
- enable: options.animation.enable,
282
+ const valueRange = options.value, animationOptions = options.animation, res = {
283
+ delayTime: (0, NumberUtils_1.getRangeValue)(animationOptions.delay) * 1000,
284
+ enable: animationOptions.enable,
255
285
  value: (0, NumberUtils_1.getRangeValue)(options.value) * pxRatio,
256
286
  max: (0, NumberUtils_1.getRangeMax)(valueRange) * pxRatio,
257
287
  min: (0, NumberUtils_1.getRangeMin)(valueRange) * pxRatio,
258
288
  loops: 0,
259
- maxLoops: (0, NumberUtils_1.getRangeValue)(options.animation.count),
289
+ maxLoops: (0, NumberUtils_1.getRangeValue)(animationOptions.count),
290
+ time: 0,
260
291
  };
261
292
  if (animationOptions.enable) {
262
- res.status = "increasing";
263
293
  res.decay = 1 - (0, NumberUtils_1.getRangeValue)(animationOptions.decay);
264
- switch (animationOptions.startValue) {
265
- case "min":
266
- res.value = res.min;
294
+ switch (animationOptions.mode) {
295
+ case "increase":
267
296
  res.status = "increasing";
268
297
  break;
298
+ case "decrease":
299
+ res.status = "decreasing";
300
+ break;
269
301
  case "random":
270
- res.value = (0, NumberUtils_1.randomInRange)(res);
271
302
  res.status = (0, NumberUtils_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
272
303
  break;
304
+ }
305
+ const autoStatus = animationOptions.mode === "auto";
306
+ switch (animationOptions.startValue) {
307
+ case "min":
308
+ res.value = res.min;
309
+ if (autoStatus) {
310
+ res.status = "increasing";
311
+ }
312
+ break;
273
313
  case "max":
274
- default:
275
314
  res.value = res.max;
276
- res.status = "decreasing";
315
+ if (autoStatus) {
316
+ res.status = "decreasing";
317
+ }
318
+ break;
319
+ case "random":
320
+ default:
321
+ res.value = (0, NumberUtils_1.randomInRange)(res);
322
+ if (autoStatus) {
323
+ res.status = (0, NumberUtils_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
324
+ }
277
325
  break;
278
326
  }
279
327
  }
@@ -281,4 +329,56 @@
281
329
  return res;
282
330
  }
283
331
  exports.initParticleNumericAnimationValue = initParticleNumericAnimationValue;
332
+ function getPositionOrSize(positionOrSize, canvasSize) {
333
+ const isPercent = positionOrSize.mode === "percent";
334
+ if (!isPercent) {
335
+ const { mode: _, ...rest } = positionOrSize;
336
+ return rest;
337
+ }
338
+ const isPosition = "x" in positionOrSize;
339
+ if (isPosition) {
340
+ return {
341
+ x: (positionOrSize.x / 100) * canvasSize.width,
342
+ y: (positionOrSize.y / 100) * canvasSize.height,
343
+ };
344
+ }
345
+ else {
346
+ return {
347
+ width: (positionOrSize.width / 100) * canvasSize.width,
348
+ height: (positionOrSize.height / 100) * canvasSize.height,
349
+ };
350
+ }
351
+ }
352
+ function getPosition(position, canvasSize) {
353
+ return getPositionOrSize(position, canvasSize);
354
+ }
355
+ exports.getPosition = getPosition;
356
+ function getSize(size, canvasSize) {
357
+ return getPositionOrSize(size, canvasSize);
358
+ }
359
+ exports.getSize = getSize;
360
+ function isBoolean(arg) {
361
+ return typeof arg === "boolean";
362
+ }
363
+ exports.isBoolean = isBoolean;
364
+ function isString(arg) {
365
+ return typeof arg === "string";
366
+ }
367
+ exports.isString = isString;
368
+ function isNumber(arg) {
369
+ return typeof arg === "number";
370
+ }
371
+ exports.isNumber = isNumber;
372
+ function isFunction(arg) {
373
+ return typeof arg === "function";
374
+ }
375
+ exports.isFunction = isFunction;
376
+ function isObject(arg) {
377
+ return typeof arg === "object" && arg !== null;
378
+ }
379
+ exports.isObject = isObject;
380
+ function isArray(arg) {
381
+ return Array.isArray(arg);
382
+ }
383
+ exports.isArray = isArray;
284
384
  });