@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
@@ -6,10 +6,15 @@ const NumberUtils_js_1 = require("../Utils/NumberUtils.js");
6
6
  const Utils_js_1 = require("../Utils/Utils.js");
7
7
  const Constants_js_1 = require("./Utils/Constants.js");
8
8
  const ColorUtils_js_1 = require("../Utils/ColorUtils.js");
9
+ const EventType_js_1 = require("../Enums/Types/EventType.js");
9
10
  const Interactivity_js_1 = require("../Options/Classes/Interactivity/Interactivity.js");
11
+ const MoveDirection_js_1 = require("../Enums/Directions/MoveDirection.js");
12
+ const OutMode_js_1 = require("../Enums/Modes/OutMode.js");
13
+ const ParticleOutType_js_1 = require("../Enums/Types/ParticleOutType.js");
14
+ const PixelMode_js_1 = require("../Enums/Modes/PixelMode.js");
10
15
  const CanvasUtils_js_1 = require("../Utils/CanvasUtils.js");
11
16
  const OptionsUtils_js_1 = require("../Utils/OptionsUtils.js");
12
- const defaultRetryCount = 0, double = 2, half = 0.5, squareExp = 2;
17
+ const defaultRetryCount = 0, double = 2, half = 0.5, squareExp = 2, randomString = "random";
13
18
  function loadEffectData(effect, effectOptions, id, reduceDuplicates) {
14
19
  const effectData = effectOptions.options[effect];
15
20
  if (!effectData) {
@@ -58,7 +63,7 @@ class Particle {
58
63
  }), pos = Vectors_js_1.Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {
59
64
  fixOutMode({
60
65
  outMode,
61
- checkModes: ["bounce"],
66
+ checkModes: [OutMode_js_1.OutMode.bounce],
62
67
  coord: pos.x,
63
68
  maxCoord: container.canvas.size.width,
64
69
  setCb: (value) => (pos.x += value),
@@ -67,7 +72,7 @@ class Particle {
67
72
  }, fixVertical = (outMode) => {
68
73
  fixOutMode({
69
74
  outMode,
70
- checkModes: ["bounce"],
75
+ checkModes: [OutMode_js_1.OutMode.bounce],
71
76
  coord: pos.y,
72
77
  maxCoord: container.canvas.size.height,
73
78
  setCb: (value) => (pos.y += value),
@@ -86,7 +91,7 @@ class Particle {
86
91
  };
87
92
  this._calculateVelocity = () => {
88
93
  const baseVelocity = (0, NumberUtils_js_1.getParticleBaseVelocity)(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move;
89
- if (moveOptions.direction === "inside" || moveOptions.direction === "outside") {
94
+ if (moveOptions.direction === MoveDirection_js_1.MoveDirection.inside || moveOptions.direction === MoveDirection_js_1.MoveDirection.outside) {
90
95
  return res;
91
96
  }
92
97
  const rad = (0, NumberUtils_js_1.degToRad)((0, NumberUtils_js_1.getRangeValue)(moveOptions.angle.value)), radOffset = (0, NumberUtils_js_1.degToRad)((0, NumberUtils_js_1.getRangeValue)(moveOptions.angle.offset)), range = {
@@ -114,9 +119,9 @@ class Particle {
114
119
  if (retries >= minRetries && tryCount > retries) {
115
120
  throw new Error(`${Constants_js_1.errorPrefix} particle is overlapping and can't be placed`);
116
121
  }
117
- return !!this.container.particles.find((particle) => (0, NumberUtils_js_1.getDistance)(pos, particle.position) < radius + particle.getRadius());
122
+ return !!this.container.particles.find(particle => (0, NumberUtils_js_1.getDistance)(pos, particle.position) < radius + particle.getRadius());
118
123
  };
119
- this._getRollColor = (color) => {
124
+ this._getRollColor = color => {
120
125
  if (!color || !this.roll || (!this.backColor && !this.roll.alter)) {
121
126
  return color;
122
127
  }
@@ -132,7 +137,7 @@ class Particle {
132
137
  }
133
138
  return color;
134
139
  };
135
- this._initPosition = (position) => {
140
+ this._initPosition = position => {
136
141
  const container = this.container, zIndexValue = (0, NumberUtils_js_1.getRangeValue)(this.options.zIndex.value), minZ = 0;
137
142
  this.position = this._calcPosition(container, position, (0, NumberUtils_js_1.clamp)(zIndexValue, minZ, container.zLayers));
138
143
  this.initialPosition = this.position.copy();
@@ -140,15 +145,15 @@ class Particle {
140
145
  this.moveCenter = {
141
146
  ...(0, Utils_js_1.getPosition)(this.options.move.center, canvasSize),
142
147
  radius: this.options.move.center.radius ?? defaultRadius,
143
- mode: this.options.move.center.mode ?? "percent",
148
+ mode: this.options.move.center.mode ?? PixelMode_js_1.PixelMode.percent,
144
149
  };
145
150
  this.direction = (0, NumberUtils_js_1.getParticleDirectionAngle)(this.options.move.direction, this.position, this.moveCenter);
146
151
  switch (this.options.move.direction) {
147
- case "inside":
148
- this.outType = "inside";
152
+ case MoveDirection_js_1.MoveDirection.inside:
153
+ this.outType = ParticleOutType_js_1.ParticleOutType.inside;
149
154
  break;
150
- case "outside":
151
- this.outType = "outside";
155
+ case MoveDirection_js_1.MoveDirection.outside:
156
+ this.outType = ParticleOutType_js_1.ParticleOutType.outside;
152
157
  break;
153
158
  }
154
159
  this.offset = Vectors_js_1.Vector.origin;
@@ -171,19 +176,19 @@ class Particle {
171
176
  updater.particleDestroyed?.(this, override);
172
177
  }
173
178
  pathGenerator?.reset(this);
174
- this._engine.dispatchEvent("particleDestroyed", {
179
+ this._engine.dispatchEvent(EventType_js_1.EventType.particleDestroyed, {
175
180
  container: this.container,
176
181
  data: {
177
182
  particle: this,
178
183
  },
179
184
  });
180
185
  }
181
- async draw(delta) {
186
+ draw(delta) {
182
187
  const container = this.container, canvas = container.canvas;
183
188
  for (const [, plugin] of container.plugins) {
184
- await canvas.drawParticlePlugin(plugin, this, delta);
189
+ canvas.drawParticlePlugin(plugin, this, delta);
185
190
  }
186
- await canvas.drawParticle(this, delta);
191
+ canvas.drawParticle(this, delta);
187
192
  }
188
193
  getFillColor() {
189
194
  return this._getRollColor(this.bubble.color ?? (0, ColorUtils_js_1.getHslFromAnimation)(this.color));
@@ -204,7 +209,7 @@ class Particle {
204
209
  getStrokeColor() {
205
210
  return this._getRollColor(this.bubble.color ?? (0, ColorUtils_js_1.getHslFromAnimation)(this.strokeColor));
206
211
  }
207
- async init(id, position, overrideOptions, group) {
212
+ init(id, position, overrideOptions, group) {
208
213
  const container = this.container, engine = this._engine;
209
214
  this.id = id;
210
215
  this.group = group;
@@ -216,14 +221,15 @@ class Particle {
216
221
  this.lastPathTime = 0;
217
222
  this.destroyed = false;
218
223
  this.unbreakable = false;
224
+ this.isRotating = false;
219
225
  this.rotation = 0;
220
226
  this.misplaced = false;
221
227
  this.retina = {
222
228
  maxDistance: {},
223
229
  };
224
- this.outType = "normal";
230
+ this.outType = ParticleOutType_js_1.ParticleOutType.normal;
225
231
  this.ignoresResizeRatio = true;
226
- const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = (0, OptionsUtils_js_1.loadParticlesOptions)(this._engine, container, mainOptions.particles), effectType = particlesOptions.effect.type, shapeType = particlesOptions.shape.type, { reduceDuplicates } = particlesOptions;
232
+ const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = (0, OptionsUtils_js_1.loadParticlesOptions)(this._engine, container, mainOptions.particles), { reduceDuplicates } = particlesOptions, effectType = particlesOptions.effect.type, shapeType = particlesOptions.shape.type;
227
233
  this.effect = (0, Utils_js_1.itemFromSingleOrMultiple)(effectType, this.id, reduceDuplicates);
228
234
  this.shape = (0, Utils_js_1.itemFromSingleOrMultiple)(shapeType, this.id, reduceDuplicates);
229
235
  const effectOptions = particlesOptions.effect, shapeOptions = particlesOptions.shape;
@@ -243,6 +249,14 @@ class Particle {
243
249
  }
244
250
  }
245
251
  }
252
+ if (this.effect === randomString) {
253
+ const availableEffects = [...this.container.effectDrawers.keys()];
254
+ this.effect = availableEffects[Math.floor(Math.random() * availableEffects.length)];
255
+ }
256
+ if (this.shape === randomString) {
257
+ const availableShapes = [...this.container.shapeDrawers.keys()];
258
+ this.shape = availableShapes[Math.floor(Math.random() * availableShapes.length)];
259
+ }
246
260
  this.effectData = loadEffectData(this.effect, effectOptions, this.id, reduceDuplicates);
247
261
  this.shapeData = loadShapeData(this.shape, shapeOptions, this.id, reduceDuplicates);
248
262
  particlesOptions.load(overrideOptions);
@@ -268,7 +282,7 @@ class Particle {
268
282
  if (pathOptions.generator) {
269
283
  this.pathGenerator = this._engine.getPathGenerator(pathOptions.generator);
270
284
  if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) {
271
- await this.pathGenerator.init(container);
285
+ this.pathGenerator.init(container);
272
286
  }
273
287
  }
274
288
  container.retina.initParticle(this);
@@ -297,7 +311,7 @@ class Particle {
297
311
  }
298
312
  }
299
313
  if (effectDrawer?.loadEffect) {
300
- await effectDrawer.loadEffect(this);
314
+ effectDrawer.loadEffect(this);
301
315
  }
302
316
  let shapeDrawer = container.shapeDrawers.get(this.shape);
303
317
  if (!shapeDrawer) {
@@ -307,7 +321,7 @@ class Particle {
307
321
  }
308
322
  }
309
323
  if (shapeDrawer?.loadShape) {
310
- await shapeDrawer.loadShape(this);
324
+ shapeDrawer.loadShape(this);
311
325
  }
312
326
  const sideCountFunc = shapeDrawer?.getSidesCount;
313
327
  if (sideCountFunc) {
@@ -316,13 +330,13 @@ class Particle {
316
330
  this.spawning = false;
317
331
  this.shadowColor = (0, ColorUtils_js_1.rangeColorToRgb)(this.options.shadow.color);
318
332
  for (const updater of particles.updaters) {
319
- await updater.init(this);
333
+ updater.init(this);
320
334
  }
321
335
  for (const mover of particles.movers) {
322
- await mover.init?.(this);
336
+ mover.init?.(this);
323
337
  }
324
- await effectDrawer?.particleInit?.(container, this);
325
- await shapeDrawer?.particleInit?.(container, this);
338
+ effectDrawer?.particleInit?.(container, this);
339
+ shapeDrawer?.particleInit?.(container, this);
326
340
  for (const [, plugin] of container.plugins) {
327
341
  plugin.particleCreated?.(this);
328
342
  }
@@ -1,31 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.Particles = void 0;
27
4
  const Utils_js_1 = require("../Utils/Utils.js");
5
+ const EventType_js_1 = require("../Enums/Types/EventType.js");
28
6
  const InteractionManager_js_1 = require("./Utils/InteractionManager.js");
7
+ const LimitMode_js_1 = require("../Enums/Modes/LimitMode.js");
8
+ const Particle_js_1 = require("./Particle.js");
29
9
  const Point_js_1 = require("./Utils/Point.js");
30
10
  const QuadTree_js_1 = require("./Utils/QuadTree.js");
31
11
  const Ranges_js_1 = require("./Utils/Ranges.js");
@@ -38,11 +18,9 @@ const qTreeRectangle = (canvasSize) => {
38
18
  class Particles {
39
19
  constructor(engine, container) {
40
20
  this._addToPool = (...particles) => {
41
- for (const particle of particles) {
42
- this._pool.push(particle);
43
- }
21
+ this._pool.push(...particles);
44
22
  };
45
- this._applyDensity = async (options, manualCount, group) => {
23
+ this._applyDensity = (options, manualCount, group) => {
46
24
  const numberOptions = options.number;
47
25
  if (!options.number.density?.enable) {
48
26
  if (group === undefined) {
@@ -53,7 +31,7 @@ class Particles {
53
31
  }
54
32
  return;
55
33
  }
56
- const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, minLimit = 0, optParticlesLimit = numberOptions.limit.value > minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.filter((t) => t.group === group).length);
34
+ const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, minLimit = 0, optParticlesLimit = numberOptions.limit.value > minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.filter(t => t.group === group).length);
57
35
  if (group === undefined) {
58
36
  this._limit = numberOptions.limit.value * densityFactor;
59
37
  }
@@ -61,13 +39,13 @@ class Particles {
61
39
  this._groupLimits.set(group, numberOptions.limit.value * densityFactor);
62
40
  }
63
41
  if (particlesCount < particlesNumber) {
64
- await this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);
42
+ this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);
65
43
  }
66
44
  else if (particlesCount > particlesNumber) {
67
45
  this.removeQuantity(particlesCount - particlesNumber, group);
68
46
  }
69
47
  };
70
- this._initDensityFactor = (densityOptions) => {
48
+ this._initDensityFactor = densityOptions => {
71
49
  const container = this._container, defaultFactor = 1;
72
50
  if (!container.canvas.element || !densityOptions.enable) {
73
51
  return defaultFactor;
@@ -75,14 +53,13 @@ class Particles {
75
53
  const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;
76
54
  return (canvas.width * canvas.height) / (densityOptions.height * densityOptions.width * pxRatio ** squareExp);
77
55
  };
78
- this._pushParticle = async (position, overrideOptions, group, initializer) => {
56
+ this._pushParticle = (position, overrideOptions, group, initializer) => {
79
57
  try {
80
58
  let particle = this._pool.pop();
81
59
  if (!particle) {
82
- const { Particle } = await Promise.resolve().then(() => __importStar(require("./Particle.js")));
83
- particle = new Particle(this._engine, this._container);
60
+ particle = new Particle_js_1.Particle(this._engine, this._container);
84
61
  }
85
- await particle.init(this._nextId, position, overrideOptions, group);
62
+ particle.init(this._nextId, position, overrideOptions, group);
86
63
  let canAdd = true;
87
64
  if (initializer) {
88
65
  canAdd = initializer(particle);
@@ -93,7 +70,7 @@ class Particles {
93
70
  this._array.push(particle);
94
71
  this._zArray.push(particle);
95
72
  this._nextId++;
96
- this._engine.dispatchEvent("particleAdded", {
73
+ this._engine.dispatchEvent(EventType_js_1.EventType.particleAdded, {
97
74
  container: this._container,
98
75
  data: {
99
76
  particle,
@@ -114,7 +91,7 @@ class Particles {
114
91
  this._array.splice(index, deleteCount);
115
92
  this._zArray.splice(zIdx, deleteCount);
116
93
  particle.destroy(override);
117
- this._engine.dispatchEvent("particleRemoved", {
94
+ this._engine.dispatchEvent(EventType_js_1.EventType.particleRemoved, {
118
95
  container: this._container,
119
96
  data: {
120
97
  particle,
@@ -143,28 +120,29 @@ class Particles {
143
120
  get count() {
144
121
  return this._array.length;
145
122
  }
146
- async addManualParticles() {
123
+ addManualParticles() {
147
124
  const container = this._container, options = container.actualOptions;
148
- for (const particle of options.manualParticles) {
149
- await this.addParticle(particle.position ? (0, Utils_js_1.getPosition)(particle.position, container.canvas.size) : undefined, particle.options);
150
- }
125
+ options.manualParticles.forEach(p => this.addParticle(p.position ? (0, Utils_js_1.getPosition)(p.position, container.canvas.size) : undefined, p.options));
151
126
  }
152
- async addParticle(position, overrideOptions, group, initializer) {
153
- const limitOptions = this._container.actualOptions.particles.number.limit, limit = group === undefined ? this._limit : this._groupLimits.get(group) ?? this._limit, currentCount = this.count, minLimit = 0;
127
+ addParticle(position, overrideOptions, group, initializer) {
128
+ const limitMode = this._container.actualOptions.particles.number.limit.mode, limit = group === undefined ? this._limit : this._groupLimits.get(group) ?? this._limit, currentCount = this.count, minLimit = 0;
154
129
  if (limit > minLimit) {
155
- if (limitOptions.mode === "delete") {
156
- const countOffset = 1, minCount = 0, countToRemove = currentCount + countOffset - limit;
157
- if (countToRemove > minCount) {
158
- this.removeQuantity(countToRemove);
159
- }
160
- }
161
- else if (limitOptions.mode === "wait") {
162
- if (currentCount >= limit) {
163
- return;
130
+ switch (limitMode) {
131
+ case LimitMode_js_1.LimitMode.delete: {
132
+ const countOffset = 1, minCount = 0, countToRemove = currentCount + countOffset - limit;
133
+ if (countToRemove > minCount) {
134
+ this.removeQuantity(countToRemove);
135
+ }
136
+ break;
164
137
  }
138
+ case LimitMode_js_1.LimitMode.wait:
139
+ if (currentCount >= limit) {
140
+ return;
141
+ }
142
+ break;
165
143
  }
166
144
  }
167
- return await this._pushParticle(position, overrideOptions, group, initializer);
145
+ return this._pushParticle(position, overrideOptions, group, initializer);
168
146
  }
169
147
  clear() {
170
148
  this._array = [];
@@ -177,15 +155,15 @@ class Particles {
177
155
  this.movers = [];
178
156
  this.updaters = [];
179
157
  }
180
- async draw(delta) {
158
+ draw(delta) {
181
159
  const container = this._container, canvas = container.canvas;
182
160
  canvas.clear();
183
- await this.update(delta);
161
+ this.update(delta);
184
162
  for (const [, plugin] of container.plugins) {
185
- await canvas.drawPlugin(plugin, delta);
163
+ canvas.drawPlugin(plugin, delta);
186
164
  }
187
165
  for (const p of this._zArray) {
188
- await p.draw(delta);
166
+ p.draw(delta);
189
167
  }
190
168
  }
191
169
  filter(condition) {
@@ -207,24 +185,22 @@ class Particles {
207
185
  await this.initPlugins();
208
186
  let handled = false;
209
187
  for (const [, plugin] of container.plugins) {
210
- if (plugin.particlesInitialization !== undefined) {
211
- handled = plugin.particlesInitialization();
212
- }
188
+ handled = plugin.particlesInitialization?.() ?? handled;
213
189
  if (handled) {
214
190
  break;
215
191
  }
216
192
  }
217
- await this.addManualParticles();
193
+ this.addManualParticles();
218
194
  if (!handled) {
219
195
  const particlesOptions = options.particles, groups = particlesOptions.groups;
220
196
  for (const group in groups) {
221
197
  const groupOptions = groups[group];
222
198
  for (let i = this.count, j = 0; j < groupOptions.number?.value && i < particlesOptions.number.value; i++, j++) {
223
- await this.addParticle(undefined, groupOptions, group);
199
+ this.addParticle(undefined, groupOptions, group);
224
200
  }
225
201
  }
226
202
  for (let i = this.count; i < particlesOptions.number.value; i++) {
227
- await this.addParticle();
203
+ this.addParticle();
228
204
  }
229
205
  }
230
206
  }
@@ -237,18 +213,18 @@ class Particles {
237
213
  this.updaters = await this._engine.getUpdaters(container, true);
238
214
  await this._interactionManager.init();
239
215
  for (const [, pathGenerator] of container.pathGenerators) {
240
- await pathGenerator.init(container);
216
+ pathGenerator.init(container);
241
217
  }
242
218
  }
243
- async push(nb, mouse, overrideOptions, group) {
219
+ push(nb, mouse, overrideOptions, group) {
244
220
  for (let i = 0; i < nb; i++) {
245
- await this.addParticle(mouse?.position, overrideOptions, group);
221
+ this.addParticle(mouse?.position, overrideOptions, group);
246
222
  }
247
223
  }
248
224
  async redraw() {
249
225
  this.clear();
250
226
  await this.init();
251
- await this.draw({ value: 0, factor: 0 });
227
+ this.draw({ value: 0, factor: 0 });
252
228
  }
253
229
  remove(particle, group, override) {
254
230
  this.removeAt(this._array.indexOf(particle), undefined, group, override);
@@ -269,12 +245,12 @@ class Particles {
269
245
  const defaultIndex = 0;
270
246
  this.removeAt(defaultIndex, quantity, group);
271
247
  }
272
- async setDensity() {
248
+ setDensity() {
273
249
  const options = this._container.actualOptions, groups = options.particles.groups, manualCount = 0;
274
250
  for (const group in groups) {
275
- await this._applyDensity(groups[group], manualCount, group);
251
+ this._applyDensity(groups[group], manualCount, group);
276
252
  }
277
- await this._applyDensity(options.particles, options.manualParticles.length);
253
+ this._applyDensity(options.particles, options.manualParticles.length);
278
254
  }
279
255
  setLastZIndex(zIndex) {
280
256
  this._lastZIndex = zIndex;
@@ -283,14 +259,14 @@ class Particles {
283
259
  setResizeFactor(factor) {
284
260
  this._resizeFactor = factor;
285
261
  }
286
- async update(delta) {
262
+ update(delta) {
287
263
  const container = this._container, particlesToDelete = new Set();
288
264
  this.quadTree = new QuadTree_js_1.QuadTree(qTreeRectangle(container.canvas.size), qTreeCapacity);
289
265
  for (const [, pathGenerator] of container.pathGenerators) {
290
266
  pathGenerator.update();
291
267
  }
292
268
  for (const [, plugin] of container.plugins) {
293
- await plugin.update?.(delta);
269
+ plugin.update?.(delta);
294
270
  }
295
271
  const resizeFactor = this._resizeFactor;
296
272
  for (const particle of this._array) {
@@ -310,7 +286,7 @@ class Particles {
310
286
  }
311
287
  for (const mover of this.movers) {
312
288
  if (mover.isEnabled(particle)) {
313
- await mover.move(particle, delta);
289
+ mover.move(particle, delta);
314
290
  }
315
291
  }
316
292
  if (particle.destroyed) {
@@ -324,7 +300,7 @@ class Particles {
324
300
  this._array = this.filter(checkDelete);
325
301
  this._zArray = this._zArray.filter(checkDelete);
326
302
  for (const particle of particlesToDelete) {
327
- this._engine.dispatchEvent("particleRemoved", {
303
+ this._engine.dispatchEvent(EventType_js_1.EventType.particleRemoved, {
328
304
  container: this._container,
329
305
  data: {
330
306
  particle,
@@ -333,13 +309,13 @@ class Particles {
333
309
  }
334
310
  this._addToPool(...particlesToDelete);
335
311
  }
336
- await this._interactionManager.externalInteract(delta);
312
+ this._interactionManager.externalInteract(delta);
337
313
  for (const particle of this._array) {
338
314
  for (const updater of this.updaters) {
339
- await updater.update(particle, delta);
315
+ updater.update(particle, delta);
340
316
  }
341
317
  if (!particle.destroyed && !particle.spawning) {
342
- await this._interactionManager.particlesInteract(particle, delta);
318
+ this._interactionManager.particlesInteract(particle, delta);
343
319
  }
344
320
  }
345
321
  delete this._resizeFactor;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EventListeners = void 0;
4
4
  const Utils_js_1 = require("../../Utils/Utils.js");
5
5
  const Constants_js_1 = require("./Constants.js");
6
+ const InteractivityDetect_js_1 = require("../../Enums/InteractivityDetect.js");
6
7
  const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
7
8
  const double = 2;
8
9
  function manageListener(element, event, handler, add, options) {
@@ -24,7 +25,7 @@ function manageListener(element, event, handler, add, options) {
24
25
  class EventListeners {
25
26
  constructor(container) {
26
27
  this.container = container;
27
- this._doMouseTouchClick = (e) => {
28
+ this._doMouseTouchClick = e => {
28
29
  const container = this.container, options = container.actualOptions;
29
30
  if (this._canPush) {
30
31
  const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;
@@ -34,7 +35,7 @@ class EventListeners {
34
35
  mouseInteractivity.clickPosition = { ...mousePos };
35
36
  mouseInteractivity.clickTime = new Date().getTime();
36
37
  const onClick = options.interactivity.events.onClick;
37
- (0, Utils_js_1.executeOnSingleOrMultiple)(onClick.mode, (mode) => this.container.handleClickMode(mode));
38
+ (0, Utils_js_1.executeOnSingleOrMultiple)(onClick.mode, mode => this.container.handleClickMode(mode));
38
39
  }
39
40
  if (e.type === "touchend") {
40
41
  const touchDelay = 500;
@@ -42,8 +43,8 @@ class EventListeners {
42
43
  }
43
44
  };
44
45
  this._handleThemeChange = (e) => {
45
- 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);
46
- if (theme && theme.default.auto) {
46
+ 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);
47
+ if (theme?.default.auto) {
47
48
  void container.loadTheme(themeName);
48
49
  }
49
50
  };
@@ -53,7 +54,7 @@ class EventListeners {
53
54
  if (!options.pauseOnBlur) {
54
55
  return;
55
56
  }
56
- if (document && document.hidden) {
57
+ if (document?.hidden) {
57
58
  container.pageHidden = true;
58
59
  container.pause();
59
60
  }
@@ -105,14 +106,14 @@ class EventListeners {
105
106
  manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);
106
107
  manageListener(interactivityEl, Constants_js_1.touchCancelEvent, handlers.touchCancel, add);
107
108
  };
108
- this._manageListeners = (add) => {
109
+ this._manageListeners = add => {
109
110
  const handlers = this._handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn, canvasEl = container.canvas.element;
110
111
  let mouseLeaveTmpEvent = Constants_js_1.mouseLeaveEvent;
111
- if (detectType === "window") {
112
+ if (detectType === InteractivityDetect_js_1.InteractivityDetect.window) {
112
113
  container.interactivity.element = window;
113
114
  mouseLeaveTmpEvent = Constants_js_1.mouseOutEvent;
114
115
  }
115
- else if (detectType === "parent" && canvasEl) {
116
+ else if (detectType === InteractivityDetect_js_1.InteractivityDetect.parent && canvasEl) {
116
117
  container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode;
117
118
  }
118
119
  else {
@@ -125,7 +126,7 @@ class EventListeners {
125
126
  manageListener(document, Constants_js_1.visibilityChangeEvent, handlers.visibilityChange, add, false);
126
127
  }
127
128
  };
128
- this._manageMediaMatch = (add) => {
129
+ this._manageMediaMatch = add => {
129
130
  const handlers = this._handlers, mediaMatch = (0, Utils_js_1.safeMatchMedia)("(prefers-color-scheme: dark)");
130
131
  if (!mediaMatch) {
131
132
  return;
@@ -144,7 +145,7 @@ class EventListeners {
144
145
  mediaMatch.removeListener(handlers.oldThemeChange);
145
146
  }
146
147
  };
147
- this._manageResize = (add) => {
148
+ this._manageResize = add => {
148
149
  const handlers = this._handlers, container = this.container, options = container.actualOptions;
149
150
  if (!options.interactivity.events.resize) {
150
151
  return;
@@ -163,7 +164,7 @@ class EventListeners {
163
164
  }
164
165
  else if (!this._resizeObserver && add && canvasEl) {
165
166
  this._resizeObserver = new ResizeObserver((entries) => {
166
- const entry = entries.find((e) => e.target === canvasEl);
167
+ const entry = entries.find(e => e.target === canvasEl);
167
168
  if (!entry) {
168
169
  return;
169
170
  }
@@ -181,7 +182,7 @@ class EventListeners {
181
182
  mouse.clicking = true;
182
183
  mouse.downPosition = mouse.position;
183
184
  };
184
- this._mouseTouchClick = (e) => {
185
+ this._mouseTouchClick = e => {
185
186
  const container = this.container, options = container.actualOptions, { mouse } = container.interactivity;
186
187
  mouse.inside = true;
187
188
  let handled = false;
@@ -216,7 +217,7 @@ class EventListeners {
216
217
  mouse.inside = false;
217
218
  mouse.clicking = false;
218
219
  };
219
- this._mouseTouchMove = (e) => {
220
+ this._mouseTouchMove = e => {
220
221
  const container = this.container, options = container.actualOptions, interactivity = container.interactivity, canvasEl = container.canvas.element;
221
222
  if (!interactivity?.element) {
222
223
  return;
@@ -235,7 +236,7 @@ class EventListeners {
235
236
  };
236
237
  }
237
238
  }
238
- else if (options.interactivity.detectsOn === "parent") {
239
+ else if (options.interactivity.detectsOn === InteractivityDetect_js_1.InteractivityDetect.parent) {
239
240
  const source = mouseEvent.target, target = mouseEvent.currentTarget;
240
241
  if (source && target && canvasEl) {
241
242
  const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();
@@ -276,21 +277,21 @@ class EventListeners {
276
277
  interactivity.mouse.position = pos;
277
278
  interactivity.status = Constants_js_1.mouseMoveEvent;
278
279
  };
279
- this._touchEnd = (e) => {
280
+ this._touchEnd = e => {
280
281
  const evt = e, touches = Array.from(evt.changedTouches);
281
282
  for (const touch of touches) {
282
283
  this._touches.delete(touch.identifier);
283
284
  }
284
285
  this._mouseTouchFinish();
285
286
  };
286
- this._touchEndClick = (e) => {
287
+ this._touchEndClick = e => {
287
288
  const evt = e, touches = Array.from(evt.changedTouches);
288
289
  for (const touch of touches) {
289
290
  this._touches.delete(touch.identifier);
290
291
  }
291
292
  this._mouseTouchClick(e);
292
293
  };
293
- this._touchStart = (e) => {
294
+ this._touchStart = e => {
294
295
  const evt = e, touches = Array.from(evt.changedTouches);
295
296
  for (const touch of touches) {
296
297
  this._touches.set(touch.identifier, performance.now());
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExternalInteractorBase = void 0;
4
+ const InteractorType_js_1 = require("../../Enums/Types/InteractorType.js");
4
5
  class ExternalInteractorBase {
5
6
  constructor(container) {
6
- this.type = "external";
7
+ this.type = InteractorType_js_1.InteractorType.external;
7
8
  this.container = container;
8
9
  }
9
10
  }