@tsparticles/engine 4.0.0-alpha.1 → 4.0.0-alpha.14

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 (429) hide show
  1. package/219.min.js +1 -0
  2. package/README.md +2 -5
  3. package/browser/Core/Canvas.js +238 -154
  4. package/browser/Core/Container.js +111 -227
  5. package/browser/Core/Engine.js +84 -124
  6. package/browser/Core/Particle.js +236 -140
  7. package/browser/Core/Particles.js +212 -123
  8. package/browser/Core/Retina.js +5 -0
  9. package/browser/Core/Utils/Constants.js +2 -2
  10. package/browser/Core/Utils/EventListeners.js +69 -310
  11. package/browser/Core/Utils/Point.js +2 -0
  12. package/browser/Core/Utils/QuadTree.js +13 -8
  13. package/browser/Core/Utils/Ranges.js +4 -0
  14. package/browser/Core/Utils/Vectors.js +7 -4
  15. package/browser/Enums/Types/EasingType.js +18 -3
  16. package/browser/Options/Classes/AnimatableColor.js +1 -0
  17. package/browser/Options/Classes/AnimationOptions.js +8 -0
  18. package/browser/Options/Classes/Background/Background.js +6 -0
  19. package/browser/Options/Classes/ColorAnimation.js +1 -0
  20. package/browser/Options/Classes/FullScreen/FullScreen.js +2 -0
  21. package/browser/Options/Classes/HslAnimation.js +3 -5
  22. package/browser/Options/Classes/Options.js +32 -78
  23. package/browser/Options/Classes/OptionsColor.js +1 -0
  24. package/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  25. package/browser/Options/Classes/Particles/Effect/Effect.js +4 -0
  26. package/browser/Options/Classes/Particles/Move/Move.js +18 -0
  27. package/browser/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  28. package/browser/Options/Classes/Particles/Move/MoveAttract.js +3 -0
  29. package/browser/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  30. package/browser/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  31. package/browser/Options/Classes/Particles/Move/OutModes.js +5 -0
  32. package/browser/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  33. package/browser/Options/Classes/Particles/Move/Spin.js +3 -0
  34. package/browser/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  35. package/browser/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  36. package/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  37. package/browser/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  38. package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  39. package/browser/Options/Classes/Particles/ParticlesOptions.js +19 -11
  40. package/browser/Options/Classes/Particles/Shape/Shape.js +4 -0
  41. package/browser/Options/Classes/Particles/Size/Size.js +1 -0
  42. package/browser/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  43. package/browser/Options/Classes/Particles/Stroke.js +3 -0
  44. package/browser/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  45. package/{esm/Options/Classes/Interactivity/Events → browser/Options/Classes}/ResizeEvent.js +3 -1
  46. package/browser/Options/Classes/ValueWithRandom.js +3 -4
  47. package/browser/Utils/CanvasUtils.js +31 -106
  48. package/browser/Utils/ColorUtils.js +17 -2
  49. package/browser/Utils/EventDispatcher.js +1 -0
  50. package/browser/Utils/MathUtils.js +3 -2
  51. package/browser/Utils/Utils.js +53 -44
  52. package/browser/exports.js +1 -21
  53. package/cjs/Core/Canvas.js +238 -154
  54. package/cjs/Core/Container.js +111 -227
  55. package/cjs/Core/Engine.js +84 -124
  56. package/cjs/Core/Particle.js +236 -140
  57. package/cjs/Core/Particles.js +212 -123
  58. package/cjs/Core/Retina.js +5 -0
  59. package/cjs/Core/Utils/Constants.js +2 -2
  60. package/cjs/Core/Utils/EventListeners.js +69 -310
  61. package/cjs/Core/Utils/Point.js +2 -0
  62. package/cjs/Core/Utils/QuadTree.js +13 -8
  63. package/cjs/Core/Utils/Ranges.js +4 -0
  64. package/cjs/Core/Utils/Vectors.js +7 -4
  65. package/cjs/Enums/Types/EasingType.js +18 -3
  66. package/cjs/Options/Classes/AnimatableColor.js +1 -0
  67. package/cjs/Options/Classes/AnimationOptions.js +8 -0
  68. package/cjs/Options/Classes/Background/Background.js +6 -0
  69. package/cjs/Options/Classes/ColorAnimation.js +1 -0
  70. package/cjs/Options/Classes/FullScreen/FullScreen.js +2 -0
  71. package/cjs/Options/Classes/HslAnimation.js +3 -5
  72. package/cjs/Options/Classes/Options.js +32 -78
  73. package/cjs/Options/Classes/OptionsColor.js +1 -0
  74. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  75. package/cjs/Options/Classes/Particles/Effect/Effect.js +4 -0
  76. package/cjs/Options/Classes/Particles/Move/Move.js +18 -0
  77. package/cjs/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  78. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +3 -0
  79. package/cjs/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  80. package/cjs/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  81. package/cjs/Options/Classes/Particles/Move/OutModes.js +5 -0
  82. package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  83. package/cjs/Options/Classes/Particles/Move/Spin.js +3 -0
  84. package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  85. package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  86. package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  87. package/cjs/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  88. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  89. package/cjs/Options/Classes/Particles/ParticlesOptions.js +19 -11
  90. package/cjs/Options/Classes/Particles/Shape/Shape.js +4 -0
  91. package/cjs/Options/Classes/Particles/Size/Size.js +1 -0
  92. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  93. package/cjs/Options/Classes/Particles/Stroke.js +3 -0
  94. package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  95. package/cjs/Options/Classes/{Interactivity/Events/ResizeEvent.js → ResizeEvent.js} +3 -1
  96. package/cjs/Options/Classes/ValueWithRandom.js +3 -4
  97. package/cjs/Utils/CanvasUtils.js +31 -106
  98. package/cjs/Utils/ColorUtils.js +17 -2
  99. package/cjs/Utils/EventDispatcher.js +1 -0
  100. package/cjs/Utils/MathUtils.js +3 -2
  101. package/cjs/Utils/Utils.js +53 -44
  102. package/cjs/exports.js +1 -21
  103. package/dist_browser_Core_Container_js.js +8 -18
  104. package/esm/Core/Canvas.js +238 -154
  105. package/esm/Core/Container.js +111 -227
  106. package/esm/Core/Engine.js +84 -124
  107. package/esm/Core/Particle.js +236 -140
  108. package/esm/Core/Particles.js +212 -123
  109. package/esm/Core/Retina.js +5 -0
  110. package/esm/Core/Utils/Constants.js +2 -2
  111. package/esm/Core/Utils/EventListeners.js +69 -310
  112. package/esm/Core/Utils/Point.js +2 -0
  113. package/esm/Core/Utils/QuadTree.js +13 -8
  114. package/esm/Core/Utils/Ranges.js +4 -0
  115. package/esm/Core/Utils/Vectors.js +7 -4
  116. package/esm/Enums/Types/EasingType.js +18 -3
  117. package/esm/Options/Classes/AnimatableColor.js +1 -0
  118. package/esm/Options/Classes/AnimationOptions.js +8 -0
  119. package/esm/Options/Classes/Background/Background.js +6 -0
  120. package/esm/Options/Classes/ColorAnimation.js +1 -0
  121. package/esm/Options/Classes/FullScreen/FullScreen.js +2 -0
  122. package/esm/Options/Classes/HslAnimation.js +3 -5
  123. package/esm/Options/Classes/Options.js +32 -78
  124. package/esm/Options/Classes/OptionsColor.js +1 -0
  125. package/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  126. package/esm/Options/Classes/Particles/Effect/Effect.js +4 -0
  127. package/esm/Options/Classes/Particles/Move/Move.js +18 -0
  128. package/esm/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  129. package/esm/Options/Classes/Particles/Move/MoveAttract.js +3 -0
  130. package/esm/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  131. package/esm/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  132. package/esm/Options/Classes/Particles/Move/OutModes.js +5 -0
  133. package/esm/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  134. package/esm/Options/Classes/Particles/Move/Spin.js +3 -0
  135. package/esm/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  136. package/esm/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  137. package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  138. package/esm/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  139. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  140. package/esm/Options/Classes/Particles/ParticlesOptions.js +19 -11
  141. package/esm/Options/Classes/Particles/Shape/Shape.js +4 -0
  142. package/esm/Options/Classes/Particles/Size/Size.js +1 -0
  143. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  144. package/esm/Options/Classes/Particles/Stroke.js +3 -0
  145. package/esm/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  146. package/{browser/Options/Classes/Interactivity/Events → esm/Options/Classes}/ResizeEvent.js +3 -1
  147. package/esm/Options/Classes/ValueWithRandom.js +3 -4
  148. package/esm/Utils/CanvasUtils.js +31 -106
  149. package/esm/Utils/ColorUtils.js +17 -2
  150. package/esm/Utils/EventDispatcher.js +1 -0
  151. package/esm/Utils/MathUtils.js +3 -2
  152. package/esm/Utils/Utils.js +53 -44
  153. package/esm/exports.js +1 -21
  154. package/package.json +1 -1
  155. package/report.html +3 -3
  156. package/scripts/install.js +28 -9
  157. package/tsparticles.engine.js +67 -247
  158. package/tsparticles.engine.min.js +2 -2
  159. package/types/Core/Canvas.d.ts +15 -4
  160. package/types/Core/Container.d.ts +5 -20
  161. package/types/Core/Engine.d.ts +18 -32
  162. package/types/Core/Interfaces/IColorManager.d.ts +0 -1
  163. package/types/Core/Interfaces/IContainerPlugin.d.ts +12 -2
  164. package/types/Core/Interfaces/IDrawParticleParams.d.ts +1 -1
  165. package/types/Core/Interfaces/IMovePathGenerator.d.ts +1 -2
  166. package/types/Core/Interfaces/IParticleOpacityData.d.ts +4 -0
  167. package/types/Core/Interfaces/IParticleRotateData.d.ts +4 -0
  168. package/types/Core/Interfaces/IParticleTransformValues.d.ts +4 -4
  169. package/types/Core/Interfaces/IParticleUpdater.d.ts +1 -1
  170. package/types/Core/Interfaces/IPlugin.d.ts +5 -1
  171. package/types/Core/Interfaces/IShapeDrawer.d.ts +0 -1
  172. package/types/Core/Particle.d.ts +13 -2
  173. package/types/Core/Particles.d.ts +17 -8
  174. package/types/Core/Utils/Constants.d.ts +2 -2
  175. package/types/Core/Utils/EventListeners.d.ts +0 -14
  176. package/types/Enums/Types/EasingType.d.ts +20 -5
  177. package/types/Options/Classes/HslAnimation.d.ts +3 -4
  178. package/types/Options/Classes/Options.d.ts +2 -11
  179. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +0 -2
  180. package/types/Options/Classes/ResizeEvent.d.ts +9 -0
  181. package/types/Options/Classes/ValueWithRandom.d.ts +0 -1
  182. package/types/Options/Interfaces/IOptions.d.ts +2 -8
  183. package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +0 -3
  184. package/types/Types/CustomEventListener.d.ts +1 -1
  185. package/types/Types/EngineInitializers.d.ts +19 -0
  186. package/types/Utils/CanvasUtils.d.ts +6 -25
  187. package/types/Utils/EventDispatcher.d.ts +1 -1
  188. package/types/Utils/Utils.d.ts +5 -7
  189. package/types/export-types.d.ts +3 -19
  190. package/types/exports.d.ts +1 -21
  191. package/umd/Core/Canvas.js +236 -152
  192. package/umd/Core/Container.js +111 -227
  193. package/umd/Core/Engine.js +83 -123
  194. package/umd/Core/Particle.js +236 -140
  195. package/umd/Core/Particles.js +213 -124
  196. package/umd/Core/Retina.js +5 -0
  197. package/umd/Core/Utils/Constants.js +3 -3
  198. package/umd/Core/Utils/EventListeners.js +69 -310
  199. package/umd/Core/Utils/Point.js +2 -0
  200. package/umd/Core/Utils/QuadTree.js +13 -8
  201. package/umd/Core/Utils/Ranges.js +4 -0
  202. package/umd/Core/Utils/Vectors.js +7 -4
  203. package/umd/Enums/Types/EasingType.js +18 -3
  204. package/umd/Options/Classes/AnimatableColor.js +1 -0
  205. package/umd/Options/Classes/AnimationOptions.js +8 -0
  206. package/umd/Options/Classes/Background/Background.js +6 -0
  207. package/umd/Options/Classes/ColorAnimation.js +1 -0
  208. package/umd/Options/Classes/FullScreen/FullScreen.js +2 -0
  209. package/umd/Options/Classes/HslAnimation.js +3 -5
  210. package/umd/Options/Classes/Options.js +32 -78
  211. package/umd/Options/Classes/OptionsColor.js +1 -0
  212. package/umd/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -0
  213. package/umd/Options/Classes/Particles/Effect/Effect.js +4 -0
  214. package/umd/Options/Classes/Particles/Move/Move.js +18 -0
  215. package/umd/Options/Classes/Particles/Move/MoveAngle.js +2 -0
  216. package/umd/Options/Classes/Particles/Move/MoveAttract.js +3 -0
  217. package/umd/Options/Classes/Particles/Move/MoveCenter.js +4 -0
  218. package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -0
  219. package/umd/Options/Classes/Particles/Move/OutModes.js +5 -0
  220. package/umd/Options/Classes/Particles/Move/Path/MovePath.js +5 -0
  221. package/umd/Options/Classes/Particles/Move/Spin.js +3 -0
  222. package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +3 -0
  223. package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +3 -0
  224. package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -0
  225. package/umd/Options/Classes/Particles/Opacity/Opacity.js +1 -0
  226. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +1 -0
  227. package/umd/Options/Classes/Particles/ParticlesOptions.js +19 -11
  228. package/umd/Options/Classes/Particles/Shape/Shape.js +4 -0
  229. package/umd/Options/Classes/Particles/Size/Size.js +1 -0
  230. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +1 -0
  231. package/umd/Options/Classes/Particles/Stroke.js +3 -0
  232. package/umd/Options/Classes/Particles/ZIndex/ZIndex.js +3 -0
  233. package/umd/Options/Classes/{Interactivity/Events/ResizeEvent.js → ResizeEvent.js} +4 -2
  234. package/umd/Options/Classes/ValueWithRandom.js +3 -4
  235. package/umd/Utils/CanvasUtils.js +30 -108
  236. package/umd/Utils/ColorUtils.js +17 -2
  237. package/umd/Utils/EventDispatcher.js +1 -0
  238. package/umd/Utils/MathUtils.js +3 -2
  239. package/umd/Utils/Utils.js +55 -48
  240. package/umd/exports.js +2 -22
  241. package/638.min.js +0 -2
  242. package/638.min.js.LICENSE.txt +0 -1
  243. package/browser/Core/Utils/ExternalInteractorBase.js +0 -7
  244. package/browser/Core/Utils/InteractionManager.js +0 -60
  245. package/browser/Core/Utils/ParticlesInteractorBase.js +0 -7
  246. package/browser/Enums/InteractivityDetect.js +0 -6
  247. package/browser/Enums/Modes/ResponsiveMode.js +0 -5
  248. package/browser/Enums/Modes/ThemeMode.js +0 -6
  249. package/browser/Enums/Types/DivType.js +0 -5
  250. package/browser/Enums/Types/InteractorType.js +0 -5
  251. package/browser/Options/Classes/Interactivity/Events/ClickEvent.js +0 -18
  252. package/browser/Options/Classes/Interactivity/Events/DivEvent.js +0 -27
  253. package/browser/Options/Classes/Interactivity/Events/Events.js +0 -30
  254. package/browser/Options/Classes/Interactivity/Events/HoverEvent.js +0 -21
  255. package/browser/Options/Classes/Interactivity/Events/Parallax.js +0 -22
  256. package/browser/Options/Classes/Interactivity/Interactivity.js +0 -22
  257. package/browser/Options/Classes/Interactivity/Modes/Modes.js +0 -25
  258. package/browser/Options/Classes/ManualParticle.js +0 -21
  259. package/browser/Options/Classes/Responsive.js +0 -29
  260. package/browser/Options/Classes/Theme/Theme.js +0 -21
  261. package/browser/Options/Classes/Theme/ThemeDefault.js +0 -23
  262. package/browser/Options/Interfaces/Interactivity/Events/IEvents.js +0 -1
  263. package/browser/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -1
  264. package/browser/Options/Interfaces/Interactivity/Events/IParallax.js +0 -1
  265. package/browser/Options/Interfaces/Interactivity/IInteractivity.js +0 -1
  266. package/browser/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -1
  267. package/browser/Options/Interfaces/Interactivity/Modes/IModes.js +0 -1
  268. package/browser/Options/Interfaces/Theme/ITheme.js +0 -1
  269. package/browser/Options/Interfaces/Theme/IThemeDefault.js +0 -1
  270. package/cjs/Core/Interfaces/IContainerInteractivity.js +0 -1
  271. package/cjs/Core/Interfaces/IExternalInteractor.js +0 -1
  272. package/cjs/Core/Interfaces/IInteractor.js +0 -1
  273. package/cjs/Core/Interfaces/IMouseData.js +0 -1
  274. package/cjs/Core/Interfaces/IParticlesInteractor.js +0 -1
  275. package/cjs/Core/Utils/ExternalInteractorBase.js +0 -7
  276. package/cjs/Core/Utils/InteractionManager.js +0 -60
  277. package/cjs/Core/Utils/ParticlesInteractorBase.js +0 -7
  278. package/cjs/Enums/InteractivityDetect.js +0 -6
  279. package/cjs/Enums/Modes/ResponsiveMode.js +0 -5
  280. package/cjs/Enums/Modes/ThemeMode.js +0 -6
  281. package/cjs/Enums/Types/DivType.js +0 -5
  282. package/cjs/Enums/Types/InteractorType.js +0 -5
  283. package/cjs/Options/Classes/Interactivity/Events/ClickEvent.js +0 -18
  284. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +0 -27
  285. package/cjs/Options/Classes/Interactivity/Events/Events.js +0 -30
  286. package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +0 -21
  287. package/cjs/Options/Classes/Interactivity/Events/Parallax.js +0 -22
  288. package/cjs/Options/Classes/Interactivity/Interactivity.js +0 -22
  289. package/cjs/Options/Classes/Interactivity/Modes/Modes.js +0 -25
  290. package/cjs/Options/Classes/ManualParticle.js +0 -21
  291. package/cjs/Options/Classes/Responsive.js +0 -29
  292. package/cjs/Options/Classes/Theme/Theme.js +0 -21
  293. package/cjs/Options/Classes/Theme/ThemeDefault.js +0 -23
  294. package/cjs/Options/Interfaces/IManualParticle.js +0 -1
  295. package/cjs/Options/Interfaces/IResponsive.js +0 -1
  296. package/cjs/Options/Interfaces/Interactivity/Events/IClickEvent.js +0 -1
  297. package/cjs/Options/Interfaces/Interactivity/Events/IDivEvent.js +0 -1
  298. package/cjs/Options/Interfaces/Interactivity/Events/IEvents.js +0 -1
  299. package/cjs/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -1
  300. package/cjs/Options/Interfaces/Interactivity/Events/IParallax.js +0 -1
  301. package/cjs/Options/Interfaces/Interactivity/IInteractivity.js +0 -1
  302. package/cjs/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -1
  303. package/cjs/Options/Interfaces/Interactivity/Modes/IModes.js +0 -1
  304. package/cjs/Options/Interfaces/Theme/ITheme.js +0 -1
  305. package/cjs/Options/Interfaces/Theme/IThemeDefault.js +0 -1
  306. package/esm/Core/Interfaces/IContainerInteractivity.js +0 -1
  307. package/esm/Core/Interfaces/IExternalInteractor.js +0 -1
  308. package/esm/Core/Interfaces/IInteractor.js +0 -1
  309. package/esm/Core/Interfaces/IMouseData.js +0 -1
  310. package/esm/Core/Interfaces/IParticlesInteractor.js +0 -1
  311. package/esm/Core/Utils/ExternalInteractorBase.js +0 -7
  312. package/esm/Core/Utils/InteractionManager.js +0 -60
  313. package/esm/Core/Utils/ParticlesInteractorBase.js +0 -7
  314. package/esm/Enums/InteractivityDetect.js +0 -6
  315. package/esm/Enums/Modes/ResponsiveMode.js +0 -5
  316. package/esm/Enums/Modes/ThemeMode.js +0 -6
  317. package/esm/Enums/Types/DivType.js +0 -5
  318. package/esm/Enums/Types/InteractorType.js +0 -5
  319. package/esm/Options/Classes/Interactivity/Events/ClickEvent.js +0 -18
  320. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +0 -27
  321. package/esm/Options/Classes/Interactivity/Events/Events.js +0 -30
  322. package/esm/Options/Classes/Interactivity/Events/HoverEvent.js +0 -21
  323. package/esm/Options/Classes/Interactivity/Events/Parallax.js +0 -22
  324. package/esm/Options/Classes/Interactivity/Interactivity.js +0 -22
  325. package/esm/Options/Classes/Interactivity/Modes/Modes.js +0 -25
  326. package/esm/Options/Classes/ManualParticle.js +0 -21
  327. package/esm/Options/Classes/Responsive.js +0 -29
  328. package/esm/Options/Classes/Theme/Theme.js +0 -21
  329. package/esm/Options/Classes/Theme/ThemeDefault.js +0 -23
  330. package/esm/Options/Interfaces/IManualParticle.js +0 -1
  331. package/esm/Options/Interfaces/IResponsive.js +0 -1
  332. package/esm/Options/Interfaces/Interactivity/Events/IClickEvent.js +0 -1
  333. package/esm/Options/Interfaces/Interactivity/Events/IDivEvent.js +0 -1
  334. package/esm/Options/Interfaces/Interactivity/Events/IEvents.js +0 -1
  335. package/esm/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -1
  336. package/esm/Options/Interfaces/Interactivity/Events/IParallax.js +0 -1
  337. package/esm/Options/Interfaces/Interactivity/IInteractivity.js +0 -1
  338. package/esm/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -1
  339. package/esm/Options/Interfaces/Interactivity/Modes/IModes.js +0 -1
  340. package/esm/Options/Interfaces/Theme/ITheme.js +0 -1
  341. package/esm/Options/Interfaces/Theme/IThemeDefault.js +0 -1
  342. package/tsparticles.engine.min.js.LICENSE.txt +0 -1
  343. package/types/Core/Interfaces/IContainerInteractivity.d.ts +0 -6
  344. package/types/Core/Interfaces/IExternalInteractor.d.ts +0 -12
  345. package/types/Core/Interfaces/IInteractor.d.ts +0 -16
  346. package/types/Core/Interfaces/IMouseData.d.ts +0 -9
  347. package/types/Core/Interfaces/IParticlesInteractor.d.ts +0 -7
  348. package/types/Core/Utils/ExternalInteractorBase.d.ts +0 -15
  349. package/types/Core/Utils/InteractionManager.d.ts +0 -17
  350. package/types/Core/Utils/ParticlesInteractorBase.d.ts +0 -15
  351. package/types/Enums/InteractivityDetect.d.ts +0 -5
  352. package/types/Enums/Modes/ResponsiveMode.d.ts +0 -4
  353. package/types/Enums/Modes/ThemeMode.d.ts +0 -5
  354. package/types/Enums/Types/DivType.d.ts +0 -4
  355. package/types/Enums/Types/InteractorType.d.ts +0 -4
  356. package/types/Options/Classes/Interactivity/Events/ClickEvent.d.ts +0 -10
  357. package/types/Options/Classes/Interactivity/Events/DivEvent.d.ts +0 -13
  358. package/types/Options/Classes/Interactivity/Events/Events.d.ts +0 -16
  359. package/types/Options/Classes/Interactivity/Events/HoverEvent.d.ts +0 -12
  360. package/types/Options/Classes/Interactivity/Events/Parallax.d.ts +0 -10
  361. package/types/Options/Classes/Interactivity/Events/ResizeEvent.d.ts +0 -9
  362. package/types/Options/Classes/Interactivity/Interactivity.d.ts +0 -16
  363. package/types/Options/Classes/Interactivity/Modes/Modes.d.ts +0 -12
  364. package/types/Options/Classes/ManualParticle.d.ts +0 -10
  365. package/types/Options/Classes/Responsive.d.ts +0 -12
  366. package/types/Options/Classes/Theme/Theme.d.ts +0 -12
  367. package/types/Options/Classes/Theme/ThemeDefault.d.ts +0 -11
  368. package/types/Options/Interfaces/IManualParticle.d.ts +0 -7
  369. package/types/Options/Interfaces/IResponsive.d.ts +0 -7
  370. package/types/Options/Interfaces/Interactivity/Events/IClickEvent.d.ts +0 -5
  371. package/types/Options/Interfaces/Interactivity/Events/IDivEvent.d.ts +0 -8
  372. package/types/Options/Interfaces/Interactivity/Events/IEvents.d.ts +0 -11
  373. package/types/Options/Interfaces/Interactivity/Events/IHoverEvent.d.ts +0 -7
  374. package/types/Options/Interfaces/Interactivity/Events/IParallax.d.ts +0 -5
  375. package/types/Options/Interfaces/Interactivity/IInteractivity.d.ts +0 -9
  376. package/types/Options/Interfaces/Interactivity/Modes/IModeDiv.d.ts +0 -4
  377. package/types/Options/Interfaces/Interactivity/Modes/IModes.d.ts +0 -1
  378. package/types/Options/Interfaces/Theme/ITheme.d.ts +0 -7
  379. package/types/Options/Interfaces/Theme/IThemeDefault.d.ts +0 -6
  380. package/umd/Core/Interfaces/IMouseData.js +0 -12
  381. package/umd/Core/Interfaces/IParticlesInteractor.js +0 -12
  382. package/umd/Core/Utils/ExternalInteractorBase.js +0 -21
  383. package/umd/Core/Utils/InteractionManager.js +0 -74
  384. package/umd/Core/Utils/ParticlesInteractorBase.js +0 -21
  385. package/umd/Enums/InteractivityDetect.js +0 -19
  386. package/umd/Enums/Modes/ResponsiveMode.js +0 -18
  387. package/umd/Enums/Modes/ThemeMode.js +0 -19
  388. package/umd/Enums/Types/DivType.js +0 -18
  389. package/umd/Enums/Types/InteractorType.js +0 -18
  390. package/umd/Options/Classes/Interactivity/Events/ClickEvent.js +0 -32
  391. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +0 -41
  392. package/umd/Options/Classes/Interactivity/Events/Events.js +0 -44
  393. package/umd/Options/Classes/Interactivity/Events/HoverEvent.js +0 -35
  394. package/umd/Options/Classes/Interactivity/Events/Parallax.js +0 -36
  395. package/umd/Options/Classes/Interactivity/Interactivity.js +0 -36
  396. package/umd/Options/Classes/Interactivity/Modes/Modes.js +0 -39
  397. package/umd/Options/Classes/ManualParticle.js +0 -35
  398. package/umd/Options/Classes/Responsive.js +0 -43
  399. package/umd/Options/Classes/Theme/Theme.js +0 -35
  400. package/umd/Options/Classes/Theme/ThemeDefault.js +0 -37
  401. package/umd/Options/Interfaces/IManualParticle.js +0 -12
  402. package/umd/Options/Interfaces/IResponsive.js +0 -12
  403. package/umd/Options/Interfaces/Interactivity/Events/IClickEvent.js +0 -12
  404. package/umd/Options/Interfaces/Interactivity/Events/IDivEvent.js +0 -12
  405. package/umd/Options/Interfaces/Interactivity/Events/IEvents.js +0 -12
  406. package/umd/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -12
  407. package/umd/Options/Interfaces/Interactivity/Events/IParallax.js +0 -12
  408. package/umd/Options/Interfaces/Interactivity/IInteractivity.js +0 -12
  409. package/umd/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -12
  410. package/umd/Options/Interfaces/Interactivity/Modes/IModes.js +0 -12
  411. package/umd/Options/Interfaces/Theme/ITheme.js +0 -12
  412. package/umd/Options/Interfaces/Theme/IThemeDefault.js +0 -12
  413. /package/browser/Core/Interfaces/{IContainerInteractivity.js → IParticleOpacityData.js} +0 -0
  414. /package/browser/Core/Interfaces/{IExternalInteractor.js → IParticleRotateData.js} +0 -0
  415. /package/browser/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  416. /package/browser/{Core/Interfaces/IInteractor.js → Types/EngineInitializers.js} +0 -0
  417. /package/{browser/Core/Interfaces/IMouseData.js → cjs/Core/Interfaces/IParticleOpacityData.js} +0 -0
  418. /package/{browser/Core/Interfaces/IParticlesInteractor.js → cjs/Core/Interfaces/IParticleRotateData.js} +0 -0
  419. /package/cjs/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  420. /package/{browser/Options/Interfaces/IManualParticle.js → cjs/Types/EngineInitializers.js} +0 -0
  421. /package/{browser/Options/Interfaces/IResponsive.js → esm/Core/Interfaces/IParticleOpacityData.js} +0 -0
  422. /package/{browser/Options/Interfaces/Interactivity/Events/IClickEvent.js → esm/Core/Interfaces/IParticleRotateData.js} +0 -0
  423. /package/esm/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  424. /package/{browser/Options/Interfaces/Interactivity/Events/IDivEvent.js → esm/Types/EngineInitializers.js} +0 -0
  425. /package/types/Options/Interfaces/{Interactivity/Events/IResizeEvent.d.ts → IResizeEvent.d.ts} +0 -0
  426. /package/umd/Core/Interfaces/{IContainerInteractivity.js → IParticleOpacityData.js} +0 -0
  427. /package/umd/Core/Interfaces/{IExternalInteractor.js → IParticleRotateData.js} +0 -0
  428. /package/umd/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  429. /package/umd/{Core/Interfaces/IInteractor.js → Types/EngineInitializers.js} +0 -0
@@ -4,329 +4,25 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./Constants.js", "../../Utils/Utils.js", "../../Enums/InteractivityDetect.js", "../../Utils/TypeUtils.js"], factory);
7
+ define(["require", "exports", "../../Utils/Utils.js", "./Constants.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.EventListeners = void 0;
13
- const Constants_js_1 = require("./Constants.js");
14
13
  const Utils_js_1 = require("../../Utils/Utils.js");
15
- const InteractivityDetect_js_1 = require("../../Enums/InteractivityDetect.js");
16
- const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
17
- function manageListener(element, event, handler, add, options) {
18
- if (add) {
19
- let addOptions = { passive: true };
20
- if ((0, TypeUtils_js_1.isBoolean)(options)) {
21
- addOptions.capture = options;
22
- }
23
- else if (options !== undefined) {
24
- addOptions = options;
25
- }
26
- element.addEventListener(event, handler, addOptions);
27
- }
28
- else {
29
- const removeOptions = options;
30
- element.removeEventListener(event, handler, removeOptions);
31
- }
32
- }
14
+ const Constants_js_1 = require("./Constants.js");
33
15
  class EventListeners {
16
+ container;
17
+ _handlers;
18
+ _resizeObserver;
19
+ _resizeTimeout;
34
20
  constructor(container) {
35
21
  this.container = container;
36
- this._canPush = true;
37
- this._doMouseTouchClick = e => {
38
- const container = this.container, options = container.actualOptions;
39
- if (this._canPush) {
40
- const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;
41
- if (!mousePos) {
42
- return;
43
- }
44
- mouseInteractivity.clickPosition = { ...mousePos };
45
- mouseInteractivity.clickTime = Date.now();
46
- const onClick = options.interactivity.events.onClick;
47
- (0, Utils_js_1.executeOnSingleOrMultiple)(onClick.mode, mode => {
48
- this.container.handleClickMode(mode);
49
- });
50
- }
51
- if (e.type === "touchend") {
52
- setTimeout(() => {
53
- this._mouseTouchFinish();
54
- }, Constants_js_1.touchDelay);
55
- }
56
- };
57
- this._handleThemeChange = (e) => {
58
- const mediaEvent = e, container = this.container, options = container.options, defaultThemes = options.defaultThemes, themeName = mediaEvent.matches ? defaultThemes.dark : defaultThemes.light, theme = options.themes.find(theme => theme.name === themeName);
59
- if (theme?.default.auto) {
60
- void container.loadTheme(themeName);
61
- }
62
- };
63
- this._handleVisibilityChange = () => {
64
- const container = this.container, options = container.actualOptions;
65
- this._mouseTouchFinish();
66
- if (!options.pauseOnBlur) {
67
- return;
68
- }
69
- if ((0, Utils_js_1.safeDocument)().hidden) {
70
- container.pageHidden = true;
71
- container.pause();
72
- }
73
- else {
74
- container.pageHidden = false;
75
- if (container.animationStatus) {
76
- container.play(true);
77
- }
78
- else {
79
- container.draw(true);
80
- }
81
- }
82
- };
83
- this._handleWindowResize = () => {
84
- if (this._resizeTimeout) {
85
- clearTimeout(this._resizeTimeout);
86
- delete this._resizeTimeout;
87
- }
88
- const handleResize = async () => {
89
- const canvas = this.container.canvas;
90
- await canvas.windowResize();
91
- };
92
- this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.interactivity.events.resize.delay * Constants_js_1.millisecondsToSeconds);
93
- };
94
- this._manageInteractivityListeners = (mouseLeaveTmpEvent, add) => {
95
- const handlers = this._handlers, container = this.container, options = container.actualOptions, interactivityEl = container.interactivity.element;
96
- if (!interactivityEl) {
97
- return;
98
- }
99
- const html = interactivityEl, canvas = container.canvas;
100
- canvas.setPointerEvents(html === canvas.element ? "initial" : "none");
101
- if (!(options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable)) {
102
- return;
103
- }
104
- manageListener(interactivityEl, Constants_js_1.mouseMoveEvent, handlers.mouseMove, add);
105
- manageListener(interactivityEl, Constants_js_1.touchStartEvent, handlers.touchStart, add);
106
- manageListener(interactivityEl, Constants_js_1.touchMoveEvent, handlers.touchMove, add);
107
- if (options.interactivity.events.onClick.enable) {
108
- manageListener(interactivityEl, Constants_js_1.touchEndEvent, handlers.touchEndClick, add);
109
- manageListener(interactivityEl, Constants_js_1.mouseUpEvent, handlers.mouseUp, add);
110
- manageListener(interactivityEl, Constants_js_1.mouseDownEvent, handlers.mouseDown, add);
111
- }
112
- else {
113
- manageListener(interactivityEl, Constants_js_1.touchEndEvent, handlers.touchEnd, add);
114
- }
115
- manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);
116
- manageListener(interactivityEl, Constants_js_1.touchCancelEvent, handlers.touchCancel, add);
117
- };
118
- this._manageListeners = add => {
119
- const handlers = this._handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn, canvasEl = container.canvas.element;
120
- let mouseLeaveTmpEvent = Constants_js_1.mouseLeaveEvent;
121
- if (detectType === InteractivityDetect_js_1.InteractivityDetect.window) {
122
- container.interactivity.element = window;
123
- mouseLeaveTmpEvent = Constants_js_1.mouseOutEvent;
124
- }
125
- else if (detectType === InteractivityDetect_js_1.InteractivityDetect.parent && canvasEl) {
126
- container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode;
127
- }
128
- else {
129
- container.interactivity.element = canvasEl;
130
- }
131
- this._manageMediaMatch(add);
132
- this._manageResize(add);
133
- this._manageInteractivityListeners(mouseLeaveTmpEvent, add);
134
- manageListener(document, Constants_js_1.visibilityChangeEvent, handlers.visibilityChange, add, false);
135
- };
136
- this._manageMediaMatch = add => {
137
- const handlers = this._handlers;
138
- if (!this._matchMedia) {
139
- return;
140
- }
141
- manageListener(this._matchMedia, "change", handlers.themeChange, add);
142
- };
143
- this._manageResize = add => {
144
- const handlers = this._handlers, container = this.container, options = container.actualOptions;
145
- if (!options.interactivity.events.resize.enable) {
146
- return;
147
- }
148
- if (typeof ResizeObserver === "undefined") {
149
- manageListener(globalThis, Constants_js_1.resizeEvent, handlers.resize, add);
150
- return;
151
- }
152
- const canvasEl = container.canvas.element;
153
- if (this._resizeObserver && !add) {
154
- if (canvasEl) {
155
- this._resizeObserver.unobserve(canvasEl);
156
- }
157
- this._resizeObserver.disconnect();
158
- delete this._resizeObserver;
159
- }
160
- else if (!this._resizeObserver && add && canvasEl) {
161
- this._resizeObserver = new ResizeObserver((entries) => {
162
- const entry = entries.find(e => e.target === canvasEl);
163
- if (!entry) {
164
- return;
165
- }
166
- this._handleWindowResize();
167
- });
168
- this._resizeObserver.observe(canvasEl);
169
- }
170
- };
171
- this._mouseDown = () => {
172
- const { interactivity } = this.container, { mouse } = interactivity;
173
- mouse.clicking = true;
174
- mouse.downPosition = mouse.position;
175
- };
176
- this._mouseTouchClick = e => {
177
- const container = this.container, options = container.actualOptions, { mouse } = container.interactivity;
178
- mouse.inside = true;
179
- let handled = false;
180
- const mousePosition = mouse.position;
181
- if (!mousePosition || !options.interactivity.events.onClick.enable) {
182
- return;
183
- }
184
- for (const plugin of container.plugins.values()) {
185
- if (!plugin.clickPositionValid) {
186
- continue;
187
- }
188
- handled = plugin.clickPositionValid(mousePosition);
189
- if (handled) {
190
- break;
191
- }
192
- }
193
- if (!handled) {
194
- this._doMouseTouchClick(e);
195
- }
196
- mouse.clicking = false;
197
- };
198
- this._mouseTouchFinish = () => {
199
- const { interactivity } = this.container, { mouse } = interactivity;
200
- delete mouse.position;
201
- delete mouse.clickPosition;
202
- delete mouse.downPosition;
203
- interactivity.status = Constants_js_1.mouseLeaveEvent;
204
- mouse.inside = false;
205
- mouse.clicking = false;
206
- };
207
- this._mouseTouchMove = e => {
208
- const container = this.container, options = container.actualOptions, interactivity = container.interactivity, canvasEl = container.canvas.element;
209
- if (!interactivity.element) {
210
- return;
211
- }
212
- interactivity.mouse.inside = true;
213
- let pos;
214
- if (e.type.startsWith("pointer")) {
215
- this._canPush = true;
216
- const mouseEvent = e;
217
- if (interactivity.element === window) {
218
- if (canvasEl) {
219
- const clientRect = canvasEl.getBoundingClientRect();
220
- pos = {
221
- x: mouseEvent.clientX - clientRect.left,
222
- y: mouseEvent.clientY - clientRect.top,
223
- };
224
- }
225
- }
226
- else if (options.interactivity.detectsOn === InteractivityDetect_js_1.InteractivityDetect.parent) {
227
- const source = mouseEvent.target, target = mouseEvent.currentTarget;
228
- if (canvasEl) {
229
- const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();
230
- pos = {
231
- x: mouseEvent.offsetX + Constants_js_1.double * sourceRect.left - (targetRect.left + canvasRect.left),
232
- y: mouseEvent.offsetY + Constants_js_1.double * sourceRect.top - (targetRect.top + canvasRect.top),
233
- };
234
- }
235
- else {
236
- pos = {
237
- x: mouseEvent.offsetX,
238
- y: mouseEvent.offsetY,
239
- };
240
- }
241
- }
242
- else if (mouseEvent.target === canvasEl) {
243
- pos = {
244
- x: mouseEvent.offsetX,
245
- y: mouseEvent.offsetY,
246
- };
247
- }
248
- }
249
- else {
250
- this._canPush = e.type !== "touchmove";
251
- if (canvasEl) {
252
- const touchEvent = e, lastTouch = touchEvent.touches[touchEvent.touches.length - Constants_js_1.lengthOffset], canvasRect = canvasEl.getBoundingClientRect();
253
- if (!lastTouch) {
254
- return;
255
- }
256
- pos = {
257
- x: lastTouch.clientX - canvasRect.left,
258
- y: lastTouch.clientY - canvasRect.top,
259
- };
260
- }
261
- }
262
- const pxRatio = container.retina.pixelRatio;
263
- if (pos) {
264
- pos.x *= pxRatio;
265
- pos.y *= pxRatio;
266
- }
267
- interactivity.mouse.position = pos;
268
- interactivity.status = Constants_js_1.mouseMoveEvent;
269
- };
270
- this._touchEnd = e => {
271
- const evt = e, touches = Array.from(evt.changedTouches);
272
- for (const touch of touches) {
273
- this._touches.delete(touch.identifier);
274
- }
275
- this._mouseTouchFinish();
276
- };
277
- this._touchEndClick = e => {
278
- const evt = e, touches = Array.from(evt.changedTouches);
279
- for (const touch of touches) {
280
- this._touches.delete(touch.identifier);
281
- }
282
- this._mouseTouchClick(e);
283
- };
284
- this._touchStart = e => {
285
- const evt = e, touches = Array.from(evt.changedTouches);
286
- for (const touch of touches) {
287
- this._touches.set(touch.identifier, performance.now());
288
- }
289
- this._mouseTouchMove(e);
290
- };
291
- this._matchMedia = (0, Utils_js_1.safeMatchMedia)("(prefers-color-scheme: dark)");
292
- this._touches = new Map();
293
22
  this._handlers = {
294
- mouseDown: () => {
295
- this._mouseDown();
296
- },
297
- mouseLeave: () => {
298
- this._mouseTouchFinish();
299
- },
300
- mouseMove: (e) => {
301
- this._mouseTouchMove(e);
302
- },
303
- mouseUp: (e) => {
304
- this._mouseTouchClick(e);
305
- },
306
- touchStart: (e) => {
307
- this._touchStart(e);
308
- },
309
- touchMove: (e) => {
310
- this._mouseTouchMove(e);
311
- },
312
- touchEnd: (e) => {
313
- this._touchEnd(e);
314
- },
315
- touchCancel: (e) => {
316
- this._touchEnd(e);
317
- },
318
- touchEndClick: (e) => {
319
- this._touchEndClick(e);
320
- },
321
23
  visibilityChange: () => {
322
24
  this._handleVisibilityChange();
323
25
  },
324
- themeChange: (e) => {
325
- this._handleThemeChange(e);
326
- },
327
- oldThemeChange: (e) => {
328
- this._handleThemeChange(e);
329
- },
330
26
  resize: () => {
331
27
  this._handleWindowResize();
332
28
  },
@@ -338,6 +34,69 @@
338
34
  removeListeners() {
339
35
  this._manageListeners(false);
340
36
  }
37
+ _handleVisibilityChange = () => {
38
+ const container = this.container, options = container.actualOptions;
39
+ if (!options.pauseOnBlur) {
40
+ return;
41
+ }
42
+ if ((0, Utils_js_1.safeDocument)().hidden) {
43
+ container.pageHidden = true;
44
+ container.pause();
45
+ }
46
+ else {
47
+ container.pageHidden = false;
48
+ if (container.animationStatus) {
49
+ container.play(true);
50
+ }
51
+ else {
52
+ container.draw(true);
53
+ }
54
+ }
55
+ };
56
+ _handleWindowResize = () => {
57
+ if (this._resizeTimeout) {
58
+ clearTimeout(this._resizeTimeout);
59
+ delete this._resizeTimeout;
60
+ }
61
+ const handleResize = async () => {
62
+ const canvas = this.container.canvas;
63
+ await canvas.windowResize();
64
+ };
65
+ this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.resize.delay * Constants_js_1.millisecondsToSeconds);
66
+ };
67
+ _manageListeners = add => {
68
+ const handlers = this._handlers;
69
+ this._manageResize(add);
70
+ (0, Utils_js_1.manageListener)(document, Constants_js_1.visibilityChangeEvent, handlers.visibilityChange, add, false);
71
+ };
72
+ _manageResize = add => {
73
+ const handlers = this._handlers, container = this.container, options = container.actualOptions;
74
+ if (!options.resize.enable) {
75
+ return;
76
+ }
77
+ if (typeof ResizeObserver === "undefined") {
78
+ (0, Utils_js_1.manageListener)(globalThis, Constants_js_1.resizeEvent, handlers.resize, add);
79
+ return;
80
+ }
81
+ const canvasEl = container.canvas.element;
82
+ if (this._resizeObserver && !add) {
83
+ if (canvasEl) {
84
+ this._resizeObserver.unobserve(canvasEl);
85
+ }
86
+ this._resizeObserver.disconnect();
87
+ delete this._resizeObserver;
88
+ }
89
+ else if (!this._resizeObserver && add && canvasEl) {
90
+ this._resizeObserver = new ResizeObserver((entries) => {
91
+ const entry = entries.find(e => e.target === canvasEl);
92
+ if (!entry) {
93
+ return;
94
+ }
95
+ this._handleWindowResize();
96
+ });
97
+ this._resizeObserver.observe(canvasEl);
98
+ }
99
+ };
341
100
  }
342
101
  exports.EventListeners = EventListeners;
343
102
  });
@@ -11,6 +11,8 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Point = void 0;
13
13
  class Point {
14
+ particle;
15
+ position;
14
16
  constructor(position, particle) {
15
17
  this.position = position;
16
18
  this.particle = particle;
@@ -14,17 +14,14 @@
14
14
  const Constants_js_1 = require("./Constants.js");
15
15
  const MathUtils_js_1 = require("../../Utils/MathUtils.js");
16
16
  class QuadTree {
17
+ rectangle;
18
+ capacity;
19
+ _divided;
20
+ _points;
21
+ _subs;
17
22
  constructor(rectangle, capacity) {
18
23
  this.rectangle = rectangle;
19
24
  this.capacity = capacity;
20
- this._subdivide = () => {
21
- const { x, y } = this.rectangle.position, { width, height } = this.rectangle.size, { capacity } = this;
22
- for (let i = 0; i < Constants_js_1.subdivideCount; i++) {
23
- const fixedIndex = i % Constants_js_1.double;
24
- this._subs.push(new QuadTree(new Ranges_js_1.Rectangle(x + width * Constants_js_1.half * fixedIndex, y + height * Constants_js_1.half * (Math.round(i * Constants_js_1.half) - fixedIndex), width * Constants_js_1.half, height * Constants_js_1.half), capacity));
25
- }
26
- this._divided = true;
27
- };
28
25
  this._points = [];
29
26
  this._divided = false;
30
27
  this._subs = [];
@@ -68,6 +65,14 @@
68
65
  queryRectangle(position, size, check) {
69
66
  return this.query(new Ranges_js_1.Rectangle(position.x, position.y, size.width, size.height), check);
70
67
  }
68
+ _subdivide = () => {
69
+ const { x, y } = this.rectangle.position, { width, height } = this.rectangle.size, { capacity } = this;
70
+ for (let i = 0; i < Constants_js_1.subdivideCount; i++) {
71
+ const fixedIndex = i % Constants_js_1.double;
72
+ this._subs.push(new QuadTree(new Ranges_js_1.Rectangle(x + width * Constants_js_1.half * fixedIndex, y + height * Constants_js_1.half * (Math.round(i * Constants_js_1.half) - fixedIndex), width * Constants_js_1.half, height * Constants_js_1.half), capacity));
73
+ }
74
+ this._divided = true;
75
+ };
71
76
  }
72
77
  exports.QuadTree = QuadTree;
73
78
  });
@@ -14,6 +14,8 @@
14
14
  const MathUtils_js_1 = require("../../Utils/MathUtils.js");
15
15
  const Constants_js_1 = require("./Constants.js");
16
16
  class BaseRange {
17
+ position;
18
+ type;
17
19
  constructor(x, y, type) {
18
20
  this.position = {
19
21
  x: x,
@@ -24,6 +26,7 @@
24
26
  }
25
27
  exports.BaseRange = BaseRange;
26
28
  class Circle extends BaseRange {
29
+ radius;
27
30
  constructor(x, y, radius) {
28
31
  super(x, y, RangeType_js_1.RangeType.circle);
29
32
  this.radius = radius;
@@ -49,6 +52,7 @@
49
52
  }
50
53
  exports.Circle = Circle;
51
54
  class Rectangle extends BaseRange {
55
+ size;
52
56
  constructor(x, y, width, height) {
53
57
  super(x, y, RangeType_js_1.RangeType.rectangle);
54
58
  this.size = {
@@ -12,11 +12,10 @@
12
12
  exports.Vector = exports.Vector3d = void 0;
13
13
  const Constants_js_1 = require("./Constants.js");
14
14
  class Vector3d {
15
+ x;
16
+ y;
17
+ z;
15
18
  constructor(x = Constants_js_1.originPoint.x, y = Constants_js_1.originPoint.y, z = Constants_js_1.originPoint.z) {
16
- this._updateFromAngle = (angle, length) => {
17
- this.x = Math.cos(angle) * length;
18
- this.y = Math.sin(angle) * length;
19
- };
20
19
  this.x = x;
21
20
  this.y = y;
22
21
  this.z = z;
@@ -104,6 +103,10 @@
104
103
  this.y -= v.y;
105
104
  this.z -= v.z;
106
105
  }
106
+ _updateFromAngle = (angle, length) => {
107
+ this.x = Math.cos(angle) * length;
108
+ this.y = Math.sin(angle) * length;
109
+ };
107
110
  }
108
111
  exports.Vector3d = Vector3d;
109
112
  class Vector extends Vector3d {
@@ -13,31 +13,46 @@
13
13
  var EasingType;
14
14
  (function (EasingType) {
15
15
  EasingType["easeInBack"] = "ease-in-back";
16
+ EasingType["easeInBounce"] = "ease-in-bounce";
16
17
  EasingType["easeInCirc"] = "ease-in-circ";
17
18
  EasingType["easeInCubic"] = "ease-in-cubic";
19
+ EasingType["easeInElastic"] = "ease-in-elastic";
20
+ EasingType["easeInExpo"] = "ease-in-expo";
21
+ EasingType["easeInGaussian"] = "ease-in-gaussian";
18
22
  EasingType["easeInLinear"] = "ease-in-linear";
19
23
  EasingType["easeInQuad"] = "ease-in-quad";
20
24
  EasingType["easeInQuart"] = "ease-in-quart";
21
25
  EasingType["easeInQuint"] = "ease-in-quint";
22
- EasingType["easeInExpo"] = "ease-in-expo";
26
+ EasingType["easeInSigmoid"] = "ease-in-sigmoid";
23
27
  EasingType["easeInSine"] = "ease-in-sine";
28
+ EasingType["easeInSmoothstep"] = "ease-in-smoothstep";
24
29
  EasingType["easeOutBack"] = "ease-out-back";
30
+ EasingType["easeOutBounce"] = "ease-out-bounce";
25
31
  EasingType["easeOutCirc"] = "ease-out-circ";
26
32
  EasingType["easeOutCubic"] = "ease-out-cubic";
33
+ EasingType["easeOutElastic"] = "ease-out-elastic";
34
+ EasingType["easeOutExpo"] = "ease-out-expo";
35
+ EasingType["easeOutGaussian"] = "ease-out-gaussian";
27
36
  EasingType["easeOutLinear"] = "ease-out-linear";
28
37
  EasingType["easeOutQuad"] = "ease-out-quad";
29
38
  EasingType["easeOutQuart"] = "ease-out-quart";
30
39
  EasingType["easeOutQuint"] = "ease-out-quint";
31
- EasingType["easeOutExpo"] = "ease-out-expo";
40
+ EasingType["easeOutSigmoid"] = "ease-out-sigmoid";
32
41
  EasingType["easeOutSine"] = "ease-out-sine";
42
+ EasingType["easeOutSmoothstep"] = "ease-out-smoothstep";
33
43
  EasingType["easeInOutBack"] = "ease-in-out-back";
44
+ EasingType["easeInOutBounce"] = "ease-in-out-bounce";
34
45
  EasingType["easeInOutCirc"] = "ease-in-out-circ";
35
46
  EasingType["easeInOutCubic"] = "ease-in-out-cubic";
47
+ EasingType["easeInOutElastic"] = "ease-in-out-elastic";
48
+ EasingType["easeInOutExpo"] = "ease-in-out-expo";
49
+ EasingType["easeInOutGaussian"] = "ease-in-out-gaussian";
36
50
  EasingType["easeInOutLinear"] = "ease-in-out-linear";
37
51
  EasingType["easeInOutQuad"] = "ease-in-out-quad";
38
52
  EasingType["easeInOutQuart"] = "ease-in-out-quart";
39
53
  EasingType["easeInOutQuint"] = "ease-in-out-quint";
40
- EasingType["easeInOutExpo"] = "ease-in-out-expo";
54
+ EasingType["easeInOutSigmoid"] = "ease-in-out-sigmoid";
41
55
  EasingType["easeInOutSine"] = "ease-in-out-sine";
56
+ EasingType["easeInOutSmoothstep"] = "ease-in-out-smoothstep";
42
57
  })(EasingType || (exports.EasingType = EasingType = {}));
43
58
  });
@@ -14,6 +14,7 @@
14
14
  const HslAnimation_js_1 = require("./HslAnimation.js");
15
15
  const OptionsColor_js_1 = require("./OptionsColor.js");
16
16
  class AnimatableColor extends OptionsColor_js_1.OptionsColor {
17
+ animation;
17
18
  constructor() {
18
19
  super();
19
20
  this.animation = new HslAnimation_js_1.HslAnimation();
@@ -15,6 +15,12 @@
15
15
  const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
16
16
  const MathUtils_js_1 = require("../../Utils/MathUtils.js");
17
17
  class AnimationOptions {
18
+ count;
19
+ decay;
20
+ delay;
21
+ enable;
22
+ speed;
23
+ sync;
18
24
  constructor() {
19
25
  this.count = 0;
20
26
  this.enable = false;
@@ -49,6 +55,8 @@
49
55
  }
50
56
  exports.AnimationOptions = AnimationOptions;
51
57
  class RangedAnimationOptions extends AnimationOptions {
58
+ mode;
59
+ startValue;
52
60
  constructor() {
53
61
  super();
54
62
  this.mode = AnimationMode_js_1.AnimationMode.auto;
@@ -13,6 +13,12 @@
13
13
  const OptionsColor_js_1 = require("../OptionsColor.js");
14
14
  const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
15
15
  class Background {
16
+ color;
17
+ image;
18
+ opacity;
19
+ position;
20
+ repeat;
21
+ size;
16
22
  constructor() {
17
23
  this.color = new OptionsColor_js_1.OptionsColor();
18
24
  this.color.value = "";
@@ -14,6 +14,7 @@
14
14
  const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
15
15
  const MathUtils_js_1 = require("../../Utils/MathUtils.js");
16
16
  class ColorAnimation extends AnimationOptions_js_1.AnimationOptions {
17
+ offset;
17
18
  constructor() {
18
19
  super();
19
20
  this.offset = 0;
@@ -12,6 +12,8 @@
12
12
  exports.FullScreen = void 0;
13
13
  const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
14
14
  class FullScreen {
15
+ enable;
16
+ zIndex;
15
17
  constructor() {
16
18
  this.enable = true;
17
19
  this.zIndex = 0;
@@ -13,11 +13,9 @@
13
13
  const ColorAnimation_js_1 = require("./ColorAnimation.js");
14
14
  const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
15
15
  class HslAnimation {
16
- constructor() {
17
- this.h = new ColorAnimation_js_1.ColorAnimation();
18
- this.s = new ColorAnimation_js_1.ColorAnimation();
19
- this.l = new ColorAnimation_js_1.ColorAnimation();
20
- }
16
+ h = new ColorAnimation_js_1.ColorAnimation();
17
+ l = new ColorAnimation_js_1.ColorAnimation();
18
+ s = new ColorAnimation_js_1.ColorAnimation();
21
19
  load(data) {
22
20
  if ((0, TypeUtils_js_1.isNull)(data)) {
23
21
  return;