@tsparticles/engine 3.9.0 → 4.0.0-alpha.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 (431) hide show
  1. package/638.min.js +2 -0
  2. package/638.min.js.LICENSE.txt +1 -0
  3. package/browser/Core/Canvas.js +126 -181
  4. package/browser/Core/Container.js +22 -18
  5. package/browser/Core/Engine.js +64 -54
  6. package/browser/Core/Particle.js +43 -48
  7. package/browser/Core/Particles.js +33 -24
  8. package/browser/Core/Retina.js +2 -3
  9. package/browser/Core/Utils/Constants.js +2 -2
  10. package/browser/Core/Utils/EventListeners.js +74 -64
  11. package/browser/Core/Utils/QuadTree.js +1 -1
  12. package/browser/Core/Utils/Ranges.js +2 -2
  13. package/browser/Core/Utils/Vectors.js +15 -21
  14. package/browser/Options/Classes/AnimatableColor.js +3 -3
  15. package/browser/Options/Classes/AnimationOptions.js +1 -1
  16. package/browser/Options/Classes/ColorAnimation.js +1 -1
  17. package/browser/Options/Classes/Options.js +13 -10
  18. package/browser/Options/Classes/Particles/Move/Move.js +1 -4
  19. package/browser/Options/Classes/Particles/Move/MoveAngle.js +1 -1
  20. package/browser/Options/Classes/Particles/Move/MoveAttract.js +1 -1
  21. package/browser/Options/Classes/Particles/Move/MoveGravity.js +1 -1
  22. package/browser/Options/Classes/Particles/Move/Spin.js +1 -1
  23. package/browser/Options/Classes/Particles/ParticlesOptions.js +0 -6
  24. package/browser/Options/Classes/Particles/Stroke.js +1 -1
  25. package/browser/Options/Classes/ValueWithRandom.js +1 -1
  26. package/browser/Utils/CanvasUtils.js +65 -21
  27. package/browser/Utils/ColorUtils.js +61 -45
  28. package/browser/Utils/EventDispatcher.js +3 -1
  29. package/browser/Utils/LogUtils.js +22 -0
  30. package/browser/Utils/{NumberUtils.js → MathUtils.js} +14 -7
  31. package/browser/Utils/Utils.js +23 -125
  32. package/browser/bundle.js +3 -3
  33. package/browser/export-types.js +1 -99
  34. package/browser/exports.js +2 -9
  35. package/browser/index.js +3 -7
  36. package/browser/initEngine.js +4 -0
  37. package/cjs/Core/Canvas.js +136 -195
  38. package/cjs/Core/Container.js +57 -57
  39. package/cjs/Core/Engine.js +77 -71
  40. package/cjs/Core/Interfaces/Colors.js +1 -2
  41. package/cjs/Core/Interfaces/IBounds.js +1 -2
  42. package/cjs/Core/Interfaces/IBubbleParticleData.js +1 -2
  43. package/cjs/Core/Interfaces/ICircleBouncer.js +1 -2
  44. package/cjs/Core/Interfaces/IColorManager.js +1 -2
  45. package/cjs/Core/Interfaces/IContainerInteractivity.js +1 -2
  46. package/cjs/Core/Interfaces/IContainerPlugin.js +1 -2
  47. package/cjs/Core/Interfaces/ICoordinates.js +1 -2
  48. package/cjs/Core/Interfaces/IDelta.js +1 -2
  49. package/cjs/Core/Interfaces/IDimension.js +1 -2
  50. package/cjs/Core/Interfaces/IDistance.js +1 -2
  51. package/cjs/Core/Interfaces/IDrawParticleParams.js +1 -2
  52. package/cjs/Core/Interfaces/IEffectDrawer.js +1 -2
  53. package/cjs/Core/Interfaces/IExternalInteractor.js +1 -2
  54. package/cjs/Core/Interfaces/IInteractor.js +1 -2
  55. package/cjs/Core/Interfaces/ILoadParams.js +1 -2
  56. package/cjs/Core/Interfaces/IMouseData.js +1 -2
  57. package/cjs/Core/Interfaces/IMovePathGenerator.js +1 -2
  58. package/cjs/Core/Interfaces/IParticleColorStyle.js +1 -2
  59. package/cjs/Core/Interfaces/IParticleHslAnimation.js +1 -2
  60. package/cjs/Core/Interfaces/IParticleLife.js +1 -2
  61. package/cjs/Core/Interfaces/IParticleMover.js +1 -2
  62. package/cjs/Core/Interfaces/IParticleRetinaProps.js +1 -2
  63. package/cjs/Core/Interfaces/IParticleRoll.js +1 -2
  64. package/cjs/Core/Interfaces/IParticleTransformValues.js +1 -2
  65. package/cjs/Core/Interfaces/IParticleUpdater.js +1 -2
  66. package/cjs/Core/Interfaces/IParticleValueAnimation.js +1 -2
  67. package/cjs/Core/Interfaces/IParticlesInteractor.js +1 -2
  68. package/cjs/Core/Interfaces/IPlugin.js +1 -2
  69. package/cjs/Core/Interfaces/IPositionFromSizeParams.js +1 -2
  70. package/cjs/Core/Interfaces/IRangeValue.js +1 -2
  71. package/cjs/Core/Interfaces/IShapeDrawData.js +1 -2
  72. package/cjs/Core/Interfaces/IShapeDrawer.js +1 -2
  73. package/cjs/Core/Interfaces/IShapeValues.js +1 -2
  74. package/cjs/Core/Interfaces/ISlowParticleData.js +1 -2
  75. package/cjs/Core/Particle.js +99 -108
  76. package/cjs/Core/Particles.js +63 -58
  77. package/cjs/Core/Retina.js +13 -18
  78. package/cjs/Core/Utils/Constants.js +3 -7
  79. package/cjs/Core/Utils/EventListeners.js +94 -88
  80. package/cjs/Core/Utils/ExternalInteractorBase.js +3 -7
  81. package/cjs/Core/Utils/InteractionManager.js +4 -8
  82. package/cjs/Core/Utils/ParticlesInteractorBase.js +3 -7
  83. package/cjs/Core/Utils/Point.js +1 -5
  84. package/cjs/Core/Utils/QuadTree.js +10 -14
  85. package/cjs/Core/Utils/Ranges.js +14 -20
  86. package/cjs/Core/Utils/Vectors.js +24 -35
  87. package/cjs/Enums/AnimationStatus.js +2 -5
  88. package/cjs/Enums/Directions/MoveDirection.js +2 -5
  89. package/cjs/Enums/Directions/OutModeDirection.js +2 -5
  90. package/cjs/Enums/Directions/RotateDirection.js +2 -5
  91. package/cjs/Enums/InteractivityDetect.js +2 -5
  92. package/cjs/Enums/Modes/AnimationMode.js +2 -5
  93. package/cjs/Enums/Modes/LimitMode.js +2 -5
  94. package/cjs/Enums/Modes/OutMode.js +2 -5
  95. package/cjs/Enums/Modes/PixelMode.js +2 -5
  96. package/cjs/Enums/Modes/ResponsiveMode.js +2 -5
  97. package/cjs/Enums/Modes/ThemeMode.js +2 -5
  98. package/cjs/Enums/Types/AlterType.js +2 -5
  99. package/cjs/Enums/Types/DestroyType.js +2 -5
  100. package/cjs/Enums/Types/DivType.js +2 -5
  101. package/cjs/Enums/Types/EasingType.js +2 -5
  102. package/cjs/Enums/Types/EventType.js +2 -5
  103. package/cjs/Enums/Types/GradientType.js +2 -5
  104. package/cjs/Enums/Types/InteractorType.js +2 -5
  105. package/cjs/Enums/Types/ParticleOutType.js +2 -5
  106. package/cjs/Enums/Types/StartValueType.js +2 -5
  107. package/cjs/Options/Classes/AnimatableColor.js +10 -14
  108. package/cjs/Options/Classes/AnimationOptions.js +14 -19
  109. package/cjs/Options/Classes/Background/Background.js +6 -10
  110. package/cjs/Options/Classes/ColorAnimation.js +6 -10
  111. package/cjs/Options/Classes/FullScreen/FullScreen.js +3 -7
  112. package/cjs/Options/Classes/HslAnimation.js +7 -11
  113. package/cjs/Options/Classes/Interactivity/Events/ClickEvent.js +3 -7
  114. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +5 -9
  115. package/cjs/Options/Classes/Interactivity/Events/Events.js +14 -18
  116. package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +5 -9
  117. package/cjs/Options/Classes/Interactivity/Events/Parallax.js +3 -7
  118. package/cjs/Options/Classes/Interactivity/Events/ResizeEvent.js +3 -7
  119. package/cjs/Options/Classes/Interactivity/Interactivity.js +9 -13
  120. package/cjs/Options/Classes/Interactivity/Modes/Modes.js +3 -7
  121. package/cjs/Options/Classes/ManualParticle.js +10 -14
  122. package/cjs/Options/Classes/Options.js +41 -42
  123. package/cjs/Options/Classes/OptionsColor.js +5 -9
  124. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +6 -10
  125. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js +2 -6
  126. package/cjs/Options/Classes/Particles/Effect/Effect.js +5 -9
  127. package/cjs/Options/Classes/Particles/Move/Move.js +26 -33
  128. package/cjs/Options/Classes/Particles/Move/MoveAngle.js +6 -10
  129. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +5 -9
  130. package/cjs/Options/Classes/Particles/Move/MoveCenter.js +5 -9
  131. package/cjs/Options/Classes/Particles/Move/MoveGravity.js +6 -10
  132. package/cjs/Options/Classes/Particles/Move/OutModes.js +5 -9
  133. package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +7 -11
  134. package/cjs/Options/Classes/Particles/Move/Spin.js +7 -11
  135. package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +3 -7
  136. package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +7 -11
  137. package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +5 -9
  138. package/cjs/Options/Classes/Particles/Opacity/Opacity.js +6 -10
  139. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +6 -10
  140. package/cjs/Options/Classes/Particles/ParticlesOptions.js +29 -39
  141. package/cjs/Options/Classes/Particles/Shape/Shape.js +5 -9
  142. package/cjs/Options/Classes/Particles/Size/Size.js +6 -10
  143. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +6 -10
  144. package/cjs/Options/Classes/Particles/Stroke.js +8 -12
  145. package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +4 -8
  146. package/cjs/Options/Classes/Responsive.js +13 -17
  147. package/cjs/Options/Classes/Theme/Theme.js +7 -11
  148. package/cjs/Options/Classes/Theme/ThemeDefault.js +5 -9
  149. package/cjs/Options/Classes/ValueWithRandom.js +12 -18
  150. package/cjs/Options/Interfaces/Background/IBackground.js +1 -2
  151. package/cjs/Options/Interfaces/FullScreen/IFullScreen.js +1 -2
  152. package/cjs/Options/Interfaces/IAnimatable.js +1 -2
  153. package/cjs/Options/Interfaces/IAnimatableColor.js +1 -2
  154. package/cjs/Options/Interfaces/IAnimation.js +1 -2
  155. package/cjs/Options/Interfaces/IColorAnimation.js +1 -2
  156. package/cjs/Options/Interfaces/IHslAnimation.js +1 -2
  157. package/cjs/Options/Interfaces/IManualParticle.js +1 -2
  158. package/cjs/Options/Interfaces/IOptionLoader.js +1 -2
  159. package/cjs/Options/Interfaces/IOptions.js +1 -2
  160. package/cjs/Options/Interfaces/IOptionsColor.js +1 -2
  161. package/cjs/Options/Interfaces/IResponsive.js +1 -2
  162. package/cjs/Options/Interfaces/IValueWithRandom.js +1 -2
  163. package/cjs/Options/Interfaces/Interactivity/Events/IClickEvent.js +1 -2
  164. package/cjs/Options/Interfaces/Interactivity/Events/IDivEvent.js +1 -2
  165. package/cjs/Options/Interfaces/Interactivity/Events/IEvents.js +1 -2
  166. package/cjs/Options/Interfaces/Interactivity/Events/IHoverEvent.js +1 -2
  167. package/cjs/Options/Interfaces/Interactivity/Events/IParallax.js +1 -2
  168. package/cjs/Options/Interfaces/Interactivity/Events/IResizeEvent.js +1 -2
  169. package/cjs/Options/Interfaces/Interactivity/IInteractivity.js +1 -2
  170. package/cjs/Options/Interfaces/Interactivity/Modes/IModeDiv.js +1 -2
  171. package/cjs/Options/Interfaces/Interactivity/Modes/IModes.js +1 -2
  172. package/cjs/Options/Interfaces/Particles/Bounce/IParticlesBounce.js +1 -2
  173. package/cjs/Options/Interfaces/Particles/Effect/IEffect.js +1 -2
  174. package/cjs/Options/Interfaces/Particles/IParticlesOptions.js +1 -2
  175. package/cjs/Options/Interfaces/Particles/IStroke.js +1 -2
  176. package/cjs/Options/Interfaces/Particles/Move/IMove.js +1 -2
  177. package/cjs/Options/Interfaces/Particles/Move/IMoveAngle.js +1 -2
  178. package/cjs/Options/Interfaces/Particles/Move/IMoveAttract.js +1 -2
  179. package/cjs/Options/Interfaces/Particles/Move/IMoveCenter.js +1 -2
  180. package/cjs/Options/Interfaces/Particles/Move/IMoveGravity.js +1 -2
  181. package/cjs/Options/Interfaces/Particles/Move/IOutModes.js +1 -2
  182. package/cjs/Options/Interfaces/Particles/Move/ISpin.js +1 -2
  183. package/cjs/Options/Interfaces/Particles/Move/Path/IMovePath.js +1 -2
  184. package/cjs/Options/Interfaces/Particles/Number/IParticlesDensity.js +1 -2
  185. package/cjs/Options/Interfaces/Particles/Number/IParticlesNumber.js +1 -2
  186. package/cjs/Options/Interfaces/Particles/Number/IParticlesNumberLimit.js +1 -2
  187. package/cjs/Options/Interfaces/Particles/Opacity/IOpacity.js +1 -2
  188. package/cjs/Options/Interfaces/Particles/Opacity/IOpacityAnimation.js +1 -2
  189. package/cjs/Options/Interfaces/Particles/Shape/IShape.js +1 -2
  190. package/cjs/Options/Interfaces/Particles/Size/ISize.js +1 -2
  191. package/cjs/Options/Interfaces/Particles/Size/ISizeAnimation.js +1 -2
  192. package/cjs/Options/Interfaces/Particles/ZIndex/IZIndex.js +1 -2
  193. package/cjs/Options/Interfaces/Theme/ITheme.js +1 -2
  194. package/cjs/Options/Interfaces/Theme/IThemeDefault.js +1 -2
  195. package/cjs/Types/CustomEventArgs.js +1 -2
  196. package/cjs/Types/CustomEventListener.js +1 -2
  197. package/cjs/Types/EasingFunction.js +1 -2
  198. package/cjs/Types/ExportResult.js +1 -2
  199. package/cjs/Types/ISourceOptions.js +1 -2
  200. package/cjs/Types/ParticlesGroups.js +1 -2
  201. package/cjs/Types/PathOptions.js +1 -2
  202. package/cjs/Types/RangeValue.js +1 -2
  203. package/cjs/Types/RecursivePartial.js +1 -2
  204. package/cjs/Types/ShapeData.js +1 -2
  205. package/cjs/Types/SingleOrMultiple.js +1 -2
  206. package/cjs/Utils/CanvasUtils.js +86 -55
  207. package/cjs/Utils/ColorUtils.js +136 -141
  208. package/cjs/Utils/EventDispatcher.js +8 -10
  209. package/cjs/Utils/LogUtils.js +22 -0
  210. package/{esm/Utils/NumberUtils.js → cjs/Utils/MathUtils.js} +14 -7
  211. package/cjs/Utils/OptionsUtils.js +4 -8
  212. package/cjs/Utils/TypeUtils.js +7 -16
  213. package/cjs/Utils/Utils.js +104 -239
  214. package/cjs/bundle.js +5 -22
  215. package/cjs/export-types.js +1 -115
  216. package/cjs/exports.js +77 -100
  217. package/cjs/index.js +5 -26
  218. package/cjs/initEngine.js +4 -0
  219. package/dist_browser_Core_Container_js.js +102 -0
  220. package/esm/Core/Canvas.js +126 -181
  221. package/esm/Core/Container.js +22 -18
  222. package/esm/Core/Engine.js +64 -54
  223. package/esm/Core/Particle.js +43 -48
  224. package/esm/Core/Particles.js +33 -24
  225. package/esm/Core/Retina.js +2 -3
  226. package/esm/Core/Utils/Constants.js +2 -2
  227. package/esm/Core/Utils/EventListeners.js +74 -64
  228. package/esm/Core/Utils/QuadTree.js +1 -1
  229. package/esm/Core/Utils/Ranges.js +2 -2
  230. package/esm/Core/Utils/Vectors.js +15 -21
  231. package/esm/Enums/RangeType.js +5 -0
  232. package/esm/Options/Classes/AnimatableColor.js +3 -3
  233. package/esm/Options/Classes/AnimationOptions.js +1 -1
  234. package/esm/Options/Classes/ColorAnimation.js +1 -1
  235. package/esm/Options/Classes/Options.js +13 -10
  236. package/esm/Options/Classes/Particles/Move/Move.js +1 -4
  237. package/esm/Options/Classes/Particles/Move/MoveAngle.js +1 -1
  238. package/esm/Options/Classes/Particles/Move/MoveAttract.js +1 -1
  239. package/esm/Options/Classes/Particles/Move/MoveGravity.js +1 -1
  240. package/esm/Options/Classes/Particles/Move/Spin.js +1 -1
  241. package/esm/Options/Classes/Particles/ParticlesOptions.js +0 -6
  242. package/esm/Options/Classes/Particles/Stroke.js +1 -1
  243. package/esm/Options/Classes/ValueWithRandom.js +1 -1
  244. package/esm/Utils/CanvasUtils.js +65 -21
  245. package/esm/Utils/ColorUtils.js +61 -45
  246. package/esm/Utils/EventDispatcher.js +3 -1
  247. package/esm/Utils/LogUtils.js +22 -0
  248. package/esm/Utils/MathUtils.js +158 -0
  249. package/esm/Utils/Utils.js +23 -125
  250. package/esm/bundle.js +3 -3
  251. package/esm/export-types.js +1 -99
  252. package/esm/exports.js +2 -9
  253. package/esm/index.js +3 -7
  254. package/esm/initEngine.js +4 -0
  255. package/package.json +3 -2
  256. package/report.html +5 -4
  257. package/scripts/install.js +98 -17
  258. package/tsparticles.engine.js +492 -451
  259. package/tsparticles.engine.min.js +1 -1
  260. package/tsparticles.engine.min.js.LICENSE.txt +1 -1
  261. package/types/Core/Canvas.d.ts +6 -9
  262. package/types/Core/Container.d.ts +1 -0
  263. package/types/Core/Engine.d.ts +20 -16
  264. package/types/Core/Interfaces/Colors.d.ts +46 -2
  265. package/types/Core/Interfaces/IColorManager.d.ts +1 -1
  266. package/types/Core/Interfaces/IContainerPlugin.d.ts +4 -0
  267. package/types/Core/Interfaces/IDrawParticleParams.d.ts +0 -4
  268. package/types/Core/Interfaces/IEffectDrawer.d.ts +2 -1
  269. package/types/Core/Interfaces/IShapeDrawData.d.ts +2 -0
  270. package/types/Core/Interfaces/IShapeDrawer.d.ts +1 -0
  271. package/types/Core/Particle.d.ts +4 -5
  272. package/types/Core/Particles.d.ts +1 -1
  273. package/types/Core/Utils/Constants.d.ts +2 -2
  274. package/types/Core/Utils/EventListeners.d.ts +1 -0
  275. package/types/Core/Utils/Vectors.d.ts +3 -3
  276. package/types/Options/Classes/Options.d.ts +1 -2
  277. package/types/Options/Classes/OptionsColor.d.ts +2 -2
  278. package/types/Options/Classes/Particles/Move/Move.d.ts +0 -2
  279. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +0 -4
  280. package/types/Options/Interfaces/IOptions.d.ts +1 -2
  281. package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +0 -4
  282. package/types/Options/Interfaces/Particles/Move/IMove.d.ts +0 -2
  283. package/types/Utils/CanvasUtils.d.ts +4 -1
  284. package/types/Utils/ColorUtils.d.ts +2 -2
  285. package/types/Utils/LogUtils.d.ts +11 -0
  286. package/types/Utils/{NumberUtils.d.ts → MathUtils.d.ts} +2 -1
  287. package/types/Utils/TypeUtils.d.ts +2 -2
  288. package/types/Utils/Utils.d.ts +4 -16
  289. package/types/export-types.d.ts +91 -101
  290. package/types/exports.d.ts +2 -9
  291. package/types/index.d.ts +1 -1
  292. package/types/initEngine.d.ts +2 -0
  293. package/umd/Core/Canvas.js +123 -178
  294. package/umd/Core/Container.js +25 -21
  295. package/umd/Core/Engine.js +97 -53
  296. package/umd/Core/Particle.js +54 -59
  297. package/umd/Core/Particles.js +33 -24
  298. package/umd/Core/Retina.js +9 -10
  299. package/umd/Core/Utils/Constants.js +3 -3
  300. package/umd/Core/Utils/EventListeners.js +72 -62
  301. package/umd/Core/Utils/QuadTree.js +3 -3
  302. package/umd/Core/Utils/Ranges.js +4 -4
  303. package/umd/Core/Utils/Vectors.js +15 -21
  304. package/umd/Options/Classes/AnimatableColor.js +3 -3
  305. package/umd/Options/Classes/AnimationOptions.js +6 -6
  306. package/umd/Options/Classes/ColorAnimation.js +3 -3
  307. package/umd/Options/Classes/Options.js +16 -13
  308. package/umd/Options/Classes/Particles/Move/Move.js +5 -8
  309. package/umd/Options/Classes/Particles/Move/MoveAngle.js +4 -4
  310. package/umd/Options/Classes/Particles/Move/MoveAttract.js +3 -3
  311. package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -4
  312. package/umd/Options/Classes/Particles/Move/Spin.js +3 -3
  313. package/umd/Options/Classes/Particles/ParticlesOptions.js +1 -7
  314. package/umd/Options/Classes/Particles/Stroke.js +4 -4
  315. package/umd/Options/Classes/ValueWithRandom.js +3 -3
  316. package/umd/Utils/CanvasUtils.js +69 -22
  317. package/umd/Utils/ColorUtils.js +72 -56
  318. package/umd/Utils/EventDispatcher.js +3 -1
  319. package/umd/Utils/LogUtils.js +36 -0
  320. package/umd/Utils/{NumberUtils.js → MathUtils.js} +16 -8
  321. package/umd/Utils/Utils.js +36 -141
  322. package/umd/bundle.js +4 -4
  323. package/umd/export-types.js +1 -114
  324. package/umd/exports.js +3 -10
  325. package/umd/index.js +4 -8
  326. package/umd/{init.js → initEngine.js} +3 -5
  327. package/browser/Core/Interfaces/IRectSideResult.js +0 -1
  328. package/browser/Core/Interfaces/ITrailFillData.js +0 -1
  329. package/browser/Enums/Modes/CollisionMode.js +0 -6
  330. package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +0 -24
  331. package/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -21
  332. package/browser/Options/Classes/Particles/Collisions/Collisions.js +0 -33
  333. package/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -14
  334. package/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -18
  335. package/browser/Options/Classes/Particles/Move/MoveTrail.js +0 -23
  336. package/browser/Options/Classes/Particles/Move/MoveTrailFill.js +0 -15
  337. package/browser/Options/Classes/Particles/Shadow.js +0 -35
  338. package/browser/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -1
  339. package/browser/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -1
  340. package/browser/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -1
  341. package/browser/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -1
  342. package/browser/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -1
  343. package/browser/Options/Interfaces/Particles/IShadow.js +0 -1
  344. package/browser/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -1
  345. package/browser/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -1
  346. package/browser/init.js +0 -6
  347. package/cjs/Core/Interfaces/IRectSideResult.js +0 -2
  348. package/cjs/Core/Interfaces/ITrailFillData.js +0 -2
  349. package/cjs/Enums/Modes/CollisionMode.js +0 -9
  350. package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +0 -28
  351. package/cjs/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -25
  352. package/cjs/Options/Classes/Particles/Collisions/Collisions.js +0 -37
  353. package/cjs/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -18
  354. package/cjs/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -22
  355. package/cjs/Options/Classes/Particles/Move/MoveTrail.js +0 -27
  356. package/cjs/Options/Classes/Particles/Move/MoveTrailFill.js +0 -19
  357. package/cjs/Options/Classes/Particles/Shadow.js +0 -39
  358. package/cjs/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -2
  359. package/cjs/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -2
  360. package/cjs/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -2
  361. package/cjs/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -2
  362. package/cjs/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -2
  363. package/cjs/Options/Interfaces/Particles/IShadow.js +0 -2
  364. package/cjs/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -2
  365. package/cjs/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -2
  366. package/cjs/Types/RangeType.js +0 -8
  367. package/cjs/Utils/NumberUtils.js +0 -177
  368. package/cjs/init.js +0 -9
  369. package/esm/Core/Interfaces/IRectSideResult.js +0 -1
  370. package/esm/Core/Interfaces/ITrailFillData.js +0 -1
  371. package/esm/Enums/Modes/CollisionMode.js +0 -6
  372. package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +0 -24
  373. package/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -21
  374. package/esm/Options/Classes/Particles/Collisions/Collisions.js +0 -33
  375. package/esm/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -14
  376. package/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -18
  377. package/esm/Options/Classes/Particles/Move/MoveTrail.js +0 -23
  378. package/esm/Options/Classes/Particles/Move/MoveTrailFill.js +0 -15
  379. package/esm/Options/Classes/Particles/Shadow.js +0 -35
  380. package/esm/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -1
  381. package/esm/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -1
  382. package/esm/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -1
  383. package/esm/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -1
  384. package/esm/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -1
  385. package/esm/Options/Interfaces/Particles/IShadow.js +0 -1
  386. package/esm/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -1
  387. package/esm/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -1
  388. package/esm/init.js +0 -6
  389. package/types/Core/Interfaces/IRectSideResult.d.ts +0 -5
  390. package/types/Core/Interfaces/ITrailFillData.d.ts +0 -6
  391. package/types/Enums/Modes/CollisionMode.d.ts +0 -5
  392. package/types/Options/Classes/BackgroundMask/BackgroundMask.d.ts +0 -11
  393. package/types/Options/Classes/BackgroundMask/BackgroundMaskCover.d.ts +0 -11
  394. package/types/Options/Classes/Particles/Collisions/Collisions.d.ts +0 -18
  395. package/types/Options/Classes/Particles/Collisions/CollisionsAbsorb.d.ts +0 -8
  396. package/types/Options/Classes/Particles/Collisions/CollisionsOverlap.d.ts +0 -9
  397. package/types/Options/Classes/Particles/Move/MoveTrail.d.ts +0 -11
  398. package/types/Options/Classes/Particles/Move/MoveTrailFill.d.ts +0 -9
  399. package/types/Options/Classes/Particles/Shadow.d.ts +0 -13
  400. package/types/Options/Interfaces/BackgroundMask/IBackgroundMask.d.ts +0 -8
  401. package/types/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.d.ts +0 -6
  402. package/types/Options/Interfaces/Particles/Collisions/ICollisions.d.ts +0 -13
  403. package/types/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.d.ts +0 -3
  404. package/types/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.d.ts +0 -4
  405. package/types/Options/Interfaces/Particles/IShadow.d.ts +0 -8
  406. package/types/Options/Interfaces/Particles/Move/IMoveTrail.d.ts +0 -6
  407. package/types/Options/Interfaces/Particles/Move/IMoveTrailFill.d.ts +0 -5
  408. package/types/init.d.ts +0 -2
  409. package/umd/Core/Interfaces/IRectSideResult.js +0 -12
  410. package/umd/Core/Interfaces/ITrailFillData.js +0 -12
  411. package/umd/Enums/Modes/CollisionMode.js +0 -19
  412. package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +0 -38
  413. package/umd/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -35
  414. package/umd/Options/Classes/Particles/Collisions/Collisions.js +0 -47
  415. package/umd/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -28
  416. package/umd/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -32
  417. package/umd/Options/Classes/Particles/Move/MoveTrail.js +0 -37
  418. package/umd/Options/Classes/Particles/Move/MoveTrailFill.js +0 -29
  419. package/umd/Options/Classes/Particles/Shadow.js +0 -49
  420. package/umd/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -12
  421. package/umd/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -12
  422. package/umd/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -12
  423. package/umd/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -12
  424. package/umd/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -12
  425. package/umd/Options/Interfaces/Particles/IShadow.js +0 -12
  426. package/umd/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -12
  427. package/umd/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -12
  428. /package/browser/{Types → Enums}/RangeType.js +0 -0
  429. /package/{esm/Types → cjs/Enums}/RangeType.js +0 -0
  430. /package/types/{Types → Enums}/RangeType.d.ts +0 -0
  431. /package/umd/{Types → Enums}/RangeType.js +0 -0
@@ -1,50 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rangeColorToRgb = rangeColorToRgb;
4
- exports.colorToRgb = colorToRgb;
5
- exports.colorToHsl = colorToHsl;
6
- exports.rangeColorToHsl = rangeColorToHsl;
7
- exports.rgbToHsl = rgbToHsl;
8
- exports.stringToAlpha = stringToAlpha;
9
- exports.stringToRgb = stringToRgb;
10
- exports.hslToRgb = hslToRgb;
11
- exports.hslaToRgba = hslaToRgba;
12
- exports.getRandomRgbColor = getRandomRgbColor;
13
- exports.getStyleFromRgb = getStyleFromRgb;
14
- exports.getStyleFromHsl = getStyleFromHsl;
15
- exports.colorMix = colorMix;
16
- exports.getLinkColor = getLinkColor;
17
- exports.getLinkRandomColor = getLinkRandomColor;
18
- exports.getHslFromAnimation = getHslFromAnimation;
19
- exports.getHslAnimationFromHsl = getHslAnimationFromHsl;
20
- exports.updateColorValue = updateColorValue;
21
- exports.updateColor = updateColor;
22
- const NumberUtils_js_1 = require("./NumberUtils.js");
23
- const Constants_js_1 = require("../Core/Utils/Constants.js");
24
- const TypeUtils_js_1 = require("./TypeUtils.js");
25
- const AnimationStatus_js_1 = require("../Enums/AnimationStatus.js");
26
- const Utils_js_1 = require("./Utils.js");
1
+ import { clamp, getRandom, getRandomInRange, getRangeMax, getRangeMin, getRangeValue, mix, randomInRangeValue, setRangeValue, } from "./MathUtils.js";
2
+ import { decayOffset, defaultLoops, defaultOpacity, defaultRgbMin, defaultTime, defaultVelocity, double, hMax, hMin, hPhase, half, identity, lMax, lMin, midColorValue, millisecondsToSeconds, percentDenominator, phaseNumerator, randomColorValue, rgbMax, sMax, sMin, sNormalizedOffset, sextuple, triple, } from "../Core/Utils/Constants.js";
3
+ import { isArray, isString } from "./TypeUtils.js";
4
+ import { AnimationStatus } from "../Enums/AnimationStatus.js";
5
+ import { itemFromArray } from "./Utils.js";
27
6
  function stringToRgba(engine, input) {
28
7
  if (!input) {
29
8
  return;
30
9
  }
31
10
  for (const manager of engine.colorManagers.values()) {
32
- if (input.startsWith(manager.stringPrefix)) {
11
+ if (manager.accepts(input)) {
33
12
  return manager.parseString(input);
34
13
  }
35
14
  }
15
+ return undefined;
36
16
  }
37
- function rangeColorToRgb(engine, input, index, useIndex = true) {
17
+ export function rangeColorToRgb(engine, input, index, useIndex = true) {
38
18
  if (!input) {
39
19
  return;
40
20
  }
41
- const color = (0, TypeUtils_js_1.isString)(input) ? { value: input } : input;
42
- if ((0, TypeUtils_js_1.isString)(color.value)) {
21
+ const color = isString(input) ? { value: input } : input;
22
+ if (isString(color.value)) {
43
23
  return colorToRgb(engine, color.value, index, useIndex);
44
24
  }
45
- if ((0, TypeUtils_js_1.isArray)(color.value)) {
25
+ if (isArray(color.value)) {
26
+ const value = itemFromArray(color.value, index, useIndex);
27
+ if (!value) {
28
+ return;
29
+ }
46
30
  return rangeColorToRgb(engine, {
47
- value: (0, Utils_js_1.itemFromArray)(color.value, index, useIndex),
31
+ value,
48
32
  });
49
33
  }
50
34
  for (const manager of engine.colorManagers.values()) {
@@ -53,18 +37,23 @@ function rangeColorToRgb(engine, input, index, useIndex = true) {
53
37
  return res;
54
38
  }
55
39
  }
40
+ return undefined;
56
41
  }
57
- function colorToRgb(engine, input, index, useIndex = true) {
42
+ export function colorToRgb(engine, input, index, useIndex = true) {
58
43
  if (!input) {
59
44
  return;
60
45
  }
61
- const color = (0, TypeUtils_js_1.isString)(input) ? { value: input } : input;
62
- if ((0, TypeUtils_js_1.isString)(color.value)) {
63
- return color.value === Constants_js_1.randomColorValue ? getRandomRgbColor() : stringToRgb(engine, color.value);
46
+ const color = isString(input) ? { value: input } : input;
47
+ if (isString(color.value)) {
48
+ return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(engine, color.value);
64
49
  }
65
- if ((0, TypeUtils_js_1.isArray)(color.value)) {
50
+ if (isArray(color.value)) {
51
+ const value = itemFromArray(color.value, index, useIndex);
52
+ if (!value) {
53
+ return;
54
+ }
66
55
  return colorToRgb(engine, {
67
- value: (0, Utils_js_1.itemFromArray)(color.value, index, useIndex),
56
+ value,
68
57
  });
69
58
  }
70
59
  for (const manager of engine.colorManagers.values()) {
@@ -73,49 +62,55 @@ function colorToRgb(engine, input, index, useIndex = true) {
73
62
  return res;
74
63
  }
75
64
  }
65
+ return undefined;
76
66
  }
77
- function colorToHsl(engine, color, index, useIndex = true) {
67
+ export function colorToHsl(engine, color, index, useIndex = true) {
78
68
  const rgb = colorToRgb(engine, color, index, useIndex);
79
69
  return rgb ? rgbToHsl(rgb) : undefined;
80
70
  }
81
- function rangeColorToHsl(engine, color, index, useIndex = true) {
71
+ export function rangeColorToHsl(engine, color, index, useIndex = true) {
82
72
  const rgb = rangeColorToRgb(engine, color, index, useIndex);
83
73
  return rgb ? rgbToHsl(rgb) : undefined;
84
74
  }
85
- function rgbToHsl(color) {
86
- const r1 = color.r / Constants_js_1.rgbMax, g1 = color.g / Constants_js_1.rgbMax, b1 = color.b / Constants_js_1.rgbMax, max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1), res = {
87
- h: Constants_js_1.hMin,
88
- l: (max + min) * Constants_js_1.half,
89
- s: Constants_js_1.sMin,
75
+ export function rgbToHsl(color) {
76
+ const r1 = color.r / rgbMax, g1 = color.g / rgbMax, b1 = color.b / rgbMax, max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1), res = {
77
+ h: hMin,
78
+ l: (max + min) * half,
79
+ s: sMin,
90
80
  };
91
81
  if (max !== min) {
92
- res.s = res.l < Constants_js_1.half ? (max - min) / (max + min) : (max - min) / (Constants_js_1.double - max - min);
93
- res.h =
94
- r1 === max
95
- ? (g1 - b1) / (max - min)
96
- : (res.h = g1 === max ? Constants_js_1.double + (b1 - r1) / (max - min) : Constants_js_1.double * Constants_js_1.double + (r1 - g1) / (max - min));
82
+ res.s = res.l < half ? (max - min) / (max + min) : (max - min) / (double - max - min);
83
+ if (r1 === max) {
84
+ res.h = (g1 - b1) / (max - min);
85
+ }
86
+ else if (g1 === max) {
87
+ res.h = double + (b1 - r1) / (max - min);
88
+ }
89
+ else {
90
+ res.h = double * double + (r1 - g1) / (max - min);
91
+ }
97
92
  }
98
- res.l *= Constants_js_1.lMax;
99
- res.s *= Constants_js_1.sMax;
100
- res.h *= Constants_js_1.hPhase;
101
- if (res.h < Constants_js_1.hMin) {
102
- res.h += Constants_js_1.hMax;
93
+ res.l *= lMax;
94
+ res.s *= sMax;
95
+ res.h *= hPhase;
96
+ if (res.h < hMin) {
97
+ res.h += hMax;
103
98
  }
104
- if (res.h >= Constants_js_1.hMax) {
105
- res.h -= Constants_js_1.hMax;
99
+ if (res.h >= hMax) {
100
+ res.h -= hMax;
106
101
  }
107
102
  return res;
108
103
  }
109
- function stringToAlpha(engine, input) {
104
+ export function stringToAlpha(engine, input) {
110
105
  return stringToRgba(engine, input)?.a;
111
106
  }
112
- function stringToRgb(engine, input) {
107
+ export function stringToRgb(engine, input) {
113
108
  return stringToRgba(engine, input);
114
109
  }
115
- function hslToRgb(hsl) {
116
- const h = ((hsl.h % Constants_js_1.hMax) + Constants_js_1.hMax) % Constants_js_1.hMax, s = Math.max(Constants_js_1.sMin, Math.min(Constants_js_1.sMax, hsl.s)), l = Math.max(Constants_js_1.lMin, Math.min(Constants_js_1.lMax, hsl.l)), hNormalized = h / Constants_js_1.hMax, sNormalized = s / Constants_js_1.sMax, lNormalized = l / Constants_js_1.lMax;
117
- if (s === Constants_js_1.sMin) {
118
- const grayscaleValue = Math.round(lNormalized * Constants_js_1.rgbFactor);
110
+ export function hslToRgb(hsl) {
111
+ const h = ((hsl.h % hMax) + hMax) % hMax, s = Math.max(sMin, Math.min(sMax, hsl.s)), l = Math.max(lMin, Math.min(lMax, hsl.l)), hNormalized = h / hMax, sNormalized = s / sMax, lNormalized = l / lMax;
112
+ if (s === sMin) {
113
+ const grayscaleValue = Math.round(lNormalized * rgbMax);
119
114
  return { r: grayscaleValue, g: grayscaleValue, b: grayscaleValue };
120
115
  }
121
116
  const channel = (temp1, temp2, temp3) => {
@@ -126,23 +121,23 @@ function hslToRgb(hsl) {
126
121
  if (temp3 > temp3Max) {
127
122
  temp3--;
128
123
  }
129
- if (temp3 * Constants_js_1.sextuple < temp3Max) {
130
- return temp1 + (temp2 - temp1) * Constants_js_1.sextuple * temp3;
124
+ if (temp3 * sextuple < temp3Max) {
125
+ return temp1 + (temp2 - temp1) * sextuple * temp3;
131
126
  }
132
- if (temp3 * Constants_js_1.double < temp3Max) {
127
+ if (temp3 * double < temp3Max) {
133
128
  return temp2;
134
129
  }
135
- if (temp3 * Constants_js_1.triple < temp3Max * Constants_js_1.double) {
136
- const temp3Offset = Constants_js_1.double / Constants_js_1.triple;
137
- return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * Constants_js_1.sextuple;
130
+ if (temp3 * triple < temp3Max * double) {
131
+ const temp3Offset = double / triple;
132
+ return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * sextuple;
138
133
  }
139
134
  return temp1;
140
- }, temp1 = lNormalized < Constants_js_1.half
141
- ? lNormalized * (Constants_js_1.sNormalizedOffset + sNormalized)
142
- : lNormalized + sNormalized - lNormalized * sNormalized, temp2 = Constants_js_1.double * lNormalized - temp1, phaseThird = Constants_js_1.phaseNumerator / Constants_js_1.triple, red = Math.min(Constants_js_1.rgbFactor, Constants_js_1.rgbFactor * channel(temp2, temp1, hNormalized + phaseThird)), green = Math.min(Constants_js_1.rgbFactor, Constants_js_1.rgbFactor * channel(temp2, temp1, hNormalized)), blue = Math.min(Constants_js_1.rgbFactor, Constants_js_1.rgbFactor * channel(temp2, temp1, hNormalized - phaseThird));
135
+ }, temp1 = lNormalized < half
136
+ ? lNormalized * (sNormalizedOffset + sNormalized)
137
+ : lNormalized + sNormalized - lNormalized * sNormalized, temp2 = double * lNormalized - temp1, phaseThird = phaseNumerator / triple, red = Math.min(rgbMax, rgbMax * channel(temp2, temp1, hNormalized + phaseThird)), green = Math.min(rgbMax, rgbMax * channel(temp2, temp1, hNormalized)), blue = Math.min(rgbMax, rgbMax * channel(temp2, temp1, hNormalized - phaseThird));
143
138
  return { r: Math.round(red), g: Math.round(green), b: Math.round(blue) };
144
139
  }
145
- function hslaToRgba(hsla) {
140
+ export function hslaToRgba(hsla) {
146
141
  const rgbResult = hslToRgb(hsla);
147
142
  return {
148
143
  a: hsla.a,
@@ -151,39 +146,51 @@ function hslaToRgba(hsla) {
151
146
  r: rgbResult.r,
152
147
  };
153
148
  }
154
- function getRandomRgbColor(min) {
155
- const fixedMin = min ?? Constants_js_1.defaultRgbMin, fixedMax = Constants_js_1.rgbMax + Constants_js_1.identity;
149
+ export function getRandomRgbColor(min) {
150
+ const fixedMin = min ?? defaultRgbMin, fixedMax = rgbMax + identity, getRgbInRangeValue = () => Math.floor(getRandomInRange(fixedMin, fixedMax));
156
151
  return {
157
- b: Math.floor((0, NumberUtils_js_1.randomInRange)((0, NumberUtils_js_1.setRangeValue)(fixedMin, fixedMax))),
158
- g: Math.floor((0, NumberUtils_js_1.randomInRange)((0, NumberUtils_js_1.setRangeValue)(fixedMin, fixedMax))),
159
- r: Math.floor((0, NumberUtils_js_1.randomInRange)((0, NumberUtils_js_1.setRangeValue)(fixedMin, fixedMax))),
152
+ b: getRgbInRangeValue(),
153
+ g: getRgbInRangeValue(),
154
+ r: getRgbInRangeValue(),
160
155
  };
161
156
  }
162
- function getStyleFromRgb(color, opacity) {
163
- return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity ?? Constants_js_1.defaultOpacity})`;
157
+ export function getStyleFromRgb(color, hdr, opacity) {
158
+ return hdr ? getHdrStyleFromRgb(color, opacity) : getSdrStyleFromRgb(color, opacity);
159
+ }
160
+ function getHdrStyleFromRgb(color, opacity) {
161
+ return `color(display-p3 ${(color.r / rgbMax).toString()} ${(color.g / rgbMax).toString()} ${(color.b / rgbMax).toString()} / ${(opacity ?? defaultOpacity).toString()})`;
162
+ }
163
+ function getSdrStyleFromRgb(color, opacity) {
164
+ return `rgba(${color.r.toString()}, ${color.g.toString()}, ${color.b.toString()}, ${(opacity ?? defaultOpacity).toString()})`;
164
165
  }
165
- function getStyleFromHsl(color, opacity) {
166
- return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity ?? Constants_js_1.defaultOpacity})`;
166
+ export function getStyleFromHsl(color, hdr, opacity) {
167
+ return hdr ? getHdrStyleFromHsl(color, opacity) : getSdrStyleFromHsl(color, opacity);
167
168
  }
168
- function colorMix(color1, color2, size1, size2) {
169
+ function getHdrStyleFromHsl(color, opacity) {
170
+ return getHdrStyleFromRgb(hslToRgb(color), opacity);
171
+ }
172
+ function getSdrStyleFromHsl(color, opacity) {
173
+ return `hsla(${color.h.toString()}, ${color.s.toString()}%, ${color.l.toString()}%, ${(opacity ?? defaultOpacity).toString()})`;
174
+ }
175
+ export function colorMix(color1, color2, size1, size2) {
169
176
  let rgb1 = color1, rgb2 = color2;
170
- if (rgb1.r === undefined) {
177
+ if (!Object.hasOwn(rgb1, "r")) {
171
178
  rgb1 = hslToRgb(color1);
172
179
  }
173
- if (rgb2.r === undefined) {
180
+ if (!Object.hasOwn(rgb2, "r")) {
174
181
  rgb2 = hslToRgb(color2);
175
182
  }
176
183
  return {
177
- b: (0, NumberUtils_js_1.mix)(rgb1.b, rgb2.b, size1, size2),
178
- g: (0, NumberUtils_js_1.mix)(rgb1.g, rgb2.g, size1, size2),
179
- r: (0, NumberUtils_js_1.mix)(rgb1.r, rgb2.r, size1, size2),
184
+ b: mix(rgb1.b, rgb2.b, size1, size2),
185
+ g: mix(rgb1.g, rgb2.g, size1, size2),
186
+ r: mix(rgb1.r, rgb2.r, size1, size2),
180
187
  };
181
188
  }
182
- function getLinkColor(p1, p2, linkColor) {
183
- if (linkColor === Constants_js_1.randomColorValue) {
189
+ export function getLinkColor(p1, p2, linkColor) {
190
+ if (linkColor === randomColorValue) {
184
191
  return getRandomRgbColor();
185
192
  }
186
- else if (linkColor === Constants_js_1.midColorValue) {
193
+ else if (linkColor === midColorValue) {
187
194
  const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(), destColor = p2?.getFillColor() ?? p2?.getStrokeColor();
188
195
  if (sourceColor && destColor && p2) {
189
196
  return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());
@@ -198,22 +205,23 @@ function getLinkColor(p1, p2, linkColor) {
198
205
  else {
199
206
  return linkColor;
200
207
  }
208
+ return undefined;
201
209
  }
202
- function getLinkRandomColor(engine, optColor, blink, consent) {
203
- const color = (0, TypeUtils_js_1.isString)(optColor) ? optColor : optColor.value;
204
- if (color === Constants_js_1.randomColorValue) {
210
+ export function getLinkRandomColor(engine, optColor, blink, consent) {
211
+ const color = isString(optColor) ? optColor : optColor.value;
212
+ if (color === randomColorValue) {
205
213
  if (consent) {
206
214
  return rangeColorToRgb(engine, {
207
215
  value: color,
208
216
  });
209
217
  }
210
218
  if (blink) {
211
- return Constants_js_1.randomColorValue;
219
+ return randomColorValue;
212
220
  }
213
- return Constants_js_1.midColorValue;
221
+ return midColorValue;
214
222
  }
215
- else if (color === Constants_js_1.midColorValue) {
216
- return Constants_js_1.midColorValue;
223
+ else if (color === midColorValue) {
224
+ return midColorValue;
217
225
  }
218
226
  else {
219
227
  return rangeColorToRgb(engine, {
@@ -221,7 +229,7 @@ function getLinkRandomColor(engine, optColor, blink, consent) {
221
229
  });
222
230
  }
223
231
  }
224
- function getHslFromAnimation(animation) {
232
+ export function getHslFromAnimation(animation) {
225
233
  return animation !== undefined
226
234
  ? {
227
235
  h: animation.h.value,
@@ -230,7 +238,7 @@ function getHslFromAnimation(animation) {
230
238
  }
231
239
  : undefined;
232
240
  }
233
- function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {
241
+ export function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {
234
242
  const resColor = {
235
243
  h: {
236
244
  enable: false,
@@ -255,50 +263,45 @@ function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {
255
263
  function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
256
264
  colorValue.enable = colorAnimation.enable;
257
265
  if (colorValue.enable) {
258
- colorValue.velocity = ((0, NumberUtils_js_1.getRangeValue)(colorAnimation.speed) / Constants_js_1.percentDenominator) * reduceFactor;
259
- colorValue.decay = Constants_js_1.decayOffset - (0, NumberUtils_js_1.getRangeValue)(colorAnimation.decay);
260
- colorValue.status = AnimationStatus_js_1.AnimationStatus.increasing;
261
- colorValue.loops = Constants_js_1.defaultLoops;
262
- colorValue.maxLoops = (0, NumberUtils_js_1.getRangeValue)(colorAnimation.count);
263
- colorValue.time = Constants_js_1.defaultTime;
264
- colorValue.delayTime = (0, NumberUtils_js_1.getRangeValue)(colorAnimation.delay) * Constants_js_1.millisecondsToSeconds;
266
+ colorValue.velocity = (getRangeValue(colorAnimation.speed) / percentDenominator) * reduceFactor;
267
+ colorValue.decay = decayOffset - getRangeValue(colorAnimation.decay);
268
+ colorValue.status = AnimationStatus.increasing;
269
+ colorValue.loops = defaultLoops;
270
+ colorValue.maxLoops = getRangeValue(colorAnimation.count);
271
+ colorValue.time = defaultTime;
272
+ colorValue.delayTime = getRangeValue(colorAnimation.delay) * millisecondsToSeconds;
265
273
  if (!colorAnimation.sync) {
266
- colorValue.velocity *= (0, NumberUtils_js_1.getRandom)();
267
- colorValue.value *= (0, NumberUtils_js_1.getRandom)();
274
+ colorValue.velocity *= getRandom();
275
+ colorValue.value *= getRandom();
268
276
  }
269
277
  colorValue.initialValue = colorValue.value;
270
- colorValue.offset = (0, NumberUtils_js_1.setRangeValue)(colorAnimation.offset);
278
+ colorValue.offset = setRangeValue(colorAnimation.offset);
271
279
  }
272
280
  else {
273
- colorValue.velocity = Constants_js_1.defaultVelocity;
281
+ colorValue.velocity = defaultVelocity;
274
282
  }
275
283
  }
276
- function updateColorValue(data, range, decrease, delta) {
284
+ export function updateColorValue(data, range, decrease, delta) {
277
285
  const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minOffset = 0, velocityFactor = 3.6;
278
- if (!data ||
279
- !data.enable ||
286
+ if (!data.enable ||
280
287
  ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops))) {
281
288
  return;
282
289
  }
283
- if (!data.time) {
284
- data.time = 0;
285
- }
290
+ data.time ??= 0;
286
291
  if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {
287
292
  data.time += delta.value;
288
293
  }
289
294
  if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {
290
295
  return;
291
296
  }
292
- const offset = data.offset ? (0, NumberUtils_js_1.randomInRange)(data.offset) : minOffset, velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor, decay = data.decay ?? identity, max = (0, NumberUtils_js_1.getRangeMax)(range), min = (0, NumberUtils_js_1.getRangeMin)(range);
293
- if (!decrease || data.status === AnimationStatus_js_1.AnimationStatus.increasing) {
297
+ const offset = data.offset ? randomInRangeValue(data.offset) : minOffset, velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor, decay = data.decay ?? identity, max = getRangeMax(range), min = getRangeMin(range);
298
+ if (!decrease || data.status === AnimationStatus.increasing) {
294
299
  data.value += velocity;
295
300
  if (data.value > max) {
296
- if (!data.loops) {
297
- data.loops = 0;
298
- }
301
+ data.loops ??= 0;
299
302
  data.loops++;
300
303
  if (decrease) {
301
- data.status = AnimationStatus_js_1.AnimationStatus.decreasing;
304
+ data.status = AnimationStatus.decreasing;
302
305
  }
303
306
  else {
304
307
  data.value -= max;
@@ -309,34 +312,26 @@ function updateColorValue(data, range, decrease, delta) {
309
312
  data.value -= velocity;
310
313
  const minValue = 0;
311
314
  if (data.value < minValue) {
312
- if (!data.loops) {
313
- data.loops = 0;
314
- }
315
+ data.loops ??= 0;
315
316
  data.loops++;
316
- data.status = AnimationStatus_js_1.AnimationStatus.increasing;
317
+ data.status = AnimationStatus.increasing;
317
318
  }
318
319
  }
319
320
  if (data.velocity && decay !== identity) {
320
321
  data.velocity *= decay;
321
322
  }
322
- data.value = (0, NumberUtils_js_1.clamp)(data.value, min, max);
323
+ data.value = clamp(data.value, min, max);
323
324
  }
324
- function updateColor(color, delta) {
325
+ export function updateColor(color, delta) {
325
326
  if (!color) {
326
327
  return;
327
328
  }
328
329
  const { h, s, l } = color, ranges = {
329
- h: { min: 0, max: 360 },
330
- s: { min: 0, max: 100 },
331
- l: { min: 0, max: 100 },
330
+ h: { min: hMin, max: hMax },
331
+ s: { min: sMin, max: sMax },
332
+ l: { min: lMin, max: lMax },
332
333
  };
333
- if (h) {
334
- updateColorValue(h, ranges.h, false, delta);
335
- }
336
- if (s) {
337
- updateColorValue(s, ranges.s, true, delta);
338
- }
339
- if (l) {
340
- updateColorValue(l, ranges.l, true, delta);
341
- }
334
+ updateColorValue(h, ranges.h, false, delta);
335
+ updateColorValue(s, ranges.s, true, delta);
336
+ updateColorValue(l, ranges.l, true, delta);
342
337
  }
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventDispatcher = void 0;
4
- const Constants_js_1 = require("../Core/Utils/Constants.js");
5
- class EventDispatcher {
1
+ import { deleteCount, minIndex } from "../Core/Utils/Constants.js";
2
+ export class EventDispatcher {
6
3
  constructor() {
7
4
  this._listeners = new Map();
8
5
  }
@@ -17,7 +14,9 @@ class EventDispatcher {
17
14
  }
18
15
  dispatchEvent(type, args) {
19
16
  const listeners = this._listeners.get(type);
20
- listeners?.forEach(handler => handler(args));
17
+ listeners?.forEach(handler => {
18
+ handler(args);
19
+ });
21
20
  }
22
21
  hasEventListener(type) {
23
22
  return !!this._listeners.get(type);
@@ -36,15 +35,14 @@ class EventDispatcher {
36
35
  return;
37
36
  }
38
37
  const length = arr.length, idx = arr.indexOf(listener);
39
- if (idx < Constants_js_1.minIndex) {
38
+ if (idx < minIndex) {
40
39
  return;
41
40
  }
42
- if (length === Constants_js_1.deleteCount) {
41
+ if (length === deleteCount) {
43
42
  this._listeners.delete(type);
44
43
  }
45
44
  else {
46
- arr.splice(idx, Constants_js_1.deleteCount);
45
+ arr.splice(idx, deleteCount);
47
46
  }
48
47
  }
49
48
  }
50
- exports.EventDispatcher = EventDispatcher;
@@ -0,0 +1,22 @@
1
+ const errorPrefix = "tsParticles - Error";
2
+ const _logger = {
3
+ debug: console.debug,
4
+ error: (message, optionalParams) => {
5
+ console.error(`${errorPrefix} - ${message}`, optionalParams);
6
+ },
7
+ info: console.info,
8
+ log: console.log,
9
+ verbose: console.log,
10
+ warning: console.warn,
11
+ };
12
+ export function setLogger(logger) {
13
+ _logger.debug = logger.debug;
14
+ _logger.error = logger.error;
15
+ _logger.info = logger.info;
16
+ _logger.log = logger.log;
17
+ _logger.verbose = logger.verbose;
18
+ _logger.warning = logger.warning;
19
+ }
20
+ export function getLogger() {
21
+ return _logger;
22
+ }
@@ -2,10 +2,13 @@ import { MoveDirection } from "../Enums/Directions/MoveDirection.js";
2
2
  import { double, doublePI, empty, half, percentDenominator, quarter, threeQuarter } from "../Core/Utils/Constants.js";
3
3
  import { Vector } from "../Core/Utils/Vectors.js";
4
4
  import { isNumber } from "./TypeUtils.js";
5
+ const piDeg = 180, degToRadFactor = Math.PI / piDeg;
5
6
  let _random = Math.random;
6
7
  const _animationLoop = {
7
8
  nextFrame: (cb) => requestAnimationFrame(cb),
8
- cancel: (idx) => cancelAnimationFrame(idx),
9
+ cancel: (idx) => {
10
+ cancelAnimationFrame(idx);
11
+ },
9
12
  };
10
13
  export function setRandom(rnd = Math.random) {
11
14
  _random = rnd;
@@ -14,9 +17,14 @@ export function getRandom() {
14
17
  const min = 0, max = 1;
15
18
  return clamp(_random(), min, max - Number.EPSILON);
16
19
  }
20
+ export function getRandomInRange(min, max) {
21
+ return getRandom() * (max - min) + min;
22
+ }
17
23
  export function setAnimationFunctions(nextFrame, cancel) {
18
24
  _animationLoop.nextFrame = (callback) => nextFrame(callback);
19
- _animationLoop.cancel = (handle) => cancel(handle);
25
+ _animationLoop.cancel = (handle) => {
26
+ cancel(handle);
27
+ };
20
28
  }
21
29
  export function animate(fn) {
22
30
  return _animationLoop.nextFrame(fn);
@@ -30,16 +38,16 @@ export function clamp(num, min, max) {
30
38
  export function mix(comp1, comp2, weight1, weight2) {
31
39
  return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));
32
40
  }
33
- export function randomInRange(r) {
41
+ export function randomInRangeValue(r) {
34
42
  const max = getRangeMax(r), minOffset = 0;
35
43
  let min = getRangeMin(r);
36
44
  if (max === min) {
37
45
  min = minOffset;
38
46
  }
39
- return getRandom() * (max - min) + min;
47
+ return getRandomInRange(min, max);
40
48
  }
41
49
  export function getRangeValue(value) {
42
- return isNumber(value) ? value : randomInRange(value);
50
+ return isNumber(value) ? value : randomInRangeValue(value);
43
51
  }
44
52
  export function getRangeMin(value) {
45
53
  return isNumber(value) ? value : value.min;
@@ -67,8 +75,7 @@ export function getDistance(pointA, pointB) {
67
75
  return getDistances(pointA, pointB).distance;
68
76
  }
69
77
  export function degToRad(degrees) {
70
- const PIDeg = 180;
71
- return (degrees * Math.PI) / PIDeg;
78
+ return degrees * degToRadFactor;
72
79
  }
73
80
  export function getParticleDirectionAngle(direction, position, center) {
74
81
  if (isNumber(direction)) {
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadOptions = loadOptions;
4
- exports.loadParticlesOptions = loadParticlesOptions;
5
- const ParticlesOptions_js_1 = require("../Options/Classes/Particles/ParticlesOptions.js");
6
- function loadOptions(options, ...sourceOptionsArr) {
1
+ import { ParticlesOptions } from "../Options/Classes/Particles/ParticlesOptions.js";
2
+ export function loadOptions(options, ...sourceOptionsArr) {
7
3
  for (const sourceOptions of sourceOptionsArr) {
8
4
  options.load(sourceOptions);
9
5
  }
10
6
  }
11
- function loadParticlesOptions(engine, container, ...sourceOptionsArr) {
12
- const options = new ParticlesOptions_js_1.ParticlesOptions(engine, container);
7
+ export function loadParticlesOptions(engine, container, ...sourceOptionsArr) {
8
+ const options = new ParticlesOptions(engine, container);
13
9
  loadOptions(options, ...sourceOptionsArr);
14
10
  return options;
15
11
  }
@@ -1,30 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isBoolean = isBoolean;
4
- exports.isString = isString;
5
- exports.isNumber = isNumber;
6
- exports.isFunction = isFunction;
7
- exports.isObject = isObject;
8
- exports.isArray = isArray;
9
- exports.isNull = isNull;
10
- function isBoolean(arg) {
1
+ export function isBoolean(arg) {
11
2
  return typeof arg === "boolean";
12
3
  }
13
- function isString(arg) {
4
+ export function isString(arg) {
14
5
  return typeof arg === "string";
15
6
  }
16
- function isNumber(arg) {
7
+ export function isNumber(arg) {
17
8
  return typeof arg === "number";
18
9
  }
19
- function isFunction(arg) {
10
+ export function isFunction(arg) {
20
11
  return typeof arg === "function";
21
12
  }
22
- function isObject(arg) {
13
+ export function isObject(arg) {
23
14
  return typeof arg === "object" && arg !== null;
24
15
  }
25
- function isArray(arg) {
16
+ export function isArray(arg) {
26
17
  return Array.isArray(arg);
27
18
  }
28
- function isNull(arg) {
19
+ export function isNull(arg) {
29
20
  return arg === null || arg === undefined;
30
21
  }