tsparticles 4.0.2 → 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.2 */
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.2";
1121
+ return "4.0.3";
1122
1122
  }
1123
1123
  addEventListener(type, listener) {
1124
1124
  this._eventDispatcher.addEventListener(type, listener);
@@ -3270,7 +3270,7 @@
3270
3270
  }
3271
3271
 
3272
3272
  async function loadInteractivityPlugin(engine) {
3273
- engine.checkVersion("4.0.2");
3273
+ engine.checkVersion("4.0.3");
3274
3274
  await engine.pluginManager.register(e => {
3275
3275
  const interactivityEngine = e, interactivityPluginManager = interactivityEngine.pluginManager;
3276
3276
  interactivityPluginManager.addPlugin(new InteractivityPlugin(interactivityPluginManager));
@@ -3544,7 +3544,7 @@
3544
3544
  }
3545
3545
 
3546
3546
  async function loadAbsorbersInteraction(engine) {
3547
- engine.checkVersion("4.0.2");
3547
+ engine.checkVersion("4.0.3");
3548
3548
  await engine.pluginManager.register(async (e) => {
3549
3549
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
3550
3550
  ensureInteractivityPluginLoaded(e);
@@ -3592,7 +3592,7 @@
3592
3592
  }
3593
3593
 
3594
3594
  async function loadAbsorbersPluginSimple(engine) {
3595
- engine.checkVersion("4.0.2");
3595
+ engine.checkVersion("4.0.3");
3596
3596
  await engine.pluginManager.register(async (e) => {
3597
3597
  const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
3598
3598
  pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
@@ -3957,7 +3957,7 @@
3957
3957
  }
3958
3958
 
3959
3959
  async function loadDestroyUpdater(engine) {
3960
- engine.checkVersion("4.0.2");
3960
+ engine.checkVersion("4.0.3");
3961
3961
  await engine.pluginManager.register(e => {
3962
3962
  e.pluginManager.addParticleUpdater("destroy", container => {
3963
3963
  return Promise.resolve(new DestroyUpdater(e.pluginManager, container));
@@ -4337,7 +4337,7 @@
4337
4337
  })(EmitterClickMode || (EmitterClickMode = {}));
4338
4338
 
4339
4339
  async function loadEmittersInteraction(engine) {
4340
- engine.checkVersion("4.0.2");
4340
+ engine.checkVersion("4.0.3");
4341
4341
  await engine.pluginManager.register(async (e) => {
4342
4342
  const instancesManager = await getEmittersInstancesManager(e);
4343
4343
  ensureInteractivityPluginLoaded(e);
@@ -4380,7 +4380,7 @@
4380
4380
  }
4381
4381
 
4382
4382
  async function loadEmittersPluginSimple(engine) {
4383
- engine.checkVersion("4.0.2");
4383
+ engine.checkVersion("4.0.3");
4384
4384
  await engine.pluginManager.register(async (e) => {
4385
4385
  const instancesManager = await getEmittersInstancesManager(e);
4386
4386
  await addEmittersShapesManager(e);
@@ -4438,7 +4438,7 @@
4438
4438
  }
4439
4439
 
4440
4440
  async function loadEmittersShapeCircle(engine) {
4441
- engine.checkVersion("4.0.2");
4441
+ engine.checkVersion("4.0.3");
4442
4442
  await engine.pluginManager.register((e) => {
4443
4443
  ensureEmittersPluginLoaded(e);
4444
4444
  e.pluginManager.addEmitterShapeGenerator?.("circle", new EmittersCircleShapeGenerator());
@@ -4519,7 +4519,7 @@
4519
4519
  }
4520
4520
 
4521
4521
  async function loadEmittersShapeSquare(engine) {
4522
- engine.checkVersion("4.0.2");
4522
+ engine.checkVersion("4.0.3");
4523
4523
  await engine.pluginManager.register((e) => {
4524
4524
  ensureEmittersPluginLoaded(e);
4525
4525
  e.pluginManager.addEmitterShapeGenerator?.("square", new EmittersSquareShapeGenerator());
@@ -4712,7 +4712,7 @@
4712
4712
  }
4713
4713
 
4714
4714
  async function loadExternalDragInteraction(engine) {
4715
- engine.checkVersion("4.0.2");
4715
+ engine.checkVersion("4.0.3");
4716
4716
  await engine.pluginManager.register((e) => {
4717
4717
  ensureInteractivityPluginLoaded(e);
4718
4718
  e.pluginManager.addInteractor?.("externalDrag", container => {
@@ -4916,7 +4916,7 @@
4916
4916
  }
4917
4917
 
4918
4918
  async function loadExternalTrailInteraction(engine) {
4919
- engine.checkVersion("4.0.2");
4919
+ engine.checkVersion("4.0.3");
4920
4920
  await engine.pluginManager.register((e) => {
4921
4921
  ensureInteractivityPluginLoaded(e);
4922
4922
  e.pluginManager.addInteractor?.("externalTrail", container => {
@@ -5076,7 +5076,7 @@
5076
5076
  }
5077
5077
 
5078
5078
  async function loadRollUpdater(engine) {
5079
- engine.checkVersion("4.0.2");
5079
+ engine.checkVersion("4.0.3");
5080
5080
  await engine.pluginManager.register(e => {
5081
5081
  e.pluginManager.addParticleUpdater("roll", () => {
5082
5082
  return Promise.resolve(new RollUpdater(e.pluginManager));
@@ -5084,6 +5084,58 @@
5084
5084
  });
5085
5085
  }
5086
5086
 
5087
+ class Blend {
5088
+ enable;
5089
+ mode;
5090
+ constructor() {
5091
+ this.mode = "destination-out";
5092
+ this.enable = false;
5093
+ }
5094
+ load(data) {
5095
+ if (isNull(data)) {
5096
+ return;
5097
+ }
5098
+ if (data.mode !== undefined) {
5099
+ this.mode = data.mode;
5100
+ }
5101
+ if (data.enable !== undefined) {
5102
+ this.enable = data.enable;
5103
+ }
5104
+ }
5105
+ }
5106
+
5107
+ class BlendPlugin {
5108
+ id = "blend";
5109
+ async getPlugin(container) {
5110
+ const { BlendPluginInstance } = await Promise.resolve().then(function () { return BlendPluginInstance$1; });
5111
+ return new BlendPluginInstance(container);
5112
+ }
5113
+ loadOptions(_container, options, source) {
5114
+ if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
5115
+ return;
5116
+ }
5117
+ let blendOptions = options.blend;
5118
+ if (!blendOptions?.load) {
5119
+ options.blend = blendOptions = new Blend();
5120
+ }
5121
+ blendOptions.load(source?.blend);
5122
+ }
5123
+ loadParticlesOptions(_container, options, source) {
5124
+ options.blend ??= new Blend();
5125
+ options.blend.load(source?.blend);
5126
+ }
5127
+ needsPlugin(options) {
5128
+ return !!options?.blend?.enable || !!options?.particles?.blend?.enable;
5129
+ }
5130
+ }
5131
+
5132
+ async function loadBlendPlugin(engine) {
5133
+ engine.checkVersion("4.0.3");
5134
+ await engine.pluginManager.register(e => {
5135
+ e.pluginManager.addPlugin(new BlendPlugin());
5136
+ });
5137
+ }
5138
+
5087
5139
  const minAngle$2 = 0;
5088
5140
  function drawCircle(data) {
5089
5141
  const { context, particle, radius } = data;
@@ -5115,7 +5167,7 @@
5115
5167
  }
5116
5168
 
5117
5169
  async function loadCircleShape(engine) {
5118
- engine.checkVersion("4.0.2");
5170
+ engine.checkVersion("4.0.3");
5119
5171
  await engine.pluginManager.register(e => {
5120
5172
  e.pluginManager.addShape(["circle"], () => {
5121
5173
  return Promise.resolve(new CircleDrawer());
@@ -5163,7 +5215,7 @@
5163
5215
  }
5164
5216
 
5165
5217
  async function loadHexColorPlugin(engine) {
5166
- engine.checkVersion("4.0.2");
5218
+ engine.checkVersion("4.0.3");
5167
5219
  await engine.pluginManager.register(e => {
5168
5220
  e.pluginManager.addColorManager("hex", new HexColorManager());
5169
5221
  });
@@ -5216,7 +5268,7 @@
5216
5268
  }
5217
5269
 
5218
5270
  async function loadHslColorPlugin(engine) {
5219
- engine.checkVersion("4.0.2");
5271
+ engine.checkVersion("4.0.3");
5220
5272
  await engine.pluginManager.register(e => {
5221
5273
  e.pluginManager.addColorManager("hsl", new HslColorManager());
5222
5274
  });
@@ -5240,7 +5292,7 @@
5240
5292
  }
5241
5293
 
5242
5294
  async function loadMovePlugin(engine) {
5243
- engine.checkVersion("4.0.2");
5295
+ engine.checkVersion("4.0.3");
5244
5296
  await engine.pluginManager.register(e => {
5245
5297
  const moveEngine = e, movePluginManager = moveEngine.pluginManager;
5246
5298
  movePluginManager.initializers.pathGenerators ??= new Map();
@@ -5301,7 +5353,7 @@
5301
5353
  }
5302
5354
 
5303
5355
  async function loadOpacityUpdater(engine) {
5304
- engine.checkVersion("4.0.2");
5356
+ engine.checkVersion("4.0.3");
5305
5357
  await engine.pluginManager.register(e => {
5306
5358
  e.pluginManager.addParticleUpdater("opacity", container => {
5307
5359
  return Promise.resolve(new OpacityUpdater(container));
@@ -5653,7 +5705,7 @@
5653
5705
  }
5654
5706
 
5655
5707
  async function loadOutModesUpdater(engine) {
5656
- engine.checkVersion("4.0.2");
5708
+ engine.checkVersion("4.0.3");
5657
5709
  await engine.pluginManager.register(e => {
5658
5710
  e.pluginManager.addParticleUpdater("outModes", container => {
5659
5711
  return Promise.resolve(new OutOfCanvasUpdater(container));
@@ -5724,7 +5776,7 @@
5724
5776
  }
5725
5777
 
5726
5778
  async function loadPaintUpdater(engine) {
5727
- engine.checkVersion("4.0.2");
5779
+ engine.checkVersion("4.0.3");
5728
5780
  await engine.pluginManager.register(e => {
5729
5781
  e.pluginManager.addParticleUpdater("paint", container => {
5730
5782
  return Promise.resolve(new PaintUpdater(e.pluginManager, container));
@@ -5779,7 +5831,7 @@
5779
5831
  }
5780
5832
 
5781
5833
  async function loadRgbColorPlugin(engine) {
5782
- engine.checkVersion("4.0.2");
5834
+ engine.checkVersion("4.0.3");
5783
5835
  await engine.pluginManager.register(e => {
5784
5836
  e.pluginManager.addColorManager("rgb", new RgbColorManager());
5785
5837
  });
@@ -5822,7 +5874,7 @@
5822
5874
  }
5823
5875
 
5824
5876
  async function loadSizeUpdater(engine) {
5825
- engine.checkVersion("4.0.2");
5877
+ engine.checkVersion("4.0.3");
5826
5878
  await engine.pluginManager.register(e => {
5827
5879
  e.pluginManager.addParticleUpdater("size", container => {
5828
5880
  return Promise.resolve(new SizeUpdater(container));
@@ -5831,9 +5883,10 @@
5831
5883
  }
5832
5884
 
5833
5885
  async function loadBasic(engine) {
5834
- engine.checkVersion("4.0.2");
5886
+ engine.checkVersion("4.0.3");
5835
5887
  await engine.pluginManager.register(async (e) => {
5836
5888
  await Promise.all([
5889
+ loadBlendPlugin(e),
5837
5890
  loadHexColorPlugin(e),
5838
5891
  loadHslColorPlugin(e),
5839
5892
  loadRgbColorPlugin(e),
@@ -5853,7 +5906,7 @@
5853
5906
  easingsFunctions.set(exports.EasingType.easeInOutQuad, value => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2));
5854
5907
 
5855
5908
  async function loadEasingQuadPlugin(engine) {
5856
- engine.checkVersion("4.0.2");
5909
+ engine.checkVersion("4.0.3");
5857
5910
  await engine.pluginManager.register(e => {
5858
5911
  for (const [easing, easingFn] of easingsFunctions) {
5859
5912
  e.pluginManager.addEasing(easing, easingFn);
@@ -5961,7 +6014,7 @@
5961
6014
  }
5962
6015
 
5963
6016
  async function loadEmojiShape(engine) {
5964
- engine.checkVersion("4.0.2");
6017
+ engine.checkVersion("4.0.3");
5965
6018
  await engine.pluginManager.register(e => {
5966
6019
  e.pluginManager.addShape(validTypes$1, () => Promise.resolve(new EmojiDrawer()));
5967
6020
  });
@@ -6211,7 +6264,7 @@
6211
6264
  };
6212
6265
 
6213
6266
  async function loadExternalAttractInteraction(engine) {
6214
- engine.checkVersion("4.0.2");
6267
+ engine.checkVersion("4.0.3");
6215
6268
  await engine.pluginManager.register((e) => {
6216
6269
  ensureInteractivityPluginLoaded(e);
6217
6270
  e.pluginManager.addInteractor?.("externalAttract", container => {
@@ -6408,7 +6461,7 @@
6408
6461
  }
6409
6462
 
6410
6463
  async function loadExternalBounceInteraction(engine) {
6411
- engine.checkVersion("4.0.2");
6464
+ engine.checkVersion("4.0.3");
6412
6465
  await engine.pluginManager.register((e) => {
6413
6466
  ensureInteractivityPluginLoaded(e);
6414
6467
  e.pluginManager.addInteractor?.("externalBounce", container => {
@@ -6788,7 +6841,7 @@
6788
6841
  }
6789
6842
 
6790
6843
  async function loadExternalBubbleInteraction(engine) {
6791
- engine.checkVersion("4.0.2");
6844
+ engine.checkVersion("4.0.3");
6792
6845
  await engine.pluginManager.register((e) => {
6793
6846
  ensureInteractivityPluginLoaded(e);
6794
6847
  e.pluginManager.addInteractor?.("externalBubble", container => {
@@ -6933,7 +6986,7 @@
6933
6986
  }
6934
6987
 
6935
6988
  async function loadExternalConnectInteraction(engine) {
6936
- engine.checkVersion("4.0.2");
6989
+ engine.checkVersion("4.0.3");
6937
6990
  await engine.pluginManager.register((e) => {
6938
6991
  ensureInteractivityPluginLoaded(e);
6939
6992
  e.pluginManager.addInteractor?.("externalConnect", container => {
@@ -7045,7 +7098,7 @@
7045
7098
  }
7046
7099
 
7047
7100
  async function loadExternalDestroyInteraction(engine) {
7048
- engine.checkVersion("4.0.2");
7101
+ engine.checkVersion("4.0.3");
7049
7102
  await engine.pluginManager.register((e) => {
7050
7103
  ensureInteractivityPluginLoaded(e);
7051
7104
  e.pluginManager.addInteractor?.("externalDestroy", async (container) => {
@@ -7189,7 +7242,7 @@
7189
7242
  }
7190
7243
 
7191
7244
  async function loadExternalGrabInteraction(engine) {
7192
- engine.checkVersion("4.0.2");
7245
+ engine.checkVersion("4.0.3");
7193
7246
  await engine.pluginManager.register((e) => {
7194
7247
  ensureInteractivityPluginLoaded(e);
7195
7248
  e.pluginManager.addInteractor?.("externalGrab", container => {
@@ -7270,7 +7323,7 @@
7270
7323
  }
7271
7324
 
7272
7325
  async function loadExternalParallaxInteraction(engine) {
7273
- engine.checkVersion("4.0.2");
7326
+ engine.checkVersion("4.0.3");
7274
7327
  await engine.pluginManager.register((e) => {
7275
7328
  ensureInteractivityPluginLoaded(e);
7276
7329
  e.pluginManager.addInteractor?.("externalParallax", container => {
@@ -7313,7 +7366,7 @@
7313
7366
  }
7314
7367
 
7315
7368
  async function loadExternalPauseInteraction(engine) {
7316
- engine.checkVersion("4.0.2");
7369
+ engine.checkVersion("4.0.3");
7317
7370
  await engine.pluginManager.register((e) => {
7318
7371
  ensureInteractivityPluginLoaded(e);
7319
7372
  e.pluginManager.addInteractor?.("externalPause", container => {
@@ -7398,7 +7451,7 @@
7398
7451
  }
7399
7452
 
7400
7453
  async function loadExternalPushInteraction(engine) {
7401
- engine.checkVersion("4.0.2");
7454
+ engine.checkVersion("4.0.3");
7402
7455
  await engine.pluginManager.register((e) => {
7403
7456
  ensureInteractivityPluginLoaded(e);
7404
7457
  e.pluginManager.addInteractor?.("externalPush", container => {
@@ -7461,7 +7514,7 @@
7461
7514
  }
7462
7515
 
7463
7516
  async function loadExternalRemoveInteraction(engine) {
7464
- engine.checkVersion("4.0.2");
7517
+ engine.checkVersion("4.0.3");
7465
7518
  await engine.pluginManager.register((e) => {
7466
7519
  ensureInteractivityPluginLoaded(e);
7467
7520
  e.pluginManager.addInteractor?.("externalRemove", container => {
@@ -7794,7 +7847,7 @@
7794
7847
  }
7795
7848
 
7796
7849
  async function loadExternalRepulseInteraction(engine) {
7797
- engine.checkVersion("4.0.2");
7850
+ engine.checkVersion("4.0.3");
7798
7851
  await engine.pluginManager.register((e) => {
7799
7852
  ensureInteractivityPluginLoaded(e);
7800
7853
  const pluginManager = e.pluginManager;
@@ -7876,7 +7929,7 @@
7876
7929
  }
7877
7930
 
7878
7931
  async function loadExternalSlowInteraction(engine) {
7879
- engine.checkVersion("4.0.2");
7932
+ engine.checkVersion("4.0.3");
7880
7933
  await engine.pluginManager.register((e) => {
7881
7934
  ensureInteractivityPluginLoaded(e);
7882
7935
  e.pluginManager.addInteractor?.("externalSlow", container => {
@@ -8704,7 +8757,7 @@
8704
8757
  };
8705
8758
  }
8706
8759
  async function loadImageShape(engine) {
8707
- engine.checkVersion("4.0.2");
8760
+ engine.checkVersion("4.0.3");
8708
8761
  await engine.pluginManager.register(e => {
8709
8762
  addLoadImageToEngine(e);
8710
8763
  e.pluginManager.addPlugin(new ImagePreloaderPlugin(e));
@@ -8871,7 +8924,7 @@
8871
8924
  }
8872
8925
 
8873
8926
  async function loadLifeUpdater(engine) {
8874
- engine.checkVersion("4.0.2");
8927
+ engine.checkVersion("4.0.3");
8875
8928
  await engine.pluginManager.register(e => {
8876
8929
  e.pluginManager.addParticleUpdater("life", container => {
8877
8930
  return Promise.resolve(new LifeUpdater(container));
@@ -8897,7 +8950,7 @@
8897
8950
  }
8898
8951
 
8899
8952
  async function loadLineShape(engine) {
8900
- engine.checkVersion("4.0.2");
8953
+ engine.checkVersion("4.0.3");
8901
8954
  await engine.pluginManager.register(e => {
8902
8955
  e.pluginManager.addShape(["line"], () => Promise.resolve(new LineDrawer()));
8903
8956
  });
@@ -8990,7 +9043,7 @@
8990
9043
  }
8991
9044
 
8992
9045
  async function loadParticlesAttractInteraction(engine) {
8993
- engine.checkVersion("4.0.2");
9046
+ engine.checkVersion("4.0.3");
8994
9047
  await engine.pluginManager.register((e) => {
8995
9048
  ensureInteractivityPluginLoaded(e);
8996
9049
  e.pluginManager.addInteractor?.("particlesAttract", container => {
@@ -9230,7 +9283,7 @@
9230
9283
  }
9231
9284
 
9232
9285
  async function loadParticlesCollisionsInteraction(engine) {
9233
- engine.checkVersion("4.0.2");
9286
+ engine.checkVersion("4.0.3");
9234
9287
  await engine.pluginManager.register((e) => {
9235
9288
  ensureInteractivityPluginLoaded(e);
9236
9289
  e.pluginManager.addPlugin(new OverlapPlugin());
@@ -9533,7 +9586,7 @@
9533
9586
  }
9534
9587
 
9535
9588
  async function loadParticlesLinksInteraction(engine) {
9536
- engine.checkVersion("4.0.2");
9589
+ engine.checkVersion("4.0.3");
9537
9590
  await engine.pluginManager.register((e) => {
9538
9591
  const pluginManager = e.pluginManager;
9539
9592
  ensureInteractivityPluginLoaded(e);
@@ -9623,19 +9676,19 @@
9623
9676
  }
9624
9677
 
9625
9678
  async function loadGenericPolygonShape(engine) {
9626
- engine.checkVersion("4.0.2");
9679
+ engine.checkVersion("4.0.3");
9627
9680
  await engine.pluginManager.register(e => {
9628
9681
  e.pluginManager.addShape(["polygon"], () => Promise.resolve(new PolygonDrawer()));
9629
9682
  });
9630
9683
  }
9631
9684
  async function loadTriangleShape(engine) {
9632
- engine.checkVersion("4.0.2");
9685
+ engine.checkVersion("4.0.3");
9633
9686
  await engine.pluginManager.register(e => {
9634
9687
  e.pluginManager.addShape(["triangle"], () => Promise.resolve(new TriangleDrawer()));
9635
9688
  });
9636
9689
  }
9637
9690
  async function loadPolygonShape(engine) {
9638
- engine.checkVersion("4.0.2");
9691
+ engine.checkVersion("4.0.3");
9639
9692
  await Promise.all([
9640
9693
  loadGenericPolygonShape(engine),
9641
9694
  loadTriangleShape(engine),
@@ -9768,7 +9821,7 @@
9768
9821
  }
9769
9822
 
9770
9823
  async function loadRotateUpdater(engine) {
9771
- engine.checkVersion("4.0.2");
9824
+ engine.checkVersion("4.0.3");
9772
9825
  await engine.pluginManager.register(e => {
9773
9826
  e.pluginManager.addParticleUpdater("rotate", container => {
9774
9827
  return Promise.resolve(new RotateUpdater(container));
@@ -9792,7 +9845,7 @@
9792
9845
  }
9793
9846
 
9794
9847
  async function loadSquareShape(engine) {
9795
- engine.checkVersion("4.0.2");
9848
+ engine.checkVersion("4.0.3");
9796
9849
  await engine.pluginManager.register(e => {
9797
9850
  e.pluginManager.addShape(["edge", "square"], () => Promise.resolve(new SquareDrawer()));
9798
9851
  });
@@ -9826,14 +9879,14 @@
9826
9879
  }
9827
9880
 
9828
9881
  async function loadStarShape(engine) {
9829
- engine.checkVersion("4.0.2");
9882
+ engine.checkVersion("4.0.3");
9830
9883
  await engine.pluginManager.register(e => {
9831
9884
  e.pluginManager.addShape(["star"], () => Promise.resolve(new StarDrawer()));
9832
9885
  });
9833
9886
  }
9834
9887
 
9835
9888
  async function loadSlim(engine) {
9836
- engine.checkVersion("4.0.2");
9889
+ engine.checkVersion("4.0.3");
9837
9890
  await engine.pluginManager.register(async (e) => {
9838
9891
  const loadInteractivityForSlim = async (e) => {
9839
9892
  await loadInteractivityPlugin(e);
@@ -9950,7 +10003,7 @@
9950
10003
  }
9951
10004
 
9952
10005
  async function loadTextShape(engine) {
9953
- engine.checkVersion("4.0.2");
10006
+ engine.checkVersion("4.0.3");
9954
10007
  await engine.pluginManager.register(e => {
9955
10008
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new TextDrawer()));
9956
10009
  });
@@ -10087,7 +10140,7 @@
10087
10140
  }
10088
10141
 
10089
10142
  async function loadTiltUpdater(engine) {
10090
- engine.checkVersion("4.0.2");
10143
+ engine.checkVersion("4.0.3");
10091
10144
  await engine.pluginManager.register(e => {
10092
10145
  e.pluginManager.addParticleUpdater("tilt", container => {
10093
10146
  return Promise.resolve(new TiltUpdater(container));
@@ -10220,7 +10273,7 @@
10220
10273
  }
10221
10274
 
10222
10275
  async function loadTwinkleUpdater(engine) {
10223
- engine.checkVersion("4.0.2");
10276
+ engine.checkVersion("4.0.3");
10224
10277
  await engine.pluginManager.register(e => {
10225
10278
  e.pluginManager.addParticleUpdater("twinkle", container => {
10226
10279
  return Promise.resolve(new TwinkleUpdater(e.pluginManager, container));
@@ -10342,7 +10395,7 @@
10342
10395
  }
10343
10396
 
10344
10397
  async function loadWobbleUpdater(engine) {
10345
- engine.checkVersion("4.0.2");
10398
+ engine.checkVersion("4.0.3");
10346
10399
  await engine.pluginManager.register(e => {
10347
10400
  e.pluginManager.addParticleUpdater("wobble", container => {
10348
10401
  return Promise.resolve(new WobbleUpdater(container));
@@ -10351,7 +10404,7 @@
10351
10404
  }
10352
10405
 
10353
10406
  async function loadFull(engine) {
10354
- engine.checkVersion("4.0.2");
10407
+ engine.checkVersion("4.0.3");
10355
10408
  await engine.pluginManager.register(async (e) => {
10356
10409
  const loadEmittersPluginBundle = async (e) => {
10357
10410
  await loadEmittersPlugin(e);
@@ -13227,6 +13280,44 @@
13227
13280
  EmittersPluginInstance: EmittersPluginInstance
13228
13281
  });
13229
13282
 
13283
+ class BlendPluginInstance {
13284
+ _container;
13285
+ _defaultCompositeValue;
13286
+ constructor(container) {
13287
+ this._container = container;
13288
+ }
13289
+ drawParticleCleanup(context, particle) {
13290
+ if (!particle.options.blend?.enable) {
13291
+ return;
13292
+ }
13293
+ context.globalCompositeOperation = particle.originalBlendMode ?? defaultCompositeValue;
13294
+ particle.originalBlendMode = undefined;
13295
+ }
13296
+ drawParticleSetup(context, particle) {
13297
+ if (!particle.options.blend?.enable) {
13298
+ return;
13299
+ }
13300
+ particle.originalBlendMode = context.globalCompositeOperation;
13301
+ context.globalCompositeOperation = particle.options.blend.mode;
13302
+ }
13303
+ drawSettingsCleanup(context) {
13304
+ if (!this._defaultCompositeValue) {
13305
+ return;
13306
+ }
13307
+ context.globalCompositeOperation = this._defaultCompositeValue;
13308
+ }
13309
+ drawSettingsSetup(context) {
13310
+ const previousComposite = context.globalCompositeOperation, blend = this._container.actualOptions.blend;
13311
+ this._defaultCompositeValue = previousComposite;
13312
+ context.globalCompositeOperation = blend?.enable ? blend.mode : previousComposite;
13313
+ }
13314
+ }
13315
+
13316
+ var BlendPluginInstance$1 = /*#__PURE__*/Object.freeze({
13317
+ __proto__: null,
13318
+ BlendPluginInstance: BlendPluginInstance
13319
+ });
13320
+
13230
13321
  const minVelocity$1 = 0, identity = 1, moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01, defaultPathDelay = 0, noDecay = 1;
13231
13322
  function applyDistance(particle) {
13232
13323
  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;