@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.
- package/README.md +6 -1
- package/browser/Core/Canvas.js +32 -21
- package/browser/Core/Container.js +1 -1
- package/browser/Core/Engine.js +17 -1
- package/browser/Core/Particle.js +1 -1
- package/browser/Options/Classes/AnimatableColor.js +2 -2
- package/browser/Options/Classes/AnimationOptions.js +3 -2
- package/browser/Options/Classes/Background/Background.js +2 -1
- package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
- package/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
- package/browser/Options/Classes/ColorAnimation.js +2 -1
- package/browser/Options/Classes/FullScreen/FullScreen.js +2 -1
- package/browser/Options/Classes/HslAnimation.js +2 -1
- package/browser/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
- package/browser/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
- package/browser/Options/Classes/Interactivity/Events/Events.js +2 -1
- package/browser/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
- package/browser/Options/Classes/Interactivity/Events/Parallax.js +2 -1
- package/browser/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
- package/browser/Options/Classes/Interactivity/Interactivity.js +2 -1
- package/browser/Options/Classes/Interactivity/Modes/Modes.js +2 -1
- package/browser/Options/Classes/ManualParticle.js +2 -1
- package/browser/Options/Classes/Options.js +2 -2
- package/browser/Options/Classes/OptionsColor.js +5 -3
- package/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
- package/browser/Options/Classes/Particles/Collisions/Collisions.js +2 -1
- package/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
- package/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
- package/browser/Options/Classes/Particles/Effect/Effect.js +2 -1
- package/browser/Options/Classes/Particles/Move/Move.js +2 -2
- package/browser/Options/Classes/Particles/Move/MoveAngle.js +2 -1
- package/browser/Options/Classes/Particles/Move/MoveAttract.js +2 -1
- package/browser/Options/Classes/Particles/Move/MoveCenter.js +2 -1
- package/browser/Options/Classes/Particles/Move/MoveGravity.js +2 -1
- package/browser/Options/Classes/Particles/Move/MoveTrail.js +2 -1
- package/browser/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
- package/browser/Options/Classes/Particles/Move/OutModes.js +2 -1
- package/browser/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
- package/browser/Options/Classes/Particles/Move/Spin.js +2 -1
- package/browser/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
- package/browser/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
- package/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
- package/browser/Options/Classes/Particles/Opacity/Opacity.js +2 -1
- package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
- package/browser/Options/Classes/Particles/ParticlesOptions.js +2 -1
- package/browser/Options/Classes/Particles/Shadow.js +2 -1
- package/browser/Options/Classes/Particles/Shape/Shape.js +2 -1
- package/browser/Options/Classes/Particles/Size/Size.js +2 -1
- package/browser/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
- package/browser/Options/Classes/Particles/Stroke.js +2 -1
- package/browser/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
- package/browser/Options/Classes/Responsive.js +5 -4
- package/browser/Options/Classes/Theme/Theme.js +2 -1
- package/browser/Options/Classes/Theme/ThemeDefault.js +2 -1
- package/browser/Options/Classes/ValueWithRandom.js +4 -3
- package/browser/Types/EasingFunction.js +1 -0
- package/browser/Utils/ColorUtils.js +25 -45
- package/browser/Utils/NumberUtils.js +1 -10
- package/browser/Utils/TypeUtils.js +3 -0
- package/browser/Utils/Utils.js +6 -0
- package/browser/exports.js +0 -2
- package/browser/init.js +0 -6
- package/cjs/Core/Canvas.js +32 -21
- package/cjs/Core/Container.js +1 -1
- package/cjs/Core/Engine.js +17 -1
- package/cjs/Core/Particle.js +1 -1
- package/cjs/Options/Classes/AnimatableColor.js +1 -1
- package/cjs/Options/Classes/AnimationOptions.js +3 -2
- package/cjs/Options/Classes/Background/Background.js +2 -1
- package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
- package/cjs/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
- package/cjs/Options/Classes/ColorAnimation.js +2 -1
- package/cjs/Options/Classes/FullScreen/FullScreen.js +2 -1
- package/cjs/Options/Classes/HslAnimation.js +2 -1
- package/cjs/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
- package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
- package/cjs/Options/Classes/Interactivity/Events/Events.js +2 -1
- package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
- package/cjs/Options/Classes/Interactivity/Events/Parallax.js +2 -1
- package/cjs/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
- package/cjs/Options/Classes/Interactivity/Interactivity.js +2 -1
- package/cjs/Options/Classes/Interactivity/Modes/Modes.js +2 -1
- package/cjs/Options/Classes/ManualParticle.js +2 -1
- package/cjs/Options/Classes/Options.js +2 -2
- package/cjs/Options/Classes/OptionsColor.js +4 -2
- package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
- package/cjs/Options/Classes/Particles/Collisions/Collisions.js +2 -1
- package/cjs/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
- package/cjs/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
- package/cjs/Options/Classes/Particles/Effect/Effect.js +2 -1
- package/cjs/Options/Classes/Particles/Move/Move.js +1 -1
- package/cjs/Options/Classes/Particles/Move/MoveAngle.js +2 -1
- package/cjs/Options/Classes/Particles/Move/MoveAttract.js +2 -1
- package/cjs/Options/Classes/Particles/Move/MoveCenter.js +2 -1
- package/cjs/Options/Classes/Particles/Move/MoveGravity.js +2 -1
- package/cjs/Options/Classes/Particles/Move/MoveTrail.js +2 -1
- package/cjs/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
- package/cjs/Options/Classes/Particles/Move/OutModes.js +2 -1
- package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
- package/cjs/Options/Classes/Particles/Move/Spin.js +2 -1
- package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
- package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
- package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
- package/cjs/Options/Classes/Particles/Opacity/Opacity.js +2 -1
- package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
- package/cjs/Options/Classes/Particles/ParticlesOptions.js +2 -1
- package/cjs/Options/Classes/Particles/Shadow.js +2 -1
- package/cjs/Options/Classes/Particles/Shape/Shape.js +2 -1
- package/cjs/Options/Classes/Particles/Size/Size.js +2 -1
- package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
- package/cjs/Options/Classes/Particles/Stroke.js +2 -1
- package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
- package/cjs/Options/Classes/Responsive.js +5 -4
- package/cjs/Options/Classes/Theme/Theme.js +2 -1
- package/cjs/Options/Classes/Theme/ThemeDefault.js +2 -1
- package/cjs/Options/Classes/ValueWithRandom.js +4 -3
- package/cjs/Types/EasingFunction.js +2 -0
- package/cjs/Utils/ColorUtils.js +25 -46
- package/cjs/Utils/NumberUtils.js +1 -12
- package/cjs/Utils/TypeUtils.js +4 -0
- package/cjs/Utils/Utils.js +7 -0
- package/cjs/exports.js +0 -2
- package/cjs/init.js +0 -6
- package/esm/Core/Canvas.js +32 -21
- package/esm/Core/Container.js +1 -1
- package/esm/Core/Engine.js +17 -1
- package/esm/Core/Particle.js +1 -1
- package/esm/Options/Classes/AnimatableColor.js +2 -2
- package/esm/Options/Classes/AnimationOptions.js +3 -2
- package/esm/Options/Classes/Background/Background.js +2 -1
- package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
- package/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
- package/esm/Options/Classes/ColorAnimation.js +2 -1
- package/esm/Options/Classes/FullScreen/FullScreen.js +2 -1
- package/esm/Options/Classes/HslAnimation.js +2 -1
- package/esm/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
- package/esm/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
- package/esm/Options/Classes/Interactivity/Events/Events.js +2 -1
- package/esm/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
- package/esm/Options/Classes/Interactivity/Events/Parallax.js +2 -1
- package/esm/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
- package/esm/Options/Classes/Interactivity/Interactivity.js +2 -1
- package/esm/Options/Classes/Interactivity/Modes/Modes.js +2 -1
- package/esm/Options/Classes/ManualParticle.js +2 -1
- package/esm/Options/Classes/Options.js +2 -2
- package/esm/Options/Classes/OptionsColor.js +5 -3
- package/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
- package/esm/Options/Classes/Particles/Collisions/Collisions.js +2 -1
- package/esm/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
- package/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
- package/esm/Options/Classes/Particles/Effect/Effect.js +2 -1
- package/esm/Options/Classes/Particles/Move/Move.js +2 -2
- package/esm/Options/Classes/Particles/Move/MoveAngle.js +2 -1
- package/esm/Options/Classes/Particles/Move/MoveAttract.js +2 -1
- package/esm/Options/Classes/Particles/Move/MoveCenter.js +2 -1
- package/esm/Options/Classes/Particles/Move/MoveGravity.js +2 -1
- package/esm/Options/Classes/Particles/Move/MoveTrail.js +2 -1
- package/esm/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
- package/esm/Options/Classes/Particles/Move/OutModes.js +2 -1
- package/esm/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
- package/esm/Options/Classes/Particles/Move/Spin.js +2 -1
- package/esm/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
- package/esm/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
- package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
- package/esm/Options/Classes/Particles/Opacity/Opacity.js +2 -1
- package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
- package/esm/Options/Classes/Particles/ParticlesOptions.js +2 -1
- package/esm/Options/Classes/Particles/Shadow.js +2 -1
- package/esm/Options/Classes/Particles/Shape/Shape.js +2 -1
- package/esm/Options/Classes/Particles/Size/Size.js +2 -1
- package/esm/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
- package/esm/Options/Classes/Particles/Stroke.js +2 -1
- package/esm/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
- package/esm/Options/Classes/Responsive.js +5 -4
- package/esm/Options/Classes/Theme/Theme.js +2 -1
- package/esm/Options/Classes/Theme/ThemeDefault.js +2 -1
- package/esm/Options/Classes/ValueWithRandom.js +4 -3
- package/esm/Types/EasingFunction.js +1 -0
- package/esm/Utils/ColorUtils.js +25 -45
- package/esm/Utils/NumberUtils.js +1 -10
- package/esm/Utils/TypeUtils.js +3 -0
- package/esm/Utils/Utils.js +6 -0
- package/esm/exports.js +0 -2
- package/esm/init.js +0 -6
- package/package.json +1 -1
- package/report.html +1 -1
- package/tsparticles.engine.js +62 -82
- package/tsparticles.engine.min.js +1 -1
- package/tsparticles.engine.min.js.LICENSE.txt +1 -1
- package/types/Core/Canvas.d.ts +4 -1
- package/types/Core/Engine.d.ts +9 -1
- package/types/Core/Interfaces/Colors.d.ts +28 -0
- package/types/Types/EasingFunction.d.ts +1 -0
- package/types/Utils/ColorUtils.d.ts +8 -9
- package/types/Utils/NumberUtils.d.ts +0 -5
- package/types/Utils/TypeUtils.d.ts +1 -0
- package/types/Utils/Utils.d.ts +2 -0
- package/types/exports.d.ts +0 -2
- package/umd/Core/Canvas.js +32 -21
- package/umd/Core/Container.js +1 -1
- package/umd/Core/Engine.js +17 -1
- package/umd/Core/Particle.js +1 -1
- package/umd/Options/Classes/AnimatableColor.js +1 -1
- package/umd/Options/Classes/AnimationOptions.js +4 -3
- package/umd/Options/Classes/Background/Background.js +3 -2
- package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +3 -3
- package/umd/Options/Classes/BackgroundMask/BackgroundMaskCover.js +3 -2
- package/umd/Options/Classes/ColorAnimation.js +3 -2
- package/umd/Options/Classes/FullScreen/FullScreen.js +3 -2
- package/umd/Options/Classes/HslAnimation.js +3 -2
- package/umd/Options/Classes/Interactivity/Events/ClickEvent.js +3 -2
- package/umd/Options/Classes/Interactivity/Events/DivEvent.js +3 -2
- package/umd/Options/Classes/Interactivity/Events/Events.js +3 -2
- package/umd/Options/Classes/Interactivity/Events/HoverEvent.js +3 -2
- package/umd/Options/Classes/Interactivity/Events/Parallax.js +3 -2
- package/umd/Options/Classes/Interactivity/Events/ResizeEvent.js +3 -2
- package/umd/Options/Classes/Interactivity/Interactivity.js +3 -2
- package/umd/Options/Classes/Interactivity/Modes/Modes.js +3 -2
- package/umd/Options/Classes/ManualParticle.js +3 -2
- package/umd/Options/Classes/Options.js +3 -3
- package/umd/Options/Classes/OptionsColor.js +4 -2
- package/umd/Options/Classes/Particles/Bounce/ParticlesBounce.js +3 -2
- package/umd/Options/Classes/Particles/Collisions/Collisions.js +3 -2
- package/umd/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +3 -2
- package/umd/Options/Classes/Particles/Collisions/CollisionsOverlap.js +3 -2
- package/umd/Options/Classes/Particles/Effect/Effect.js +3 -2
- package/umd/Options/Classes/Particles/Move/Move.js +1 -1
- package/umd/Options/Classes/Particles/Move/MoveAngle.js +3 -2
- package/umd/Options/Classes/Particles/Move/MoveAttract.js +3 -2
- package/umd/Options/Classes/Particles/Move/MoveCenter.js +3 -2
- package/umd/Options/Classes/Particles/Move/MoveGravity.js +3 -2
- package/umd/Options/Classes/Particles/Move/MoveTrail.js +3 -2
- package/umd/Options/Classes/Particles/Move/MoveTrailFill.js +3 -2
- package/umd/Options/Classes/Particles/Move/OutModes.js +3 -2
- package/umd/Options/Classes/Particles/Move/Path/MovePath.js +3 -2
- package/umd/Options/Classes/Particles/Move/Spin.js +3 -2
- package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +3 -2
- package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +3 -2
- package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +3 -2
- package/umd/Options/Classes/Particles/Opacity/Opacity.js +3 -2
- package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +3 -2
- package/umd/Options/Classes/Particles/ParticlesOptions.js +3 -2
- package/umd/Options/Classes/Particles/Shadow.js +3 -2
- package/umd/Options/Classes/Particles/Shape/Shape.js +3 -2
- package/umd/Options/Classes/Particles/Size/Size.js +3 -2
- package/umd/Options/Classes/Particles/Size/SizeAnimation.js +3 -2
- package/umd/Options/Classes/Particles/Stroke.js +3 -2
- package/umd/Options/Classes/Particles/ZIndex/ZIndex.js +3 -2
- package/umd/Options/Classes/Responsive.js +6 -5
- package/umd/Options/Classes/Theme/Theme.js +3 -2
- package/umd/Options/Classes/Theme/ThemeDefault.js +3 -2
- package/umd/Options/Classes/ValueWithRandom.js +5 -4
- package/umd/Types/EasingFunction.js +12 -0
- package/umd/Utils/ColorUtils.js +25 -46
- package/umd/Utils/NumberUtils.js +1 -12
- package/umd/Utils/TypeUtils.js +4 -0
- package/umd/Utils/Utils.js +7 -0
- package/umd/exports.js +1 -3
- package/umd/init.js +1 -7
- package/browser/Utils/HslColorManager.js +0 -45
- package/browser/Utils/RgbColorManager.js +0 -44
- package/cjs/Utils/HslColorManager.js +0 -49
- package/cjs/Utils/RgbColorManager.js +0 -48
- package/esm/Utils/HslColorManager.js +0 -45
- package/esm/Utils/RgbColorManager.js +0 -44
- package/types/Utils/HslColorManager.d.ts +0 -10
- package/types/Utils/RgbColorManager.d.ts +0 -10
- package/umd/Utils/HslColorManager.js +0 -59
- package/umd/Utils/RgbColorManager.js +0 -58
package/README.md
CHANGED
|
@@ -898,6 +898,12 @@ flowchart TD
|
|
|
898
898
|
subgraph all-plugins [Plugins]
|
|
899
899
|
plugin-canvas-mask[Canvas Mask]
|
|
900
900
|
|
|
901
|
+
subgraph all-plugins-colors [Colors]
|
|
902
|
+
plugin-hsv-color[HSV Color]
|
|
903
|
+
plugin-named-color[Named Color]
|
|
904
|
+
plugin-oklch-color[Oklch Color]
|
|
905
|
+
end
|
|
906
|
+
|
|
901
907
|
subgraph all-plugins-easings [Easings]
|
|
902
908
|
plugin-easing-back[Back]
|
|
903
909
|
plugin-easing-circ[Circ]
|
|
@@ -921,7 +927,6 @@ flowchart TD
|
|
|
921
927
|
plugin-export-video[Video]
|
|
922
928
|
end
|
|
923
929
|
|
|
924
|
-
plugin-hsv-color[HSV Color]
|
|
925
930
|
plugin-infection[Infection]
|
|
926
931
|
plugin-motion[Motion]
|
|
927
932
|
plugin-poisson-disc[Poisson Disc]
|
package/browser/Core/Canvas.js
CHANGED
|
@@ -26,7 +26,7 @@ function setStyle(canvas, style, important = false) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
export class Canvas {
|
|
29
|
-
constructor(container) {
|
|
29
|
+
constructor(container, engine) {
|
|
30
30
|
this.container = container;
|
|
31
31
|
this._applyPostDrawUpdaters = particle => {
|
|
32
32
|
for (const updater of this._postDrawUpdaters) {
|
|
@@ -62,10 +62,10 @@ export class Canvas {
|
|
|
62
62
|
let fColor, sColor;
|
|
63
63
|
for (const plugin of this._colorPlugins) {
|
|
64
64
|
if (!fColor && plugin.particleFillColor) {
|
|
65
|
-
fColor = rangeColorToHsl(plugin.particleFillColor(particle));
|
|
65
|
+
fColor = rangeColorToHsl(this._engine, plugin.particleFillColor(particle));
|
|
66
66
|
}
|
|
67
67
|
if (!sColor && plugin.particleStrokeColor) {
|
|
68
|
-
sColor = rangeColorToHsl(plugin.particleStrokeColor(particle));
|
|
68
|
+
sColor = rangeColorToHsl(this._engine, plugin.particleStrokeColor(particle));
|
|
69
69
|
}
|
|
70
70
|
if (fColor && sColor) {
|
|
71
71
|
break;
|
|
@@ -76,7 +76,7 @@ export class Canvas {
|
|
|
76
76
|
this._initCover = async () => {
|
|
77
77
|
const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color;
|
|
78
78
|
if (color) {
|
|
79
|
-
const coverRgb = rangeColorToRgb(color);
|
|
79
|
+
const coverRgb = rangeColorToRgb(this._engine, color);
|
|
80
80
|
if (coverRgb) {
|
|
81
81
|
const coverColor = {
|
|
82
82
|
...coverRgb,
|
|
@@ -135,7 +135,7 @@ export class Canvas {
|
|
|
135
135
|
}
|
|
136
136
|
const factorNumerator = 1, opacity = factorNumerator / trail.length;
|
|
137
137
|
if (trailFill.color) {
|
|
138
|
-
const fillColor = rangeColorToRgb(trailFill.color);
|
|
138
|
+
const fillColor = rangeColorToRgb(this._engine, trailFill.color);
|
|
139
139
|
if (!fillColor) {
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
@@ -216,10 +216,16 @@ export class Canvas {
|
|
|
216
216
|
height: "100%",
|
|
217
217
|
}, true);
|
|
218
218
|
};
|
|
219
|
-
this.
|
|
219
|
+
this._engine = engine;
|
|
220
|
+
this._standardSize = {
|
|
220
221
|
height: 0,
|
|
221
222
|
width: 0,
|
|
222
223
|
};
|
|
224
|
+
const pxRatio = container.retina.pixelRatio, stdSize = this._standardSize;
|
|
225
|
+
this.size = {
|
|
226
|
+
height: stdSize.height * pxRatio,
|
|
227
|
+
width: stdSize.width * pxRatio,
|
|
228
|
+
};
|
|
223
229
|
this._context = null;
|
|
224
230
|
this._generated = false;
|
|
225
231
|
this._preDrawUpdaters = [];
|
|
@@ -363,7 +369,7 @@ export class Canvas {
|
|
|
363
369
|
return;
|
|
364
370
|
}
|
|
365
371
|
if (background.color) {
|
|
366
|
-
const color = rangeColorToRgb(background.color);
|
|
372
|
+
const color = rangeColorToRgb(this._engine, background.color);
|
|
367
373
|
elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : "";
|
|
368
374
|
}
|
|
369
375
|
else {
|
|
@@ -408,8 +414,13 @@ export class Canvas {
|
|
|
408
414
|
this.element = canvas;
|
|
409
415
|
this.element.ariaHidden = "true";
|
|
410
416
|
this._originalStyle = deepExtend({}, this.element.style);
|
|
411
|
-
|
|
412
|
-
|
|
417
|
+
const standardSize = this._standardSize;
|
|
418
|
+
standardSize.height = canvas.offsetHeight;
|
|
419
|
+
standardSize.width = canvas.offsetWidth;
|
|
420
|
+
const pxRatio = this.container.retina.pixelRatio;
|
|
421
|
+
const retinaSize = this.size;
|
|
422
|
+
retinaSize.height = standardSize.height * pxRatio;
|
|
423
|
+
retinaSize.width = standardSize.width * pxRatio;
|
|
413
424
|
this._context = this.element.getContext("2d");
|
|
414
425
|
this._safeMutationObserver(obs => {
|
|
415
426
|
if (!this.element || !(this.element instanceof Node)) {
|
|
@@ -444,23 +455,23 @@ export class Canvas {
|
|
|
444
455
|
if (!this.element) {
|
|
445
456
|
return false;
|
|
446
457
|
}
|
|
447
|
-
const container = this.container,
|
|
448
|
-
width: this.element.offsetWidth
|
|
449
|
-
height: this.element.offsetHeight
|
|
458
|
+
const container = this.container, currentSize = container.canvas._standardSize, newSize = {
|
|
459
|
+
width: this.element.offsetWidth,
|
|
460
|
+
height: this.element.offsetHeight,
|
|
450
461
|
};
|
|
451
|
-
if (newSize.height ===
|
|
452
|
-
newSize.width === size.width &&
|
|
453
|
-
newSize.height === this.element.height &&
|
|
454
|
-
newSize.width === this.element.width) {
|
|
462
|
+
if (newSize.height === currentSize.height && newSize.width === currentSize.width) {
|
|
455
463
|
return false;
|
|
456
464
|
}
|
|
457
|
-
const oldSize = { ...
|
|
458
|
-
|
|
459
|
-
|
|
465
|
+
const oldSize = { ...currentSize }, pxRatio = container.retina.pixelRatio;
|
|
466
|
+
currentSize.height = newSize.height;
|
|
467
|
+
currentSize.width = newSize.width;
|
|
468
|
+
const retinaSize = this.size;
|
|
469
|
+
this.element.width = retinaSize.width = currentSize.width * pxRatio;
|
|
470
|
+
this.element.height = retinaSize.height = currentSize.height * pxRatio;
|
|
460
471
|
if (this.container.started) {
|
|
461
472
|
container.particles.setResizeFactor({
|
|
462
|
-
width:
|
|
463
|
-
height:
|
|
473
|
+
width: currentSize.width / oldSize.width,
|
|
474
|
+
height: currentSize.height / oldSize.height,
|
|
464
475
|
});
|
|
465
476
|
}
|
|
466
477
|
return true;
|
|
@@ -88,7 +88,7 @@ export class Container {
|
|
|
88
88
|
this._sourceOptions = sourceOptions;
|
|
89
89
|
this._initialSourceOptions = sourceOptions;
|
|
90
90
|
this.retina = new Retina(this);
|
|
91
|
-
this.canvas = new Canvas(this);
|
|
91
|
+
this.canvas = new Canvas(this, this._engine);
|
|
92
92
|
this.particles = new Particles(this._engine, this);
|
|
93
93
|
this.pathGenerators = new Map();
|
|
94
94
|
this.interactivity = {
|
package/browser/Core/Engine.js
CHANGED
|
@@ -71,6 +71,8 @@ export class Engine {
|
|
|
71
71
|
this._eventDispatcher = new EventDispatcher();
|
|
72
72
|
this._initialized = false;
|
|
73
73
|
this.plugins = [];
|
|
74
|
+
this.colorManagers = new Map();
|
|
75
|
+
this.easingFunctions = new Map();
|
|
74
76
|
this._initializers = {
|
|
75
77
|
interactors: new Map(),
|
|
76
78
|
movers: new Map(),
|
|
@@ -95,13 +97,24 @@ export class Engine {
|
|
|
95
97
|
return this._domArray;
|
|
96
98
|
}
|
|
97
99
|
get version() {
|
|
98
|
-
return "3.
|
|
100
|
+
return "3.7.0";
|
|
101
|
+
}
|
|
102
|
+
async addColorManager(manager, refresh = true) {
|
|
103
|
+
this.colorManagers.set(manager.key, manager);
|
|
104
|
+
await this.refresh(refresh);
|
|
99
105
|
}
|
|
100
106
|
addConfig(config) {
|
|
101
107
|
const key = config.key ?? config.name ?? "default";
|
|
102
108
|
this._configs.set(key, config);
|
|
103
109
|
this._eventDispatcher.dispatchEvent(EventType.configAdded, { data: { name: key, config } });
|
|
104
110
|
}
|
|
111
|
+
async addEasing(name, easing, refresh = true) {
|
|
112
|
+
if (this.getEasing(name)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
this.easingFunctions.set(name, easing);
|
|
116
|
+
await this.refresh(refresh);
|
|
117
|
+
}
|
|
105
118
|
async addEffect(effect, drawer, refresh = true) {
|
|
106
119
|
executeOnSingleOrMultiple(effect, type => {
|
|
107
120
|
if (!this.getEffectDrawer(type)) {
|
|
@@ -175,6 +188,9 @@ export class Engine {
|
|
|
175
188
|
}
|
|
176
189
|
return res;
|
|
177
190
|
}
|
|
191
|
+
getEasing(name) {
|
|
192
|
+
return this.easingFunctions.get(name) ?? ((value) => value);
|
|
193
|
+
}
|
|
178
194
|
getEffectDrawer(type) {
|
|
179
195
|
return this.effectDrawers.get(type);
|
|
180
196
|
}
|
package/browser/Core/Particle.js
CHANGED
|
@@ -325,7 +325,7 @@ export class Particle {
|
|
|
325
325
|
this.sides = sideCountFunc(this);
|
|
326
326
|
}
|
|
327
327
|
this.spawning = false;
|
|
328
|
-
this.shadowColor = rangeColorToRgb(this.options.shadow.color);
|
|
328
|
+
this.shadowColor = rangeColorToRgb(this._engine, this.options.shadow.color);
|
|
329
329
|
for (const updater of particles.updaters) {
|
|
330
330
|
updater.init(this);
|
|
331
331
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isArray, isString } from "../../Utils/TypeUtils.js";
|
|
1
|
+
import { isArray, isNull, isString } from "../../Utils/TypeUtils.js";
|
|
2
2
|
import { HslAnimation } from "./HslAnimation.js";
|
|
3
3
|
import { OptionsColor } from "./OptionsColor.js";
|
|
4
4
|
export class AnimatableColor extends OptionsColor {
|
|
@@ -21,7 +21,7 @@ export class AnimatableColor extends OptionsColor {
|
|
|
21
21
|
}
|
|
22
22
|
load(data) {
|
|
23
23
|
super.load(data);
|
|
24
|
-
if (
|
|
24
|
+
if (isNull(data)) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
const colorAnimation = data.animation;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AnimationMode } from "../../Enums/Modes/AnimationMode.js";
|
|
2
2
|
import { StartValueType } from "../../Enums/Types/StartValueType.js";
|
|
3
|
+
import { isNull } from "../../Utils/TypeUtils.js";
|
|
3
4
|
import { setRangeValue } from "../../Utils/NumberUtils.js";
|
|
4
5
|
export class AnimationOptions {
|
|
5
6
|
constructor() {
|
|
@@ -11,7 +12,7 @@ export class AnimationOptions {
|
|
|
11
12
|
this.sync = false;
|
|
12
13
|
}
|
|
13
14
|
load(data) {
|
|
14
|
-
if (
|
|
15
|
+
if (isNull(data)) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
if (data.count !== undefined) {
|
|
@@ -42,7 +43,7 @@ export class RangedAnimationOptions extends AnimationOptions {
|
|
|
42
43
|
}
|
|
43
44
|
load(data) {
|
|
44
45
|
super.load(data);
|
|
45
|
-
if (
|
|
46
|
+
if (isNull(data)) {
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
48
49
|
if (data.mode !== undefined) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OptionsColor } from "../OptionsColor.js";
|
|
2
|
+
import { isNull } from "../../../Utils/TypeUtils.js";
|
|
2
3
|
export class Background {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.color = new OptionsColor();
|
|
@@ -10,7 +11,7 @@ export class Background {
|
|
|
10
11
|
this.opacity = 1;
|
|
11
12
|
}
|
|
12
13
|
load(data) {
|
|
13
|
-
if (
|
|
14
|
+
if (isNull(data)) {
|
|
14
15
|
return;
|
|
15
16
|
}
|
|
16
17
|
if (data.color !== undefined) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { isNull, isString } from "../../../Utils/TypeUtils.js";
|
|
1
2
|
import { BackgroundMaskCover } from "./BackgroundMaskCover.js";
|
|
2
|
-
import { isString } from "../../../Utils/TypeUtils.js";
|
|
3
3
|
export class BackgroundMask {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.composite = "destination-out";
|
|
@@ -7,7 +7,7 @@ export class BackgroundMask {
|
|
|
7
7
|
this.enable = false;
|
|
8
8
|
}
|
|
9
9
|
load(data) {
|
|
10
|
-
if (
|
|
10
|
+
if (isNull(data)) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
if (data.composite !== undefined) {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { OptionsColor } from "../OptionsColor.js";
|
|
2
|
+
import { isNull } from "../../../Utils/TypeUtils.js";
|
|
2
3
|
export class BackgroundMaskCover {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.opacity = 1;
|
|
5
6
|
}
|
|
6
7
|
load(data) {
|
|
7
|
-
if (
|
|
8
|
+
if (isNull(data)) {
|
|
8
9
|
return;
|
|
9
10
|
}
|
|
10
11
|
if (data.color !== undefined) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnimationOptions } from "./AnimationOptions.js";
|
|
2
|
+
import { isNull } from "../../Utils/TypeUtils.js";
|
|
2
3
|
import { setRangeValue } from "../../Utils/NumberUtils.js";
|
|
3
4
|
export class ColorAnimation extends AnimationOptions {
|
|
4
5
|
constructor() {
|
|
@@ -8,7 +9,7 @@ export class ColorAnimation extends AnimationOptions {
|
|
|
8
9
|
}
|
|
9
10
|
load(data) {
|
|
10
11
|
super.load(data);
|
|
11
|
-
if (
|
|
12
|
+
if (isNull(data)) {
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
14
15
|
if (data.offset !== undefined) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ColorAnimation } from "./ColorAnimation.js";
|
|
2
|
+
import { isNull } from "../../Utils/TypeUtils.js";
|
|
2
3
|
export class HslAnimation {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.h = new ColorAnimation();
|
|
@@ -6,7 +7,7 @@ export class HslAnimation {
|
|
|
6
7
|
this.l = new ColorAnimation();
|
|
7
8
|
}
|
|
8
9
|
load(data) {
|
|
9
|
-
if (
|
|
10
|
+
if (isNull(data)) {
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
13
|
this.h.load(data.h);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DivType } from "../../../../Enums/Types/DivType.js";
|
|
2
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
2
3
|
export class DivEvent {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.selectors = [];
|
|
@@ -7,7 +8,7 @@ export class DivEvent {
|
|
|
7
8
|
this.type = DivType.circle;
|
|
8
9
|
}
|
|
9
10
|
load(data) {
|
|
10
|
-
if (
|
|
11
|
+
if (isNull(data)) {
|
|
11
12
|
return;
|
|
12
13
|
}
|
|
13
14
|
if (data.selectors !== undefined) {
|
|
@@ -3,6 +3,7 @@ import { DivEvent } from "./DivEvent.js";
|
|
|
3
3
|
import { HoverEvent } from "./HoverEvent.js";
|
|
4
4
|
import { ResizeEvent } from "./ResizeEvent.js";
|
|
5
5
|
import { executeOnSingleOrMultiple } from "../../../../Utils/Utils.js";
|
|
6
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
6
7
|
export class Events {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.onClick = new ClickEvent();
|
|
@@ -11,7 +12,7 @@ export class Events {
|
|
|
11
12
|
this.resize = new ResizeEvent();
|
|
12
13
|
}
|
|
13
14
|
load(data) {
|
|
14
|
-
if (
|
|
15
|
+
if (isNull(data)) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
this.onClick.load(data.onClick);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Parallax } from "./Parallax.js";
|
|
2
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
2
3
|
export class HoverEvent {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.enable = false;
|
|
@@ -6,7 +7,7 @@ export class HoverEvent {
|
|
|
6
7
|
this.parallax = new Parallax();
|
|
7
8
|
}
|
|
8
9
|
load(data) {
|
|
9
|
-
if (
|
|
10
|
+
if (isNull(data)) {
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
13
|
if (data.enable !== undefined) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
1
2
|
export class Parallax {
|
|
2
3
|
constructor() {
|
|
3
4
|
this.enable = false;
|
|
@@ -5,7 +6,7 @@ export class Parallax {
|
|
|
5
6
|
this.smooth = 10;
|
|
6
7
|
}
|
|
7
8
|
load(data) {
|
|
8
|
-
if (
|
|
9
|
+
if (isNull(data)) {
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
12
|
if (data.enable !== undefined) {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
1
2
|
export class ResizeEvent {
|
|
2
3
|
constructor() {
|
|
3
4
|
this.delay = 0.5;
|
|
4
5
|
this.enable = true;
|
|
5
6
|
}
|
|
6
7
|
load(data) {
|
|
7
|
-
if (data
|
|
8
|
+
if (isNull(data)) {
|
|
8
9
|
return;
|
|
9
10
|
}
|
|
10
11
|
if (data.delay !== undefined) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Events } from "./Events/Events.js";
|
|
2
2
|
import { InteractivityDetect } from "../../../Enums/InteractivityDetect.js";
|
|
3
3
|
import { Modes } from "./Modes/Modes.js";
|
|
4
|
+
import { isNull } from "../../../Utils/TypeUtils.js";
|
|
4
5
|
export class Interactivity {
|
|
5
6
|
constructor(engine, container) {
|
|
6
7
|
this.detectsOn = InteractivityDetect.window;
|
|
@@ -8,7 +9,7 @@ export class Interactivity {
|
|
|
8
9
|
this.modes = new Modes(engine, container);
|
|
9
10
|
}
|
|
10
11
|
load(data) {
|
|
11
|
-
if (
|
|
12
|
+
if (isNull(data)) {
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
14
15
|
const detectsOn = data.detectsOn;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
1
2
|
export class Modes {
|
|
2
3
|
constructor(engine, container) {
|
|
3
4
|
this._engine = engine;
|
|
4
5
|
this._container = container;
|
|
5
6
|
}
|
|
6
7
|
load(data) {
|
|
7
|
-
if (
|
|
8
|
+
if (isNull(data)) {
|
|
8
9
|
return;
|
|
9
10
|
}
|
|
10
11
|
if (!this._container) {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { PixelMode } from "../../Enums/Modes/PixelMode.js";
|
|
2
2
|
import { deepExtend } from "../../Utils/Utils.js";
|
|
3
|
+
import { isNull } from "../../Utils/TypeUtils.js";
|
|
3
4
|
const defaultPosition = 50;
|
|
4
5
|
export class ManualParticle {
|
|
5
6
|
load(data) {
|
|
6
|
-
if (
|
|
7
|
+
if (isNull(data)) {
|
|
7
8
|
return;
|
|
8
9
|
}
|
|
9
10
|
if (data.position) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { deepExtend, executeOnSingleOrMultiple, safeMatchMedia } from "../../Utils/Utils.js";
|
|
2
|
+
import { isBoolean, isNull } from "../../Utils/TypeUtils.js";
|
|
2
3
|
import { Background } from "./Background/Background.js";
|
|
3
4
|
import { BackgroundMask } from "./BackgroundMask/BackgroundMask.js";
|
|
4
5
|
import { FullScreen } from "./FullScreen/FullScreen.js";
|
|
@@ -8,7 +9,6 @@ import { Responsive } from "./Responsive.js";
|
|
|
8
9
|
import { ResponsiveMode } from "../../Enums/Modes/ResponsiveMode.js";
|
|
9
10
|
import { Theme } from "./Theme/Theme.js";
|
|
10
11
|
import { ThemeMode } from "../../Enums/Modes/ThemeMode.js";
|
|
11
|
-
import { isBoolean } from "../../Utils/TypeUtils.js";
|
|
12
12
|
import { loadParticlesOptions } from "../../Utils/OptionsUtils.js";
|
|
13
13
|
import { setRangeValue } from "../../Utils/NumberUtils.js";
|
|
14
14
|
export class Options {
|
|
@@ -44,7 +44,7 @@ export class Options {
|
|
|
44
44
|
this.zLayers = 100;
|
|
45
45
|
}
|
|
46
46
|
load(data) {
|
|
47
|
-
if (
|
|
47
|
+
if (isNull(data)) {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
if (data.preset !== undefined) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isArray, isString } from "../../Utils/TypeUtils.js";
|
|
1
|
+
import { isArray, isNull, isString } from "../../Utils/TypeUtils.js";
|
|
2
2
|
export class OptionsColor {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.value = "";
|
|
@@ -17,9 +17,11 @@ export class OptionsColor {
|
|
|
17
17
|
return color;
|
|
18
18
|
}
|
|
19
19
|
load(data) {
|
|
20
|
-
if (data
|
|
20
|
+
if (isNull(data)) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
if (!isNull(data.value)) {
|
|
24
|
+
this.value = data.value;
|
|
25
|
+
}
|
|
24
26
|
}
|
|
25
27
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ParticlesBounceFactor } from "./ParticlesBounceFactor.js";
|
|
2
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
2
3
|
export class ParticlesBounce {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.horizontal = new ParticlesBounceFactor();
|
|
5
6
|
this.vertical = new ParticlesBounceFactor();
|
|
6
7
|
}
|
|
7
8
|
load(data) {
|
|
8
|
-
if (
|
|
9
|
+
if (isNull(data)) {
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
12
|
this.horizontal.load(data.horizontal);
|
|
@@ -2,6 +2,7 @@ import { CollisionMode } from "../../../../Enums/Modes/CollisionMode.js";
|
|
|
2
2
|
import { CollisionsAbsorb } from "./CollisionsAbsorb.js";
|
|
3
3
|
import { CollisionsOverlap } from "./CollisionsOverlap.js";
|
|
4
4
|
import { ParticlesBounce } from "../Bounce/ParticlesBounce.js";
|
|
5
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
5
6
|
import { setRangeValue } from "../../../../Utils/NumberUtils.js";
|
|
6
7
|
export class Collisions {
|
|
7
8
|
constructor() {
|
|
@@ -13,7 +14,7 @@ export class Collisions {
|
|
|
13
14
|
this.overlap = new CollisionsOverlap();
|
|
14
15
|
}
|
|
15
16
|
load(data) {
|
|
16
|
-
if (
|
|
17
|
+
if (isNull(data)) {
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
this.absorb.load(data.absorb);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
1
2
|
export class CollisionsOverlap {
|
|
2
3
|
constructor() {
|
|
3
4
|
this.enable = true;
|
|
4
5
|
this.retries = 0;
|
|
5
6
|
}
|
|
6
7
|
load(data) {
|
|
7
|
-
if (
|
|
8
|
+
if (isNull(data)) {
|
|
8
9
|
return;
|
|
9
10
|
}
|
|
10
11
|
if (data.enable !== undefined) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { deepExtend } from "../../../../Utils/Utils.js";
|
|
2
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
2
3
|
export class Effect {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.close = true;
|
|
@@ -7,7 +8,7 @@ export class Effect {
|
|
|
7
8
|
this.type = [];
|
|
8
9
|
}
|
|
9
10
|
load(data) {
|
|
10
|
-
if (
|
|
11
|
+
if (isNull(data)) {
|
|
11
12
|
return;
|
|
12
13
|
}
|
|
13
14
|
const options = data.options;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MoveDirection } from "../../../../Enums/Directions/MoveDirection.js";
|
|
2
|
-
import { isNumber, isObject } from "../../../../Utils/TypeUtils.js";
|
|
2
|
+
import { isNull, isNumber, isObject } from "../../../../Utils/TypeUtils.js";
|
|
3
3
|
import { MoveAngle } from "./MoveAngle.js";
|
|
4
4
|
import { MoveAttract } from "./MoveAttract.js";
|
|
5
5
|
import { MoveCenter } from "./MoveCenter.js";
|
|
@@ -32,7 +32,7 @@ export class Move {
|
|
|
32
32
|
this.warp = false;
|
|
33
33
|
}
|
|
34
34
|
load(data) {
|
|
35
|
-
if (
|
|
35
|
+
if (isNull(data)) {
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
38
|
this.angle.load(isNumber(data.angle) ? { value: data.angle } : data.angle);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
1
2
|
import { setRangeValue } from "../../../../Utils/NumberUtils.js";
|
|
2
3
|
export class MoveAngle {
|
|
3
4
|
constructor() {
|
|
@@ -5,7 +6,7 @@ export class MoveAngle {
|
|
|
5
6
|
this.value = 90;
|
|
6
7
|
}
|
|
7
8
|
load(data) {
|
|
8
|
-
if (
|
|
9
|
+
if (isNull(data)) {
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
12
|
if (data.offset !== undefined) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
1
2
|
import { setRangeValue } from "../../../../Utils/NumberUtils.js";
|
|
2
3
|
export class MoveAttract {
|
|
3
4
|
constructor() {
|
|
@@ -9,7 +10,7 @@ export class MoveAttract {
|
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
12
|
load(data) {
|
|
12
|
-
if (
|
|
13
|
+
if (isNull(data)) {
|
|
13
14
|
return;
|
|
14
15
|
}
|
|
15
16
|
if (data.distance !== undefined) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PixelMode } from "../../../../Enums/Modes/PixelMode.js";
|
|
2
|
+
import { isNull } from "../../../../Utils/TypeUtils.js";
|
|
2
3
|
export class MoveCenter {
|
|
3
4
|
constructor() {
|
|
4
5
|
this.x = 50;
|
|
@@ -7,7 +8,7 @@ export class MoveCenter {
|
|
|
7
8
|
this.radius = 0;
|
|
8
9
|
}
|
|
9
10
|
load(data) {
|
|
10
|
-
if (
|
|
11
|
+
if (isNull(data)) {
|
|
11
12
|
return;
|
|
12
13
|
}
|
|
13
14
|
if (data.x !== undefined) {
|