@tsparticles/plugin-blend 4.0.0-alpha.26 → 4.0.0-alpha.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/884.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_blend=this.webpackChunk_tsparticles_plugin_blend||[]).push([[884],{884(e,n,l){l.d(n,{BlendPlugin:()=>t});var d=l(303);class i{enable;mode;constructor(){this.mode="destination-out",this.enable=!1}load(e){(0,d.isNull)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.enable&&(this.enable=e.enable))}}class t{id="blend";async getPlugin(e){let{BlendPluginInstance:n}=await l.e(969).then(l.bind(l,969));return new n(e)}loadOptions(e,n,l){if(!this.needsPlugin(n)&&!this.needsPlugin(l))return;let d=n.blend;d?.load||(n.blend=d=new i),d.load(l?.blend)}loadParticlesOptions(e,n,l){n.blend??=new i,n.blend.load(l?.blend)}needsPlugin(e){return!!e?.blend?.enable||!!e?.particles?.blend?.enable}}}}]);
package/969.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_blend=this.webpackChunk_tsparticles_plugin_blend||[]).push([[969],{969(e,o,t){t.d(o,{BlendPluginInstance:()=>a});var l=t(303);class a{_container;_defaultCompositeValue;constructor(e){this._container=e}drawParticleCleanup(e,o){o.options.blend?.enable&&(e.globalCompositeOperation=o.originalBlendMode??l.defaultCompositeValue,o.originalBlendMode=void 0)}drawParticleSetup(e,o){o.options.blend?.enable&&(o.originalBlendMode=e.globalCompositeOperation,e.globalCompositeOperation=o.options.blend.mode)}drawSettingsCleanup(e){this._defaultCompositeValue&&(e.globalCompositeOperation=this._defaultCompositeValue)}drawSettingsSetup(e){let o=e.globalCompositeOperation,t=this._container.actualOptions.blend;this._defaultCompositeValue=o,e.globalCompositeOperation=t?.enable?t.mode:o}}}}]);
@@ -1,3 +1,4 @@
1
+ import { defaultCompositeValue } from "@tsparticles/engine";
1
2
  export class BlendPluginInstance {
2
3
  _container;
3
4
  _defaultCompositeValue;
@@ -5,7 +6,10 @@ export class BlendPluginInstance {
5
6
  this._container = container;
6
7
  }
7
8
  drawParticleCleanup(context, particle) {
8
- context.globalCompositeOperation = particle.originalBlendMode ?? "source-over";
9
+ if (!particle.options.blend?.enable) {
10
+ return;
11
+ }
12
+ context.globalCompositeOperation = particle.originalBlendMode ?? defaultCompositeValue;
9
13
  particle.originalBlendMode = undefined;
10
14
  }
11
15
  drawParticleSetup(context, particle) {
package/browser/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadBlendPlugin(engine) {
2
- engine.checkVersion("4.0.0-alpha.26");
2
+ engine.checkVersion("4.0.0-alpha.28");
3
3
  await engine.register(async (e) => {
4
4
  const { BlendPlugin } = await import("./BlendPlugin.js");
5
5
  e.addPlugin(new BlendPlugin());
@@ -1,3 +1,4 @@
1
+ import { defaultCompositeValue } from "@tsparticles/engine";
1
2
  export class BlendPluginInstance {
2
3
  _container;
3
4
  _defaultCompositeValue;
@@ -5,7 +6,10 @@ export class BlendPluginInstance {
5
6
  this._container = container;
6
7
  }
7
8
  drawParticleCleanup(context, particle) {
8
- context.globalCompositeOperation = particle.originalBlendMode ?? "source-over";
9
+ if (!particle.options.blend?.enable) {
10
+ return;
11
+ }
12
+ context.globalCompositeOperation = particle.originalBlendMode ?? defaultCompositeValue;
9
13
  particle.originalBlendMode = undefined;
10
14
  }
11
15
  drawParticleSetup(context, particle) {
package/cjs/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadBlendPlugin(engine) {
2
- engine.checkVersion("4.0.0-alpha.26");
2
+ engine.checkVersion("4.0.0-alpha.28");
3
3
  await engine.register(async (e) => {
4
4
  const { BlendPlugin } = await import("./BlendPlugin.js");
5
5
  e.addPlugin(new BlendPlugin());
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.26
7
+ * v4.0.0-alpha.28
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \*********************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BlendPluginInstance: () => (/* binding */ BlendPluginInstance)\n/* harmony export */ });\nclass BlendPluginInstance {\n _container;\n _defaultCompositeValue;\n constructor(container){\n this._container = container;\n }\n drawParticleCleanup(context, particle) {\n context.globalCompositeOperation = particle.originalBlendMode ?? \"source-over\";\n particle.originalBlendMode = undefined;\n }\n drawParticleSetup(context, particle) {\n if (!particle.options.blend?.enable) {\n return;\n }\n particle.originalBlendMode = context.globalCompositeOperation;\n context.globalCompositeOperation = particle.options.blend.mode;\n }\n drawSettingsCleanup(context) {\n if (!this._defaultCompositeValue) {\n return;\n }\n context.globalCompositeOperation = this._defaultCompositeValue;\n }\n drawSettingsSetup(context) {\n const previousComposite = context.globalCompositeOperation, blend = this._container.actualOptions.blend;\n this._defaultCompositeValue = previousComposite;\n context.globalCompositeOperation = blend?.enable ? blend.mode : previousComposite;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-blend/./dist/browser/BlendPluginInstance.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BlendPluginInstance: () => (/* binding */ BlendPluginInstance)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nclass BlendPluginInstance {\n _container;\n _defaultCompositeValue;\n constructor(container){\n this._container = container;\n }\n drawParticleCleanup(context, particle) {\n if (!particle.options.blend?.enable) {\n return;\n }\n context.globalCompositeOperation = particle.originalBlendMode ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.defaultCompositeValue;\n particle.originalBlendMode = undefined;\n }\n drawParticleSetup(context, particle) {\n if (!particle.options.blend?.enable) {\n return;\n }\n particle.originalBlendMode = context.globalCompositeOperation;\n context.globalCompositeOperation = particle.options.blend.mode;\n }\n drawSettingsCleanup(context) {\n if (!this._defaultCompositeValue) {\n return;\n }\n context.globalCompositeOperation = this._defaultCompositeValue;\n }\n drawSettingsSetup(context) {\n const previousComposite = context.globalCompositeOperation, blend = this._container.actualOptions.blend;\n this._defaultCompositeValue = previousComposite;\n context.globalCompositeOperation = blend?.enable ? blend.mode : previousComposite;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-blend/./dist/browser/BlendPluginInstance.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.26
7
+ * v4.0.0-alpha.28
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -1,3 +1,4 @@
1
+ import { defaultCompositeValue } from "@tsparticles/engine";
1
2
  export class BlendPluginInstance {
2
3
  _container;
3
4
  _defaultCompositeValue;
@@ -5,7 +6,10 @@ export class BlendPluginInstance {
5
6
  this._container = container;
6
7
  }
7
8
  drawParticleCleanup(context, particle) {
8
- context.globalCompositeOperation = particle.originalBlendMode ?? "source-over";
9
+ if (!particle.options.blend?.enable) {
10
+ return;
11
+ }
12
+ context.globalCompositeOperation = particle.originalBlendMode ?? defaultCompositeValue;
9
13
  particle.originalBlendMode = undefined;
10
14
  }
11
15
  drawParticleSetup(context, particle) {
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadBlendPlugin(engine) {
2
- engine.checkVersion("4.0.0-alpha.26");
2
+ engine.checkVersion("4.0.0-alpha.28");
3
3
  await engine.register(async (e) => {
4
4
  const { BlendPlugin } = await import("./BlendPlugin.js");
5
5
  e.addPlugin(new BlendPlugin());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/plugin-blend",
3
- "version": "4.0.0-alpha.26",
3
+ "version": "4.0.0-alpha.28",
4
4
  "description": "tsParticles blend plugin",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -86,7 +86,7 @@
86
86
  "./package.json": "./package.json"
87
87
  },
88
88
  "dependencies": {
89
- "@tsparticles/engine": "4.0.0-alpha.26"
89
+ "@tsparticles/engine": "4.0.0-alpha.28"
90
90
  },
91
91
  "publishConfig": {
92
92
  "access": "public"
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/plugin-blend [26 Feb 2026 at 17:55]</title>
6
+ <title>@tsparticles/plugin-blend [15 Mar 2026 at 13:51]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.26
7
+ * v4.0.0-alpha.28
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -44,7 +44,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
44
44
  \*******************************/
45
45
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
46
46
 
47
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBlendPlugin: () => (/* binding */ loadBlendPlugin)\n/* harmony export */ });\nasync function loadBlendPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.26\");\n await engine.register(async (e)=>{\n const { BlendPlugin } = await __webpack_require__.e(/*! import() */ \"dist_browser_BlendPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./BlendPlugin.js */ \"./dist/browser/BlendPlugin.js\"));\n e.addPlugin(new BlendPlugin());\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-blend/./dist/browser/index.js?\n}");
47
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBlendPlugin: () => (/* binding */ loadBlendPlugin)\n/* harmony export */ });\nasync function loadBlendPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.28\");\n await engine.register(async (e)=>{\n const { BlendPlugin } = await __webpack_require__.e(/*! import() */ \"dist_browser_BlendPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./BlendPlugin.js */ \"./dist/browser/BlendPlugin.js\"));\n e.addPlugin(new BlendPlugin());\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-blend/./dist/browser/index.js?\n}");
48
48
 
49
49
  /***/ }
50
50
 
@@ -60,12 +60,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
60
60
  /******/ if (cachedModule !== undefined) {
61
61
  /******/ return cachedModule.exports;
62
62
  /******/ }
63
- /******/ // Check if module exists (development only)
64
- /******/ if (__webpack_modules__[moduleId] === undefined) {
65
- /******/ var e = new Error("Cannot find module '" + moduleId + "'");
66
- /******/ e.code = 'MODULE_NOT_FOUND';
67
- /******/ throw e;
68
- /******/ }
69
63
  /******/ // Create a new module (and put it into the cache)
70
64
  /******/ var module = __webpack_module_cache__[moduleId] = {
71
65
  /******/ // no module.id needed
@@ -74,6 +68,12 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
74
68
  /******/ };
75
69
  /******/
76
70
  /******/ // Execute the module function
71
+ /******/ if (!(moduleId in __webpack_modules__)) {
72
+ /******/ delete __webpack_module_cache__[moduleId];
73
+ /******/ var e = new Error("Cannot find module '" + moduleId + "'");
74
+ /******/ e.code = 'MODULE_NOT_FOUND';
75
+ /******/ throw e;
76
+ /******/ }
77
77
  /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
78
78
  /******/
79
79
  /******/ // Return the exports of the module
@@ -1,2 +1,2 @@
1
1
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(this,e=>(()=>{"use strict";var t,r,o,n={303(t){t.exports=e}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e](r,r.exports,a),r.exports}a.m=n,a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce((t,r)=>(a.f[r](e,t),t),[])),a.u=e=>""+e+".min.js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l={},a.l=(e,t,r,o)=>{if(l[e])return void l[e].push(t);if(void 0!==r)for(var n,i,s=document.getElementsByTagName("script"),c=0;c<s.length;c++){var p=s[c];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")=="@tsparticles/plugin-blend:"+r){n=p;break}}n||(i=!0,(n=document.createElement("script")).charset="utf-8",a.nc&&n.setAttribute("nonce",a.nc),n.setAttribute("data-webpack","@tsparticles/plugin-blend:"+r),n.src=e),l[e]=[t];var u=(t,r)=>{n.onerror=n.onload=null,clearTimeout(d);var o=l[e];if(delete l[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=u.bind(null,n.onerror),n.onload=u.bind(null,n.onload),i&&document.head.appendChild(n)},a.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.g.importScripts&&(s=a.g.location+"");var l,s,c=a.g.document;if(!s&&c&&(c.currentScript&&"SCRIPT"===c.currentScript.tagName.toUpperCase()&&(s=c.currentScript.src),!s)){var p=c.getElementsByTagName("script");if(p.length)for(var u=p.length-1;u>-1&&(!s||!/^http(s?):/.test(s));)s=p[u--].src}if(!s)throw Error("Automatic publicPath is not supported in this browser");a.p=s=s.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),t={313:0},a.f.j=(e,r)=>{var o=a.o(t,e)?t[e]:void 0;if(0!==o)if(o)r.push(o[2]);else{var n=new Promise((r,n)=>o=t[e]=[r,n]);r.push(o[2]=n);var i=a.p+a.u(e),l=Error();a.l(i,r=>{if(a.o(t,e)&&(0!==(o=t[e])&&(t[e]=void 0),o)){var n=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;l.message="Loading chunk "+e+` failed.
2
- (`+n+": "+i+")",l.name="ChunkLoadError",l.type=n,l.request=i,o[1](l)}},"chunk-"+e,e)}},r=(e,r)=>{var o,n,[i,l,s]=r,c=0;if(i.some(e=>0!==t[e])){for(o in l)a.o(l,o)&&(a.m[o]=l[o]);s&&s(a)}for(e&&e(r);c<i.length;c++)n=i[c],a.o(t,n)&&t[n]&&t[n][0](),t[n]=0},(o=this.webpackChunk_tsparticles_plugin_blend=this.webpackChunk_tsparticles_plugin_blend||[]).forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o));var d={};async function f(e){e.checkVersion("4.0.0-alpha.26"),await e.register(async e=>{let{BlendPlugin:t}=await a.e(152).then(a.bind(a,152));e.addPlugin(new t)})}return a.r(d),a.d(d,{loadBlendPlugin:()=>f}),d})());
2
+ (`+n+": "+i+")",l.name="ChunkLoadError",l.type=n,l.request=i,o[1](l)}},"chunk-"+e,e)}},r=(e,r)=>{var o,n,[i,l,s]=r,c=0;if(i.some(e=>0!==t[e])){for(o in l)a.o(l,o)&&(a.m[o]=l[o]);s&&s(a)}for(e&&e(r);c<i.length;c++)n=i[c],a.o(t,n)&&t[n]&&t[n][0](),t[n]=0},(o=this.webpackChunk_tsparticles_plugin_blend=this.webpackChunk_tsparticles_plugin_blend||[]).forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o));var d={};async function f(e){e.checkVersion("4.0.0-alpha.28"),await e.register(async e=>{let{BlendPlugin:t}=await a.e(884).then(a.bind(a,884));e.addPlugin(new t)})}return a.r(d),a.d(d,{loadBlendPlugin:()=>f}),d})());
@@ -4,12 +4,13 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
7
+ define(["require", "exports", "@tsparticles/engine"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BlendPluginInstance = void 0;
13
+ const engine_1 = require("@tsparticles/engine");
13
14
  class BlendPluginInstance {
14
15
  _container;
15
16
  _defaultCompositeValue;
@@ -17,7 +18,10 @@
17
18
  this._container = container;
18
19
  }
19
20
  drawParticleCleanup(context, particle) {
20
- context.globalCompositeOperation = particle.originalBlendMode ?? "source-over";
21
+ if (!particle.options.blend?.enable) {
22
+ return;
23
+ }
24
+ context.globalCompositeOperation = particle.originalBlendMode ?? engine_1.defaultCompositeValue;
21
25
  particle.originalBlendMode = undefined;
22
26
  }
23
27
  drawParticleSetup(context, particle) {
package/umd/index.js CHANGED
@@ -45,7 +45,7 @@ var __importStar = (this && this.__importStar) || (function () {
45
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
46
  exports.loadBlendPlugin = loadBlendPlugin;
47
47
  async function loadBlendPlugin(engine) {
48
- engine.checkVersion("4.0.0-alpha.26");
48
+ engine.checkVersion("4.0.0-alpha.28");
49
49
  await engine.register(async (e) => {
50
50
  const { BlendPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./BlendPlugin.js"))) : new Promise((resolve_1, reject_1) => { require(["./BlendPlugin.js"], resolve_1, reject_1); }).then(__importStar));
51
51
  e.addPlugin(new BlendPlugin());
package/0.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_blend=this.webpackChunk_tsparticles_plugin_blend||[]).push([[0],[(e,o,t)=>{t.d(o,{BlendPluginInstance:()=>i});class i{_container;_defaultCompositeValue;constructor(e){this._container=e}drawParticleCleanup(e,o){e.globalCompositeOperation=o.originalBlendMode??"source-over",o.originalBlendMode=void 0}drawParticleSetup(e,o){o.options.blend?.enable&&(o.originalBlendMode=e.globalCompositeOperation,e.globalCompositeOperation=o.options.blend.mode)}drawSettingsCleanup(e){this._defaultCompositeValue&&(e.globalCompositeOperation=this._defaultCompositeValue)}drawSettingsSetup(e){let o=e.globalCompositeOperation,t=this._container.actualOptions.blend;this._defaultCompositeValue=o,e.globalCompositeOperation=t?.enable?t.mode:o}}}]]);
package/152.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_blend=this.webpackChunk_tsparticles_plugin_blend||[]).push([[152],{152(e,n,l){l.d(n,{BlendPlugin:()=>t});var d=l(303);class i{enable;mode;constructor(){this.mode="destination-out",this.enable=!1}load(e){(0,d.isNull)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.enable&&(this.enable=e.enable))}}class t{id="blend";async getPlugin(e){let{BlendPluginInstance:n}=await l.e(0).then(l.bind(l,0));return new n(e)}loadOptions(e,n,l){if(!this.needsPlugin(n)&&!this.needsPlugin(l))return;let d=n.blend;d?.load||(n.blend=d=new i),d.load(l?.blend)}loadParticlesOptions(e,n,l){n.blend??=new i,n.blend.load(l?.blend)}needsPlugin(e){return!!e?.blend?.enable||!!e?.particles?.blend?.enable}}}}]);