@tsparticles/all 4.0.1 → 4.0.3

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,5 +1,5 @@
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);g.tsparticlesInternalExports=g.tsparticlesInternalExports||{};})(typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:this);
2
- /* tsParticles v4.0.1 */
2
+ /* tsParticles v4.0.3 */
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
5
5
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -1118,7 +1118,7 @@
1118
1118
  return this._domArray;
1119
1119
  }
1120
1120
  get version() {
1121
- return "4.0.1";
1121
+ return "4.0.3";
1122
1122
  }
1123
1123
  addEventListener(type, listener) {
1124
1124
  this._eventDispatcher.addEventListener(type, listener);
@@ -3037,7 +3037,7 @@
3037
3037
  }
3038
3038
 
3039
3039
  async function loadArrowShape(engine) {
3040
- engine.checkVersion("4.0.1");
3040
+ engine.checkVersion("4.0.3");
3041
3041
  await engine.pluginManager.register(e => {
3042
3042
  e.pluginManager.addShape(["arrow"], () => Promise.resolve(new ArrowDrawer()));
3043
3043
  });
@@ -3118,64 +3118,12 @@
3118
3118
  }
3119
3119
 
3120
3120
  async function loadBackgroundMaskPlugin(engine) {
3121
- engine.checkVersion("4.0.1");
3121
+ engine.checkVersion("4.0.3");
3122
3122
  await engine.pluginManager.register(e => {
3123
3123
  e.pluginManager.addPlugin(new BackgroundMaskPlugin(e.pluginManager));
3124
3124
  });
3125
3125
  }
3126
3126
 
3127
- class Blend {
3128
- enable;
3129
- mode;
3130
- constructor() {
3131
- this.mode = "destination-out";
3132
- this.enable = false;
3133
- }
3134
- load(data) {
3135
- if (isNull(data)) {
3136
- return;
3137
- }
3138
- if (data.mode !== undefined) {
3139
- this.mode = data.mode;
3140
- }
3141
- if (data.enable !== undefined) {
3142
- this.enable = data.enable;
3143
- }
3144
- }
3145
- }
3146
-
3147
- class BlendPlugin {
3148
- id = "blend";
3149
- async getPlugin(container) {
3150
- const { BlendPluginInstance } = await Promise.resolve().then(function () { return BlendPluginInstance$1; });
3151
- return new BlendPluginInstance(container);
3152
- }
3153
- loadOptions(_container, options, source) {
3154
- if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
3155
- return;
3156
- }
3157
- let blendOptions = options.blend;
3158
- if (!blendOptions?.load) {
3159
- options.blend = blendOptions = new Blend();
3160
- }
3161
- blendOptions.load(source?.blend);
3162
- }
3163
- loadParticlesOptions(_container, options, source) {
3164
- options.blend ??= new Blend();
3165
- options.blend.load(source?.blend);
3166
- }
3167
- needsPlugin(options) {
3168
- return !!options?.blend?.enable || !!options?.particles?.blend?.enable;
3169
- }
3170
- }
3171
-
3172
- async function loadBlendPlugin(engine) {
3173
- engine.checkVersion("4.0.1");
3174
- await engine.pluginManager.register(e => {
3175
- e.pluginManager.addPlugin(new BlendPlugin());
3176
- });
3177
- }
3178
-
3179
3127
  class MovePlugin {
3180
3128
  id = "move";
3181
3129
  _pluginManager;
@@ -3194,7 +3142,7 @@
3194
3142
  }
3195
3143
 
3196
3144
  async function loadMovePlugin(engine) {
3197
- engine.checkVersion("4.0.1");
3145
+ engine.checkVersion("4.0.3");
3198
3146
  await engine.pluginManager.register(e => {
3199
3147
  const moveEngine = e, movePluginManager = moveEngine.pluginManager;
3200
3148
  movePluginManager.initializers.pathGenerators ??= new Map();
@@ -3295,7 +3243,7 @@
3295
3243
 
3296
3244
  const branchingPathName = "branchesPathGenerator";
3297
3245
  async function loadBranchesPath(engine) {
3298
- engine.checkVersion("4.0.1");
3246
+ engine.checkVersion("4.0.3");
3299
3247
  await engine.pluginManager.register((e) => {
3300
3248
  ensureBaseMoverLoaded(e);
3301
3249
  e.pluginManager.addPathGenerator?.(branchingPathName, container => {
@@ -3344,7 +3292,7 @@
3344
3292
 
3345
3293
  const brownianPathName = "brownianPathGenerator";
3346
3294
  async function loadBrownianPath(engine) {
3347
- engine.checkVersion("4.0.1");
3295
+ engine.checkVersion("4.0.3");
3348
3296
  await engine.pluginManager.register((e) => {
3349
3297
  ensureBaseMoverLoaded(e);
3350
3298
  e.pluginManager.addPathGenerator?.(brownianPathName, container => {
@@ -3366,7 +3314,7 @@
3366
3314
  }
3367
3315
 
3368
3316
  async function loadBubbleEffect(engine) {
3369
- engine.checkVersion("4.0.1");
3317
+ engine.checkVersion("4.0.3");
3370
3318
  await engine.pluginManager.register(e => {
3371
3319
  e.pluginManager.addEffect("bubble", () => {
3372
3320
  return Promise.resolve(new BubbleDrawer());
@@ -3603,7 +3551,7 @@
3603
3551
  }
3604
3552
 
3605
3553
  async function loadCanvasMaskPlugin(engine) {
3606
- engine.checkVersion("4.0.1");
3554
+ engine.checkVersion("4.0.3");
3607
3555
  await engine.pluginManager.register(e => {
3608
3556
  e.pluginManager.addPlugin(new CanvasMaskPlugin());
3609
3557
  });
@@ -3892,7 +3840,7 @@
3892
3840
  }
3893
3841
 
3894
3842
  async function loadClubsSuitShape(engine) {
3895
- engine.checkVersion("4.0.1");
3843
+ engine.checkVersion("4.0.3");
3896
3844
  await engine.pluginManager.register(e => {
3897
3845
  e.pluginManager.addShape(["club", "clubs"], () => Promise.resolve(new ClubDrawer()));
3898
3846
  });
@@ -3906,7 +3854,7 @@
3906
3854
  }
3907
3855
 
3908
3856
  async function loadDiamondsSuitShape(engine) {
3909
- engine.checkVersion("4.0.1");
3857
+ engine.checkVersion("4.0.3");
3910
3858
  await engine.pluginManager.register(e => {
3911
3859
  e.pluginManager.addShape(["diamond", "diamonds"], () => Promise.resolve(new DiamondDrawer()));
3912
3860
  });
@@ -3920,7 +3868,7 @@
3920
3868
  };
3921
3869
 
3922
3870
  async function loadHeartsSuitShape(engine) {
3923
- engine.checkVersion("4.0.1");
3871
+ engine.checkVersion("4.0.3");
3924
3872
  await engine.pluginManager.register(e => {
3925
3873
  e.pluginManager.addShape(["heart", "hearts"], () => Promise.resolve(new HeartDrawer$1()));
3926
3874
  });
@@ -3934,14 +3882,14 @@
3934
3882
  }
3935
3883
 
3936
3884
  async function loadSpadesSuitShape(engine) {
3937
- engine.checkVersion("4.0.1");
3885
+ engine.checkVersion("4.0.3");
3938
3886
  await engine.pluginManager.register(e => {
3939
3887
  e.pluginManager.addShape(["spade", "spades"], () => Promise.resolve(new SpadeDrawer()));
3940
3888
  });
3941
3889
  }
3942
3890
 
3943
3891
  async function loadCardSuitsShape(engine) {
3944
- engine.checkVersion("4.0.1");
3892
+ engine.checkVersion("4.0.3");
3945
3893
  await Promise.all([
3946
3894
  loadClubsSuitShape(engine),
3947
3895
  loadDiamondsSuitShape(engine),
@@ -4062,14 +4010,14 @@
4062
4010
  }
4063
4011
 
4064
4012
  async function loadFullCardsShape(engine) {
4065
- engine.checkVersion("4.0.1");
4013
+ engine.checkVersion("4.0.3");
4066
4014
  await engine.pluginManager.register(e => {
4067
4015
  e.pluginManager.addShape(["card"], container => Promise.resolve(new CardDrawer(container)));
4068
4016
  });
4069
4017
  }
4070
4018
 
4071
4019
  async function loadCardsShape(engine) {
4072
- engine.checkVersion("4.0.1");
4020
+ engine.checkVersion("4.0.3");
4073
4021
  await Promise.all([
4074
4022
  loadFullCardsShape(engine),
4075
4023
  loadCardSuitsShape(engine),
@@ -4139,7 +4087,7 @@
4139
4087
  }
4140
4088
 
4141
4089
  async function loadCogShape(engine) {
4142
- engine.checkVersion("4.0.1");
4090
+ engine.checkVersion("4.0.3");
4143
4091
  await engine.pluginManager.register(e => {
4144
4092
  e.pluginManager.addShape(["cog"], () => Promise.resolve(new CogDrawer()));
4145
4093
  });
@@ -7779,7 +7727,7 @@
7779
7727
 
7780
7728
  const curlNoisePathName = "curlNoise";
7781
7729
  async function loadCurlNoisePath(engine) {
7782
- engine.checkVersion("4.0.1");
7730
+ engine.checkVersion("4.0.3");
7783
7731
  await engine.pluginManager.register((e) => {
7784
7732
  ensureBaseMoverLoaded(e);
7785
7733
  e.pluginManager.addPathGenerator?.(curlNoisePathName, container => {
@@ -7882,7 +7830,7 @@
7882
7830
 
7883
7831
  const curvesPathName = "curvesPathGenerator";
7884
7832
  async function loadCurvesPath(engine) {
7885
- engine.checkVersion("4.0.1");
7833
+ engine.checkVersion("4.0.3");
7886
7834
  await engine.pluginManager.register((e) => {
7887
7835
  ensureBaseMoverLoaded(e);
7888
7836
  e.pluginManager.addPathGenerator?.(curvesPathName, container => {
@@ -7908,7 +7856,7 @@
7908
7856
  });
7909
7857
 
7910
7858
  async function loadEasingBackPlugin(engine) {
7911
- engine.checkVersion("4.0.1");
7859
+ engine.checkVersion("4.0.3");
7912
7860
  await engine.pluginManager.register(e => {
7913
7861
  for (const [easing, easingFn] of easingsFunctions$d) {
7914
7862
  e.pluginManager.addEasing(easing, easingFn);
@@ -7939,7 +7887,7 @@
7939
7887
  easingsFunctions$c.set(exports.EasingType.easeInOutBounce, value => value < 0.5 ? (1 - bounceOut(1 - value * 2)) / 2 : (1 + bounceOut(value * 2 - 1)) / 2);
7940
7888
 
7941
7889
  async function loadEasingBouncePlugin(engine) {
7942
- engine.checkVersion("4.0.1");
7890
+ engine.checkVersion("4.0.3");
7943
7891
  await engine.pluginManager.register(e => {
7944
7892
  for (const [easing, easingFn] of easingsFunctions$c) {
7945
7893
  e.pluginManager.addEasing(easing, easingFn);
@@ -7953,7 +7901,7 @@
7953
7901
  easingsFunctions$b.set(exports.EasingType.easeInOutCirc, value => value < 0.5 ? (1 - Math.sqrt(1 - (2 * value) ** 2)) / 2 : (Math.sqrt(1 - (-2 * value + 2) ** 2) + 1) / 2);
7954
7902
 
7955
7903
  async function loadEasingCircPlugin(engine) {
7956
- engine.checkVersion("4.0.1");
7904
+ engine.checkVersion("4.0.3");
7957
7905
  await engine.pluginManager.register(e => {
7958
7906
  for (const [easing, easingFn] of easingsFunctions$b) {
7959
7907
  e.pluginManager.addEasing(easing, easingFn);
@@ -7967,7 +7915,7 @@
7967
7915
  easingsFunctions$a.set(exports.EasingType.easeInOutCubic, value => value < 0.5 ? 4 * value ** 3 : 1 - (-2 * value + 2) ** 3 / 2);
7968
7916
 
7969
7917
  async function loadEasingCubicPlugin(engine) {
7970
- engine.checkVersion("4.0.1");
7918
+ engine.checkVersion("4.0.3");
7971
7919
  await engine.pluginManager.register(e => {
7972
7920
  for (const [easing, easingFn] of easingsFunctions$a) {
7973
7921
  e.pluginManager.addEasing(easing, easingFn);
@@ -8000,7 +7948,7 @@
8000
7948
  });
8001
7949
 
8002
7950
  async function loadEasingElasticPlugin(engine) {
8003
- engine.checkVersion("4.0.1");
7951
+ engine.checkVersion("4.0.3");
8004
7952
  await engine.pluginManager.register(e => {
8005
7953
  for (const [easing, easingFn] of easingsFunctions$9) {
8006
7954
  e.pluginManager.addEasing(easing, easingFn);
@@ -8024,7 +7972,7 @@
8024
7972
  });
8025
7973
 
8026
7974
  async function loadEasingExpoPlugin(engine) {
8027
- engine.checkVersion("4.0.1");
7975
+ engine.checkVersion("4.0.3");
8028
7976
  await engine.pluginManager.register(e => {
8029
7977
  for (const [easing, easingFn] of easingsFunctions$8) {
8030
7978
  e.pluginManager.addEasing(easing, easingFn);
@@ -8038,7 +7986,7 @@
8038
7986
  easingsFunctions$7.set(exports.EasingType.easeInOutGaussian, value => gaussian(value));
8039
7987
 
8040
7988
  async function loadEasingGaussianPlugin(engine) {
8041
- engine.checkVersion("4.0.1");
7989
+ engine.checkVersion("4.0.3");
8042
7990
  await engine.pluginManager.register(e => {
8043
7991
  for (const [easing, easingFn] of easingsFunctions$7) {
8044
7992
  e.pluginManager.addEasing(easing, easingFn);
@@ -8052,7 +8000,7 @@
8052
8000
  easingsFunctions$6.set(exports.EasingType.easeInOutLinear, value => value);
8053
8001
 
8054
8002
  async function loadEasingLinearPlugin(engine) {
8055
- engine.checkVersion("4.0.1");
8003
+ engine.checkVersion("4.0.3");
8056
8004
  await engine.pluginManager.register(e => {
8057
8005
  for (const [easing, easingFn] of easingsFunctions$6) {
8058
8006
  e.pluginManager.addEasing(easing, easingFn);
@@ -8066,7 +8014,7 @@
8066
8014
  easingsFunctions$5.set(exports.EasingType.easeInOutQuart, value => value < 0.5 ? 8 * value ** 4 : 1 - (-2 * value + 2) ** 4 / 2);
8067
8015
 
8068
8016
  async function loadEasingQuartPlugin(engine) {
8069
- engine.checkVersion("4.0.1");
8017
+ engine.checkVersion("4.0.3");
8070
8018
  await engine.pluginManager.register(e => {
8071
8019
  for (const [easing, easingFn] of easingsFunctions$5) {
8072
8020
  e.pluginManager.addEasing(easing, easingFn);
@@ -8080,7 +8028,7 @@
8080
8028
  easingsFunctions$4.set(exports.EasingType.easeInOutQuint, value => value < 0.5 ? 16 * value ** 5 : 1 - (-2 * value + 2) ** 5 / 2);
8081
8029
 
8082
8030
  async function loadEasingQuintPlugin(engine) {
8083
- engine.checkVersion("4.0.1");
8031
+ engine.checkVersion("4.0.3");
8084
8032
  await engine.pluginManager.register(e => {
8085
8033
  for (const [easing, easingFn] of easingsFunctions$4) {
8086
8034
  e.pluginManager.addEasing(easing, easingFn);
@@ -8094,7 +8042,7 @@
8094
8042
  easingsFunctions$3.set(exports.EasingType.easeInOutSigmoid, value => sigmoid(value));
8095
8043
 
8096
8044
  async function loadEasingSigmoidPlugin(engine) {
8097
- engine.checkVersion("4.0.1");
8045
+ engine.checkVersion("4.0.3");
8098
8046
  await engine.pluginManager.register(e => {
8099
8047
  for (const [easing, easingFn] of easingsFunctions$3) {
8100
8048
  e.pluginManager.addEasing(easing, easingFn);
@@ -8108,7 +8056,7 @@
8108
8056
  easingsFunctions$2.set(exports.EasingType.easeInOutSine, value => -(Math.cos(Math.PI * value) - 1) / 2);
8109
8057
 
8110
8058
  async function loadEasingSinePlugin(engine) {
8111
- engine.checkVersion("4.0.1");
8059
+ engine.checkVersion("4.0.3");
8112
8060
  await engine.pluginManager.register(e => {
8113
8061
  for (const [easing, easingFn] of easingsFunctions$2) {
8114
8062
  e.pluginManager.addEasing(easing, easingFn);
@@ -8122,7 +8070,7 @@
8122
8070
  easingsFunctions$1.set(exports.EasingType.easeInOutSmoothstep, value => smoothstep$1(value));
8123
8071
 
8124
8072
  async function loadEasingSmoothstepPlugin(engine) {
8125
- engine.checkVersion("4.0.1");
8073
+ engine.checkVersion("4.0.3");
8126
8074
  await engine.pluginManager.register(e => {
8127
8075
  for (const [easing, easingFn] of easingsFunctions$1) {
8128
8076
  e.pluginManager.addEasing(easing, easingFn);
@@ -8391,7 +8339,7 @@
8391
8339
  }
8392
8340
 
8393
8341
  async function loadInteractivityPlugin(engine) {
8394
- engine.checkVersion("4.0.1");
8342
+ engine.checkVersion("4.0.3");
8395
8343
  await engine.pluginManager.register(e => {
8396
8344
  const interactivityEngine = e, interactivityPluginManager = interactivityEngine.pluginManager;
8397
8345
  interactivityPluginManager.addPlugin(new InteractivityPlugin(interactivityPluginManager));
@@ -8796,7 +8744,7 @@
8796
8744
  })(EmitterClickMode || (EmitterClickMode = {}));
8797
8745
 
8798
8746
  async function loadEmittersInteraction(engine) {
8799
- engine.checkVersion("4.0.1");
8747
+ engine.checkVersion("4.0.3");
8800
8748
  await engine.pluginManager.register(async (e) => {
8801
8749
  const instancesManager = await getEmittersInstancesManager(e);
8802
8750
  ensureInteractivityPluginLoaded(e);
@@ -8839,7 +8787,7 @@
8839
8787
  }
8840
8788
 
8841
8789
  async function loadEmittersPluginSimple(engine) {
8842
- engine.checkVersion("4.0.1");
8790
+ engine.checkVersion("4.0.3");
8843
8791
  await engine.pluginManager.register(async (e) => {
8844
8792
  const instancesManager = await getEmittersInstancesManager(e);
8845
8793
  await addEmittersShapesManager(e);
@@ -9206,7 +9154,7 @@
9206
9154
  }
9207
9155
 
9208
9156
  async function loadEmittersShapeCanvas(engine) {
9209
- engine.checkVersion("4.0.1");
9157
+ engine.checkVersion("4.0.3");
9210
9158
  await engine.pluginManager.register((e) => {
9211
9159
  ensureEmittersPluginLoaded(e);
9212
9160
  e.pluginManager.addEmitterShapeGenerator?.("canvas", new EmittersCanvasShapeGenerator());
@@ -9346,7 +9294,7 @@
9346
9294
  }
9347
9295
 
9348
9296
  async function loadEmittersShapePath(engine) {
9349
- engine.checkVersion("4.0.1");
9297
+ engine.checkVersion("4.0.3");
9350
9298
  await engine.pluginManager.register((e) => {
9351
9299
  ensureEmittersPluginLoaded(e);
9352
9300
  e.pluginManager.addEmitterShapeGenerator?.("path", new EmittersPathShapeGenerator());
@@ -9477,7 +9425,7 @@
9477
9425
  }
9478
9426
 
9479
9427
  async function loadEmittersShapePolygon(engine) {
9480
- engine.checkVersion("4.0.1");
9428
+ engine.checkVersion("4.0.3");
9481
9429
  await engine.pluginManager.register((e) => {
9482
9430
  ensureEmittersPluginLoaded(e);
9483
9431
  e.pluginManager.addEmitterShapeGenerator?.("polygon", new EmittersPolygonShapeGenerator());
@@ -9498,7 +9446,7 @@
9498
9446
  }
9499
9447
 
9500
9448
  async function loadExportImagePlugin(engine) {
9501
- engine.checkVersion("4.0.1");
9449
+ engine.checkVersion("4.0.3");
9502
9450
  await engine.pluginManager.register(e => {
9503
9451
  e.pluginManager.addPlugin(new ExportImagePlugin());
9504
9452
  });
@@ -9518,7 +9466,7 @@
9518
9466
  }
9519
9467
 
9520
9468
  async function loadExportJSONPlugin(engine) {
9521
- engine.checkVersion("4.0.1");
9469
+ engine.checkVersion("4.0.3");
9522
9470
  await engine.pluginManager.register(e => {
9523
9471
  e.pluginManager.addPlugin(new ExportJSONPlugin());
9524
9472
  });
@@ -9538,7 +9486,7 @@
9538
9486
  }
9539
9487
 
9540
9488
  async function loadExportVideoPlugin(engine) {
9541
- engine.checkVersion("4.0.1");
9489
+ engine.checkVersion("4.0.3");
9542
9490
  await engine.pluginManager.register(e => {
9543
9491
  e.pluginManager.addPlugin(new ExportVideoPlugin());
9544
9492
  });
@@ -9716,7 +9664,7 @@
9716
9664
  }
9717
9665
 
9718
9666
  async function loadExternalCannonInteraction(engine) {
9719
- engine.checkVersion("4.0.1");
9667
+ engine.checkVersion("4.0.3");
9720
9668
  await engine.pluginManager.register((e) => {
9721
9669
  ensureInteractivityPluginLoaded(e);
9722
9670
  e.pluginManager.addInteractor?.("externalCannon", container => {
@@ -9859,7 +9807,7 @@
9859
9807
  }
9860
9808
 
9861
9809
  async function loadExternalParticleInteraction(engine) {
9862
- engine.checkVersion("4.0.1");
9810
+ engine.checkVersion("4.0.3");
9863
9811
  await engine.pluginManager.register((e) => {
9864
9812
  ensureInteractivityPluginLoaded(e);
9865
9813
  e.pluginManager.addInteractor?.("externalParticle", container => {
@@ -9907,7 +9855,7 @@
9907
9855
  }
9908
9856
 
9909
9857
  async function loadExternalPopInteraction(engine) {
9910
- engine.checkVersion("4.0.1");
9858
+ engine.checkVersion("4.0.3");
9911
9859
  await engine.pluginManager.register((e) => {
9912
9860
  ensureInteractivityPluginLoaded(e);
9913
9861
  e.pluginManager.addInteractor?.("externalPop", container => {
@@ -9948,7 +9896,7 @@
9948
9896
  }
9949
9897
 
9950
9898
  async function loadFilterEffect(engine) {
9951
- engine.checkVersion("4.0.1");
9899
+ engine.checkVersion("4.0.3");
9952
9900
  await engine.pluginManager.register(e => {
9953
9901
  e.pluginManager.addEffect("filter", () => {
9954
9902
  return Promise.resolve(new FilterDrawer());
@@ -10230,7 +10178,7 @@
10230
10178
 
10231
10179
  const fractalNoisePathName = "fractalNoise";
10232
10180
  async function loadFractalNoisePath(engine) {
10233
- engine.checkVersion("4.0.1");
10181
+ engine.checkVersion("4.0.3");
10234
10182
  await engine.pluginManager.register((e) => {
10235
10183
  ensureBaseMoverLoaded(e);
10236
10184
  e.pluginManager.addPathGenerator?.(fractalNoisePathName, container => {
@@ -10480,7 +10428,7 @@
10480
10428
  }
10481
10429
 
10482
10430
  async function loadAbsorbersInteraction(engine) {
10483
- engine.checkVersion("4.0.1");
10431
+ engine.checkVersion("4.0.3");
10484
10432
  await engine.pluginManager.register(async (e) => {
10485
10433
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
10486
10434
  ensureInteractivityPluginLoaded(e);
@@ -10528,7 +10476,7 @@
10528
10476
  }
10529
10477
 
10530
10478
  async function loadAbsorbersPluginSimple(engine) {
10531
- engine.checkVersion("4.0.1");
10479
+ engine.checkVersion("4.0.3");
10532
10480
  await engine.pluginManager.register(async (e) => {
10533
10481
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
10534
10482
  pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
@@ -10893,7 +10841,7 @@
10893
10841
  }
10894
10842
 
10895
10843
  async function loadDestroyUpdater(engine) {
10896
- engine.checkVersion("4.0.1");
10844
+ engine.checkVersion("4.0.3");
10897
10845
  await engine.pluginManager.register(e => {
10898
10846
  e.pluginManager.addParticleUpdater("destroy", container => {
10899
10847
  return Promise.resolve(new DestroyUpdater(e.pluginManager, container));
@@ -10940,7 +10888,7 @@
10940
10888
  }
10941
10889
 
10942
10890
  async function loadEmittersShapeCircle(engine) {
10943
- engine.checkVersion("4.0.1");
10891
+ engine.checkVersion("4.0.3");
10944
10892
  await engine.pluginManager.register((e) => {
10945
10893
  ensureEmittersPluginLoaded(e);
10946
10894
  e.pluginManager.addEmitterShapeGenerator?.("circle", new EmittersCircleShapeGenerator());
@@ -11021,7 +10969,7 @@
11021
10969
  }
11022
10970
 
11023
10971
  async function loadEmittersShapeSquare(engine) {
11024
- engine.checkVersion("4.0.1");
10972
+ engine.checkVersion("4.0.3");
11025
10973
  await engine.pluginManager.register((e) => {
11026
10974
  ensureEmittersPluginLoaded(e);
11027
10975
  e.pluginManager.addEmitterShapeGenerator?.("square", new EmittersSquareShapeGenerator());
@@ -11214,7 +11162,7 @@
11214
11162
  }
11215
11163
 
11216
11164
  async function loadExternalDragInteraction(engine) {
11217
- engine.checkVersion("4.0.1");
11165
+ engine.checkVersion("4.0.3");
11218
11166
  await engine.pluginManager.register((e) => {
11219
11167
  ensureInteractivityPluginLoaded(e);
11220
11168
  e.pluginManager.addInteractor?.("externalDrag", container => {
@@ -11418,7 +11366,7 @@
11418
11366
  }
11419
11367
 
11420
11368
  async function loadExternalTrailInteraction(engine) {
11421
- engine.checkVersion("4.0.1");
11369
+ engine.checkVersion("4.0.3");
11422
11370
  await engine.pluginManager.register((e) => {
11423
11371
  ensureInteractivityPluginLoaded(e);
11424
11372
  e.pluginManager.addInteractor?.("externalTrail", container => {
@@ -11578,7 +11526,7 @@
11578
11526
  }
11579
11527
 
11580
11528
  async function loadRollUpdater(engine) {
11581
- engine.checkVersion("4.0.1");
11529
+ engine.checkVersion("4.0.3");
11582
11530
  await engine.pluginManager.register(e => {
11583
11531
  e.pluginManager.addParticleUpdater("roll", () => {
11584
11532
  return Promise.resolve(new RollUpdater(e.pluginManager));
@@ -11586,6 +11534,58 @@
11586
11534
  });
11587
11535
  }
11588
11536
 
11537
+ class Blend {
11538
+ enable;
11539
+ mode;
11540
+ constructor() {
11541
+ this.mode = "destination-out";
11542
+ this.enable = false;
11543
+ }
11544
+ load(data) {
11545
+ if (isNull(data)) {
11546
+ return;
11547
+ }
11548
+ if (data.mode !== undefined) {
11549
+ this.mode = data.mode;
11550
+ }
11551
+ if (data.enable !== undefined) {
11552
+ this.enable = data.enable;
11553
+ }
11554
+ }
11555
+ }
11556
+
11557
+ class BlendPlugin {
11558
+ id = "blend";
11559
+ async getPlugin(container) {
11560
+ const { BlendPluginInstance } = await Promise.resolve().then(function () { return BlendPluginInstance$1; });
11561
+ return new BlendPluginInstance(container);
11562
+ }
11563
+ loadOptions(_container, options, source) {
11564
+ if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
11565
+ return;
11566
+ }
11567
+ let blendOptions = options.blend;
11568
+ if (!blendOptions?.load) {
11569
+ options.blend = blendOptions = new Blend();
11570
+ }
11571
+ blendOptions.load(source?.blend);
11572
+ }
11573
+ loadParticlesOptions(_container, options, source) {
11574
+ options.blend ??= new Blend();
11575
+ options.blend.load(source?.blend);
11576
+ }
11577
+ needsPlugin(options) {
11578
+ return !!options?.blend?.enable || !!options?.particles?.blend?.enable;
11579
+ }
11580
+ }
11581
+
11582
+ async function loadBlendPlugin(engine) {
11583
+ engine.checkVersion("4.0.3");
11584
+ await engine.pluginManager.register(e => {
11585
+ e.pluginManager.addPlugin(new BlendPlugin());
11586
+ });
11587
+ }
11588
+
11589
11589
  const minAngle$2 = 0;
11590
11590
  function drawCircle(data) {
11591
11591
  const { context, particle, radius } = data;
@@ -11617,7 +11617,7 @@
11617
11617
  }
11618
11618
 
11619
11619
  async function loadCircleShape(engine) {
11620
- engine.checkVersion("4.0.1");
11620
+ engine.checkVersion("4.0.3");
11621
11621
  await engine.pluginManager.register(e => {
11622
11622
  e.pluginManager.addShape(["circle"], () => {
11623
11623
  return Promise.resolve(new CircleDrawer());
@@ -11665,7 +11665,7 @@
11665
11665
  }
11666
11666
 
11667
11667
  async function loadHexColorPlugin(engine) {
11668
- engine.checkVersion("4.0.1");
11668
+ engine.checkVersion("4.0.3");
11669
11669
  await engine.pluginManager.register(e => {
11670
11670
  e.pluginManager.addColorManager("hex", new HexColorManager());
11671
11671
  });
@@ -11718,7 +11718,7 @@
11718
11718
  }
11719
11719
 
11720
11720
  async function loadHslColorPlugin(engine) {
11721
- engine.checkVersion("4.0.1");
11721
+ engine.checkVersion("4.0.3");
11722
11722
  await engine.pluginManager.register(e => {
11723
11723
  e.pluginManager.addColorManager("hsl", new HslColorManager());
11724
11724
  });
@@ -11767,7 +11767,7 @@
11767
11767
  }
11768
11768
 
11769
11769
  async function loadOpacityUpdater(engine) {
11770
- engine.checkVersion("4.0.1");
11770
+ engine.checkVersion("4.0.3");
11771
11771
  await engine.pluginManager.register(e => {
11772
11772
  e.pluginManager.addParticleUpdater("opacity", container => {
11773
11773
  return Promise.resolve(new OpacityUpdater(container));
@@ -12119,7 +12119,7 @@
12119
12119
  }
12120
12120
 
12121
12121
  async function loadOutModesUpdater(engine) {
12122
- engine.checkVersion("4.0.1");
12122
+ engine.checkVersion("4.0.3");
12123
12123
  await engine.pluginManager.register(e => {
12124
12124
  e.pluginManager.addParticleUpdater("outModes", container => {
12125
12125
  return Promise.resolve(new OutOfCanvasUpdater(container));
@@ -12190,7 +12190,7 @@
12190
12190
  }
12191
12191
 
12192
12192
  async function loadPaintUpdater(engine) {
12193
- engine.checkVersion("4.0.1");
12193
+ engine.checkVersion("4.0.3");
12194
12194
  await engine.pluginManager.register(e => {
12195
12195
  e.pluginManager.addParticleUpdater("paint", container => {
12196
12196
  return Promise.resolve(new PaintUpdater(e.pluginManager, container));
@@ -12245,7 +12245,7 @@
12245
12245
  }
12246
12246
 
12247
12247
  async function loadRgbColorPlugin(engine) {
12248
- engine.checkVersion("4.0.1");
12248
+ engine.checkVersion("4.0.3");
12249
12249
  await engine.pluginManager.register(e => {
12250
12250
  e.pluginManager.addColorManager("rgb", new RgbColorManager());
12251
12251
  });
@@ -12288,7 +12288,7 @@
12288
12288
  }
12289
12289
 
12290
12290
  async function loadSizeUpdater(engine) {
12291
- engine.checkVersion("4.0.1");
12291
+ engine.checkVersion("4.0.3");
12292
12292
  await engine.pluginManager.register(e => {
12293
12293
  e.pluginManager.addParticleUpdater("size", container => {
12294
12294
  return Promise.resolve(new SizeUpdater(container));
@@ -12297,9 +12297,10 @@
12297
12297
  }
12298
12298
 
12299
12299
  async function loadBasic(engine) {
12300
- engine.checkVersion("4.0.1");
12300
+ engine.checkVersion("4.0.3");
12301
12301
  await engine.pluginManager.register(async (e) => {
12302
12302
  await Promise.all([
12303
+ loadBlendPlugin(e),
12303
12304
  loadHexColorPlugin(e),
12304
12305
  loadHslColorPlugin(e),
12305
12306
  loadRgbColorPlugin(e),
@@ -12319,7 +12320,7 @@
12319
12320
  easingsFunctions.set(exports.EasingType.easeInOutQuad, value => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2));
12320
12321
 
12321
12322
  async function loadEasingQuadPlugin(engine) {
12322
- engine.checkVersion("4.0.1");
12323
+ engine.checkVersion("4.0.3");
12323
12324
  await engine.pluginManager.register(e => {
12324
12325
  for (const [easing, easingFn] of easingsFunctions) {
12325
12326
  e.pluginManager.addEasing(easing, easingFn);
@@ -12413,7 +12414,7 @@
12413
12414
  }
12414
12415
 
12415
12416
  async function loadEmojiShape(engine) {
12416
- engine.checkVersion("4.0.1");
12417
+ engine.checkVersion("4.0.3");
12417
12418
  await engine.pluginManager.register(e => {
12418
12419
  e.pluginManager.addShape(validTypes$1, () => Promise.resolve(new EmojiDrawer()));
12419
12420
  });
@@ -12663,7 +12664,7 @@
12663
12664
  };
12664
12665
 
12665
12666
  async function loadExternalAttractInteraction(engine) {
12666
- engine.checkVersion("4.0.1");
12667
+ engine.checkVersion("4.0.3");
12667
12668
  await engine.pluginManager.register((e) => {
12668
12669
  ensureInteractivityPluginLoaded(e);
12669
12670
  e.pluginManager.addInteractor?.("externalAttract", container => {
@@ -12860,7 +12861,7 @@
12860
12861
  }
12861
12862
 
12862
12863
  async function loadExternalBounceInteraction(engine) {
12863
- engine.checkVersion("4.0.1");
12864
+ engine.checkVersion("4.0.3");
12864
12865
  await engine.pluginManager.register((e) => {
12865
12866
  ensureInteractivityPluginLoaded(e);
12866
12867
  e.pluginManager.addInteractor?.("externalBounce", container => {
@@ -13240,7 +13241,7 @@
13240
13241
  }
13241
13242
 
13242
13243
  async function loadExternalBubbleInteraction(engine) {
13243
- engine.checkVersion("4.0.1");
13244
+ engine.checkVersion("4.0.3");
13244
13245
  await engine.pluginManager.register((e) => {
13245
13246
  ensureInteractivityPluginLoaded(e);
13246
13247
  e.pluginManager.addInteractor?.("externalBubble", container => {
@@ -13385,7 +13386,7 @@
13385
13386
  }
13386
13387
 
13387
13388
  async function loadExternalConnectInteraction(engine) {
13388
- engine.checkVersion("4.0.1");
13389
+ engine.checkVersion("4.0.3");
13389
13390
  await engine.pluginManager.register((e) => {
13390
13391
  ensureInteractivityPluginLoaded(e);
13391
13392
  e.pluginManager.addInteractor?.("externalConnect", container => {
@@ -13497,7 +13498,7 @@
13497
13498
  }
13498
13499
 
13499
13500
  async function loadExternalDestroyInteraction(engine) {
13500
- engine.checkVersion("4.0.1");
13501
+ engine.checkVersion("4.0.3");
13501
13502
  await engine.pluginManager.register((e) => {
13502
13503
  ensureInteractivityPluginLoaded(e);
13503
13504
  e.pluginManager.addInteractor?.("externalDestroy", async (container) => {
@@ -13641,7 +13642,7 @@
13641
13642
  }
13642
13643
 
13643
13644
  async function loadExternalGrabInteraction(engine) {
13644
- engine.checkVersion("4.0.1");
13645
+ engine.checkVersion("4.0.3");
13645
13646
  await engine.pluginManager.register((e) => {
13646
13647
  ensureInteractivityPluginLoaded(e);
13647
13648
  e.pluginManager.addInteractor?.("externalGrab", container => {
@@ -13722,7 +13723,7 @@
13722
13723
  }
13723
13724
 
13724
13725
  async function loadExternalParallaxInteraction(engine) {
13725
- engine.checkVersion("4.0.1");
13726
+ engine.checkVersion("4.0.3");
13726
13727
  await engine.pluginManager.register((e) => {
13727
13728
  ensureInteractivityPluginLoaded(e);
13728
13729
  e.pluginManager.addInteractor?.("externalParallax", container => {
@@ -13765,7 +13766,7 @@
13765
13766
  }
13766
13767
 
13767
13768
  async function loadExternalPauseInteraction(engine) {
13768
- engine.checkVersion("4.0.1");
13769
+ engine.checkVersion("4.0.3");
13769
13770
  await engine.pluginManager.register((e) => {
13770
13771
  ensureInteractivityPluginLoaded(e);
13771
13772
  e.pluginManager.addInteractor?.("externalPause", container => {
@@ -13850,7 +13851,7 @@
13850
13851
  }
13851
13852
 
13852
13853
  async function loadExternalPushInteraction(engine) {
13853
- engine.checkVersion("4.0.1");
13854
+ engine.checkVersion("4.0.3");
13854
13855
  await engine.pluginManager.register((e) => {
13855
13856
  ensureInteractivityPluginLoaded(e);
13856
13857
  e.pluginManager.addInteractor?.("externalPush", container => {
@@ -13913,7 +13914,7 @@
13913
13914
  }
13914
13915
 
13915
13916
  async function loadExternalRemoveInteraction(engine) {
13916
- engine.checkVersion("4.0.1");
13917
+ engine.checkVersion("4.0.3");
13917
13918
  await engine.pluginManager.register((e) => {
13918
13919
  ensureInteractivityPluginLoaded(e);
13919
13920
  e.pluginManager.addInteractor?.("externalRemove", container => {
@@ -14246,7 +14247,7 @@
14246
14247
  };
14247
14248
 
14248
14249
  async function loadExternalRepulseInteraction(engine) {
14249
- engine.checkVersion("4.0.1");
14250
+ engine.checkVersion("4.0.3");
14250
14251
  await engine.pluginManager.register((e) => {
14251
14252
  ensureInteractivityPluginLoaded(e);
14252
14253
  const pluginManager = e.pluginManager;
@@ -14328,7 +14329,7 @@
14328
14329
  }
14329
14330
 
14330
14331
  async function loadExternalSlowInteraction(engine) {
14331
- engine.checkVersion("4.0.1");
14332
+ engine.checkVersion("4.0.3");
14332
14333
  await engine.pluginManager.register((e) => {
14333
14334
  ensureInteractivityPluginLoaded(e);
14334
14335
  e.pluginManager.addInteractor?.("externalSlow", container => {
@@ -15156,7 +15157,7 @@
15156
15157
  };
15157
15158
  }
15158
15159
  async function loadImageShape(engine) {
15159
- engine.checkVersion("4.0.1");
15160
+ engine.checkVersion("4.0.3");
15160
15161
  await engine.pluginManager.register(e => {
15161
15162
  addLoadImageToEngine(e);
15162
15163
  e.pluginManager.addPlugin(new ImagePreloaderPlugin(e));
@@ -15323,7 +15324,7 @@
15323
15324
  }
15324
15325
 
15325
15326
  async function loadLifeUpdater(engine) {
15326
- engine.checkVersion("4.0.1");
15327
+ engine.checkVersion("4.0.3");
15327
15328
  await engine.pluginManager.register(e => {
15328
15329
  e.pluginManager.addParticleUpdater("life", container => {
15329
15330
  return Promise.resolve(new LifeUpdater(container));
@@ -15349,7 +15350,7 @@
15349
15350
  }
15350
15351
 
15351
15352
  async function loadLineShape(engine) {
15352
- engine.checkVersion("4.0.1");
15353
+ engine.checkVersion("4.0.3");
15353
15354
  await engine.pluginManager.register(e => {
15354
15355
  e.pluginManager.addShape(["line"], () => Promise.resolve(new LineDrawer()));
15355
15356
  });
@@ -15442,7 +15443,7 @@
15442
15443
  }
15443
15444
 
15444
15445
  async function loadParticlesAttractInteraction(engine) {
15445
- engine.checkVersion("4.0.1");
15446
+ engine.checkVersion("4.0.3");
15446
15447
  await engine.pluginManager.register((e) => {
15447
15448
  ensureInteractivityPluginLoaded(e);
15448
15449
  e.pluginManager.addInteractor?.("particlesAttract", container => {
@@ -15682,7 +15683,7 @@
15682
15683
  }
15683
15684
 
15684
15685
  async function loadParticlesCollisionsInteraction(engine) {
15685
- engine.checkVersion("4.0.1");
15686
+ engine.checkVersion("4.0.3");
15686
15687
  await engine.pluginManager.register((e) => {
15687
15688
  ensureInteractivityPluginLoaded(e);
15688
15689
  e.pluginManager.addPlugin(new OverlapPlugin());
@@ -15985,7 +15986,7 @@
15985
15986
  }
15986
15987
 
15987
15988
  async function loadParticlesLinksInteraction(engine) {
15988
- engine.checkVersion("4.0.1");
15989
+ engine.checkVersion("4.0.3");
15989
15990
  await engine.pluginManager.register((e) => {
15990
15991
  const pluginManager = e.pluginManager;
15991
15992
  ensureInteractivityPluginLoaded(e);
@@ -16075,19 +16076,19 @@
16075
16076
  }
16076
16077
 
16077
16078
  async function loadGenericPolygonShape(engine) {
16078
- engine.checkVersion("4.0.1");
16079
+ engine.checkVersion("4.0.3");
16079
16080
  await engine.pluginManager.register(e => {
16080
16081
  e.pluginManager.addShape(["polygon"], () => Promise.resolve(new PolygonDrawer()));
16081
16082
  });
16082
16083
  }
16083
16084
  async function loadTriangleShape(engine) {
16084
- engine.checkVersion("4.0.1");
16085
+ engine.checkVersion("4.0.3");
16085
16086
  await engine.pluginManager.register(e => {
16086
16087
  e.pluginManager.addShape(["triangle"], () => Promise.resolve(new TriangleDrawer()));
16087
16088
  });
16088
16089
  }
16089
16090
  async function loadPolygonShape(engine) {
16090
- engine.checkVersion("4.0.1");
16091
+ engine.checkVersion("4.0.3");
16091
16092
  await Promise.all([
16092
16093
  loadGenericPolygonShape(engine),
16093
16094
  loadTriangleShape(engine),
@@ -16220,7 +16221,7 @@
16220
16221
  }
16221
16222
 
16222
16223
  async function loadRotateUpdater(engine) {
16223
- engine.checkVersion("4.0.1");
16224
+ engine.checkVersion("4.0.3");
16224
16225
  await engine.pluginManager.register(e => {
16225
16226
  e.pluginManager.addParticleUpdater("rotate", container => {
16226
16227
  return Promise.resolve(new RotateUpdater(container));
@@ -16244,7 +16245,7 @@
16244
16245
  }
16245
16246
 
16246
16247
  async function loadSquareShape(engine) {
16247
- engine.checkVersion("4.0.1");
16248
+ engine.checkVersion("4.0.3");
16248
16249
  await engine.pluginManager.register(e => {
16249
16250
  e.pluginManager.addShape(["edge", "square"], () => Promise.resolve(new SquareDrawer()));
16250
16251
  });
@@ -16278,14 +16279,14 @@
16278
16279
  }
16279
16280
 
16280
16281
  async function loadStarShape(engine) {
16281
- engine.checkVersion("4.0.1");
16282
+ engine.checkVersion("4.0.3");
16282
16283
  await engine.pluginManager.register(e => {
16283
16284
  e.pluginManager.addShape(["star"], () => Promise.resolve(new StarDrawer()));
16284
16285
  });
16285
16286
  }
16286
16287
 
16287
16288
  async function loadSlim(engine) {
16288
- engine.checkVersion("4.0.1");
16289
+ engine.checkVersion("4.0.3");
16289
16290
  await engine.pluginManager.register(async (e) => {
16290
16291
  const loadInteractivityForSlim = async (e) => {
16291
16292
  await loadInteractivityPlugin(e);
@@ -16402,7 +16403,7 @@
16402
16403
  }
16403
16404
 
16404
16405
  async function loadTextShape(engine) {
16405
- engine.checkVersion("4.0.1");
16406
+ engine.checkVersion("4.0.3");
16406
16407
  await engine.pluginManager.register(e => {
16407
16408
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new TextDrawer()));
16408
16409
  });
@@ -16539,7 +16540,7 @@
16539
16540
  }
16540
16541
 
16541
16542
  async function loadTiltUpdater(engine) {
16542
- engine.checkVersion("4.0.1");
16543
+ engine.checkVersion("4.0.3");
16543
16544
  await engine.pluginManager.register(e => {
16544
16545
  e.pluginManager.addParticleUpdater("tilt", container => {
16545
16546
  return Promise.resolve(new TiltUpdater(container));
@@ -16672,7 +16673,7 @@
16672
16673
  }
16673
16674
 
16674
16675
  async function loadTwinkleUpdater(engine) {
16675
- engine.checkVersion("4.0.1");
16676
+ engine.checkVersion("4.0.3");
16676
16677
  await engine.pluginManager.register(e => {
16677
16678
  e.pluginManager.addParticleUpdater("twinkle", container => {
16678
16679
  return Promise.resolve(new TwinkleUpdater(e.pluginManager, container));
@@ -16794,7 +16795,7 @@
16794
16795
  }
16795
16796
 
16796
16797
  async function loadWobbleUpdater(engine) {
16797
- engine.checkVersion("4.0.1");
16798
+ engine.checkVersion("4.0.3");
16798
16799
  await engine.pluginManager.register(e => {
16799
16800
  e.pluginManager.addParticleUpdater("wobble", container => {
16800
16801
  return Promise.resolve(new WobbleUpdater(container));
@@ -16803,7 +16804,7 @@
16803
16804
  }
16804
16805
 
16805
16806
  async function loadFull(engine) {
16806
- engine.checkVersion("4.0.1");
16807
+ engine.checkVersion("4.0.3");
16807
16808
  await engine.pluginManager.register(async (e) => {
16808
16809
  const loadEmittersPluginBundle = async (e) => {
16809
16810
  await loadEmittersPlugin(e);
@@ -17157,7 +17158,7 @@
17157
17158
  }
17158
17159
 
17159
17160
  async function loadGradientUpdater(engine) {
17160
- engine.checkVersion("4.0.1");
17161
+ engine.checkVersion("4.0.3");
17161
17162
  await engine.pluginManager.register(e => {
17162
17163
  e.pluginManager.addParticleUpdater("gradient", container => {
17163
17164
  return Promise.resolve(new GradientUpdater(e.pluginManager, container));
@@ -17277,7 +17278,7 @@
17277
17278
 
17278
17279
  const gridPathName = "gridPathGenerator";
17279
17280
  async function loadGridPath(engine) {
17280
- engine.checkVersion("4.0.1");
17281
+ engine.checkVersion("4.0.3");
17281
17282
  await engine.pluginManager.register((e) => {
17282
17283
  ensureBaseMoverLoaded(e);
17283
17284
  e.pluginManager.addPathGenerator?.(gridPathName, container => {
@@ -17306,7 +17307,7 @@
17306
17307
  }
17307
17308
 
17308
17309
  async function loadHeartShape(engine) {
17309
- engine.checkVersion("4.0.1");
17310
+ engine.checkVersion("4.0.3");
17310
17311
  await engine.pluginManager.register(e => {
17311
17312
  e.pluginManager.addShape(["heart"], () => Promise.resolve(new HeartDrawer()));
17312
17313
  });
@@ -17422,7 +17423,7 @@
17422
17423
  }
17423
17424
 
17424
17425
  async function loadHsvColorPlugin(engine) {
17425
- engine.checkVersion("4.0.1");
17426
+ engine.checkVersion("4.0.3");
17426
17427
  await engine.pluginManager.register(e => {
17427
17428
  e.pluginManager.addColorManager("hsv", new HsvColorManager());
17428
17429
  });
@@ -17507,7 +17508,7 @@
17507
17508
  }
17508
17509
 
17509
17510
  async function loadHwbColorPlugin(engine) {
17510
- engine.checkVersion("4.0.1");
17511
+ engine.checkVersion("4.0.3");
17511
17512
  await engine.pluginManager.register(e => {
17512
17513
  e.pluginManager.addColorManager("hwb", new HwbColorManager());
17513
17514
  });
@@ -17670,7 +17671,7 @@
17670
17671
  }
17671
17672
 
17672
17673
  async function loadInfectionPlugin(engine) {
17673
- engine.checkVersion("4.0.1");
17674
+ engine.checkVersion("4.0.3");
17674
17675
  await engine.pluginManager.register((e) => {
17675
17676
  ensureInteractivityPluginLoaded(e);
17676
17677
  e.pluginManager.addPlugin(new InfectionPlugin());
@@ -17696,7 +17697,7 @@
17696
17697
  }
17697
17698
 
17698
17699
  async function loadInfinityShape(engine) {
17699
- engine.checkVersion("4.0.1");
17700
+ engine.checkVersion("4.0.3");
17700
17701
  await engine.pluginManager.register(e => {
17701
17702
  e.pluginManager.addShape(["infinity"], () => Promise.resolve(new InfinityDrawer()));
17702
17703
  });
@@ -17797,7 +17798,7 @@
17797
17798
  }
17798
17799
 
17799
17800
  async function loadLabColorPlugin(engine) {
17800
- engine.checkVersion("4.0.1");
17801
+ engine.checkVersion("4.0.3");
17801
17802
  await engine.pluginManager.register(e => {
17802
17803
  e.pluginManager.addColorManager("lab", new LabColorManager());
17803
17804
  });
@@ -17898,7 +17899,7 @@
17898
17899
  }
17899
17900
 
17900
17901
  async function loadLchColorPlugin(engine) {
17901
- engine.checkVersion("4.0.1");
17902
+ engine.checkVersion("4.0.3");
17902
17903
  await engine.pluginManager.register(e => {
17903
17904
  e.pluginManager.addColorManager("lch", new LchColorManager());
17904
17905
  });
@@ -17952,7 +17953,7 @@
17952
17953
 
17953
17954
  const levyPathName = "levyPathGenerator";
17954
17955
  async function loadLevyPath(engine) {
17955
- engine.checkVersion("4.0.1");
17956
+ engine.checkVersion("4.0.3");
17956
17957
  await engine.pluginManager.register((e) => {
17957
17958
  ensureBaseMoverLoaded(e);
17958
17959
  e.pluginManager.addPathGenerator?.(levyPathName, container => {
@@ -18187,7 +18188,7 @@
18187
18188
  }
18188
18189
 
18189
18190
  async function loadLightInteraction(engine) {
18190
- engine.checkVersion("4.0.1");
18191
+ engine.checkVersion("4.0.3");
18191
18192
  await engine.pluginManager.register((e) => {
18192
18193
  ensureInteractivityPluginLoaded(e);
18193
18194
  e.pluginManager.addInteractor?.("externalLight", container => {
@@ -18245,7 +18246,7 @@
18245
18246
  }
18246
18247
 
18247
18248
  async function loadManualParticlesPlugin(engine) {
18248
- engine.checkVersion("4.0.1");
18249
+ engine.checkVersion("4.0.3");
18249
18250
  await engine.pluginManager.register(e => {
18250
18251
  e.pluginManager.addPlugin(new ManualParticlesPlugin());
18251
18252
  });
@@ -18466,7 +18467,7 @@
18466
18467
  }
18467
18468
 
18468
18469
  async function loadMatrixShape(engine) {
18469
- engine.checkVersion("4.0.1");
18470
+ engine.checkVersion("4.0.3");
18470
18471
  await engine.pluginManager.register(e => {
18471
18472
  e.pluginManager.addShape(["matrix"], () => Promise.resolve(new MatrixDrawer()));
18472
18473
  });
@@ -18532,7 +18533,7 @@
18532
18533
  }
18533
18534
 
18534
18535
  async function loadMotionPlugin(engine) {
18535
- engine.checkVersion("4.0.1");
18536
+ engine.checkVersion("4.0.3");
18536
18537
  await engine.pluginManager.register(e => {
18537
18538
  e.pluginManager.addPlugin(new MotionPlugin());
18538
18539
  });
@@ -18715,7 +18716,7 @@
18715
18716
  }
18716
18717
 
18717
18718
  async function loadNamedColorPlugin(engine) {
18718
- engine.checkVersion("4.0.1");
18719
+ engine.checkVersion("4.0.3");
18719
18720
  await engine.pluginManager.register(e => {
18720
18721
  e.pluginManager.addColorManager("named", new NamedColorManager());
18721
18722
  });
@@ -18798,7 +18799,7 @@
18798
18799
  }
18799
18800
 
18800
18801
  async function loadOklabColorPlugin(engine) {
18801
- engine.checkVersion("4.0.1");
18802
+ engine.checkVersion("4.0.3");
18802
18803
  await engine.pluginManager.register(e => {
18803
18804
  e.pluginManager.addColorManager("oklab", new OklabColorManager());
18804
18805
  });
@@ -18881,7 +18882,7 @@
18881
18882
  }
18882
18883
 
18883
18884
  async function loadOklchColorPlugin(engine) {
18884
- engine.checkVersion("4.0.1");
18885
+ engine.checkVersion("4.0.3");
18885
18886
  await engine.pluginManager.register(e => {
18886
18887
  e.pluginManager.addColorManager("oklch", new OklchColorManager());
18887
18888
  });
@@ -19037,7 +19038,7 @@
19037
19038
  }
19038
19039
 
19039
19040
  async function loadOrbitUpdater(engine) {
19040
- engine.checkVersion("4.0.1");
19041
+ engine.checkVersion("4.0.3");
19041
19042
  await engine.pluginManager.register(e => {
19042
19043
  e.pluginManager.addParticleUpdater("orbit", container => {
19043
19044
  return Promise.resolve(new OrbitUpdater(e.pluginManager, container));
@@ -19077,7 +19078,7 @@
19077
19078
  }
19078
19079
 
19079
19080
  async function loadParticlesEffect(engine) {
19080
- engine.checkVersion("4.0.1");
19081
+ engine.checkVersion("4.0.3");
19081
19082
  await engine.pluginManager.register(e => {
19082
19083
  e.pluginManager.addEffect("particles", container => {
19083
19084
  return Promise.resolve(new ParticlesDrawer(container));
@@ -19191,7 +19192,7 @@
19191
19192
  }
19192
19193
 
19193
19194
  async function loadParticlesRepulseInteraction(engine) {
19194
- engine.checkVersion("4.0.1");
19195
+ engine.checkVersion("4.0.3");
19195
19196
  await engine.pluginManager.register((e) => {
19196
19197
  ensureInteractivityPluginLoaded(e);
19197
19198
  e.pluginManager.addInteractor?.("particlesRepulse", container => {
@@ -19218,7 +19219,7 @@
19218
19219
  }
19219
19220
 
19220
19221
  async function loadPathShape(engine) {
19221
- engine.checkVersion("4.0.1");
19222
+ engine.checkVersion("4.0.3");
19222
19223
  await engine.pluginManager.register(e => {
19223
19224
  e.pluginManager.addShape(["path"], () => Promise.resolve(new PathDrawer()));
19224
19225
  });
@@ -19622,7 +19623,7 @@
19622
19623
 
19623
19624
  const perlinNoisePathName = "perlinNoise";
19624
19625
  async function loadPerlinNoisePath(engine) {
19625
- engine.checkVersion("4.0.1");
19626
+ engine.checkVersion("4.0.3");
19626
19627
  await engine.pluginManager.register((e) => {
19627
19628
  ensureBaseMoverLoaded(e);
19628
19629
  e.pluginManager.addPathGenerator?.(perlinNoisePathName, container => {
@@ -19685,7 +19686,7 @@
19685
19686
  }
19686
19687
 
19687
19688
  async function loadPoissonDiscPlugin(engine) {
19688
- engine.checkVersion("4.0.1");
19689
+ engine.checkVersion("4.0.3");
19689
19690
  await engine.pluginManager.register(e => {
19690
19691
  e.pluginManager.addPlugin(new PoissonDiscPlugin());
19691
19692
  });
@@ -19906,7 +19907,7 @@
19906
19907
  }
19907
19908
 
19908
19909
  async function loadPolygonMaskPlugin(engine) {
19909
- engine.checkVersion("4.0.1");
19910
+ engine.checkVersion("4.0.3");
19910
19911
  await engine.pluginManager.register(e => {
19911
19912
  e.pluginManager.addPlugin(new PolygonMaskPlugin(e.pluginManager));
19912
19913
  });
@@ -19972,7 +19973,7 @@
19972
19973
 
19973
19974
  const polygonPathName = "polygonPathGenerator";
19974
19975
  async function loadPolygonPath(engine) {
19975
- engine.checkVersion("4.0.1");
19976
+ engine.checkVersion("4.0.3");
19976
19977
  await engine.pluginManager.register((e) => {
19977
19978
  ensureBaseMoverLoaded(e);
19978
19979
  e.pluginManager.addPathGenerator?.(polygonPathName, container => {
@@ -20002,7 +20003,7 @@
20002
20003
 
20003
20004
  const randomPathName = "randomPathGenerator";
20004
20005
  async function loadRandomPath(engine) {
20005
- engine.checkVersion("4.0.1");
20006
+ engine.checkVersion("4.0.3");
20006
20007
  await engine.pluginManager.register((e) => {
20007
20008
  ensureBaseMoverLoaded(e);
20008
20009
  e.pluginManager.addPathGenerator?.(randomPathName, () => {
@@ -20087,7 +20088,7 @@
20087
20088
  }
20088
20089
 
20089
20090
  async function loadResponsivePlugin(engine) {
20090
- engine.checkVersion("4.0.1");
20091
+ engine.checkVersion("4.0.3");
20091
20092
  await engine.pluginManager.register(e => {
20092
20093
  e.pluginManager.addPlugin(new ResponsivePlugin());
20093
20094
  });
@@ -20136,7 +20137,7 @@
20136
20137
  }
20137
20138
 
20138
20139
  async function loadRoundedPolygonShape(engine) {
20139
- engine.checkVersion("4.0.1");
20140
+ engine.checkVersion("4.0.3");
20140
20141
  await engine.pluginManager.register(e => {
20141
20142
  e.pluginManager.addShape(["rounded-polygon"], () => Promise.resolve(new RoundedPolygonDrawer()));
20142
20143
  });
@@ -20183,7 +20184,7 @@
20183
20184
  }
20184
20185
 
20185
20186
  async function loadRoundedRectShape(engine) {
20186
- engine.checkVersion("4.0.1");
20187
+ engine.checkVersion("4.0.3");
20187
20188
  await engine.pluginManager.register(e => {
20188
20189
  e.pluginManager.addShape(["rounded-rect"], () => Promise.resolve(new RoundedRectDrawer()));
20189
20190
  });
@@ -20341,7 +20342,7 @@
20341
20342
 
20342
20343
  const svgPathName = "svgPathGenerator";
20343
20344
  async function loadSVGPath(engine) {
20344
- engine.checkVersion("4.0.1");
20345
+ engine.checkVersion("4.0.3");
20345
20346
  await engine.pluginManager.register((e) => {
20346
20347
  ensureBaseMoverLoaded(e);
20347
20348
  e.pluginManager.addPathGenerator?.(svgPathName, container => {
@@ -20382,7 +20383,7 @@
20382
20383
  }
20383
20384
 
20384
20385
  async function loadShadowEffect(engine) {
20385
- engine.checkVersion("4.0.1");
20386
+ engine.checkVersion("4.0.3");
20386
20387
  await engine.pluginManager.register(e => {
20387
20388
  e.pluginManager.addEffect("shadow", container => {
20388
20389
  return Promise.resolve(new ShadowDrawer(e.pluginManager, container));
@@ -20404,7 +20405,7 @@
20404
20405
 
20405
20406
  const simplexNoisePathName = "simplexNoise";
20406
20407
  async function loadSimplexNoisePath(engine) {
20407
- engine.checkVersion("4.0.1");
20408
+ engine.checkVersion("4.0.3");
20408
20409
  await engine.pluginManager.register((e) => {
20409
20410
  ensureBaseMoverLoaded(e);
20410
20411
  e.pluginManager.addPathGenerator?.(simplexNoisePathName, container => {
@@ -20786,7 +20787,7 @@
20786
20787
  }
20787
20788
 
20788
20789
  async function loadSoundsPlugin(engine) {
20789
- engine.checkVersion("4.0.1");
20790
+ engine.checkVersion("4.0.3");
20790
20791
  await engine.pluginManager.register(e => {
20791
20792
  e.pluginManager.addPlugin(new SoundsPlugin(e));
20792
20793
  });
@@ -20855,7 +20856,7 @@
20855
20856
 
20856
20857
  const spiralPathName = "spiralPathGenerator";
20857
20858
  async function loadSpiralPath(engine) {
20858
- engine.checkVersion("4.0.1");
20859
+ engine.checkVersion("4.0.3");
20859
20860
  await engine.pluginManager.register((e) => {
20860
20861
  ensureBaseMoverLoaded(e);
20861
20862
  e.pluginManager.addPathGenerator?.(spiralPathName, container => {
@@ -20895,7 +20896,7 @@
20895
20896
  }
20896
20897
 
20897
20898
  async function loadSpiralShape(engine) {
20898
- engine.checkVersion("4.0.1");
20899
+ engine.checkVersion("4.0.3");
20899
20900
  await engine.pluginManager.register(e => {
20900
20901
  e.pluginManager.addShape(["spiral"], () => Promise.resolve(new SpiralDrawer()));
20901
20902
  });
@@ -20939,7 +20940,7 @@
20939
20940
  }
20940
20941
 
20941
20942
  async function loadSquircleShape(engine) {
20942
- engine.checkVersion("4.0.1");
20943
+ engine.checkVersion("4.0.3");
20943
20944
  await engine.pluginManager.register(e => {
20944
20945
  e.pluginManager.addShape(["squircle"], () => Promise.resolve(new SquircleDrawer()));
20945
20946
  });
@@ -21060,7 +21061,7 @@
21060
21061
  }
21061
21062
 
21062
21063
  async function loadThemesPlugin(engine) {
21063
- engine.checkVersion("4.0.1");
21064
+ engine.checkVersion("4.0.3");
21064
21065
  await engine.pluginManager.register(e => {
21065
21066
  e.pluginManager.addPlugin(new ThemesPlugin());
21066
21067
  });
@@ -21143,7 +21144,7 @@
21143
21144
  }
21144
21145
 
21145
21146
  async function loadTrailEffect(engine) {
21146
- engine.checkVersion("4.0.1");
21147
+ engine.checkVersion("4.0.3");
21147
21148
  await engine.pluginManager.register(e => {
21148
21149
  e.pluginManager.addEffect("trail", container => {
21149
21150
  return Promise.resolve(new TrailDrawer(container));
@@ -21218,7 +21219,7 @@
21218
21219
  }
21219
21220
 
21220
21221
  async function loadTrailPlugin(engine) {
21221
- engine.checkVersion("4.0.1");
21222
+ engine.checkVersion("4.0.3");
21222
21223
  await engine.pluginManager.register(e => {
21223
21224
  e.pluginManager.addPlugin(new TrailPlugin(e.pluginManager));
21224
21225
  });
@@ -21267,7 +21268,7 @@
21267
21268
 
21268
21269
  const zigZagPathName = "zigZagPathGenerator";
21269
21270
  async function loadZigZagPath(engine) {
21270
- engine.checkVersion("4.0.1");
21271
+ engine.checkVersion("4.0.3");
21271
21272
  await engine.pluginManager.register((e) => {
21272
21273
  ensureBaseMoverLoaded(e);
21273
21274
  e.pluginManager.addPathGenerator?.(zigZagPathName, container => {
@@ -21335,14 +21336,14 @@
21335
21336
  }
21336
21337
 
21337
21338
  async function loadZoomPlugin(engine) {
21338
- engine.checkVersion("4.0.1");
21339
+ engine.checkVersion("4.0.3");
21339
21340
  await engine.pluginManager.register(e => {
21340
21341
  e.pluginManager.addPlugin(new ZoomPlugin());
21341
21342
  });
21342
21343
  }
21343
21344
 
21344
21345
  async function loadAll(engine) {
21345
- engine.checkVersion("4.0.1");
21346
+ engine.checkVersion("4.0.3");
21346
21347
  await engine.pluginManager.register(async (e) => {
21347
21348
  const loadInteractionsForAll = async (e) => {
21348
21349
  await loadFull(e);
@@ -21395,7 +21396,6 @@
21395
21396
  loadEasingSinePlugin(e),
21396
21397
  loadEasingSmoothstepPlugin(e),
21397
21398
  loadBackgroundMaskPlugin(e),
21398
- loadBlendPlugin(e),
21399
21399
  loadCanvasMaskPlugin(e),
21400
21400
  loadManualParticlesPlugin(e),
21401
21401
  loadMotionPlugin(e),
@@ -23584,44 +23584,6 @@
23584
23584
  BackgroundMaskPluginInstance: BackgroundMaskPluginInstance
23585
23585
  });
23586
23586
 
23587
- class BlendPluginInstance {
23588
- _container;
23589
- _defaultCompositeValue;
23590
- constructor(container) {
23591
- this._container = container;
23592
- }
23593
- drawParticleCleanup(context, particle) {
23594
- if (!particle.options.blend?.enable) {
23595
- return;
23596
- }
23597
- context.globalCompositeOperation = particle.originalBlendMode ?? defaultCompositeValue;
23598
- particle.originalBlendMode = undefined;
23599
- }
23600
- drawParticleSetup(context, particle) {
23601
- if (!particle.options.blend?.enable) {
23602
- return;
23603
- }
23604
- particle.originalBlendMode = context.globalCompositeOperation;
23605
- context.globalCompositeOperation = particle.options.blend.mode;
23606
- }
23607
- drawSettingsCleanup(context) {
23608
- if (!this._defaultCompositeValue) {
23609
- return;
23610
- }
23611
- context.globalCompositeOperation = this._defaultCompositeValue;
23612
- }
23613
- drawSettingsSetup(context) {
23614
- const previousComposite = context.globalCompositeOperation, blend = this._container.actualOptions.blend;
23615
- this._defaultCompositeValue = previousComposite;
23616
- context.globalCompositeOperation = blend?.enable ? blend.mode : previousComposite;
23617
- }
23618
- }
23619
-
23620
- var BlendPluginInstance$1 = /*#__PURE__*/Object.freeze({
23621
- __proto__: null,
23622
- BlendPluginInstance: BlendPluginInstance
23623
- });
23624
-
23625
23587
  const minVelocity$1 = 0, identity$1 = 1, moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01, defaultPathDelay = 0, noDecay = 1;
23626
23588
  function applyDistance(particle) {
23627
23589
  const initialPosition = particle.initialPosition, { dx, dy } = getDistances(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), { maxDistance } = particle.retina, hDistance = maxDistance.horizontal, vDistance = maxDistance.vertical;
@@ -24887,6 +24849,44 @@
24887
24849
  AbsorbersPluginInstance: AbsorbersPluginInstance
24888
24850
  });
24889
24851
 
24852
+ class BlendPluginInstance {
24853
+ _container;
24854
+ _defaultCompositeValue;
24855
+ constructor(container) {
24856
+ this._container = container;
24857
+ }
24858
+ drawParticleCleanup(context, particle) {
24859
+ if (!particle.options.blend?.enable) {
24860
+ return;
24861
+ }
24862
+ context.globalCompositeOperation = particle.originalBlendMode ?? defaultCompositeValue;
24863
+ particle.originalBlendMode = undefined;
24864
+ }
24865
+ drawParticleSetup(context, particle) {
24866
+ if (!particle.options.blend?.enable) {
24867
+ return;
24868
+ }
24869
+ particle.originalBlendMode = context.globalCompositeOperation;
24870
+ context.globalCompositeOperation = particle.options.blend.mode;
24871
+ }
24872
+ drawSettingsCleanup(context) {
24873
+ if (!this._defaultCompositeValue) {
24874
+ return;
24875
+ }
24876
+ context.globalCompositeOperation = this._defaultCompositeValue;
24877
+ }
24878
+ drawSettingsSetup(context) {
24879
+ const previousComposite = context.globalCompositeOperation, blend = this._container.actualOptions.blend;
24880
+ this._defaultCompositeValue = previousComposite;
24881
+ context.globalCompositeOperation = blend?.enable ? blend.mode : previousComposite;
24882
+ }
24883
+ }
24884
+
24885
+ var BlendPluginInstance$1 = /*#__PURE__*/Object.freeze({
24886
+ __proto__: null,
24887
+ BlendPluginInstance: BlendPluginInstance
24888
+ });
24889
+
24890
24890
  class ImagePreloaderInstance {
24891
24891
  _container;
24892
24892
  _engine;