@tsparticles/engine 3.3.0 → 3.5.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 (272) hide show
  1. package/README.md +0 -4
  2. package/browser/Core/Canvas.js +27 -22
  3. package/browser/Core/Container.js +57 -44
  4. package/browser/Core/Engine.js +82 -74
  5. package/browser/Core/Particle.js +29 -15
  6. package/browser/Core/Particles.js +23 -24
  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 +3 -2
  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 +13 -7
  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 +28 -14
  56. package/browser/Utils/RgbColorManager.js +11 -4
  57. package/browser/Utils/Utils.js +37 -31
  58. package/cjs/Core/Canvas.js +27 -22
  59. package/cjs/Core/Container.js +57 -44
  60. package/cjs/Core/Engine.js +82 -74
  61. package/cjs/Core/Particle.js +29 -15
  62. package/cjs/Core/Particles.js +23 -24
  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 +3 -2
  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 +24 -19
  108. package/cjs/Utils/ColorUtils.js +37 -30
  109. package/cjs/Utils/EventDispatcher.js +1 -1
  110. package/cjs/Utils/HslColorManager.js +11 -4
  111. package/cjs/Utils/NumberUtils.js +54 -38
  112. package/cjs/Utils/OptionsUtils.js +2 -3
  113. package/cjs/Utils/RgbColorManager.js +11 -4
  114. package/cjs/Utils/TypeUtils.js +6 -7
  115. package/cjs/Utils/Utils.js +66 -61
  116. package/cjs/init.js +1 -2
  117. package/esm/Core/Canvas.js +27 -22
  118. package/esm/Core/Container.js +57 -44
  119. package/esm/Core/Engine.js +82 -74
  120. package/esm/Core/Particle.js +29 -15
  121. package/esm/Core/Particles.js +23 -24
  122. package/esm/Core/Utils/EventListeners.js +18 -17
  123. package/esm/Core/Utils/ExternalInteractorBase.js +2 -1
  124. package/esm/Core/Utils/InteractionManager.js +3 -2
  125. package/esm/Core/Utils/ParticlesInteractorBase.js +2 -1
  126. package/esm/Core/Utils/QuadTree.js +1 -1
  127. package/esm/Core/Utils/Ranges.js +5 -4
  128. package/esm/Enums/AnimationStatus.js +5 -1
  129. package/esm/Enums/Directions/MoveDirection.js +14 -1
  130. package/esm/Enums/Directions/OutModeDirection.js +7 -1
  131. package/esm/Enums/Directions/RotateDirection.js +6 -1
  132. package/esm/Enums/InteractivityDetect.js +6 -1
  133. package/esm/Enums/Modes/AnimationMode.js +7 -1
  134. package/esm/Enums/Modes/CollisionMode.js +6 -1
  135. package/esm/Enums/Modes/LimitMode.js +5 -1
  136. package/esm/Enums/Modes/OutMode.js +8 -1
  137. package/esm/Enums/Modes/PixelMode.js +5 -1
  138. package/esm/Enums/Modes/ResponsiveMode.js +5 -1
  139. package/esm/Enums/Modes/ThemeMode.js +6 -1
  140. package/esm/Enums/Types/AlterType.js +5 -1
  141. package/esm/Enums/Types/DestroyType.js +6 -1
  142. package/esm/Enums/Types/DivType.js +5 -1
  143. package/esm/Enums/Types/EasingType.js +30 -1
  144. package/esm/Enums/Types/EventType.js +15 -1
  145. package/esm/Enums/Types/GradientType.js +6 -1
  146. package/esm/Enums/Types/InteractorType.js +5 -1
  147. package/esm/Enums/Types/ParticleOutType.js +6 -1
  148. package/esm/Enums/Types/StartValueType.js +6 -1
  149. package/esm/Options/Classes/AnimationOptions.js +4 -2
  150. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  151. package/esm/Options/Classes/Interactivity/Events/Events.js +1 -1
  152. package/esm/Options/Classes/Interactivity/Interactivity.js +2 -1
  153. package/esm/Options/Classes/ManualParticle.js +2 -1
  154. package/esm/Options/Classes/Options.js +14 -12
  155. package/esm/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  156. package/esm/Options/Classes/Particles/Move/Move.js +2 -1
  157. package/esm/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  158. package/esm/Options/Classes/Particles/Move/OutModes.js +2 -1
  159. package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  160. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  161. package/esm/Options/Classes/Particles/ParticlesOptions.js +1 -1
  162. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  163. package/esm/Options/Classes/Responsive.js +5 -4
  164. package/esm/Options/Classes/Theme/ThemeDefault.js +2 -1
  165. package/esm/Types/RangeType.js +5 -1
  166. package/esm/Utils/CanvasUtils.js +13 -7
  167. package/esm/Utils/ColorUtils.js +17 -9
  168. package/esm/Utils/EventDispatcher.js +1 -1
  169. package/esm/Utils/HslColorManager.js +11 -4
  170. package/esm/Utils/NumberUtils.js +28 -14
  171. package/esm/Utils/RgbColorManager.js +11 -4
  172. package/esm/Utils/Utils.js +37 -31
  173. package/package.json +1 -1
  174. package/report.html +1 -1
  175. package/tsparticles.engine.js +327 -225
  176. package/tsparticles.engine.min.js +1 -1
  177. package/tsparticles.engine.min.js.LICENSE.txt +1 -1
  178. package/types/Core/Container.d.ts +4 -2
  179. package/types/Core/Engine.d.ts +6 -5
  180. package/types/Core/Interfaces/IPlugin.d.ts +3 -4
  181. package/types/Core/Interfaces/IShapeDrawer.d.ts +1 -0
  182. package/types/Core/Particle.d.ts +1 -0
  183. package/types/Enums/AnimationStatus.d.ts +1 -1
  184. package/types/Enums/Directions/MoveDirection.d.ts +1 -1
  185. package/types/Enums/Directions/OutModeDirection.d.ts +1 -1
  186. package/types/Enums/Directions/RotateDirection.d.ts +1 -1
  187. package/types/Enums/InteractivityDetect.d.ts +1 -1
  188. package/types/Enums/Modes/AnimationMode.d.ts +1 -1
  189. package/types/Enums/Modes/CollisionMode.d.ts +1 -1
  190. package/types/Enums/Modes/LimitMode.d.ts +1 -1
  191. package/types/Enums/Modes/OutMode.d.ts +1 -1
  192. package/types/Enums/Modes/PixelMode.d.ts +1 -1
  193. package/types/Enums/Modes/ResponsiveMode.d.ts +1 -1
  194. package/types/Enums/Modes/ThemeMode.d.ts +1 -1
  195. package/types/Enums/Types/AlterType.d.ts +1 -1
  196. package/types/Enums/Types/DestroyType.d.ts +1 -1
  197. package/types/Enums/Types/DivType.d.ts +1 -1
  198. package/types/Enums/Types/EasingType.d.ts +1 -1
  199. package/types/Enums/Types/EventType.d.ts +1 -1
  200. package/types/Enums/Types/GradientType.d.ts +1 -1
  201. package/types/Enums/Types/InteractorType.d.ts +1 -1
  202. package/types/Enums/Types/ParticleOutType.d.ts +1 -1
  203. package/types/Enums/Types/StartValueType.d.ts +1 -1
  204. package/types/Options/Classes/Options.d.ts +2 -1
  205. package/types/Options/Classes/Responsive.d.ts +2 -2
  206. package/types/Options/Classes/Theme/Theme.d.ts +2 -2
  207. package/types/Options/Interfaces/IResponsive.d.ts +2 -3
  208. package/types/Options/Interfaces/Theme/ITheme.d.ts +2 -3
  209. package/types/Types/RangeType.d.ts +1 -1
  210. package/types/Utils/NumberUtils.d.ts +3 -0
  211. package/umd/Core/Canvas.js +27 -22
  212. package/umd/Core/Container.js +58 -45
  213. package/umd/Core/Engine.js +83 -99
  214. package/umd/Core/Particle.js +30 -16
  215. package/umd/Core/Particles.js +24 -25
  216. package/umd/Core/Utils/EventListeners.js +19 -18
  217. package/umd/Core/Utils/ExternalInteractorBase.js +3 -2
  218. package/umd/Core/Utils/InteractionManager.js +4 -3
  219. package/umd/Core/Utils/ParticlesInteractorBase.js +3 -2
  220. package/umd/Core/Utils/QuadTree.js +1 -1
  221. package/umd/Core/Utils/Ranges.js +6 -5
  222. package/umd/Enums/AnimationStatus.js +6 -0
  223. package/umd/Enums/Directions/MoveDirection.js +15 -0
  224. package/umd/Enums/Directions/OutModeDirection.js +8 -0
  225. package/umd/Enums/Directions/RotateDirection.js +7 -0
  226. package/umd/Enums/InteractivityDetect.js +7 -0
  227. package/umd/Enums/Modes/AnimationMode.js +8 -0
  228. package/umd/Enums/Modes/CollisionMode.js +7 -0
  229. package/umd/Enums/Modes/LimitMode.js +6 -0
  230. package/umd/Enums/Modes/OutMode.js +9 -0
  231. package/umd/Enums/Modes/PixelMode.js +6 -0
  232. package/umd/Enums/Modes/ResponsiveMode.js +6 -0
  233. package/umd/Enums/Modes/ThemeMode.js +7 -0
  234. package/umd/Enums/Types/AlterType.js +6 -0
  235. package/umd/Enums/Types/DestroyType.js +7 -0
  236. package/umd/Enums/Types/DivType.js +6 -0
  237. package/umd/Enums/Types/EasingType.js +31 -0
  238. package/umd/Enums/Types/EventType.js +16 -0
  239. package/umd/Enums/Types/GradientType.js +7 -0
  240. package/umd/Enums/Types/InteractorType.js +6 -0
  241. package/umd/Enums/Types/ParticleOutType.js +7 -0
  242. package/umd/Enums/Types/StartValueType.js +7 -0
  243. package/umd/Options/Classes/AnimationOptions.js +5 -3
  244. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +3 -2
  245. package/umd/Options/Classes/Interactivity/Events/Events.js +1 -1
  246. package/umd/Options/Classes/Interactivity/Interactivity.js +3 -2
  247. package/umd/Options/Classes/ManualParticle.js +3 -2
  248. package/umd/Options/Classes/Options.js +15 -13
  249. package/umd/Options/Classes/Particles/Collisions/Collisions.js +3 -2
  250. package/umd/Options/Classes/Particles/Move/Move.js +3 -2
  251. package/umd/Options/Classes/Particles/Move/MoveCenter.js +3 -2
  252. package/umd/Options/Classes/Particles/Move/OutModes.js +3 -2
  253. package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +3 -2
  254. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +3 -2
  255. package/umd/Options/Classes/Particles/ParticlesOptions.js +1 -1
  256. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +3 -2
  257. package/umd/Options/Classes/Responsive.js +6 -5
  258. package/umd/Options/Classes/Theme/ThemeDefault.js +3 -2
  259. package/umd/Types/RangeType.js +6 -0
  260. package/umd/Utils/CanvasUtils.js +25 -20
  261. package/umd/Utils/ColorUtils.js +38 -31
  262. package/umd/Utils/EventDispatcher.js +1 -1
  263. package/umd/Utils/HslColorManager.js +11 -4
  264. package/umd/Utils/NumberUtils.js +55 -39
  265. package/umd/Utils/OptionsUtils.js +2 -3
  266. package/umd/Utils/RgbColorManager.js +11 -4
  267. package/umd/Utils/TypeUtils.js +6 -7
  268. package/umd/Utils/Utils.js +67 -62
  269. package/umd/init.js +1 -2
  270. package/174.min.js +0 -2
  271. package/174.min.js.LICENSE.txt +0 -1
  272. package/dist_browser_Core_Container_js.js +0 -102
@@ -4,17 +4,18 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./Events/Events.js", "./Modes/Modes.js"], factory);
7
+ define(["require", "exports", "./Events/Events.js", "../../../Enums/InteractivityDetect.js", "./Modes/Modes.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Interactivity = void 0;
13
13
  const Events_js_1 = require("./Events/Events.js");
14
+ const InteractivityDetect_js_1 = require("../../../Enums/InteractivityDetect.js");
14
15
  const Modes_js_1 = require("./Modes/Modes.js");
15
16
  class Interactivity {
16
17
  constructor(engine, container) {
17
- this.detectsOn = "window";
18
+ this.detectsOn = InteractivityDetect_js_1.InteractivityDetect.window;
18
19
  this.events = new Events_js_1.Events();
19
20
  this.modes = new Modes_js_1.Modes(engine, container);
20
21
  }
@@ -4,12 +4,13 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../Utils/Utils.js"], factory);
7
+ define(["require", "exports", "../../Enums/Modes/PixelMode.js", "../../Utils/Utils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ManualParticle = void 0;
13
+ const PixelMode_js_1 = require("../../Enums/Modes/PixelMode.js");
13
14
  const Utils_js_1 = require("../../Utils/Utils.js");
14
15
  const defaultPosition = 50;
15
16
  class ManualParticle {
@@ -21,7 +22,7 @@
21
22
  this.position = {
22
23
  x: data.position.x ?? defaultPosition,
23
24
  y: data.position.y ?? defaultPosition,
24
- mode: data.position.mode ?? "percent",
25
+ mode: data.position.mode ?? PixelMode_js_1.PixelMode.percent,
25
26
  };
26
27
  }
27
28
  if (data.options) {
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../Utils/Utils.js", "./Background/Background.js", "./BackgroundMask/BackgroundMask.js", "./FullScreen/FullScreen.js", "./Interactivity/Interactivity.js", "./ManualParticle.js", "./Responsive.js", "./Theme/Theme.js", "../../Utils/TypeUtils.js", "../../Utils/OptionsUtils.js", "../../Utils/NumberUtils.js"], factory);
7
+ define(["require", "exports", "../../Utils/Utils.js", "./Background/Background.js", "./BackgroundMask/BackgroundMask.js", "./FullScreen/FullScreen.js", "./Interactivity/Interactivity.js", "./ManualParticle.js", "./Responsive.js", "../../Enums/Modes/ResponsiveMode.js", "./Theme/Theme.js", "../../Enums/Modes/ThemeMode.js", "../../Utils/TypeUtils.js", "../../Utils/OptionsUtils.js", "../../Utils/NumberUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -17,17 +17,19 @@
17
17
  const Interactivity_js_1 = require("./Interactivity/Interactivity.js");
18
18
  const ManualParticle_js_1 = require("./ManualParticle.js");
19
19
  const Responsive_js_1 = require("./Responsive.js");
20
+ const ResponsiveMode_js_1 = require("../../Enums/Modes/ResponsiveMode.js");
20
21
  const Theme_js_1 = require("./Theme/Theme.js");
22
+ const ThemeMode_js_1 = require("../../Enums/Modes/ThemeMode.js");
21
23
  const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
22
24
  const OptionsUtils_js_1 = require("../../Utils/OptionsUtils.js");
23
25
  const NumberUtils_js_1 = require("../../Utils/NumberUtils.js");
24
26
  class Options {
25
27
  constructor(engine, container) {
26
- this._findDefaultTheme = (mode) => {
27
- return (this.themes.find((theme) => theme.default.value && theme.default.mode === mode) ??
28
- this.themes.find((theme) => theme.default.value && theme.default.mode === "any"));
28
+ this._findDefaultTheme = mode => {
29
+ return (this.themes.find(theme => theme.default.value && theme.default.mode === mode) ??
30
+ this.themes.find(theme => theme.default.value && theme.default.mode === ThemeMode_js_1.ThemeMode.any));
29
31
  };
30
- this._importPreset = (preset) => {
32
+ this._importPreset = preset => {
31
33
  this.load(this._engine.getPreset(preset));
32
34
  };
33
35
  this._engine = engine;
@@ -58,7 +60,7 @@
58
60
  return;
59
61
  }
60
62
  if (data.preset !== undefined) {
61
- (0, Utils_js_1.executeOnSingleOrMultiple)(data.preset, (preset) => this._importPreset(preset));
63
+ (0, Utils_js_1.executeOnSingleOrMultiple)(data.preset, preset => this._importPreset(preset));
62
64
  }
63
65
  if (data.autoPlay !== undefined) {
64
66
  this.autoPlay = data.autoPlay;
@@ -106,7 +108,7 @@
106
108
  this.backgroundMask.load(data.backgroundMask);
107
109
  this.interactivity.load(data.interactivity);
108
110
  if (data.manualParticles) {
109
- this.manualParticles = data.manualParticles.map((t) => {
111
+ this.manualParticles = data.manualParticles.map(t => {
110
112
  const tmp = new ManualParticle_js_1.ManualParticle();
111
113
  tmp.load(t);
112
114
  return tmp;
@@ -136,7 +138,7 @@
136
138
  this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);
137
139
  if (data.themes !== undefined) {
138
140
  for (const theme of data.themes) {
139
- const existingTheme = this.themes.find((t) => t.name === theme.name);
141
+ const existingTheme = this.themes.find(t => t.name === theme.name);
140
142
  if (!existingTheme) {
141
143
  const optTheme = new Theme_js_1.Theme();
142
144
  optTheme.load(theme);
@@ -147,24 +149,24 @@
147
149
  }
148
150
  }
149
151
  }
150
- this.defaultThemes.dark = this._findDefaultTheme("dark")?.name;
151
- this.defaultThemes.light = this._findDefaultTheme("light")?.name;
152
+ this.defaultThemes.dark = this._findDefaultTheme(ThemeMode_js_1.ThemeMode.dark)?.name;
153
+ this.defaultThemes.light = this._findDefaultTheme(ThemeMode_js_1.ThemeMode.light)?.name;
152
154
  }
153
155
  setResponsive(width, pxRatio, defaultOptions) {
154
156
  this.load(defaultOptions);
155
- const responsiveOptions = this.responsive.find((t) => t.mode === "screen" && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);
157
+ const responsiveOptions = this.responsive.find(t => t.mode === ResponsiveMode_js_1.ResponsiveMode.screen && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);
156
158
  this.load(responsiveOptions?.options);
157
159
  return responsiveOptions?.maxWidth;
158
160
  }
159
161
  setTheme(name) {
160
162
  if (name) {
161
- const chosenTheme = this.themes.find((theme) => theme.name === name);
163
+ const chosenTheme = this.themes.find(theme => theme.name === name);
162
164
  if (chosenTheme) {
163
165
  this.load(chosenTheme.options);
164
166
  }
165
167
  }
166
168
  else {
167
- const mediaMatch = (0, Utils_js_1.safeMatchMedia)("(prefers-color-scheme: dark)"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = this._findDefaultTheme(clientDarkMode ? "dark" : "light");
169
+ const mediaMatch = (0, Utils_js_1.safeMatchMedia)("(prefers-color-scheme: dark)"), clientDarkMode = mediaMatch?.matches, defaultTheme = this._findDefaultTheme(clientDarkMode ? ThemeMode_js_1.ThemeMode.dark : ThemeMode_js_1.ThemeMode.light);
168
170
  if (defaultTheme) {
169
171
  this.load(defaultTheme.options);
170
172
  }
@@ -4,12 +4,13 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./CollisionsAbsorb.js", "./CollisionsOverlap.js", "../Bounce/ParticlesBounce.js", "../../../../Utils/NumberUtils.js"], factory);
7
+ define(["require", "exports", "../../../../Enums/Modes/CollisionMode.js", "./CollisionsAbsorb.js", "./CollisionsOverlap.js", "../Bounce/ParticlesBounce.js", "../../../../Utils/NumberUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Collisions = void 0;
13
+ const CollisionMode_js_1 = require("../../../../Enums/Modes/CollisionMode.js");
13
14
  const CollisionsAbsorb_js_1 = require("./CollisionsAbsorb.js");
14
15
  const CollisionsOverlap_js_1 = require("./CollisionsOverlap.js");
15
16
  const ParticlesBounce_js_1 = require("../Bounce/ParticlesBounce.js");
@@ -20,7 +21,7 @@
20
21
  this.bounce = new ParticlesBounce_js_1.ParticlesBounce();
21
22
  this.enable = false;
22
23
  this.maxSpeed = 50;
23
- this.mode = "bounce";
24
+ this.mode = CollisionMode_js_1.CollisionMode.bounce;
24
25
  this.overlap = new CollisionsOverlap_js_1.CollisionsOverlap();
25
26
  }
26
27
  load(data) {
@@ -4,12 +4,13 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../../../Utils/TypeUtils.js", "./MoveAngle.js", "./MoveAttract.js", "./MoveCenter.js", "./MoveGravity.js", "./Path/MovePath.js", "./MoveTrail.js", "./OutModes.js", "./Spin.js", "../../../../Utils/NumberUtils.js"], factory);
7
+ define(["require", "exports", "../../../../Enums/Directions/MoveDirection.js", "../../../../Utils/TypeUtils.js", "./MoveAngle.js", "./MoveAttract.js", "./MoveCenter.js", "./MoveGravity.js", "./Path/MovePath.js", "./MoveTrail.js", "./OutModes.js", "./Spin.js", "../../../../Utils/NumberUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Move = void 0;
13
+ const MoveDirection_js_1 = require("../../../../Enums/Directions/MoveDirection.js");
13
14
  const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
14
15
  const MoveAngle_js_1 = require("./MoveAngle.js");
15
16
  const MoveAttract_js_1 = require("./MoveAttract.js");
@@ -27,7 +28,7 @@
27
28
  this.center = new MoveCenter_js_1.MoveCenter();
28
29
  this.decay = 0;
29
30
  this.distance = {};
30
- this.direction = "none";
31
+ this.direction = MoveDirection_js_1.MoveDirection.none;
31
32
  this.drift = 0;
32
33
  this.enable = false;
33
34
  this.gravity = new MoveGravity_js_1.MoveGravity();
@@ -4,17 +4,18 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../../Enums/Modes/PixelMode.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MoveCenter = void 0;
13
+ const PixelMode_js_1 = require("../../../../Enums/Modes/PixelMode.js");
13
14
  class MoveCenter {
14
15
  constructor() {
15
16
  this.x = 50;
16
17
  this.y = 50;
17
- this.mode = "percent";
18
+ this.mode = PixelMode_js_1.PixelMode.percent;
18
19
  this.radius = 0;
19
20
  }
20
21
  load(data) {
@@ -4,15 +4,16 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../../Enums/Modes/OutMode.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.OutModes = void 0;
13
+ const OutMode_js_1 = require("../../../../Enums/Modes/OutMode.js");
13
14
  class OutModes {
14
15
  constructor() {
15
- this.default = "out";
16
+ this.default = OutMode_js_1.OutMode.out;
16
17
  }
17
18
  load(data) {
18
19
  if (!data) {
@@ -4,15 +4,16 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../../Enums/Modes/LimitMode.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ParticlesNumberLimit = void 0;
13
+ const LimitMode_js_1 = require("../../../../Enums/Modes/LimitMode.js");
13
14
  class ParticlesNumberLimit {
14
15
  constructor() {
15
- this.mode = "delete";
16
+ this.mode = LimitMode_js_1.LimitMode.delete;
16
17
  this.value = 0;
17
18
  }
18
19
  load(data) {
@@ -4,17 +4,18 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../AnimationOptions.js"], factory);
7
+ define(["require", "exports", "../../../../Enums/Types/DestroyType.js", "../../AnimationOptions.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.OpacityAnimation = void 0;
13
+ const DestroyType_js_1 = require("../../../../Enums/Types/DestroyType.js");
13
14
  const AnimationOptions_js_1 = require("../../AnimationOptions.js");
14
15
  class OpacityAnimation extends AnimationOptions_js_1.RangedAnimationOptions {
15
16
  constructor() {
16
17
  super();
17
- this.destroy = "none";
18
+ this.destroy = DestroyType_js_1.DestroyType.none;
18
19
  this.speed = 2;
19
20
  }
20
21
  load(data) {
@@ -77,7 +77,7 @@
77
77
  }
78
78
  const strokeToLoad = data.stroke;
79
79
  if (strokeToLoad) {
80
- this.stroke = (0, Utils_js_1.executeOnSingleOrMultiple)(strokeToLoad, (t) => {
80
+ this.stroke = (0, Utils_js_1.executeOnSingleOrMultiple)(strokeToLoad, t => {
81
81
  const tmp = new Stroke_js_1.Stroke();
82
82
  tmp.load(t);
83
83
  return tmp;
@@ -4,17 +4,18 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../AnimationOptions.js"], factory);
7
+ define(["require", "exports", "../../../../Enums/Types/DestroyType.js", "../../AnimationOptions.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SizeAnimation = void 0;
13
+ const DestroyType_js_1 = require("../../../../Enums/Types/DestroyType.js");
13
14
  const AnimationOptions_js_1 = require("../../AnimationOptions.js");
14
15
  class SizeAnimation extends AnimationOptions_js_1.RangedAnimationOptions {
15
16
  constructor() {
16
17
  super();
17
- this.destroy = "none";
18
+ this.destroy = DestroyType_js_1.DestroyType.none;
18
19
  this.speed = 5;
19
20
  }
20
21
  load(data) {
@@ -4,18 +4,19 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../Utils/Utils.js"], factory);
7
+ define(["require", "exports", "../../Enums/Modes/ResponsiveMode.js", "../../Utils/Utils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Responsive = void 0;
13
+ const ResponsiveMode_js_1 = require("../../Enums/Modes/ResponsiveMode.js");
13
14
  const Utils_js_1 = require("../../Utils/Utils.js");
14
15
  class Responsive {
15
16
  constructor() {
16
17
  this.maxWidth = Infinity;
17
18
  this.options = {};
18
- this.mode = "canvas";
19
+ this.mode = ResponsiveMode_js_1.ResponsiveMode.canvas;
19
20
  }
20
21
  load(data) {
21
22
  if (!data) {
@@ -25,11 +26,11 @@
25
26
  this.maxWidth = data.maxWidth;
26
27
  }
27
28
  if (data.mode !== undefined) {
28
- if (data.mode === "screen") {
29
- this.mode = "screen";
29
+ if (data.mode === ResponsiveMode_js_1.ResponsiveMode.screen) {
30
+ this.mode = ResponsiveMode_js_1.ResponsiveMode.screen;
30
31
  }
31
32
  else {
32
- this.mode = "canvas";
33
+ this.mode = ResponsiveMode_js_1.ResponsiveMode.canvas;
33
34
  }
34
35
  }
35
36
  if (data.options !== undefined) {
@@ -4,16 +4,17 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../Enums/Modes/ThemeMode.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ThemeDefault = void 0;
13
+ const ThemeMode_js_1 = require("../../../Enums/Modes/ThemeMode.js");
13
14
  class ThemeDefault {
14
15
  constructor() {
15
16
  this.auto = false;
16
- this.mode = "any";
17
+ this.mode = ThemeMode_js_1.ThemeMode.any;
17
18
  this.value = false;
18
19
  }
19
20
  load(data) {
@@ -9,4 +9,10 @@
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RangeType = void 0;
13
+ var RangeType;
14
+ (function (RangeType) {
15
+ RangeType["circle"] = "circle";
16
+ RangeType["rectangle"] = "rectangle";
17
+ })(RangeType || (exports.RangeType = RangeType = {}));
12
18
  });
@@ -4,26 +4,40 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./ColorUtils.js"], factory);
7
+ define(["require", "exports", "../Enums/Types/AlterType.js", "./ColorUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.alterHsl = exports.drawParticlePlugin = exports.drawPlugin = exports.drawShapeAfterDraw = exports.drawShape = exports.drawEffect = exports.drawParticle = exports.clear = exports.paintImage = exports.paintBase = exports.drawLine = void 0;
12
+ exports.drawLine = drawLine;
13
+ exports.paintBase = paintBase;
14
+ exports.paintImage = paintImage;
15
+ exports.clear = clear;
16
+ exports.drawParticle = drawParticle;
17
+ exports.drawEffect = drawEffect;
18
+ exports.drawShape = drawShape;
19
+ exports.drawShapeAfterDraw = drawShapeAfterDraw;
20
+ exports.drawPlugin = drawPlugin;
21
+ exports.drawParticlePlugin = drawParticlePlugin;
22
+ exports.alterHsl = alterHsl;
23
+ const AlterType_js_1 = require("../Enums/Types/AlterType.js");
13
24
  const ColorUtils_js_1 = require("./ColorUtils.js");
14
- const origin = { x: 0, y: 0 };
25
+ const origin = { x: 0, y: 0 }, defaultTransform = {
26
+ a: 1,
27
+ b: 0,
28
+ c: 0,
29
+ d: 1,
30
+ };
15
31
  function drawLine(context, begin, end) {
16
32
  context.beginPath();
17
33
  context.moveTo(begin.x, begin.y);
18
34
  context.lineTo(end.x, end.y);
19
35
  context.closePath();
20
36
  }
21
- exports.drawLine = drawLine;
22
37
  function paintBase(context, dimension, baseColor) {
23
38
  context.fillStyle = baseColor ?? "rgba(0,0,0,0)";
24
39
  context.fillRect(origin.x, origin.y, dimension.width, dimension.height);
25
40
  }
26
- exports.paintBase = paintBase;
27
41
  function paintImage(context, dimension, image, opacity) {
28
42
  if (!image) {
29
43
  return;
@@ -32,20 +46,18 @@
32
46
  context.drawImage(image, origin.x, origin.y, dimension.width, dimension.height);
33
47
  context.globalAlpha = 1;
34
48
  }
35
- exports.paintImage = paintImage;
36
49
  function clear(context, dimension) {
37
50
  context.clearRect(origin.x, origin.y, dimension.width, dimension.height);
38
51
  }
39
- exports.clear = clear;
40
52
  function drawParticle(data) {
41
53
  const { container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow, transform, } = data, pos = particle.getPosition(), defaultAngle = 0, angle = particle.rotation + (particle.pathRotation ? particle.velocity.angle : defaultAngle), rotateData = {
42
54
  sin: Math.sin(angle),
43
55
  cos: Math.cos(angle),
44
- }, defaultTransformFactor = 1, transformData = {
45
- a: rotateData.cos * (transform.a ?? defaultTransformFactor),
46
- b: rotateData.sin * (transform.b ?? defaultTransformFactor),
47
- c: -rotateData.sin * (transform.c ?? defaultTransformFactor),
48
- d: rotateData.cos * (transform.d ?? defaultTransformFactor),
56
+ }, rotating = !!angle, identity = 1, transformData = {
57
+ a: rotateData.cos * (transform.a ?? defaultTransform.a),
58
+ b: rotating ? rotateData.sin * (transform.b ?? identity) : transform.b ?? defaultTransform.b,
59
+ c: rotating ? -rotateData.sin * (transform.c ?? identity) : transform.c ?? defaultTransform.c,
60
+ d: rotateData.cos * (transform.d ?? defaultTransform.d),
49
61
  };
50
62
  context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);
51
63
  if (backgroundMask) {
@@ -82,7 +94,6 @@
82
94
  context.globalCompositeOperation = "source-over";
83
95
  context.resetTransform();
84
96
  }
85
- exports.drawParticle = drawParticle;
86
97
  function drawEffect(data) {
87
98
  const { container, context, particle, radius, opacity, delta, transformData } = data;
88
99
  if (!particle.effect) {
@@ -102,7 +113,6 @@
102
113
  transformData: { ...transformData },
103
114
  });
104
115
  }
105
- exports.drawEffect = drawEffect;
106
116
  function drawShape(data) {
107
117
  const { container, context, particle, radius, opacity, delta, strokeWidth, transformData } = data, minStrokeWidth = 0;
108
118
  if (!particle.shape) {
@@ -132,7 +142,6 @@
132
142
  context.fill();
133
143
  }
134
144
  }
135
- exports.drawShape = drawShape;
136
145
  function drawShapeAfterDraw(data) {
137
146
  const { container, context, particle, radius, opacity, delta, transformData } = data;
138
147
  if (!particle.shape) {
@@ -152,28 +161,24 @@
152
161
  transformData: { ...transformData },
153
162
  });
154
163
  }
155
- exports.drawShapeAfterDraw = drawShapeAfterDraw;
156
164
  function drawPlugin(context, plugin, delta) {
157
165
  if (!plugin.draw) {
158
166
  return;
159
167
  }
160
168
  plugin.draw(context, delta);
161
169
  }
162
- exports.drawPlugin = drawPlugin;
163
170
  function drawParticlePlugin(context, plugin, particle, delta) {
164
171
  if (!plugin.drawParticle) {
165
172
  return;
166
173
  }
167
174
  plugin.drawParticle(context, particle, delta);
168
175
  }
169
- exports.drawParticlePlugin = drawParticlePlugin;
170
176
  function alterHsl(color, type, value) {
171
177
  const lFactor = 1;
172
178
  return {
173
179
  h: color.h,
174
180
  s: color.s,
175
- l: color.l + (type === "darken" ? -lFactor : lFactor) * value,
181
+ l: color.l + (type === AlterType_js_1.AlterType.darken ? -lFactor : lFactor) * value,
176
182
  };
177
183
  }
178
- exports.alterHsl = alterHsl;
179
184
  });