@tsparticles/fireworks 3.9.0 → 3.9.1

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.
@@ -45,7 +45,7 @@ async function initPlugins(engine) {
45
45
  });
46
46
  }
47
47
  initializing = true;
48
- engine.checkVersion("3.9.0");
48
+ engine.checkVersion("3.9.1");
49
49
  await loadEmittersPlugin(engine, false);
50
50
  await loadEmittersShapeSquare(engine, false);
51
51
  await loadSoundsPlugin(engine, false);
@@ -277,7 +277,7 @@ fireworks.create = async (canvas, options) => {
277
277
  fireworks.init = async () => {
278
278
  await initPlugins(tsParticles);
279
279
  };
280
- fireworks.version = "3.9.0";
280
+ fireworks.version = "3.9.1";
281
281
  if (!isSsr()) {
282
282
  window.fireworks = fireworks;
283
283
  }
package/cjs/fireworks.js CHANGED
@@ -48,7 +48,7 @@ async function initPlugins(engine) {
48
48
  });
49
49
  }
50
50
  initializing = true;
51
- engine.checkVersion("3.9.0");
51
+ engine.checkVersion("3.9.1");
52
52
  await (0, plugin_emitters_1.loadEmittersPlugin)(engine, false);
53
53
  await (0, plugin_emitters_shape_square_1.loadEmittersShapeSquare)(engine, false);
54
54
  await (0, plugin_sounds_1.loadSoundsPlugin)(engine, false);
@@ -280,7 +280,7 @@ fireworks.create = async (canvas, options) => {
280
280
  fireworks.init = async () => {
281
281
  await initPlugins(engine_1.tsParticles);
282
282
  };
283
- fireworks.version = "3.9.0";
283
+ fireworks.version = "3.9.1";
284
284
  if (!(0, engine_1.isSsr)()) {
285
285
  window.fireworks = fireworks;
286
286
  }
package/esm/fireworks.js CHANGED
@@ -45,7 +45,7 @@ async function initPlugins(engine) {
45
45
  });
46
46
  }
47
47
  initializing = true;
48
- engine.checkVersion("3.9.0");
48
+ engine.checkVersion("3.9.1");
49
49
  await loadEmittersPlugin(engine, false);
50
50
  await loadEmittersShapeSquare(engine, false);
51
51
  await loadSoundsPlugin(engine, false);
@@ -277,7 +277,7 @@ fireworks.create = async (canvas, options) => {
277
277
  fireworks.init = async () => {
278
278
  await initPlugins(tsParticles);
279
279
  };
280
- fireworks.version = "3.9.0";
280
+ fireworks.version = "3.9.1";
281
281
  if (!isSsr()) {
282
282
  window.fireworks = fireworks;
283
283
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/fireworks",
3
- "version": "3.9.0",
3
+ "version": "3.9.1",
4
4
  "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -99,15 +99,15 @@
99
99
  "./package.json": "./package.json"
100
100
  },
101
101
  "dependencies": {
102
- "@tsparticles/basic": "3.9.0",
103
- "@tsparticles/effect-trail": "3.9.0",
104
- "@tsparticles/engine": "3.9.0",
105
- "@tsparticles/plugin-emitters": "3.9.0",
106
- "@tsparticles/plugin-emitters-shape-square": "3.9.0",
107
- "@tsparticles/plugin-sounds": "3.9.0",
108
- "@tsparticles/updater-destroy": "3.9.0",
109
- "@tsparticles/updater-life": "3.9.0",
110
- "@tsparticles/updater-rotate": "3.9.0"
102
+ "@tsparticles/basic": "3.9.1",
103
+ "@tsparticles/effect-trail": "3.9.1",
104
+ "@tsparticles/engine": "3.9.1",
105
+ "@tsparticles/plugin-emitters": "3.9.1",
106
+ "@tsparticles/plugin-emitters-shape-square": "3.9.1",
107
+ "@tsparticles/plugin-sounds": "3.9.1",
108
+ "@tsparticles/updater-destroy": "3.9.1",
109
+ "@tsparticles/updater-life": "3.9.1",
110
+ "@tsparticles/updater-rotate": "3.9.1"
111
111
  },
112
112
  "publishConfig": {
113
113
  "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/fireworks [1 Aug 2025 at 08:55]</title>
6
+ <title>@tsparticles/fireworks [3 Aug 2025 at 23:45]</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
- * v3.9.0
7
+ * v3.9.1
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -44,7 +44,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
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 */ loadTrailEffect: () => (/* binding */ loadTrailEffect)\n/* harmony export */ });\n/* harmony import */ var _TrailDrawer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TrailDrawer.js */ \"../../effects/trail/dist/browser/TrailDrawer.js\");\n\nasync function loadTrailEffect(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addEffect(\"trail\", new _TrailDrawer_js__WEBPACK_IMPORTED_MODULE_0__.TrailDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../effects/trail/dist/browser/index.js?\n}");
47
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadTrailEffect: () => (/* binding */ loadTrailEffect)\n/* harmony export */ });\n/* harmony import */ var _TrailDrawer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TrailDrawer.js */ \"../../effects/trail/dist/browser/TrailDrawer.js\");\n\nasync function loadTrailEffect(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addEffect(\"trail\", new _TrailDrawer_js__WEBPACK_IMPORTED_MODULE_0__.TrailDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../effects/trail/dist/browser/index.js?\n}");
48
48
 
49
49
  /***/ }),
50
50
 
@@ -74,7 +74,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
74
74
  \************************************************/
75
75
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76
76
 
77
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Engine: () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Container_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Container.js */ \"../../engine/dist/browser/Core/Container.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"../../engine/dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/Types/EventType.js */ \"../../engine/dist/browser/Enums/Types/EventType.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/NumberUtils.js */ \"../../engine/dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.getLogger)().error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = domContainer => {\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag) {\n canvasEl = domContainer;\n if (!canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute]) {\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n }\n } else {\n const existingCanvases = domContainer.getElementsByTagName(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n if (existingCanvases.length) {\n canvasEl = existingCanvases[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasFirstIndex];\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n canvasEl = document.createElement(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n const fullPercent = \"100%\";\n if (!canvasEl.style.width) {\n canvasEl.style.width = fullPercent;\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = fullPercent;\n }\n return canvasEl;\n },\n getDomContainer = (id, source) => {\n let domContainer = source ?? document.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n document.body.append(domContainer);\n return domContainer;\n };\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__.EventDispatcher();\n this._initialized = false;\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map()\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"3.9.0\";\n }\n async addColorManager(manager, refresh = true) {\n this.colorManagers.set(manager.key, manager);\n await this.refresh(refresh);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(_Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__.EventType.configAdded, {\n data: {\n name: key,\n config\n }\n });\n }\n async addEasing(name, easing, refresh = true) {\n if (this.getEasing(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n await this.refresh(refresh);\n }\n async addEffect(effect, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.executeOnSingleOrMultiple)(effect, type => {\n if (!this.getEffectDrawer(type)) {\n this.effectDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer, refresh = true) {\n this._initializers.interactors.set(name, interactorInitializer);\n await this.refresh(refresh);\n }\n async addMover(name, moverInitializer, refresh = true) {\n this._initializers.movers.set(name, moverInitializer);\n await this.refresh(refresh);\n }\n async addParticleUpdater(name, updaterInitializer, refresh = true) {\n this._initializers.updaters.set(name, updaterInitializer);\n await this.refresh(refresh);\n }\n async addPathGenerator(name, generator, refresh = true) {\n if (!this.getPathGenerator(name)) {\n this.pathGenerators.set(name, generator);\n }\n await this.refresh(refresh);\n }\n async addPlugin(plugin, refresh = true) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n await this.refresh(refresh);\n }\n async addPreset(preset, options, override = false, refresh = true) {\n if (override || !this.getPreset(preset)) {\n this.presets.set(preset, options);\n }\n await this.refresh(refresh);\n }\n async addShape(drawer, refresh = true) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n await this.refresh(refresh);\n }\n checkVersion(pluginVersion) {\n if (this.version === pluginVersion) {\n return;\n }\n throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${pluginVersion}`);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? (value => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n item(index) {\n const {\n items\n } = this,\n item = items[index];\n if (!item || item.destroyed) {\n items.splice(index, _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.removeDeleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n const id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__.getRandom)() * _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadRandomFactor)}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options,\n currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(options, index),\n {\n items\n } = this,\n oldIndex = items.findIndex(v => v.id.description === id),\n newItem = new _Container_js__WEBPACK_IMPORTED_MODULE_2__.Container(this, id, currentOptions);\n if (oldIndex >= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadMinIndex) {\n const old = this.item(oldIndex),\n deleteCount = old ? _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.one : _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n } else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element),\n canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => plugin.loadOptions?.(options, sourceOptions));\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const {\n items\n } = this;\n if (!items.length) {\n throw new Error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n items.forEach(item => item.addClickHandler(callback));\n }\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../engine/dist/browser/Core/Engine.js?\n}");
77
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Engine: () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Container_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Container.js */ \"../../engine/dist/browser/Core/Container.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"../../engine/dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/Types/EventType.js */ \"../../engine/dist/browser/Enums/Types/EventType.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/NumberUtils.js */ \"../../engine/dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.getLogger)().error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = domContainer => {\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag) {\n canvasEl = domContainer;\n if (!canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute]) {\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n }\n } else {\n const existingCanvases = domContainer.getElementsByTagName(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n if (existingCanvases.length) {\n canvasEl = existingCanvases[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasFirstIndex];\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n canvasEl = document.createElement(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n const fullPercent = \"100%\";\n if (!canvasEl.style.width) {\n canvasEl.style.width = fullPercent;\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = fullPercent;\n }\n return canvasEl;\n },\n getDomContainer = (id, source) => {\n let domContainer = source ?? document.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n document.body.append(domContainer);\n return domContainer;\n };\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__.EventDispatcher();\n this._initialized = false;\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map()\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"3.9.1\";\n }\n async addColorManager(manager, refresh = true) {\n this.colorManagers.set(manager.key, manager);\n await this.refresh(refresh);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(_Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__.EventType.configAdded, {\n data: {\n name: key,\n config\n }\n });\n }\n async addEasing(name, easing, refresh = true) {\n if (this.getEasing(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n await this.refresh(refresh);\n }\n async addEffect(effect, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.executeOnSingleOrMultiple)(effect, type => {\n if (!this.getEffectDrawer(type)) {\n this.effectDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer, refresh = true) {\n this._initializers.interactors.set(name, interactorInitializer);\n await this.refresh(refresh);\n }\n async addMover(name, moverInitializer, refresh = true) {\n this._initializers.movers.set(name, moverInitializer);\n await this.refresh(refresh);\n }\n async addParticleUpdater(name, updaterInitializer, refresh = true) {\n this._initializers.updaters.set(name, updaterInitializer);\n await this.refresh(refresh);\n }\n async addPathGenerator(name, generator, refresh = true) {\n if (!this.getPathGenerator(name)) {\n this.pathGenerators.set(name, generator);\n }\n await this.refresh(refresh);\n }\n async addPlugin(plugin, refresh = true) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n await this.refresh(refresh);\n }\n async addPreset(preset, options, override = false, refresh = true) {\n if (override || !this.getPreset(preset)) {\n this.presets.set(preset, options);\n }\n await this.refresh(refresh);\n }\n async addShape(drawer, refresh = true) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n await this.refresh(refresh);\n }\n checkVersion(pluginVersion) {\n if (this.version === pluginVersion) {\n return;\n }\n throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${pluginVersion}`);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? (value => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n item(index) {\n const {\n items\n } = this,\n item = items[index];\n if (!item || item.destroyed) {\n items.splice(index, _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.removeDeleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n const id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__.getRandom)() * _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadRandomFactor)}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options,\n currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(options, index),\n {\n items\n } = this,\n oldIndex = items.findIndex(v => v.id.description === id),\n newItem = new _Container_js__WEBPACK_IMPORTED_MODULE_2__.Container(this, id, currentOptions);\n if (oldIndex >= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadMinIndex) {\n const old = this.item(oldIndex),\n deleteCount = old ? _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.one : _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n } else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element),\n canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => plugin.loadOptions?.(options, sourceOptions));\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const {\n items\n } = this;\n if (!items.length) {\n throw new Error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n items.forEach(item => item.addClickHandler(callback));\n }\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../engine/dist/browser/Core/Engine.js?\n}");
78
78
 
79
79
  /***/ }),
80
80
 
@@ -2054,7 +2054,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2054
2054
  \*********************************************/
2055
2055
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2056
2056
 
2057
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBaseMover: () => (/* binding */ loadBaseMover)\n/* harmony export */ });\n/* harmony import */ var _BaseMover_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseMover.js */ \"../../move/base/dist/browser/BaseMover.js\");\n\nasync function loadBaseMover(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addMover(\"base\", () => {\n return Promise.resolve(new _BaseMover_js__WEBPACK_IMPORTED_MODULE_0__.BaseMover());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../move/base/dist/browser/index.js?\n}");
2057
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBaseMover: () => (/* binding */ loadBaseMover)\n/* harmony export */ });\n/* harmony import */ var _BaseMover_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseMover.js */ \"../../move/base/dist/browser/BaseMover.js\");\n\nasync function loadBaseMover(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addMover(\"base\", () => {\n return Promise.resolve(new _BaseMover_js__WEBPACK_IMPORTED_MODULE_0__.BaseMover());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../move/base/dist/browser/index.js?\n}");
2058
2058
 
2059
2059
  /***/ }),
2060
2060
 
@@ -2074,7 +2074,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2074
2074
  \***********************************************************/
2075
2075
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2076
2076
 
2077
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHexColorPlugin: () => (/* binding */ loadHexColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _HexColorManager_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HexColorManager.js */ \"../../plugins/colors/hexColor/dist/browser/HexColorManager.js\");\n\nasync function loadHexColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addColorManager(new _HexColorManager_js__WEBPACK_IMPORTED_MODULE_0__.HexColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/colors/hexColor/dist/browser/index.js?\n}");
2077
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHexColorPlugin: () => (/* binding */ loadHexColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _HexColorManager_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HexColorManager.js */ \"../../plugins/colors/hexColor/dist/browser/HexColorManager.js\");\n\nasync function loadHexColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new _HexColorManager_js__WEBPACK_IMPORTED_MODULE_0__.HexColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/colors/hexColor/dist/browser/index.js?\n}");
2078
2078
 
2079
2079
  /***/ }),
2080
2080
 
@@ -2094,7 +2094,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2094
2094
  \***********************************************************/
2095
2095
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2096
2096
 
2097
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHslColorPlugin: () => (/* binding */ loadHslColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _HslColorManager_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HslColorManager.js */ \"../../plugins/colors/hslColor/dist/browser/HslColorManager.js\");\n\nasync function loadHslColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addColorManager(new _HslColorManager_js__WEBPACK_IMPORTED_MODULE_0__.HslColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/colors/hslColor/dist/browser/index.js?\n}");
2097
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHslColorPlugin: () => (/* binding */ loadHslColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _HslColorManager_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HslColorManager.js */ \"../../plugins/colors/hslColor/dist/browser/HslColorManager.js\");\n\nasync function loadHslColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new _HslColorManager_js__WEBPACK_IMPORTED_MODULE_0__.HslColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/colors/hslColor/dist/browser/index.js?\n}");
2098
2098
 
2099
2099
  /***/ }),
2100
2100
 
@@ -2114,7 +2114,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2114
2114
  \***********************************************************/
2115
2115
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2116
2116
 
2117
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRgbColorPlugin: () => (/* binding */ loadRgbColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RgbColorManager.js */ \"../../plugins/colors/rgbColor/dist/browser/RgbColorManager.js\");\n\nasync function loadRgbColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addColorManager(new _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_0__.RgbColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/colors/rgbColor/dist/browser/index.js?\n}");
2117
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRgbColorPlugin: () => (/* binding */ loadRgbColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RgbColorManager.js */ \"../../plugins/colors/rgbColor/dist/browser/RgbColorManager.js\");\n\nasync function loadRgbColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_0__.RgbColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/colors/rgbColor/dist/browser/index.js?\n}");
2118
2118
 
2119
2119
  /***/ }),
2120
2120
 
@@ -2294,7 +2294,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2294
2294
  \****************************************************/
2295
2295
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2296
2296
 
2297
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmitterClickMode: () => (/* reexport safe */ _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_7__.EmitterClickMode),\n/* harmony export */ EmitterShapeBase: () => (/* reexport safe */ _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_3__.EmitterShapeBase),\n/* harmony export */ loadEmittersPlugin: () => (/* binding */ loadEmittersPlugin)\n/* harmony export */ });\n/* harmony import */ var _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmittersPlugin.js */ \"../../plugins/emitters/dist/browser/EmittersPlugin.js\");\n/* harmony import */ var _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShapeManager.js */ \"../../plugins/emitters/dist/browser/ShapeManager.js\");\n/* harmony import */ var _EmitterContainer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./EmitterContainer.js */ \"../../plugins/emitters/dist/browser/EmitterContainer.js\");\n/* harmony import */ var _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmitterShapeBase.js */ \"../../plugins/emitters/dist/browser/EmitterShapeBase.js\");\n/* harmony import */ var _EmittersEngine_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EmittersEngine.js */ \"../../plugins/emitters/dist/browser/EmittersEngine.js\");\n/* harmony import */ var _IEmitterShape_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./IEmitterShape.js */ \"../../plugins/emitters/dist/browser/IEmitterShape.js\");\n/* harmony import */ var _IEmitterShapeGenerator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./IEmitterShapeGenerator.js */ \"../../plugins/emitters/dist/browser/IEmitterShapeGenerator.js\");\n/* harmony import */ var _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Enums/EmitterClickMode.js */ \"../../plugins/emitters/dist/browser/Enums/EmitterClickMode.js\");\n/* harmony import */ var _IRandomPositionData_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./IRandomPositionData.js */ \"../../plugins/emitters/dist/browser/IRandomPositionData.js\");\n\n\nasync function loadEmittersPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__.ShapeManager(engine);\n }\n if (!engine.addEmitterShapeGenerator) {\n engine.addEmitterShapeGenerator = (name, generator) => {\n engine.emitterShapeManager?.addShapeGenerator(name, generator);\n };\n }\n const plugin = new _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__.EmittersPlugin(engine);\n await engine.addPlugin(plugin, refresh);\n}\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/emitters/dist/browser/index.js?\n}");
2297
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmitterClickMode: () => (/* reexport safe */ _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_7__.EmitterClickMode),\n/* harmony export */ EmitterShapeBase: () => (/* reexport safe */ _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_3__.EmitterShapeBase),\n/* harmony export */ loadEmittersPlugin: () => (/* binding */ loadEmittersPlugin)\n/* harmony export */ });\n/* harmony import */ var _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmittersPlugin.js */ \"../../plugins/emitters/dist/browser/EmittersPlugin.js\");\n/* harmony import */ var _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShapeManager.js */ \"../../plugins/emitters/dist/browser/ShapeManager.js\");\n/* harmony import */ var _EmitterContainer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./EmitterContainer.js */ \"../../plugins/emitters/dist/browser/EmitterContainer.js\");\n/* harmony import */ var _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmitterShapeBase.js */ \"../../plugins/emitters/dist/browser/EmitterShapeBase.js\");\n/* harmony import */ var _EmittersEngine_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EmittersEngine.js */ \"../../plugins/emitters/dist/browser/EmittersEngine.js\");\n/* harmony import */ var _IEmitterShape_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./IEmitterShape.js */ \"../../plugins/emitters/dist/browser/IEmitterShape.js\");\n/* harmony import */ var _IEmitterShapeGenerator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./IEmitterShapeGenerator.js */ \"../../plugins/emitters/dist/browser/IEmitterShapeGenerator.js\");\n/* harmony import */ var _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Enums/EmitterClickMode.js */ \"../../plugins/emitters/dist/browser/Enums/EmitterClickMode.js\");\n/* harmony import */ var _IRandomPositionData_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./IRandomPositionData.js */ \"../../plugins/emitters/dist/browser/IRandomPositionData.js\");\n\n\nasync function loadEmittersPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__.ShapeManager(engine);\n }\n if (!engine.addEmitterShapeGenerator) {\n engine.addEmitterShapeGenerator = (name, generator) => {\n engine.emitterShapeManager?.addShapeGenerator(name, generator);\n };\n }\n const plugin = new _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__.EmittersPlugin(engine);\n await engine.addPlugin(plugin, refresh);\n}\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/emitters/dist/browser/index.js?\n}");
2298
2298
 
2299
2299
  /***/ }),
2300
2300
 
@@ -2324,7 +2324,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2324
2324
  \*****************************************************************/
2325
2325
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2326
2326
 
2327
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadEmittersShapeSquare: () => (/* binding */ loadEmittersShapeSquare)\n/* harmony export */ });\n/* harmony import */ var _EmittersSquareShapeGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmittersSquareShapeGenerator.js */ \"../../plugins/emittersShapes/square/dist/browser/EmittersSquareShapeGenerator.js\");\n\nasync function loadEmittersShapeSquare(engine, refresh = true) {\n const emittersEngine = engine;\n emittersEngine.checkVersion(\"3.9.0\");\n emittersEngine.addEmitterShapeGenerator?.(\"square\", new _EmittersSquareShapeGenerator_js__WEBPACK_IMPORTED_MODULE_0__.EmittersSquareShapeGenerator());\n await emittersEngine.refresh(refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/emittersShapes/square/dist/browser/index.js?\n}");
2327
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadEmittersShapeSquare: () => (/* binding */ loadEmittersShapeSquare)\n/* harmony export */ });\n/* harmony import */ var _EmittersSquareShapeGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmittersSquareShapeGenerator.js */ \"../../plugins/emittersShapes/square/dist/browser/EmittersSquareShapeGenerator.js\");\n\nasync function loadEmittersShapeSquare(engine, refresh = true) {\n const emittersEngine = engine;\n emittersEngine.checkVersion(\"3.9.1\");\n emittersEngine.addEmitterShapeGenerator?.(\"square\", new _EmittersSquareShapeGenerator_js__WEBPACK_IMPORTED_MODULE_0__.EmittersSquareShapeGenerator());\n await emittersEngine.refresh(refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/emittersShapes/square/dist/browser/index.js?\n}");
2328
2328
 
2329
2329
  /***/ }),
2330
2330
 
@@ -2444,7 +2444,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2444
2444
  \**************************************************/
2445
2445
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2446
2446
 
2447
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSoundsPlugin: () => (/* binding */ loadSoundsPlugin)\n/* harmony export */ });\n/* harmony import */ var _SoundsPlugin_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SoundsPlugin.js */ \"../../plugins/sounds/dist/browser/SoundsPlugin.js\");\n\nasync function loadSoundsPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addPlugin(new _SoundsPlugin_js__WEBPACK_IMPORTED_MODULE_0__.SoundsPlugin(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/sounds/dist/browser/index.js?\n}");
2447
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSoundsPlugin: () => (/* binding */ loadSoundsPlugin)\n/* harmony export */ });\n/* harmony import */ var _SoundsPlugin_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SoundsPlugin.js */ \"../../plugins/sounds/dist/browser/SoundsPlugin.js\");\n\nasync function loadSoundsPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addPlugin(new _SoundsPlugin_js__WEBPACK_IMPORTED_MODULE_0__.SoundsPlugin(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../plugins/sounds/dist/browser/index.js?\n}");
2448
2448
 
2449
2449
  /***/ }),
2450
2450
 
@@ -2484,7 +2484,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2484
2484
  \*************************************************/
2485
2485
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2486
2486
 
2487
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCircleShape: () => (/* binding */ loadCircleShape)\n/* harmony export */ });\n/* harmony import */ var _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CircleDrawer.js */ \"../../shapes/circle/dist/browser/CircleDrawer.js\");\n\nasync function loadCircleShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addShape(new _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_0__.CircleDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../shapes/circle/dist/browser/index.js?\n}");
2487
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCircleShape: () => (/* binding */ loadCircleShape)\n/* harmony export */ });\n/* harmony import */ var _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CircleDrawer.js */ \"../../shapes/circle/dist/browser/CircleDrawer.js\");\n\nasync function loadCircleShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_0__.CircleDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../shapes/circle/dist/browser/index.js?\n}");
2488
2488
 
2489
2489
  /***/ }),
2490
2490
 
@@ -2504,7 +2504,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2504
2504
  \**************************************************/
2505
2505
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2506
2506
 
2507
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadColorUpdater: () => (/* binding */ loadColorUpdater)\n/* harmony export */ });\n/* harmony import */ var _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ColorUpdater.js */ \"../../updaters/color/dist/browser/ColorUpdater.js\");\n\nasync function loadColorUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addParticleUpdater(\"color\", container => {\n return Promise.resolve(new _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_0__.ColorUpdater(container, engine));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/color/dist/browser/index.js?\n}");
2507
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadColorUpdater: () => (/* binding */ loadColorUpdater)\n/* harmony export */ });\n/* harmony import */ var _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ColorUpdater.js */ \"../../updaters/color/dist/browser/ColorUpdater.js\");\n\nasync function loadColorUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"color\", container => {\n return Promise.resolve(new _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_0__.ColorUpdater(container, engine));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/color/dist/browser/index.js?\n}");
2508
2508
 
2509
2509
  /***/ }),
2510
2510
 
@@ -2594,7 +2594,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2594
2594
  \****************************************************/
2595
2595
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2596
2596
 
2597
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadDestroyUpdater: () => (/* binding */ loadDestroyUpdater)\n/* harmony export */ });\n/* harmony import */ var _DestroyUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DestroyUpdater.js */ \"../../updaters/destroy/dist/browser/DestroyUpdater.js\");\n\nasync function loadDestroyUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addParticleUpdater(\"destroy\", container => {\n return Promise.resolve(new _DestroyUpdater_js__WEBPACK_IMPORTED_MODULE_0__.DestroyUpdater(engine, container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/destroy/dist/browser/index.js?\n}");
2597
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadDestroyUpdater: () => (/* binding */ loadDestroyUpdater)\n/* harmony export */ });\n/* harmony import */ var _DestroyUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DestroyUpdater.js */ \"../../updaters/destroy/dist/browser/DestroyUpdater.js\");\n\nasync function loadDestroyUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"destroy\", container => {\n return Promise.resolve(new _DestroyUpdater_js__WEBPACK_IMPORTED_MODULE_0__.DestroyUpdater(engine, container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/destroy/dist/browser/index.js?\n}");
2598
2598
 
2599
2599
  /***/ }),
2600
2600
 
@@ -2654,7 +2654,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2654
2654
  \*************************************************/
2655
2655
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2656
2656
 
2657
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadLifeUpdater: () => (/* binding */ loadLifeUpdater)\n/* harmony export */ });\n/* harmony import */ var _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LifeUpdater.js */ \"../../updaters/life/dist/browser/LifeUpdater.js\");\n\nasync function loadLifeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addParticleUpdater(\"life\", async container => {\n return Promise.resolve(new _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_0__.LifeUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/life/dist/browser/index.js?\n}");
2657
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadLifeUpdater: () => (/* binding */ loadLifeUpdater)\n/* harmony export */ });\n/* harmony import */ var _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LifeUpdater.js */ \"../../updaters/life/dist/browser/LifeUpdater.js\");\n\nasync function loadLifeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"life\", async container => {\n return Promise.resolve(new _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_0__.LifeUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/life/dist/browser/index.js?\n}");
2658
2658
 
2659
2659
  /***/ }),
2660
2660
 
@@ -2674,7 +2674,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2674
2674
  \****************************************************/
2675
2675
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2676
2676
 
2677
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOpacityUpdater: () => (/* binding */ loadOpacityUpdater)\n/* harmony export */ });\n/* harmony import */ var _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OpacityUpdater.js */ \"../../updaters/opacity/dist/browser/OpacityUpdater.js\");\n\nasync function loadOpacityUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addParticleUpdater(\"opacity\", container => {\n return Promise.resolve(new _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_0__.OpacityUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/opacity/dist/browser/index.js?\n}");
2677
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOpacityUpdater: () => (/* binding */ loadOpacityUpdater)\n/* harmony export */ });\n/* harmony import */ var _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OpacityUpdater.js */ \"../../updaters/opacity/dist/browser/OpacityUpdater.js\");\n\nasync function loadOpacityUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"opacity\", container => {\n return Promise.resolve(new _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_0__.OpacityUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/opacity/dist/browser/index.js?\n}");
2678
2678
 
2679
2679
  /***/ }),
2680
2680
 
@@ -2744,7 +2744,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2744
2744
  \*****************************************************/
2745
2745
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2746
2746
 
2747
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOutModesUpdater: () => (/* binding */ loadOutModesUpdater)\n/* harmony export */ });\n/* harmony import */ var _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OutOfCanvasUpdater.js */ \"../../updaters/outModes/dist/browser/OutOfCanvasUpdater.js\");\n\nasync function loadOutModesUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addParticleUpdater(\"outModes\", container => {\n return Promise.resolve(new _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_0__.OutOfCanvasUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/outModes/dist/browser/index.js?\n}");
2747
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOutModesUpdater: () => (/* binding */ loadOutModesUpdater)\n/* harmony export */ });\n/* harmony import */ var _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OutOfCanvasUpdater.js */ \"../../updaters/outModes/dist/browser/OutOfCanvasUpdater.js\");\n\nasync function loadOutModesUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"outModes\", container => {\n return Promise.resolve(new _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_0__.OutOfCanvasUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/outModes/dist/browser/index.js?\n}");
2748
2748
 
2749
2749
  /***/ }),
2750
2750
 
@@ -2784,7 +2784,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2784
2784
  \***************************************************/
2785
2785
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2786
2786
 
2787
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRotateUpdater: () => (/* binding */ loadRotateUpdater)\n/* harmony export */ });\n/* harmony import */ var _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RotateUpdater.js */ \"../../updaters/rotate/dist/browser/RotateUpdater.js\");\n\nasync function loadRotateUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addParticleUpdater(\"rotate\", container => {\n return Promise.resolve(new _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_0__.RotateUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/rotate/dist/browser/index.js?\n}");
2787
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRotateUpdater: () => (/* binding */ loadRotateUpdater)\n/* harmony export */ });\n/* harmony import */ var _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RotateUpdater.js */ \"../../updaters/rotate/dist/browser/RotateUpdater.js\");\n\nasync function loadRotateUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"rotate\", container => {\n return Promise.resolve(new _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_0__.RotateUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/rotate/dist/browser/index.js?\n}");
2788
2788
 
2789
2789
  /***/ }),
2790
2790
 
@@ -2804,7 +2804,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2804
2804
  \*************************************************/
2805
2805
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2806
2806
 
2807
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSizeUpdater: () => (/* binding */ loadSizeUpdater)\n/* harmony export */ });\n/* harmony import */ var _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SizeUpdater.js */ \"../../updaters/size/dist/browser/SizeUpdater.js\");\n\nasync function loadSizeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await engine.addParticleUpdater(\"size\", () => {\n return Promise.resolve(new _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_0__.SizeUpdater());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/size/dist/browser/index.js?\n}");
2807
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSizeUpdater: () => (/* binding */ loadSizeUpdater)\n/* harmony export */ });\n/* harmony import */ var _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SizeUpdater.js */ \"../../updaters/size/dist/browser/SizeUpdater.js\");\n\nasync function loadSizeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"size\", () => {\n return Promise.resolve(new _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_0__.SizeUpdater());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../../updaters/size/dist/browser/index.js?\n}");
2808
2808
 
2809
2809
  /***/ }),
2810
2810
 
@@ -2814,7 +2814,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2814
2814
  \**************************************/
2815
2815
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2816
2816
 
2817
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBasic: () => (/* binding */ loadBasic)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_move_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/move-base */ \"../../move/base/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/shape-circle */ \"../../shapes/circle/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/updater-color */ \"../../updaters/color/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/plugin-hex-color */ \"../../plugins/colors/hexColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/plugin-hsl-color */ \"../../plugins/colors/hslColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/updater-opacity */ \"../../updaters/opacity/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/updater-out-modes */ \"../../updaters/outModes/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/plugin-rgb-color */ \"../../plugins/colors/rgbColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/updater-size */ \"../../updaters/size/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\nasync function loadBasic(engine, refresh = true) {\n engine.checkVersion(\"3.9.0\");\n await (0,_tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_3__.loadHexColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_4__.loadHslColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_7__.loadRgbColorPlugin)(engine, false);\n await (0,_tsparticles_move_base__WEBPACK_IMPORTED_MODULE_0__.loadBaseMover)(engine, false);\n await (0,_tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_1__.loadCircleShape)(engine, false);\n await (0,_tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_2__.loadColorUpdater)(engine, false);\n await (0,_tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_5__.loadOpacityUpdater)(engine, false);\n await (0,_tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_6__.loadOutModesUpdater)(engine, false);\n await (0,_tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_8__.loadSizeUpdater)(engine, false);\n await engine.refresh(refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../basic/dist/browser/index.js?\n}");
2817
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBasic: () => (/* binding */ loadBasic)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_move_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/move-base */ \"../../move/base/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/shape-circle */ \"../../shapes/circle/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/updater-color */ \"../../updaters/color/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/plugin-hex-color */ \"../../plugins/colors/hexColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/plugin-hsl-color */ \"../../plugins/colors/hslColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/updater-opacity */ \"../../updaters/opacity/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/updater-out-modes */ \"../../updaters/outModes/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/plugin-rgb-color */ \"../../plugins/colors/rgbColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/updater-size */ \"../../updaters/size/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\nasync function loadBasic(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await (0,_tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_3__.loadHexColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_4__.loadHslColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_7__.loadRgbColorPlugin)(engine, false);\n await (0,_tsparticles_move_base__WEBPACK_IMPORTED_MODULE_0__.loadBaseMover)(engine, false);\n await (0,_tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_1__.loadCircleShape)(engine, false);\n await (0,_tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_2__.loadColorUpdater)(engine, false);\n await (0,_tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_5__.loadOpacityUpdater)(engine, false);\n await (0,_tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_6__.loadOutModesUpdater)(engine, false);\n await (0,_tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_8__.loadSizeUpdater)(engine, false);\n await engine.refresh(refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/../basic/dist/browser/index.js?\n}");
2818
2818
 
2819
2819
  /***/ }),
2820
2820
 
@@ -2844,7 +2844,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
2844
2844
  \***********************************/
2845
2845
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2846
2846
 
2847
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fireworks: () => (/* binding */ fireworks)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _FireworkOptions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FireworkOptions.js */ \"./dist/browser/FireworkOptions.js\");\n/* harmony import */ var _tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/basic */ \"../basic/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_destroy__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/updater-destroy */ \"../../updaters/destroy/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/plugin-emitters */ \"../../plugins/emitters/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_emitters_shape_square__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/plugin-emitters-shape-square */ \"../../plugins/emittersShapes/square/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/updater-life */ \"../../updaters/life/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/updater-rotate */ \"../../updaters/rotate/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_sounds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/plugin-sounds */ \"../../plugins/sounds/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_effect_trail__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @tsparticles/effect-trail */ \"../../effects/trail/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\n\nconst minSplitCount = 2;\nlet initialized = false;\nlet initializing = false;\nconst explodeSoundCheck = args => {\n const data = args.data;\n return data.particle.shape === \"circle\" && !!data.particle.splitCount && data.particle.splitCount < minSplitCount;\n};\nclass FireworksInstance {\n constructor(container) {\n this._container = container;\n }\n pause() {\n this._container.pause();\n }\n play() {\n this._container.play();\n }\n stop() {\n this._container.stop();\n }\n}\nasync function initPlugins(engine) {\n if (initialized) {\n return;\n }\n if (initializing) {\n return new Promise(resolve => {\n const timeout = 100,\n interval = setInterval(() => {\n if (!initialized) {\n return;\n }\n clearInterval(interval);\n resolve();\n }, timeout);\n });\n }\n initializing = true;\n engine.checkVersion(\"3.9.0\");\n await (0,_tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_4__.loadEmittersPlugin)(engine, false);\n await (0,_tsparticles_plugin_emitters_shape_square__WEBPACK_IMPORTED_MODULE_5__.loadEmittersShapeSquare)(engine, false);\n await (0,_tsparticles_plugin_sounds__WEBPACK_IMPORTED_MODULE_8__.loadSoundsPlugin)(engine, false);\n await (0,_tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_7__.loadRotateUpdater)(engine, false);\n await (0,_tsparticles_updater_destroy__WEBPACK_IMPORTED_MODULE_3__.loadDestroyUpdater)(engine, false);\n await (0,_tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_6__.loadLifeUpdater)(engine, false);\n await (0,_tsparticles_effect_trail__WEBPACK_IMPORTED_MODULE_9__.loadTrailEffect)(engine, false);\n await (0,_tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__.loadBasic)(engine, false);\n initializing = false;\n initialized = true;\n}\nfunction getOptions(options, canvas) {\n const identity = 1;\n return {\n detectRetina: true,\n background: {\n color: options.background\n },\n fullScreen: {\n enable: !!canvas\n },\n fpsLimit: 60,\n emitters: {\n direction: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.top,\n life: {\n count: 0,\n duration: 0.1,\n delay: 0.1\n },\n rate: {\n delay: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(options.rate) ? identity / options.rate : {\n min: identity / (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(options.rate),\n max: identity / (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(options.rate)\n },\n quantity: 1\n },\n size: {\n width: 100,\n height: 0\n },\n position: {\n y: 100,\n x: 50\n }\n },\n particles: {\n number: {\n value: 0\n },\n color: {\n value: \"#fff\"\n },\n destroy: {\n mode: \"split\",\n bounds: {\n top: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(options.minHeight)\n },\n split: {\n sizeOffset: false,\n count: 1,\n factor: {\n value: 0.333333\n },\n rate: {\n value: options.splitCount\n },\n colorOffset: {\n s: options.saturation,\n l: options.brightness\n },\n particles: {\n color: {\n value: options.colors\n },\n number: {\n value: 0\n },\n opacity: {\n value: {\n min: 0.1,\n max: 1\n },\n animation: {\n enable: true,\n speed: 1,\n sync: false,\n startValue: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.max,\n destroy: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.DestroyType.min\n }\n },\n effect: {\n type: \"trail\",\n options: {\n trail: {\n length: {\n min: 5,\n max: 10\n }\n }\n }\n },\n shape: {\n type: \"circle\"\n },\n size: {\n value: {\n min: 1,\n max: 2\n },\n animation: {\n enable: true,\n speed: 5,\n count: 1,\n sync: false,\n startValue: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.min,\n destroy: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.DestroyType.none\n }\n },\n life: {\n count: 1,\n duration: {\n value: {\n min: 0.25,\n max: 0.5\n }\n }\n },\n move: {\n decay: {\n min: 0.05,\n max: 0.1\n },\n enable: true,\n gravity: {\n enable: true,\n inverse: false,\n acceleration: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(options.gravity)\n },\n speed: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(options.speed),\n direction: \"none\",\n outModes: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OutMode.destroy\n }\n }\n }\n },\n life: {\n count: 1\n },\n effect: {\n type: \"trail\",\n options: {\n trail: {\n length: {\n min: 10,\n max: 30\n },\n minWidth: 1,\n maxWidth: 1\n }\n }\n },\n shape: {\n type: \"circle\"\n },\n size: {\n value: 1\n },\n opacity: {\n value: 0.5\n },\n rotate: {\n path: true\n },\n move: {\n enable: true,\n gravity: {\n acceleration: 15,\n enable: true,\n inverse: true,\n maxSpeed: 100\n },\n speed: {\n min: 10,\n max: 20\n },\n outModes: {\n default: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OutMode.destroy,\n top: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OutMode.none\n }\n }\n },\n sounds: {\n enable: options.sounds,\n events: [{\n event: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.EventType.particleRemoved,\n filter: explodeSoundCheck,\n audio: [\"https://particles.js.org/audio/explosion0.mp3\", \"https://particles.js.org/audio/explosion1.mp3\", \"https://particles.js.org/audio/explosion2.mp3\"]\n }],\n volume: 50\n }\n };\n}\nasync function getFireworksInstance(id, sourceOptions, canvas) {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n const options = new _FireworkOptions_js__WEBPACK_IMPORTED_MODULE_1__.FireworkOptions();\n options.load(sourceOptions);\n const particlesOptions = getOptions(options, canvas),\n container = await _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles.load({\n id,\n element: canvas,\n options: particlesOptions\n });\n if (!container) {\n return;\n }\n return new FireworksInstance(container);\n}\nasync function fireworks(idOrOptions, sourceOptions) {\n let id;\n let options;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(idOrOptions)) {\n id = idOrOptions;\n options = sourceOptions ?? {};\n } else {\n id = \"fireworks\";\n options = idOrOptions ?? {};\n }\n return getFireworksInstance(id, options);\n}\nfireworks.create = async (canvas, options) => {\n const id = canvas.id ?? \"fireworks\";\n return getFireworksInstance(id, options ?? {}, canvas);\n};\nfireworks.init = async () => {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n};\nfireworks.version = \"3.9.0\";\nif (!(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isSsr)()) {\n window.fireworks = fireworks;\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/./dist/browser/fireworks.js?\n}");
2847
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fireworks: () => (/* binding */ fireworks)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _FireworkOptions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FireworkOptions.js */ \"./dist/browser/FireworkOptions.js\");\n/* harmony import */ var _tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/basic */ \"../basic/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_destroy__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/updater-destroy */ \"../../updaters/destroy/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/plugin-emitters */ \"../../plugins/emitters/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_emitters_shape_square__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/plugin-emitters-shape-square */ \"../../plugins/emittersShapes/square/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/updater-life */ \"../../updaters/life/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/updater-rotate */ \"../../updaters/rotate/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_sounds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/plugin-sounds */ \"../../plugins/sounds/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_effect_trail__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @tsparticles/effect-trail */ \"../../effects/trail/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\n\nconst minSplitCount = 2;\nlet initialized = false;\nlet initializing = false;\nconst explodeSoundCheck = args => {\n const data = args.data;\n return data.particle.shape === \"circle\" && !!data.particle.splitCount && data.particle.splitCount < minSplitCount;\n};\nclass FireworksInstance {\n constructor(container) {\n this._container = container;\n }\n pause() {\n this._container.pause();\n }\n play() {\n this._container.play();\n }\n stop() {\n this._container.stop();\n }\n}\nasync function initPlugins(engine) {\n if (initialized) {\n return;\n }\n if (initializing) {\n return new Promise(resolve => {\n const timeout = 100,\n interval = setInterval(() => {\n if (!initialized) {\n return;\n }\n clearInterval(interval);\n resolve();\n }, timeout);\n });\n }\n initializing = true;\n engine.checkVersion(\"3.9.1\");\n await (0,_tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_4__.loadEmittersPlugin)(engine, false);\n await (0,_tsparticles_plugin_emitters_shape_square__WEBPACK_IMPORTED_MODULE_5__.loadEmittersShapeSquare)(engine, false);\n await (0,_tsparticles_plugin_sounds__WEBPACK_IMPORTED_MODULE_8__.loadSoundsPlugin)(engine, false);\n await (0,_tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_7__.loadRotateUpdater)(engine, false);\n await (0,_tsparticles_updater_destroy__WEBPACK_IMPORTED_MODULE_3__.loadDestroyUpdater)(engine, false);\n await (0,_tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_6__.loadLifeUpdater)(engine, false);\n await (0,_tsparticles_effect_trail__WEBPACK_IMPORTED_MODULE_9__.loadTrailEffect)(engine, false);\n await (0,_tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__.loadBasic)(engine, false);\n initializing = false;\n initialized = true;\n}\nfunction getOptions(options, canvas) {\n const identity = 1;\n return {\n detectRetina: true,\n background: {\n color: options.background\n },\n fullScreen: {\n enable: !!canvas\n },\n fpsLimit: 60,\n emitters: {\n direction: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.top,\n life: {\n count: 0,\n duration: 0.1,\n delay: 0.1\n },\n rate: {\n delay: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(options.rate) ? identity / options.rate : {\n min: identity / (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(options.rate),\n max: identity / (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(options.rate)\n },\n quantity: 1\n },\n size: {\n width: 100,\n height: 0\n },\n position: {\n y: 100,\n x: 50\n }\n },\n particles: {\n number: {\n value: 0\n },\n color: {\n value: \"#fff\"\n },\n destroy: {\n mode: \"split\",\n bounds: {\n top: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(options.minHeight)\n },\n split: {\n sizeOffset: false,\n count: 1,\n factor: {\n value: 0.333333\n },\n rate: {\n value: options.splitCount\n },\n colorOffset: {\n s: options.saturation,\n l: options.brightness\n },\n particles: {\n color: {\n value: options.colors\n },\n number: {\n value: 0\n },\n opacity: {\n value: {\n min: 0.1,\n max: 1\n },\n animation: {\n enable: true,\n speed: 1,\n sync: false,\n startValue: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.max,\n destroy: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.DestroyType.min\n }\n },\n effect: {\n type: \"trail\",\n options: {\n trail: {\n length: {\n min: 5,\n max: 10\n }\n }\n }\n },\n shape: {\n type: \"circle\"\n },\n size: {\n value: {\n min: 1,\n max: 2\n },\n animation: {\n enable: true,\n speed: 5,\n count: 1,\n sync: false,\n startValue: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.min,\n destroy: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.DestroyType.none\n }\n },\n life: {\n count: 1,\n duration: {\n value: {\n min: 0.25,\n max: 0.5\n }\n }\n },\n move: {\n decay: {\n min: 0.05,\n max: 0.1\n },\n enable: true,\n gravity: {\n enable: true,\n inverse: false,\n acceleration: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(options.gravity)\n },\n speed: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(options.speed),\n direction: \"none\",\n outModes: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OutMode.destroy\n }\n }\n }\n },\n life: {\n count: 1\n },\n effect: {\n type: \"trail\",\n options: {\n trail: {\n length: {\n min: 10,\n max: 30\n },\n minWidth: 1,\n maxWidth: 1\n }\n }\n },\n shape: {\n type: \"circle\"\n },\n size: {\n value: 1\n },\n opacity: {\n value: 0.5\n },\n rotate: {\n path: true\n },\n move: {\n enable: true,\n gravity: {\n acceleration: 15,\n enable: true,\n inverse: true,\n maxSpeed: 100\n },\n speed: {\n min: 10,\n max: 20\n },\n outModes: {\n default: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OutMode.destroy,\n top: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OutMode.none\n }\n }\n },\n sounds: {\n enable: options.sounds,\n events: [{\n event: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.EventType.particleRemoved,\n filter: explodeSoundCheck,\n audio: [\"https://particles.js.org/audio/explosion0.mp3\", \"https://particles.js.org/audio/explosion1.mp3\", \"https://particles.js.org/audio/explosion2.mp3\"]\n }],\n volume: 50\n }\n };\n}\nasync function getFireworksInstance(id, sourceOptions, canvas) {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n const options = new _FireworkOptions_js__WEBPACK_IMPORTED_MODULE_1__.FireworkOptions();\n options.load(sourceOptions);\n const particlesOptions = getOptions(options, canvas),\n container = await _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles.load({\n id,\n element: canvas,\n options: particlesOptions\n });\n if (!container) {\n return;\n }\n return new FireworksInstance(container);\n}\nasync function fireworks(idOrOptions, sourceOptions) {\n let id;\n let options;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(idOrOptions)) {\n id = idOrOptions;\n options = sourceOptions ?? {};\n } else {\n id = \"fireworks\";\n options = idOrOptions ?? {};\n }\n return getFireworksInstance(id, options);\n}\nfireworks.create = async (canvas, options) => {\n const id = canvas.id ?? \"fireworks\";\n return getFireworksInstance(id, options ?? {}, canvas);\n};\nfireworks.init = async () => {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n};\nfireworks.version = \"3.9.1\";\nif (!(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isSsr)()) {\n window.fireworks = fireworks;\n}\n\n//# sourceURL=webpack://@tsparticles/fireworks/./dist/browser/fireworks.js?\n}");
2848
2848
 
2849
2849
  /***/ }),
2850
2850