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

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 +10 -51
  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 +25 -32
  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 +10 -51
  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 +25 -32
  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 +10 -51
  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 +25 -32
  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 +3 -18
  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 +11 -52
  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 +26 -35
  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
@@ -51,14 +51,6 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  const LogUtils_js_1 = require("../Utils/LogUtils.js");
52
52
  const MathUtils_js_1 = require("../Utils/MathUtils.js");
53
53
  const fullPercent = "100%";
54
- async function getItemsFromInitializer(container, map, initializers, force = false) {
55
- let res = map.get(container);
56
- if (!res || force) {
57
- res = await Promise.all([...initializers.values()].map(t => t(container)));
58
- map.set(container, res);
59
- }
60
- return res;
61
- }
62
54
  async function getDataFromUrl(data) {
63
55
  const url = (0, Utils_js_1.itemFromSingleOrMultiple)(data.url, data.index);
64
56
  if (!url) {
@@ -95,7 +87,7 @@ var __importStar = (this && this.__importStar) || (function () {
95
87
  return canvasEl;
96
88
  }, getDomContainer = (id, source) => {
97
89
  const documentSafe = (0, Utils_js_1.safeDocument)();
98
- let domContainer = source ?? document.getElementById(id);
90
+ let domContainer = source ?? documentSafe.getElementById(id);
99
91
  if (domContainer) {
100
92
  return domContainer;
101
93
  }
@@ -116,11 +108,9 @@ var __importStar = (this && this.__importStar) || (function () {
116
108
  this.colorManagers = new Map();
117
109
  this.easingFunctions = new Map();
118
110
  this._initializers = {
119
- interactors: new Map(),
120
111
  movers: new Map(),
121
112
  updaters: new Map(),
122
113
  };
123
- this.interactors = new Map();
124
114
  this.movers = new Map();
125
115
  this.updaters = new Map();
126
116
  this.presets = new Map();
@@ -139,7 +129,7 @@ var __importStar = (this && this.__importStar) || (function () {
139
129
  return this._domArray;
140
130
  }
141
131
  get version() {
142
- return "4.0.0-alpha.3";
132
+ return "4.0.0-alpha.4";
143
133
  }
144
134
  addColorManager(manager) {
145
135
  this.colorManagers.set(manager.key, manager);
@@ -164,9 +154,6 @@ var __importStar = (this && this.__importStar) || (function () {
164
154
  addEventListener(type, listener) {
165
155
  this._eventDispatcher.addEventListener(type, listener);
166
156
  }
167
- addInteractor(name, interactorInitializer) {
168
- this._initializers.interactors.set(name, interactorInitializer);
169
- }
170
157
  addMover(name, moverInitializer) {
171
158
  this._initializers.movers.set(name, moverInitializer);
172
159
  }
@@ -208,37 +195,18 @@ var __importStar = (this && this.__importStar) || (function () {
208
195
  clearPlugins(container) {
209
196
  this.updaters.delete(container);
210
197
  this.movers.delete(container);
211
- this.interactors.delete(container);
212
198
  }
213
199
  dispatchEvent(type, args) {
214
200
  this._eventDispatcher.dispatchEvent(type, args);
215
201
  }
216
- dom() {
217
- return this.items;
218
- }
219
- domItem(index) {
220
- return this.item(index);
221
- }
222
- async getAvailablePlugins(container) {
223
- const res = new Map();
224
- for (const plugin of this.plugins) {
225
- if (plugin.needsPlugin(container.actualOptions)) {
226
- res.set(plugin.id, await plugin.getPlugin(container));
227
- }
228
- }
229
- return res;
230
- }
231
202
  getEasing(name) {
232
203
  return this.easingFunctions.get(name) ?? ((value) => value);
233
204
  }
234
205
  getEffectDrawer(type) {
235
206
  return this.effectDrawers.get(type);
236
207
  }
237
- async getInteractors(container, force = false) {
238
- return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);
239
- }
240
208
  async getMovers(container, force = false) {
241
- return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);
209
+ return (0, Utils_js_1.getItemsFromInitializer)(container, this.movers, this._initializers.movers, force);
242
210
  }
243
211
  getPathGenerator(type) {
244
212
  return this.pathGenerators.get(type);
@@ -259,7 +227,7 @@ var __importStar = (this && this.__importStar) || (function () {
259
227
  return this.shapeDrawers.keys();
260
228
  }
261
229
  async getUpdaters(container, force = false) {
262
- return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);
230
+ return (0, Utils_js_1.getItemsFromInitializer)(container, this.updaters, this._initializers.updaters, force);
263
231
  }
264
232
  async init() {
265
233
  if (this._initialized) {
@@ -282,8 +250,12 @@ var __importStar = (this && this.__importStar) || (function () {
282
250
  allLoaders.add(loader);
283
251
  }
284
252
  };
285
- await loader(this);
286
- this.register = origRegister;
253
+ try {
254
+ await loader(this);
255
+ }
256
+ finally {
257
+ this.register = origRegister;
258
+ }
287
259
  stack.unshift(...inner);
288
260
  this._loadPromises.delete(loader);
289
261
  }
@@ -303,6 +275,7 @@ var __importStar = (this && this.__importStar) || (function () {
303
275
  }
304
276
  async load(params) {
305
277
  await this.init();
278
+ this._loadPromises.clear();
306
279
  const { Container } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./Container.js"))) : new Promise((resolve_1, reject_1) => { require(["./Container.js"], resolve_1, reject_1); }).then(__importStar)), id = params.id ??
307
280
  params.element?.id ??
308
281
  `tsparticles${Math.floor((0, MathUtils_js_1.getRandom)() * Constants_js_1.loadRandomFactor).toString()}`, { index, url } = params, options = url ? await getDataFromUrl({ fallback: params.options, url, index }) : params.options, currentOptions = (0, Utils_js_1.itemFromSingleOrMultiple)(options, index), { items } = this, oldIndex = items.findIndex(v => v.id.description === id), newItem = new Container(this, id, currentOptions);
@@ -321,11 +294,6 @@ var __importStar = (this && this.__importStar) || (function () {
321
294
  await newItem.start();
322
295
  return newItem;
323
296
  }
324
- loadOptions(options, sourceOptions) {
325
- this.plugins.forEach(plugin => {
326
- plugin.loadOptions(options, sourceOptions);
327
- });
328
- }
329
297
  loadParticlesOptions(container, options, ...sourceOptions) {
330
298
  const updaters = this.updaters.get(container);
331
299
  if (!updaters) {
@@ -350,15 +318,6 @@ var __importStar = (this && this.__importStar) || (function () {
350
318
  removeEventListener(type, listener) {
351
319
  this._eventDispatcher.removeEventListener(type, listener);
352
320
  }
353
- setOnClickHandler(callback) {
354
- const { items } = this;
355
- if (!items.length) {
356
- throw new Error("Click handlers can only be set after calling tsParticles.load()");
357
- }
358
- items.forEach(item => {
359
- item.addClickHandler(callback);
360
- });
361
- }
362
321
  }
363
322
  exports.Engine = Engine;
364
323
  });
@@ -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/Vectors.js", "../Utils/MathUtils.js", "./Utils/Constants.js", "../Utils/Utils.js", "../Enums/Types/EventType.js", "../Options/Classes/Interactivity/Interactivity.js", "../Enums/Directions/MoveDirection.js", "../Enums/Modes/OutMode.js", "../Enums/Types/ParticleOutType.js", "../Utils/CanvasUtils.js", "../Utils/ColorUtils.js", "../Utils/OptionsUtils.js"], factory);
7
+ define(["require", "exports", "./Utils/Vectors.js", "../Utils/MathUtils.js", "./Utils/Constants.js", "../Utils/Utils.js", "../Enums/Types/EventType.js", "../Enums/Directions/MoveDirection.js", "../Enums/Modes/OutMode.js", "../Enums/Types/ParticleOutType.js", "../Utils/CanvasUtils.js", "../Utils/ColorUtils.js", "../Utils/OptionsUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -15,7 +15,6 @@
15
15
  const Constants_js_1 = require("./Utils/Constants.js");
16
16
  const Utils_js_1 = require("../Utils/Utils.js");
17
17
  const EventType_js_1 = require("../Enums/Types/EventType.js");
18
- const Interactivity_js_1 = require("../Options/Classes/Interactivity/Interactivity.js");
19
18
  const MoveDirection_js_1 = require("../Enums/Directions/MoveDirection.js");
20
19
  const OutMode_js_1 = require("../Enums/Modes/OutMode.js");
21
20
  const ParticleOutType_js_1 = require("../Enums/Types/ParticleOutType.js");
@@ -65,7 +64,7 @@
65
64
  };
66
65
  this._calcPosition = (position, zIndex) => {
67
66
  let tryCount = Constants_js_1.defaultRetryCount, posVec = position ? Vectors_js_1.Vector3d.create(position.x, position.y, zIndex) : undefined;
68
- const container = this.container, plugins = Array.from(container.plugins.values()), outModes = this.options.move.outModes, radius = this.getRadius(), canvasSize = container.canvas.size, abortController = new AbortController(), { signal } = abortController;
67
+ const container = this.container, plugins = Array.from(container.plugins), outModes = this.options.move.outModes, radius = this.getRadius(), canvasSize = container.canvas.size, abortController = new AbortController(), { signal } = abortController;
69
68
  while (!signal.aborted) {
70
69
  for (const plugin of plugins) {
71
70
  const pluginPos = plugin.particlePosition?.(posVec, this);
@@ -185,7 +184,7 @@
185
184
  this.slow.inRange = false;
186
185
  const container = this.container, pathGenerator = this.pathGenerator, shapeDrawer = this.shape ? container.shapeDrawers.get(this.shape) : undefined;
187
186
  shapeDrawer?.particleDestroy?.(this);
188
- for (const plugin of container.plugins.values()) {
187
+ for (const plugin of container.plugins) {
189
188
  plugin.particleDestroyed?.(this, override);
190
189
  }
191
190
  for (const updater of container.particles.updaters) {
@@ -201,7 +200,7 @@
201
200
  }
202
201
  draw(delta) {
203
202
  const container = this.container, canvas = container.canvas;
204
- for (const plugin of container.plugins.values()) {
203
+ for (const plugin of container.plugins) {
205
204
  canvas.drawParticlePlugin(plugin, this, delta);
206
205
  }
207
206
  canvas.drawParticle(this, delta);
@@ -252,7 +251,7 @@
252
251
  return this._cachedTransform;
253
252
  }
254
253
  init(id, position, overrideOptions, group) {
255
- const container = this.container, engine = this._engine;
254
+ const container = this.container;
256
255
  this.id = id;
257
256
  this.group = group;
258
257
  this.effectClose = true;
@@ -312,10 +311,6 @@
312
311
  if (shapeData) {
313
312
  particlesOptions.load(shapeData.particles);
314
313
  }
315
- const interactivity = new Interactivity_js_1.Interactivity(engine, container);
316
- interactivity.load(container.actualOptions.interactivity);
317
- interactivity.load(particlesOptions.interactivity);
318
- this.interactivity = interactivity;
319
314
  this.effectFill = effectData?.fill ?? particlesOptions.effect.fill;
320
315
  this.effectClose = effectData?.close ?? particlesOptions.effect.close;
321
316
  this.shapeFill = shapeData?.fill ?? particlesOptions.shape.fill;
@@ -384,7 +379,7 @@
384
379
  }
385
380
  effectDrawer?.particleInit?.(container, this);
386
381
  shapeDrawer?.particleInit?.(container, this);
387
- for (const plugin of container.plugins.values()) {
382
+ for (const plugin of container.plugins) {
388
383
  plugin.particleCreated?.(this);
389
384
  }
390
385
  }
@@ -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/Constants.js", "../Enums/Types/EventType.js", "./Utils/InteractionManager.js", "../Enums/Modes/LimitMode.js", "./Particle.js", "./Utils/Point.js", "./Utils/QuadTree.js", "./Utils/Ranges.js", "../Utils/LogUtils.js", "../Utils/Utils.js", "../Utils/OptionsUtils.js"], factory);
7
+ define(["require", "exports", "./Utils/Constants.js", "../Enums/Types/EventType.js", "../Enums/Modes/LimitMode.js", "./Particle.js", "./Utils/Point.js", "./Utils/QuadTree.js", "./Utils/Ranges.js", "../Utils/LogUtils.js", "../Utils/OptionsUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -12,14 +12,12 @@
12
12
  exports.Particles = void 0;
13
13
  const Constants_js_1 = require("./Utils/Constants.js");
14
14
  const EventType_js_1 = require("../Enums/Types/EventType.js");
15
- const InteractionManager_js_1 = require("./Utils/InteractionManager.js");
16
15
  const LimitMode_js_1 = require("../Enums/Modes/LimitMode.js");
17
16
  const Particle_js_1 = require("./Particle.js");
18
17
  const Point_js_1 = require("./Utils/Point.js");
19
18
  const QuadTree_js_1 = require("./Utils/QuadTree.js");
20
19
  const Ranges_js_1 = require("./Utils/Ranges.js");
21
20
  const LogUtils_js_1 = require("../Utils/LogUtils.js");
22
- const Utils_js_1 = require("../Utils/Utils.js");
23
21
  const OptionsUtils_js_1 = require("../Utils/OptionsUtils.js");
24
22
  const qTreeRectangle = (canvasSize) => {
25
23
  const { height, width } = canvasSize;
@@ -30,7 +28,7 @@
30
28
  this._addToPool = (...particles) => {
31
29
  this._pool.push(...particles);
32
30
  };
33
- this._applyDensity = (options, manualCount, group, groupOptions) => {
31
+ this._applyDensity = (options, pluginsCount, group, groupOptions) => {
34
32
  const numberOptions = options.number;
35
33
  if (!numberOptions.density.enable) {
36
34
  if (group === undefined) {
@@ -41,7 +39,7 @@
41
39
  }
42
40
  return;
43
41
  }
44
- const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit.value > Constants_js_1.minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.filter(t => t.group === group).length);
42
+ const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit.value > Constants_js_1.minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + pluginsCount, particlesCount = Math.min(this.count, this.filter(t => t.group === group).length);
45
43
  if (group === undefined) {
46
44
  this._limit = numberOptions.limit.value * densityFactor;
47
45
  }
@@ -121,7 +119,6 @@
121
119
  this._groupLimits = new Map();
122
120
  this._needsSort = false;
123
121
  this._lastZIndex = 0;
124
- this._interactionManager = new InteractionManager_js_1.InteractionManager(engine, container);
125
122
  this._pluginsInitialized = false;
126
123
  const canvasSize = container.canvas.size;
127
124
  this.quadTree = new QuadTree_js_1.QuadTree(qTreeRectangle(canvasSize), Constants_js_1.qTreeCapacity);
@@ -131,10 +128,6 @@
131
128
  get count() {
132
129
  return this._array.length;
133
130
  }
134
- addManualParticles() {
135
- const container = this._container, options = container.actualOptions;
136
- options.manualParticles.forEach(p => this.addParticle(p.position ? (0, Utils_js_1.getPosition)(p.position, container.canvas.size) : undefined, p.options));
137
- }
138
131
  addParticle(position, overrideOptions, group, initializer) {
139
132
  const limitMode = this._container.actualOptions.particles.number.limit.mode, limit = group === undefined ? this._limit : (this._groupLimits.get(group) ?? this._limit), currentCount = this.count;
140
133
  if (limit > Constants_js_1.minLimit) {
@@ -180,22 +173,23 @@
180
173
  get(index) {
181
174
  return this._array[index];
182
175
  }
183
- handleClickMode(mode) {
184
- this._interactionManager.handleClickMode(mode);
185
- }
186
176
  async init() {
187
177
  const container = this._container, options = container.actualOptions;
188
178
  this._lastZIndex = 0;
189
179
  this._needsSort = false;
180
+ for (const plugin of container.plugins) {
181
+ if (plugin.redrawInit) {
182
+ await plugin.redrawInit();
183
+ }
184
+ }
190
185
  await this.initPlugins();
191
186
  let handled = false;
192
- for (const plugin of container.plugins.values()) {
187
+ for (const plugin of container.plugins) {
193
188
  handled = plugin.particlesInitialization?.() ?? handled;
194
189
  if (handled) {
195
190
  break;
196
191
  }
197
192
  }
198
- this.addManualParticles();
199
193
  if (!handled) {
200
194
  const particlesOptions = options.particles, groups = particlesOptions.groups;
201
195
  for (const group in groups) {
@@ -219,14 +213,13 @@
219
213
  const container = this._container;
220
214
  this.movers = await this._engine.getMovers(container, true);
221
215
  this.updaters = await this._engine.getUpdaters(container, true);
222
- await this._interactionManager.init();
223
216
  for (const pathGenerator of container.pathGenerators.values()) {
224
217
  pathGenerator.init(container);
225
218
  }
226
219
  }
227
- push(nb, mouse, overrideOptions, group) {
220
+ push(nb, position, overrideOptions, group) {
228
221
  for (let i = 0; i < nb; i++) {
229
- this.addParticle(mouse?.position, overrideOptions, group);
222
+ this.addParticle(position, overrideOptions, group);
230
223
  }
231
224
  }
232
225
  async redraw() {
@@ -253,16 +246,22 @@
253
246
  this.removeAt(Constants_js_1.minIndex, quantity, group);
254
247
  }
255
248
  setDensity() {
256
- const options = this._container.actualOptions, groups = options.particles.groups, manualCount = options.manualParticles.length;
249
+ const options = this._container.actualOptions, groups = options.particles.groups;
250
+ let pluginsCount = 0;
251
+ for (const plugin of this._container.plugins) {
252
+ if (plugin.particlesDensityCount) {
253
+ pluginsCount += plugin.particlesDensityCount();
254
+ }
255
+ }
257
256
  for (const group in groups) {
258
257
  const groupData = groups[group];
259
258
  if (!groupData) {
260
259
  continue;
261
260
  }
262
261
  const groupDataOptions = (0, OptionsUtils_js_1.loadParticlesOptions)(this._engine, this._container, groupData);
263
- this._applyDensity(groupDataOptions, manualCount, group);
262
+ this._applyDensity(groupDataOptions, pluginsCount, group);
264
263
  }
265
- this._applyDensity(options.particles, manualCount);
264
+ this._applyDensity(options.particles, pluginsCount);
266
265
  }
267
266
  setLastZIndex(zIndex) {
268
267
  this._lastZIndex = zIndex;
@@ -277,7 +276,7 @@
277
276
  for (const pathGenerator of container.pathGenerators.values()) {
278
277
  pathGenerator.update();
279
278
  }
280
- for (const plugin of container.plugins.values()) {
279
+ for (const plugin of container.plugins) {
281
280
  plugin.update?.(delta);
282
281
  }
283
282
  const resizeFactor = this._resizeFactor;
@@ -289,8 +288,12 @@
289
288
  particle.initialPosition.y *= resizeFactor.height;
290
289
  }
291
290
  particle.ignoresResizeRatio = false;
292
- this._interactionManager.reset(particle);
293
- for (const plugin of this._container.plugins.values()) {
291
+ for (const plugin of this._container.plugins) {
292
+ if (plugin.particleReset) {
293
+ plugin.particleReset(particle);
294
+ }
295
+ }
296
+ for (const plugin of this._container.plugins) {
294
297
  if (particle.destroyed) {
295
298
  break;
296
299
  }
@@ -321,13 +324,21 @@
321
324
  }
322
325
  this._addToPool(...particlesToDelete);
323
326
  }
324
- this._interactionManager.externalInteract(delta);
327
+ for (const plugin of container.plugins) {
328
+ if (plugin.postUpdate) {
329
+ plugin.postUpdate(delta);
330
+ }
331
+ }
325
332
  for (const particle of this._array) {
326
333
  for (const updater of this.updaters) {
327
334
  updater.update(particle, delta);
328
335
  }
329
336
  if (!particle.destroyed && !particle.spawning) {
330
- this._interactionManager.particlesInteract(particle, delta);
337
+ for (const plugin of container.plugins) {
338
+ if (plugin.postParticleUpdate) {
339
+ plugin.postParticleUpdate(particle, delta);
340
+ }
341
+ }
331
342
  }
332
343
  }
333
344
  delete this._resizeFactor;
@@ -9,8 +9,8 @@
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.defaultTime = exports.defaultLoops = exports.defaultVelocity = exports.defaultRgbMin = exports.phaseNumerator = exports.sNormalizedOffset = exports.sextuple = exports.triple = exports.lMin = exports.lFactor = exports.minStrokeWidth = exports.identity = exports.defaultAngle = exports.manualDefaultPosition = exports.touchDelay = exports.deleteCount = exports.defaultDensityFactor = exports.lengthOffset = exports.manualCount = exports.minIndex = exports.minCount = exports.countOffset = exports.minLimit = exports.sizeFactor = exports.posOffset = exports.defaultRadius = exports.minZ = exports.rollFactor = exports.minRetries = exports.tryCountIncrement = exports.decayOffset = exports.none = exports.one = exports.loadMinIndex = exports.loadRandomFactor = exports.canvasFirstIndex = exports.minFpsLimit = exports.defaultFpsLimit = exports.removeMinIndex = exports.removeDeleteCount = exports.minCoordinate = exports.touchEndLengthOffset = exports.clickRadius = exports.defaultOpacity = exports.zIndexFactorOffset = exports.minimumLength = exports.minimumSize = exports.defaultTransformValue = exports.minVelocity = exports.threeQuarter = exports.quarter = exports.empty = exports.hPhase = exports.sMin = exports.hMin = exports.lMax = exports.sMax = exports.hMax = exports.rgbMax = exports.inverseFactorNumerator = exports.subdivideCount = exports.defaultReduceFactor = exports.defaultRatio = exports.defaultRemoveQuantity = exports.qTreeCapacity = exports.squareExp = exports.defaultRetryCount = exports.canvasTag = exports.generatedFalse = exports.generatedTrue = exports.defaultAlpha = exports.defaultFps = exports.doublePI = exports.double = exports.midColorValue = exports.randomColorValue = exports.defaultTransform = exports.originPoint = exports.millisecondsToSeconds = exports.half = exports.percentDenominator = exports.visibilityChangeEvent = exports.resizeEvent = exports.touchCancelEvent = exports.touchMoveEvent = exports.touchEndEvent = exports.touchStartEvent = exports.mouseMoveEvent = exports.mouseOutEvent = exports.mouseLeaveEvent = exports.mouseUpEvent = exports.mouseDownEvent = exports.generatedAttribute = void 0;
13
- exports.generatedAttribute = "generated", exports.mouseDownEvent = "pointerdown", exports.mouseUpEvent = "pointerup", exports.mouseLeaveEvent = "pointerleave", exports.mouseOutEvent = "pointerout", exports.mouseMoveEvent = "pointermove", exports.touchStartEvent = "touchstart", exports.touchEndEvent = "touchend", exports.touchMoveEvent = "touchmove", exports.touchCancelEvent = "touchcancel", exports.resizeEvent = "resize", exports.visibilityChangeEvent = "visibilitychange", exports.percentDenominator = 100, exports.half = 0.5, exports.millisecondsToSeconds = 1000, exports.originPoint = {
12
+ exports.defaultTime = exports.defaultLoops = exports.defaultVelocity = exports.defaultRgbMin = exports.phaseNumerator = exports.sNormalizedOffset = exports.sextuple = exports.triple = exports.lMin = exports.lFactor = exports.minStrokeWidth = exports.identity = exports.defaultAngle = exports.manualDefaultPosition = exports.touchDelay = exports.deleteCount = exports.defaultDensityFactor = exports.lengthOffset = exports.minIndex = exports.minCount = exports.countOffset = exports.minLimit = exports.sizeFactor = exports.posOffset = exports.defaultRadius = exports.minZ = exports.rollFactor = exports.minRetries = exports.tryCountIncrement = exports.decayOffset = exports.none = exports.one = exports.loadMinIndex = exports.loadRandomFactor = exports.canvasFirstIndex = exports.minFpsLimit = exports.defaultFpsLimit = exports.removeMinIndex = exports.removeDeleteCount = exports.minCoordinate = exports.touchEndLengthOffset = exports.clickRadius = exports.defaultOpacity = exports.zIndexFactorOffset = exports.minimumLength = exports.minimumSize = exports.defaultTransformValue = exports.minVelocity = exports.threeQuarter = exports.quarter = exports.empty = exports.hPhase = exports.sMin = exports.hMin = exports.lMax = exports.sMax = exports.hMax = exports.rgbMax = exports.inverseFactorNumerator = exports.subdivideCount = exports.defaultReduceFactor = exports.defaultRatio = exports.defaultRemoveQuantity = exports.qTreeCapacity = exports.squareExp = exports.defaultRetryCount = exports.canvasTag = exports.generatedFalse = exports.generatedTrue = exports.defaultAlpha = exports.defaultFps = exports.doublePI = exports.double = exports.midColorValue = exports.randomColorValue = exports.defaultTransform = exports.originPoint = exports.millisecondsToSeconds = exports.half = exports.percentDenominator = exports.visibilityChangeEvent = exports.resizeEvent = exports.generatedAttribute = void 0;
13
+ exports.generatedAttribute = "generated", exports.resizeEvent = "resize", exports.visibilityChangeEvent = "visibilitychange", exports.percentDenominator = 100, exports.half = 0.5, exports.millisecondsToSeconds = 1000, exports.originPoint = {
14
14
  x: 0,
15
15
  y: 0,
16
16
  z: 0,
@@ -19,5 +19,5 @@
19
19
  b: 0,
20
20
  c: 0,
21
21
  d: 1,
22
- }, exports.randomColorValue = "random", exports.midColorValue = "mid", exports.double = 2, exports.doublePI = Math.PI * exports.double, exports.defaultFps = 60, exports.defaultAlpha = 1, exports.generatedTrue = "true", exports.generatedFalse = "false", exports.canvasTag = "canvas", exports.defaultRetryCount = 0, exports.squareExp = 2, exports.qTreeCapacity = 4, exports.defaultRemoveQuantity = 1, exports.defaultRatio = 1, exports.defaultReduceFactor = 1, exports.subdivideCount = 4, exports.inverseFactorNumerator = 1.0, exports.rgbMax = 255, exports.hMax = 360, exports.sMax = 100, exports.lMax = 100, exports.hMin = 0, exports.sMin = 0, exports.hPhase = 60, exports.empty = 0, exports.quarter = 0.25, exports.threeQuarter = exports.half + exports.quarter, exports.minVelocity = 0, exports.defaultTransformValue = 1, exports.minimumSize = 0, exports.minimumLength = 0, exports.zIndexFactorOffset = 1, exports.defaultOpacity = 1, exports.clickRadius = 1, exports.touchEndLengthOffset = 1, exports.minCoordinate = 0, exports.removeDeleteCount = 1, exports.removeMinIndex = 0, exports.defaultFpsLimit = 120, exports.minFpsLimit = 0, exports.canvasFirstIndex = 0, exports.loadRandomFactor = 10000, exports.loadMinIndex = 0, exports.one = 1, exports.none = 0, exports.decayOffset = 1, exports.tryCountIncrement = 1, exports.minRetries = 0, exports.rollFactor = 1, exports.minZ = 0, exports.defaultRadius = 0, exports.posOffset = -exports.quarter, exports.sizeFactor = 1.5, exports.minLimit = 0, exports.countOffset = 1, exports.minCount = 0, exports.minIndex = 0, exports.manualCount = 0, exports.lengthOffset = 1, exports.defaultDensityFactor = 1, exports.deleteCount = 1, exports.touchDelay = 500, exports.manualDefaultPosition = 50, exports.defaultAngle = 0, exports.identity = 1, exports.minStrokeWidth = 0, exports.lFactor = 1, exports.lMin = 0, exports.triple = 3, exports.sextuple = 6, exports.sNormalizedOffset = 1, exports.phaseNumerator = 1, exports.defaultRgbMin = 0, exports.defaultVelocity = 0, exports.defaultLoops = 0, exports.defaultTime = 0;
22
+ }, exports.randomColorValue = "random", exports.midColorValue = "mid", exports.double = 2, exports.doublePI = Math.PI * exports.double, exports.defaultFps = 60, exports.defaultAlpha = 1, exports.generatedTrue = "true", exports.generatedFalse = "false", exports.canvasTag = "canvas", exports.defaultRetryCount = 0, exports.squareExp = 2, exports.qTreeCapacity = 4, exports.defaultRemoveQuantity = 1, exports.defaultRatio = 1, exports.defaultReduceFactor = 1, exports.subdivideCount = 4, exports.inverseFactorNumerator = 1.0, exports.rgbMax = 255, exports.hMax = 360, exports.sMax = 100, exports.lMax = 100, exports.hMin = 0, exports.sMin = 0, exports.hPhase = 60, exports.empty = 0, exports.quarter = 0.25, exports.threeQuarter = exports.half + exports.quarter, exports.minVelocity = 0, exports.defaultTransformValue = 1, exports.minimumSize = 0, exports.minimumLength = 0, exports.zIndexFactorOffset = 1, exports.defaultOpacity = 1, exports.clickRadius = 1, exports.touchEndLengthOffset = 1, exports.minCoordinate = 0, exports.removeDeleteCount = 1, exports.removeMinIndex = 0, exports.defaultFpsLimit = 120, exports.minFpsLimit = 0, exports.canvasFirstIndex = 0, exports.loadRandomFactor = 10000, exports.loadMinIndex = 0, exports.one = 1, exports.none = 0, exports.decayOffset = 1, exports.tryCountIncrement = 1, exports.minRetries = 0, exports.rollFactor = 1, exports.minZ = 0, exports.defaultRadius = 0, exports.posOffset = -exports.quarter, exports.sizeFactor = 1.5, exports.minLimit = 0, exports.countOffset = 1, exports.minCount = 0, exports.minIndex = 0, exports.lengthOffset = 1, exports.defaultDensityFactor = 1, exports.deleteCount = 1, exports.touchDelay = 500, exports.manualDefaultPosition = 50, exports.defaultAngle = 0, exports.identity = 1, exports.minStrokeWidth = 0, exports.lFactor = 1, exports.lMin = 0, exports.triple = 3, exports.sextuple = 6, exports.sNormalizedOffset = 1, exports.phaseNumerator = 1, exports.defaultRgbMin = 0, exports.defaultVelocity = 0, exports.defaultLoops = 0, exports.defaultTime = 0;
23
23
  });