@tsparticles/engine 4.0.0-alpha.3 → 4.0.0-alpha.5

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 (266) hide show
  1. package/794.min.js +2 -0
  2. package/794.min.js.LICENSE.txt +1 -0
  3. package/README.md +2 -5
  4. package/browser/Core/Canvas.js +3 -3
  5. package/browser/Core/Container.js +35 -155
  6. package/browser/Core/Engine.js +32 -78
  7. package/browser/Core/Particle.js +5 -10
  8. package/browser/Core/Particles.js +36 -25
  9. package/browser/Core/Utils/Constants.js +2 -2
  10. package/browser/Core/Utils/EventListeners.js +5 -250
  11. package/browser/Options/Classes/Options.js +7 -75
  12. package/browser/Options/Classes/Particles/ParticlesOptions.js +5 -11
  13. package/{esm/Options/Classes/Interactivity/Events → browser/Options/Classes}/ResizeEvent.js +1 -1
  14. package/browser/Utils/ColorUtils.js +7 -5
  15. package/browser/Utils/Utils.js +33 -36
  16. package/browser/exports.js +1 -21
  17. package/cjs/Core/Canvas.js +3 -3
  18. package/cjs/Core/Container.js +35 -155
  19. package/cjs/Core/Engine.js +32 -78
  20. package/cjs/Core/Particle.js +5 -10
  21. package/cjs/Core/Particles.js +36 -25
  22. package/cjs/Core/Utils/Constants.js +2 -2
  23. package/cjs/Core/Utils/EventListeners.js +5 -250
  24. package/cjs/Options/Classes/Options.js +7 -75
  25. package/cjs/Options/Classes/Particles/ParticlesOptions.js +5 -11
  26. package/cjs/Options/Classes/{Interactivity/Events/ResizeEvent.js → ResizeEvent.js} +1 -1
  27. package/cjs/Utils/ColorUtils.js +7 -5
  28. package/cjs/Utils/Utils.js +33 -36
  29. package/cjs/exports.js +1 -21
  30. package/dist_browser_Core_Container_js.js +6 -16
  31. package/esm/Core/Canvas.js +3 -3
  32. package/esm/Core/Container.js +35 -155
  33. package/esm/Core/Engine.js +32 -78
  34. package/esm/Core/Particle.js +5 -10
  35. package/esm/Core/Particles.js +36 -25
  36. package/esm/Core/Utils/Constants.js +2 -2
  37. package/esm/Core/Utils/EventListeners.js +5 -250
  38. package/esm/Options/Classes/Options.js +7 -75
  39. package/esm/Options/Classes/Particles/ParticlesOptions.js +5 -11
  40. package/{browser/Options/Classes/Interactivity/Events → esm/Options/Classes}/ResizeEvent.js +1 -1
  41. package/esm/Utils/ColorUtils.js +7 -5
  42. package/esm/Utils/Utils.js +33 -36
  43. package/esm/exports.js +1 -21
  44. package/package.json +1 -1
  45. package/report.html +1 -1
  46. package/tsparticles.engine.js +14 -206
  47. package/tsparticles.engine.min.js +1 -1
  48. package/tsparticles.engine.min.js.LICENSE.txt +1 -1
  49. package/types/Core/Container.d.ts +3 -15
  50. package/types/Core/Engine.d.ts +8 -19
  51. package/types/Core/Interfaces/IContainerPlugin.d.ts +8 -1
  52. package/types/Core/Interfaces/IPlugin.d.ts +5 -1
  53. package/types/Core/Particle.d.ts +0 -2
  54. package/types/Core/Particles.d.ts +1 -5
  55. package/types/Core/Utils/Constants.d.ts +2 -2
  56. package/types/Core/Utils/EventListeners.d.ts +0 -14
  57. package/types/Options/Classes/Options.d.ts +2 -11
  58. package/types/Options/Classes/Particles/ParticlesOptions.d.ts +0 -2
  59. package/types/Options/Classes/ResizeEvent.d.ts +9 -0
  60. package/types/Options/Interfaces/IOptions.d.ts +2 -8
  61. package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +0 -3
  62. package/types/Types/EngineInitializers.d.ts +10 -0
  63. package/types/Utils/Utils.d.ts +4 -6
  64. package/types/export-types.d.ts +3 -19
  65. package/types/exports.d.ts +1 -21
  66. package/umd/Core/Canvas.js +3 -3
  67. package/umd/Core/Container.js +35 -155
  68. package/umd/Core/Engine.js +33 -79
  69. package/umd/Core/Particle.js +6 -11
  70. package/umd/Core/Particles.js +37 -26
  71. package/umd/Core/Utils/Constants.js +3 -3
  72. package/umd/Core/Utils/EventListeners.js +7 -252
  73. package/umd/Options/Classes/Options.js +7 -75
  74. package/umd/Options/Classes/Particles/ParticlesOptions.js +5 -11
  75. package/umd/Options/Classes/{Interactivity/Events/ResizeEvent.js → ResizeEvent.js} +2 -2
  76. package/umd/Utils/ColorUtils.js +7 -5
  77. package/umd/Utils/Utils.js +34 -39
  78. package/umd/exports.js +2 -22
  79. package/638.min.js +0 -2
  80. package/638.min.js.LICENSE.txt +0 -1
  81. package/browser/Core/Interfaces/IMouseData.js +0 -1
  82. package/browser/Core/Interfaces/IParticlesInteractor.js +0 -1
  83. package/browser/Core/Utils/ExternalInteractorBase.js +0 -7
  84. package/browser/Core/Utils/InteractionManager.js +0 -60
  85. package/browser/Core/Utils/ParticlesInteractorBase.js +0 -7
  86. package/browser/Enums/InteractivityDetect.js +0 -6
  87. package/browser/Enums/Modes/ResponsiveMode.js +0 -5
  88. package/browser/Enums/Modes/ThemeMode.js +0 -6
  89. package/browser/Enums/Types/DivType.js +0 -5
  90. package/browser/Enums/Types/InteractorType.js +0 -5
  91. package/browser/Options/Classes/Interactivity/Events/ClickEvent.js +0 -18
  92. package/browser/Options/Classes/Interactivity/Events/DivEvent.js +0 -27
  93. package/browser/Options/Classes/Interactivity/Events/Events.js +0 -30
  94. package/browser/Options/Classes/Interactivity/Events/HoverEvent.js +0 -21
  95. package/browser/Options/Classes/Interactivity/Events/Parallax.js +0 -22
  96. package/browser/Options/Classes/Interactivity/Interactivity.js +0 -22
  97. package/browser/Options/Classes/Interactivity/Modes/Modes.js +0 -25
  98. package/browser/Options/Classes/ManualParticle.js +0 -21
  99. package/browser/Options/Classes/Responsive.js +0 -29
  100. package/browser/Options/Classes/Theme/Theme.js +0 -21
  101. package/browser/Options/Classes/Theme/ThemeDefault.js +0 -23
  102. package/browser/Options/Interfaces/IManualParticle.js +0 -1
  103. package/browser/Options/Interfaces/IResponsive.js +0 -1
  104. package/browser/Options/Interfaces/Interactivity/Events/IClickEvent.js +0 -1
  105. package/browser/Options/Interfaces/Interactivity/Events/IDivEvent.js +0 -1
  106. package/browser/Options/Interfaces/Interactivity/Events/IEvents.js +0 -1
  107. package/browser/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -1
  108. package/browser/Options/Interfaces/Interactivity/Events/IParallax.js +0 -1
  109. package/browser/Options/Interfaces/Interactivity/IInteractivity.js +0 -1
  110. package/browser/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -1
  111. package/browser/Options/Interfaces/Interactivity/Modes/IModes.js +0 -1
  112. package/browser/Options/Interfaces/Theme/ITheme.js +0 -1
  113. package/browser/Options/Interfaces/Theme/IThemeDefault.js +0 -1
  114. package/cjs/Core/Interfaces/IContainerInteractivity.js +0 -1
  115. package/cjs/Core/Interfaces/IExternalInteractor.js +0 -1
  116. package/cjs/Core/Interfaces/IInteractor.js +0 -1
  117. package/cjs/Core/Interfaces/IMouseData.js +0 -1
  118. package/cjs/Core/Interfaces/IParticlesInteractor.js +0 -1
  119. package/cjs/Core/Utils/ExternalInteractorBase.js +0 -7
  120. package/cjs/Core/Utils/InteractionManager.js +0 -60
  121. package/cjs/Core/Utils/ParticlesInteractorBase.js +0 -7
  122. package/cjs/Enums/InteractivityDetect.js +0 -6
  123. package/cjs/Enums/Modes/ResponsiveMode.js +0 -5
  124. package/cjs/Enums/Modes/ThemeMode.js +0 -6
  125. package/cjs/Enums/Types/DivType.js +0 -5
  126. package/cjs/Enums/Types/InteractorType.js +0 -5
  127. package/cjs/Options/Classes/Interactivity/Events/ClickEvent.js +0 -18
  128. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +0 -27
  129. package/cjs/Options/Classes/Interactivity/Events/Events.js +0 -30
  130. package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +0 -21
  131. package/cjs/Options/Classes/Interactivity/Events/Parallax.js +0 -22
  132. package/cjs/Options/Classes/Interactivity/Interactivity.js +0 -22
  133. package/cjs/Options/Classes/Interactivity/Modes/Modes.js +0 -25
  134. package/cjs/Options/Classes/ManualParticle.js +0 -21
  135. package/cjs/Options/Classes/Responsive.js +0 -29
  136. package/cjs/Options/Classes/Theme/Theme.js +0 -21
  137. package/cjs/Options/Classes/Theme/ThemeDefault.js +0 -23
  138. package/cjs/Options/Interfaces/IManualParticle.js +0 -1
  139. package/cjs/Options/Interfaces/IResponsive.js +0 -1
  140. package/cjs/Options/Interfaces/Interactivity/Events/IClickEvent.js +0 -1
  141. package/cjs/Options/Interfaces/Interactivity/Events/IDivEvent.js +0 -1
  142. package/cjs/Options/Interfaces/Interactivity/Events/IEvents.js +0 -1
  143. package/cjs/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -1
  144. package/cjs/Options/Interfaces/Interactivity/Events/IParallax.js +0 -1
  145. package/cjs/Options/Interfaces/Interactivity/IInteractivity.js +0 -1
  146. package/cjs/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -1
  147. package/cjs/Options/Interfaces/Interactivity/Modes/IModes.js +0 -1
  148. package/cjs/Options/Interfaces/Theme/ITheme.js +0 -1
  149. package/cjs/Options/Interfaces/Theme/IThemeDefault.js +0 -1
  150. package/esm/Core/Interfaces/IContainerInteractivity.js +0 -1
  151. package/esm/Core/Interfaces/IExternalInteractor.js +0 -1
  152. package/esm/Core/Interfaces/IInteractor.js +0 -1
  153. package/esm/Core/Interfaces/IMouseData.js +0 -1
  154. package/esm/Core/Interfaces/IParticlesInteractor.js +0 -1
  155. package/esm/Core/Utils/ExternalInteractorBase.js +0 -7
  156. package/esm/Core/Utils/InteractionManager.js +0 -60
  157. package/esm/Core/Utils/ParticlesInteractorBase.js +0 -7
  158. package/esm/Enums/InteractivityDetect.js +0 -6
  159. package/esm/Enums/Modes/ResponsiveMode.js +0 -5
  160. package/esm/Enums/Modes/ThemeMode.js +0 -6
  161. package/esm/Enums/Types/DivType.js +0 -5
  162. package/esm/Enums/Types/InteractorType.js +0 -5
  163. package/esm/Options/Classes/Interactivity/Events/ClickEvent.js +0 -18
  164. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +0 -27
  165. package/esm/Options/Classes/Interactivity/Events/Events.js +0 -30
  166. package/esm/Options/Classes/Interactivity/Events/HoverEvent.js +0 -21
  167. package/esm/Options/Classes/Interactivity/Events/Parallax.js +0 -22
  168. package/esm/Options/Classes/Interactivity/Interactivity.js +0 -22
  169. package/esm/Options/Classes/Interactivity/Modes/Modes.js +0 -25
  170. package/esm/Options/Classes/ManualParticle.js +0 -21
  171. package/esm/Options/Classes/Responsive.js +0 -29
  172. package/esm/Options/Classes/Theme/Theme.js +0 -21
  173. package/esm/Options/Classes/Theme/ThemeDefault.js +0 -23
  174. package/esm/Options/Interfaces/IManualParticle.js +0 -1
  175. package/esm/Options/Interfaces/IResponsive.js +0 -1
  176. package/esm/Options/Interfaces/Interactivity/Events/IClickEvent.js +0 -1
  177. package/esm/Options/Interfaces/Interactivity/Events/IDivEvent.js +0 -1
  178. package/esm/Options/Interfaces/Interactivity/Events/IEvents.js +0 -1
  179. package/esm/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -1
  180. package/esm/Options/Interfaces/Interactivity/Events/IParallax.js +0 -1
  181. package/esm/Options/Interfaces/Interactivity/IInteractivity.js +0 -1
  182. package/esm/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -1
  183. package/esm/Options/Interfaces/Interactivity/Modes/IModes.js +0 -1
  184. package/esm/Options/Interfaces/Theme/ITheme.js +0 -1
  185. package/esm/Options/Interfaces/Theme/IThemeDefault.js +0 -1
  186. package/types/Core/Interfaces/IContainerInteractivity.d.ts +0 -6
  187. package/types/Core/Interfaces/IExternalInteractor.d.ts +0 -12
  188. package/types/Core/Interfaces/IInteractor.d.ts +0 -16
  189. package/types/Core/Interfaces/IMouseData.d.ts +0 -9
  190. package/types/Core/Interfaces/IParticlesInteractor.d.ts +0 -7
  191. package/types/Core/Utils/ExternalInteractorBase.d.ts +0 -15
  192. package/types/Core/Utils/InteractionManager.d.ts +0 -17
  193. package/types/Core/Utils/ParticlesInteractorBase.d.ts +0 -15
  194. package/types/Enums/InteractivityDetect.d.ts +0 -5
  195. package/types/Enums/Modes/ResponsiveMode.d.ts +0 -4
  196. package/types/Enums/Modes/ThemeMode.d.ts +0 -5
  197. package/types/Enums/Types/DivType.d.ts +0 -4
  198. package/types/Enums/Types/InteractorType.d.ts +0 -4
  199. package/types/Options/Classes/Interactivity/Events/ClickEvent.d.ts +0 -10
  200. package/types/Options/Classes/Interactivity/Events/DivEvent.d.ts +0 -13
  201. package/types/Options/Classes/Interactivity/Events/Events.d.ts +0 -16
  202. package/types/Options/Classes/Interactivity/Events/HoverEvent.d.ts +0 -12
  203. package/types/Options/Classes/Interactivity/Events/Parallax.d.ts +0 -10
  204. package/types/Options/Classes/Interactivity/Events/ResizeEvent.d.ts +0 -9
  205. package/types/Options/Classes/Interactivity/Interactivity.d.ts +0 -16
  206. package/types/Options/Classes/Interactivity/Modes/Modes.d.ts +0 -12
  207. package/types/Options/Classes/ManualParticle.d.ts +0 -10
  208. package/types/Options/Classes/Responsive.d.ts +0 -12
  209. package/types/Options/Classes/Theme/Theme.d.ts +0 -12
  210. package/types/Options/Classes/Theme/ThemeDefault.d.ts +0 -11
  211. package/types/Options/Interfaces/IManualParticle.d.ts +0 -7
  212. package/types/Options/Interfaces/IResponsive.d.ts +0 -7
  213. package/types/Options/Interfaces/Interactivity/Events/IClickEvent.d.ts +0 -5
  214. package/types/Options/Interfaces/Interactivity/Events/IDivEvent.d.ts +0 -8
  215. package/types/Options/Interfaces/Interactivity/Events/IEvents.d.ts +0 -11
  216. package/types/Options/Interfaces/Interactivity/Events/IHoverEvent.d.ts +0 -7
  217. package/types/Options/Interfaces/Interactivity/Events/IParallax.d.ts +0 -5
  218. package/types/Options/Interfaces/Interactivity/IInteractivity.d.ts +0 -9
  219. package/types/Options/Interfaces/Interactivity/Modes/IModeDiv.d.ts +0 -4
  220. package/types/Options/Interfaces/Interactivity/Modes/IModes.d.ts +0 -1
  221. package/types/Options/Interfaces/Theme/ITheme.d.ts +0 -7
  222. package/types/Options/Interfaces/Theme/IThemeDefault.d.ts +0 -6
  223. package/umd/Core/Interfaces/IExternalInteractor.js +0 -12
  224. package/umd/Core/Interfaces/IInteractor.js +0 -12
  225. package/umd/Core/Interfaces/IMouseData.js +0 -12
  226. package/umd/Core/Interfaces/IParticlesInteractor.js +0 -12
  227. package/umd/Core/Utils/ExternalInteractorBase.js +0 -21
  228. package/umd/Core/Utils/InteractionManager.js +0 -74
  229. package/umd/Core/Utils/ParticlesInteractorBase.js +0 -21
  230. package/umd/Enums/InteractivityDetect.js +0 -19
  231. package/umd/Enums/Modes/ResponsiveMode.js +0 -18
  232. package/umd/Enums/Modes/ThemeMode.js +0 -19
  233. package/umd/Enums/Types/DivType.js +0 -18
  234. package/umd/Enums/Types/InteractorType.js +0 -18
  235. package/umd/Options/Classes/Interactivity/Events/ClickEvent.js +0 -32
  236. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +0 -41
  237. package/umd/Options/Classes/Interactivity/Events/Events.js +0 -44
  238. package/umd/Options/Classes/Interactivity/Events/HoverEvent.js +0 -35
  239. package/umd/Options/Classes/Interactivity/Events/Parallax.js +0 -36
  240. package/umd/Options/Classes/Interactivity/Interactivity.js +0 -36
  241. package/umd/Options/Classes/Interactivity/Modes/Modes.js +0 -39
  242. package/umd/Options/Classes/ManualParticle.js +0 -35
  243. package/umd/Options/Classes/Responsive.js +0 -43
  244. package/umd/Options/Classes/Theme/Theme.js +0 -35
  245. package/umd/Options/Classes/Theme/ThemeDefault.js +0 -37
  246. package/umd/Options/Interfaces/IManualParticle.js +0 -12
  247. package/umd/Options/Interfaces/IResponsive.js +0 -12
  248. package/umd/Options/Interfaces/Interactivity/Events/IClickEvent.js +0 -12
  249. package/umd/Options/Interfaces/Interactivity/Events/IDivEvent.js +0 -12
  250. package/umd/Options/Interfaces/Interactivity/Events/IEvents.js +0 -12
  251. package/umd/Options/Interfaces/Interactivity/Events/IHoverEvent.js +0 -12
  252. package/umd/Options/Interfaces/Interactivity/Events/IParallax.js +0 -12
  253. package/umd/Options/Interfaces/Interactivity/IInteractivity.js +0 -12
  254. package/umd/Options/Interfaces/Interactivity/Modes/IModeDiv.js +0 -12
  255. package/umd/Options/Interfaces/Interactivity/Modes/IModes.js +0 -12
  256. package/umd/Options/Interfaces/Theme/ITheme.js +0 -12
  257. package/umd/Options/Interfaces/Theme/IThemeDefault.js +0 -12
  258. /package/browser/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  259. /package/browser/{Core/Interfaces/IContainerInteractivity.js → Types/EngineInitializers.js} +0 -0
  260. /package/cjs/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  261. /package/{browser/Core/Interfaces/IExternalInteractor.js → cjs/Types/EngineInitializers.js} +0 -0
  262. /package/esm/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  263. /package/{browser/Core/Interfaces/IInteractor.js → esm/Types/EngineInitializers.js} +0 -0
  264. /package/types/Options/Interfaces/{Interactivity/Events/IResizeEvent.d.ts → IResizeEvent.d.ts} +0 -0
  265. /package/umd/Options/Interfaces/{Interactivity/Events/IResizeEvent.js → IResizeEvent.js} +0 -0
  266. /package/umd/{Core/Interfaces/IContainerInteractivity.js → Types/EngineInitializers.js} +0 -0
@@ -1,56 +1,10 @@
1
- import { double, lengthOffset, millisecondsToSeconds, mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchDelay, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from "./Constants.js";
2
- import { executeOnSingleOrMultiple, safeDocument, safeMatchMedia } from "../../Utils/Utils.js";
3
- import { InteractivityDetect } from "../../Enums/InteractivityDetect.js";
4
- import { isBoolean } from "../../Utils/TypeUtils.js";
5
- function manageListener(element, event, handler, add, options) {
6
- if (add) {
7
- let addOptions = { passive: true };
8
- if (isBoolean(options)) {
9
- addOptions.capture = options;
10
- }
11
- else if (options !== undefined) {
12
- addOptions = options;
13
- }
14
- element.addEventListener(event, handler, addOptions);
15
- }
16
- else {
17
- const removeOptions = options;
18
- element.removeEventListener(event, handler, removeOptions);
19
- }
20
- }
1
+ import { manageListener, safeDocument } from "../../Utils/Utils.js";
2
+ import { millisecondsToSeconds, resizeEvent, visibilityChangeEvent } from "./Constants.js";
21
3
  export class EventListeners {
22
4
  constructor(container) {
23
5
  this.container = container;
24
- this._canPush = true;
25
- this._doMouseTouchClick = e => {
26
- const container = this.container, options = container.actualOptions;
27
- if (this._canPush) {
28
- const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;
29
- if (!mousePos) {
30
- return;
31
- }
32
- mouseInteractivity.clickPosition = { ...mousePos };
33
- mouseInteractivity.clickTime = Date.now();
34
- const onClick = options.interactivity.events.onClick;
35
- executeOnSingleOrMultiple(onClick.mode, mode => {
36
- this.container.handleClickMode(mode);
37
- });
38
- }
39
- if (e.type === "touchend") {
40
- setTimeout(() => {
41
- this._mouseTouchFinish();
42
- }, touchDelay);
43
- }
44
- };
45
- this._handleThemeChange = (e) => {
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) {
48
- void container.loadTheme(themeName);
49
- }
50
- };
51
6
  this._handleVisibilityChange = () => {
52
7
  const container = this.container, options = container.actualOptions;
53
- this._mouseTouchFinish();
54
8
  if (!options.pauseOnBlur) {
55
9
  return;
56
10
  }
@@ -77,60 +31,16 @@ export class EventListeners {
77
31
  const canvas = this.container.canvas;
78
32
  await canvas.windowResize();
79
33
  };
80
- this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.interactivity.events.resize.delay * millisecondsToSeconds);
81
- };
82
- this._manageInteractivityListeners = (mouseLeaveTmpEvent, add) => {
83
- const handlers = this._handlers, container = this.container, options = container.actualOptions, interactivityEl = container.interactivity.element;
84
- if (!interactivityEl) {
85
- return;
86
- }
87
- const html = interactivityEl, canvas = container.canvas;
88
- canvas.setPointerEvents(html === canvas.element ? "initial" : "none");
89
- if (!(options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable)) {
90
- return;
91
- }
92
- manageListener(interactivityEl, mouseMoveEvent, handlers.mouseMove, add);
93
- manageListener(interactivityEl, touchStartEvent, handlers.touchStart, add);
94
- manageListener(interactivityEl, touchMoveEvent, handlers.touchMove, add);
95
- if (options.interactivity.events.onClick.enable) {
96
- manageListener(interactivityEl, touchEndEvent, handlers.touchEndClick, add);
97
- manageListener(interactivityEl, mouseUpEvent, handlers.mouseUp, add);
98
- manageListener(interactivityEl, mouseDownEvent, handlers.mouseDown, add);
99
- }
100
- else {
101
- manageListener(interactivityEl, touchEndEvent, handlers.touchEnd, add);
102
- }
103
- manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);
104
- manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add);
34
+ this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.resize.delay * millisecondsToSeconds);
105
35
  };
106
36
  this._manageListeners = add => {
107
- const handlers = this._handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn, canvasEl = container.canvas.element;
108
- let mouseLeaveTmpEvent = mouseLeaveEvent;
109
- if (detectType === InteractivityDetect.window) {
110
- container.interactivity.element = window;
111
- mouseLeaveTmpEvent = mouseOutEvent;
112
- }
113
- else if (detectType === InteractivityDetect.parent && canvasEl) {
114
- container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode;
115
- }
116
- else {
117
- container.interactivity.element = canvasEl;
118
- }
119
- this._manageMediaMatch(add);
37
+ const handlers = this._handlers;
120
38
  this._manageResize(add);
121
- this._manageInteractivityListeners(mouseLeaveTmpEvent, add);
122
39
  manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false);
123
40
  };
124
- this._manageMediaMatch = add => {
125
- const handlers = this._handlers;
126
- if (!this._matchMedia) {
127
- return;
128
- }
129
- manageListener(this._matchMedia, "change", handlers.themeChange, add);
130
- };
131
41
  this._manageResize = add => {
132
42
  const handlers = this._handlers, container = this.container, options = container.actualOptions;
133
- if (!options.interactivity.events.resize.enable) {
43
+ if (!options.resize.enable) {
134
44
  return;
135
45
  }
136
46
  if (typeof ResizeObserver === "undefined") {
@@ -156,165 +66,10 @@ export class EventListeners {
156
66
  this._resizeObserver.observe(canvasEl);
157
67
  }
158
68
  };
159
- this._mouseDown = () => {
160
- const { interactivity } = this.container, { mouse } = interactivity;
161
- mouse.clicking = true;
162
- mouse.downPosition = mouse.position;
163
- };
164
- this._mouseTouchClick = e => {
165
- const container = this.container, options = container.actualOptions, { mouse } = container.interactivity;
166
- mouse.inside = true;
167
- let handled = false;
168
- const mousePosition = mouse.position;
169
- if (!mousePosition || !options.interactivity.events.onClick.enable) {
170
- return;
171
- }
172
- for (const plugin of container.plugins.values()) {
173
- if (!plugin.clickPositionValid) {
174
- continue;
175
- }
176
- handled = plugin.clickPositionValid(mousePosition);
177
- if (handled) {
178
- break;
179
- }
180
- }
181
- if (!handled) {
182
- this._doMouseTouchClick(e);
183
- }
184
- mouse.clicking = false;
185
- };
186
- this._mouseTouchFinish = () => {
187
- const { interactivity } = this.container, { mouse } = interactivity;
188
- delete mouse.position;
189
- delete mouse.clickPosition;
190
- delete mouse.downPosition;
191
- interactivity.status = mouseLeaveEvent;
192
- mouse.inside = false;
193
- mouse.clicking = false;
194
- };
195
- this._mouseTouchMove = e => {
196
- const container = this.container, options = container.actualOptions, interactivity = container.interactivity, canvasEl = container.canvas.element;
197
- if (!interactivity.element) {
198
- return;
199
- }
200
- interactivity.mouse.inside = true;
201
- let pos;
202
- if (e.type.startsWith("pointer")) {
203
- this._canPush = true;
204
- const mouseEvent = e;
205
- if (interactivity.element === window) {
206
- if (canvasEl) {
207
- const clientRect = canvasEl.getBoundingClientRect();
208
- pos = {
209
- x: mouseEvent.clientX - clientRect.left,
210
- y: mouseEvent.clientY - clientRect.top,
211
- };
212
- }
213
- }
214
- else if (options.interactivity.detectsOn === InteractivityDetect.parent) {
215
- const source = mouseEvent.target, target = mouseEvent.currentTarget;
216
- if (canvasEl) {
217
- const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();
218
- pos = {
219
- x: mouseEvent.offsetX + double * sourceRect.left - (targetRect.left + canvasRect.left),
220
- y: mouseEvent.offsetY + double * sourceRect.top - (targetRect.top + canvasRect.top),
221
- };
222
- }
223
- else {
224
- pos = {
225
- x: mouseEvent.offsetX,
226
- y: mouseEvent.offsetY,
227
- };
228
- }
229
- }
230
- else if (mouseEvent.target === canvasEl) {
231
- pos = {
232
- x: mouseEvent.offsetX,
233
- y: mouseEvent.offsetY,
234
- };
235
- }
236
- }
237
- else {
238
- this._canPush = e.type !== "touchmove";
239
- if (canvasEl) {
240
- const touchEvent = e, lastTouch = touchEvent.touches[touchEvent.touches.length - lengthOffset], canvasRect = canvasEl.getBoundingClientRect();
241
- if (!lastTouch) {
242
- return;
243
- }
244
- pos = {
245
- x: lastTouch.clientX - canvasRect.left,
246
- y: lastTouch.clientY - canvasRect.top,
247
- };
248
- }
249
- }
250
- const pxRatio = container.retina.pixelRatio;
251
- if (pos) {
252
- pos.x *= pxRatio;
253
- pos.y *= pxRatio;
254
- }
255
- interactivity.mouse.position = pos;
256
- interactivity.status = mouseMoveEvent;
257
- };
258
- this._touchEnd = e => {
259
- const evt = e, touches = Array.from(evt.changedTouches);
260
- for (const touch of touches) {
261
- this._touches.delete(touch.identifier);
262
- }
263
- this._mouseTouchFinish();
264
- };
265
- this._touchEndClick = e => {
266
- const evt = e, touches = Array.from(evt.changedTouches);
267
- for (const touch of touches) {
268
- this._touches.delete(touch.identifier);
269
- }
270
- this._mouseTouchClick(e);
271
- };
272
- this._touchStart = e => {
273
- const evt = e, touches = Array.from(evt.changedTouches);
274
- for (const touch of touches) {
275
- this._touches.set(touch.identifier, performance.now());
276
- }
277
- this._mouseTouchMove(e);
278
- };
279
- this._matchMedia = safeMatchMedia("(prefers-color-scheme: dark)");
280
- this._touches = new Map();
281
69
  this._handlers = {
282
- mouseDown: () => {
283
- this._mouseDown();
284
- },
285
- mouseLeave: () => {
286
- this._mouseTouchFinish();
287
- },
288
- mouseMove: (e) => {
289
- this._mouseTouchMove(e);
290
- },
291
- mouseUp: (e) => {
292
- this._mouseTouchClick(e);
293
- },
294
- touchStart: (e) => {
295
- this._touchStart(e);
296
- },
297
- touchMove: (e) => {
298
- this._mouseTouchMove(e);
299
- },
300
- touchEnd: (e) => {
301
- this._touchEnd(e);
302
- },
303
- touchCancel: (e) => {
304
- this._touchEnd(e);
305
- },
306
- touchEndClick: (e) => {
307
- this._touchEndClick(e);
308
- },
309
70
  visibilityChange: () => {
310
71
  this._handleVisibilityChange();
311
72
  },
312
- themeChange: (e) => {
313
- this._handleThemeChange(e);
314
- },
315
- oldThemeChange: (e) => {
316
- this._handleThemeChange(e);
317
- },
318
73
  resize: () => {
319
74
  this._handleWindowResize();
320
75
  },
@@ -1,21 +1,12 @@
1
- import { deepExtend, executeOnSingleOrMultiple, safeMatchMedia } from "../../Utils/Utils.js";
1
+ import { deepExtend, executeOnSingleOrMultiple } from "../../Utils/Utils.js";
2
2
  import { isBoolean, isNull } from "../../Utils/TypeUtils.js";
3
3
  import { Background } from "./Background/Background.js";
4
4
  import { FullScreen } from "./FullScreen/FullScreen.js";
5
- import { Interactivity } from "./Interactivity/Interactivity.js";
6
- import { ManualParticle } from "./ManualParticle.js";
7
- import { Responsive } from "./Responsive.js";
8
- import { ResponsiveMode } from "../../Enums/Modes/ResponsiveMode.js";
9
- import { Theme } from "./Theme/Theme.js";
10
- import { ThemeMode } from "../../Enums/Modes/ThemeMode.js";
5
+ import { ResizeEvent } from "./ResizeEvent.js";
11
6
  import { loadParticlesOptions } from "../../Utils/OptionsUtils.js";
12
7
  import { setRangeValue } from "../../Utils/MathUtils.js";
13
8
  export class Options {
14
9
  constructor(engine, container) {
15
- this._findDefaultTheme = mode => {
16
- return (this.themes.find(theme => theme.default.value && theme.default.mode === mode) ??
17
- this.themes.find(theme => theme.default.value && theme.default.mode === ThemeMode.any));
18
- };
19
10
  this._importPreset = preset => {
20
11
  this.load(this._engine.getPreset(preset));
21
12
  };
@@ -31,15 +22,12 @@ export class Options {
31
22
  this.duration = 0;
32
23
  this.fpsLimit = 120;
33
24
  this.hdr = true;
34
- this.interactivity = new Interactivity(engine, container);
35
- this.manualParticles = [];
36
25
  this.particles = loadParticlesOptions(this._engine, this._container);
37
26
  this.pauseOnBlur = true;
38
27
  this.pauseOnOutsideViewport = true;
39
- this.responsive = [];
28
+ this.resize = new ResizeEvent();
40
29
  this.smooth = false;
41
30
  this.style = {};
42
- this.themes = [];
43
31
  this.zLayers = 100;
44
32
  }
45
33
  load(data) {
@@ -97,70 +85,14 @@ export class Options {
97
85
  else {
98
86
  this.fullScreen.load(fullScreen);
99
87
  }
100
- this.interactivity.load(data.interactivity);
101
- if (data.manualParticles) {
102
- this.manualParticles = data.manualParticles.map(t => {
103
- const tmp = new ManualParticle();
104
- tmp.load(t);
105
- return tmp;
106
- });
107
- }
108
88
  this.particles.load(data.particles);
89
+ this.resize.load(data.resize);
109
90
  this.style = deepExtend(this.style, data.style);
110
- this._engine.loadOptions(this, data);
111
91
  if (data.smooth !== undefined) {
112
92
  this.smooth = data.smooth;
113
93
  }
114
- const interactors = this._engine.interactors.get(this._container);
115
- if (interactors) {
116
- for (const interactor of interactors) {
117
- if (interactor.loadOptions) {
118
- interactor.loadOptions(this, data);
119
- }
120
- }
121
- }
122
- if (data.responsive !== undefined) {
123
- for (const responsive of data.responsive) {
124
- const optResponsive = new Responsive();
125
- optResponsive.load(responsive);
126
- this.responsive.push(optResponsive);
127
- }
128
- }
129
- this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);
130
- if (data.themes !== undefined) {
131
- for (const theme of data.themes) {
132
- const existingTheme = this.themes.find(t => t.name === theme.name);
133
- if (existingTheme) {
134
- existingTheme.load(theme);
135
- }
136
- else {
137
- const optTheme = new Theme();
138
- optTheme.load(theme);
139
- this.themes.push(optTheme);
140
- }
141
- }
142
- }
143
- this.defaultThemes.dark = this._findDefaultTheme(ThemeMode.dark)?.name;
144
- this.defaultThemes.light = this._findDefaultTheme(ThemeMode.light)?.name;
145
- }
146
- setResponsive(width, pxRatio, defaultOptions) {
147
- this.load(defaultOptions);
148
- const responsiveOptions = this.responsive.find(t => t.mode === ResponsiveMode.screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);
149
- this.load(responsiveOptions?.options);
150
- return responsiveOptions?.maxWidth;
151
- }
152
- setTheme(name) {
153
- if (name) {
154
- const chosenTheme = this.themes.find(theme => theme.name === name);
155
- if (chosenTheme) {
156
- this.load(chosenTheme.options);
157
- }
158
- }
159
- else {
160
- const mediaMatch = safeMatchMedia("(prefers-color-scheme: dark)"), clientDarkMode = mediaMatch?.matches, defaultTheme = this._findDefaultTheme(clientDarkMode ? ThemeMode.dark : ThemeMode.light);
161
- if (defaultTheme) {
162
- this.load(defaultTheme.options);
163
- }
164
- }
94
+ this._engine.plugins.forEach(plugin => {
95
+ plugin.loadOptions(this._container, this, data);
96
+ });
165
97
  }
166
98
  }
@@ -55,9 +55,6 @@ export class ParticlesOptions {
55
55
  this.shape.load(data.shape);
56
56
  this.size.load(data.size);
57
57
  this.zIndex.load(data.zIndex);
58
- if (data.interactivity !== undefined) {
59
- this.interactivity = deepExtend({}, data.interactivity);
60
- }
61
58
  const strokeToLoad = data.stroke;
62
59
  if (strokeToLoad) {
63
60
  this.stroke = executeOnSingleOrMultiple(strokeToLoad, t => {
@@ -67,6 +64,11 @@ export class ParticlesOptions {
67
64
  });
68
65
  }
69
66
  if (this._container) {
67
+ for (const plugin of this._engine.plugins) {
68
+ if (plugin.loadParticlesOptions) {
69
+ plugin.loadParticlesOptions(this._container, this, data);
70
+ }
71
+ }
70
72
  const updaters = this._engine.updaters.get(this._container);
71
73
  if (updaters) {
72
74
  for (const updater of updaters) {
@@ -75,14 +77,6 @@ export class ParticlesOptions {
75
77
  }
76
78
  }
77
79
  }
78
- const interactors = this._engine.interactors.get(this._container);
79
- if (interactors) {
80
- for (const interactor of interactors) {
81
- if (interactor.loadParticlesOptions) {
82
- interactor.loadParticlesOptions(this, data);
83
- }
84
- }
85
- }
86
80
  }
87
81
  }
88
82
  }
@@ -1,4 +1,4 @@
1
- import { isNull } from "../../../../Utils/TypeUtils.js";
1
+ import { isNull } from "../../Utils/TypeUtils.js";
2
2
  export class ResizeEvent {
3
3
  constructor() {
4
4
  this.delay = 0.5;
@@ -3,14 +3,16 @@ import { decayOffset, defaultLoops, defaultOpacity, defaultRgbMin, defaultTime,
3
3
  import { isArray, isString } from "./TypeUtils.js";
4
4
  import { AnimationStatus } from "../Enums/AnimationStatus.js";
5
5
  import { itemFromArray } from "./Utils.js";
6
- const styleCache = new Map(), maxCacheSize = 1000;
6
+ const styleCache = new Map(), maxCacheSize = 1000, firstIndex = 0, rgbFixedPrecision = 2, hslFixedPrecision = 2;
7
7
  function getCachedStyle(key, generator) {
8
8
  let cached = styleCache.get(key);
9
9
  if (!cached) {
10
10
  cached = generator();
11
- if (styleCache.size < maxCacheSize) {
12
- styleCache.set(key, cached);
11
+ if (styleCache.size >= maxCacheSize) {
12
+ const keysToDelete = [...styleCache.keys()].slice(firstIndex, maxCacheSize * half);
13
+ keysToDelete.forEach(k => styleCache.delete(k));
13
14
  }
15
+ styleCache.set(key, cached);
14
16
  }
15
17
  return cached;
16
18
  }
@@ -166,7 +168,7 @@ export function getRandomRgbColor(min) {
166
168
  };
167
169
  }
168
170
  export function getStyleFromRgb(color, hdr, opacity) {
169
- const op = opacity ?? defaultOpacity, key = `rgb-${color.r.toString()}-${color.g.toString()}-${color.b.toString()}-${hdr ? "hdr" : "sdr"}-${op.toString()}`;
171
+ const op = opacity ?? defaultOpacity, key = `rgb-${color.r.toFixed(rgbFixedPrecision)}-${color.g.toFixed(rgbFixedPrecision)}-${color.b.toFixed(rgbFixedPrecision)}-${hdr ? "hdr" : "sdr"}-${op.toString()}`;
170
172
  return getCachedStyle(key, () => (hdr ? getHdrStyleFromRgb(color, opacity) : getSdrStyleFromRgb(color, opacity)));
171
173
  }
172
174
  function getHdrStyleFromRgb(color, opacity) {
@@ -176,7 +178,7 @@ function getSdrStyleFromRgb(color, opacity) {
176
178
  return `rgba(${color.r.toString()}, ${color.g.toString()}, ${color.b.toString()}, ${(opacity ?? defaultOpacity).toString()})`;
177
179
  }
178
180
  export function getStyleFromHsl(color, hdr, opacity) {
179
- const op = opacity ?? defaultOpacity, key = `hsl-${color.h.toString()}-${color.s.toString()}-${color.l.toString()}-${hdr ? "hdr" : "sdr"}-${op.toString()}`;
181
+ const op = opacity ?? defaultOpacity, key = `hsl-${color.h.toFixed(hslFixedPrecision)}-${color.s.toFixed(hslFixedPrecision)}-${color.l.toFixed(hslFixedPrecision)}-${hdr ? "hdr" : "sdr"}-${op.toString()}`;
180
182
  return getCachedStyle(key, () => (hdr ? getHdrStyleFromHsl(color, opacity) : getSdrStyleFromHsl(color, opacity)));
181
183
  }
182
184
  function getHdrStyleFromHsl(color, opacity) {
@@ -1,6 +1,6 @@
1
1
  import { clamp, collisionVelocity, getDistances, getRandom, getRangeMax, getRangeMin, getRangeValue, randomInRangeValue, } from "./MathUtils.js";
2
2
  import { half, millisecondsToSeconds, percentDenominator } from "../Core/Utils/Constants.js";
3
- import { isArray, isNull, isObject } from "./TypeUtils.js";
3
+ import { isArray, isBoolean, isNull, isObject } from "./TypeUtils.js";
4
4
  import { AnimationMode } from "../Enums/Modes/AnimationMode.js";
5
5
  import { AnimationStatus } from "../Enums/AnimationStatus.js";
6
6
  import { DestroyType } from "../Enums/Types/DestroyType.js";
@@ -21,12 +21,6 @@ function memoize(fn) {
21
21
  return result;
22
22
  };
23
23
  }
24
- function checkSelector(element, selectors) {
25
- const res = executeOnSingleOrMultiple(selectors, selector => {
26
- return element.matches(selector);
27
- });
28
- return isArray(res) ? res.some(t => t) : res;
29
- }
30
24
  export function hasMatchMedia() {
31
25
  return typeof matchMedia !== "undefined";
32
26
  }
@@ -104,11 +98,15 @@ export function deepExtend(destination, ...sources) {
104
98
  continue;
105
99
  }
106
100
  const sourceIsArray = Array.isArray(source);
107
- if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {
108
- destination = [];
101
+ if (sourceIsArray) {
102
+ if (!Array.isArray(destination)) {
103
+ destination = [];
104
+ }
109
105
  }
110
- else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {
111
- destination = {};
106
+ else {
107
+ if (!isObject(destination) || Array.isArray(destination)) {
108
+ destination = {};
109
+ }
112
110
  }
113
111
  for (const key in source) {
114
112
  if (key === "__proto__") {
@@ -123,31 +121,6 @@ export function deepExtend(destination, ...sources) {
123
121
  }
124
122
  return destination;
125
123
  }
126
- export function isDivModeEnabled(mode, divs) {
127
- return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));
128
- }
129
- export function divModeExecute(mode, divs, callback) {
130
- executeOnSingleOrMultiple(divs, div => {
131
- const divMode = div.mode, divEnabled = div.enable;
132
- if (divEnabled && isInArray(mode, divMode)) {
133
- singleDivModeExecute(div, callback);
134
- }
135
- });
136
- }
137
- export function singleDivModeExecute(div, callback) {
138
- const selectors = div.selectors;
139
- executeOnSingleOrMultiple(selectors, selector => {
140
- callback(selector, div);
141
- });
142
- }
143
- export function divMode(divs, element) {
144
- if (!element || !divs) {
145
- return;
146
- }
147
- return findItemFromSingleOrMultiple(divs, div => {
148
- return checkSelector(element, div.selectors);
149
- });
150
- }
151
124
  export function circleBounceDataFromParticle(p) {
152
125
  return {
153
126
  position: p.getPosition(),
@@ -368,3 +341,27 @@ function computeFullScreenStyle(zIndex) {
368
341
  return fullScreenStyle;
369
342
  }
370
343
  export const getFullScreenStyle = memoize(computeFullScreenStyle);
344
+ export function manageListener(element, event, handler, add, options) {
345
+ if (add) {
346
+ let addOptions = { passive: true };
347
+ if (isBoolean(options)) {
348
+ addOptions.capture = options;
349
+ }
350
+ else if (options !== undefined) {
351
+ addOptions = options;
352
+ }
353
+ element.addEventListener(event, handler, addOptions);
354
+ }
355
+ else {
356
+ const removeOptions = options;
357
+ element.removeEventListener(event, handler, removeOptions);
358
+ }
359
+ }
360
+ export async function getItemsFromInitializer(container, map, initializers, force = false) {
361
+ let res = map.get(container);
362
+ if (!res || force) {
363
+ res = await Promise.all([...initializers.values()].map(t => t(container)));
364
+ map.set(container, res);
365
+ }
366
+ return res;
367
+ }
package/cjs/exports.js CHANGED
@@ -1,6 +1,4 @@
1
1
  export * from "./Core/Utils/Constants.js";
2
- export * from "./Core/Utils/ExternalInteractorBase.js";
3
- export * from "./Core/Utils/ParticlesInteractorBase.js";
4
2
  export * from "./Core/Utils/Point.js";
5
3
  export * from "./Core/Utils/Ranges.js";
6
4
  export * from "./Core/Utils/Vectors.js";
@@ -11,36 +9,20 @@ export * from "./Enums/Modes/AnimationMode.js";
11
9
  export * from "./Enums/Modes/LimitMode.js";
12
10
  export * from "./Enums/Modes/OutMode.js";
13
11
  export * from "./Enums/Modes/PixelMode.js";
14
- export * from "./Enums/Modes/ThemeMode.js";
15
- export * from "./Enums/Modes/ResponsiveMode.js";
16
12
  export * from "./Enums/Types/AlterType.js";
17
13
  export * from "./Enums/Types/DestroyType.js";
18
14
  export * from "./Enums/Types/GradientType.js";
19
- export * from "./Enums/Types/InteractorType.js";
20
15
  export * from "./Enums/Types/ParticleOutType.js";
21
16
  export * from "./Enums/Types/StartValueType.js";
22
- export * from "./Enums/Types/DivType.js";
23
17
  export * from "./Enums/Types/EasingType.js";
24
18
  export * from "./Enums/Types/EventType.js";
25
19
  export * from "./Enums/AnimationStatus.js";
26
- export * from "./Enums/InteractivityDetect.js";
27
20
  export * from "./Options/Classes/AnimatableColor.js";
28
21
  export * from "./Options/Classes/AnimationOptions.js";
29
22
  export * from "./Options/Classes/Background/Background.js";
30
23
  export * from "./Options/Classes/ColorAnimation.js";
31
24
  export * from "./Options/Classes/FullScreen/FullScreen.js";
32
25
  export * from "./Options/Classes/HslAnimation.js";
33
- export * from "./Options/Classes/Interactivity/Events/ClickEvent.js";
34
- export * from "./Options/Classes/Interactivity/Events/DivEvent.js";
35
- export * from "./Options/Classes/Interactivity/Events/ClickEvent.js";
36
- export * from "./Options/Classes/Interactivity/Events/DivEvent.js";
37
- export * from "./Options/Classes/Interactivity/Events/Events.js";
38
- export * from "./Options/Classes/Interactivity/Events/HoverEvent.js";
39
- export * from "./Options/Classes/Interactivity/Events/Parallax.js";
40
- export * from "./Options/Classes/Interactivity/Events/ResizeEvent.js";
41
- export * from "./Options/Classes/Interactivity/Interactivity.js";
42
- export * from "./Options/Classes/Interactivity/Modes/Modes.js";
43
- export * from "./Options/Classes/ManualParticle.js";
44
26
  export * from "./Options/Classes/Options.js";
45
27
  export * from "./Options/Classes/OptionsColor.js";
46
28
  export * from "./Options/Classes/Particles/Bounce/ParticlesBounce.js";
@@ -64,9 +46,7 @@ export * from "./Options/Classes/Particles/Shape/Shape.js";
64
46
  export * from "./Options/Classes/Particles/Size/Size.js";
65
47
  export * from "./Options/Classes/Particles/Size/SizeAnimation.js";
66
48
  export * from "./Options/Classes/Particles/ZIndex/ZIndex.js";
67
- export * from "./Options/Classes/Responsive.js";
68
- export * from "./Options/Classes/Theme/Theme.js";
69
- export * from "./Options/Classes/Theme/ThemeDefault.js";
49
+ export * from "./Options/Classes/ResizeEvent.js";
70
50
  export * from "./Options/Classes/ValueWithRandom.js";
71
51
  export * from "./Utils/CanvasUtils.js";
72
52
  export * from "./Utils/ColorUtils.js";