@tsparticles/engine 3.6.0-beta.1 → 3.7.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 (269) hide show
  1. package/README.md +6 -1
  2. package/browser/Core/Canvas.js +32 -21
  3. package/browser/Core/Container.js +1 -1
  4. package/browser/Core/Engine.js +17 -1
  5. package/browser/Core/Particle.js +1 -1
  6. package/browser/Options/Classes/AnimatableColor.js +2 -2
  7. package/browser/Options/Classes/AnimationOptions.js +3 -2
  8. package/browser/Options/Classes/Background/Background.js +2 -1
  9. package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
  10. package/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
  11. package/browser/Options/Classes/ColorAnimation.js +2 -1
  12. package/browser/Options/Classes/FullScreen/FullScreen.js +2 -1
  13. package/browser/Options/Classes/HslAnimation.js +2 -1
  14. package/browser/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
  15. package/browser/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  16. package/browser/Options/Classes/Interactivity/Events/Events.js +2 -1
  17. package/browser/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
  18. package/browser/Options/Classes/Interactivity/Events/Parallax.js +2 -1
  19. package/browser/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
  20. package/browser/Options/Classes/Interactivity/Interactivity.js +2 -1
  21. package/browser/Options/Classes/Interactivity/Modes/Modes.js +2 -1
  22. package/browser/Options/Classes/ManualParticle.js +2 -1
  23. package/browser/Options/Classes/Options.js +2 -2
  24. package/browser/Options/Classes/OptionsColor.js +5 -3
  25. package/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
  26. package/browser/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  27. package/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
  28. package/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
  29. package/browser/Options/Classes/Particles/Effect/Effect.js +2 -1
  30. package/browser/Options/Classes/Particles/Move/Move.js +2 -2
  31. package/browser/Options/Classes/Particles/Move/MoveAngle.js +2 -1
  32. package/browser/Options/Classes/Particles/Move/MoveAttract.js +2 -1
  33. package/browser/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  34. package/browser/Options/Classes/Particles/Move/MoveGravity.js +2 -1
  35. package/browser/Options/Classes/Particles/Move/MoveTrail.js +2 -1
  36. package/browser/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
  37. package/browser/Options/Classes/Particles/Move/OutModes.js +2 -1
  38. package/browser/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
  39. package/browser/Options/Classes/Particles/Move/Spin.js +2 -1
  40. package/browser/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
  41. package/browser/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
  42. package/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  43. package/browser/Options/Classes/Particles/Opacity/Opacity.js +2 -1
  44. package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  45. package/browser/Options/Classes/Particles/ParticlesOptions.js +2 -1
  46. package/browser/Options/Classes/Particles/Shadow.js +2 -1
  47. package/browser/Options/Classes/Particles/Shape/Shape.js +2 -1
  48. package/browser/Options/Classes/Particles/Size/Size.js +2 -1
  49. package/browser/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  50. package/browser/Options/Classes/Particles/Stroke.js +2 -1
  51. package/browser/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
  52. package/browser/Options/Classes/Responsive.js +5 -4
  53. package/browser/Options/Classes/Theme/Theme.js +2 -1
  54. package/browser/Options/Classes/Theme/ThemeDefault.js +2 -1
  55. package/browser/Options/Classes/ValueWithRandom.js +4 -3
  56. package/browser/Types/EasingFunction.js +1 -0
  57. package/browser/Utils/ColorUtils.js +25 -45
  58. package/browser/Utils/NumberUtils.js +1 -10
  59. package/browser/Utils/TypeUtils.js +3 -0
  60. package/browser/Utils/Utils.js +6 -0
  61. package/browser/exports.js +0 -2
  62. package/browser/init.js +0 -6
  63. package/cjs/Core/Canvas.js +32 -21
  64. package/cjs/Core/Container.js +1 -1
  65. package/cjs/Core/Engine.js +17 -1
  66. package/cjs/Core/Particle.js +1 -1
  67. package/cjs/Options/Classes/AnimatableColor.js +1 -1
  68. package/cjs/Options/Classes/AnimationOptions.js +3 -2
  69. package/cjs/Options/Classes/Background/Background.js +2 -1
  70. package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
  71. package/cjs/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
  72. package/cjs/Options/Classes/ColorAnimation.js +2 -1
  73. package/cjs/Options/Classes/FullScreen/FullScreen.js +2 -1
  74. package/cjs/Options/Classes/HslAnimation.js +2 -1
  75. package/cjs/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
  76. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  77. package/cjs/Options/Classes/Interactivity/Events/Events.js +2 -1
  78. package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
  79. package/cjs/Options/Classes/Interactivity/Events/Parallax.js +2 -1
  80. package/cjs/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
  81. package/cjs/Options/Classes/Interactivity/Interactivity.js +2 -1
  82. package/cjs/Options/Classes/Interactivity/Modes/Modes.js +2 -1
  83. package/cjs/Options/Classes/ManualParticle.js +2 -1
  84. package/cjs/Options/Classes/Options.js +2 -2
  85. package/cjs/Options/Classes/OptionsColor.js +4 -2
  86. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
  87. package/cjs/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  88. package/cjs/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
  89. package/cjs/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
  90. package/cjs/Options/Classes/Particles/Effect/Effect.js +2 -1
  91. package/cjs/Options/Classes/Particles/Move/Move.js +1 -1
  92. package/cjs/Options/Classes/Particles/Move/MoveAngle.js +2 -1
  93. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +2 -1
  94. package/cjs/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  95. package/cjs/Options/Classes/Particles/Move/MoveGravity.js +2 -1
  96. package/cjs/Options/Classes/Particles/Move/MoveTrail.js +2 -1
  97. package/cjs/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
  98. package/cjs/Options/Classes/Particles/Move/OutModes.js +2 -1
  99. package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
  100. package/cjs/Options/Classes/Particles/Move/Spin.js +2 -1
  101. package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
  102. package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
  103. package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  104. package/cjs/Options/Classes/Particles/Opacity/Opacity.js +2 -1
  105. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  106. package/cjs/Options/Classes/Particles/ParticlesOptions.js +2 -1
  107. package/cjs/Options/Classes/Particles/Shadow.js +2 -1
  108. package/cjs/Options/Classes/Particles/Shape/Shape.js +2 -1
  109. package/cjs/Options/Classes/Particles/Size/Size.js +2 -1
  110. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  111. package/cjs/Options/Classes/Particles/Stroke.js +2 -1
  112. package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
  113. package/cjs/Options/Classes/Responsive.js +5 -4
  114. package/cjs/Options/Classes/Theme/Theme.js +2 -1
  115. package/cjs/Options/Classes/Theme/ThemeDefault.js +2 -1
  116. package/cjs/Options/Classes/ValueWithRandom.js +4 -3
  117. package/cjs/Types/EasingFunction.js +2 -0
  118. package/cjs/Utils/ColorUtils.js +25 -46
  119. package/cjs/Utils/NumberUtils.js +1 -12
  120. package/cjs/Utils/TypeUtils.js +4 -0
  121. package/cjs/Utils/Utils.js +7 -0
  122. package/cjs/exports.js +0 -2
  123. package/cjs/init.js +0 -6
  124. package/esm/Core/Canvas.js +32 -21
  125. package/esm/Core/Container.js +1 -1
  126. package/esm/Core/Engine.js +17 -1
  127. package/esm/Core/Particle.js +1 -1
  128. package/esm/Options/Classes/AnimatableColor.js +2 -2
  129. package/esm/Options/Classes/AnimationOptions.js +3 -2
  130. package/esm/Options/Classes/Background/Background.js +2 -1
  131. package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
  132. package/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
  133. package/esm/Options/Classes/ColorAnimation.js +2 -1
  134. package/esm/Options/Classes/FullScreen/FullScreen.js +2 -1
  135. package/esm/Options/Classes/HslAnimation.js +2 -1
  136. package/esm/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
  137. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  138. package/esm/Options/Classes/Interactivity/Events/Events.js +2 -1
  139. package/esm/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
  140. package/esm/Options/Classes/Interactivity/Events/Parallax.js +2 -1
  141. package/esm/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
  142. package/esm/Options/Classes/Interactivity/Interactivity.js +2 -1
  143. package/esm/Options/Classes/Interactivity/Modes/Modes.js +2 -1
  144. package/esm/Options/Classes/ManualParticle.js +2 -1
  145. package/esm/Options/Classes/Options.js +2 -2
  146. package/esm/Options/Classes/OptionsColor.js +5 -3
  147. package/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
  148. package/esm/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  149. package/esm/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
  150. package/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
  151. package/esm/Options/Classes/Particles/Effect/Effect.js +2 -1
  152. package/esm/Options/Classes/Particles/Move/Move.js +2 -2
  153. package/esm/Options/Classes/Particles/Move/MoveAngle.js +2 -1
  154. package/esm/Options/Classes/Particles/Move/MoveAttract.js +2 -1
  155. package/esm/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  156. package/esm/Options/Classes/Particles/Move/MoveGravity.js +2 -1
  157. package/esm/Options/Classes/Particles/Move/MoveTrail.js +2 -1
  158. package/esm/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
  159. package/esm/Options/Classes/Particles/Move/OutModes.js +2 -1
  160. package/esm/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
  161. package/esm/Options/Classes/Particles/Move/Spin.js +2 -1
  162. package/esm/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
  163. package/esm/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
  164. package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  165. package/esm/Options/Classes/Particles/Opacity/Opacity.js +2 -1
  166. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  167. package/esm/Options/Classes/Particles/ParticlesOptions.js +2 -1
  168. package/esm/Options/Classes/Particles/Shadow.js +2 -1
  169. package/esm/Options/Classes/Particles/Shape/Shape.js +2 -1
  170. package/esm/Options/Classes/Particles/Size/Size.js +2 -1
  171. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  172. package/esm/Options/Classes/Particles/Stroke.js +2 -1
  173. package/esm/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
  174. package/esm/Options/Classes/Responsive.js +5 -4
  175. package/esm/Options/Classes/Theme/Theme.js +2 -1
  176. package/esm/Options/Classes/Theme/ThemeDefault.js +2 -1
  177. package/esm/Options/Classes/ValueWithRandom.js +4 -3
  178. package/esm/Types/EasingFunction.js +1 -0
  179. package/esm/Utils/ColorUtils.js +25 -45
  180. package/esm/Utils/NumberUtils.js +1 -10
  181. package/esm/Utils/TypeUtils.js +3 -0
  182. package/esm/Utils/Utils.js +6 -0
  183. package/esm/exports.js +0 -2
  184. package/esm/init.js +0 -6
  185. package/package.json +1 -1
  186. package/report.html +1 -1
  187. package/tsparticles.engine.js +62 -82
  188. package/tsparticles.engine.min.js +1 -1
  189. package/tsparticles.engine.min.js.LICENSE.txt +1 -1
  190. package/types/Core/Canvas.d.ts +4 -1
  191. package/types/Core/Engine.d.ts +9 -1
  192. package/types/Core/Interfaces/Colors.d.ts +28 -0
  193. package/types/Types/EasingFunction.d.ts +1 -0
  194. package/types/Utils/ColorUtils.d.ts +8 -9
  195. package/types/Utils/NumberUtils.d.ts +0 -5
  196. package/types/Utils/TypeUtils.d.ts +1 -0
  197. package/types/Utils/Utils.d.ts +2 -0
  198. package/types/exports.d.ts +0 -2
  199. package/umd/Core/Canvas.js +32 -21
  200. package/umd/Core/Container.js +1 -1
  201. package/umd/Core/Engine.js +17 -1
  202. package/umd/Core/Particle.js +1 -1
  203. package/umd/Options/Classes/AnimatableColor.js +1 -1
  204. package/umd/Options/Classes/AnimationOptions.js +4 -3
  205. package/umd/Options/Classes/Background/Background.js +3 -2
  206. package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +3 -3
  207. package/umd/Options/Classes/BackgroundMask/BackgroundMaskCover.js +3 -2
  208. package/umd/Options/Classes/ColorAnimation.js +3 -2
  209. package/umd/Options/Classes/FullScreen/FullScreen.js +3 -2
  210. package/umd/Options/Classes/HslAnimation.js +3 -2
  211. package/umd/Options/Classes/Interactivity/Events/ClickEvent.js +3 -2
  212. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +3 -2
  213. package/umd/Options/Classes/Interactivity/Events/Events.js +3 -2
  214. package/umd/Options/Classes/Interactivity/Events/HoverEvent.js +3 -2
  215. package/umd/Options/Classes/Interactivity/Events/Parallax.js +3 -2
  216. package/umd/Options/Classes/Interactivity/Events/ResizeEvent.js +3 -2
  217. package/umd/Options/Classes/Interactivity/Interactivity.js +3 -2
  218. package/umd/Options/Classes/Interactivity/Modes/Modes.js +3 -2
  219. package/umd/Options/Classes/ManualParticle.js +3 -2
  220. package/umd/Options/Classes/Options.js +3 -3
  221. package/umd/Options/Classes/OptionsColor.js +4 -2
  222. package/umd/Options/Classes/Particles/Bounce/ParticlesBounce.js +3 -2
  223. package/umd/Options/Classes/Particles/Collisions/Collisions.js +3 -2
  224. package/umd/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +3 -2
  225. package/umd/Options/Classes/Particles/Collisions/CollisionsOverlap.js +3 -2
  226. package/umd/Options/Classes/Particles/Effect/Effect.js +3 -2
  227. package/umd/Options/Classes/Particles/Move/Move.js +1 -1
  228. package/umd/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  229. package/umd/Options/Classes/Particles/Move/MoveAttract.js +3 -2
  230. package/umd/Options/Classes/Particles/Move/MoveCenter.js +3 -2
  231. package/umd/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  232. package/umd/Options/Classes/Particles/Move/MoveTrail.js +3 -2
  233. package/umd/Options/Classes/Particles/Move/MoveTrailFill.js +3 -2
  234. package/umd/Options/Classes/Particles/Move/OutModes.js +3 -2
  235. package/umd/Options/Classes/Particles/Move/Path/MovePath.js +3 -2
  236. package/umd/Options/Classes/Particles/Move/Spin.js +3 -2
  237. package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +3 -2
  238. package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +3 -2
  239. package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +3 -2
  240. package/umd/Options/Classes/Particles/Opacity/Opacity.js +3 -2
  241. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +3 -2
  242. package/umd/Options/Classes/Particles/ParticlesOptions.js +3 -2
  243. package/umd/Options/Classes/Particles/Shadow.js +3 -2
  244. package/umd/Options/Classes/Particles/Shape/Shape.js +3 -2
  245. package/umd/Options/Classes/Particles/Size/Size.js +3 -2
  246. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +3 -2
  247. package/umd/Options/Classes/Particles/Stroke.js +3 -2
  248. package/umd/Options/Classes/Particles/ZIndex/ZIndex.js +3 -2
  249. package/umd/Options/Classes/Responsive.js +6 -5
  250. package/umd/Options/Classes/Theme/Theme.js +3 -2
  251. package/umd/Options/Classes/Theme/ThemeDefault.js +3 -2
  252. package/umd/Options/Classes/ValueWithRandom.js +5 -4
  253. package/umd/Types/EasingFunction.js +12 -0
  254. package/umd/Utils/ColorUtils.js +25 -46
  255. package/umd/Utils/NumberUtils.js +1 -12
  256. package/umd/Utils/TypeUtils.js +4 -0
  257. package/umd/Utils/Utils.js +7 -0
  258. package/umd/exports.js +1 -3
  259. package/umd/init.js +1 -7
  260. package/browser/Utils/HslColorManager.js +0 -45
  261. package/browser/Utils/RgbColorManager.js +0 -44
  262. package/cjs/Utils/HslColorManager.js +0 -49
  263. package/cjs/Utils/RgbColorManager.js +0 -48
  264. package/esm/Utils/HslColorManager.js +0 -45
  265. package/esm/Utils/RgbColorManager.js +0 -44
  266. package/types/Utils/HslColorManager.d.ts +0 -10
  267. package/types/Utils/RgbColorManager.d.ts +0 -10
  268. package/umd/Utils/HslColorManager.js +0 -59
  269. package/umd/Utils/RgbColorManager.js +0 -58
@@ -2,6 +2,7 @@ import type { ICoordinates, ICoordinatesWithMode } from "../Core/Interfaces/ICoo
2
2
  import type { IDimension, IDimensionWithMode } from "../Core/Interfaces/IDimension.js";
3
3
  import { DestroyType } from "../Enums/Types/DestroyType.js";
4
4
  import type { DivEvent } from "../Options/Classes/Interactivity/Events/DivEvent.js";
5
+ import type { Engine } from "../Core/Engine";
5
6
  import type { IBounds } from "../Core/Interfaces/IBounds.js";
6
7
  import type { ICircleBouncer } from "../Core/Interfaces/ICircleBouncer.js";
7
8
  import type { IDelta } from "../Core/Interfaces/IDelta.js";
@@ -48,4 +49,5 @@ export declare function initParticleNumericAnimationValue(options: RangedAnimati
48
49
  export declare function getPosition(position: ICoordinatesWithMode, canvasSize: IDimension): ICoordinates;
49
50
  export declare function getSize(size: IDimensionWithMode, canvasSize: IDimension): IDimension;
50
51
  export declare function updateAnimation(particle: Particle, data: IParticleNumericValueAnimation, changeDirection: boolean, destroyType: DestroyType | keyof typeof DestroyType, delta: IDelta): void;
52
+ export declare function assertValidVersion(engine: Engine, pluginVersion: string): void;
51
53
  export {};
@@ -78,9 +78,7 @@ export * from "./Options/Classes/Theme/ThemeDefault.js";
78
78
  export * from "./Options/Classes/ValueWithRandom.js";
79
79
  export * from "./Utils/CanvasUtils.js";
80
80
  export * from "./Utils/ColorUtils.js";
81
- export * from "./Utils/HslColorManager.js";
82
81
  export * from "./Utils/NumberUtils.js";
83
82
  export * from "./Utils/OptionsUtils.js";
84
- export * from "./Utils/RgbColorManager.js";
85
83
  export * from "./Utils/Utils.js";
86
84
  export * from "./Utils/TypeUtils.js";
@@ -38,7 +38,7 @@
38
38
  }
39
39
  }
40
40
  class Canvas {
41
- constructor(container) {
41
+ constructor(container, engine) {
42
42
  this.container = container;
43
43
  this._applyPostDrawUpdaters = particle => {
44
44
  for (const updater of this._postDrawUpdaters) {
@@ -74,10 +74,10 @@
74
74
  let fColor, sColor;
75
75
  for (const plugin of this._colorPlugins) {
76
76
  if (!fColor && plugin.particleFillColor) {
77
- fColor = (0, ColorUtils_js_1.rangeColorToHsl)(plugin.particleFillColor(particle));
77
+ fColor = (0, ColorUtils_js_1.rangeColorToHsl)(this._engine, plugin.particleFillColor(particle));
78
78
  }
79
79
  if (!sColor && plugin.particleStrokeColor) {
80
- sColor = (0, ColorUtils_js_1.rangeColorToHsl)(plugin.particleStrokeColor(particle));
80
+ sColor = (0, ColorUtils_js_1.rangeColorToHsl)(this._engine, plugin.particleStrokeColor(particle));
81
81
  }
82
82
  if (fColor && sColor) {
83
83
  break;
@@ -88,7 +88,7 @@
88
88
  this._initCover = async () => {
89
89
  const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color;
90
90
  if (color) {
91
- const coverRgb = (0, ColorUtils_js_1.rangeColorToRgb)(color);
91
+ const coverRgb = (0, ColorUtils_js_1.rangeColorToRgb)(this._engine, color);
92
92
  if (coverRgb) {
93
93
  const coverColor = {
94
94
  ...coverRgb,
@@ -147,7 +147,7 @@
147
147
  }
148
148
  const factorNumerator = 1, opacity = factorNumerator / trail.length;
149
149
  if (trailFill.color) {
150
- const fillColor = (0, ColorUtils_js_1.rangeColorToRgb)(trailFill.color);
150
+ const fillColor = (0, ColorUtils_js_1.rangeColorToRgb)(this._engine, trailFill.color);
151
151
  if (!fillColor) {
152
152
  return;
153
153
  }
@@ -228,10 +228,16 @@
228
228
  height: "100%",
229
229
  }, true);
230
230
  };
231
- this.size = {
231
+ this._engine = engine;
232
+ this._standardSize = {
232
233
  height: 0,
233
234
  width: 0,
234
235
  };
236
+ const pxRatio = container.retina.pixelRatio, stdSize = this._standardSize;
237
+ this.size = {
238
+ height: stdSize.height * pxRatio,
239
+ width: stdSize.width * pxRatio,
240
+ };
235
241
  this._context = null;
236
242
  this._generated = false;
237
243
  this._preDrawUpdaters = [];
@@ -375,7 +381,7 @@
375
381
  return;
376
382
  }
377
383
  if (background.color) {
378
- const color = (0, ColorUtils_js_1.rangeColorToRgb)(background.color);
384
+ const color = (0, ColorUtils_js_1.rangeColorToRgb)(this._engine, background.color);
379
385
  elementStyle.backgroundColor = color ? (0, ColorUtils_js_1.getStyleFromRgb)(color, background.opacity) : "";
380
386
  }
381
387
  else {
@@ -420,8 +426,13 @@
420
426
  this.element = canvas;
421
427
  this.element.ariaHidden = "true";
422
428
  this._originalStyle = (0, Utils_js_1.deepExtend)({}, this.element.style);
423
- this.size.height = canvas.offsetHeight;
424
- this.size.width = canvas.offsetWidth;
429
+ const standardSize = this._standardSize;
430
+ standardSize.height = canvas.offsetHeight;
431
+ standardSize.width = canvas.offsetWidth;
432
+ const pxRatio = this.container.retina.pixelRatio;
433
+ const retinaSize = this.size;
434
+ retinaSize.height = standardSize.height * pxRatio;
435
+ retinaSize.width = standardSize.width * pxRatio;
425
436
  this._context = this.element.getContext("2d");
426
437
  this._safeMutationObserver(obs => {
427
438
  if (!this.element || !(this.element instanceof Node)) {
@@ -456,23 +467,23 @@
456
467
  if (!this.element) {
457
468
  return false;
458
469
  }
459
- const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {
460
- width: this.element.offsetWidth * pxRatio,
461
- height: this.element.offsetHeight * pxRatio,
470
+ const container = this.container, currentSize = container.canvas._standardSize, newSize = {
471
+ width: this.element.offsetWidth,
472
+ height: this.element.offsetHeight,
462
473
  };
463
- if (newSize.height === size.height &&
464
- newSize.width === size.width &&
465
- newSize.height === this.element.height &&
466
- newSize.width === this.element.width) {
474
+ if (newSize.height === currentSize.height && newSize.width === currentSize.width) {
467
475
  return false;
468
476
  }
469
- const oldSize = { ...size };
470
- this.element.width = size.width = this.element.offsetWidth * pxRatio;
471
- this.element.height = size.height = this.element.offsetHeight * pxRatio;
477
+ const oldSize = { ...currentSize }, pxRatio = container.retina.pixelRatio;
478
+ currentSize.height = newSize.height;
479
+ currentSize.width = newSize.width;
480
+ const retinaSize = this.size;
481
+ this.element.width = retinaSize.width = currentSize.width * pxRatio;
482
+ this.element.height = retinaSize.height = currentSize.height * pxRatio;
472
483
  if (this.container.started) {
473
484
  container.particles.setResizeFactor({
474
- width: size.width / oldSize.width,
475
- height: size.height / oldSize.height,
485
+ width: currentSize.width / oldSize.width,
486
+ height: currentSize.height / oldSize.height,
476
487
  });
477
488
  }
478
489
  return true;
@@ -100,7 +100,7 @@
100
100
  this._sourceOptions = sourceOptions;
101
101
  this._initialSourceOptions = sourceOptions;
102
102
  this.retina = new Retina_js_1.Retina(this);
103
- this.canvas = new Canvas_js_1.Canvas(this);
103
+ this.canvas = new Canvas_js_1.Canvas(this, this._engine);
104
104
  this.particles = new Particles_js_1.Particles(this._engine, this);
105
105
  this.pathGenerators = new Map();
106
106
  this.interactivity = {
@@ -83,6 +83,8 @@
83
83
  this._eventDispatcher = new EventDispatcher_js_1.EventDispatcher();
84
84
  this._initialized = false;
85
85
  this.plugins = [];
86
+ this.colorManagers = new Map();
87
+ this.easingFunctions = new Map();
86
88
  this._initializers = {
87
89
  interactors: new Map(),
88
90
  movers: new Map(),
@@ -107,13 +109,24 @@
107
109
  return this._domArray;
108
110
  }
109
111
  get version() {
110
- return "3.6.0-beta.1";
112
+ return "3.7.0";
113
+ }
114
+ async addColorManager(manager, refresh = true) {
115
+ this.colorManagers.set(manager.key, manager);
116
+ await this.refresh(refresh);
111
117
  }
112
118
  addConfig(config) {
113
119
  const key = config.key ?? config.name ?? "default";
114
120
  this._configs.set(key, config);
115
121
  this._eventDispatcher.dispatchEvent(EventType_js_1.EventType.configAdded, { data: { name: key, config } });
116
122
  }
123
+ async addEasing(name, easing, refresh = true) {
124
+ if (this.getEasing(name)) {
125
+ return;
126
+ }
127
+ this.easingFunctions.set(name, easing);
128
+ await this.refresh(refresh);
129
+ }
117
130
  async addEffect(effect, drawer, refresh = true) {
118
131
  (0, Utils_js_1.executeOnSingleOrMultiple)(effect, type => {
119
132
  if (!this.getEffectDrawer(type)) {
@@ -187,6 +200,9 @@
187
200
  }
188
201
  return res;
189
202
  }
203
+ getEasing(name) {
204
+ return this.easingFunctions.get(name) ?? ((value) => value);
205
+ }
190
206
  getEffectDrawer(type) {
191
207
  return this.effectDrawers.get(type);
192
208
  }
@@ -337,7 +337,7 @@
337
337
  this.sides = sideCountFunc(this);
338
338
  }
339
339
  this.spawning = false;
340
- this.shadowColor = (0, ColorUtils_js_1.rangeColorToRgb)(this.options.shadow.color);
340
+ this.shadowColor = (0, ColorUtils_js_1.rangeColorToRgb)(this._engine, this.options.shadow.color);
341
341
  for (const updater of particles.updaters) {
342
342
  updater.init(this);
343
343
  }
@@ -33,7 +33,7 @@
33
33
  }
34
34
  load(data) {
35
35
  super.load(data);
36
- if (!data) {
36
+ if ((0, TypeUtils_js_1.isNull)(data)) {
37
37
  return;
38
38
  }
39
39
  const colorAnimation = data.animation;
@@ -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", "../../Enums/Modes/AnimationMode.js", "../../Enums/Types/StartValueType.js", "../../Utils/NumberUtils.js"], factory);
7
+ define(["require", "exports", "../../Enums/Modes/AnimationMode.js", "../../Enums/Types/StartValueType.js", "../../Utils/TypeUtils.js", "../../Utils/NumberUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -12,6 +12,7 @@
12
12
  exports.RangedAnimationOptions = exports.AnimationOptions = void 0;
13
13
  const AnimationMode_js_1 = require("../../Enums/Modes/AnimationMode.js");
14
14
  const StartValueType_js_1 = require("../../Enums/Types/StartValueType.js");
15
+ const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
15
16
  const NumberUtils_js_1 = require("../../Utils/NumberUtils.js");
16
17
  class AnimationOptions {
17
18
  constructor() {
@@ -23,7 +24,7 @@
23
24
  this.sync = false;
24
25
  }
25
26
  load(data) {
26
- if (!data) {
27
+ if ((0, TypeUtils_js_1.isNull)(data)) {
27
28
  return;
28
29
  }
29
30
  if (data.count !== undefined) {
@@ -55,7 +56,7 @@
55
56
  }
56
57
  load(data) {
57
58
  super.load(data);
58
- if (!data) {
59
+ if ((0, TypeUtils_js_1.isNull)(data)) {
59
60
  return;
60
61
  }
61
62
  if (data.mode !== undefined) {
@@ -4,13 +4,14 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../OptionsColor.js"], factory);
7
+ define(["require", "exports", "../OptionsColor.js", "../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Background = void 0;
13
13
  const OptionsColor_js_1 = require("../OptionsColor.js");
14
+ const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
14
15
  class Background {
15
16
  constructor() {
16
17
  this.color = new OptionsColor_js_1.OptionsColor();
@@ -22,7 +23,7 @@
22
23
  this.opacity = 1;
23
24
  }
24
25
  load(data) {
25
- if (!data) {
26
+ if ((0, TypeUtils_js_1.isNull)(data)) {
26
27
  return;
27
28
  }
28
29
  if (data.color !== undefined) {
@@ -4,14 +4,14 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./BackgroundMaskCover.js", "../../../Utils/TypeUtils.js"], factory);
7
+ define(["require", "exports", "../../../Utils/TypeUtils.js", "./BackgroundMaskCover.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BackgroundMask = void 0;
13
- const BackgroundMaskCover_js_1 = require("./BackgroundMaskCover.js");
14
13
  const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
14
+ const BackgroundMaskCover_js_1 = require("./BackgroundMaskCover.js");
15
15
  class BackgroundMask {
16
16
  constructor() {
17
17
  this.composite = "destination-out";
@@ -19,7 +19,7 @@
19
19
  this.enable = false;
20
20
  }
21
21
  load(data) {
22
- if (!data) {
22
+ if ((0, TypeUtils_js_1.isNull)(data)) {
23
23
  return;
24
24
  }
25
25
  if (data.composite !== undefined) {
@@ -4,19 +4,20 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../OptionsColor.js"], factory);
7
+ define(["require", "exports", "../OptionsColor.js", "../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BackgroundMaskCover = void 0;
13
13
  const OptionsColor_js_1 = require("../OptionsColor.js");
14
+ const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
14
15
  class BackgroundMaskCover {
15
16
  constructor() {
16
17
  this.opacity = 1;
17
18
  }
18
19
  load(data) {
19
- if (!data) {
20
+ if ((0, TypeUtils_js_1.isNull)(data)) {
20
21
  return;
21
22
  }
22
23
  if (data.color !== undefined) {
@@ -4,13 +4,14 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./AnimationOptions.js", "../../Utils/NumberUtils.js"], factory);
7
+ define(["require", "exports", "./AnimationOptions.js", "../../Utils/TypeUtils.js", "../../Utils/NumberUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ColorAnimation = void 0;
13
13
  const AnimationOptions_js_1 = require("./AnimationOptions.js");
14
+ const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
14
15
  const NumberUtils_js_1 = require("../../Utils/NumberUtils.js");
15
16
  class ColorAnimation extends AnimationOptions_js_1.AnimationOptions {
16
17
  constructor() {
@@ -20,7 +21,7 @@
20
21
  }
21
22
  load(data) {
22
23
  super.load(data);
23
- if (!data) {
24
+ if ((0, TypeUtils_js_1.isNull)(data)) {
24
25
  return;
25
26
  }
26
27
  if (data.offset !== undefined) {
@@ -4,19 +4,20 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.FullScreen = void 0;
13
+ const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
13
14
  class FullScreen {
14
15
  constructor() {
15
16
  this.enable = true;
16
17
  this.zIndex = 0;
17
18
  }
18
19
  load(data) {
19
- if (!data) {
20
+ if ((0, TypeUtils_js_1.isNull)(data)) {
20
21
  return;
21
22
  }
22
23
  if (data.enable !== undefined) {
@@ -4,13 +4,14 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./ColorAnimation.js"], factory);
7
+ define(["require", "exports", "./ColorAnimation.js", "../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.HslAnimation = void 0;
13
13
  const ColorAnimation_js_1 = require("./ColorAnimation.js");
14
+ const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
14
15
  class HslAnimation {
15
16
  constructor() {
16
17
  this.h = new ColorAnimation_js_1.ColorAnimation();
@@ -18,7 +19,7 @@
18
19
  this.l = new ColorAnimation_js_1.ColorAnimation();
19
20
  }
20
21
  load(data) {
21
- if (!data) {
22
+ if ((0, TypeUtils_js_1.isNull)(data)) {
22
23
  return;
23
24
  }
24
25
  this.h.load(data.h);
@@ -4,19 +4,20 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ClickEvent = void 0;
13
+ const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
13
14
  class ClickEvent {
14
15
  constructor() {
15
16
  this.enable = false;
16
17
  this.mode = [];
17
18
  }
18
19
  load(data) {
19
- if (!data) {
20
+ if ((0, TypeUtils_js_1.isNull)(data)) {
20
21
  return;
21
22
  }
22
23
  if (data.enable !== undefined) {
@@ -4,13 +4,14 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../../../Enums/Types/DivType.js"], factory);
7
+ define(["require", "exports", "../../../../Enums/Types/DivType.js", "../../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DivEvent = void 0;
13
13
  const DivType_js_1 = require("../../../../Enums/Types/DivType.js");
14
+ const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
14
15
  class DivEvent {
15
16
  constructor() {
16
17
  this.selectors = [];
@@ -19,7 +20,7 @@
19
20
  this.type = DivType_js_1.DivType.circle;
20
21
  }
21
22
  load(data) {
22
- if (!data) {
23
+ if ((0, TypeUtils_js_1.isNull)(data)) {
23
24
  return;
24
25
  }
25
26
  if (data.selectors !== undefined) {
@@ -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", "./ClickEvent.js", "./DivEvent.js", "./HoverEvent.js", "./ResizeEvent.js", "../../../../Utils/Utils.js"], factory);
7
+ define(["require", "exports", "./ClickEvent.js", "./DivEvent.js", "./HoverEvent.js", "./ResizeEvent.js", "../../../../Utils/Utils.js", "../../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -15,6 +15,7 @@
15
15
  const HoverEvent_js_1 = require("./HoverEvent.js");
16
16
  const ResizeEvent_js_1 = require("./ResizeEvent.js");
17
17
  const Utils_js_1 = require("../../../../Utils/Utils.js");
18
+ const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
18
19
  class Events {
19
20
  constructor() {
20
21
  this.onClick = new ClickEvent_js_1.ClickEvent();
@@ -23,7 +24,7 @@
23
24
  this.resize = new ResizeEvent_js_1.ResizeEvent();
24
25
  }
25
26
  load(data) {
26
- if (!data) {
27
+ if ((0, TypeUtils_js_1.isNull)(data)) {
27
28
  return;
28
29
  }
29
30
  this.onClick.load(data.onClick);
@@ -4,13 +4,14 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./Parallax.js"], factory);
7
+ define(["require", "exports", "./Parallax.js", "../../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.HoverEvent = void 0;
13
13
  const Parallax_js_1 = require("./Parallax.js");
14
+ const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
14
15
  class HoverEvent {
15
16
  constructor() {
16
17
  this.enable = false;
@@ -18,7 +19,7 @@
18
19
  this.parallax = new Parallax_js_1.Parallax();
19
20
  }
20
21
  load(data) {
21
- if (!data) {
22
+ if ((0, TypeUtils_js_1.isNull)(data)) {
22
23
  return;
23
24
  }
24
25
  if (data.enable !== undefined) {
@@ -4,12 +4,13 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Parallax = void 0;
13
+ const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
13
14
  class Parallax {
14
15
  constructor() {
15
16
  this.enable = false;
@@ -17,7 +18,7 @@
17
18
  this.smooth = 10;
18
19
  }
19
20
  load(data) {
20
- if (!data) {
21
+ if ((0, TypeUtils_js_1.isNull)(data)) {
21
22
  return;
22
23
  }
23
24
  if (data.enable !== undefined) {
@@ -4,19 +4,20 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ResizeEvent = void 0;
13
+ const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
13
14
  class ResizeEvent {
14
15
  constructor() {
15
16
  this.delay = 0.5;
16
17
  this.enable = true;
17
18
  }
18
19
  load(data) {
19
- if (data === undefined) {
20
+ if ((0, TypeUtils_js_1.isNull)(data)) {
20
21
  return;
21
22
  }
22
23
  if (data.delay !== undefined) {
@@ -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", "./Events/Events.js", "../../../Enums/InteractivityDetect.js", "./Modes/Modes.js"], factory);
7
+ define(["require", "exports", "./Events/Events.js", "../../../Enums/InteractivityDetect.js", "./Modes/Modes.js", "../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -13,6 +13,7 @@
13
13
  const Events_js_1 = require("./Events/Events.js");
14
14
  const InteractivityDetect_js_1 = require("../../../Enums/InteractivityDetect.js");
15
15
  const Modes_js_1 = require("./Modes/Modes.js");
16
+ const TypeUtils_js_1 = require("../../../Utils/TypeUtils.js");
16
17
  class Interactivity {
17
18
  constructor(engine, container) {
18
19
  this.detectsOn = InteractivityDetect_js_1.InteractivityDetect.window;
@@ -20,7 +21,7 @@
20
21
  this.modes = new Modes_js_1.Modes(engine, container);
21
22
  }
22
23
  load(data) {
23
- if (!data) {
24
+ if ((0, TypeUtils_js_1.isNull)(data)) {
24
25
  return;
25
26
  }
26
27
  const detectsOn = data.detectsOn;
@@ -4,19 +4,20 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "../../../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Modes = void 0;
13
+ const TypeUtils_js_1 = require("../../../../Utils/TypeUtils.js");
13
14
  class Modes {
14
15
  constructor(engine, container) {
15
16
  this._engine = engine;
16
17
  this._container = container;
17
18
  }
18
19
  load(data) {
19
- if (!data) {
20
+ if ((0, TypeUtils_js_1.isNull)(data)) {
20
21
  return;
21
22
  }
22
23
  if (!this._container) {
@@ -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", "../../Enums/Modes/PixelMode.js", "../../Utils/Utils.js"], factory);
7
+ define(["require", "exports", "../../Enums/Modes/PixelMode.js", "../../Utils/Utils.js", "../../Utils/TypeUtils.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -12,10 +12,11 @@
12
12
  exports.ManualParticle = void 0;
13
13
  const PixelMode_js_1 = require("../../Enums/Modes/PixelMode.js");
14
14
  const Utils_js_1 = require("../../Utils/Utils.js");
15
+ const TypeUtils_js_1 = require("../../Utils/TypeUtils.js");
15
16
  const defaultPosition = 50;
16
17
  class ManualParticle {
17
18
  load(data) {
18
- if (!data) {
19
+ if ((0, TypeUtils_js_1.isNull)(data)) {
19
20
  return;
20
21
  }
21
22
  if (data.position) {