@tsparticles/engine 3.0.0-alpha.1 → 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 (329) hide show
  1. package/README.md +244 -188
  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 -165
  6. package/browser/Core/Particles.js +148 -143
  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 +258 -234
  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 +4 -3
  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 -6
  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 -10
  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 +133 -62
  47. package/browser/bundle.js +4 -97
  48. package/browser/export-types.js +97 -0
  49. package/browser/exports.js +89 -0
  50. package/browser/index.js +8 -199
  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 -164
  56. package/cjs/Core/Particles.js +148 -143
  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 +257 -233
  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 +4 -3
  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 -6
  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 -10
  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 +146 -66
  97. package/cjs/bundle.js +4 -97
  98. package/cjs/export-types.js +113 -0
  99. package/cjs/exports.js +105 -0
  100. package/cjs/index.js +8 -199
  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 -165
  106. package/esm/Core/Particles.js +148 -143
  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 +258 -234
  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 +4 -3
  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 -6
  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 -10
  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 +133 -62
  147. package/esm/bundle.js +4 -97
  148. package/esm/export-types.js +97 -0
  149. package/esm/exports.js +89 -0
  150. package/esm/index.js +8 -199
  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 +1832 -2007
  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 +2 -2
  163. package/types/Core/Interfaces/IDimension.d.ts +2 -2
  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 -11
  170. package/types/Core/Utils/Constants.d.ts +4 -3
  171. package/types/Core/Utils/EventListeners.d.ts +20 -18
  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/{SizeMode.d.ts → PixelMode.d.ts} +1 -1
  176. package/types/Options/Classes/AnimationOptions.d.ts +1 -1
  177. package/types/Options/Classes/ColorAnimation.d.ts +1 -0
  178. package/types/Options/Classes/Interactivity/Events/DivEvent.d.ts +0 -6
  179. package/types/Options/Classes/Interactivity/Events/Events.d.ts +0 -6
  180. package/types/Options/Classes/Interactivity/Interactivity.d.ts +1 -3
  181. package/types/Options/Classes/Interactivity/Modes/Modes.d.ts +1 -1
  182. package/types/Options/Classes/Options.d.ts +5 -12
  183. package/types/Options/Classes/Particles/Collisions/Collisions.d.ts +2 -0
  184. package/types/Options/Classes/Particles/Move/Move.d.ts +0 -11
  185. package/types/Options/Classes/Particles/Move/MoveAttract.d.ts +0 -4
  186. package/types/Options/Classes/Particles/Move/MoveCenter.d.ts +2 -2
  187. package/types/Options/Classes/Particles/Move/MoveTrail.d.ts +0 -3
  188. package/types/Options/Classes/Particles/Number/ParticlesDensity.d.ts +0 -6
  189. package/types/Options/Classes/Particles/Number/ParticlesNumber.d.ts +0 -2
  190. package/types/Options/Classes/Particles/Opacity/Opacity.d.ts +4 -4
  191. package/types/Options/Classes/Particles/Opacity/OpacityAnimation.d.ts +0 -2
  192. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +1 -1
  193. package/types/Options/Classes/Particles/Size/Size.d.ts +4 -4
  194. package/types/Options/Classes/Particles/Size/SizeAnimation.d.ts +0 -2
  195. package/types/Options/Classes/Responsive.d.ts +3 -3
  196. package/types/Options/Classes/Theme/Theme.d.ts +2 -2
  197. package/types/Options/Classes/ValueWithRandom.d.ts +2 -6
  198. package/types/Options/Interfaces/IAnimation.d.ts +1 -1
  199. package/types/Options/Interfaces/IOptions.d.ts +1 -4
  200. package/types/Options/Interfaces/IResponsive.d.ts +4 -3
  201. package/types/Options/Interfaces/Interactivity/Events/IDivEvent.d.ts +0 -3
  202. package/types/Options/Interfaces/Interactivity/Events/IEvents.d.ts +0 -3
  203. package/types/Options/Interfaces/Interactivity/IInteractivity.d.ts +0 -1
  204. package/types/Options/Interfaces/Interactivity/Modes/IModeDiv.d.ts +0 -1
  205. package/types/Options/Interfaces/Particles/Collisions/ICollisions.d.ts +2 -0
  206. package/types/Options/Interfaces/Particles/IStroke.d.ts +2 -1
  207. package/types/Options/Interfaces/Particles/Move/IMove.d.ts +0 -5
  208. package/types/Options/Interfaces/Particles/Move/IMoveAttract.d.ts +0 -2
  209. package/types/Options/Interfaces/Particles/Move/IMoveTrail.d.ts +0 -2
  210. package/types/Options/Interfaces/Particles/Number/IParticlesDensity.d.ts +0 -3
  211. package/types/Options/Interfaces/Particles/Number/IParticlesNumber.d.ts +0 -1
  212. package/types/Options/Interfaces/Particles/Opacity/IOpacity.d.ts +0 -1
  213. package/types/Options/Interfaces/Particles/Opacity/IOpacityAnimation.d.ts +0 -1
  214. package/types/Options/Interfaces/Particles/Size/ISize.d.ts +0 -1
  215. package/types/Options/Interfaces/Particles/Size/ISizeAnimation.d.ts +0 -1
  216. package/types/Options/Interfaces/Theme/ITheme.d.ts +3 -2
  217. package/types/Types/ExportResult.d.ts +5 -0
  218. package/types/Utils/CanvasUtils.d.ts +2 -5
  219. package/types/Utils/OptionsUtils.d.ts +1 -1
  220. package/types/Utils/Utils.d.ts +22 -4
  221. package/types/bundle.d.ts +2 -91
  222. package/types/export-types.d.ts +107 -0
  223. package/types/exports.d.ts +89 -0
  224. package/types/index.d.ts +3 -204
  225. package/types/init.d.ts +2 -0
  226. package/umd/Core/Canvas.js +269 -239
  227. package/umd/Core/Container.js +91 -107
  228. package/umd/Core/Engine.js +285 -0
  229. package/umd/Core/Particle.js +158 -165
  230. package/umd/Core/Particles.js +149 -144
  231. package/umd/Core/Retina.js +15 -13
  232. package/umd/Core/Utils/Circle.js +11 -7
  233. package/umd/Core/Utils/Constants.js +5 -4
  234. package/umd/Core/Utils/EventListeners.js +257 -233
  235. package/umd/Core/Utils/InteractionManager.js +6 -16
  236. package/umd/Core/Utils/QuadTree.js +14 -20
  237. package/umd/Core/Utils/Vector3d.js +18 -10
  238. package/umd/Options/Classes/AnimatableColor.js +3 -2
  239. package/umd/Options/Classes/AnimationOptions.js +4 -3
  240. package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +3 -2
  241. package/umd/Options/Classes/ColorAnimation.js +4 -0
  242. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +1 -25
  243. package/umd/Options/Classes/Interactivity/Events/Events.js +6 -25
  244. package/umd/Options/Classes/Interactivity/Interactivity.js +1 -8
  245. package/umd/Options/Classes/Interactivity/Modes/Modes.js +11 -8
  246. package/umd/Options/Classes/ManualParticle.js +5 -6
  247. package/umd/Options/Classes/Options.js +18 -38
  248. package/umd/Options/Classes/OptionsColor.js +4 -3
  249. package/umd/Options/Classes/Particles/Collisions/Collisions.js +6 -1
  250. package/umd/Options/Classes/Particles/Move/Move.js +12 -42
  251. package/umd/Options/Classes/Particles/Move/MoveAttract.js +9 -20
  252. package/umd/Options/Classes/Particles/Move/MoveTrail.js +2 -8
  253. package/umd/Options/Classes/Particles/Move/OutModes.js +4 -5
  254. package/umd/Options/Classes/Particles/Move/Spin.js +3 -1
  255. package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +2 -21
  256. package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +2 -9
  257. package/umd/Options/Classes/Particles/Opacity/Opacity.js +10 -6
  258. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +0 -9
  259. package/umd/Options/Classes/Particles/ParticlesOptions.js +6 -11
  260. package/umd/Options/Classes/Particles/Shape/Shape.js +9 -10
  261. package/umd/Options/Classes/Particles/Size/Size.js +12 -8
  262. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +0 -9
  263. package/umd/Options/Classes/ValueWithRandom.js +5 -18
  264. package/umd/Utils/CanvasUtils.js +21 -58
  265. package/umd/Utils/ColorUtils.js +16 -18
  266. package/umd/Utils/EventDispatcher.js +7 -6
  267. package/umd/Utils/HslColorManager.js +2 -4
  268. package/umd/Utils/NumberUtils.js +42 -46
  269. package/umd/Utils/RgbColorManager.js +2 -4
  270. package/umd/Utils/Utils.js +146 -66
  271. package/umd/bundle.js +5 -98
  272. package/umd/export-types.js +123 -0
  273. package/umd/exports.js +115 -0
  274. package/umd/index.js +9 -200
  275. package/umd/init.js +26 -0
  276. package/browser/Core/Utils/FrameManager.js +0 -42
  277. package/browser/Core/Utils/Plugins.js +0 -112
  278. package/browser/Options/Interfaces/Particles/Shape/IImageShape.js +0 -1
  279. package/browser/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -1
  280. package/browser/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -1
  281. package/browser/Options/Interfaces/Particles/Shape/IStarShape.js +0 -1
  282. package/browser/engine.js +0 -175
  283. package/cjs/Core/Utils/FrameManager.js +0 -46
  284. package/cjs/Core/Utils/Plugins.js +0 -116
  285. package/cjs/Enums/Modes/SizeMode.js +0 -2
  286. package/cjs/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -2
  287. package/cjs/Options/Interfaces/Particles/Shape/IImageShape.js +0 -2
  288. package/cjs/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -2
  289. package/cjs/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -17
  290. package/cjs/Options/Interfaces/Particles/Shape/IStarShape.js +0 -2
  291. package/cjs/engine.js +0 -179
  292. package/esm/Core/Interfaces/IParticleOverride.js +0 -1
  293. package/esm/Core/Interfaces/IParticlesMover.js +0 -1
  294. package/esm/Core/Utils/FrameManager.js +0 -42
  295. package/esm/Core/Utils/Plugins.js +0 -112
  296. package/esm/Enums/Modes/SizeMode.js +0 -1
  297. package/esm/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -1
  298. package/esm/Options/Interfaces/Particles/Shape/IImageShape.js +0 -1
  299. package/esm/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -1
  300. package/esm/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -1
  301. package/esm/Options/Interfaces/Particles/Shape/IStarShape.js +0 -1
  302. package/esm/engine.js +0 -175
  303. package/types/Core/Interfaces/IParticleOverride.d.ts +0 -6
  304. package/types/Core/Interfaces/IParticlesMover.d.ts +0 -7
  305. package/types/Core/Utils/FrameManager.d.ts +0 -6
  306. package/types/Core/Utils/Plugins.d.ts +0 -51
  307. package/types/Options/Interfaces/Particles/Shape/ICharacterShape.d.ts +0 -8
  308. package/types/Options/Interfaces/Particles/Shape/IImageShape.d.ts +0 -8
  309. package/types/Options/Interfaces/Particles/Shape/IPolygonShape.d.ts +0 -5
  310. package/types/Options/Interfaces/Particles/Shape/IShapeValues.d.ts +0 -1
  311. package/types/Options/Interfaces/Particles/Shape/IStarShape.d.ts +0 -6
  312. package/types/engine.d.ts +0 -39
  313. package/umd/Core/Utils/FrameManager.js +0 -56
  314. package/umd/Core/Utils/Plugins.js +0 -126
  315. package/umd/Enums/Modes/SizeMode.js +0 -12
  316. package/umd/Options/Interfaces/Particles/Shape/ICharacterShape.js +0 -12
  317. package/umd/Options/Interfaces/Particles/Shape/IImageShape.js +0 -12
  318. package/umd/Options/Interfaces/Particles/Shape/IPolygonShape.js +0 -12
  319. package/umd/Options/Interfaces/Particles/Shape/IShapeValues.js +0 -27
  320. package/umd/Options/Interfaces/Particles/Shape/IStarShape.js +0 -12
  321. package/umd/engine.js +0 -189
  322. /package/browser/{Core/Interfaces/IParticleOverride.js → Enums/Modes/PixelMode.js} +0 -0
  323. /package/browser/{Core/Interfaces/IParticlesMover.js → Types/ExportResult.js} +0 -0
  324. /package/cjs/{Core/Interfaces/IParticleOverride.js → Enums/Modes/PixelMode.js} +0 -0
  325. /package/cjs/{Core/Interfaces/IParticlesMover.js → Types/ExportResult.js} +0 -0
  326. /package/{browser/Enums/Modes/SizeMode.js → esm/Enums/Modes/PixelMode.js} +0 -0
  327. /package/{browser/Options/Interfaces/Particles/Shape/ICharacterShape.js → esm/Types/ExportResult.js} +0 -0
  328. /package/umd/{Core/Interfaces/IParticleOverride.js → Enums/Modes/PixelMode.js} +0 -0
  329. /package/umd/{Core/Interfaces/IParticlesMover.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,30 +267,30 @@
237
267
  }
238
268
  exports.rectBounce = rectBounce;
239
269
  function executeOnSingleOrMultiple(obj, callback) {
240
- return obj instanceof Array ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
270
+ return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);
241
271
  }
242
272
  exports.executeOnSingleOrMultiple = executeOnSingleOrMultiple;
243
273
  function itemFromSingleOrMultiple(obj, index, useIndex) {
244
- return obj instanceof Array ? itemFromArray(obj, index, useIndex) : obj;
274
+ return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;
245
275
  }
246
276
  exports.itemFromSingleOrMultiple = itemFromSingleOrMultiple;
247
277
  function findItemFromSingleOrMultiple(obj, callback) {
248
- return obj instanceof Array ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
278
+ return isArray(obj) ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;
249
279
  }
250
280
  exports.findItemFromSingleOrMultiple = findItemFromSingleOrMultiple;
251
281
  function initParticleNumericAnimationValue(options, pxRatio) {
252
- const valueRange = options.value, animationOptions = options.animation;
253
- const res = {
254
- enable: options.animation.enable,
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
293
  res.decay = 1 - (0, NumberUtils_1.getRangeValue)(animationOptions.decay);
263
- let autoStatus = false;
264
294
  switch (animationOptions.mode) {
265
295
  case "increase":
266
296
  res.status = "increasing";
@@ -271,10 +301,8 @@
271
301
  case "random":
272
302
  res.status = (0, NumberUtils_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
273
303
  break;
274
- case "auto":
275
- autoStatus = true;
276
- break;
277
304
  }
305
+ const autoStatus = animationOptions.mode === "auto";
278
306
  switch (animationOptions.startValue) {
279
307
  case "min":
280
308
  res.value = res.min;
@@ -282,17 +310,17 @@
282
310
  res.status = "increasing";
283
311
  }
284
312
  break;
285
- case "random":
286
- res.value = (0, NumberUtils_1.randomInRange)(res);
313
+ case "max":
314
+ res.value = res.max;
287
315
  if (autoStatus) {
288
- res.status = (0, NumberUtils_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
316
+ res.status = "decreasing";
289
317
  }
290
318
  break;
291
- case "max":
319
+ case "random":
292
320
  default:
293
- res.value = res.max;
321
+ res.value = (0, NumberUtils_1.randomInRange)(res);
294
322
  if (autoStatus) {
295
- res.status = "decreasing";
323
+ res.status = (0, NumberUtils_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
296
324
  }
297
325
  break;
298
326
  }
@@ -301,4 +329,56 @@
301
329
  return res;
302
330
  }
303
331
  exports.initParticleNumericAnimationValue = initParticleNumericAnimationValue;
332
+ function getPositionOrSize(positionOrSize, canvasSize) {
333
+ const isPercent = positionOrSize.mode === "percent";
334
+ if (!isPercent) {
335
+ const { mode: _, ...rest } = positionOrSize;
336
+ return rest;
337
+ }
338
+ const isPosition = "x" in positionOrSize;
339
+ if (isPosition) {
340
+ return {
341
+ x: (positionOrSize.x / 100) * canvasSize.width,
342
+ y: (positionOrSize.y / 100) * canvasSize.height,
343
+ };
344
+ }
345
+ else {
346
+ return {
347
+ width: (positionOrSize.width / 100) * canvasSize.width,
348
+ height: (positionOrSize.height / 100) * canvasSize.height,
349
+ };
350
+ }
351
+ }
352
+ function getPosition(position, canvasSize) {
353
+ return getPositionOrSize(position, canvasSize);
354
+ }
355
+ exports.getPosition = getPosition;
356
+ function getSize(size, canvasSize) {
357
+ return getPositionOrSize(size, canvasSize);
358
+ }
359
+ exports.getSize = getSize;
360
+ function isBoolean(arg) {
361
+ return typeof arg === "boolean";
362
+ }
363
+ exports.isBoolean = isBoolean;
364
+ function isString(arg) {
365
+ return typeof arg === "string";
366
+ }
367
+ exports.isString = isString;
368
+ function isNumber(arg) {
369
+ return typeof arg === "number";
370
+ }
371
+ exports.isNumber = isNumber;
372
+ function isFunction(arg) {
373
+ return typeof arg === "function";
374
+ }
375
+ exports.isFunction = isFunction;
376
+ function isObject(arg) {
377
+ return typeof arg === "object" && arg !== null;
378
+ }
379
+ exports.isObject = isObject;
380
+ function isArray(arg) {
381
+ return Array.isArray(arg);
382
+ }
383
+ exports.isArray = isArray;
304
384
  });