@tsparticles/preset-snow 4.5.0 → 4.5.2
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(function(g){g.__tsParticlesInternals=g.__tsParticlesInternals||{};g.__tsParticlesInternals.bundles=g.__tsParticlesInternals.bundles||{};g.__tsParticlesInternals.effects=g.__tsParticlesInternals.effects||{};g.__tsParticlesInternals.engine=g.__tsParticlesInternals.engine||{};g.__tsParticlesInternals.interactions=g.__tsParticlesInternals.interactions||{};g.__tsParticlesInternals.palettes=g.__tsParticlesInternals.palettes||{};g.__tsParticlesInternals.paths=g.__tsParticlesInternals.paths||{};g.__tsParticlesInternals.plugins=g.__tsParticlesInternals.plugins||{};g.__tsParticlesInternals.plugins=g.__tsParticlesInternals.plugins||{};g.__tsParticlesInternals.plugins.emittersShapes=g.__tsParticlesInternals.plugins.emittersShapes||{};g.__tsParticlesInternals.presets=g.__tsParticlesInternals.presets||{};g.__tsParticlesInternals.shapes=g.__tsParticlesInternals.shapes||{};g.__tsParticlesInternals.updaters=g.__tsParticlesInternals.updaters||{};g.__tsParticlesInternals.utils=g.__tsParticlesInternals.utils||{};g.__tsParticlesInternals.canvas=g.__tsParticlesInternals.canvas||{};g.__tsParticlesInternals.canvas=g.__tsParticlesInternals.canvas||{};g.__tsParticlesInternals.canvas.utils=g.__tsParticlesInternals.canvas.utils||{};g.__tsParticlesInternals.path=g.__tsParticlesInternals.path||{};g.__tsParticlesInternals.path=g.__tsParticlesInternals.path||{};g.__tsParticlesInternals.path.utils=g.__tsParticlesInternals.path.utils||{};var __tsProxyFactory=typeof Proxy!=="undefined"?function(obj){return new Proxy(obj,{get:function(target,key){if(!(key in target)){target[key]={};}return target[key];}});}:function(obj){return obj;};g.__tsParticlesInternals.bundles=__tsProxyFactory(g.__tsParticlesInternals.bundles);g.__tsParticlesInternals.effects=__tsProxyFactory(g.__tsParticlesInternals.effects);g.__tsParticlesInternals.interactions=__tsProxyFactory(g.__tsParticlesInternals.interactions);g.__tsParticlesInternals.palettes=__tsProxyFactory(g.__tsParticlesInternals.palettes);g.__tsParticlesInternals.paths=__tsProxyFactory(g.__tsParticlesInternals.paths);g.__tsParticlesInternals.plugins=__tsProxyFactory(g.__tsParticlesInternals.plugins);g.__tsParticlesInternals.plugins.emittersShapes=__tsProxyFactory(g.__tsParticlesInternals.plugins.emittersShapes);g.__tsParticlesInternals.presets=__tsProxyFactory(g.__tsParticlesInternals.presets);g.__tsParticlesInternals.shapes=__tsProxyFactory(g.__tsParticlesInternals.shapes);g.__tsParticlesInternals.updaters=__tsProxyFactory(g.__tsParticlesInternals.updaters);g.__tsParticlesInternals.utils=__tsProxyFactory(g.__tsParticlesInternals.utils);g.__tsParticlesInternals.canvas=__tsProxyFactory(g.__tsParticlesInternals.canvas);g.__tsParticlesInternals.path=__tsProxyFactory(g.__tsParticlesInternals.path);})(typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:this);
|
|
2
2
|
(function (g) {
|
|
3
|
-
/* Preset v4.5.
|
|
3
|
+
/* Preset v4.5.2 */
|
|
4
4
|
g.__tsParticlesInternals = g.__tsParticlesInternals || {};
|
|
5
5
|
g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
6
6
|
(function (exports) {
|
|
@@ -120,7 +120,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
120
120
|
}
|
|
121
121
|
normalize() {
|
|
122
122
|
const length = this.length;
|
|
123
|
-
if (length
|
|
123
|
+
if (length !== none) {
|
|
124
124
|
this.multTo(inverseFactorNumerator / length);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -654,12 +654,8 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
654
654
|
}
|
|
655
655
|
addEventListener(type, listener) {
|
|
656
656
|
this.removeEventListener(type, listener);
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
arr = [];
|
|
660
|
-
this.#listeners.set(type, arr);
|
|
661
|
-
}
|
|
662
|
-
arr.push(listener);
|
|
657
|
+
const arr = this.#listeners.get(type);
|
|
658
|
+
this.#listeners.set(type, arr ? [...arr, listener] : [listener]);
|
|
663
659
|
}
|
|
664
660
|
dispatchEvent(type, args) {
|
|
665
661
|
const listeners = this.#listeners.get(type);
|
|
@@ -691,7 +687,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
691
687
|
this.#listeners.delete(type);
|
|
692
688
|
}
|
|
693
689
|
else {
|
|
694
|
-
arr.
|
|
690
|
+
this.#listeners.set(type, [...arr.slice(minIndex, idx), ...arr.slice(idx + deleteCount)]);
|
|
695
691
|
}
|
|
696
692
|
}
|
|
697
693
|
}
|
|
@@ -868,11 +864,13 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
868
864
|
#domArray = [];
|
|
869
865
|
#eventDispatcher = new EventDispatcher();
|
|
870
866
|
#initialized = false;
|
|
867
|
+
#loadSequence = 0;
|
|
868
|
+
#loadSequences = new Map();
|
|
871
869
|
get items() {
|
|
872
870
|
return this.#domArray;
|
|
873
871
|
}
|
|
874
872
|
get version() {
|
|
875
|
-
return "4.5.
|
|
873
|
+
return "4.5.2";
|
|
876
874
|
}
|
|
877
875
|
addEventListener(type, listener) {
|
|
878
876
|
this.#eventDispatcher.addEventListener(type, listener);
|
|
@@ -902,44 +900,60 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
902
900
|
return item;
|
|
903
901
|
}
|
|
904
902
|
async load(params) {
|
|
905
|
-
await this.init();
|
|
906
903
|
let domSourceElement;
|
|
907
904
|
if (typeof HTMLElement !== "undefined" && params.element instanceof HTMLElement) {
|
|
908
905
|
domSourceElement = params.element;
|
|
909
906
|
}
|
|
910
|
-
const
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
907
|
+
const id = params.id ?? domSourceElement?.id ?? `tsparticles${Math.floor(getRandom() * loadRandomFactor).toString()}`, loadSequence = ++this.#loadSequence;
|
|
908
|
+
this.#loadSequences.set(id, loadSequence);
|
|
909
|
+
try {
|
|
910
|
+
await this.init();
|
|
911
|
+
const { Container } = await Promise.resolve().then(function () { return Container$1; }), { index, url } = params, options = url ? await getDataFromUrl({ fallback: params.options, url, index }) : params.options;
|
|
912
|
+
if (this.#loadSequences.get(id) !== loadSequence) {
|
|
913
|
+
return undefined;
|
|
914
|
+
}
|
|
915
|
+
const currentOptions = itemFromSingleOrMultiple(options, index), { items } = this, oldIndex = items.findIndex(v => v.id.description === id), newItem = new Container({
|
|
916
|
+
dispatchCallback: (eventType, args) => {
|
|
917
|
+
this.dispatchEvent(eventType, args);
|
|
918
|
+
},
|
|
919
|
+
id,
|
|
920
|
+
onDestroy: (remove) => {
|
|
921
|
+
if (!remove) {
|
|
922
|
+
return;
|
|
923
|
+
}
|
|
924
|
+
const mainArr = this.items, idx = mainArr.indexOf(newItem);
|
|
925
|
+
if (idx >= removeMinIndex) {
|
|
926
|
+
mainArr.splice(idx, removeDeleteCount);
|
|
927
|
+
}
|
|
928
|
+
},
|
|
929
|
+
pluginManager: this.pluginManager,
|
|
930
|
+
sourceOptions: currentOptions,
|
|
931
|
+
});
|
|
932
|
+
if (oldIndex >= loadMinIndex) {
|
|
933
|
+
const old = this.item(oldIndex), deleteCount = old ? one : none;
|
|
934
|
+
if (old && !old.destroyed) {
|
|
935
|
+
old.destroy(false);
|
|
922
936
|
}
|
|
923
|
-
|
|
924
|
-
pluginManager: this.pluginManager,
|
|
925
|
-
sourceOptions: currentOptions,
|
|
926
|
-
});
|
|
927
|
-
if (oldIndex >= loadMinIndex) {
|
|
928
|
-
const old = this.item(oldIndex), deleteCount = old ? one : none;
|
|
929
|
-
if (old && !old.destroyed) {
|
|
930
|
-
old.destroy(false);
|
|
937
|
+
items.splice(oldIndex, deleteCount, newItem);
|
|
931
938
|
}
|
|
932
|
-
|
|
939
|
+
else {
|
|
940
|
+
items.push(newItem);
|
|
941
|
+
}
|
|
942
|
+
const sourceCanvas = typeof OffscreenCanvas !== "undefined" && params.element instanceof OffscreenCanvas
|
|
943
|
+
? params.element
|
|
944
|
+
: getCanvasFromContainer(getDomContainer(id, domSourceElement));
|
|
945
|
+
newItem.canvas.loadCanvas(sourceCanvas);
|
|
946
|
+
await newItem.start();
|
|
947
|
+
if (newItem.destroyed) {
|
|
948
|
+
return undefined;
|
|
949
|
+
}
|
|
950
|
+
return newItem;
|
|
933
951
|
}
|
|
934
|
-
|
|
935
|
-
|
|
952
|
+
finally {
|
|
953
|
+
if (this.#loadSequences.get(id) === loadSequence) {
|
|
954
|
+
this.#loadSequences.delete(id);
|
|
955
|
+
}
|
|
936
956
|
}
|
|
937
|
-
const sourceCanvas = typeof OffscreenCanvas !== "undefined" && params.element instanceof OffscreenCanvas
|
|
938
|
-
? params.element
|
|
939
|
-
: getCanvasFromContainer(getDomContainer(id, domSourceElement));
|
|
940
|
-
newItem.canvas.loadCanvas(sourceCanvas);
|
|
941
|
-
await newItem.start();
|
|
942
|
-
return newItem;
|
|
943
957
|
}
|
|
944
958
|
async refresh(refresh = true) {
|
|
945
959
|
if (!refresh) {
|
|
@@ -2247,6 +2261,13 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2247
2261
|
}
|
|
2248
2262
|
}
|
|
2249
2263
|
|
|
2264
|
+
function hasEnabledBlend(particleOptions) {
|
|
2265
|
+
if (!particleOptions || typeof particleOptions !== "object" || !("blend" in particleOptions)) {
|
|
2266
|
+
return false;
|
|
2267
|
+
}
|
|
2268
|
+
const blend = particleOptions.blend;
|
|
2269
|
+
return !!blend && typeof blend === "object" && "enable" in blend && !!blend.enable;
|
|
2270
|
+
}
|
|
2250
2271
|
class BlendPlugin {
|
|
2251
2272
|
id = "blend";
|
|
2252
2273
|
async getPlugin(container) {
|
|
@@ -2268,12 +2289,31 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2268
2289
|
options.blend.load(source?.blend);
|
|
2269
2290
|
}
|
|
2270
2291
|
needsPlugin(options) {
|
|
2271
|
-
|
|
2292
|
+
if (options?.blend?.enable ||
|
|
2293
|
+
options?.particles?.blend?.enable ||
|
|
2294
|
+
Object.values(options?.particles?.groups ?? {}).some(hasEnabledBlend)) {
|
|
2295
|
+
return true;
|
|
2296
|
+
}
|
|
2297
|
+
const emitters = options?.["emitters"];
|
|
2298
|
+
let emitterList = [];
|
|
2299
|
+
if (Array.isArray(emitters)) {
|
|
2300
|
+
emitterList = emitters;
|
|
2301
|
+
}
|
|
2302
|
+
else if (emitters) {
|
|
2303
|
+
emitterList = [emitters];
|
|
2304
|
+
}
|
|
2305
|
+
return emitterList.some(emitter => {
|
|
2306
|
+
if (!emitter || typeof emitter !== "object" || !("particles" in emitter)) {
|
|
2307
|
+
return false;
|
|
2308
|
+
}
|
|
2309
|
+
const particles = emitter.particles;
|
|
2310
|
+
return Array.isArray(particles) ? particles.some(hasEnabledBlend) : hasEnabledBlend(particles);
|
|
2311
|
+
});
|
|
2272
2312
|
}
|
|
2273
2313
|
}
|
|
2274
2314
|
|
|
2275
2315
|
async function loadBlendPlugin(engine) {
|
|
2276
|
-
engine.checkVersion("4.5.
|
|
2316
|
+
engine.checkVersion("4.5.2");
|
|
2277
2317
|
await engine.pluginManager.register(e => {
|
|
2278
2318
|
e.pluginManager.addPlugin(new BlendPlugin());
|
|
2279
2319
|
});
|
|
@@ -2310,7 +2350,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2310
2350
|
}
|
|
2311
2351
|
|
|
2312
2352
|
async function loadCircleShape(engine) {
|
|
2313
|
-
engine.checkVersion("4.5.
|
|
2353
|
+
engine.checkVersion("4.5.2");
|
|
2314
2354
|
await engine.pluginManager.register(e => {
|
|
2315
2355
|
e.pluginManager.addShape(["circle"], () => {
|
|
2316
2356
|
return Promise.resolve(new CircleDrawer());
|
|
@@ -2358,7 +2398,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2358
2398
|
}
|
|
2359
2399
|
|
|
2360
2400
|
async function loadHexColorPlugin(engine) {
|
|
2361
|
-
engine.checkVersion("4.5.
|
|
2401
|
+
engine.checkVersion("4.5.2");
|
|
2362
2402
|
await engine.pluginManager.register(e => {
|
|
2363
2403
|
e.pluginManager.addColorManager("hex", new HexColorManager());
|
|
2364
2404
|
});
|
|
@@ -2411,7 +2451,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2411
2451
|
}
|
|
2412
2452
|
|
|
2413
2453
|
async function loadHslColorPlugin(engine) {
|
|
2414
|
-
engine.checkVersion("4.5.
|
|
2454
|
+
engine.checkVersion("4.5.2");
|
|
2415
2455
|
await engine.pluginManager.register(e => {
|
|
2416
2456
|
e.pluginManager.addColorManager("hsl", new HslColorManager());
|
|
2417
2457
|
});
|
|
@@ -2443,7 +2483,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2443
2483
|
}
|
|
2444
2484
|
|
|
2445
2485
|
async function loadMovePlugin(engine) {
|
|
2446
|
-
engine.checkVersion("4.5.
|
|
2486
|
+
engine.checkVersion("4.5.2");
|
|
2447
2487
|
if (typeof process !== "undefined" && process.env.NODE_ENV !== "production") {
|
|
2448
2488
|
addErrorMessages(ErrorMessages);
|
|
2449
2489
|
}
|
|
@@ -2653,7 +2693,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2653
2693
|
}
|
|
2654
2694
|
|
|
2655
2695
|
async function loadOpacityUpdater(engine) {
|
|
2656
|
-
engine.checkVersion("4.5.
|
|
2696
|
+
engine.checkVersion("4.5.2");
|
|
2657
2697
|
await engine.pluginManager.register(e => {
|
|
2658
2698
|
e.pluginManager.addParticleUpdater("opacity", container => {
|
|
2659
2699
|
return Promise.resolve(new OpacityUpdater(container));
|
|
@@ -2982,7 +3022,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
2982
3022
|
}
|
|
2983
3023
|
|
|
2984
3024
|
async function loadOutModesUpdater(engine) {
|
|
2985
|
-
engine.checkVersion("4.5.
|
|
3025
|
+
engine.checkVersion("4.5.2");
|
|
2986
3026
|
await engine.pluginManager.register(e => {
|
|
2987
3027
|
e.pluginManager.addParticleUpdater("outModes", container => {
|
|
2988
3028
|
return Promise.resolve(new OutOfCanvasUpdater(container));
|
|
@@ -3061,7 +3101,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3061
3101
|
}
|
|
3062
3102
|
|
|
3063
3103
|
async function loadPaintUpdater(engine) {
|
|
3064
|
-
engine.checkVersion("4.5.
|
|
3104
|
+
engine.checkVersion("4.5.2");
|
|
3065
3105
|
await engine.pluginManager.register(e => {
|
|
3066
3106
|
e.pluginManager.addParticleUpdater("paint", container => {
|
|
3067
3107
|
return Promise.resolve(new PaintUpdater(e.pluginManager, container));
|
|
@@ -3116,7 +3156,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3116
3156
|
}
|
|
3117
3157
|
|
|
3118
3158
|
async function loadRgbColorPlugin(engine) {
|
|
3119
|
-
engine.checkVersion("4.5.
|
|
3159
|
+
engine.checkVersion("4.5.2");
|
|
3120
3160
|
await engine.pluginManager.register(e => {
|
|
3121
3161
|
e.pluginManager.addColorManager("rgb", new RgbColorManager());
|
|
3122
3162
|
});
|
|
@@ -3201,7 +3241,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3201
3241
|
}
|
|
3202
3242
|
|
|
3203
3243
|
async function loadSizeUpdater(engine) {
|
|
3204
|
-
engine.checkVersion("4.5.
|
|
3244
|
+
engine.checkVersion("4.5.2");
|
|
3205
3245
|
await engine.pluginManager.register(e => {
|
|
3206
3246
|
e.pluginManager.addParticleUpdater("size", container => {
|
|
3207
3247
|
return Promise.resolve(new SizeUpdater(container));
|
|
@@ -3210,7 +3250,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3210
3250
|
}
|
|
3211
3251
|
|
|
3212
3252
|
async function loadBasic(engine) {
|
|
3213
|
-
engine.checkVersion("4.5.
|
|
3253
|
+
engine.checkVersion("4.5.2");
|
|
3214
3254
|
await engine.pluginManager.register(async (e) => {
|
|
3215
3255
|
await Promise.all([
|
|
3216
3256
|
loadBlendPlugin(e),
|
|
@@ -3346,7 +3386,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3346
3386
|
}
|
|
3347
3387
|
|
|
3348
3388
|
async function loadWobbleUpdater(engine) {
|
|
3349
|
-
engine.checkVersion("4.5.
|
|
3389
|
+
engine.checkVersion("4.5.2");
|
|
3350
3390
|
await engine.pluginManager.register(e => {
|
|
3351
3391
|
e.pluginManager.addParticleUpdater("wobble", container => {
|
|
3352
3392
|
return Promise.resolve(new WobbleUpdater(container));
|
|
@@ -3557,7 +3597,8 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3557
3597
|
});
|
|
3558
3598
|
}
|
|
3559
3599
|
drawParticles(delta) {
|
|
3560
|
-
const { particles, actualOptions } = this.#container
|
|
3600
|
+
const { particles, actualOptions } = this.#container;
|
|
3601
|
+
this.clear();
|
|
3561
3602
|
particles.update(delta);
|
|
3562
3603
|
this.draw(ctx => {
|
|
3563
3604
|
const width = this.#canvasManager.size.width, height = this.#canvasManager.size.height;
|
|
@@ -3579,9 +3620,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3579
3620
|
}
|
|
3580
3621
|
}
|
|
3581
3622
|
for (const plugin of this.#getLayerPlugins(DrawLayer.BackgroundMask)) {
|
|
3582
|
-
|
|
3583
|
-
plugin.canvasPaint?.();
|
|
3584
|
-
}
|
|
3623
|
+
plugin.canvasPaint?.();
|
|
3585
3624
|
}
|
|
3586
3625
|
for (const plugin of this.#getLayerPlugins(DrawLayer.CanvasSetup)) {
|
|
3587
3626
|
plugin.drawSettingsSetup?.(ctx, delta);
|
|
@@ -3671,6 +3710,9 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3671
3710
|
ctx.clearRect(originPoint.x, originPoint.y, this.#canvasManager.size.width, this.#canvasManager.size.height);
|
|
3672
3711
|
});
|
|
3673
3712
|
}
|
|
3713
|
+
updateBackgroundElement() {
|
|
3714
|
+
this.#resolveBackgroundElement();
|
|
3715
|
+
}
|
|
3674
3716
|
#applyPostDrawUpdaters(particle) {
|
|
3675
3717
|
for (const updater of this.#postDrawUpdaters) {
|
|
3676
3718
|
updater.afterDraw?.(particle);
|
|
@@ -3869,7 +3911,14 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
3869
3911
|
}
|
|
3870
3912
|
if (typeof background.element === "string") {
|
|
3871
3913
|
if (typeof document !== "undefined") {
|
|
3872
|
-
|
|
3914
|
+
let node;
|
|
3915
|
+
try {
|
|
3916
|
+
node = document.querySelector(background.element);
|
|
3917
|
+
}
|
|
3918
|
+
catch {
|
|
3919
|
+
this.#warnOnce("background-element-invalid-selector", `Background element selector "${background.element}" is invalid`);
|
|
3920
|
+
return;
|
|
3921
|
+
}
|
|
3873
3922
|
if (node && this.#isSupportedElement(node)) {
|
|
3874
3923
|
this.#backgroundElement = node;
|
|
3875
3924
|
}
|
|
@@ -4315,6 +4364,10 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
4315
4364
|
this.#manageListeners(true);
|
|
4316
4365
|
}
|
|
4317
4366
|
removeListeners() {
|
|
4367
|
+
if (this.#resizeTimeout !== undefined) {
|
|
4368
|
+
clearTimeout(this.#resizeTimeout);
|
|
4369
|
+
this.#resizeTimeout = undefined;
|
|
4370
|
+
}
|
|
4318
4371
|
this.#manageListeners(false);
|
|
4319
4372
|
}
|
|
4320
4373
|
#handleVisibilityChange() {
|
|
@@ -4689,10 +4742,10 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
4689
4742
|
runParticleCreatedPlugins(container, this);
|
|
4690
4743
|
}
|
|
4691
4744
|
isInsideCanvas(direction) {
|
|
4692
|
-
return this.#getInsideCanvasResult(
|
|
4745
|
+
return this.#getInsideCanvasResult(direction).inside;
|
|
4693
4746
|
}
|
|
4694
4747
|
isInsideCanvasForOutMode(outMode, direction) {
|
|
4695
|
-
return this.#getInsideCanvasResult(
|
|
4748
|
+
return this.#getInsideCanvasResult(direction, outMode).inside;
|
|
4696
4749
|
}
|
|
4697
4750
|
isShowingBack() {
|
|
4698
4751
|
if (!this.roll) {
|
|
@@ -4809,7 +4862,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
4809
4862
|
});
|
|
4810
4863
|
}
|
|
4811
4864
|
#getDefaultInsideCanvasResult(direction, outMode) {
|
|
4812
|
-
const radius = this.getRadius(), canvasSize = this.#container.canvas.size, position = this.position, isBounce = outMode === OutMode.bounce;
|
|
4865
|
+
const radius = this.getRadius(), canvasSize = this.#container.canvas.size, position = this.position, isBounce = outMode === OutMode.bounce || outMode === OutMode.split;
|
|
4813
4866
|
if (direction === OutModeDirection.bottom) {
|
|
4814
4867
|
return {
|
|
4815
4868
|
inside: isBounce ? position.y + radius < canvasSize.height : position.y - radius < canvasSize.height,
|
|
@@ -4851,12 +4904,16 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
4851
4904
|
radius: this.getRadius(),
|
|
4852
4905
|
};
|
|
4853
4906
|
}
|
|
4854
|
-
#getInsideCanvasResult(
|
|
4855
|
-
const defaultResult = this.#getDefaultInsideCanvasResult(
|
|
4856
|
-
if (!
|
|
4907
|
+
#getInsideCanvasResult(direction, outMode) {
|
|
4908
|
+
const defaultResult = this.#getDefaultInsideCanvasResult(direction, outMode), container = this.#container, shapeDrawer = this.shape ? container.shapeDrawers.get(this.shape) : undefined, effectDrawer = this.effect ? container.effectDrawers.get(this.effect) : undefined;
|
|
4909
|
+
if (!shapeDrawer?.isInsideCanvas && !effectDrawer?.isInsideCanvas) {
|
|
4857
4910
|
return defaultResult;
|
|
4858
4911
|
}
|
|
4859
|
-
const callbackData = this.#getInsideCanvasCallbackData(
|
|
4912
|
+
const callbackData = this.#getInsideCanvasCallbackData(direction, outMode), shapeResult = shapeDrawer?.isInsideCanvas
|
|
4913
|
+
? this.#normalizeInsideCanvasResult(shapeDrawer.isInsideCanvas(callbackData), "shape")
|
|
4914
|
+
: undefined, effectResult = effectDrawer?.isInsideCanvas
|
|
4915
|
+
? this.#normalizeInsideCanvasResult(effectDrawer.isInsideCanvas(callbackData), "effect")
|
|
4916
|
+
: undefined;
|
|
4860
4917
|
if (shapeResult && effectResult) {
|
|
4861
4918
|
const margin = Math.max(shapeResult.margin ?? defaultAngle, effectResult.margin ?? defaultAngle);
|
|
4862
4919
|
return {
|
|
@@ -4922,8 +4979,8 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
4922
4979
|
}
|
|
4923
4980
|
|
|
4924
4981
|
class SpatialHashGrid {
|
|
4925
|
-
#cellSize;
|
|
4926
4982
|
#cells = new Map();
|
|
4983
|
+
#cellSize;
|
|
4927
4984
|
#circlePool = [];
|
|
4928
4985
|
#circlePoolIdx;
|
|
4929
4986
|
#pendingCellSize;
|
|
@@ -4969,14 +5026,22 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
4969
5026
|
return out;
|
|
4970
5027
|
}
|
|
4971
5028
|
queryCircle(position, radius, check, out = []) {
|
|
4972
|
-
const circle = this.#acquireCircle(position.x, position.y, radius)
|
|
4973
|
-
|
|
4974
|
-
|
|
5029
|
+
const circle = this.#acquireCircle(position.x, position.y, radius);
|
|
5030
|
+
try {
|
|
5031
|
+
return this.query(circle, check, out);
|
|
5032
|
+
}
|
|
5033
|
+
finally {
|
|
5034
|
+
this.#circlePoolIdx--;
|
|
5035
|
+
}
|
|
4975
5036
|
}
|
|
4976
5037
|
queryRectangle(position, size, check, out = []) {
|
|
4977
|
-
const rect = this.#acquireRectangle(position.x, position.y, size.width, size.height)
|
|
4978
|
-
|
|
4979
|
-
|
|
5038
|
+
const rect = this.#acquireRectangle(position.x, position.y, size.width, size.height);
|
|
5039
|
+
try {
|
|
5040
|
+
return this.query(rect, check, out);
|
|
5041
|
+
}
|
|
5042
|
+
finally {
|
|
5043
|
+
this.#rectanglePoolIdx--;
|
|
5044
|
+
}
|
|
4980
5045
|
}
|
|
4981
5046
|
#acquireCircle(x, y, r) {
|
|
4982
5047
|
const idx = this.#circlePoolIdx++;
|
|
@@ -5035,10 +5100,6 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
5035
5100
|
}
|
|
5036
5101
|
}
|
|
5037
5102
|
}
|
|
5038
|
-
#releaseShapes() {
|
|
5039
|
-
this.#circlePoolIdx = 0;
|
|
5040
|
-
this.#rectanglePoolIdx = 0;
|
|
5041
|
-
}
|
|
5042
5103
|
}
|
|
5043
5104
|
|
|
5044
5105
|
class ParticlesManager {
|
|
@@ -5577,8 +5638,8 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
5577
5638
|
particleCreatedPlugins;
|
|
5578
5639
|
particleDestroyedPlugins;
|
|
5579
5640
|
particlePositionPlugins;
|
|
5580
|
-
particleUpdaters;
|
|
5581
5641
|
particles;
|
|
5642
|
+
particleUpdaters;
|
|
5582
5643
|
peakNits;
|
|
5583
5644
|
plugins;
|
|
5584
5645
|
retina;
|
|
@@ -5586,6 +5647,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
5586
5647
|
started;
|
|
5587
5648
|
zLayers;
|
|
5588
5649
|
#delay;
|
|
5650
|
+
#delayResolve;
|
|
5589
5651
|
#delayTimeout;
|
|
5590
5652
|
#delta = { value: 0, factor: 0 };
|
|
5591
5653
|
#dispatchCallback;
|
|
@@ -5824,7 +5886,10 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
5824
5886
|
await this.init();
|
|
5825
5887
|
this.started = true;
|
|
5826
5888
|
await new Promise(resolve => {
|
|
5889
|
+
this.#delayResolve = resolve;
|
|
5827
5890
|
const start = async () => {
|
|
5891
|
+
this.#delayTimeout = undefined;
|
|
5892
|
+
this.#delayResolve = undefined;
|
|
5828
5893
|
this.#eventListeners.addListeners();
|
|
5829
5894
|
for (const plugin of this.plugins) {
|
|
5830
5895
|
await plugin.start?.();
|
|
@@ -5840,9 +5905,11 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
5840
5905
|
if (!guardCheck(this) || !this.started) {
|
|
5841
5906
|
return;
|
|
5842
5907
|
}
|
|
5843
|
-
if (this.#delayTimeout) {
|
|
5908
|
+
if (this.#delayTimeout !== undefined) {
|
|
5844
5909
|
clearTimeout(this.#delayTimeout);
|
|
5845
5910
|
this.#delayTimeout = undefined;
|
|
5911
|
+
this.#delayResolve?.();
|
|
5912
|
+
this.#delayResolve = undefined;
|
|
5846
5913
|
}
|
|
5847
5914
|
this.#firstStart = true;
|
|
5848
5915
|
this.started = false;
|
|
@@ -5866,6 +5933,7 @@ g.__tsParticlesInternals.presets = g.__tsParticlesInternals.presets || {};
|
|
|
5866
5933
|
refresh = plugin.updateActualOptions() || refresh;
|
|
5867
5934
|
}
|
|
5868
5935
|
}
|
|
5936
|
+
this.canvas.render.updateBackgroundElement();
|
|
5869
5937
|
return refresh;
|
|
5870
5938
|
}
|
|
5871
5939
|
#initPlugins(allContainerPlugins) {
|