@tsparticles/engine 3.3.0 → 3.5.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 +27 -22
- package/browser/Core/Container.js +57 -44
- package/browser/Core/Engine.js +82 -74
- package/browser/Core/Particle.js +29 -15
- package/browser/Core/Particles.js +23 -24
- package/browser/Core/Utils/EventListeners.js +18 -17
- package/browser/Core/Utils/ExternalInteractorBase.js +2 -1
- package/browser/Core/Utils/InteractionManager.js +3 -2
- 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 +13 -7
- 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 +28 -14
- package/browser/Utils/RgbColorManager.js +11 -4
- package/browser/Utils/Utils.js +37 -31
- package/cjs/Core/Canvas.js +27 -22
- package/cjs/Core/Container.js +57 -44
- package/cjs/Core/Engine.js +82 -74
- package/cjs/Core/Particle.js +29 -15
- package/cjs/Core/Particles.js +23 -24
- package/cjs/Core/Utils/EventListeners.js +18 -17
- package/cjs/Core/Utils/ExternalInteractorBase.js +2 -1
- package/cjs/Core/Utils/InteractionManager.js +3 -2
- 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 +24 -19
- package/cjs/Utils/ColorUtils.js +37 -30
- package/cjs/Utils/EventDispatcher.js +1 -1
- package/cjs/Utils/HslColorManager.js +11 -4
- package/cjs/Utils/NumberUtils.js +54 -38
- package/cjs/Utils/OptionsUtils.js +2 -3
- package/cjs/Utils/RgbColorManager.js +11 -4
- package/cjs/Utils/TypeUtils.js +6 -7
- package/cjs/Utils/Utils.js +66 -61
- package/cjs/init.js +1 -2
- package/esm/Core/Canvas.js +27 -22
- package/esm/Core/Container.js +57 -44
- package/esm/Core/Engine.js +82 -74
- package/esm/Core/Particle.js +29 -15
- package/esm/Core/Particles.js +23 -24
- package/esm/Core/Utils/EventListeners.js +18 -17
- package/esm/Core/Utils/ExternalInteractorBase.js +2 -1
- package/esm/Core/Utils/InteractionManager.js +3 -2
- 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 +13 -7
- 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 +28 -14
- 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/Container.d.ts +4 -2
- package/types/Core/Engine.d.ts +6 -5
- package/types/Core/Interfaces/IPlugin.d.ts +3 -4
- package/types/Core/Interfaces/IShapeDrawer.d.ts +1 -0
- package/types/Core/Particle.d.ts +1 -0
- 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/NumberUtils.d.ts +3 -0
- package/umd/Core/Canvas.js +27 -22
- package/umd/Core/Container.js +58 -45
- package/umd/Core/Engine.js +83 -99
- package/umd/Core/Particle.js +30 -16
- package/umd/Core/Particles.js +24 -25
- package/umd/Core/Utils/EventListeners.js +19 -18
- package/umd/Core/Utils/ExternalInteractorBase.js +3 -2
- package/umd/Core/Utils/InteractionManager.js +4 -3
- 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 +25 -20
- package/umd/Utils/ColorUtils.js +38 -31
- package/umd/Utils/EventDispatcher.js +1 -1
- package/umd/Utils/HslColorManager.js +11 -4
- package/umd/Utils/NumberUtils.js +55 -39
- package/umd/Utils/OptionsUtils.js +2 -3
- package/umd/Utils/RgbColorManager.js +11 -4
- package/umd/Utils/TypeUtils.js +6 -7
- package/umd/Utils/Utils.js +67 -62
- package/umd/init.js +1 -2
- package/174.min.js +0 -2
- package/174.min.js.LICENSE.txt +0 -1
- package/dist_browser_Core_Container_js.js +0 -102
|
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HslColorManager = void 0;
|
|
4
4
|
const NumberUtils_js_1 = require("./NumberUtils.js");
|
|
5
5
|
const ColorUtils_js_1 = require("./ColorUtils.js");
|
|
6
|
+
var HslIndexes;
|
|
7
|
+
(function (HslIndexes) {
|
|
8
|
+
HslIndexes[HslIndexes["h"] = 1] = "h";
|
|
9
|
+
HslIndexes[HslIndexes["s"] = 2] = "s";
|
|
10
|
+
HslIndexes[HslIndexes["l"] = 3] = "l";
|
|
11
|
+
HslIndexes[HslIndexes["a"] = 5] = "a";
|
|
12
|
+
})(HslIndexes || (HslIndexes = {}));
|
|
6
13
|
class HslColorManager {
|
|
7
14
|
constructor() {
|
|
8
15
|
this.key = "hsl";
|
|
@@ -31,10 +38,10 @@ class HslColorManager {
|
|
|
31
38
|
const regex = /hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i, result = regex.exec(input), minLength = 4, defaultAlpha = 1, radix = 10;
|
|
32
39
|
return result
|
|
33
40
|
? (0, ColorUtils_js_1.hslaToRgba)({
|
|
34
|
-
a: result.length > minLength ? (0, NumberUtils_js_1.parseAlpha)(result[
|
|
35
|
-
h: parseInt(result[
|
|
36
|
-
l: parseInt(result[
|
|
37
|
-
s: parseInt(result[
|
|
41
|
+
a: result.length > minLength ? (0, NumberUtils_js_1.parseAlpha)(result[HslIndexes.a]) : defaultAlpha,
|
|
42
|
+
h: parseInt(result[HslIndexes.h], radix),
|
|
43
|
+
l: parseInt(result[HslIndexes.l], radix),
|
|
44
|
+
s: parseInt(result[HslIndexes.s], radix),
|
|
38
45
|
})
|
|
39
46
|
: undefined;
|
|
40
47
|
}
|
package/cjs/Utils/NumberUtils.js
CHANGED
|
@@ -1,39 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.addEasing = addEasing;
|
|
4
|
+
exports.getEasing = getEasing;
|
|
5
|
+
exports.setRandom = setRandom;
|
|
6
|
+
exports.getRandom = getRandom;
|
|
7
|
+
exports.setAnimationFunctions = setAnimationFunctions;
|
|
8
|
+
exports.animate = animate;
|
|
9
|
+
exports.cancelAnimation = cancelAnimation;
|
|
10
|
+
exports.clamp = clamp;
|
|
11
|
+
exports.mix = mix;
|
|
12
|
+
exports.randomInRange = randomInRange;
|
|
13
|
+
exports.getRangeValue = getRangeValue;
|
|
14
|
+
exports.getRangeMin = getRangeMin;
|
|
15
|
+
exports.getRangeMax = getRangeMax;
|
|
16
|
+
exports.setRangeValue = setRangeValue;
|
|
17
|
+
exports.getDistances = getDistances;
|
|
18
|
+
exports.getDistance = getDistance;
|
|
19
|
+
exports.degToRad = degToRad;
|
|
20
|
+
exports.getParticleDirectionAngle = getParticleDirectionAngle;
|
|
21
|
+
exports.getParticleBaseVelocity = getParticleBaseVelocity;
|
|
22
|
+
exports.collisionVelocity = collisionVelocity;
|
|
23
|
+
exports.calcPositionFromSize = calcPositionFromSize;
|
|
24
|
+
exports.calcPositionOrRandomFromSize = calcPositionOrRandomFromSize;
|
|
25
|
+
exports.calcPositionOrRandomFromSizeRanged = calcPositionOrRandomFromSizeRanged;
|
|
26
|
+
exports.calcExactPositionOrRandomFromSize = calcExactPositionOrRandomFromSize;
|
|
27
|
+
exports.calcExactPositionOrRandomFromSizeRanged = calcExactPositionOrRandomFromSizeRanged;
|
|
28
|
+
exports.parseAlpha = parseAlpha;
|
|
29
|
+
const MoveDirection_js_1 = require("../Enums/Directions/MoveDirection.js");
|
|
4
30
|
const Vectors_js_1 = require("../Core/Utils/Vectors.js");
|
|
5
31
|
const TypeUtils_js_1 = require("./TypeUtils.js");
|
|
6
32
|
const Constants_js_1 = require("../Core/Utils/Constants.js");
|
|
7
33
|
let _random = Math.random;
|
|
8
|
-
const
|
|
34
|
+
const _animationLoop = {
|
|
35
|
+
nextFrame: (cb) => requestAnimationFrame(cb),
|
|
36
|
+
cancel: (idx) => cancelAnimationFrame(idx),
|
|
37
|
+
}, easingFunctions = new Map(), double = 2, doublePI = Math.PI * double;
|
|
9
38
|
function addEasing(name, easing) {
|
|
10
|
-
if (
|
|
39
|
+
if (easingFunctions.get(name)) {
|
|
11
40
|
return;
|
|
12
41
|
}
|
|
13
|
-
|
|
42
|
+
easingFunctions.set(name, easing);
|
|
14
43
|
}
|
|
15
|
-
exports.addEasing = addEasing;
|
|
16
44
|
function getEasing(name) {
|
|
17
|
-
return
|
|
45
|
+
return easingFunctions.get(name) ?? ((value) => value);
|
|
18
46
|
}
|
|
19
|
-
exports.getEasing = getEasing;
|
|
20
47
|
function setRandom(rnd = Math.random) {
|
|
21
48
|
_random = rnd;
|
|
22
49
|
}
|
|
23
|
-
exports.setRandom = setRandom;
|
|
24
50
|
function getRandom() {
|
|
25
51
|
const min = 0, max = 1;
|
|
26
52
|
return clamp(_random(), min, max - Number.EPSILON);
|
|
27
53
|
}
|
|
28
|
-
|
|
54
|
+
function setAnimationFunctions(nextFrame, cancel) {
|
|
55
|
+
_animationLoop.nextFrame = (callback) => nextFrame(callback);
|
|
56
|
+
_animationLoop.cancel = (handle) => cancel(handle);
|
|
57
|
+
}
|
|
58
|
+
function animate(fn) {
|
|
59
|
+
return _animationLoop.nextFrame(fn);
|
|
60
|
+
}
|
|
61
|
+
function cancelAnimation(handle) {
|
|
62
|
+
_animationLoop.cancel(handle);
|
|
63
|
+
}
|
|
29
64
|
function clamp(num, min, max) {
|
|
30
65
|
return Math.min(Math.max(num, min), max);
|
|
31
66
|
}
|
|
32
|
-
exports.clamp = clamp;
|
|
33
67
|
function mix(comp1, comp2, weight1, weight2) {
|
|
34
68
|
return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));
|
|
35
69
|
}
|
|
36
|
-
exports.mix = mix;
|
|
37
70
|
function randomInRange(r) {
|
|
38
71
|
const max = getRangeMax(r), minOffset = 0;
|
|
39
72
|
let min = getRangeMin(r);
|
|
@@ -42,19 +75,15 @@ function randomInRange(r) {
|
|
|
42
75
|
}
|
|
43
76
|
return getRandom() * (max - min) + min;
|
|
44
77
|
}
|
|
45
|
-
exports.randomInRange = randomInRange;
|
|
46
78
|
function getRangeValue(value) {
|
|
47
79
|
return (0, TypeUtils_js_1.isNumber)(value) ? value : randomInRange(value);
|
|
48
80
|
}
|
|
49
|
-
exports.getRangeValue = getRangeValue;
|
|
50
81
|
function getRangeMin(value) {
|
|
51
82
|
return (0, TypeUtils_js_1.isNumber)(value) ? value : value.min;
|
|
52
83
|
}
|
|
53
|
-
exports.getRangeMin = getRangeMin;
|
|
54
84
|
function getRangeMax(value) {
|
|
55
85
|
return (0, TypeUtils_js_1.isNumber)(value) ? value : value.max;
|
|
56
86
|
}
|
|
57
|
-
exports.getRangeMax = getRangeMax;
|
|
58
87
|
function setRangeValue(source, value) {
|
|
59
88
|
if (source === value || (value === undefined && (0, TypeUtils_js_1.isNumber)(source))) {
|
|
60
89
|
return source;
|
|
@@ -67,64 +96,57 @@ function setRangeValue(source, value) {
|
|
|
67
96
|
}
|
|
68
97
|
: setRangeValue(min, max);
|
|
69
98
|
}
|
|
70
|
-
exports.setRangeValue = setRangeValue;
|
|
71
99
|
function getDistances(pointA, pointB) {
|
|
72
100
|
const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y, squareExp = 2;
|
|
73
101
|
return { dx: dx, dy: dy, distance: Math.sqrt(dx ** squareExp + dy ** squareExp) };
|
|
74
102
|
}
|
|
75
|
-
exports.getDistances = getDistances;
|
|
76
103
|
function getDistance(pointA, pointB) {
|
|
77
104
|
return getDistances(pointA, pointB).distance;
|
|
78
105
|
}
|
|
79
|
-
exports.getDistance = getDistance;
|
|
80
106
|
function degToRad(degrees) {
|
|
81
107
|
const PIDeg = 180;
|
|
82
108
|
return (degrees * Math.PI) / PIDeg;
|
|
83
109
|
}
|
|
84
|
-
exports.degToRad = degToRad;
|
|
85
110
|
function getParticleDirectionAngle(direction, position, center) {
|
|
86
111
|
if ((0, TypeUtils_js_1.isNumber)(direction)) {
|
|
87
112
|
return degToRad(direction);
|
|
88
113
|
}
|
|
89
114
|
const empty = 0, half = 0.5, quarter = 0.25, threeQuarter = half + quarter;
|
|
90
115
|
switch (direction) {
|
|
91
|
-
case
|
|
116
|
+
case MoveDirection_js_1.MoveDirection.top:
|
|
92
117
|
return -Math.PI * half;
|
|
93
|
-
case
|
|
118
|
+
case MoveDirection_js_1.MoveDirection.topRight:
|
|
94
119
|
return -Math.PI * quarter;
|
|
95
|
-
case
|
|
120
|
+
case MoveDirection_js_1.MoveDirection.right:
|
|
96
121
|
return empty;
|
|
97
|
-
case
|
|
122
|
+
case MoveDirection_js_1.MoveDirection.bottomRight:
|
|
98
123
|
return Math.PI * quarter;
|
|
99
|
-
case
|
|
124
|
+
case MoveDirection_js_1.MoveDirection.bottom:
|
|
100
125
|
return Math.PI * half;
|
|
101
|
-
case
|
|
126
|
+
case MoveDirection_js_1.MoveDirection.bottomLeft:
|
|
102
127
|
return Math.PI * threeQuarter;
|
|
103
|
-
case
|
|
128
|
+
case MoveDirection_js_1.MoveDirection.left:
|
|
104
129
|
return Math.PI;
|
|
105
|
-
case
|
|
130
|
+
case MoveDirection_js_1.MoveDirection.topLeft:
|
|
106
131
|
return -Math.PI * threeQuarter;
|
|
107
|
-
case
|
|
132
|
+
case MoveDirection_js_1.MoveDirection.inside:
|
|
108
133
|
return Math.atan2(center.y - position.y, center.x - position.x);
|
|
109
|
-
case
|
|
134
|
+
case MoveDirection_js_1.MoveDirection.outside:
|
|
110
135
|
return Math.atan2(position.y - center.y, position.x - center.x);
|
|
111
136
|
default:
|
|
112
137
|
return getRandom() * doublePI;
|
|
113
138
|
}
|
|
114
139
|
}
|
|
115
|
-
exports.getParticleDirectionAngle = getParticleDirectionAngle;
|
|
116
140
|
function getParticleBaseVelocity(direction) {
|
|
117
141
|
const baseVelocity = Vectors_js_1.Vector.origin;
|
|
118
142
|
baseVelocity.length = 1;
|
|
119
143
|
baseVelocity.angle = direction;
|
|
120
144
|
return baseVelocity;
|
|
121
145
|
}
|
|
122
|
-
exports.getParticleBaseVelocity = getParticleBaseVelocity;
|
|
123
146
|
function collisionVelocity(v1, v2, m1, m2) {
|
|
124
147
|
const double = 2;
|
|
125
148
|
return Vectors_js_1.Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * double * m2) / (m1 + m2), v1.y);
|
|
126
149
|
}
|
|
127
|
-
exports.collisionVelocity = collisionVelocity;
|
|
128
150
|
function calcPositionFromSize(data) {
|
|
129
151
|
return data.position?.x !== undefined && data.position.y !== undefined
|
|
130
152
|
? {
|
|
@@ -133,14 +155,12 @@ function calcPositionFromSize(data) {
|
|
|
133
155
|
}
|
|
134
156
|
: undefined;
|
|
135
157
|
}
|
|
136
|
-
exports.calcPositionFromSize = calcPositionFromSize;
|
|
137
158
|
function calcPositionOrRandomFromSize(data) {
|
|
138
159
|
return {
|
|
139
160
|
x: ((data.position?.x ?? getRandom() * Constants_js_1.percentDenominator) * data.size.width) / Constants_js_1.percentDenominator,
|
|
140
161
|
y: ((data.position?.y ?? getRandom() * Constants_js_1.percentDenominator) * data.size.height) / Constants_js_1.percentDenominator,
|
|
141
162
|
};
|
|
142
163
|
}
|
|
143
|
-
exports.calcPositionOrRandomFromSize = calcPositionOrRandomFromSize;
|
|
144
164
|
function calcPositionOrRandomFromSizeRanged(data) {
|
|
145
165
|
const position = {
|
|
146
166
|
x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
|
|
@@ -148,14 +168,12 @@ function calcPositionOrRandomFromSizeRanged(data) {
|
|
|
148
168
|
};
|
|
149
169
|
return calcPositionOrRandomFromSize({ size: data.size, position });
|
|
150
170
|
}
|
|
151
|
-
exports.calcPositionOrRandomFromSizeRanged = calcPositionOrRandomFromSizeRanged;
|
|
152
171
|
function calcExactPositionOrRandomFromSize(data) {
|
|
153
172
|
return {
|
|
154
173
|
x: data.position?.x ?? getRandom() * data.size.width,
|
|
155
174
|
y: data.position?.y ?? getRandom() * data.size.height,
|
|
156
175
|
};
|
|
157
176
|
}
|
|
158
|
-
exports.calcExactPositionOrRandomFromSize = calcExactPositionOrRandomFromSize;
|
|
159
177
|
function calcExactPositionOrRandomFromSizeRanged(data) {
|
|
160
178
|
const position = {
|
|
161
179
|
x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,
|
|
@@ -163,7 +181,6 @@ function calcExactPositionOrRandomFromSizeRanged(data) {
|
|
|
163
181
|
};
|
|
164
182
|
return calcExactPositionOrRandomFromSize({ size: data.size, position });
|
|
165
183
|
}
|
|
166
|
-
exports.calcExactPositionOrRandomFromSizeRanged = calcExactPositionOrRandomFromSizeRanged;
|
|
167
184
|
function parseAlpha(input) {
|
|
168
185
|
const defaultAlpha = 1;
|
|
169
186
|
if (!input) {
|
|
@@ -171,4 +188,3 @@ function parseAlpha(input) {
|
|
|
171
188
|
}
|
|
172
189
|
return input.endsWith("%") ? parseFloat(input) / Constants_js_1.percentDenominator : parseFloat(input);
|
|
173
190
|
}
|
|
174
|
-
exports.parseAlpha = parseAlpha;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.loadOptions = loadOptions;
|
|
4
|
+
exports.loadParticlesOptions = loadParticlesOptions;
|
|
4
5
|
const ParticlesOptions_js_1 = require("../Options/Classes/Particles/ParticlesOptions.js");
|
|
5
6
|
function loadOptions(options, ...sourceOptionsArr) {
|
|
6
7
|
for (const sourceOptions of sourceOptionsArr) {
|
|
7
8
|
options.load(sourceOptions);
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
|
-
exports.loadOptions = loadOptions;
|
|
11
11
|
function loadParticlesOptions(engine, container, ...sourceOptionsArr) {
|
|
12
12
|
const options = new ParticlesOptions_js_1.ParticlesOptions(engine, container);
|
|
13
13
|
loadOptions(options, ...sourceOptionsArr);
|
|
14
14
|
return options;
|
|
15
15
|
}
|
|
16
|
-
exports.loadParticlesOptions = loadParticlesOptions;
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RgbColorManager = void 0;
|
|
4
4
|
const NumberUtils_js_1 = require("./NumberUtils.js");
|
|
5
|
+
var RgbIndexes;
|
|
6
|
+
(function (RgbIndexes) {
|
|
7
|
+
RgbIndexes[RgbIndexes["r"] = 1] = "r";
|
|
8
|
+
RgbIndexes[RgbIndexes["g"] = 2] = "g";
|
|
9
|
+
RgbIndexes[RgbIndexes["b"] = 3] = "b";
|
|
10
|
+
RgbIndexes[RgbIndexes["a"] = 5] = "a";
|
|
11
|
+
})(RgbIndexes || (RgbIndexes = {}));
|
|
5
12
|
class RgbColorManager {
|
|
6
13
|
constructor() {
|
|
7
14
|
this.key = "rgb";
|
|
@@ -30,10 +37,10 @@ class RgbColorManager {
|
|
|
30
37
|
const regex = /rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i, result = regex.exec(input), radix = 10, minLength = 4, defaultAlpha = 1;
|
|
31
38
|
return result
|
|
32
39
|
? {
|
|
33
|
-
a: result.length > minLength ? (0, NumberUtils_js_1.parseAlpha)(result[
|
|
34
|
-
b: parseInt(result[
|
|
35
|
-
g: parseInt(result[
|
|
36
|
-
r: parseInt(result[
|
|
40
|
+
a: result.length > minLength ? (0, NumberUtils_js_1.parseAlpha)(result[RgbIndexes.a]) : defaultAlpha,
|
|
41
|
+
b: parseInt(result[RgbIndexes.b], radix),
|
|
42
|
+
g: parseInt(result[RgbIndexes.g], radix),
|
|
43
|
+
r: parseInt(result[RgbIndexes.r], radix),
|
|
37
44
|
}
|
|
38
45
|
: undefined;
|
|
39
46
|
}
|
package/cjs/Utils/TypeUtils.js
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isBoolean = isBoolean;
|
|
4
|
+
exports.isString = isString;
|
|
5
|
+
exports.isNumber = isNumber;
|
|
6
|
+
exports.isFunction = isFunction;
|
|
7
|
+
exports.isObject = isObject;
|
|
8
|
+
exports.isArray = isArray;
|
|
4
9
|
function isBoolean(arg) {
|
|
5
10
|
return typeof arg === "boolean";
|
|
6
11
|
}
|
|
7
|
-
exports.isBoolean = isBoolean;
|
|
8
12
|
function isString(arg) {
|
|
9
13
|
return typeof arg === "string";
|
|
10
14
|
}
|
|
11
|
-
exports.isString = isString;
|
|
12
15
|
function isNumber(arg) {
|
|
13
16
|
return typeof arg === "number";
|
|
14
17
|
}
|
|
15
|
-
exports.isNumber = isNumber;
|
|
16
18
|
function isFunction(arg) {
|
|
17
19
|
return typeof arg === "function";
|
|
18
20
|
}
|
|
19
|
-
exports.isFunction = isFunction;
|
|
20
21
|
function isObject(arg) {
|
|
21
22
|
return typeof arg === "object" && arg !== null;
|
|
22
23
|
}
|
|
23
|
-
exports.isObject = isObject;
|
|
24
24
|
function isArray(arg) {
|
|
25
25
|
return Array.isArray(arg);
|
|
26
26
|
}
|
|
27
|
-
exports.isArray = isArray;
|