@tsparticles/engine 3.2.2 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/browser/Core/Canvas.js +34 -29
- package/browser/Core/Container.js +60 -47
- package/browser/Core/Engine.js +82 -74
- package/browser/Core/Particle.js +40 -26
- package/browser/Core/Particles.js +51 -52
- package/browser/Core/Utils/EventListeners.js +18 -17
- package/browser/Core/Utils/ExternalInteractorBase.js +2 -1
- package/browser/Core/Utils/InteractionManager.js +7 -6
- package/browser/Core/Utils/ParticlesInteractorBase.js +2 -1
- package/browser/Core/Utils/QuadTree.js +1 -1
- package/browser/Core/Utils/Ranges.js +5 -4
- package/browser/Enums/AnimationStatus.js +5 -1
- package/browser/Enums/Directions/MoveDirection.js +14 -1
- package/browser/Enums/Directions/OutModeDirection.js +7 -1
- package/browser/Enums/Directions/RotateDirection.js +6 -1
- package/browser/Enums/InteractivityDetect.js +6 -1
- package/browser/Enums/Modes/AnimationMode.js +7 -1
- package/browser/Enums/Modes/CollisionMode.js +6 -1
- package/browser/Enums/Modes/LimitMode.js +5 -1
- package/browser/Enums/Modes/OutMode.js +8 -1
- package/browser/Enums/Modes/PixelMode.js +5 -1
- package/browser/Enums/Modes/ResponsiveMode.js +5 -1
- package/browser/Enums/Modes/ThemeMode.js +6 -1
- package/browser/Enums/Types/AlterType.js +5 -1
- package/browser/Enums/Types/DestroyType.js +6 -1
- package/browser/Enums/Types/DivType.js +5 -1
- package/browser/Enums/Types/EasingType.js +30 -1
- package/browser/Enums/Types/EventType.js +15 -1
- package/browser/Enums/Types/GradientType.js +6 -1
- package/browser/Enums/Types/InteractorType.js +5 -1
- package/browser/Enums/Types/ParticleOutType.js +6 -1
- package/browser/Enums/Types/StartValueType.js +6 -1
- package/browser/Options/Classes/AnimationOptions.js +4 -2
- package/browser/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
- package/browser/Options/Classes/Interactivity/Events/Events.js +1 -1
- package/browser/Options/Classes/Interactivity/Interactivity.js +2 -1
- package/browser/Options/Classes/ManualParticle.js +2 -1
- package/browser/Options/Classes/Options.js +14 -12
- package/browser/Options/Classes/Particles/Collisions/Collisions.js +2 -1
- package/browser/Options/Classes/Particles/Move/Move.js +2 -1
- package/browser/Options/Classes/Particles/Move/MoveCenter.js +2 -1
- package/browser/Options/Classes/Particles/Move/OutModes.js +2 -1
- package/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
- package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
- package/browser/Options/Classes/Particles/ParticlesOptions.js +1 -1
- package/browser/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
- package/browser/Options/Classes/Responsive.js +5 -4
- package/browser/Options/Classes/Theme/ThemeDefault.js +2 -1
- package/browser/Types/RangeType.js +5 -1
- package/browser/Utils/CanvasUtils.js +27 -21
- package/browser/Utils/ColorUtils.js +17 -9
- package/browser/Utils/EventDispatcher.js +1 -1
- package/browser/Utils/HslColorManager.js +11 -4
- package/browser/Utils/NumberUtils.js +11 -10
- package/browser/Utils/RgbColorManager.js +11 -4
- package/browser/Utils/Utils.js +37 -31
- package/cjs/Core/Canvas.js +34 -29
- package/cjs/Core/Container.js +60 -47
- package/cjs/Core/Engine.js +82 -97
- package/cjs/Core/Particle.js +40 -26
- package/cjs/Core/Particles.js +52 -76
- package/cjs/Core/Utils/EventListeners.js +18 -17
- package/cjs/Core/Utils/ExternalInteractorBase.js +2 -1
- package/cjs/Core/Utils/InteractionManager.js +7 -6
- package/cjs/Core/Utils/ParticlesInteractorBase.js +2 -1
- package/cjs/Core/Utils/QuadTree.js +1 -1
- package/cjs/Core/Utils/Ranges.js +5 -4
- package/cjs/Enums/AnimationStatus.js +6 -0
- package/cjs/Enums/Directions/MoveDirection.js +15 -0
- package/cjs/Enums/Directions/OutModeDirection.js +8 -0
- package/cjs/Enums/Directions/RotateDirection.js +7 -0
- package/cjs/Enums/InteractivityDetect.js +7 -0
- package/cjs/Enums/Modes/AnimationMode.js +8 -0
- package/cjs/Enums/Modes/CollisionMode.js +7 -0
- package/cjs/Enums/Modes/LimitMode.js +6 -0
- package/cjs/Enums/Modes/OutMode.js +9 -0
- package/cjs/Enums/Modes/PixelMode.js +6 -0
- package/cjs/Enums/Modes/ResponsiveMode.js +6 -0
- package/cjs/Enums/Modes/ThemeMode.js +7 -0
- package/cjs/Enums/Types/AlterType.js +6 -0
- package/cjs/Enums/Types/DestroyType.js +7 -0
- package/cjs/Enums/Types/DivType.js +6 -0
- package/cjs/Enums/Types/EasingType.js +31 -0
- package/cjs/Enums/Types/EventType.js +16 -0
- package/cjs/Enums/Types/GradientType.js +7 -0
- package/cjs/Enums/Types/InteractorType.js +6 -0
- package/cjs/Enums/Types/ParticleOutType.js +7 -0
- package/cjs/Enums/Types/StartValueType.js +7 -0
- package/cjs/Options/Classes/AnimationOptions.js +4 -2
- package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
- package/cjs/Options/Classes/Interactivity/Events/Events.js +1 -1
- package/cjs/Options/Classes/Interactivity/Interactivity.js +2 -1
- package/cjs/Options/Classes/ManualParticle.js +2 -1
- package/cjs/Options/Classes/Options.js +14 -12
- package/cjs/Options/Classes/Particles/Collisions/Collisions.js +2 -1
- package/cjs/Options/Classes/Particles/Move/Move.js +2 -1
- package/cjs/Options/Classes/Particles/Move/MoveCenter.js +2 -1
- package/cjs/Options/Classes/Particles/Move/OutModes.js +2 -1
- package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
- package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
- package/cjs/Options/Classes/Particles/ParticlesOptions.js +1 -1
- package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
- package/cjs/Options/Classes/Responsive.js +5 -4
- package/cjs/Options/Classes/Theme/ThemeDefault.js +2 -1
- package/cjs/Types/RangeType.js +6 -0
- package/cjs/Utils/CanvasUtils.js +27 -21
- package/cjs/Utils/ColorUtils.js +17 -9
- package/cjs/Utils/EventDispatcher.js +1 -1
- package/cjs/Utils/HslColorManager.js +11 -4
- package/cjs/Utils/NumberUtils.js +11 -10
- package/cjs/Utils/RgbColorManager.js +11 -4
- package/cjs/Utils/Utils.js +37 -31
- package/esm/Core/Canvas.js +34 -29
- package/esm/Core/Container.js +60 -47
- package/esm/Core/Engine.js +82 -74
- package/esm/Core/Particle.js +40 -26
- package/esm/Core/Particles.js +51 -52
- package/esm/Core/Utils/EventListeners.js +18 -17
- package/esm/Core/Utils/ExternalInteractorBase.js +2 -1
- package/esm/Core/Utils/InteractionManager.js +7 -6
- package/esm/Core/Utils/ParticlesInteractorBase.js +2 -1
- package/esm/Core/Utils/QuadTree.js +1 -1
- package/esm/Core/Utils/Ranges.js +5 -4
- package/esm/Enums/AnimationStatus.js +5 -1
- package/esm/Enums/Directions/MoveDirection.js +14 -1
- package/esm/Enums/Directions/OutModeDirection.js +7 -1
- package/esm/Enums/Directions/RotateDirection.js +6 -1
- package/esm/Enums/InteractivityDetect.js +6 -1
- package/esm/Enums/Modes/AnimationMode.js +7 -1
- package/esm/Enums/Modes/CollisionMode.js +6 -1
- package/esm/Enums/Modes/LimitMode.js +5 -1
- package/esm/Enums/Modes/OutMode.js +8 -1
- package/esm/Enums/Modes/PixelMode.js +5 -1
- package/esm/Enums/Modes/ResponsiveMode.js +5 -1
- package/esm/Enums/Modes/ThemeMode.js +6 -1
- package/esm/Enums/Types/AlterType.js +5 -1
- package/esm/Enums/Types/DestroyType.js +6 -1
- package/esm/Enums/Types/DivType.js +5 -1
- package/esm/Enums/Types/EasingType.js +30 -1
- package/esm/Enums/Types/EventType.js +15 -1
- package/esm/Enums/Types/GradientType.js +6 -1
- package/esm/Enums/Types/InteractorType.js +5 -1
- package/esm/Enums/Types/ParticleOutType.js +6 -1
- package/esm/Enums/Types/StartValueType.js +6 -1
- package/esm/Options/Classes/AnimationOptions.js +4 -2
- package/esm/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
- package/esm/Options/Classes/Interactivity/Events/Events.js +1 -1
- package/esm/Options/Classes/Interactivity/Interactivity.js +2 -1
- package/esm/Options/Classes/ManualParticle.js +2 -1
- package/esm/Options/Classes/Options.js +14 -12
- package/esm/Options/Classes/Particles/Collisions/Collisions.js +2 -1
- package/esm/Options/Classes/Particles/Move/Move.js +2 -1
- package/esm/Options/Classes/Particles/Move/MoveCenter.js +2 -1
- package/esm/Options/Classes/Particles/Move/OutModes.js +2 -1
- package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
- package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
- package/esm/Options/Classes/Particles/ParticlesOptions.js +1 -1
- package/esm/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
- package/esm/Options/Classes/Responsive.js +5 -4
- package/esm/Options/Classes/Theme/ThemeDefault.js +2 -1
- package/esm/Types/RangeType.js +5 -1
- package/esm/Utils/CanvasUtils.js +27 -21
- package/esm/Utils/ColorUtils.js +17 -9
- package/esm/Utils/EventDispatcher.js +1 -1
- package/esm/Utils/HslColorManager.js +11 -4
- package/esm/Utils/NumberUtils.js +11 -10
- package/esm/Utils/RgbColorManager.js +11 -4
- package/esm/Utils/Utils.js +37 -31
- package/package.json +1 -1
- package/report.html +1 -1
- package/tsparticles.engine.js +327 -225
- package/tsparticles.engine.min.js +1 -1
- package/tsparticles.engine.min.js.LICENSE.txt +1 -1
- package/types/Core/Canvas.d.ts +4 -4
- package/types/Core/Container.d.ts +4 -2
- package/types/Core/Engine.d.ts +6 -5
- package/types/Core/Interfaces/IContainerPlugin.d.ts +4 -4
- package/types/Core/Interfaces/IEffectDrawer.d.ts +3 -3
- package/types/Core/Interfaces/IExternalInteractor.d.ts +1 -1
- package/types/Core/Interfaces/IMovePathGenerator.d.ts +2 -2
- package/types/Core/Interfaces/IParticleMover.d.ts +2 -2
- package/types/Core/Interfaces/IParticleUpdater.d.ts +2 -2
- package/types/Core/Interfaces/IParticlesInteractor.d.ts +1 -1
- package/types/Core/Interfaces/IPlugin.d.ts +3 -4
- package/types/Core/Interfaces/IShapeDrawer.d.ts +5 -4
- package/types/Core/Particle.d.ts +3 -2
- package/types/Core/Particles.d.ts +7 -7
- package/types/Core/Utils/ExternalInteractorBase.d.ts +1 -1
- package/types/Core/Utils/InteractionManager.d.ts +2 -2
- package/types/Core/Utils/ParticlesInteractorBase.d.ts +1 -1
- package/types/Enums/AnimationStatus.d.ts +1 -1
- package/types/Enums/Directions/MoveDirection.d.ts +1 -1
- package/types/Enums/Directions/OutModeDirection.d.ts +1 -1
- package/types/Enums/Directions/RotateDirection.d.ts +1 -1
- package/types/Enums/InteractivityDetect.d.ts +1 -1
- package/types/Enums/Modes/AnimationMode.d.ts +1 -1
- package/types/Enums/Modes/CollisionMode.d.ts +1 -1
- package/types/Enums/Modes/LimitMode.d.ts +1 -1
- package/types/Enums/Modes/OutMode.d.ts +1 -1
- package/types/Enums/Modes/PixelMode.d.ts +1 -1
- package/types/Enums/Modes/ResponsiveMode.d.ts +1 -1
- package/types/Enums/Modes/ThemeMode.d.ts +1 -1
- package/types/Enums/Types/AlterType.d.ts +1 -1
- package/types/Enums/Types/DestroyType.d.ts +1 -1
- package/types/Enums/Types/DivType.d.ts +1 -1
- package/types/Enums/Types/EasingType.d.ts +1 -1
- package/types/Enums/Types/EventType.d.ts +1 -1
- package/types/Enums/Types/GradientType.d.ts +1 -1
- package/types/Enums/Types/InteractorType.d.ts +1 -1
- package/types/Enums/Types/ParticleOutType.d.ts +1 -1
- package/types/Enums/Types/StartValueType.d.ts +1 -1
- package/types/Options/Classes/Options.d.ts +2 -1
- package/types/Options/Classes/Responsive.d.ts +2 -2
- package/types/Options/Classes/Theme/Theme.d.ts +2 -2
- package/types/Options/Interfaces/IResponsive.d.ts +2 -3
- package/types/Options/Interfaces/Theme/ITheme.d.ts +2 -3
- package/types/Types/RangeType.d.ts +1 -1
- package/types/Utils/CanvasUtils.d.ts +6 -6
- package/umd/Core/Canvas.js +34 -29
- package/umd/Core/Container.js +61 -48
- package/umd/Core/Engine.js +83 -99
- package/umd/Core/Particle.js +41 -27
- package/umd/Core/Particles.js +53 -78
- package/umd/Core/Utils/EventListeners.js +19 -18
- package/umd/Core/Utils/ExternalInteractorBase.js +3 -2
- package/umd/Core/Utils/InteractionManager.js +8 -7
- package/umd/Core/Utils/ParticlesInteractorBase.js +3 -2
- package/umd/Core/Utils/QuadTree.js +1 -1
- package/umd/Core/Utils/Ranges.js +6 -5
- package/umd/Enums/AnimationStatus.js +6 -0
- package/umd/Enums/Directions/MoveDirection.js +15 -0
- package/umd/Enums/Directions/OutModeDirection.js +8 -0
- package/umd/Enums/Directions/RotateDirection.js +7 -0
- package/umd/Enums/InteractivityDetect.js +7 -0
- package/umd/Enums/Modes/AnimationMode.js +8 -0
- package/umd/Enums/Modes/CollisionMode.js +7 -0
- package/umd/Enums/Modes/LimitMode.js +6 -0
- package/umd/Enums/Modes/OutMode.js +9 -0
- package/umd/Enums/Modes/PixelMode.js +6 -0
- package/umd/Enums/Modes/ResponsiveMode.js +6 -0
- package/umd/Enums/Modes/ThemeMode.js +7 -0
- package/umd/Enums/Types/AlterType.js +6 -0
- package/umd/Enums/Types/DestroyType.js +7 -0
- package/umd/Enums/Types/DivType.js +6 -0
- package/umd/Enums/Types/EasingType.js +31 -0
- package/umd/Enums/Types/EventType.js +16 -0
- package/umd/Enums/Types/GradientType.js +7 -0
- package/umd/Enums/Types/InteractorType.js +6 -0
- package/umd/Enums/Types/ParticleOutType.js +7 -0
- package/umd/Enums/Types/StartValueType.js +7 -0
- package/umd/Options/Classes/AnimationOptions.js +5 -3
- package/umd/Options/Classes/Interactivity/Events/DivEvent.js +3 -2
- package/umd/Options/Classes/Interactivity/Events/Events.js +1 -1
- package/umd/Options/Classes/Interactivity/Interactivity.js +3 -2
- package/umd/Options/Classes/ManualParticle.js +3 -2
- package/umd/Options/Classes/Options.js +15 -13
- package/umd/Options/Classes/Particles/Collisions/Collisions.js +3 -2
- package/umd/Options/Classes/Particles/Move/Move.js +3 -2
- package/umd/Options/Classes/Particles/Move/MoveCenter.js +3 -2
- package/umd/Options/Classes/Particles/Move/OutModes.js +3 -2
- package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +3 -2
- package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +3 -2
- package/umd/Options/Classes/Particles/ParticlesOptions.js +1 -1
- package/umd/Options/Classes/Particles/Size/SizeAnimation.js +3 -2
- package/umd/Options/Classes/Responsive.js +6 -5
- package/umd/Options/Classes/Theme/ThemeDefault.js +3 -2
- package/umd/Types/RangeType.js +6 -0
- package/umd/Utils/CanvasUtils.js +28 -22
- package/umd/Utils/ColorUtils.js +18 -10
- package/umd/Utils/EventDispatcher.js +1 -1
- package/umd/Utils/HslColorManager.js +11 -4
- package/umd/Utils/NumberUtils.js +12 -11
- package/umd/Utils/RgbColorManager.js +11 -4
- package/umd/Utils/Utils.js +38 -32
- package/373.min.js +0 -2
- package/373.min.js.LICENSE.txt +0 -1
- package/438.min.js +0 -2
- package/438.min.js.LICENSE.txt +0 -1
- package/dist_browser_Core_Container_js.js +0 -92
- package/dist_browser_Core_Particle_js.js +0 -32
|
@@ -7,7 +7,7 @@ import type { IMouseData } from "./Interfaces/IMouseData.js";
|
|
|
7
7
|
import type { IParticleMover } from "./Interfaces/IParticleMover.js";
|
|
8
8
|
import type { IParticleUpdater } from "./Interfaces/IParticleUpdater.js";
|
|
9
9
|
import type { IParticlesOptions } from "../Options/Interfaces/Particles/IParticlesOptions.js";
|
|
10
|
-
import
|
|
10
|
+
import { Particle } from "./Particle.js";
|
|
11
11
|
import { QuadTree } from "./Utils/QuadTree.js";
|
|
12
12
|
import type { RecursivePartial } from "../Types/RecursivePartial.js";
|
|
13
13
|
export declare class Particles {
|
|
@@ -29,26 +29,26 @@ export declare class Particles {
|
|
|
29
29
|
private _zArray;
|
|
30
30
|
constructor(engine: Engine, container: Container);
|
|
31
31
|
get count(): number;
|
|
32
|
-
addManualParticles():
|
|
33
|
-
addParticle(position?: ICoordinates, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string, initializer?: (particle: Particle) => boolean):
|
|
32
|
+
addManualParticles(): void;
|
|
33
|
+
addParticle(position?: ICoordinates, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string, initializer?: (particle: Particle) => boolean): Particle | undefined;
|
|
34
34
|
clear(): void;
|
|
35
35
|
destroy(): void;
|
|
36
|
-
draw(delta: IDelta):
|
|
36
|
+
draw(delta: IDelta): void;
|
|
37
37
|
filter(condition: (particle: Particle) => boolean): Particle[];
|
|
38
38
|
find(condition: (particle: Particle) => boolean): Particle | undefined;
|
|
39
39
|
get(index: number): Particle | undefined;
|
|
40
40
|
handleClickMode(mode: string): void;
|
|
41
41
|
init(): Promise<void>;
|
|
42
42
|
initPlugins(): Promise<void>;
|
|
43
|
-
push(nb: number, mouse?: IMouseData, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string):
|
|
43
|
+
push(nb: number, mouse?: IMouseData, overrideOptions?: RecursivePartial<IParticlesOptions>, group?: string): void;
|
|
44
44
|
redraw(): Promise<void>;
|
|
45
45
|
remove(particle: Particle, group?: string, override?: boolean): void;
|
|
46
46
|
removeAt(index: number, quantity?: number, group?: string, override?: boolean): void;
|
|
47
47
|
removeQuantity(quantity: number, group?: string): void;
|
|
48
|
-
setDensity():
|
|
48
|
+
setDensity(): void;
|
|
49
49
|
setLastZIndex(zIndex: number): void;
|
|
50
50
|
setResizeFactor(factor: IDimension): void;
|
|
51
|
-
update(delta: IDelta):
|
|
51
|
+
update(delta: IDelta): void;
|
|
52
52
|
private readonly _addToPool;
|
|
53
53
|
private readonly _applyDensity;
|
|
54
54
|
private readonly _initDensityFactor;
|
|
@@ -9,7 +9,7 @@ export declare abstract class ExternalInteractorBase<TContainer extends Containe
|
|
|
9
9
|
protected constructor(container: TContainer);
|
|
10
10
|
abstract clear(particle: TParticle, delta: IDelta): void;
|
|
11
11
|
abstract init(): void;
|
|
12
|
-
abstract interact(delta: IDelta):
|
|
12
|
+
abstract interact(delta: IDelta): void;
|
|
13
13
|
abstract isEnabled(particle?: TParticle): boolean;
|
|
14
14
|
abstract reset(particle: TParticle): void;
|
|
15
15
|
}
|
|
@@ -9,9 +9,9 @@ export declare class InteractionManager {
|
|
|
9
9
|
private _interactors;
|
|
10
10
|
private _particleInteractors;
|
|
11
11
|
constructor(engine: Engine, container: Container);
|
|
12
|
-
externalInteract(delta: IDelta):
|
|
12
|
+
externalInteract(delta: IDelta): void;
|
|
13
13
|
handleClickMode(mode: string): void;
|
|
14
14
|
init(): Promise<void>;
|
|
15
|
-
particlesInteract(particle: Particle, delta: IDelta):
|
|
15
|
+
particlesInteract(particle: Particle, delta: IDelta): void;
|
|
16
16
|
reset(particle: Particle): void;
|
|
17
17
|
}
|
|
@@ -9,7 +9,7 @@ export declare abstract class ParticlesInteractorBase<TContainer extends Contain
|
|
|
9
9
|
protected constructor(container: TContainer);
|
|
10
10
|
abstract clear(particle: TParticle, delta: IDelta): void;
|
|
11
11
|
abstract init(): void;
|
|
12
|
-
abstract interact(particle: TParticle, delta: IDelta):
|
|
12
|
+
abstract interact(particle: TParticle, delta: IDelta): void;
|
|
13
13
|
abstract isEnabled(particle: TParticle): boolean;
|
|
14
14
|
abstract reset(particle: TParticle): void;
|
|
15
15
|
}
|
|
@@ -5,6 +5,7 @@ import type { Engine } from "../../Core/Engine.js";
|
|
|
5
5
|
import { FullScreen } from "./FullScreen/FullScreen.js";
|
|
6
6
|
import type { IOptionLoader } from "../Interfaces/IOptionLoader.js";
|
|
7
7
|
import type { IOptions } from "../Interfaces/IOptions.js";
|
|
8
|
+
import type { ISourceOptions } from "../../Types/ISourceOptions.js";
|
|
8
9
|
import { Interactivity } from "./Interactivity/Interactivity.js";
|
|
9
10
|
import { ManualParticle } from "./ManualParticle.js";
|
|
10
11
|
import type { RangeValue } from "../../Types/RangeValue.js";
|
|
@@ -44,7 +45,7 @@ export declare class Options implements IOptions, IOptionLoader<IOptions> {
|
|
|
44
45
|
private readonly _container;
|
|
45
46
|
private readonly _engine;
|
|
46
47
|
constructor(engine: Engine, container: Container);
|
|
47
|
-
load(data?:
|
|
48
|
+
load(data?: ISourceOptions): void;
|
|
48
49
|
setResponsive(width: number, pxRatio: number, defaultOptions: IOptions): number | undefined;
|
|
49
50
|
setTheme(name?: string): void;
|
|
50
51
|
private readonly _findDefaultTheme;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { IOptionLoader } from "../Interfaces/IOptionLoader.js";
|
|
2
|
-
import type { IOptions } from "../Interfaces/IOptions.js";
|
|
3
2
|
import type { IResponsive } from "../Interfaces/IResponsive.js";
|
|
3
|
+
import type { ISourceOptions } from "../../Types/ISourceOptions.js";
|
|
4
4
|
import type { RecursivePartial } from "../../Types/RecursivePartial.js";
|
|
5
5
|
import { ResponsiveMode } from "../../Enums/Modes/ResponsiveMode.js";
|
|
6
6
|
export declare class Responsive implements IResponsive, IOptionLoader<IResponsive> {
|
|
7
7
|
maxWidth: number;
|
|
8
8
|
mode: ResponsiveMode | keyof typeof ResponsiveMode;
|
|
9
|
-
options:
|
|
9
|
+
options: ISourceOptions;
|
|
10
10
|
constructor();
|
|
11
11
|
load(data?: RecursivePartial<IResponsive>): void;
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { IOptionLoader } from "../../Interfaces/IOptionLoader.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ISourceOptions } from "../../../Types/ISourceOptions.js";
|
|
3
3
|
import type { ITheme } from "../../Interfaces/Theme/ITheme.js";
|
|
4
4
|
import type { RecursivePartial } from "../../../Types/RecursivePartial.js";
|
|
5
5
|
import { ThemeDefault } from "./ThemeDefault.js";
|
|
6
6
|
export declare class Theme implements ITheme, IOptionLoader<ITheme> {
|
|
7
7
|
readonly default: ThemeDefault;
|
|
8
8
|
name: string;
|
|
9
|
-
options?:
|
|
9
|
+
options?: ISourceOptions;
|
|
10
10
|
constructor();
|
|
11
11
|
load(data?: RecursivePartial<ITheme>): void;
|
|
12
12
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { RecursivePartial } from "../../Types/RecursivePartial.js";
|
|
1
|
+
import type { ISourceOptions } from "../../Types/ISourceOptions.js";
|
|
3
2
|
import type { ResponsiveMode } from "../../Enums/Modes/ResponsiveMode.js";
|
|
4
3
|
export interface IResponsive {
|
|
5
4
|
maxWidth: number;
|
|
6
5
|
mode: ResponsiveMode | keyof typeof ResponsiveMode;
|
|
7
|
-
options:
|
|
6
|
+
options: ISourceOptions;
|
|
8
7
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ISourceOptions } from "../../../Types/ISourceOptions.js";
|
|
2
2
|
import type { IThemeDefault } from "./IThemeDefault.js";
|
|
3
|
-
import type { RecursivePartial } from "../../../Types/RecursivePartial.js";
|
|
4
3
|
export interface ITheme {
|
|
5
4
|
default: IThemeDefault;
|
|
6
5
|
name: string;
|
|
7
|
-
options?:
|
|
6
|
+
options?: ISourceOptions;
|
|
8
7
|
}
|
|
@@ -11,7 +11,7 @@ export declare function drawLine(context: CanvasRenderingContext2D, begin: ICoor
|
|
|
11
11
|
export declare function paintBase(context: CanvasRenderingContext2D, dimension: IDimension, baseColor?: string): void;
|
|
12
12
|
export declare function paintImage(context: CanvasRenderingContext2D, dimension: IDimension, image: HTMLImageElement | undefined, opacity: number): void;
|
|
13
13
|
export declare function clear(context: CanvasRenderingContext2D, dimension: IDimension): void;
|
|
14
|
-
export declare function drawParticle(data: IDrawParticleParams):
|
|
14
|
+
export declare function drawParticle(data: IDrawParticleParams): void;
|
|
15
15
|
interface DrawShapeData {
|
|
16
16
|
container: Container;
|
|
17
17
|
context: CanvasRenderingContext2D;
|
|
@@ -27,10 +27,10 @@ interface DrawShapeData {
|
|
|
27
27
|
d: number;
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
export declare function drawEffect(data: DrawShapeData):
|
|
31
|
-
export declare function drawShape(data: DrawShapeData):
|
|
32
|
-
export declare function drawShapeAfterDraw(data: DrawShapeData):
|
|
33
|
-
export declare function drawPlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, delta: IDelta):
|
|
34
|
-
export declare function drawParticlePlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, particle: Particle, delta: IDelta):
|
|
30
|
+
export declare function drawEffect(data: DrawShapeData): void;
|
|
31
|
+
export declare function drawShape(data: DrawShapeData): void;
|
|
32
|
+
export declare function drawShapeAfterDraw(data: DrawShapeData): void;
|
|
33
|
+
export declare function drawPlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, delta: IDelta): void;
|
|
34
|
+
export declare function drawParticlePlugin(context: CanvasRenderingContext2D, plugin: IContainerPlugin, particle: Particle, delta: IDelta): void;
|
|
35
35
|
export declare function alterHsl(color: IHsl, type: AlterType, value: number): IHsl;
|
|
36
36
|
export {};
|
package/umd/Core/Canvas.js
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
class Canvas {
|
|
44
44
|
constructor(container) {
|
|
45
45
|
this.container = container;
|
|
46
|
-
this._applyPostDrawUpdaters =
|
|
46
|
+
this._applyPostDrawUpdaters = particle => {
|
|
47
47
|
for (const updater of this._postDrawUpdaters) {
|
|
48
48
|
updater.afterDraw?.(particle);
|
|
49
49
|
}
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
plugin.resize?.();
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
|
-
this._getPluginParticleColors =
|
|
76
|
+
this._getPluginParticleColors = particle => {
|
|
77
77
|
let fColor, sColor;
|
|
78
78
|
for (const plugin of this._colorPlugins) {
|
|
79
79
|
if (!fColor && plugin.particleFillColor) {
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
};
|
|
114
114
|
resolve();
|
|
115
115
|
});
|
|
116
|
-
img.addEventListener("error",
|
|
116
|
+
img.addEventListener("error", evt => {
|
|
117
117
|
reject(evt.error);
|
|
118
118
|
});
|
|
119
119
|
img.src = cover.image;
|
|
@@ -174,28 +174,33 @@
|
|
|
174
174
|
};
|
|
175
175
|
resolve();
|
|
176
176
|
});
|
|
177
|
-
img.addEventListener("error",
|
|
177
|
+
img.addEventListener("error", evt => {
|
|
178
178
|
reject(evt.error);
|
|
179
179
|
});
|
|
180
180
|
img.src = trailFill.image;
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
183
|
};
|
|
184
|
-
this._paintBase =
|
|
185
|
-
this.draw(
|
|
184
|
+
this._paintBase = baseColor => {
|
|
185
|
+
this.draw(ctx => (0, CanvasUtils_js_1.paintBase)(ctx, this.size, baseColor));
|
|
186
186
|
};
|
|
187
187
|
this._paintImage = (image, opacity) => {
|
|
188
|
-
this.draw(
|
|
188
|
+
this.draw(ctx => (0, CanvasUtils_js_1.paintImage)(ctx, this.size, image, opacity));
|
|
189
189
|
};
|
|
190
190
|
this._repairStyle = () => {
|
|
191
191
|
const element = this.element;
|
|
192
192
|
if (!element) {
|
|
193
193
|
return;
|
|
194
194
|
}
|
|
195
|
-
this._safeMutationObserver(
|
|
195
|
+
this._safeMutationObserver(observer => observer.disconnect());
|
|
196
196
|
this._initStyle();
|
|
197
197
|
this.initBackground();
|
|
198
|
-
this._safeMutationObserver(
|
|
198
|
+
this._safeMutationObserver(observer => {
|
|
199
|
+
if (!element || !(element instanceof Node)) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
observer.observe(element, { attributes: true });
|
|
203
|
+
});
|
|
199
204
|
};
|
|
200
205
|
this._resetOriginalStyle = () => {
|
|
201
206
|
const element = this.element, originalStyle = this._originalStyle;
|
|
@@ -204,7 +209,7 @@
|
|
|
204
209
|
}
|
|
205
210
|
setStyle(element, originalStyle);
|
|
206
211
|
};
|
|
207
|
-
this._safeMutationObserver =
|
|
212
|
+
this._safeMutationObserver = callback => {
|
|
208
213
|
if (!this._mutationObserver) {
|
|
209
214
|
return;
|
|
210
215
|
}
|
|
@@ -253,7 +258,7 @@
|
|
|
253
258
|
}
|
|
254
259
|
}
|
|
255
260
|
else if (options.clear) {
|
|
256
|
-
this.draw(
|
|
261
|
+
this.draw(ctx => {
|
|
257
262
|
(0, CanvasUtils_js_1.clear)(ctx, this.size);
|
|
258
263
|
});
|
|
259
264
|
}
|
|
@@ -282,11 +287,11 @@
|
|
|
282
287
|
drawAsync(cb) {
|
|
283
288
|
const ctx = this._context;
|
|
284
289
|
if (!ctx) {
|
|
285
|
-
return
|
|
290
|
+
return undefined;
|
|
286
291
|
}
|
|
287
292
|
return cb(ctx);
|
|
288
293
|
}
|
|
289
|
-
|
|
294
|
+
drawParticle(particle, delta) {
|
|
290
295
|
if (particle.spawning || particle.destroyed) {
|
|
291
296
|
return;
|
|
292
297
|
}
|
|
@@ -305,13 +310,13 @@
|
|
|
305
310
|
if (!fColor && !sColor) {
|
|
306
311
|
return;
|
|
307
312
|
}
|
|
308
|
-
|
|
313
|
+
this.draw((ctx) => {
|
|
309
314
|
const container = this.container, options = container.actualOptions, zIndexOptions = particle.options.zIndex, zIndexFactorOffset = 1, zIndexFactor = zIndexFactorOffset - particle.zIndexFactor, zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate, defaultOpacity = 1, opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity, strokeOpacity = particle.strokeOpacity ?? opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor, transform = {}, colorStyles = {
|
|
310
315
|
fill: fColor ? (0, ColorUtils_js_1.getStyleFromHsl)(fColor, zOpacity) : undefined,
|
|
311
316
|
};
|
|
312
317
|
colorStyles.stroke = sColor ? (0, ColorUtils_js_1.getStyleFromHsl)(sColor, zStrokeOpacity) : colorStyles.fill;
|
|
313
318
|
this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);
|
|
314
|
-
|
|
319
|
+
(0, CanvasUtils_js_1.drawParticle)({
|
|
315
320
|
container,
|
|
316
321
|
context: ctx,
|
|
317
322
|
particle,
|
|
@@ -327,15 +332,15 @@
|
|
|
327
332
|
this._applyPostDrawUpdaters(particle);
|
|
328
333
|
});
|
|
329
334
|
}
|
|
330
|
-
|
|
331
|
-
|
|
335
|
+
drawParticlePlugin(plugin, particle, delta) {
|
|
336
|
+
this.draw(ctx => (0, CanvasUtils_js_1.drawParticlePlugin)(ctx, plugin, particle, delta));
|
|
332
337
|
}
|
|
333
|
-
|
|
334
|
-
|
|
338
|
+
drawPlugin(plugin, delta) {
|
|
339
|
+
this.draw(ctx => (0, CanvasUtils_js_1.drawPlugin)(ctx, plugin, delta));
|
|
335
340
|
}
|
|
336
341
|
async init() {
|
|
337
|
-
this._safeMutationObserver(
|
|
338
|
-
this._mutationObserver = (0, Utils_js_1.safeMutationObserver)(
|
|
342
|
+
this._safeMutationObserver(obs => obs.disconnect());
|
|
343
|
+
this._mutationObserver = (0, Utils_js_1.safeMutationObserver)(records => {
|
|
339
344
|
for (const record of records) {
|
|
340
345
|
if (record.type === "attributes" && record.attributeName === "style") {
|
|
341
346
|
this._repairStyle();
|
|
@@ -352,8 +357,8 @@
|
|
|
352
357
|
(0, Utils_js_1.getLogger)().error(e);
|
|
353
358
|
}
|
|
354
359
|
this.initBackground();
|
|
355
|
-
this._safeMutationObserver(
|
|
356
|
-
if (!this.element) {
|
|
360
|
+
this._safeMutationObserver(obs => {
|
|
361
|
+
if (!this.element || !(this.element instanceof Node)) {
|
|
357
362
|
return;
|
|
358
363
|
}
|
|
359
364
|
obs.observe(this.element, { attributes: true });
|
|
@@ -420,8 +425,8 @@
|
|
|
420
425
|
this.size.height = canvas.offsetHeight;
|
|
421
426
|
this.size.width = canvas.offsetWidth;
|
|
422
427
|
this._context = this.element.getContext("2d");
|
|
423
|
-
this._safeMutationObserver(
|
|
424
|
-
if (!this.element) {
|
|
428
|
+
this._safeMutationObserver(obs => {
|
|
429
|
+
if (!this.element || !(this.element instanceof Node)) {
|
|
425
430
|
return;
|
|
426
431
|
}
|
|
427
432
|
obs.observe(this.element, { attributes: true });
|
|
@@ -431,7 +436,7 @@
|
|
|
431
436
|
}
|
|
432
437
|
paint() {
|
|
433
438
|
const options = this.container.actualOptions;
|
|
434
|
-
this.draw(
|
|
439
|
+
this.draw(ctx => {
|
|
435
440
|
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
436
441
|
(0, CanvasUtils_js_1.clear)(ctx, this.size);
|
|
437
442
|
if (this._coverImage) {
|
|
@@ -475,16 +480,16 @@
|
|
|
475
480
|
return true;
|
|
476
481
|
}
|
|
477
482
|
stop() {
|
|
478
|
-
this._safeMutationObserver(
|
|
483
|
+
this._safeMutationObserver(obs => obs.disconnect());
|
|
479
484
|
this._mutationObserver = undefined;
|
|
480
|
-
this.draw(
|
|
485
|
+
this.draw(ctx => (0, CanvasUtils_js_1.clear)(ctx, this.size));
|
|
481
486
|
}
|
|
482
487
|
async windowResize() {
|
|
483
488
|
if (!this.element || !this.resize()) {
|
|
484
489
|
return;
|
|
485
490
|
}
|
|
486
491
|
const container = this.container, needsRefresh = container.updateActualOptions();
|
|
487
|
-
|
|
492
|
+
container.particles.setDensity();
|
|
488
493
|
this._applyResizePlugins();
|
|
489
494
|
if (needsRefresh) {
|
|
490
495
|
await container.refresh();
|