@tsparticles/engine 3.2.2 → 3.4.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 (281) hide show
  1. package/README.md +0 -4
  2. package/browser/Core/Canvas.js +34 -29
  3. package/browser/Core/Container.js +60 -47
  4. package/browser/Core/Engine.js +82 -74
  5. package/browser/Core/Particle.js +40 -26
  6. package/browser/Core/Particles.js +51 -52
  7. package/browser/Core/Utils/EventListeners.js +18 -17
  8. package/browser/Core/Utils/ExternalInteractorBase.js +2 -1
  9. package/browser/Core/Utils/InteractionManager.js +7 -6
  10. package/browser/Core/Utils/ParticlesInteractorBase.js +2 -1
  11. package/browser/Core/Utils/QuadTree.js +1 -1
  12. package/browser/Core/Utils/Ranges.js +5 -4
  13. package/browser/Enums/AnimationStatus.js +5 -1
  14. package/browser/Enums/Directions/MoveDirection.js +14 -1
  15. package/browser/Enums/Directions/OutModeDirection.js +7 -1
  16. package/browser/Enums/Directions/RotateDirection.js +6 -1
  17. package/browser/Enums/InteractivityDetect.js +6 -1
  18. package/browser/Enums/Modes/AnimationMode.js +7 -1
  19. package/browser/Enums/Modes/CollisionMode.js +6 -1
  20. package/browser/Enums/Modes/LimitMode.js +5 -1
  21. package/browser/Enums/Modes/OutMode.js +8 -1
  22. package/browser/Enums/Modes/PixelMode.js +5 -1
  23. package/browser/Enums/Modes/ResponsiveMode.js +5 -1
  24. package/browser/Enums/Modes/ThemeMode.js +6 -1
  25. package/browser/Enums/Types/AlterType.js +5 -1
  26. package/browser/Enums/Types/DestroyType.js +6 -1
  27. package/browser/Enums/Types/DivType.js +5 -1
  28. package/browser/Enums/Types/EasingType.js +30 -1
  29. package/browser/Enums/Types/EventType.js +15 -1
  30. package/browser/Enums/Types/GradientType.js +6 -1
  31. package/browser/Enums/Types/InteractorType.js +5 -1
  32. package/browser/Enums/Types/ParticleOutType.js +6 -1
  33. package/browser/Enums/Types/StartValueType.js +6 -1
  34. package/browser/Options/Classes/AnimationOptions.js +4 -2
  35. package/browser/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  36. package/browser/Options/Classes/Interactivity/Events/Events.js +1 -1
  37. package/browser/Options/Classes/Interactivity/Interactivity.js +2 -1
  38. package/browser/Options/Classes/ManualParticle.js +2 -1
  39. package/browser/Options/Classes/Options.js +14 -12
  40. package/browser/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  41. package/browser/Options/Classes/Particles/Move/Move.js +2 -1
  42. package/browser/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  43. package/browser/Options/Classes/Particles/Move/OutModes.js +2 -1
  44. package/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  45. package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  46. package/browser/Options/Classes/Particles/ParticlesOptions.js +1 -1
  47. package/browser/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  48. package/browser/Options/Classes/Responsive.js +5 -4
  49. package/browser/Options/Classes/Theme/ThemeDefault.js +2 -1
  50. package/browser/Types/RangeType.js +5 -1
  51. package/browser/Utils/CanvasUtils.js +27 -21
  52. package/browser/Utils/ColorUtils.js +17 -9
  53. package/browser/Utils/EventDispatcher.js +1 -1
  54. package/browser/Utils/HslColorManager.js +11 -4
  55. package/browser/Utils/NumberUtils.js +11 -10
  56. package/browser/Utils/RgbColorManager.js +11 -4
  57. package/browser/Utils/Utils.js +37 -31
  58. package/cjs/Core/Canvas.js +34 -29
  59. package/cjs/Core/Container.js +60 -47
  60. package/cjs/Core/Engine.js +82 -97
  61. package/cjs/Core/Particle.js +40 -26
  62. package/cjs/Core/Particles.js +52 -76
  63. package/cjs/Core/Utils/EventListeners.js +18 -17
  64. package/cjs/Core/Utils/ExternalInteractorBase.js +2 -1
  65. package/cjs/Core/Utils/InteractionManager.js +7 -6
  66. package/cjs/Core/Utils/ParticlesInteractorBase.js +2 -1
  67. package/cjs/Core/Utils/QuadTree.js +1 -1
  68. package/cjs/Core/Utils/Ranges.js +5 -4
  69. package/cjs/Enums/AnimationStatus.js +6 -0
  70. package/cjs/Enums/Directions/MoveDirection.js +15 -0
  71. package/cjs/Enums/Directions/OutModeDirection.js +8 -0
  72. package/cjs/Enums/Directions/RotateDirection.js +7 -0
  73. package/cjs/Enums/InteractivityDetect.js +7 -0
  74. package/cjs/Enums/Modes/AnimationMode.js +8 -0
  75. package/cjs/Enums/Modes/CollisionMode.js +7 -0
  76. package/cjs/Enums/Modes/LimitMode.js +6 -0
  77. package/cjs/Enums/Modes/OutMode.js +9 -0
  78. package/cjs/Enums/Modes/PixelMode.js +6 -0
  79. package/cjs/Enums/Modes/ResponsiveMode.js +6 -0
  80. package/cjs/Enums/Modes/ThemeMode.js +7 -0
  81. package/cjs/Enums/Types/AlterType.js +6 -0
  82. package/cjs/Enums/Types/DestroyType.js +7 -0
  83. package/cjs/Enums/Types/DivType.js +6 -0
  84. package/cjs/Enums/Types/EasingType.js +31 -0
  85. package/cjs/Enums/Types/EventType.js +16 -0
  86. package/cjs/Enums/Types/GradientType.js +7 -0
  87. package/cjs/Enums/Types/InteractorType.js +6 -0
  88. package/cjs/Enums/Types/ParticleOutType.js +7 -0
  89. package/cjs/Enums/Types/StartValueType.js +7 -0
  90. package/cjs/Options/Classes/AnimationOptions.js +4 -2
  91. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  92. package/cjs/Options/Classes/Interactivity/Events/Events.js +1 -1
  93. package/cjs/Options/Classes/Interactivity/Interactivity.js +2 -1
  94. package/cjs/Options/Classes/ManualParticle.js +2 -1
  95. package/cjs/Options/Classes/Options.js +14 -12
  96. package/cjs/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  97. package/cjs/Options/Classes/Particles/Move/Move.js +2 -1
  98. package/cjs/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  99. package/cjs/Options/Classes/Particles/Move/OutModes.js +2 -1
  100. package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  101. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  102. package/cjs/Options/Classes/Particles/ParticlesOptions.js +1 -1
  103. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  104. package/cjs/Options/Classes/Responsive.js +5 -4
  105. package/cjs/Options/Classes/Theme/ThemeDefault.js +2 -1
  106. package/cjs/Types/RangeType.js +6 -0
  107. package/cjs/Utils/CanvasUtils.js +27 -21
  108. package/cjs/Utils/ColorUtils.js +17 -9
  109. package/cjs/Utils/EventDispatcher.js +1 -1
  110. package/cjs/Utils/HslColorManager.js +11 -4
  111. package/cjs/Utils/NumberUtils.js +11 -10
  112. package/cjs/Utils/RgbColorManager.js +11 -4
  113. package/cjs/Utils/Utils.js +37 -31
  114. package/esm/Core/Canvas.js +34 -29
  115. package/esm/Core/Container.js +60 -47
  116. package/esm/Core/Engine.js +82 -74
  117. package/esm/Core/Particle.js +40 -26
  118. package/esm/Core/Particles.js +51 -52
  119. package/esm/Core/Utils/EventListeners.js +18 -17
  120. package/esm/Core/Utils/ExternalInteractorBase.js +2 -1
  121. package/esm/Core/Utils/InteractionManager.js +7 -6
  122. package/esm/Core/Utils/ParticlesInteractorBase.js +2 -1
  123. package/esm/Core/Utils/QuadTree.js +1 -1
  124. package/esm/Core/Utils/Ranges.js +5 -4
  125. package/esm/Enums/AnimationStatus.js +5 -1
  126. package/esm/Enums/Directions/MoveDirection.js +14 -1
  127. package/esm/Enums/Directions/OutModeDirection.js +7 -1
  128. package/esm/Enums/Directions/RotateDirection.js +6 -1
  129. package/esm/Enums/InteractivityDetect.js +6 -1
  130. package/esm/Enums/Modes/AnimationMode.js +7 -1
  131. package/esm/Enums/Modes/CollisionMode.js +6 -1
  132. package/esm/Enums/Modes/LimitMode.js +5 -1
  133. package/esm/Enums/Modes/OutMode.js +8 -1
  134. package/esm/Enums/Modes/PixelMode.js +5 -1
  135. package/esm/Enums/Modes/ResponsiveMode.js +5 -1
  136. package/esm/Enums/Modes/ThemeMode.js +6 -1
  137. package/esm/Enums/Types/AlterType.js +5 -1
  138. package/esm/Enums/Types/DestroyType.js +6 -1
  139. package/esm/Enums/Types/DivType.js +5 -1
  140. package/esm/Enums/Types/EasingType.js +30 -1
  141. package/esm/Enums/Types/EventType.js +15 -1
  142. package/esm/Enums/Types/GradientType.js +6 -1
  143. package/esm/Enums/Types/InteractorType.js +5 -1
  144. package/esm/Enums/Types/ParticleOutType.js +6 -1
  145. package/esm/Enums/Types/StartValueType.js +6 -1
  146. package/esm/Options/Classes/AnimationOptions.js +4 -2
  147. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  148. package/esm/Options/Classes/Interactivity/Events/Events.js +1 -1
  149. package/esm/Options/Classes/Interactivity/Interactivity.js +2 -1
  150. package/esm/Options/Classes/ManualParticle.js +2 -1
  151. package/esm/Options/Classes/Options.js +14 -12
  152. package/esm/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  153. package/esm/Options/Classes/Particles/Move/Move.js +2 -1
  154. package/esm/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  155. package/esm/Options/Classes/Particles/Move/OutModes.js +2 -1
  156. package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  157. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  158. package/esm/Options/Classes/Particles/ParticlesOptions.js +1 -1
  159. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  160. package/esm/Options/Classes/Responsive.js +5 -4
  161. package/esm/Options/Classes/Theme/ThemeDefault.js +2 -1
  162. package/esm/Types/RangeType.js +5 -1
  163. package/esm/Utils/CanvasUtils.js +27 -21
  164. package/esm/Utils/ColorUtils.js +17 -9
  165. package/esm/Utils/EventDispatcher.js +1 -1
  166. package/esm/Utils/HslColorManager.js +11 -4
  167. package/esm/Utils/NumberUtils.js +11 -10
  168. package/esm/Utils/RgbColorManager.js +11 -4
  169. package/esm/Utils/Utils.js +37 -31
  170. package/package.json +1 -1
  171. package/report.html +1 -1
  172. package/tsparticles.engine.js +327 -225
  173. package/tsparticles.engine.min.js +1 -1
  174. package/tsparticles.engine.min.js.LICENSE.txt +1 -1
  175. package/types/Core/Canvas.d.ts +4 -4
  176. package/types/Core/Container.d.ts +4 -2
  177. package/types/Core/Engine.d.ts +6 -5
  178. package/types/Core/Interfaces/IContainerPlugin.d.ts +4 -4
  179. package/types/Core/Interfaces/IEffectDrawer.d.ts +3 -3
  180. package/types/Core/Interfaces/IExternalInteractor.d.ts +1 -1
  181. package/types/Core/Interfaces/IMovePathGenerator.d.ts +2 -2
  182. package/types/Core/Interfaces/IParticleMover.d.ts +2 -2
  183. package/types/Core/Interfaces/IParticleUpdater.d.ts +2 -2
  184. package/types/Core/Interfaces/IParticlesInteractor.d.ts +1 -1
  185. package/types/Core/Interfaces/IPlugin.d.ts +3 -4
  186. package/types/Core/Interfaces/IShapeDrawer.d.ts +5 -4
  187. package/types/Core/Particle.d.ts +3 -2
  188. package/types/Core/Particles.d.ts +7 -7
  189. package/types/Core/Utils/ExternalInteractorBase.d.ts +1 -1
  190. package/types/Core/Utils/InteractionManager.d.ts +2 -2
  191. package/types/Core/Utils/ParticlesInteractorBase.d.ts +1 -1
  192. package/types/Enums/AnimationStatus.d.ts +1 -1
  193. package/types/Enums/Directions/MoveDirection.d.ts +1 -1
  194. package/types/Enums/Directions/OutModeDirection.d.ts +1 -1
  195. package/types/Enums/Directions/RotateDirection.d.ts +1 -1
  196. package/types/Enums/InteractivityDetect.d.ts +1 -1
  197. package/types/Enums/Modes/AnimationMode.d.ts +1 -1
  198. package/types/Enums/Modes/CollisionMode.d.ts +1 -1
  199. package/types/Enums/Modes/LimitMode.d.ts +1 -1
  200. package/types/Enums/Modes/OutMode.d.ts +1 -1
  201. package/types/Enums/Modes/PixelMode.d.ts +1 -1
  202. package/types/Enums/Modes/ResponsiveMode.d.ts +1 -1
  203. package/types/Enums/Modes/ThemeMode.d.ts +1 -1
  204. package/types/Enums/Types/AlterType.d.ts +1 -1
  205. package/types/Enums/Types/DestroyType.d.ts +1 -1
  206. package/types/Enums/Types/DivType.d.ts +1 -1
  207. package/types/Enums/Types/EasingType.d.ts +1 -1
  208. package/types/Enums/Types/EventType.d.ts +1 -1
  209. package/types/Enums/Types/GradientType.d.ts +1 -1
  210. package/types/Enums/Types/InteractorType.d.ts +1 -1
  211. package/types/Enums/Types/ParticleOutType.d.ts +1 -1
  212. package/types/Enums/Types/StartValueType.d.ts +1 -1
  213. package/types/Options/Classes/Options.d.ts +2 -1
  214. package/types/Options/Classes/Responsive.d.ts +2 -2
  215. package/types/Options/Classes/Theme/Theme.d.ts +2 -2
  216. package/types/Options/Interfaces/IResponsive.d.ts +2 -3
  217. package/types/Options/Interfaces/Theme/ITheme.d.ts +2 -3
  218. package/types/Types/RangeType.d.ts +1 -1
  219. package/types/Utils/CanvasUtils.d.ts +6 -6
  220. package/umd/Core/Canvas.js +34 -29
  221. package/umd/Core/Container.js +61 -48
  222. package/umd/Core/Engine.js +83 -99
  223. package/umd/Core/Particle.js +41 -27
  224. package/umd/Core/Particles.js +53 -78
  225. package/umd/Core/Utils/EventListeners.js +19 -18
  226. package/umd/Core/Utils/ExternalInteractorBase.js +3 -2
  227. package/umd/Core/Utils/InteractionManager.js +8 -7
  228. package/umd/Core/Utils/ParticlesInteractorBase.js +3 -2
  229. package/umd/Core/Utils/QuadTree.js +1 -1
  230. package/umd/Core/Utils/Ranges.js +6 -5
  231. package/umd/Enums/AnimationStatus.js +6 -0
  232. package/umd/Enums/Directions/MoveDirection.js +15 -0
  233. package/umd/Enums/Directions/OutModeDirection.js +8 -0
  234. package/umd/Enums/Directions/RotateDirection.js +7 -0
  235. package/umd/Enums/InteractivityDetect.js +7 -0
  236. package/umd/Enums/Modes/AnimationMode.js +8 -0
  237. package/umd/Enums/Modes/CollisionMode.js +7 -0
  238. package/umd/Enums/Modes/LimitMode.js +6 -0
  239. package/umd/Enums/Modes/OutMode.js +9 -0
  240. package/umd/Enums/Modes/PixelMode.js +6 -0
  241. package/umd/Enums/Modes/ResponsiveMode.js +6 -0
  242. package/umd/Enums/Modes/ThemeMode.js +7 -0
  243. package/umd/Enums/Types/AlterType.js +6 -0
  244. package/umd/Enums/Types/DestroyType.js +7 -0
  245. package/umd/Enums/Types/DivType.js +6 -0
  246. package/umd/Enums/Types/EasingType.js +31 -0
  247. package/umd/Enums/Types/EventType.js +16 -0
  248. package/umd/Enums/Types/GradientType.js +7 -0
  249. package/umd/Enums/Types/InteractorType.js +6 -0
  250. package/umd/Enums/Types/ParticleOutType.js +7 -0
  251. package/umd/Enums/Types/StartValueType.js +7 -0
  252. package/umd/Options/Classes/AnimationOptions.js +5 -3
  253. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +3 -2
  254. package/umd/Options/Classes/Interactivity/Events/Events.js +1 -1
  255. package/umd/Options/Classes/Interactivity/Interactivity.js +3 -2
  256. package/umd/Options/Classes/ManualParticle.js +3 -2
  257. package/umd/Options/Classes/Options.js +15 -13
  258. package/umd/Options/Classes/Particles/Collisions/Collisions.js +3 -2
  259. package/umd/Options/Classes/Particles/Move/Move.js +3 -2
  260. package/umd/Options/Classes/Particles/Move/MoveCenter.js +3 -2
  261. package/umd/Options/Classes/Particles/Move/OutModes.js +3 -2
  262. package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +3 -2
  263. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +3 -2
  264. package/umd/Options/Classes/Particles/ParticlesOptions.js +1 -1
  265. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +3 -2
  266. package/umd/Options/Classes/Responsive.js +6 -5
  267. package/umd/Options/Classes/Theme/ThemeDefault.js +3 -2
  268. package/umd/Types/RangeType.js +6 -0
  269. package/umd/Utils/CanvasUtils.js +28 -22
  270. package/umd/Utils/ColorUtils.js +18 -10
  271. package/umd/Utils/EventDispatcher.js +1 -1
  272. package/umd/Utils/HslColorManager.js +11 -4
  273. package/umd/Utils/NumberUtils.js +12 -11
  274. package/umd/Utils/RgbColorManager.js +11 -4
  275. package/umd/Utils/Utils.js +38 -32
  276. package/373.min.js +0 -2
  277. package/373.min.js.LICENSE.txt +0 -1
  278. package/438.min.js +0 -2
  279. package/438.min.js.LICENSE.txt +0 -1
  280. package/dist_browser_Core_Container_js.js +0 -92
  281. package/dist_browser_Core_Particle_js.js +0 -32
@@ -7,7 +7,7 @@ import type { IMouseData } from "./Interfaces/IMouseData.js";
7
7
  import type { IParticleMover } from "./Interfaces/IParticleMover.js";
8
8
  import type { IParticleUpdater } from "./Interfaces/IParticleUpdater.js";
9
9
  import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js";
10
- import type { Particle } from "./Particle.js";
10
+ import { Particle } from "./Particle.js";
11
11
  import { QuadTree } from "./Utils/QuadTree.js";
12
12
  import type { RecursivePartial } from "../Types/RecursivePartial.js";
13
13
  export declare class Particles {
@@ -29,26 +29,26 @@ export declare class Particles {
29
29
  private _zArray;
30
30
  constructor(engine: Engine, container: Container);
31
31
  get count(): number;
32
- addManualParticles(): Promise<void>;
33
- addParticle(position?: ICoordinates, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string, initializer?: (particle: Particle) => boolean): Promise<Particle | undefined>;
32
+ addManualParticles(): void;
33
+ addParticle(position?: ICoordinates, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string, initializer?: (particle: Particle) => boolean): Particle | undefined;
34
34
  clear(): void;
35
35
  destroy(): void;
36
- draw(delta: IDelta): Promise<void>;
36
+ draw(delta: IDelta): void;
37
37
  filter(condition: (particle: Particle) => boolean): Particle[];
38
38
  find(condition: (particle: Particle) => boolean): Particle | undefined;
39
39
  get(index: number): Particle | undefined;
40
40
  handleClickMode(mode: string): void;
41
41
  init(): Promise<void>;
42
42
  initPlugins(): Promise<void>;
43
- push(nb: number, mouse?: IMouseData, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string): Promise<void>;
43
+ push(nb: number, mouse?: IMouseData, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string): void;
44
44
  redraw(): Promise<void>;
45
45
  remove(particle: Particle, group?: string, override?: boolean): void;
46
46
  removeAt(index: number, quantity?: number, group?: string, override?: boolean): void;
47
47
  removeQuantity(quantity: number, group?: string): void;
48
- setDensity(): Promise<void>;
48
+ setDensity(): void;
49
49
  setLastZIndex(zIndex: number): void;
50
50
  setResizeFactor(factor: IDimension): void;
51
- update(delta: IDelta): Promise<void>;
51
+ update(delta: IDelta): void;
52
52
  private readonly _addToPool;
53
53
  private readonly _applyDensity;
54
54
  private readonly _initDensityFactor;
@@ -9,7 +9,7 @@ export declare abstract class ExternalInteractorBase<TContainer extends Containe
9
9
  protected constructor(container: TContainer);
10
10
  abstract clear(particle: TParticle, delta: IDelta): void;
11
11
  abstract init(): void;
12
- abstract interact(delta: IDelta): Promise<void>;
12
+ abstract interact(delta: IDelta): void;
13
13
  abstract isEnabled(particle?: TParticle): boolean;
14
14
  abstract reset(particle: TParticle): void;
15
15
  }
@@ -9,9 +9,9 @@ export declare class InteractionManager {
9
9
  private _interactors;
10
10
  private _particleInteractors;
11
11
  constructor(engine: Engine, container: Container);
12
- externalInteract(delta: IDelta): Promise<void>;
12
+ externalInteract(delta: IDelta): void;
13
13
  handleClickMode(mode: string): void;
14
14
  init(): Promise<void>;
15
- particlesInteract(particle: Particle, delta: IDelta): Promise<void>;
15
+ particlesInteract(particle: Particle, delta: IDelta): void;
16
16
  reset(particle: Particle): void;
17
17
  }
@@ -9,7 +9,7 @@ export declare abstract class ParticlesInteractorBase<TContainer extends Contain
9
9
  protected constructor(container: TContainer);
10
10
  abstract clear(particle: TParticle, delta: IDelta): void;
11
11
  abstract init(): void;
12
- abstract interact(particle: TParticle, delta: IDelta): Promise<void>;
12
+ abstract interact(particle: TParticle, delta: IDelta): void;
13
13
  abstract isEnabled(particle: TParticle): boolean;
14
14
  abstract reset(particle: TParticle): void;
15
15
  }
@@ -1,4 +1,4 @@
1
- export declare const enum AnimationStatus {
1
+ export declare enum AnimationStatus {
2
2
  increasing = "increasing",
3
3
  decreasing = "decreasing"
4
4
  }
@@ -1,4 +1,4 @@
1
- export declare const enum MoveDirection {
1
+ export declare enum MoveDirection {
2
2
  bottom = "bottom",
3
3
  bottomLeft = "bottom-left",
4
4
  bottomRight = "bottom-right",
@@ -1,4 +1,4 @@
1
- export declare const enum OutModeDirection {
1
+ export declare enum OutModeDirection {
2
2
  bottom = "bottom",
3
3
  left = "left",
4
4
  right = "right",
@@ -1,4 +1,4 @@
1
- export declare const enum RotateDirection {
1
+ export declare enum RotateDirection {
2
2
  clockwise = "clockwise",
3
3
  counterClockwise = "counter-clockwise",
4
4
  random = "random"
@@ -1,4 +1,4 @@
1
- export declare const enum InteractivityDetect {
1
+ export declare enum InteractivityDetect {
2
2
  canvas = "canvas",
3
3
  parent = "parent",
4
4
  window = "window"
@@ -1,4 +1,4 @@
1
- export declare const enum AnimationMode {
1
+ export declare enum AnimationMode {
2
2
  auto = "auto",
3
3
  increase = "increase",
4
4
  decrease = "decrease",
@@ -1,4 +1,4 @@
1
- export declare const enum CollisionMode {
1
+ export declare enum CollisionMode {
2
2
  absorb = "absorb",
3
3
  bounce = "bounce",
4
4
  destroy = "destroy"
@@ -1,4 +1,4 @@
1
- export declare const enum LimitMode {
1
+ export declare enum LimitMode {
2
2
  delete = "delete",
3
3
  wait = "wait"
4
4
  }
@@ -1,4 +1,4 @@
1
- export declare const enum OutMode {
1
+ export declare enum OutMode {
2
2
  bounce = "bounce",
3
3
  none = "none",
4
4
  out = "out",
@@ -1,4 +1,4 @@
1
- export declare const enum PixelMode {
1
+ export declare enum PixelMode {
2
2
  precise = "precise",
3
3
  percent = "percent"
4
4
  }
@@ -1,4 +1,4 @@
1
- export declare const enum ResponsiveMode {
1
+ export declare enum ResponsiveMode {
2
2
  screen = "screen",
3
3
  canvas = "canvas"
4
4
  }
@@ -1,4 +1,4 @@
1
- export declare const enum ThemeMode {
1
+ export declare enum ThemeMode {
2
2
  any = "any",
3
3
  dark = "dark",
4
4
  light = "light"
@@ -1,4 +1,4 @@
1
- export declare const enum AlterType {
1
+ export declare enum AlterType {
2
2
  darken = "darken",
3
3
  enlighten = "enlighten"
4
4
  }
@@ -1,4 +1,4 @@
1
- export declare const enum DestroyType {
1
+ export declare enum DestroyType {
2
2
  none = "none",
3
3
  max = "max",
4
4
  min = "min"
@@ -1,4 +1,4 @@
1
- export declare const enum DivType {
1
+ export declare enum DivType {
2
2
  circle = "circle",
3
3
  rectangle = "rectangle"
4
4
  }
@@ -1,4 +1,4 @@
1
- export declare const enum EasingType {
1
+ export declare enum EasingType {
2
2
  easeInBack = "ease-in-back",
3
3
  easeInCirc = "ease-in-circ",
4
4
  easeInCubic = "ease-in-cubic",
@@ -1,4 +1,4 @@
1
- export declare const enum EventType {
1
+ export declare enum EventType {
2
2
  configAdded = "configAdded",
3
3
  containerInit = "containerInit",
4
4
  particlesSetup = "particlesSetup",
@@ -1,4 +1,4 @@
1
- export declare const enum GradientType {
1
+ export declare enum GradientType {
2
2
  linear = "linear",
3
3
  radial = "radial",
4
4
  random = "random"
@@ -1,4 +1,4 @@
1
- export declare const enum InteractorType {
1
+ export declare enum InteractorType {
2
2
  external = "external",
3
3
  particles = "particles"
4
4
  }
@@ -1,4 +1,4 @@
1
- export declare const enum ParticleOutType {
1
+ export declare enum ParticleOutType {
2
2
  normal = "normal",
3
3
  inside = "inside",
4
4
  outside = "outside"
@@ -1,4 +1,4 @@
1
- export declare const enum StartValueType {
1
+ export declare enum StartValueType {
2
2
  max = "max",
3
3
  min = "min",
4
4
  random = "random"
@@ -5,6 +5,7 @@ import type { Engine } from "../../Core/Engine.js";
5
5
  import { FullScreen } from "./FullScreen/FullScreen.js";
6
6
  import type { IOptionLoader } from "../Interfaces/IOptionLoader.js";
7
7
  import type { IOptions } from "../Interfaces/IOptions.js";
8
+ import type { ISourceOptions } from "../../Types/ISourceOptions.js";
8
9
  import { Interactivity } from "./Interactivity/Interactivity.js";
9
10
  import { ManualParticle } from "./ManualParticle.js";
10
11
  import type { RangeValue } from "../../Types/RangeValue.js";
@@ -44,7 +45,7 @@ export declare class Options implements IOptions, IOptionLoader<IOptions> {
44
45
  private readonly _container;
45
46
  private readonly _engine;
46
47
  constructor(engine: Engine, container: Container);
47
- load(data?: RecursivePartial<IOptions>): void;
48
+ load(data?: ISourceOptions): void;
48
49
  setResponsive(width: number, pxRatio: number, defaultOptions: IOptions): number | undefined;
49
50
  setTheme(name?: string): void;
50
51
  private readonly _findDefaultTheme;
@@ -1,12 +1,12 @@
1
1
  import type { IOptionLoader } from "../Interfaces/IOptionLoader.js";
2
- import type { IOptions } from "../Interfaces/IOptions.js";
3
2
  import type { IResponsive } from "../Interfaces/IResponsive.js";
3
+ import type { ISourceOptions } from "../../Types/ISourceOptions.js";
4
4
  import type { RecursivePartial } from "../../Types/RecursivePartial.js";
5
5
  import { ResponsiveMode } from "../../Enums/Modes/ResponsiveMode.js";
6
6
  export declare class Responsive implements IResponsive, IOptionLoader<IResponsive> {
7
7
  maxWidth: number;
8
8
  mode: ResponsiveMode | keyof typeof ResponsiveMode;
9
- options: RecursivePartial<IOptions>;
9
+ options: ISourceOptions;
10
10
  constructor();
11
11
  load(data?: RecursivePartial<IResponsive>): void;
12
12
  }
@@ -1,12 +1,12 @@
1
1
  import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js";
2
- import type { IOptions } from "../../Interfaces/IOptions.js";
2
+ import type { ISourceOptions } from "../../../Types/ISourceOptions.js";
3
3
  import type { ITheme } from "../../Interfaces/Theme/ITheme.js";
4
4
  import type { RecursivePartial } from "../../../Types/RecursivePartial.js";
5
5
  import { ThemeDefault } from "./ThemeDefault.js";
6
6
  export declare class Theme implements ITheme, IOptionLoader<ITheme> {
7
7
  readonly default: ThemeDefault;
8
8
  name: string;
9
- options?: RecursivePartial<IOptions>;
9
+ options?: ISourceOptions;
10
10
  constructor();
11
11
  load(data?: RecursivePartial<ITheme>): void;
12
12
  }
@@ -1,8 +1,7 @@
1
- import type { IOptions } from "./IOptions.js";
2
- import type { RecursivePartial } from "../../Types/RecursivePartial.js";
1
+ import type { ISourceOptions } from "../../Types/ISourceOptions.js";
3
2
  import type { ResponsiveMode } from "../../Enums/Modes/ResponsiveMode.js";
4
3
  export interface IResponsive {
5
4
  maxWidth: number;
6
5
  mode: ResponsiveMode | keyof typeof ResponsiveMode;
7
- options: RecursivePartial<IOptions>;
6
+ options: ISourceOptions;
8
7
  }
@@ -1,8 +1,7 @@
1
- import type { IOptions } from "../IOptions.js";
1
+ import type { ISourceOptions } from "../../../Types/ISourceOptions.js";
2
2
  import type { IThemeDefault } from "./IThemeDefault.js";
3
- import type { RecursivePartial } from "../../../Types/RecursivePartial.js";
4
3
  export interface ITheme {
5
4
  default: IThemeDefault;
6
5
  name: string;
7
- options?: RecursivePartial<IOptions>;
6
+ options?: ISourceOptions;
8
7
  }
@@ -1,4 +1,4 @@
1
- export declare const enum RangeType {
1
+ export declare enum RangeType {
2
2
  circle = "circle",
3
3
  rectangle = "rectangle"
4
4
  }
@@ -11,7 +11,7 @@ export declare function drawLine(context: CanvasRenderingContext2D, begin: ICoor
11
11
  export declare function paintBase(context: CanvasRenderingContext2D, dimension: IDimension, baseColor?: string): void;
12
12
  export declare function paintImage(context: CanvasRenderingContext2D, dimension: IDimension, image: HTMLImageElement | undefined, opacity: number): void;
13
13
  export declare function clear(context: CanvasRenderingContext2D, dimension: IDimension): void;
14
- export declare function drawParticle(data: IDrawParticleParams): Promise<void>;
14
+ export declare function drawParticle(data: IDrawParticleParams): void;
15
15
  interface DrawShapeData {
16
16
  container: Container;
17
17
  context: CanvasRenderingContext2D;
@@ -27,10 +27,10 @@ interface DrawShapeData {
27
27
  d: number;
28
28
  };
29
29
  }
30
- export declare function drawEffect(data: DrawShapeData): Promise<void>;
31
- export declare function drawShape(data: DrawShapeData): Promise<void>;
32
- export declare function drawShapeAfterDraw(data: DrawShapeData): Promise<void>;
33
- export declare function drawPlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, delta: IDelta): Promise<void>;
34
- export declare function drawParticlePlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, particle: Particle, delta: IDelta): Promise<void>;
30
+ export declare function drawEffect(data: DrawShapeData): void;
31
+ export declare function drawShape(data: DrawShapeData): void;
32
+ export declare function drawShapeAfterDraw(data: DrawShapeData): void;
33
+ export declare function drawPlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, delta: IDelta): void;
34
+ export declare function drawParticlePlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, particle: Particle, delta: IDelta): void;
35
35
  export declare function alterHsl(color: IHsl, type: AlterType, value: number): IHsl;
36
36
  export {};
@@ -43,7 +43,7 @@
43
43
  class Canvas {
44
44
  constructor(container) {
45
45
  this.container = container;
46
- this._applyPostDrawUpdaters = (particle) => {
46
+ this._applyPostDrawUpdaters = particle => {
47
47
  for (const updater of this._postDrawUpdaters) {
48
48
  updater.afterDraw?.(particle);
49
49
  }
@@ -73,7 +73,7 @@
73
73
  plugin.resize?.();
74
74
  }
75
75
  };
76
- this._getPluginParticleColors = (particle) => {
76
+ this._getPluginParticleColors = particle => {
77
77
  let fColor, sColor;
78
78
  for (const plugin of this._colorPlugins) {
79
79
  if (!fColor && plugin.particleFillColor) {
@@ -113,7 +113,7 @@
113
113
  };
114
114
  resolve();
115
115
  });
116
- img.addEventListener("error", (evt) => {
116
+ img.addEventListener("error", evt => {
117
117
  reject(evt.error);
118
118
  });
119
119
  img.src = cover.image;
@@ -174,28 +174,33 @@
174
174
  };
175
175
  resolve();
176
176
  });
177
- img.addEventListener("error", (evt) => {
177
+ img.addEventListener("error", evt => {
178
178
  reject(evt.error);
179
179
  });
180
180
  img.src = trailFill.image;
181
181
  });
182
182
  }
183
183
  };
184
- this._paintBase = (baseColor) => {
185
- this.draw((ctx) => (0, CanvasUtils_js_1.paintBase)(ctx, this.size, baseColor));
184
+ this._paintBase = baseColor => {
185
+ this.draw(ctx => (0, CanvasUtils_js_1.paintBase)(ctx, this.size, baseColor));
186
186
  };
187
187
  this._paintImage = (image, opacity) => {
188
- this.draw((ctx) => (0, CanvasUtils_js_1.paintImage)(ctx, this.size, image, opacity));
188
+ this.draw(ctx => (0, CanvasUtils_js_1.paintImage)(ctx, this.size, image, opacity));
189
189
  };
190
190
  this._repairStyle = () => {
191
191
  const element = this.element;
192
192
  if (!element) {
193
193
  return;
194
194
  }
195
- this._safeMutationObserver((observer) => observer.disconnect());
195
+ this._safeMutationObserver(observer => observer.disconnect());
196
196
  this._initStyle();
197
197
  this.initBackground();
198
- this._safeMutationObserver((observer) => observer.observe(element, { attributes: true }));
198
+ this._safeMutationObserver(observer => {
199
+ if (!element || !(element instanceof Node)) {
200
+ return;
201
+ }
202
+ observer.observe(element, { attributes: true });
203
+ });
199
204
  };
200
205
  this._resetOriginalStyle = () => {
201
206
  const element = this.element, originalStyle = this._originalStyle;
@@ -204,7 +209,7 @@
204
209
  }
205
210
  setStyle(element, originalStyle);
206
211
  };
207
- this._safeMutationObserver = (callback) => {
212
+ this._safeMutationObserver = callback => {
208
213
  if (!this._mutationObserver) {
209
214
  return;
210
215
  }
@@ -253,7 +258,7 @@
253
258
  }
254
259
  }
255
260
  else if (options.clear) {
256
- this.draw((ctx) => {
261
+ this.draw(ctx => {
257
262
  (0, CanvasUtils_js_1.clear)(ctx, this.size);
258
263
  });
259
264
  }
@@ -282,11 +287,11 @@
282
287
  drawAsync(cb) {
283
288
  const ctx = this._context;
284
289
  if (!ctx) {
285
- return Promise.resolve(undefined);
290
+ return undefined;
286
291
  }
287
292
  return cb(ctx);
288
293
  }
289
- async drawParticle(particle, delta) {
294
+ drawParticle(particle, delta) {
290
295
  if (particle.spawning || particle.destroyed) {
291
296
  return;
292
297
  }
@@ -305,13 +310,13 @@
305
310
  if (!fColor && !sColor) {
306
311
  return;
307
312
  }
308
- await this.drawAsync(async (ctx) => {
313
+ this.draw((ctx) => {
309
314
  const container = this.container, options = container.actualOptions, zIndexOptions = particle.options.zIndex, zIndexFactorOffset = 1, zIndexFactor = zIndexFactorOffset - particle.zIndexFactor, zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate, defaultOpacity = 1, opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity, strokeOpacity = particle.strokeOpacity ?? opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor, transform = {}, colorStyles = {
310
315
  fill: fColor ? (0, ColorUtils_js_1.getStyleFromHsl)(fColor, zOpacity) : undefined,
311
316
  };
312
317
  colorStyles.stroke = sColor ? (0, ColorUtils_js_1.getStyleFromHsl)(sColor, zStrokeOpacity) : colorStyles.fill;
313
318
  this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);
314
- await (0, CanvasUtils_js_1.drawParticle)({
319
+ (0, CanvasUtils_js_1.drawParticle)({
315
320
  container,
316
321
  context: ctx,
317
322
  particle,
@@ -327,15 +332,15 @@
327
332
  this._applyPostDrawUpdaters(particle);
328
333
  });
329
334
  }
330
- async drawParticlePlugin(plugin, particle, delta) {
331
- await this.drawAsync((ctx) => (0, CanvasUtils_js_1.drawParticlePlugin)(ctx, plugin, particle, delta));
335
+ drawParticlePlugin(plugin, particle, delta) {
336
+ this.draw(ctx => (0, CanvasUtils_js_1.drawParticlePlugin)(ctx, plugin, particle, delta));
332
337
  }
333
- async drawPlugin(plugin, delta) {
334
- await this.drawAsync((ctx) => (0, CanvasUtils_js_1.drawPlugin)(ctx, plugin, delta));
338
+ drawPlugin(plugin, delta) {
339
+ this.draw(ctx => (0, CanvasUtils_js_1.drawPlugin)(ctx, plugin, delta));
335
340
  }
336
341
  async init() {
337
- this._safeMutationObserver((obs) => obs.disconnect());
338
- this._mutationObserver = (0, Utils_js_1.safeMutationObserver)((records) => {
342
+ this._safeMutationObserver(obs => obs.disconnect());
343
+ this._mutationObserver = (0, Utils_js_1.safeMutationObserver)(records => {
339
344
  for (const record of records) {
340
345
  if (record.type === "attributes" && record.attributeName === "style") {
341
346
  this._repairStyle();
@@ -352,8 +357,8 @@
352
357
  (0, Utils_js_1.getLogger)().error(e);
353
358
  }
354
359
  this.initBackground();
355
- this._safeMutationObserver((obs) => {
356
- if (!this.element) {
360
+ this._safeMutationObserver(obs => {
361
+ if (!this.element || !(this.element instanceof Node)) {
357
362
  return;
358
363
  }
359
364
  obs.observe(this.element, { attributes: true });
@@ -420,8 +425,8 @@
420
425
  this.size.height = canvas.offsetHeight;
421
426
  this.size.width = canvas.offsetWidth;
422
427
  this._context = this.element.getContext("2d");
423
- this._safeMutationObserver((obs) => {
424
- if (!this.element) {
428
+ this._safeMutationObserver(obs => {
429
+ if (!this.element || !(this.element instanceof Node)) {
425
430
  return;
426
431
  }
427
432
  obs.observe(this.element, { attributes: true });
@@ -431,7 +436,7 @@
431
436
  }
432
437
  paint() {
433
438
  const options = this.container.actualOptions;
434
- this.draw((ctx) => {
439
+ this.draw(ctx => {
435
440
  if (options.backgroundMask.enable && options.backgroundMask.cover) {
436
441
  (0, CanvasUtils_js_1.clear)(ctx, this.size);
437
442
  if (this._coverImage) {
@@ -475,16 +480,16 @@
475
480
  return true;
476
481
  }
477
482
  stop() {
478
- this._safeMutationObserver((obs) => obs.disconnect());
483
+ this._safeMutationObserver(obs => obs.disconnect());
479
484
  this._mutationObserver = undefined;
480
- this.draw((ctx) => (0, CanvasUtils_js_1.clear)(ctx, this.size));
485
+ this.draw(ctx => (0, CanvasUtils_js_1.clear)(ctx, this.size));
481
486
  }
482
487
  async windowResize() {
483
488
  if (!this.element || !this.resize()) {
484
489
  return;
485
490
  }
486
491
  const container = this.container, needsRefresh = container.updateActualOptions();
487
- await container.particles.setDensity();
492
+ container.particles.setDensity();
488
493
  this._applyResizePlugins();
489
494
  if (needsRefresh) {
490
495
  await container.refresh();