@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
package/cjs/Utils/Utils.js
CHANGED
|
@@ -1,9 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.setLogger = setLogger;
|
|
4
|
+
exports.getLogger = getLogger;
|
|
5
|
+
exports.isSsr = isSsr;
|
|
6
|
+
exports.hasMatchMedia = hasMatchMedia;
|
|
7
|
+
exports.safeMatchMedia = safeMatchMedia;
|
|
8
|
+
exports.safeIntersectionObserver = safeIntersectionObserver;
|
|
9
|
+
exports.safeMutationObserver = safeMutationObserver;
|
|
10
|
+
exports.isInArray = isInArray;
|
|
11
|
+
exports.loadFont = loadFont;
|
|
12
|
+
exports.arrayRandomIndex = arrayRandomIndex;
|
|
13
|
+
exports.itemFromArray = itemFromArray;
|
|
14
|
+
exports.isPointInside = isPointInside;
|
|
15
|
+
exports.areBoundsInside = areBoundsInside;
|
|
16
|
+
exports.calculateBounds = calculateBounds;
|
|
17
|
+
exports.deepExtend = deepExtend;
|
|
18
|
+
exports.isDivModeEnabled = isDivModeEnabled;
|
|
19
|
+
exports.divModeExecute = divModeExecute;
|
|
20
|
+
exports.singleDivModeExecute = singleDivModeExecute;
|
|
21
|
+
exports.divMode = divMode;
|
|
22
|
+
exports.circleBounceDataFromParticle = circleBounceDataFromParticle;
|
|
23
|
+
exports.circleBounce = circleBounce;
|
|
24
|
+
exports.rectBounce = rectBounce;
|
|
25
|
+
exports.executeOnSingleOrMultiple = executeOnSingleOrMultiple;
|
|
26
|
+
exports.itemFromSingleOrMultiple = itemFromSingleOrMultiple;
|
|
27
|
+
exports.findItemFromSingleOrMultiple = findItemFromSingleOrMultiple;
|
|
28
|
+
exports.initParticleNumericAnimationValue = initParticleNumericAnimationValue;
|
|
29
|
+
exports.getPosition = getPosition;
|
|
30
|
+
exports.getSize = getSize;
|
|
31
|
+
exports.updateAnimation = updateAnimation;
|
|
4
32
|
const NumberUtils_js_1 = require("./NumberUtils.js");
|
|
5
33
|
const Constants_js_1 = require("../Core/Utils/Constants.js");
|
|
6
34
|
const TypeUtils_js_1 = require("./TypeUtils.js");
|
|
35
|
+
const AnimationMode_js_1 = require("../Enums/Modes/AnimationMode.js");
|
|
36
|
+
const AnimationStatus_js_1 = require("../Enums/AnimationStatus.js");
|
|
37
|
+
const DestroyType_js_1 = require("../Enums/Types/DestroyType.js");
|
|
38
|
+
const OutModeDirection_js_1 = require("../Enums/Directions/OutModeDirection.js");
|
|
39
|
+
const PixelMode_js_1 = require("../Enums/Modes/PixelMode.js");
|
|
40
|
+
const StartValueType_js_1 = require("../Enums/Types/StartValueType.js");
|
|
7
41
|
const Vectors_js_1 = require("../Core/Utils/Vectors.js");
|
|
8
42
|
const _logger = {
|
|
9
43
|
debug: console.debug,
|
|
@@ -21,11 +55,9 @@ function setLogger(logger) {
|
|
|
21
55
|
_logger.verbose = logger.verbose || _logger.verbose;
|
|
22
56
|
_logger.warning = logger.warning || _logger.warning;
|
|
23
57
|
}
|
|
24
|
-
exports.setLogger = setLogger;
|
|
25
58
|
function getLogger() {
|
|
26
59
|
return _logger;
|
|
27
60
|
}
|
|
28
|
-
exports.getLogger = getLogger;
|
|
29
61
|
function rectSideBounce(data) {
|
|
30
62
|
const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data, half = 0.5, minVelocity = 0;
|
|
31
63
|
if (pOtherSide.min < rectOtherSide.min ||
|
|
@@ -42,45 +74,39 @@ function rectSideBounce(data) {
|
|
|
42
74
|
return res;
|
|
43
75
|
}
|
|
44
76
|
function checkSelector(element, selectors) {
|
|
45
|
-
const res = executeOnSingleOrMultiple(selectors,
|
|
77
|
+
const res = executeOnSingleOrMultiple(selectors, selector => {
|
|
46
78
|
return element.matches(selector);
|
|
47
79
|
});
|
|
48
|
-
return (0, TypeUtils_js_1.isArray)(res) ? res.some(
|
|
80
|
+
return (0, TypeUtils_js_1.isArray)(res) ? res.some(t => t) : res;
|
|
49
81
|
}
|
|
50
82
|
function isSsr() {
|
|
51
83
|
return typeof window === "undefined" || !window || typeof window.document === "undefined" || !window.document;
|
|
52
84
|
}
|
|
53
|
-
exports.isSsr = isSsr;
|
|
54
85
|
function hasMatchMedia() {
|
|
55
86
|
return !isSsr() && typeof matchMedia !== "undefined";
|
|
56
87
|
}
|
|
57
|
-
exports.hasMatchMedia = hasMatchMedia;
|
|
58
88
|
function safeMatchMedia(query) {
|
|
59
89
|
if (!hasMatchMedia()) {
|
|
60
90
|
return;
|
|
61
91
|
}
|
|
62
92
|
return matchMedia(query);
|
|
63
93
|
}
|
|
64
|
-
exports.safeMatchMedia = safeMatchMedia;
|
|
65
94
|
function safeIntersectionObserver(callback) {
|
|
66
95
|
if (isSsr() || typeof IntersectionObserver === "undefined") {
|
|
67
96
|
return;
|
|
68
97
|
}
|
|
69
98
|
return new IntersectionObserver(callback);
|
|
70
99
|
}
|
|
71
|
-
exports.safeIntersectionObserver = safeIntersectionObserver;
|
|
72
100
|
function safeMutationObserver(callback) {
|
|
73
101
|
if (isSsr() || typeof MutationObserver === "undefined") {
|
|
74
102
|
return;
|
|
75
103
|
}
|
|
76
104
|
return new MutationObserver(callback);
|
|
77
105
|
}
|
|
78
|
-
exports.safeMutationObserver = safeMutationObserver;
|
|
79
106
|
function isInArray(value, array) {
|
|
80
107
|
const invalidIndex = -1;
|
|
81
108
|
return value === array || ((0, TypeUtils_js_1.isArray)(array) && array.indexOf(value) > invalidIndex);
|
|
82
109
|
}
|
|
83
|
-
exports.isInArray = isInArray;
|
|
84
110
|
async function loadFont(font, weight) {
|
|
85
111
|
try {
|
|
86
112
|
await document.fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`);
|
|
@@ -88,37 +114,32 @@ async function loadFont(font, weight) {
|
|
|
88
114
|
catch {
|
|
89
115
|
}
|
|
90
116
|
}
|
|
91
|
-
exports.loadFont = loadFont;
|
|
92
117
|
function arrayRandomIndex(array) {
|
|
93
118
|
return Math.floor((0, NumberUtils_js_1.getRandom)() * array.length);
|
|
94
119
|
}
|
|
95
|
-
exports.arrayRandomIndex = arrayRandomIndex;
|
|
96
120
|
function itemFromArray(array, index, useIndex = true) {
|
|
97
121
|
return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];
|
|
98
122
|
}
|
|
99
|
-
exports.itemFromArray = itemFromArray;
|
|
100
123
|
function isPointInside(point, size, offset, radius, direction) {
|
|
101
124
|
const minRadius = 0;
|
|
102
125
|
return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);
|
|
103
126
|
}
|
|
104
|
-
exports.isPointInside = isPointInside;
|
|
105
127
|
function areBoundsInside(bounds, size, offset, direction) {
|
|
106
128
|
let inside = true;
|
|
107
|
-
if (!direction || direction ===
|
|
129
|
+
if (!direction || direction === OutModeDirection_js_1.OutModeDirection.bottom) {
|
|
108
130
|
inside = bounds.top < size.height + offset.x;
|
|
109
131
|
}
|
|
110
|
-
if (inside && (!direction || direction ===
|
|
132
|
+
if (inside && (!direction || direction === OutModeDirection_js_1.OutModeDirection.left)) {
|
|
111
133
|
inside = bounds.right > offset.x;
|
|
112
134
|
}
|
|
113
|
-
if (inside && (!direction || direction ===
|
|
135
|
+
if (inside && (!direction || direction === OutModeDirection_js_1.OutModeDirection.right)) {
|
|
114
136
|
inside = bounds.left < size.width + offset.y;
|
|
115
137
|
}
|
|
116
|
-
if (inside && (!direction || direction ===
|
|
138
|
+
if (inside && (!direction || direction === OutModeDirection_js_1.OutModeDirection.top)) {
|
|
117
139
|
inside = bounds.bottom > offset.y;
|
|
118
140
|
}
|
|
119
141
|
return inside;
|
|
120
142
|
}
|
|
121
|
-
exports.areBoundsInside = areBoundsInside;
|
|
122
143
|
function calculateBounds(point, radius) {
|
|
123
144
|
return {
|
|
124
145
|
bottom: point.y + radius,
|
|
@@ -127,7 +148,6 @@ function calculateBounds(point, radius) {
|
|
|
127
148
|
top: point.y - radius,
|
|
128
149
|
};
|
|
129
150
|
}
|
|
130
|
-
exports.calculateBounds = calculateBounds;
|
|
131
151
|
function deepExtend(destination, ...sources) {
|
|
132
152
|
for (const source of sources) {
|
|
133
153
|
if (source === undefined || source === null) {
|
|
@@ -151,42 +171,37 @@ function deepExtend(destination, ...sources) {
|
|
|
151
171
|
const sourceDict = source, value = sourceDict[key], destDict = destination;
|
|
152
172
|
destDict[key] =
|
|
153
173
|
(0, TypeUtils_js_1.isObject)(value) && Array.isArray(value)
|
|
154
|
-
? value.map(
|
|
174
|
+
? value.map(v => deepExtend(destDict[key], v))
|
|
155
175
|
: deepExtend(destDict[key], value);
|
|
156
176
|
}
|
|
157
177
|
}
|
|
158
178
|
return destination;
|
|
159
179
|
}
|
|
160
|
-
exports.deepExtend = deepExtend;
|
|
161
180
|
function isDivModeEnabled(mode, divs) {
|
|
162
|
-
return !!findItemFromSingleOrMultiple(divs,
|
|
181
|
+
return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));
|
|
163
182
|
}
|
|
164
|
-
exports.isDivModeEnabled = isDivModeEnabled;
|
|
165
183
|
function divModeExecute(mode, divs, callback) {
|
|
166
|
-
executeOnSingleOrMultiple(divs,
|
|
184
|
+
executeOnSingleOrMultiple(divs, div => {
|
|
167
185
|
const divMode = div.mode, divEnabled = div.enable;
|
|
168
186
|
if (divEnabled && isInArray(mode, divMode)) {
|
|
169
187
|
singleDivModeExecute(div, callback);
|
|
170
188
|
}
|
|
171
189
|
});
|
|
172
190
|
}
|
|
173
|
-
exports.divModeExecute = divModeExecute;
|
|
174
191
|
function singleDivModeExecute(div, callback) {
|
|
175
192
|
const selectors = div.selectors;
|
|
176
|
-
executeOnSingleOrMultiple(selectors,
|
|
193
|
+
executeOnSingleOrMultiple(selectors, selector => {
|
|
177
194
|
callback(selector, div);
|
|
178
195
|
});
|
|
179
196
|
}
|
|
180
|
-
exports.singleDivModeExecute = singleDivModeExecute;
|
|
181
197
|
function divMode(divs, element) {
|
|
182
198
|
if (!element || !divs) {
|
|
183
199
|
return;
|
|
184
200
|
}
|
|
185
|
-
return findItemFromSingleOrMultiple(divs,
|
|
201
|
+
return findItemFromSingleOrMultiple(divs, div => {
|
|
186
202
|
return checkSelector(element, div.selectors);
|
|
187
203
|
});
|
|
188
204
|
}
|
|
189
|
-
exports.divMode = divMode;
|
|
190
205
|
function circleBounceDataFromParticle(p) {
|
|
191
206
|
return {
|
|
192
207
|
position: p.getPosition(),
|
|
@@ -196,7 +211,6 @@ function circleBounceDataFromParticle(p) {
|
|
|
196
211
|
factor: Vectors_js_1.Vector.create((0, NumberUtils_js_1.getRangeValue)(p.options.bounce.horizontal.value), (0, NumberUtils_js_1.getRangeValue)(p.options.bounce.vertical.value)),
|
|
197
212
|
};
|
|
198
213
|
}
|
|
199
|
-
exports.circleBounceDataFromParticle = circleBounceDataFromParticle;
|
|
200
214
|
function circleBounce(p1, p2) {
|
|
201
215
|
const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = (0, NumberUtils_js_1.getDistances)(pos2, pos1), minimumDistance = 0;
|
|
202
216
|
if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {
|
|
@@ -208,7 +222,6 @@ function circleBounce(p1, p2) {
|
|
|
208
222
|
p2.velocity.x = vFinal2.x * p2.factor.x;
|
|
209
223
|
p2.velocity.y = vFinal2.y * p2.factor.y;
|
|
210
224
|
}
|
|
211
|
-
exports.circleBounce = circleBounce;
|
|
212
225
|
function rectBounce(particle, divBounds) {
|
|
213
226
|
const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), bounceOptions = particle.options.bounce, resH = rectSideBounce({
|
|
214
227
|
pSide: {
|
|
@@ -267,16 +280,13 @@ function rectBounce(particle, divBounds) {
|
|
|
267
280
|
}
|
|
268
281
|
}
|
|
269
282
|
}
|
|
270
|
-
exports.rectBounce = rectBounce;
|
|
271
283
|
function executeOnSingleOrMultiple(obj, callback) {
|
|
272
284
|
const defaultIndex = 0;
|
|
273
285
|
return (0, TypeUtils_js_1.isArray)(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);
|
|
274
286
|
}
|
|
275
|
-
exports.executeOnSingleOrMultiple = executeOnSingleOrMultiple;
|
|
276
287
|
function itemFromSingleOrMultiple(obj, index, useIndex) {
|
|
277
288
|
return (0, TypeUtils_js_1.isArray)(obj) ? itemFromArray(obj, index, useIndex) : obj;
|
|
278
289
|
}
|
|
279
|
-
exports.itemFromSingleOrMultiple = itemFromSingleOrMultiple;
|
|
280
290
|
function findItemFromSingleOrMultiple(obj, callback) {
|
|
281
291
|
if ((0, TypeUtils_js_1.isArray)(obj)) {
|
|
282
292
|
return obj.find((t, index) => callback(t, index));
|
|
@@ -284,7 +294,6 @@ function findItemFromSingleOrMultiple(obj, callback) {
|
|
|
284
294
|
const defaultIndex = 0;
|
|
285
295
|
return callback(obj, defaultIndex) ? obj : undefined;
|
|
286
296
|
}
|
|
287
|
-
exports.findItemFromSingleOrMultiple = findItemFromSingleOrMultiple;
|
|
288
297
|
function initParticleNumericAnimationValue(options, pxRatio) {
|
|
289
298
|
const valueRange = options.value, animationOptions = options.animation, res = {
|
|
290
299
|
delayTime: (0, NumberUtils_js_1.getRangeValue)(animationOptions.delay) * Constants_js_1.millisecondsToSeconds,
|
|
@@ -299,35 +308,35 @@ function initParticleNumericAnimationValue(options, pxRatio) {
|
|
|
299
308
|
if (animationOptions.enable) {
|
|
300
309
|
res.decay = decayOffset - (0, NumberUtils_js_1.getRangeValue)(animationOptions.decay);
|
|
301
310
|
switch (animationOptions.mode) {
|
|
302
|
-
case
|
|
303
|
-
res.status =
|
|
311
|
+
case AnimationMode_js_1.AnimationMode.increase:
|
|
312
|
+
res.status = AnimationStatus_js_1.AnimationStatus.increasing;
|
|
304
313
|
break;
|
|
305
|
-
case
|
|
306
|
-
res.status =
|
|
314
|
+
case AnimationMode_js_1.AnimationMode.decrease:
|
|
315
|
+
res.status = AnimationStatus_js_1.AnimationStatus.decreasing;
|
|
307
316
|
break;
|
|
308
|
-
case
|
|
309
|
-
res.status = (0, NumberUtils_js_1.getRandom)() >= Constants_js_1.halfRandom ?
|
|
317
|
+
case AnimationMode_js_1.AnimationMode.random:
|
|
318
|
+
res.status = (0, NumberUtils_js_1.getRandom)() >= Constants_js_1.halfRandom ? AnimationStatus_js_1.AnimationStatus.increasing : AnimationStatus_js_1.AnimationStatus.decreasing;
|
|
310
319
|
break;
|
|
311
320
|
}
|
|
312
|
-
const autoStatus = animationOptions.mode ===
|
|
321
|
+
const autoStatus = animationOptions.mode === AnimationMode_js_1.AnimationMode.auto;
|
|
313
322
|
switch (animationOptions.startValue) {
|
|
314
|
-
case
|
|
323
|
+
case StartValueType_js_1.StartValueType.min:
|
|
315
324
|
res.value = res.min;
|
|
316
325
|
if (autoStatus) {
|
|
317
|
-
res.status =
|
|
326
|
+
res.status = AnimationStatus_js_1.AnimationStatus.increasing;
|
|
318
327
|
}
|
|
319
328
|
break;
|
|
320
|
-
case
|
|
329
|
+
case StartValueType_js_1.StartValueType.max:
|
|
321
330
|
res.value = res.max;
|
|
322
331
|
if (autoStatus) {
|
|
323
|
-
res.status =
|
|
332
|
+
res.status = AnimationStatus_js_1.AnimationStatus.decreasing;
|
|
324
333
|
}
|
|
325
334
|
break;
|
|
326
|
-
case
|
|
335
|
+
case StartValueType_js_1.StartValueType.random:
|
|
327
336
|
default:
|
|
328
337
|
res.value = (0, NumberUtils_js_1.randomInRange)(res);
|
|
329
338
|
if (autoStatus) {
|
|
330
|
-
res.status = (0, NumberUtils_js_1.getRandom)() >= Constants_js_1.halfRandom ?
|
|
339
|
+
res.status = (0, NumberUtils_js_1.getRandom)() >= Constants_js_1.halfRandom ? AnimationStatus_js_1.AnimationStatus.increasing : AnimationStatus_js_1.AnimationStatus.decreasing;
|
|
331
340
|
}
|
|
332
341
|
break;
|
|
333
342
|
}
|
|
@@ -335,9 +344,8 @@ function initParticleNumericAnimationValue(options, pxRatio) {
|
|
|
335
344
|
res.initialValue = res.value;
|
|
336
345
|
return res;
|
|
337
346
|
}
|
|
338
|
-
exports.initParticleNumericAnimationValue = initParticleNumericAnimationValue;
|
|
339
347
|
function getPositionOrSize(positionOrSize, canvasSize) {
|
|
340
|
-
const isPercent = positionOrSize.mode ===
|
|
348
|
+
const isPercent = positionOrSize.mode === PixelMode_js_1.PixelMode.percent;
|
|
341
349
|
if (!isPercent) {
|
|
342
350
|
const { mode: _, ...rest } = positionOrSize;
|
|
343
351
|
return rest;
|
|
@@ -359,19 +367,17 @@ function getPositionOrSize(positionOrSize, canvasSize) {
|
|
|
359
367
|
function getPosition(position, canvasSize) {
|
|
360
368
|
return getPositionOrSize(position, canvasSize);
|
|
361
369
|
}
|
|
362
|
-
exports.getPosition = getPosition;
|
|
363
370
|
function getSize(size, canvasSize) {
|
|
364
371
|
return getPositionOrSize(size, canvasSize);
|
|
365
372
|
}
|
|
366
|
-
exports.getSize = getSize;
|
|
367
373
|
function checkDestroy(particle, destroyType, value, minValue, maxValue) {
|
|
368
374
|
switch (destroyType) {
|
|
369
|
-
case
|
|
375
|
+
case DestroyType_js_1.DestroyType.max:
|
|
370
376
|
if (value >= maxValue) {
|
|
371
377
|
particle.destroy();
|
|
372
378
|
}
|
|
373
379
|
break;
|
|
374
|
-
case
|
|
380
|
+
case DestroyType_js_1.DestroyType.min:
|
|
375
381
|
if (value <= minValue) {
|
|
376
382
|
particle.destroy();
|
|
377
383
|
}
|
|
@@ -397,10 +403,10 @@ function updateAnimation(particle, data, changeDirection, destroyType, delta) {
|
|
|
397
403
|
return;
|
|
398
404
|
}
|
|
399
405
|
switch (data.status) {
|
|
400
|
-
case
|
|
406
|
+
case AnimationStatus_js_1.AnimationStatus.increasing:
|
|
401
407
|
if (data.value >= maxValue) {
|
|
402
408
|
if (changeDirection) {
|
|
403
|
-
data.status =
|
|
409
|
+
data.status = AnimationStatus_js_1.AnimationStatus.decreasing;
|
|
404
410
|
}
|
|
405
411
|
else {
|
|
406
412
|
data.value -= maxValue;
|
|
@@ -414,10 +420,10 @@ function updateAnimation(particle, data, changeDirection, destroyType, delta) {
|
|
|
414
420
|
data.value += velocity;
|
|
415
421
|
}
|
|
416
422
|
break;
|
|
417
|
-
case
|
|
423
|
+
case AnimationStatus_js_1.AnimationStatus.decreasing:
|
|
418
424
|
if (data.value <= minValue) {
|
|
419
425
|
if (changeDirection) {
|
|
420
|
-
data.status =
|
|
426
|
+
data.status = AnimationStatus_js_1.AnimationStatus.increasing;
|
|
421
427
|
}
|
|
422
428
|
else {
|
|
423
429
|
data.value += maxValue;
|
|
@@ -439,4 +445,3 @@ function updateAnimation(particle, data, changeDirection, destroyType, delta) {
|
|
|
439
445
|
data.value = (0, NumberUtils_js_1.clamp)(data.value, minValue, maxValue);
|
|
440
446
|
}
|
|
441
447
|
}
|
|
442
|
-
exports.updateAnimation = updateAnimation;
|
package/cjs/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.init =
|
|
3
|
+
exports.init = init;
|
|
4
4
|
const Engine_js_1 = require("./Core/Engine.js");
|
|
5
5
|
const HslColorManager_js_1 = require("./Utils/HslColorManager.js");
|
|
6
6
|
const RgbColorManager_js_1 = require("./Utils/RgbColorManager.js");
|
|
@@ -13,4 +13,3 @@ function init() {
|
|
|
13
13
|
engine.init();
|
|
14
14
|
return engine;
|
|
15
15
|
}
|
|
16
|
-
exports.init = init;
|
package/esm/Core/Canvas.js
CHANGED
|
@@ -31,7 +31,7 @@ function setStyle(canvas, style, important = false) {
|
|
|
31
31
|
export class Canvas {
|
|
32
32
|
constructor(container) {
|
|
33
33
|
this.container = container;
|
|
34
|
-
this._applyPostDrawUpdaters =
|
|
34
|
+
this._applyPostDrawUpdaters = particle => {
|
|
35
35
|
for (const updater of this._postDrawUpdaters) {
|
|
36
36
|
updater.afterDraw?.(particle);
|
|
37
37
|
}
|
|
@@ -61,7 +61,7 @@ export class Canvas {
|
|
|
61
61
|
plugin.resize?.();
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
|
-
this._getPluginParticleColors =
|
|
64
|
+
this._getPluginParticleColors = particle => {
|
|
65
65
|
let fColor, sColor;
|
|
66
66
|
for (const plugin of this._colorPlugins) {
|
|
67
67
|
if (!fColor && plugin.particleFillColor) {
|
|
@@ -101,7 +101,7 @@ export class Canvas {
|
|
|
101
101
|
};
|
|
102
102
|
resolve();
|
|
103
103
|
});
|
|
104
|
-
img.addEventListener("error",
|
|
104
|
+
img.addEventListener("error", evt => {
|
|
105
105
|
reject(evt.error);
|
|
106
106
|
});
|
|
107
107
|
img.src = cover.image;
|
|
@@ -162,28 +162,33 @@ export class Canvas {
|
|
|
162
162
|
};
|
|
163
163
|
resolve();
|
|
164
164
|
});
|
|
165
|
-
img.addEventListener("error",
|
|
165
|
+
img.addEventListener("error", evt => {
|
|
166
166
|
reject(evt.error);
|
|
167
167
|
});
|
|
168
168
|
img.src = trailFill.image;
|
|
169
169
|
});
|
|
170
170
|
}
|
|
171
171
|
};
|
|
172
|
-
this._paintBase =
|
|
173
|
-
this.draw(
|
|
172
|
+
this._paintBase = baseColor => {
|
|
173
|
+
this.draw(ctx => paintBase(ctx, this.size, baseColor));
|
|
174
174
|
};
|
|
175
175
|
this._paintImage = (image, opacity) => {
|
|
176
|
-
this.draw(
|
|
176
|
+
this.draw(ctx => paintImage(ctx, this.size, image, opacity));
|
|
177
177
|
};
|
|
178
178
|
this._repairStyle = () => {
|
|
179
179
|
const element = this.element;
|
|
180
180
|
if (!element) {
|
|
181
181
|
return;
|
|
182
182
|
}
|
|
183
|
-
this._safeMutationObserver(
|
|
183
|
+
this._safeMutationObserver(observer => observer.disconnect());
|
|
184
184
|
this._initStyle();
|
|
185
185
|
this.initBackground();
|
|
186
|
-
this._safeMutationObserver(
|
|
186
|
+
this._safeMutationObserver(observer => {
|
|
187
|
+
if (!element || !(element instanceof Node)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
observer.observe(element, { attributes: true });
|
|
191
|
+
});
|
|
187
192
|
};
|
|
188
193
|
this._resetOriginalStyle = () => {
|
|
189
194
|
const element = this.element, originalStyle = this._originalStyle;
|
|
@@ -192,7 +197,7 @@ export class Canvas {
|
|
|
192
197
|
}
|
|
193
198
|
setStyle(element, originalStyle);
|
|
194
199
|
};
|
|
195
|
-
this._safeMutationObserver =
|
|
200
|
+
this._safeMutationObserver = callback => {
|
|
196
201
|
if (!this._mutationObserver) {
|
|
197
202
|
return;
|
|
198
203
|
}
|
|
@@ -241,7 +246,7 @@ export class Canvas {
|
|
|
241
246
|
}
|
|
242
247
|
}
|
|
243
248
|
else if (options.clear) {
|
|
244
|
-
this.draw(
|
|
249
|
+
this.draw(ctx => {
|
|
245
250
|
clear(ctx, this.size);
|
|
246
251
|
});
|
|
247
252
|
}
|
|
@@ -316,14 +321,14 @@ export class Canvas {
|
|
|
316
321
|
});
|
|
317
322
|
}
|
|
318
323
|
drawParticlePlugin(plugin, particle, delta) {
|
|
319
|
-
this.draw(
|
|
324
|
+
this.draw(ctx => drawParticlePlugin(ctx, plugin, particle, delta));
|
|
320
325
|
}
|
|
321
326
|
drawPlugin(plugin, delta) {
|
|
322
|
-
this.draw(
|
|
327
|
+
this.draw(ctx => drawPlugin(ctx, plugin, delta));
|
|
323
328
|
}
|
|
324
329
|
async init() {
|
|
325
|
-
this._safeMutationObserver(
|
|
326
|
-
this._mutationObserver = safeMutationObserver(
|
|
330
|
+
this._safeMutationObserver(obs => obs.disconnect());
|
|
331
|
+
this._mutationObserver = safeMutationObserver(records => {
|
|
327
332
|
for (const record of records) {
|
|
328
333
|
if (record.type === "attributes" && record.attributeName === "style") {
|
|
329
334
|
this._repairStyle();
|
|
@@ -340,8 +345,8 @@ export class Canvas {
|
|
|
340
345
|
getLogger().error(e);
|
|
341
346
|
}
|
|
342
347
|
this.initBackground();
|
|
343
|
-
this._safeMutationObserver(
|
|
344
|
-
if (!this.element) {
|
|
348
|
+
this._safeMutationObserver(obs => {
|
|
349
|
+
if (!this.element || !(this.element instanceof Node)) {
|
|
345
350
|
return;
|
|
346
351
|
}
|
|
347
352
|
obs.observe(this.element, { attributes: true });
|
|
@@ -408,8 +413,8 @@ export class Canvas {
|
|
|
408
413
|
this.size.height = canvas.offsetHeight;
|
|
409
414
|
this.size.width = canvas.offsetWidth;
|
|
410
415
|
this._context = this.element.getContext("2d");
|
|
411
|
-
this._safeMutationObserver(
|
|
412
|
-
if (!this.element) {
|
|
416
|
+
this._safeMutationObserver(obs => {
|
|
417
|
+
if (!this.element || !(this.element instanceof Node)) {
|
|
413
418
|
return;
|
|
414
419
|
}
|
|
415
420
|
obs.observe(this.element, { attributes: true });
|
|
@@ -419,7 +424,7 @@ export class Canvas {
|
|
|
419
424
|
}
|
|
420
425
|
paint() {
|
|
421
426
|
const options = this.container.actualOptions;
|
|
422
|
-
this.draw(
|
|
427
|
+
this.draw(ctx => {
|
|
423
428
|
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
424
429
|
clear(ctx, this.size);
|
|
425
430
|
if (this._coverImage) {
|
|
@@ -463,9 +468,9 @@ export class Canvas {
|
|
|
463
468
|
return true;
|
|
464
469
|
}
|
|
465
470
|
stop() {
|
|
466
|
-
this._safeMutationObserver(
|
|
471
|
+
this._safeMutationObserver(obs => obs.disconnect());
|
|
467
472
|
this._mutationObserver = undefined;
|
|
468
|
-
this.draw(
|
|
473
|
+
this.draw(ctx => clear(ctx, this.size));
|
|
469
474
|
}
|
|
470
475
|
async windowResize() {
|
|
471
476
|
if (!this.element || !this.resize()) {
|