@tsparticles/engine 3.9.1 → 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,65 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFullScreenStyle = void 0;
4
- exports.setLogger = setLogger;
5
- exports.getLogger = getLogger;
6
- exports.isSsr = isSsr;
7
- exports.hasMatchMedia = hasMatchMedia;
8
- exports.safeMatchMedia = safeMatchMedia;
9
- exports.safeIntersectionObserver = safeIntersectionObserver;
10
- exports.safeMutationObserver = safeMutationObserver;
11
- exports.isInArray = isInArray;
12
- exports.loadFont = loadFont;
13
- exports.arrayRandomIndex = arrayRandomIndex;
14
- exports.itemFromArray = itemFromArray;
15
- exports.isPointInside = isPointInside;
16
- exports.areBoundsInside = areBoundsInside;
17
- exports.calculateBounds = calculateBounds;
18
- exports.deepExtend = deepExtend;
19
- exports.isDivModeEnabled = isDivModeEnabled;
20
- exports.divModeExecute = divModeExecute;
21
- exports.singleDivModeExecute = singleDivModeExecute;
22
- exports.divMode = divMode;
23
- exports.circleBounceDataFromParticle = circleBounceDataFromParticle;
24
- exports.circleBounce = circleBounce;
25
- exports.rectBounce = rectBounce;
26
- exports.executeOnSingleOrMultiple = executeOnSingleOrMultiple;
27
- exports.itemFromSingleOrMultiple = itemFromSingleOrMultiple;
28
- exports.findItemFromSingleOrMultiple = findItemFromSingleOrMultiple;
29
- exports.initParticleNumericAnimationValue = initParticleNumericAnimationValue;
30
- exports.getPosition = getPosition;
31
- exports.getSize = getSize;
32
- exports.updateAnimation = updateAnimation;
33
- exports.cloneStyle = cloneStyle;
34
- const NumberUtils_js_1 = require("./NumberUtils.js");
35
- const Constants_js_1 = require("../Core/Utils/Constants.js");
36
- const TypeUtils_js_1 = require("./TypeUtils.js");
37
- const AnimationMode_js_1 = require("../Enums/Modes/AnimationMode.js");
38
- const AnimationStatus_js_1 = require("../Enums/AnimationStatus.js");
39
- const DestroyType_js_1 = require("../Enums/Types/DestroyType.js");
40
- const OutModeDirection_js_1 = require("../Enums/Directions/OutModeDirection.js");
41
- const PixelMode_js_1 = require("../Enums/Modes/PixelMode.js");
42
- const StartValueType_js_1 = require("../Enums/Types/StartValueType.js");
43
- const Vectors_js_1 = require("../Core/Utils/Vectors.js");
44
- const _logger = {
45
- debug: console.debug,
46
- error: console.error,
47
- info: console.info,
48
- log: console.log,
49
- verbose: console.log,
50
- warning: console.warn,
51
- };
52
- function setLogger(logger) {
53
- _logger.debug = logger.debug || _logger.debug;
54
- _logger.error = logger.error || _logger.error;
55
- _logger.info = logger.info || _logger.info;
56
- _logger.log = logger.log || _logger.log;
57
- _logger.verbose = logger.verbose || _logger.verbose;
58
- _logger.warning = logger.warning || _logger.warning;
59
- }
60
- function getLogger() {
61
- return _logger;
62
- }
1
+ import { clamp, collisionVelocity, getDistances, getRandom, getRangeMax, getRangeMin, getRangeValue, randomInRangeValue, } from "./MathUtils.js";
2
+ import { half, millisecondsToSeconds, percentDenominator } from "../Core/Utils/Constants.js";
3
+ import { isArray, isNull, isObject } from "./TypeUtils.js";
4
+ import { AnimationMode } from "../Enums/Modes/AnimationMode.js";
5
+ import { AnimationStatus } from "../Enums/AnimationStatus.js";
6
+ import { DestroyType } from "../Enums/Types/DestroyType.js";
7
+ import { OutModeDirection } from "../Enums/Directions/OutModeDirection.js";
8
+ import { PixelMode } from "../Enums/Modes/PixelMode.js";
9
+ import { StartValueType } from "../Enums/Types/StartValueType.js";
10
+ import { Vector } from "../Core/Utils/Vectors.js";
11
+ const minRadius = 0;
63
12
  function memoize(fn) {
64
13
  const cache = new Map();
65
14
  return (...args) => {
@@ -72,89 +21,72 @@ function memoize(fn) {
72
21
  return result;
73
22
  };
74
23
  }
75
- function rectSideBounce(data) {
76
- const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data;
77
- if (pOtherSide.min < rectOtherSide.min ||
78
- pOtherSide.min > rectOtherSide.max ||
79
- pOtherSide.max < rectOtherSide.min ||
80
- pOtherSide.max > rectOtherSide.max) {
81
- return res;
82
- }
83
- if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) * Constants_js_1.half && velocity > Constants_js_1.minVelocity) ||
84
- (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) * Constants_js_1.half && velocity < Constants_js_1.minVelocity)) {
85
- res.velocity = velocity * -factor;
86
- res.bounced = true;
87
- }
88
- return res;
89
- }
90
24
  function checkSelector(element, selectors) {
91
25
  const res = executeOnSingleOrMultiple(selectors, selector => {
92
26
  return element.matches(selector);
93
27
  });
94
- return (0, TypeUtils_js_1.isArray)(res) ? res.some(t => t) : res;
28
+ return isArray(res) ? res.some(t => t) : res;
95
29
  }
96
- function isSsr() {
97
- return typeof window === "undefined" || !window || typeof window.document === "undefined" || !window.document;
30
+ export function hasMatchMedia() {
31
+ return typeof matchMedia !== "undefined";
98
32
  }
99
- function hasMatchMedia() {
100
- return !isSsr() && typeof matchMedia !== "undefined";
33
+ export function safeDocument() {
34
+ return globalThis.document;
101
35
  }
102
- function safeMatchMedia(query) {
36
+ export function safeMatchMedia(query) {
103
37
  if (!hasMatchMedia()) {
104
38
  return;
105
39
  }
106
40
  return matchMedia(query);
107
41
  }
108
- function safeIntersectionObserver(callback) {
109
- if (isSsr() || typeof IntersectionObserver === "undefined") {
42
+ export function safeIntersectionObserver(callback) {
43
+ if (typeof IntersectionObserver === "undefined") {
110
44
  return;
111
45
  }
112
46
  return new IntersectionObserver(callback);
113
47
  }
114
- function safeMutationObserver(callback) {
115
- if (isSsr() || typeof MutationObserver === "undefined") {
48
+ export function safeMutationObserver(callback) {
49
+ if (typeof MutationObserver === "undefined") {
116
50
  return;
117
51
  }
118
52
  return new MutationObserver(callback);
119
53
  }
120
- function isInArray(value, array) {
121
- const invalidIndex = -1;
122
- return value === array || ((0, TypeUtils_js_1.isArray)(array) && array.indexOf(value) > invalidIndex);
54
+ export function isInArray(value, array) {
55
+ return value === array || (isArray(array) && array.includes(value));
123
56
  }
124
- async function loadFont(font, weight) {
57
+ export async function loadFont(font, weight) {
125
58
  try {
126
- await document.fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`);
59
+ await safeDocument().fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`);
127
60
  }
128
61
  catch {
129
62
  }
130
63
  }
131
- function arrayRandomIndex(array) {
132
- return Math.floor((0, NumberUtils_js_1.getRandom)() * array.length);
64
+ export function arrayRandomIndex(array) {
65
+ return Math.floor(getRandom() * array.length);
133
66
  }
134
- function itemFromArray(array, index, useIndex = true) {
67
+ export function itemFromArray(array, index, useIndex = true) {
135
68
  return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];
136
69
  }
137
- function isPointInside(point, size, offset, radius, direction) {
138
- const minRadius = 0;
70
+ export function isPointInside(point, size, offset, radius, direction) {
139
71
  return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);
140
72
  }
141
- function areBoundsInside(bounds, size, offset, direction) {
73
+ export function areBoundsInside(bounds, size, offset, direction) {
142
74
  let inside = true;
143
- if (!direction || direction === OutModeDirection_js_1.OutModeDirection.bottom) {
75
+ if (!direction || direction === OutModeDirection.bottom) {
144
76
  inside = bounds.top < size.height + offset.x;
145
77
  }
146
- if (inside && (!direction || direction === OutModeDirection_js_1.OutModeDirection.left)) {
78
+ if (inside && (!direction || direction === OutModeDirection.left)) {
147
79
  inside = bounds.right > offset.x;
148
80
  }
149
- if (inside && (!direction || direction === OutModeDirection_js_1.OutModeDirection.right)) {
81
+ if (inside && (!direction || direction === OutModeDirection.right)) {
150
82
  inside = bounds.left < size.width + offset.y;
151
83
  }
152
- if (inside && (!direction || direction === OutModeDirection_js_1.OutModeDirection.top)) {
84
+ if (inside && (!direction || direction === OutModeDirection.top)) {
153
85
  inside = bounds.bottom > offset.y;
154
86
  }
155
87
  return inside;
156
88
  }
157
- function calculateBounds(point, radius) {
89
+ export function calculateBounds(point, radius) {
158
90
  return {
159
91
  bottom: point.y + radius,
160
92
  left: point.x - radius,
@@ -162,20 +94,20 @@ function calculateBounds(point, radius) {
162
94
  top: point.y - radius,
163
95
  };
164
96
  }
165
- function deepExtend(destination, ...sources) {
97
+ export function deepExtend(destination, ...sources) {
166
98
  for (const source of sources) {
167
99
  if (source === undefined || source === null) {
168
100
  continue;
169
101
  }
170
- if (!(0, TypeUtils_js_1.isObject)(source)) {
102
+ if (!isObject(source)) {
171
103
  destination = source;
172
104
  continue;
173
105
  }
174
106
  const sourceIsArray = Array.isArray(source);
175
- if (sourceIsArray && ((0, TypeUtils_js_1.isObject)(destination) || !destination || !Array.isArray(destination))) {
107
+ if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {
176
108
  destination = [];
177
109
  }
178
- else if (!sourceIsArray && ((0, TypeUtils_js_1.isObject)(destination) || !destination || Array.isArray(destination))) {
110
+ else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {
179
111
  destination = {};
180
112
  }
181
113
  for (const key in source) {
@@ -184,17 +116,17 @@ function deepExtend(destination, ...sources) {
184
116
  }
185
117
  const sourceDict = source, value = sourceDict[key], destDict = destination;
186
118
  destDict[key] =
187
- (0, TypeUtils_js_1.isObject)(value) && Array.isArray(value)
119
+ isObject(value) && Array.isArray(value)
188
120
  ? value.map(v => deepExtend(destDict[key], v))
189
121
  : deepExtend(destDict[key], value);
190
122
  }
191
123
  }
192
124
  return destination;
193
125
  }
194
- function isDivModeEnabled(mode, divs) {
126
+ export function isDivModeEnabled(mode, divs) {
195
127
  return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));
196
128
  }
197
- function divModeExecute(mode, divs, callback) {
129
+ export function divModeExecute(mode, divs, callback) {
198
130
  executeOnSingleOrMultiple(divs, div => {
199
131
  const divMode = div.mode, divEnabled = div.enable;
200
132
  if (divEnabled && isInArray(mode, divMode)) {
@@ -202,13 +134,13 @@ function divModeExecute(mode, divs, callback) {
202
134
  }
203
135
  });
204
136
  }
205
- function singleDivModeExecute(div, callback) {
137
+ export function singleDivModeExecute(div, callback) {
206
138
  const selectors = div.selectors;
207
139
  executeOnSingleOrMultiple(selectors, selector => {
208
140
  callback(selector, div);
209
141
  });
210
142
  }
211
- function divMode(divs, element) {
143
+ export function divMode(divs, element) {
212
144
  if (!element || !divs) {
213
145
  return;
214
146
  }
@@ -216,141 +148,83 @@ function divMode(divs, element) {
216
148
  return checkSelector(element, div.selectors);
217
149
  });
218
150
  }
219
- function circleBounceDataFromParticle(p) {
151
+ export function circleBounceDataFromParticle(p) {
220
152
  return {
221
153
  position: p.getPosition(),
222
154
  radius: p.getRadius(),
223
155
  mass: p.getMass(),
224
156
  velocity: p.velocity,
225
- factor: Vectors_js_1.Vector.create((0, NumberUtils_js_1.getRangeValue)(p.options.bounce.horizontal.value), (0, NumberUtils_js_1.getRangeValue)(p.options.bounce.vertical.value)),
157
+ factor: Vector.create(getRangeValue(p.options.bounce.horizontal.value), getRangeValue(p.options.bounce.vertical.value)),
226
158
  };
227
159
  }
228
- function circleBounce(p1, p2) {
229
- const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = (0, NumberUtils_js_1.getDistances)(pos2, pos1), minimumDistance = 0;
160
+ export function circleBounce(p1, p2) {
161
+ const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1), minimumDistance = 0;
230
162
  if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {
231
163
  return;
232
164
  }
233
- const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = (0, NumberUtils_js_1.collisionVelocity)(u1, u2, m1, m2), v2 = (0, NumberUtils_js_1.collisionVelocity)(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);
165
+ const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);
234
166
  p1.velocity.x = vFinal1.x * p1.factor.x;
235
167
  p1.velocity.y = vFinal1.y * p1.factor.y;
236
168
  p2.velocity.x = vFinal2.x * p2.factor.x;
237
169
  p2.velocity.y = vFinal2.y * p2.factor.y;
238
170
  }
239
- function rectBounce(particle, divBounds) {
240
- const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), bounceOptions = particle.options.bounce, resH = rectSideBounce({
241
- pSide: {
242
- min: bounds.left,
243
- max: bounds.right,
244
- },
245
- pOtherSide: {
246
- min: bounds.top,
247
- max: bounds.bottom,
248
- },
249
- rectSide: {
250
- min: divBounds.left,
251
- max: divBounds.right,
252
- },
253
- rectOtherSide: {
254
- min: divBounds.top,
255
- max: divBounds.bottom,
256
- },
257
- velocity: particle.velocity.x,
258
- factor: (0, NumberUtils_js_1.getRangeValue)(bounceOptions.horizontal.value),
259
- });
260
- if (resH.bounced) {
261
- if (resH.velocity !== undefined) {
262
- particle.velocity.x = resH.velocity;
263
- }
264
- if (resH.position !== undefined) {
265
- particle.position.x = resH.position;
266
- }
267
- }
268
- const resV = rectSideBounce({
269
- pSide: {
270
- min: bounds.top,
271
- max: bounds.bottom,
272
- },
273
- pOtherSide: {
274
- min: bounds.left,
275
- max: bounds.right,
276
- },
277
- rectSide: {
278
- min: divBounds.top,
279
- max: divBounds.bottom,
280
- },
281
- rectOtherSide: {
282
- min: divBounds.left,
283
- max: divBounds.right,
284
- },
285
- velocity: particle.velocity.y,
286
- factor: (0, NumberUtils_js_1.getRangeValue)(bounceOptions.vertical.value),
287
- });
288
- if (resV.bounced) {
289
- if (resV.velocity !== undefined) {
290
- particle.velocity.y = resV.velocity;
291
- }
292
- if (resV.position !== undefined) {
293
- particle.position.y = resV.position;
294
- }
295
- }
296
- }
297
- function executeOnSingleOrMultiple(obj, callback) {
171
+ export function executeOnSingleOrMultiple(obj, callback) {
298
172
  const defaultIndex = 0;
299
- return (0, TypeUtils_js_1.isArray)(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);
173
+ return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);
300
174
  }
301
- function itemFromSingleOrMultiple(obj, index, useIndex) {
302
- return (0, TypeUtils_js_1.isArray)(obj) ? itemFromArray(obj, index, useIndex) : obj;
175
+ export function itemFromSingleOrMultiple(obj, index, useIndex) {
176
+ return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;
303
177
  }
304
- function findItemFromSingleOrMultiple(obj, callback) {
305
- if ((0, TypeUtils_js_1.isArray)(obj)) {
178
+ export function findItemFromSingleOrMultiple(obj, callback) {
179
+ if (isArray(obj)) {
306
180
  return obj.find((t, index) => callback(t, index));
307
181
  }
308
182
  const defaultIndex = 0;
309
183
  return callback(obj, defaultIndex) ? obj : undefined;
310
184
  }
311
- function initParticleNumericAnimationValue(options, pxRatio) {
185
+ export function initParticleNumericAnimationValue(options, pxRatio) {
312
186
  const valueRange = options.value, animationOptions = options.animation, res = {
313
- delayTime: (0, NumberUtils_js_1.getRangeValue)(animationOptions.delay) * Constants_js_1.millisecondsToSeconds,
187
+ delayTime: getRangeValue(animationOptions.delay) * millisecondsToSeconds,
314
188
  enable: animationOptions.enable,
315
- value: (0, NumberUtils_js_1.getRangeValue)(options.value) * pxRatio,
316
- max: (0, NumberUtils_js_1.getRangeMax)(valueRange) * pxRatio,
317
- min: (0, NumberUtils_js_1.getRangeMin)(valueRange) * pxRatio,
189
+ value: getRangeValue(options.value) * pxRatio,
190
+ max: getRangeMax(valueRange) * pxRatio,
191
+ min: getRangeMin(valueRange) * pxRatio,
318
192
  loops: 0,
319
- maxLoops: (0, NumberUtils_js_1.getRangeValue)(animationOptions.count),
193
+ maxLoops: getRangeValue(animationOptions.count),
320
194
  time: 0,
321
195
  }, decayOffset = 1;
322
196
  if (animationOptions.enable) {
323
- res.decay = decayOffset - (0, NumberUtils_js_1.getRangeValue)(animationOptions.decay);
197
+ res.decay = decayOffset - getRangeValue(animationOptions.decay);
324
198
  switch (animationOptions.mode) {
325
- case AnimationMode_js_1.AnimationMode.increase:
326
- res.status = AnimationStatus_js_1.AnimationStatus.increasing;
199
+ case AnimationMode.increase:
200
+ res.status = AnimationStatus.increasing;
327
201
  break;
328
- case AnimationMode_js_1.AnimationMode.decrease:
329
- res.status = AnimationStatus_js_1.AnimationStatus.decreasing;
202
+ case AnimationMode.decrease:
203
+ res.status = AnimationStatus.decreasing;
330
204
  break;
331
- case AnimationMode_js_1.AnimationMode.random:
332
- res.status = (0, NumberUtils_js_1.getRandom)() >= Constants_js_1.half ? AnimationStatus_js_1.AnimationStatus.increasing : AnimationStatus_js_1.AnimationStatus.decreasing;
205
+ case AnimationMode.random:
206
+ res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;
333
207
  break;
334
208
  }
335
- const autoStatus = animationOptions.mode === AnimationMode_js_1.AnimationMode.auto;
209
+ const autoStatus = animationOptions.mode === AnimationMode.auto;
336
210
  switch (animationOptions.startValue) {
337
- case StartValueType_js_1.StartValueType.min:
211
+ case StartValueType.min:
338
212
  res.value = res.min;
339
213
  if (autoStatus) {
340
- res.status = AnimationStatus_js_1.AnimationStatus.increasing;
214
+ res.status = AnimationStatus.increasing;
341
215
  }
342
216
  break;
343
- case StartValueType_js_1.StartValueType.max:
217
+ case StartValueType.max:
344
218
  res.value = res.max;
345
219
  if (autoStatus) {
346
- res.status = AnimationStatus_js_1.AnimationStatus.decreasing;
220
+ res.status = AnimationStatus.decreasing;
347
221
  }
348
222
  break;
349
- case StartValueType_js_1.StartValueType.random:
223
+ case StartValueType.random:
350
224
  default:
351
- res.value = (0, NumberUtils_js_1.randomInRange)(res);
225
+ res.value = randomInRangeValue(res);
352
226
  if (autoStatus) {
353
- res.status = (0, NumberUtils_js_1.getRandom)() >= Constants_js_1.half ? AnimationStatus_js_1.AnimationStatus.increasing : AnimationStatus_js_1.AnimationStatus.decreasing;
227
+ res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;
354
228
  }
355
229
  break;
356
230
  }
@@ -359,7 +233,7 @@ function initParticleNumericAnimationValue(options, pxRatio) {
359
233
  return res;
360
234
  }
361
235
  function getPositionOrSize(positionOrSize, canvasSize) {
362
- const isPercent = positionOrSize.mode === PixelMode_js_1.PixelMode.percent;
236
+ const isPercent = positionOrSize.mode === PixelMode.percent;
363
237
  if (!isPercent) {
364
238
  const { mode: _, ...rest } = positionOrSize;
365
239
  return rest;
@@ -367,49 +241,46 @@ function getPositionOrSize(positionOrSize, canvasSize) {
367
241
  const isPosition = "x" in positionOrSize;
368
242
  if (isPosition) {
369
243
  return {
370
- x: (positionOrSize.x / Constants_js_1.percentDenominator) * canvasSize.width,
371
- y: (positionOrSize.y / Constants_js_1.percentDenominator) * canvasSize.height,
244
+ x: (positionOrSize.x / percentDenominator) * canvasSize.width,
245
+ y: (positionOrSize.y / percentDenominator) * canvasSize.height,
372
246
  };
373
247
  }
374
248
  else {
375
249
  return {
376
- width: (positionOrSize.width / Constants_js_1.percentDenominator) * canvasSize.width,
377
- height: (positionOrSize.height / Constants_js_1.percentDenominator) * canvasSize.height,
250
+ width: (positionOrSize.width / percentDenominator) * canvasSize.width,
251
+ height: (positionOrSize.height / percentDenominator) * canvasSize.height,
378
252
  };
379
253
  }
380
254
  }
381
- function getPosition(position, canvasSize) {
255
+ export function getPosition(position, canvasSize) {
382
256
  return getPositionOrSize(position, canvasSize);
383
257
  }
384
- function getSize(size, canvasSize) {
258
+ export function getSize(size, canvasSize) {
385
259
  return getPositionOrSize(size, canvasSize);
386
260
  }
387
261
  function checkDestroy(particle, destroyType, value, minValue, maxValue) {
388
262
  switch (destroyType) {
389
- case DestroyType_js_1.DestroyType.max:
263
+ case DestroyType.max:
390
264
  if (value >= maxValue) {
391
265
  particle.destroy();
392
266
  }
393
267
  break;
394
- case DestroyType_js_1.DestroyType.min:
268
+ case DestroyType.min:
395
269
  if (value <= minValue) {
396
270
  particle.destroy();
397
271
  }
398
272
  break;
399
273
  }
400
274
  }
401
- function updateAnimation(particle, data, changeDirection, destroyType, delta) {
275
+ export function updateAnimation(particle, data, changeDirection, destroyType, delta) {
402
276
  const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minDecay = 1;
403
277
  if (particle.destroyed ||
404
- !data ||
405
278
  !data.enable ||
406
279
  ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops))) {
407
280
  return;
408
281
  }
409
282
  const velocity = (data.velocity ?? minVelocity) * delta.factor, minValue = data.min, maxValue = data.max, decay = data.decay ?? minDecay;
410
- if (!data.time) {
411
- data.time = 0;
412
- }
283
+ data.time ??= 0;
413
284
  if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {
414
285
  data.time += delta.value;
415
286
  }
@@ -417,34 +288,30 @@ function updateAnimation(particle, data, changeDirection, destroyType, delta) {
417
288
  return;
418
289
  }
419
290
  switch (data.status) {
420
- case AnimationStatus_js_1.AnimationStatus.increasing:
291
+ case AnimationStatus.increasing:
421
292
  if (data.value >= maxValue) {
422
293
  if (changeDirection) {
423
- data.status = AnimationStatus_js_1.AnimationStatus.decreasing;
294
+ data.status = AnimationStatus.decreasing;
424
295
  }
425
296
  else {
426
297
  data.value -= maxValue;
427
298
  }
428
- if (!data.loops) {
429
- data.loops = minLoops;
430
- }
299
+ data.loops ??= minLoops;
431
300
  data.loops++;
432
301
  }
433
302
  else {
434
303
  data.value += velocity;
435
304
  }
436
305
  break;
437
- case AnimationStatus_js_1.AnimationStatus.decreasing:
306
+ case AnimationStatus.decreasing:
438
307
  if (data.value <= minValue) {
439
308
  if (changeDirection) {
440
- data.status = AnimationStatus_js_1.AnimationStatus.increasing;
309
+ data.status = AnimationStatus.increasing;
441
310
  }
442
311
  else {
443
312
  data.value += maxValue;
444
313
  }
445
- if (!data.loops) {
446
- data.loops = minLoops;
447
- }
314
+ data.loops ??= minLoops;
448
315
  data.loops++;
449
316
  }
450
317
  else {
@@ -455,18 +322,13 @@ function updateAnimation(particle, data, changeDirection, destroyType, delta) {
455
322
  data.velocity *= decay;
456
323
  }
457
324
  checkDestroy(particle, destroyType, data.value, minValue, maxValue);
458
- if (!particle.destroyed) {
459
- data.value = (0, NumberUtils_js_1.clamp)(data.value, minValue, maxValue);
460
- }
325
+ data.value = clamp(data.value, minValue, maxValue);
461
326
  }
462
- function cloneStyle(style) {
463
- const clonedStyle = document.createElement("div").style;
464
- if (!style) {
465
- return clonedStyle;
466
- }
327
+ export function cloneStyle(style) {
328
+ const clonedStyle = safeDocument().createElement("div").style;
467
329
  for (const key in style) {
468
330
  const styleKey = style[key];
469
- if (!Object.prototype.hasOwnProperty.call(style, key) || (0, TypeUtils_js_1.isNull)(styleKey)) {
331
+ if (!Object.prototype.hasOwnProperty.call(style, key) || isNull(styleKey)) {
470
332
  continue;
471
333
  }
472
334
  const styleValue = style.getPropertyValue?.(styleKey);
@@ -475,16 +337,16 @@ function cloneStyle(style) {
475
337
  }
476
338
  const stylePriority = style.getPropertyPriority?.(styleKey);
477
339
  if (!stylePriority) {
478
- clonedStyle.setProperty?.(styleKey, styleValue);
340
+ clonedStyle.setProperty(styleKey, styleValue);
479
341
  }
480
342
  else {
481
- clonedStyle.setProperty?.(styleKey, styleValue, stylePriority);
343
+ clonedStyle.setProperty(styleKey, styleValue, stylePriority);
482
344
  }
483
345
  }
484
346
  return clonedStyle;
485
347
  }
486
348
  function computeFullScreenStyle(zIndex) {
487
- const fullScreenStyle = document.createElement("div").style, radix = 10, style = {
349
+ const fullScreenStyle = safeDocument().createElement("div").style, radix = 10, style = {
488
350
  width: "100%",
489
351
  height: "100%",
490
352
  margin: "0",
@@ -498,8 +360,11 @@ function computeFullScreenStyle(zIndex) {
498
360
  };
499
361
  for (const key in style) {
500
362
  const value = style[key];
363
+ if (value === undefined) {
364
+ continue;
365
+ }
501
366
  fullScreenStyle.setProperty(key, value);
502
367
  }
503
368
  return fullScreenStyle;
504
369
  }
505
- exports.getFullScreenStyle = memoize(computeFullScreenStyle);
370
+ export const getFullScreenStyle = memoize(computeFullScreenStyle);
package/cjs/bundle.js CHANGED
@@ -1,22 +1,5 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.tsParticles = void 0;
18
- const init_js_1 = require("./init.js");
19
- const tsParticles = (0, init_js_1.init)();
20
- exports.tsParticles = tsParticles;
21
- window.tsParticles = tsParticles;
22
- __exportStar(require("./exports.js"), exports);
1
+ import { initEngine } from "./initEngine.js";
2
+ const tsParticles = initEngine();
3
+ globalThis.tsParticles = tsParticles;
4
+ export * from "./exports.js";
5
+ export { tsParticles };