@tsparticles/engine 3.2.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/373.min.js +1 -1
  2. package/373.min.js.LICENSE.txt +1 -1
  3. package/438.min.js +1 -1
  4. package/438.min.js.LICENSE.txt +1 -1
  5. package/browser/Core/Container.js +1 -1
  6. package/browser/Core/Engine.js +1 -1
  7. package/browser/Core/Particle.js +1 -2
  8. package/browser/Core/Particles.js +1 -1
  9. package/browser/Core/Utils/EventListeners.js +4 -3
  10. package/browser/Core/Utils/QuadTree.js +4 -5
  11. package/browser/Core/Utils/Ranges.js +55 -0
  12. package/browser/Core/Utils/{Vector3d.js → Vectors.js} +15 -1
  13. package/browser/Options/Classes/AnimatableColor.js +1 -1
  14. package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +1 -1
  15. package/browser/Options/Classes/Options.js +2 -1
  16. package/browser/Options/Classes/OptionsColor.js +1 -1
  17. package/browser/Options/Classes/Particles/Move/Move.js +1 -1
  18. package/browser/Types/RangeType.js +1 -0
  19. package/browser/Utils/ColorUtils.js +2 -1
  20. package/browser/Utils/NumberUtils.js +2 -2
  21. package/browser/Utils/TypeUtils.js +18 -0
  22. package/browser/Utils/Utils.js +2 -19
  23. package/browser/exports.js +3 -5
  24. package/cjs/Core/Container.js +1 -1
  25. package/cjs/Core/Engine.js +1 -1
  26. package/cjs/Core/Particle.js +4 -5
  27. package/cjs/Core/Particles.js +2 -2
  28. package/cjs/Core/Utils/EventListeners.js +4 -3
  29. package/cjs/Core/Utils/QuadTree.js +7 -8
  30. package/cjs/Core/Utils/Ranges.js +61 -0
  31. package/cjs/Core/Utils/{Vector3d.js → Vectors.js} +18 -3
  32. package/cjs/Options/Classes/AnimatableColor.js +2 -2
  33. package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
  34. package/cjs/Options/Classes/Options.js +2 -1
  35. package/cjs/Options/Classes/OptionsColor.js +2 -2
  36. package/cjs/Options/Classes/Particles/Move/Move.js +4 -4
  37. package/cjs/Types/RangeType.js +2 -0
  38. package/cjs/Utils/ColorUtils.js +9 -8
  39. package/cjs/Utils/NumberUtils.js +9 -9
  40. package/cjs/Utils/TypeUtils.js +27 -0
  41. package/cjs/Utils/Utils.js +13 -36
  42. package/cjs/exports.js +3 -5
  43. package/dist_browser_Core_Container_js.js +5 -5
  44. package/dist_browser_Core_Particle_js.js +2 -2
  45. package/esm/Core/Container.js +1 -1
  46. package/esm/Core/Engine.js +1 -1
  47. package/esm/Core/Particle.js +1 -2
  48. package/esm/Core/Particles.js +1 -1
  49. package/esm/Core/Utils/EventListeners.js +4 -3
  50. package/esm/Core/Utils/QuadTree.js +4 -5
  51. package/esm/Core/Utils/Ranges.js +55 -0
  52. package/esm/Core/Utils/{Vector3d.js → Vectors.js} +15 -1
  53. package/esm/Options/Classes/AnimatableColor.js +1 -1
  54. package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +1 -1
  55. package/esm/Options/Classes/Options.js +2 -1
  56. package/esm/Options/Classes/OptionsColor.js +1 -1
  57. package/esm/Options/Classes/Particles/Move/Move.js +1 -1
  58. package/esm/Types/RangeType.js +1 -0
  59. package/esm/Utils/ColorUtils.js +2 -1
  60. package/esm/Utils/NumberUtils.js +2 -2
  61. package/esm/Utils/TypeUtils.js +18 -0
  62. package/esm/Utils/Utils.js +2 -19
  63. package/esm/exports.js +3 -5
  64. package/package.json +1 -1
  65. package/report.html +1 -1
  66. package/tsparticles.engine.js +30 -50
  67. package/tsparticles.engine.min.js +1 -1
  68. package/tsparticles.engine.min.js.LICENSE.txt +1 -1
  69. package/types/Core/Interfaces/ICircleBouncer.d.ts +1 -1
  70. package/types/Core/Interfaces/IMovePathGenerator.d.ts +1 -1
  71. package/types/Core/Particle.d.ts +1 -2
  72. package/types/Core/Utils/QuadTree.d.ts +2 -3
  73. package/types/Core/Utils/Ranges.d.ts +21 -0
  74. package/types/Core/Utils/{Vector3d.d.ts → Vectors.d.ts} +6 -0
  75. package/types/Types/RangeType.d.ts +4 -0
  76. package/types/Utils/NumberUtils.d.ts +1 -1
  77. package/types/Utils/TypeUtils.d.ts +6 -0
  78. package/types/Utils/Utils.d.ts +0 -6
  79. package/types/exports.d.ts +3 -5
  80. package/umd/Core/Container.js +1 -1
  81. package/umd/Core/Engine.js +1 -1
  82. package/umd/Core/Particle.js +5 -6
  83. package/umd/Core/Particles.js +3 -3
  84. package/umd/Core/Utils/EventListeners.js +5 -4
  85. package/umd/Core/Utils/QuadTree.js +8 -9
  86. package/umd/Core/Utils/Ranges.js +71 -0
  87. package/umd/Core/Utils/{Vector3d.js → Vectors.js} +19 -4
  88. package/umd/Options/Classes/AnimatableColor.js +3 -3
  89. package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +3 -3
  90. package/umd/Options/Classes/Options.js +3 -2
  91. package/umd/Options/Classes/OptionsColor.js +3 -3
  92. package/umd/Options/Classes/Particles/Move/Move.js +5 -5
  93. package/umd/{Core/Utils/Range.js → Types/RangeType.js} +0 -10
  94. package/umd/Utils/ColorUtils.js +10 -9
  95. package/umd/Utils/NumberUtils.js +10 -10
  96. package/umd/Utils/TypeUtils.js +37 -0
  97. package/umd/Utils/Utils.js +14 -37
  98. package/umd/exports.js +4 -6
  99. package/browser/Core/Utils/Circle.js +0 -28
  100. package/browser/Core/Utils/Range.js +0 -8
  101. package/browser/Core/Utils/Rectangle.js +0 -22
  102. package/browser/Core/Utils/Vector.js +0 -20
  103. package/cjs/Core/Utils/Circle.js +0 -32
  104. package/cjs/Core/Utils/Range.js +0 -12
  105. package/cjs/Core/Utils/Rectangle.js +0 -26
  106. package/cjs/Core/Utils/Vector.js +0 -24
  107. package/esm/Core/Utils/Circle.js +0 -28
  108. package/esm/Core/Utils/Range.js +0 -8
  109. package/esm/Core/Utils/Rectangle.js +0 -22
  110. package/esm/Core/Utils/Vector.js +0 -20
  111. package/types/Core/Utils/Circle.d.ts +0 -8
  112. package/types/Core/Utils/Range.d.ts +0 -7
  113. package/types/Core/Utils/Rectangle.d.ts +0 -9
  114. package/types/Core/Utils/Vector.d.ts +0 -8
  115. package/umd/Core/Utils/Circle.js +0 -42
  116. package/umd/Core/Utils/Rectangle.js +0 -36
  117. package/umd/Core/Utils/Vector.js +0 -34
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * tsParticles Engine v3.2.0
2
+ * tsParticles Engine v3.2.2
3
3
  * Author: Matteo Bruni
4
4
  * MIT license: https://opensource.org/licenses/MIT
5
5
  * Website: https://particles.js.org/
@@ -36,17 +36,7 @@ return /******/ (() => { // webpackBootstrap
36
36
  \*************************************/
37
37
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
38
38
 
39
- 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_1__ = __webpack_require__(/*! ./Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"./dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\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_0__.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_0__.getLogger)().error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__.EventDispatcher();\n this._initialized = false;\n this.plugins = [];\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 version() {\n return \"3.2.0\";\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(\"configAdded\", {\n data: {\n name: key,\n config\n }\n });\n }\n async addEffect(effect, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.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(shape, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(shape, type => {\n if (!this.getShapeDrawer(type)) {\n this.shapeDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\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._domArray;\n }\n domItem(index) {\n const dom = this.dom(),\n item = dom[index];\n if (!item || item.destroyed) {\n const deleteCount = 1;\n dom.splice(index, deleteCount);\n return;\n }\n return item;\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 getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return await getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return await 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 await getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n async load(params) {\n const randomFactor = 10000,\n id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_3__.getRandom)() * randomFactor)}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options;\n let domContainer = params.element ?? document.getElementById(id);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n document.body.append(domContainer);\n }\n const currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(options, index),\n dom = this.dom(),\n oldIndex = dom.findIndex(v => v.id.description === id),\n minIndex = 0;\n if (oldIndex >= minIndex) {\n const old = this.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n const deleteCount = 1;\n dom.splice(oldIndex, deleteCount);\n }\n }\n let canvasEl;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.generatedAttribute] = \"false\";\n } else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n const firstIndex = 0;\n canvasEl = existingCanvases[firstIndex];\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.generatedAttribute] = \"false\";\n } else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.generatedAttribute] = \"true\";\n domContainer.appendChild(canvasEl);\n }\n }\n if (!canvasEl.style.width) {\n canvasEl.style.width = \"100%\";\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = \"100%\";\n }\n const {\n Container\n } = await __webpack_require__.e(/*! import() */ \"dist_browser_Core_Container_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Container.js */ \"./dist/browser/Core/Container.js\")),\n newItem = new Container(this, id, currentOptions);\n if (oldIndex >= minIndex) {\n const deleteCount = 0;\n dom.splice(oldIndex, deleteCount, newItem);\n } else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n for (const updater of updaters) {\n updater.loadOptions?.(options, ...sourceOptions);\n }\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.dom().map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const dom = this.dom();\n if (!dom.length) {\n throw new Error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Engine.js?");
40
-
41
- /***/ }),
42
-
43
- /***/ "./dist/browser/Core/Utils/Circle.js":
44
- /*!*******************************************!*\
45
- !*** ./dist/browser/Core/Utils/Circle.js ***!
46
- \*******************************************/
47
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48
-
49
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Circle: () => (/* binding */ Circle)\n/* harmony export */ });\n/* harmony import */ var _Range_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Range.js */ \"./dist/browser/Core/Utils/Range.js\");\n/* harmony import */ var _Rectangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Rectangle.js */ \"./dist/browser/Core/Utils/Rectangle.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n\n\n\nconst squareExp = 2;\nclass Circle extends _Range_js__WEBPACK_IMPORTED_MODULE_0__.Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getDistance)(point, this.position) <= this.radius;\n }\n intersects(range) {\n const pos1 = this.position,\n pos2 = range.position,\n distPos = {\n x: Math.abs(pos2.x - pos1.x),\n y: Math.abs(pos2.y - pos1.y)\n },\n r = this.radius;\n if (range instanceof Circle) {\n const rSum = r + range.radius,\n dist = Math.sqrt(distPos.x ** squareExp + distPos.y ** squareExp);\n return rSum > dist;\n } else if (range instanceof _Rectangle_js__WEBPACK_IMPORTED_MODULE_2__.Rectangle) {\n const {\n width,\n height\n } = range.size,\n edges = Math.pow(distPos.x - width, squareExp) + Math.pow(distPos.y - height, squareExp);\n return edges <= r ** squareExp || distPos.x <= r + width && distPos.y <= r + height || distPos.x <= width || distPos.y <= height;\n }\n return false;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Utils/Circle.js?");
39
+ 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_1__ = __webpack_require__(/*! ./Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"./dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\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_0__.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_0__.getLogger)().error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__.EventDispatcher();\n this._initialized = false;\n this.plugins = [];\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 version() {\n return \"3.2.2\";\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(\"configAdded\", {\n data: {\n name: key,\n config\n }\n });\n }\n async addEffect(effect, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.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(shape, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(shape, type => {\n if (!this.getShapeDrawer(type)) {\n this.shapeDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\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._domArray;\n }\n domItem(index) {\n const dom = this.dom(),\n item = dom[index];\n if (!item || item.destroyed) {\n const deleteCount = 1;\n dom.splice(index, deleteCount);\n return;\n }\n return item;\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 getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return await getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return await 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 await getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n async load(params) {\n const randomFactor = 10000,\n id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_3__.getRandom)() * randomFactor)}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options;\n let domContainer = params.element ?? document.getElementById(id);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n document.body.append(domContainer);\n }\n const currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(options, index),\n dom = this.dom(),\n oldIndex = dom.findIndex(v => v.id.description === id),\n minIndex = 0;\n if (oldIndex >= minIndex) {\n const old = this.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n const deleteCount = 1;\n dom.splice(oldIndex, deleteCount);\n }\n }\n let canvasEl;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.generatedAttribute] = \"false\";\n } else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n const firstIndex = 0;\n canvasEl = existingCanvases[firstIndex];\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.generatedAttribute] = \"false\";\n } else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.generatedAttribute] = \"true\";\n domContainer.appendChild(canvasEl);\n }\n }\n if (!canvasEl.style.width) {\n canvasEl.style.width = \"100%\";\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = \"100%\";\n }\n const {\n Container\n } = await __webpack_require__.e(/*! import() */ \"dist_browser_Core_Container_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Container.js */ \"./dist/browser/Core/Container.js\")),\n newItem = new Container(this, id, currentOptions);\n if (oldIndex >= minIndex) {\n const deleteCount = 0;\n dom.splice(oldIndex, deleteCount, newItem);\n } else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n for (const updater of updaters) {\n updater.loadOptions?.(options, ...sourceOptions);\n }\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.dom().map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const dom = this.dom();\n if (!dom.length) {\n throw new Error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Engine.js?");
50
40
 
51
41
  /***/ }),
52
42
 
@@ -90,43 +80,23 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
90
80
 
91
81
  /***/ }),
92
82
 
93
- /***/ "./dist/browser/Core/Utils/Range.js":
94
- /*!******************************************!*\
95
- !*** ./dist/browser/Core/Utils/Range.js ***!
96
- \******************************************/
97
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
98
-
99
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Range: () => (/* binding */ Range)\n/* harmony export */ });\nclass Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y\n };\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Utils/Range.js?");
100
-
101
- /***/ }),
102
-
103
- /***/ "./dist/browser/Core/Utils/Rectangle.js":
104
- /*!**********************************************!*\
105
- !*** ./dist/browser/Core/Utils/Rectangle.js ***!
106
- \**********************************************/
107
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
108
-
109
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Rectangle: () => (/* binding */ Rectangle)\n/* harmony export */ });\n/* harmony import */ var _Circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Circle.js */ \"./dist/browser/Core/Utils/Circle.js\");\n/* harmony import */ var _Range_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Range.js */ \"./dist/browser/Core/Utils/Range.js\");\n\n\nclass Rectangle extends _Range_js__WEBPACK_IMPORTED_MODULE_0__.Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width\n };\n }\n contains(point) {\n const w = this.size.width,\n h = this.size.height,\n pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n if (range instanceof _Circle_js__WEBPACK_IMPORTED_MODULE_1__.Circle) {\n range.intersects(this);\n }\n const w = this.size.width,\n h = this.size.height,\n pos1 = this.position,\n pos2 = range.position,\n size2 = range instanceof Rectangle ? range.size : {\n width: 0,\n height: 0\n },\n w2 = size2.width,\n h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Utils/Rectangle.js?");
110
-
111
- /***/ }),
112
-
113
- /***/ "./dist/browser/Core/Utils/Vector.js":
83
+ /***/ "./dist/browser/Core/Utils/Ranges.js":
114
84
  /*!*******************************************!*\
115
- !*** ./dist/browser/Core/Utils/Vector.js ***!
85
+ !*** ./dist/browser/Core/Utils/Ranges.js ***!
116
86
  \*******************************************/
117
87
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
118
88
 
119
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Vector: () => (/* binding */ Vector)\n/* harmony export */ });\n/* harmony import */ var _Vector3d_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Vector3d.js */ \"./dist/browser/Core/Utils/Vector3d.js\");\n\nconst origin = {\n x: 0,\n y: 0,\n z: 0\n};\nclass Vector extends _Vector3d_js__WEBPACK_IMPORTED_MODULE_0__.Vector3d {\n constructor(xOrCoords, y) {\n super(xOrCoords, y, origin.z);\n }\n static get origin() {\n return Vector.create(origin.x, origin.y);\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Utils/Vector.js?");
89
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BaseRange: () => (/* binding */ BaseRange),\n/* harmony export */ Circle: () => (/* binding */ Circle),\n/* harmony export */ Rectangle: () => (/* binding */ Rectangle)\n/* harmony export */ });\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n\nconst squareExp = 2;\nclass BaseRange {\n constructor(x, y, type) {\n this.position = {\n x: x,\n y: y\n };\n this.type = type;\n }\n}\nclass Circle extends BaseRange {\n constructor(x, y, radius) {\n super(x, y, \"circle\");\n this.radius = radius;\n }\n contains(point) {\n return (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getDistance)(point, this.position) <= this.radius;\n }\n intersects(range) {\n const pos1 = this.position,\n pos2 = range.position,\n distPos = {\n x: Math.abs(pos2.x - pos1.x),\n y: Math.abs(pos2.y - pos1.y)\n },\n r = this.radius;\n if (range instanceof Circle || range.type === \"circle\") {\n const circleRange = range,\n rSum = r + circleRange.radius,\n dist = Math.sqrt(distPos.x ** squareExp + distPos.y ** squareExp);\n return rSum > dist;\n } else if (range instanceof Rectangle || range.type === \"rectangle\") {\n const rectRange = range,\n {\n width,\n height\n } = rectRange.size,\n edges = Math.pow(distPos.x - width, squareExp) + Math.pow(distPos.y - height, squareExp);\n return edges <= r ** squareExp || distPos.x <= r + width && distPos.y <= r + height || distPos.x <= width || distPos.y <= height;\n }\n return false;\n }\n}\nclass Rectangle extends BaseRange {\n constructor(x, y, width, height) {\n super(x, y, \"rectangle\");\n this.size = {\n height: height,\n width: width\n };\n }\n contains(point) {\n const w = this.size.width,\n h = this.size.height,\n pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n if (range instanceof Circle) {\n return range.intersects(this);\n }\n const w = this.size.width,\n h = this.size.height,\n pos1 = this.position,\n pos2 = range.position,\n size2 = range instanceof Rectangle ? range.size : {\n width: 0,\n height: 0\n },\n w2 = size2.width,\n h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Utils/Ranges.js?");
120
90
 
121
91
  /***/ }),
122
92
 
123
- /***/ "./dist/browser/Core/Utils/Vector3d.js":
124
- /*!*********************************************!*\
125
- !*** ./dist/browser/Core/Utils/Vector3d.js ***!
126
- \*********************************************/
93
+ /***/ "./dist/browser/Core/Utils/Vectors.js":
94
+ /*!********************************************!*\
95
+ !*** ./dist/browser/Core/Utils/Vectors.js ***!
96
+ \********************************************/
127
97
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
128
98
 
129
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Vector3d: () => (/* binding */ Vector3d)\n/* harmony export */ });\n/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n\n\nconst origin = {\n x: 0,\n y: 0,\n z: 0\n },\n squareExp = 2,\n inverseFactorNumerator = 1.0;\nclass Vector3d {\n constructor(xOrCoords, y, z) {\n this._updateFromAngle = (angle, length) => {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n };\n if (!(0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(xOrCoords) && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n const coords3d = xOrCoords;\n this.z = coords3d.z ? coords3d.z : origin.z;\n } else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n this.z = z ?? origin.z;\n } else {\n throw new Error(`${_Constants_js__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} Vector3d not initialized correctly`);\n }\n }\n static get origin() {\n return Vector3d.create(origin.x, origin.y, origin.z);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this._updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this._updateFromAngle(this.angle, length);\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n }\n copy() {\n return Vector3d.clone(this);\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n this.z /= n;\n }\n getLengthSq() {\n return this.x ** squareExp + this.y ** squareExp;\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n this.z *= n;\n }\n normalize() {\n const length = this.length,\n noLength = 0;\n if (length != noLength) {\n this.multTo(inverseFactorNumerator / length);\n }\n }\n rotate(angle) {\n return Vector3d.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle), origin.z);\n }\n setTo(c) {\n this.x = c.x;\n this.y = c.y;\n const v3d = c;\n this.z = v3d.z ? v3d.z : origin.z;\n }\n sub(v) {\n return Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Utils/Vector3d.js?");
99
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Vector: () => (/* binding */ Vector),\n/* harmony export */ Vector3d: () => (/* binding */ Vector3d)\n/* harmony export */ });\n/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n\n\nconst origin = {\n x: 0,\n y: 0,\n z: 0\n },\n squareExp = 2,\n inverseFactorNumerator = 1.0;\nclass Vector3d {\n constructor(xOrCoords, y, z) {\n this._updateFromAngle = (angle, length) => {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n };\n if (!(0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(xOrCoords) && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n const coords3d = xOrCoords;\n this.z = coords3d.z ? coords3d.z : origin.z;\n } else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n this.z = z ?? origin.z;\n } else {\n throw new Error(`${_Constants_js__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} Vector3d not initialized correctly`);\n }\n }\n static get origin() {\n return Vector3d.create(origin.x, origin.y, origin.z);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this._updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this._updateFromAngle(this.angle, length);\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n }\n copy() {\n return Vector3d.clone(this);\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n this.z /= n;\n }\n getLengthSq() {\n return this.x ** squareExp + this.y ** squareExp;\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n this.z *= n;\n }\n normalize() {\n const length = this.length,\n noLength = 0;\n if (length != noLength) {\n this.multTo(inverseFactorNumerator / length);\n }\n }\n rotate(angle) {\n return Vector3d.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle), origin.z);\n }\n setTo(c) {\n this.x = c.x;\n this.y = c.y;\n const v3d = c;\n this.z = v3d.z ? v3d.z : origin.z;\n }\n sub(v) {\n return Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n }\n}\nclass Vector extends Vector3d {\n constructor(xOrCoords, y) {\n super(xOrCoords, y, origin.z);\n }\n static get origin() {\n return Vector.create(origin.x, origin.y);\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Utils/Vectors.js?");
130
100
 
131
101
  /***/ }),
132
102
 
@@ -136,7 +106,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
136
106
  \*********************************************************/
137
107
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
138
108
 
139
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableColor: () => (/* binding */ AnimatableColor)\n/* harmony export */ });\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _HslAnimation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HslAnimation.js */ \"./dist/browser/Options/Classes/HslAnimation.js\");\n/* harmony import */ var _OptionsColor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OptionsColor.js */ \"./dist/browser/Options/Classes/OptionsColor.js\");\n\n\n\nclass AnimatableColor extends _OptionsColor_js__WEBPACK_IMPORTED_MODULE_0__.OptionsColor {\n constructor() {\n super();\n this.animation = new _HslAnimation_js__WEBPACK_IMPORTED_MODULE_1__.HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if ((0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(data) || (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(data)) {\n color.load({\n value: data\n });\n } else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n } else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/AnimatableColor.js?");
109
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableColor: () => (/* binding */ AnimatableColor)\n/* harmony export */ });\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _HslAnimation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HslAnimation.js */ \"./dist/browser/Options/Classes/HslAnimation.js\");\n/* harmony import */ var _OptionsColor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OptionsColor.js */ \"./dist/browser/Options/Classes/OptionsColor.js\");\n\n\n\nclass AnimatableColor extends _OptionsColor_js__WEBPACK_IMPORTED_MODULE_0__.OptionsColor {\n constructor() {\n super();\n this.animation = new _HslAnimation_js__WEBPACK_IMPORTED_MODULE_1__.HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(data) || (0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(data)) {\n color.load({\n value: data\n });\n } else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n } else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/AnimatableColor.js?");
140
110
 
141
111
  /***/ }),
142
112
 
@@ -166,7 +136,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
166
136
  \***********************************************************************/
167
137
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
168
138
 
169
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BackgroundMask: () => (/* binding */ BackgroundMask)\n/* harmony export */ });\n/* harmony import */ var _BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BackgroundMaskCover.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n\n\nclass BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new _BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_0__.BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover,\n color = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.isString)(data.cover) ? {\n color: data.cover\n } : data.cover;\n this.cover.load(cover.color !== undefined || cover.image !== undefined ? cover : {\n color: color\n });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/BackgroundMask/BackgroundMask.js?");
139
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BackgroundMask: () => (/* binding */ BackgroundMask)\n/* harmony export */ });\n/* harmony import */ var _BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BackgroundMaskCover.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n\n\nclass BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new _BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_0__.BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover,\n color = (0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_1__.isString)(data.cover) ? {\n color: data.cover\n } : data.cover;\n this.cover.load(cover.color !== undefined || cover.image !== undefined ? cover : {\n color: color\n });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/BackgroundMask/BackgroundMask.js?");
170
140
 
171
141
  /***/ }),
172
142
 
@@ -306,7 +276,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
306
276
  \*************************************************/
307
277
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
308
278
 
309
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Options: () => (/* binding */ Options)\n/* harmony export */ });\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Background_Background_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Background/Background.js */ \"./dist/browser/Options/Classes/Background/Background.js\");\n/* harmony import */ var _BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BackgroundMask/BackgroundMask.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMask.js\");\n/* harmony import */ var _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FullScreen/FullScreen.js */ \"./dist/browser/Options/Classes/FullScreen/FullScreen.js\");\n/* harmony import */ var _Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Interactivity/Interactivity.js */ \"./dist/browser/Options/Classes/Interactivity/Interactivity.js\");\n/* harmony import */ var _ManualParticle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ManualParticle.js */ \"./dist/browser/Options/Classes/ManualParticle.js\");\n/* harmony import */ var _Responsive_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Responsive.js */ \"./dist/browser/Options/Classes/Responsive.js\");\n/* harmony import */ var _Theme_Theme_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Theme/Theme.js */ \"./dist/browser/Options/Classes/Theme/Theme.js\");\n/* harmony import */ var _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Utils/OptionsUtils.js */ \"./dist/browser/Utils/OptionsUtils.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\n\n\n\n\nclass Options {\n constructor(engine, container) {\n this._findDefaultTheme = mode => {\n return this.themes.find(theme => theme.default.value && theme.default.mode === mode) ?? this.themes.find(theme => theme.default.value && theme.default.mode === \"any\");\n };\n this._importPreset = preset => {\n this.load(this._engine.getPreset(preset));\n };\n this._engine = engine;\n this._container = container;\n this.autoPlay = true;\n this.background = new _Background_Background_js__WEBPACK_IMPORTED_MODULE_0__.Background();\n this.backgroundMask = new _BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_1__.BackgroundMask();\n this.clear = true;\n this.defaultThemes = {};\n this.delay = 0;\n this.fullScreen = new _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_2__.FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new _Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_3__.Interactivity(engine, container);\n this.manualParticles = [];\n this.particles = (0,_Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_4__.loadParticlesOptions)(this._engine, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.smooth = false;\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.preset !== undefined) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__.executeOnSingleOrMultiple)(data.preset, preset => this._importPreset(preset));\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.clear !== undefined) {\n this.clear = data.clear;\n }\n if (data.key !== undefined) {\n this.key = data.key;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.delay !== undefined) {\n this.delay = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_6__.setRangeValue)(data.delay);\n }\n const detectRetina = data.detectRetina;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_6__.setRangeValue)(data.duration);\n }\n const fpsLimit = data.fpsLimit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = data.fullScreen;\n if ((0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__.isBoolean)(fullScreen)) {\n this.fullScreen.enable = fullScreen;\n } else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles) {\n this.manualParticles = data.manualParticles.map(t => {\n const tmp = new _ManualParticle_js__WEBPACK_IMPORTED_MODULE_7__.ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.particles.load(data.particles);\n this.style = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__.deepExtend)(this.style, data.style);\n this._engine.loadOptions(this, data);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n const interactors = this._engine.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadOptions) {\n interactor.loadOptions(this, data);\n }\n }\n }\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new _Responsive_js__WEBPACK_IMPORTED_MODULE_8__.Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const existingTheme = this.themes.find(t => t.name === theme.name);\n if (!existingTheme) {\n const optTheme = new _Theme_Theme_js__WEBPACK_IMPORTED_MODULE_9__.Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n } else {\n existingTheme.load(theme);\n }\n }\n }\n this.defaultThemes.dark = this._findDefaultTheme(\"dark\")?.name;\n this.defaultThemes.light = this._findDefaultTheme(\"light\")?.name;\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find(t => t.mode === \"screen\" && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions?.options);\n return responsiveOptions?.maxWidth;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find(theme => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n } else {\n const mediaMatch = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__.safeMatchMedia)(\"(prefers-color-scheme: dark)\"),\n clientDarkMode = mediaMatch && mediaMatch.matches,\n defaultTheme = this._findDefaultTheme(clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/Options.js?");
279
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Options: () => (/* binding */ Options)\n/* harmony export */ });\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Background_Background_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Background/Background.js */ \"./dist/browser/Options/Classes/Background/Background.js\");\n/* harmony import */ var _BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BackgroundMask/BackgroundMask.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMask.js\");\n/* harmony import */ var _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FullScreen/FullScreen.js */ \"./dist/browser/Options/Classes/FullScreen/FullScreen.js\");\n/* harmony import */ var _Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Interactivity/Interactivity.js */ \"./dist/browser/Options/Classes/Interactivity/Interactivity.js\");\n/* harmony import */ var _ManualParticle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ManualParticle.js */ \"./dist/browser/Options/Classes/ManualParticle.js\");\n/* harmony import */ var _Responsive_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Responsive.js */ \"./dist/browser/Options/Classes/Responsive.js\");\n/* harmony import */ var _Theme_Theme_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Theme/Theme.js */ \"./dist/browser/Options/Classes/Theme/Theme.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Utils/OptionsUtils.js */ \"./dist/browser/Utils/OptionsUtils.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\nclass Options {\n constructor(engine, container) {\n this._findDefaultTheme = mode => {\n return this.themes.find(theme => theme.default.value && theme.default.mode === mode) ?? this.themes.find(theme => theme.default.value && theme.default.mode === \"any\");\n };\n this._importPreset = preset => {\n this.load(this._engine.getPreset(preset));\n };\n this._engine = engine;\n this._container = container;\n this.autoPlay = true;\n this.background = new _Background_Background_js__WEBPACK_IMPORTED_MODULE_0__.Background();\n this.backgroundMask = new _BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_1__.BackgroundMask();\n this.clear = true;\n this.defaultThemes = {};\n this.delay = 0;\n this.fullScreen = new _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_2__.FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new _Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_3__.Interactivity(engine, container);\n this.manualParticles = [];\n this.particles = (0,_Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_4__.loadParticlesOptions)(this._engine, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.smooth = false;\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.preset !== undefined) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__.executeOnSingleOrMultiple)(data.preset, preset => this._importPreset(preset));\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.clear !== undefined) {\n this.clear = data.clear;\n }\n if (data.key !== undefined) {\n this.key = data.key;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.delay !== undefined) {\n this.delay = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_6__.setRangeValue)(data.delay);\n }\n const detectRetina = data.detectRetina;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_6__.setRangeValue)(data.duration);\n }\n const fpsLimit = data.fpsLimit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = data.fullScreen;\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_7__.isBoolean)(fullScreen)) {\n this.fullScreen.enable = fullScreen;\n } else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles) {\n this.manualParticles = data.manualParticles.map(t => {\n const tmp = new _ManualParticle_js__WEBPACK_IMPORTED_MODULE_8__.ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.particles.load(data.particles);\n this.style = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__.deepExtend)(this.style, data.style);\n this._engine.loadOptions(this, data);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n const interactors = this._engine.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadOptions) {\n interactor.loadOptions(this, data);\n }\n }\n }\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new _Responsive_js__WEBPACK_IMPORTED_MODULE_9__.Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const existingTheme = this.themes.find(t => t.name === theme.name);\n if (!existingTheme) {\n const optTheme = new _Theme_Theme_js__WEBPACK_IMPORTED_MODULE_10__.Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n } else {\n existingTheme.load(theme);\n }\n }\n }\n this.defaultThemes.dark = this._findDefaultTheme(\"dark\")?.name;\n this.defaultThemes.light = this._findDefaultTheme(\"light\")?.name;\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find(t => t.mode === \"screen\" && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions?.options);\n return responsiveOptions?.maxWidth;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find(theme => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n } else {\n const mediaMatch = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_5__.safeMatchMedia)(\"(prefers-color-scheme: dark)\"),\n clientDarkMode = mediaMatch && mediaMatch.matches,\n defaultTheme = this._findDefaultTheme(clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/Options.js?");
310
280
 
311
281
  /***/ }),
312
282
 
@@ -316,7 +286,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
316
286
  \******************************************************/
317
287
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
318
288
 
319
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OptionsColor: () => (/* binding */ OptionsColor)\n/* harmony export */ });\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n\nclass OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if ((0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(data) || (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(data)) {\n color.load({\n value: data\n });\n } else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if (data?.value === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/OptionsColor.js?");
289
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OptionsColor: () => (/* binding */ OptionsColor)\n/* harmony export */ });\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n\nclass OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(data) || (0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(data)) {\n color.load({\n value: data\n });\n } else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if (data?.value === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/OptionsColor.js?");
320
290
 
321
291
  /***/ }),
322
292
 
@@ -386,7 +356,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
386
356
  \*************************************************************/
387
357
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
388
358
 
389
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Move: () => (/* binding */ Move)\n/* harmony export */ });\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _MoveAngle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MoveAngle.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAngle.js\");\n/* harmony import */ var _MoveAttract_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MoveAttract.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAttract.js\");\n/* harmony import */ var _MoveCenter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MoveCenter.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveCenter.js\");\n/* harmony import */ var _MoveGravity_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MoveGravity.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveGravity.js\");\n/* harmony import */ var _Path_MovePath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Path/MovePath.js */ \"./dist/browser/Options/Classes/Particles/Move/Path/MovePath.js\");\n/* harmony import */ var _MoveTrail_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MoveTrail.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveTrail.js\");\n/* harmony import */ var _OutModes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./OutModes.js */ \"./dist/browser/Options/Classes/Particles/Move/OutModes.js\");\n/* harmony import */ var _Spin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Spin.js */ \"./dist/browser/Options/Classes/Particles/Move/Spin.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\n\n\n\n\nclass Move {\n constructor() {\n this.angle = new _MoveAngle_js__WEBPACK_IMPORTED_MODULE_0__.MoveAngle();\n this.attract = new _MoveAttract_js__WEBPACK_IMPORTED_MODULE_1__.MoveAttract();\n this.center = new _MoveCenter_js__WEBPACK_IMPORTED_MODULE_2__.MoveCenter();\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new _MoveGravity_js__WEBPACK_IMPORTED_MODULE_3__.MoveGravity();\n this.path = new _Path_MovePath_js__WEBPACK_IMPORTED_MODULE_4__.MovePath();\n this.outModes = new _OutModes_js__WEBPACK_IMPORTED_MODULE_5__.OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new _Spin_js__WEBPACK_IMPORTED_MODULE_6__.Spin();\n this.straight = false;\n this.trail = new _MoveTrail_js__WEBPACK_IMPORTED_MODULE_7__.MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load((0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_8__.isNumber)(data.angle) ? {\n value: data.angle\n } : data.angle);\n this.attract.load(data.attract);\n this.center.load(data.center);\n if (data.decay !== undefined) {\n this.decay = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__.setRangeValue)(data.decay);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_8__.isNumber)(data.distance) ? {\n horizontal: data.distance,\n vertical: data.distance\n } : {\n ...data.distance\n };\n }\n if (data.drift !== undefined) {\n this.drift = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__.setRangeValue)(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outModes = data.outModes;\n if (outModes !== undefined) {\n if ((0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_8__.isObject)(outModes)) {\n this.outModes.load(outModes);\n } else {\n this.outModes.load({\n default: outModes\n });\n }\n }\n this.path.load(data.path);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__.setRangeValue)(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/Particles/Move/Move.js?");
359
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Move: () => (/* binding */ Move)\n/* harmony export */ });\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _MoveAngle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MoveAngle.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAngle.js\");\n/* harmony import */ var _MoveAttract_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MoveAttract.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAttract.js\");\n/* harmony import */ var _MoveCenter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MoveCenter.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveCenter.js\");\n/* harmony import */ var _MoveGravity_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MoveGravity.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveGravity.js\");\n/* harmony import */ var _Path_MovePath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Path/MovePath.js */ \"./dist/browser/Options/Classes/Particles/Move/Path/MovePath.js\");\n/* harmony import */ var _MoveTrail_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MoveTrail.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveTrail.js\");\n/* harmony import */ var _OutModes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./OutModes.js */ \"./dist/browser/Options/Classes/Particles/Move/OutModes.js\");\n/* harmony import */ var _Spin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Spin.js */ \"./dist/browser/Options/Classes/Particles/Move/Spin.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\n\n\n\n\nclass Move {\n constructor() {\n this.angle = new _MoveAngle_js__WEBPACK_IMPORTED_MODULE_0__.MoveAngle();\n this.attract = new _MoveAttract_js__WEBPACK_IMPORTED_MODULE_1__.MoveAttract();\n this.center = new _MoveCenter_js__WEBPACK_IMPORTED_MODULE_2__.MoveCenter();\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new _MoveGravity_js__WEBPACK_IMPORTED_MODULE_3__.MoveGravity();\n this.path = new _Path_MovePath_js__WEBPACK_IMPORTED_MODULE_4__.MovePath();\n this.outModes = new _OutModes_js__WEBPACK_IMPORTED_MODULE_5__.OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new _Spin_js__WEBPACK_IMPORTED_MODULE_6__.Spin();\n this.straight = false;\n this.trail = new _MoveTrail_js__WEBPACK_IMPORTED_MODULE_7__.MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_8__.isNumber)(data.angle) ? {\n value: data.angle\n } : data.angle);\n this.attract.load(data.attract);\n this.center.load(data.center);\n if (data.decay !== undefined) {\n this.decay = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__.setRangeValue)(data.decay);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance = (0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_8__.isNumber)(data.distance) ? {\n horizontal: data.distance,\n vertical: data.distance\n } : {\n ...data.distance\n };\n }\n if (data.drift !== undefined) {\n this.drift = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__.setRangeValue)(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outModes = data.outModes;\n if (outModes !== undefined) {\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_8__.isObject)(outModes)) {\n this.outModes.load(outModes);\n } else {\n this.outModes.load({\n default: outModes\n });\n }\n }\n this.path.load(data.path);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = (0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_9__.setRangeValue)(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/Particles/Move/Move.js?");
390
360
 
391
361
  /***/ }),
392
362
 
@@ -656,7 +626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
656
626
  \******************************************/
657
627
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
658
628
 
659
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addColorManager: () => (/* binding */ addColorManager),\n/* harmony export */ colorMix: () => (/* binding */ colorMix),\n/* harmony export */ colorToHsl: () => (/* binding */ colorToHsl),\n/* harmony export */ colorToRgb: () => (/* binding */ colorToRgb),\n/* harmony export */ getHslAnimationFromHsl: () => (/* binding */ getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* binding */ getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* binding */ getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* binding */ getLinkRandomColor),\n/* harmony export */ getRandomRgbColor: () => (/* binding */ getRandomRgbColor),\n/* harmony export */ getStyleFromHsl: () => (/* binding */ getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* binding */ getStyleFromRgb),\n/* harmony export */ hslToRgb: () => (/* binding */ hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* binding */ hslaToRgba),\n/* harmony export */ rangeColorToHsl: () => (/* binding */ rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* binding */ rangeColorToRgb),\n/* harmony export */ rgbToHsl: () => (/* binding */ rgbToHsl),\n/* harmony export */ stringToAlpha: () => (/* binding */ stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* binding */ stringToRgb),\n/* harmony export */ updateColor: () => (/* binding */ updateColor),\n/* harmony export */ updateColorValue: () => (/* binding */ updateColorValue)\n/* harmony export */ });\n/* harmony import */ var _NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n\n\n\nconst randomColorValue = \"random\",\n midColorValue = \"mid\",\n colorManagers = new Map();\nfunction addColorManager(manager) {\n colorManagers.set(manager.key, manager);\n}\nfunction stringToRgba(input) {\n for (const [, manager] of colorManagers) {\n if (input.startsWith(manager.stringPrefix)) {\n return manager.parseString(input);\n }\n }\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i,\n hexFixed = input.replace(shorthandRegex, (_, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n }),\n regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i,\n result = regex.exec(hexFixed),\n radix = 16,\n defaultAlpha = 1,\n alphaFactor = 0xff;\n return result ? {\n a: result[4] !== undefined ? parseInt(result[4], radix) / alphaFactor : defaultAlpha,\n b: parseInt(result[3], radix),\n g: parseInt(result[2], radix),\n r: parseInt(result[1], radix)\n } : undefined;\n}\nfunction rangeColorToRgb(input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(color.value)) {\n return colorToRgb(color.value, index, useIndex);\n }\n if ((0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(color.value)) {\n return rangeColorToRgb({\n value: (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(color.value, index, useIndex)\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n}\nfunction colorToRgb(input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(color.value)) {\n return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n if ((0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(color.value)) {\n return colorToRgb({\n value: (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(color.value, index, useIndex)\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n}\nfunction colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rangeColorToHsl(color, index, useIndex = true) {\n const rgb = rangeColorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rgbToHsl(color) {\n const rgbMax = 255,\n hMax = 360,\n sMax = 100,\n lMax = 100,\n hMin = 0,\n sMin = 0,\n hPhase = 60,\n half = 0.5,\n double = 2,\n r1 = color.r / rgbMax,\n g1 = color.g / rgbMax,\n b1 = color.b / rgbMax,\n max = Math.max(r1, g1, b1),\n min = Math.min(r1, g1, b1),\n res = {\n h: hMin,\n l: (max + min) * half,\n s: sMin\n };\n if (max !== min) {\n res.s = res.l < half ? (max - min) / (max + min) : (max - min) / (double - max - min);\n res.h = r1 === max ? (g1 - b1) / (max - min) : res.h = g1 === max ? double + (b1 - r1) / (max - min) : double * double + (r1 - g1) / (max - min);\n }\n res.l *= lMax;\n res.s *= sMax;\n res.h *= hPhase;\n if (res.h < hMin) {\n res.h += hMax;\n }\n if (res.h >= hMax) {\n res.h -= hMax;\n }\n return res;\n}\nfunction stringToAlpha(input) {\n return stringToRgba(input)?.a;\n}\nfunction stringToRgb(input) {\n return stringToRgba(input);\n}\nfunction hslToRgb(hsl) {\n const hMax = 360,\n sMax = 100,\n lMax = 100,\n sMin = 0,\n lMin = 0,\n h = (hsl.h % hMax + hMax) % hMax,\n s = Math.max(sMin, Math.min(sMax, hsl.s)),\n l = Math.max(lMin, Math.min(lMax, hsl.l)),\n hNormalized = h / hMax,\n sNormalized = s / sMax,\n lNormalized = l / lMax,\n rgbFactor = 255,\n triple = 3;\n if (s === sMin) {\n const grayscaleValue = Math.round(lNormalized * rgbFactor);\n return {\n r: grayscaleValue,\n g: grayscaleValue,\n b: grayscaleValue\n };\n }\n const half = 0.5,\n double = 2,\n channel = (temp1, temp2, temp3) => {\n const temp3Min = 0,\n temp3Max = 1,\n sextuple = 6;\n if (temp3 < temp3Min) {\n temp3++;\n }\n if (temp3 > temp3Max) {\n temp3--;\n }\n if (temp3 * sextuple < temp3Max) {\n return temp1 + (temp2 - temp1) * sextuple * temp3;\n }\n if (temp3 * double < temp3Max) {\n return temp2;\n }\n if (temp3 * triple < temp3Max * double) {\n const temp3Offset = double / triple;\n return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * sextuple;\n }\n return temp1;\n },\n sNormalizedOffset = 1,\n temp1 = lNormalized < half ? lNormalized * (sNormalizedOffset + sNormalized) : lNormalized + sNormalized - lNormalized * sNormalized,\n temp2 = double * lNormalized - temp1,\n phaseNumerator = 1,\n phaseThird = phaseNumerator / triple,\n red = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized + phaseThird)),\n green = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized)),\n blue = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized - phaseThird));\n return {\n r: Math.round(red),\n g: Math.round(green),\n b: Math.round(blue)\n };\n}\nfunction hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r\n };\n}\nfunction getRandomRgbColor(min) {\n const defaultMin = 0,\n fixedMin = min ?? defaultMin,\n rgbMax = 256;\n return {\n b: Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.randomInRange)((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.setRangeValue)(fixedMin, rgbMax))),\n g: Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.randomInRange)((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.setRangeValue)(fixedMin, rgbMax))),\n r: Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.randomInRange)((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.setRangeValue)(fixedMin, rgbMax)))\n };\n}\nfunction getStyleFromRgb(color, opacity) {\n const defaultOpacity = 1;\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity ?? defaultOpacity})`;\n}\nfunction getStyleFromHsl(color, opacity) {\n const defaultOpacity = 1;\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity ?? defaultOpacity})`;\n}\nfunction colorMix(color1, color2, size1, size2) {\n let rgb1 = color1,\n rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.mix)(rgb1.b, rgb2.b, size1, size2),\n g: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.mix)(rgb1.g, rgb2.g, size1, size2),\n r: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.mix)(rgb1.r, rgb2.r, size1, size2)\n };\n}\nfunction getLinkColor(p1, p2, linkColor) {\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n } else if (linkColor === midColorValue) {\n const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(),\n destColor = p2?.getFillColor() ?? p2?.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n } else {\n const hslColor = sourceColor ?? destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n } else {\n return linkColor;\n }\n}\nfunction getLinkRandomColor(optColor, blink, consent) {\n const color = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(optColor) ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return rangeColorToRgb({\n value: color\n });\n }\n if (blink) {\n return randomColorValue;\n }\n return midColorValue;\n } else if (color === midColorValue) {\n return midColorValue;\n } else {\n return rangeColorToRgb({\n value: color\n });\n }\n}\nfunction getHslFromAnimation(animation) {\n return animation !== undefined ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value\n } : undefined;\n}\nfunction getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h\n },\n s: {\n enable: false,\n value: hsl.s\n },\n l: {\n enable: false,\n value: hsl.l\n }\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n const defaultVelocity = 0,\n decayOffset = 1,\n defaultLoops = 0,\n defaultTime = 0;\n if (colorValue.enable) {\n colorValue.velocity = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(colorAnimation.speed) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator * reduceFactor;\n colorValue.decay = decayOffset - (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(colorAnimation.decay);\n colorValue.status = \"increasing\";\n colorValue.loops = defaultLoops;\n colorValue.maxLoops = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(colorAnimation.count);\n colorValue.time = defaultTime;\n colorValue.delayTime = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(colorAnimation.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds;\n if (!colorAnimation.sync) {\n colorValue.velocity *= (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRandom)();\n colorValue.value *= (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRandom)();\n }\n colorValue.initialValue = colorValue.value;\n colorValue.offset = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.setRangeValue)(colorAnimation.offset);\n } else {\n colorValue.velocity = defaultVelocity;\n }\n}\nfunction updateColorValue(data, range, decrease, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minOffset = 0,\n velocityFactor = 3.6;\n if (!data || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n const offset = data.offset ? (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.randomInRange)(data.offset) : minOffset,\n velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor,\n decay = data.decay ?? identity,\n max = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeMax)(range),\n min = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeMin)(range);\n if (!decrease || data.status === \"increasing\") {\n data.value += velocity;\n if (data.value > max) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n if (decrease) {\n data.status = \"decreasing\";\n } else {\n data.value -= max;\n }\n }\n } else {\n data.value -= velocity;\n const minValue = 0;\n if (data.value < minValue) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n data.status = \"increasing\";\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n data.value = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.clamp)(data.value, min, max);\n}\nfunction updateColor(color, delta) {\n if (!color) {\n return;\n }\n const {\n h,\n s,\n l\n } = color;\n const ranges = {\n h: {\n min: 0,\n max: 360\n },\n s: {\n min: 0,\n max: 100\n },\n l: {\n min: 0,\n max: 100\n }\n };\n if (h) {\n updateColorValue(h, ranges.h, false, delta);\n }\n if (s) {\n updateColorValue(s, ranges.s, true, delta);\n }\n if (l) {\n updateColorValue(l, ranges.l, true, delta);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/ColorUtils.js?");
629
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addColorManager: () => (/* binding */ addColorManager),\n/* harmony export */ colorMix: () => (/* binding */ colorMix),\n/* harmony export */ colorToHsl: () => (/* binding */ colorToHsl),\n/* harmony export */ colorToRgb: () => (/* binding */ colorToRgb),\n/* harmony export */ getHslAnimationFromHsl: () => (/* binding */ getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* binding */ getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* binding */ getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* binding */ getLinkRandomColor),\n/* harmony export */ getRandomRgbColor: () => (/* binding */ getRandomRgbColor),\n/* harmony export */ getStyleFromHsl: () => (/* binding */ getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* binding */ getStyleFromRgb),\n/* harmony export */ hslToRgb: () => (/* binding */ hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* binding */ hslaToRgba),\n/* harmony export */ rangeColorToHsl: () => (/* binding */ rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* binding */ rangeColorToRgb),\n/* harmony export */ rgbToHsl: () => (/* binding */ rgbToHsl),\n/* harmony export */ stringToAlpha: () => (/* binding */ stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* binding */ stringToRgb),\n/* harmony export */ updateColor: () => (/* binding */ updateColor),\n/* harmony export */ updateColorValue: () => (/* binding */ updateColorValue)\n/* harmony export */ });\n/* harmony import */ var _NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"./dist/browser/Utils/Utils.js\");\n\n\n\n\nconst randomColorValue = \"random\",\n midColorValue = \"mid\",\n colorManagers = new Map();\nfunction addColorManager(manager) {\n colorManagers.set(manager.key, manager);\n}\nfunction stringToRgba(input) {\n for (const [, manager] of colorManagers) {\n if (input.startsWith(manager.stringPrefix)) {\n return manager.parseString(input);\n }\n }\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i,\n hexFixed = input.replace(shorthandRegex, (_, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n }),\n regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i,\n result = regex.exec(hexFixed),\n radix = 16,\n defaultAlpha = 1,\n alphaFactor = 0xff;\n return result ? {\n a: result[4] !== undefined ? parseInt(result[4], radix) / alphaFactor : defaultAlpha,\n b: parseInt(result[3], radix),\n g: parseInt(result[2], radix),\n r: parseInt(result[1], radix)\n } : undefined;\n}\nfunction rangeColorToRgb(input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(color.value)) {\n return colorToRgb(color.value, index, useIndex);\n }\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(color.value)) {\n return rangeColorToRgb({\n value: (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(color.value, index, useIndex)\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n}\nfunction colorToRgb(input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(color.value)) {\n return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(color.value)) {\n return colorToRgb({\n value: (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(color.value, index, useIndex)\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n}\nfunction colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rangeColorToHsl(color, index, useIndex = true) {\n const rgb = rangeColorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rgbToHsl(color) {\n const rgbMax = 255,\n hMax = 360,\n sMax = 100,\n lMax = 100,\n hMin = 0,\n sMin = 0,\n hPhase = 60,\n half = 0.5,\n double = 2,\n r1 = color.r / rgbMax,\n g1 = color.g / rgbMax,\n b1 = color.b / rgbMax,\n max = Math.max(r1, g1, b1),\n min = Math.min(r1, g1, b1),\n res = {\n h: hMin,\n l: (max + min) * half,\n s: sMin\n };\n if (max !== min) {\n res.s = res.l < half ? (max - min) / (max + min) : (max - min) / (double - max - min);\n res.h = r1 === max ? (g1 - b1) / (max - min) : res.h = g1 === max ? double + (b1 - r1) / (max - min) : double * double + (r1 - g1) / (max - min);\n }\n res.l *= lMax;\n res.s *= sMax;\n res.h *= hPhase;\n if (res.h < hMin) {\n res.h += hMax;\n }\n if (res.h >= hMax) {\n res.h -= hMax;\n }\n return res;\n}\nfunction stringToAlpha(input) {\n return stringToRgba(input)?.a;\n}\nfunction stringToRgb(input) {\n return stringToRgba(input);\n}\nfunction hslToRgb(hsl) {\n const hMax = 360,\n sMax = 100,\n lMax = 100,\n sMin = 0,\n lMin = 0,\n h = (hsl.h % hMax + hMax) % hMax,\n s = Math.max(sMin, Math.min(sMax, hsl.s)),\n l = Math.max(lMin, Math.min(lMax, hsl.l)),\n hNormalized = h / hMax,\n sNormalized = s / sMax,\n lNormalized = l / lMax,\n rgbFactor = 255,\n triple = 3;\n if (s === sMin) {\n const grayscaleValue = Math.round(lNormalized * rgbFactor);\n return {\n r: grayscaleValue,\n g: grayscaleValue,\n b: grayscaleValue\n };\n }\n const half = 0.5,\n double = 2,\n channel = (temp1, temp2, temp3) => {\n const temp3Min = 0,\n temp3Max = 1,\n sextuple = 6;\n if (temp3 < temp3Min) {\n temp3++;\n }\n if (temp3 > temp3Max) {\n temp3--;\n }\n if (temp3 * sextuple < temp3Max) {\n return temp1 + (temp2 - temp1) * sextuple * temp3;\n }\n if (temp3 * double < temp3Max) {\n return temp2;\n }\n if (temp3 * triple < temp3Max * double) {\n const temp3Offset = double / triple;\n return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * sextuple;\n }\n return temp1;\n },\n sNormalizedOffset = 1,\n temp1 = lNormalized < half ? lNormalized * (sNormalizedOffset + sNormalized) : lNormalized + sNormalized - lNormalized * sNormalized,\n temp2 = double * lNormalized - temp1,\n phaseNumerator = 1,\n phaseThird = phaseNumerator / triple,\n red = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized + phaseThird)),\n green = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized)),\n blue = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized - phaseThird));\n return {\n r: Math.round(red),\n g: Math.round(green),\n b: Math.round(blue)\n };\n}\nfunction hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r\n };\n}\nfunction getRandomRgbColor(min) {\n const defaultMin = 0,\n fixedMin = min ?? defaultMin,\n rgbMax = 256;\n return {\n b: Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.randomInRange)((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.setRangeValue)(fixedMin, rgbMax))),\n g: Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.randomInRange)((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.setRangeValue)(fixedMin, rgbMax))),\n r: Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.randomInRange)((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.setRangeValue)(fixedMin, rgbMax)))\n };\n}\nfunction getStyleFromRgb(color, opacity) {\n const defaultOpacity = 1;\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity ?? defaultOpacity})`;\n}\nfunction getStyleFromHsl(color, opacity) {\n const defaultOpacity = 1;\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity ?? defaultOpacity})`;\n}\nfunction colorMix(color1, color2, size1, size2) {\n let rgb1 = color1,\n rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.mix)(rgb1.b, rgb2.b, size1, size2),\n g: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.mix)(rgb1.g, rgb2.g, size1, size2),\n r: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.mix)(rgb1.r, rgb2.r, size1, size2)\n };\n}\nfunction getLinkColor(p1, p2, linkColor) {\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n } else if (linkColor === midColorValue) {\n const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(),\n destColor = p2?.getFillColor() ?? p2?.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n } else {\n const hslColor = sourceColor ?? destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n } else {\n return linkColor;\n }\n}\nfunction getLinkRandomColor(optColor, blink, consent) {\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isString)(optColor) ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return rangeColorToRgb({\n value: color\n });\n }\n if (blink) {\n return randomColorValue;\n }\n return midColorValue;\n } else if (color === midColorValue) {\n return midColorValue;\n } else {\n return rangeColorToRgb({\n value: color\n });\n }\n}\nfunction getHslFromAnimation(animation) {\n return animation !== undefined ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value\n } : undefined;\n}\nfunction getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h\n },\n s: {\n enable: false,\n value: hsl.s\n },\n l: {\n enable: false,\n value: hsl.l\n }\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n const defaultVelocity = 0,\n decayOffset = 1,\n defaultLoops = 0,\n defaultTime = 0;\n if (colorValue.enable) {\n colorValue.velocity = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRangeValue)(colorAnimation.speed) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.percentDenominator * reduceFactor;\n colorValue.decay = decayOffset - (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRangeValue)(colorAnimation.decay);\n colorValue.status = \"increasing\";\n colorValue.loops = defaultLoops;\n colorValue.maxLoops = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRangeValue)(colorAnimation.count);\n colorValue.time = defaultTime;\n colorValue.delayTime = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRangeValue)(colorAnimation.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds;\n if (!colorAnimation.sync) {\n colorValue.velocity *= (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRandom)();\n colorValue.value *= (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRandom)();\n }\n colorValue.initialValue = colorValue.value;\n colorValue.offset = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.setRangeValue)(colorAnimation.offset);\n } else {\n colorValue.velocity = defaultVelocity;\n }\n}\nfunction updateColorValue(data, range, decrease, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minOffset = 0,\n velocityFactor = 3.6;\n if (!data || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n const offset = data.offset ? (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.randomInRange)(data.offset) : minOffset,\n velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor,\n decay = data.decay ?? identity,\n max = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRangeMax)(range),\n min = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.getRangeMin)(range);\n if (!decrease || data.status === \"increasing\") {\n data.value += velocity;\n if (data.value > max) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n if (decrease) {\n data.status = \"decreasing\";\n } else {\n data.value -= max;\n }\n }\n } else {\n data.value -= velocity;\n const minValue = 0;\n if (data.value < minValue) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n data.status = \"increasing\";\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n data.value = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_2__.clamp)(data.value, min, max);\n}\nfunction updateColor(color, delta) {\n if (!color) {\n return;\n }\n const {\n h,\n s,\n l\n } = color;\n const ranges = {\n h: {\n min: 0,\n max: 360\n },\n s: {\n min: 0,\n max: 100\n },\n l: {\n min: 0,\n max: 100\n }\n };\n if (h) {\n updateColorValue(h, ranges.h, false, delta);\n }\n if (s) {\n updateColorValue(s, ranges.s, true, delta);\n }\n if (l) {\n updateColorValue(l, ranges.l, true, delta);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/ColorUtils.js?");
660
630
 
661
631
  /***/ }),
662
632
 
@@ -686,7 +656,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
686
656
  \*******************************************/
687
657
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
688
658
 
689
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEasing: () => (/* binding */ addEasing),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* binding */ calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* binding */ calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* binding */ calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* binding */ calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* binding */ calcPositionOrRandomFromSizeRanged),\n/* harmony export */ clamp: () => (/* binding */ clamp),\n/* harmony export */ collisionVelocity: () => (/* binding */ collisionVelocity),\n/* harmony export */ degToRad: () => (/* binding */ degToRad),\n/* harmony export */ getDistance: () => (/* binding */ getDistance),\n/* harmony export */ getDistances: () => (/* binding */ getDistances),\n/* harmony export */ getEasing: () => (/* binding */ getEasing),\n/* harmony export */ getParticleBaseVelocity: () => (/* binding */ getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* binding */ getParticleDirectionAngle),\n/* harmony export */ getRandom: () => (/* binding */ getRandom),\n/* harmony export */ getRangeMax: () => (/* binding */ getRangeMax),\n/* harmony export */ getRangeMin: () => (/* binding */ getRangeMin),\n/* harmony export */ getRangeValue: () => (/* binding */ getRangeValue),\n/* harmony export */ mix: () => (/* binding */ mix),\n/* harmony export */ parseAlpha: () => (/* binding */ parseAlpha),\n/* harmony export */ randomInRange: () => (/* binding */ randomInRange),\n/* harmony export */ setRandom: () => (/* binding */ setRandom),\n/* harmony export */ setRangeValue: () => (/* binding */ setRangeValue)\n/* harmony export */ });\n/* harmony import */ var _Core_Utils_Vector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Vector.js */ \"./dist/browser/Core/Utils/Vector.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n\n\n\nlet _random = Math.random;\nconst easings = new Map(),\n double = 2,\n doublePI = Math.PI * double;\nfunction addEasing(name, easing) {\n if (easings.get(name)) {\n return;\n }\n easings.set(name, easing);\n}\nfunction getEasing(name) {\n return easings.get(name) ?? (value => value);\n}\nfunction setRandom(rnd = Math.random) {\n _random = rnd;\n}\nfunction getRandom() {\n const min = 0,\n max = 1;\n return clamp(_random(), min, max - Number.EPSILON);\n}\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nfunction randomInRange(r) {\n const max = getRangeMax(r),\n minOffset = 0;\n let min = getRangeMin(r);\n if (max === min) {\n min = minOffset;\n }\n return getRandom() * (max - min) + min;\n}\nfunction getRangeValue(value) {\n return (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(value) ? value : randomInRange(value);\n}\nfunction getRangeMin(value) {\n return (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(value) ? value : value.min;\n}\nfunction getRangeMax(value) {\n return (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(value) ? value : value.max;\n}\nfunction setRangeValue(source, value) {\n if (source === value || value === undefined && (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(source)) {\n return source;\n }\n const min = getRangeMin(source),\n max = getRangeMax(source);\n return value !== undefined ? {\n min: Math.min(min, value),\n max: Math.max(max, value)\n } : setRangeValue(min, max);\n}\nfunction getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x,\n dy = pointA.y - pointB.y,\n squareExp = 2;\n return {\n dx: dx,\n dy: dy,\n distance: Math.sqrt(dx ** squareExp + dy ** squareExp)\n };\n}\nfunction getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nfunction degToRad(degrees) {\n const PIDeg = 180;\n return degrees * Math.PI / PIDeg;\n}\nfunction getParticleDirectionAngle(direction, position, center) {\n if ((0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(direction)) {\n return degToRad(direction);\n }\n const empty = 0,\n half = 0.5,\n quarter = 0.25,\n threeQuarter = half + quarter;\n switch (direction) {\n case \"top\":\n return -Math.PI * half;\n case \"top-right\":\n return -Math.PI * quarter;\n case \"right\":\n return empty;\n case \"bottom-right\":\n return Math.PI * quarter;\n case \"bottom\":\n return Math.PI * half;\n case \"bottom-left\":\n return Math.PI * threeQuarter;\n case \"left\":\n return Math.PI;\n case \"top-left\":\n return -Math.PI * threeQuarter;\n case \"inside\":\n return Math.atan2(center.y - position.y, center.x - position.x);\n case \"outside\":\n return Math.atan2(position.y - center.y, position.x - center.x);\n default:\n return getRandom() * doublePI;\n }\n}\nfunction getParticleBaseVelocity(direction) {\n const baseVelocity = _Core_Utils_Vector_js__WEBPACK_IMPORTED_MODULE_1__.Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nfunction collisionVelocity(v1, v2, m1, m2) {\n const double = 2;\n return _Core_Utils_Vector_js__WEBPACK_IMPORTED_MODULE_1__.Vector.create(v1.x * (m1 - m2) / (m1 + m2) + v2.x * double * m2 / (m1 + m2), v1.y);\n}\nfunction calcPositionFromSize(data) {\n return data.position?.x !== undefined && data.position.y !== undefined ? {\n x: data.position.x * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator,\n y: data.position.y * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator\n } : undefined;\n}\nfunction calcPositionOrRandomFromSize(data) {\n return {\n x: (data.position?.x ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator) * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator,\n y: (data.position?.y ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator) * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator\n };\n}\nfunction calcPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction calcExactPositionOrRandomFromSize(data) {\n return {\n x: data.position?.x ?? getRandom() * data.size.width,\n y: data.position?.y ?? getRandom() * data.size.height\n };\n}\nfunction calcExactPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcExactPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction parseAlpha(input) {\n const defaultAlpha = 1;\n if (!input) {\n return defaultAlpha;\n }\n return input.endsWith(\"%\") ? parseFloat(input) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator : parseFloat(input);\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/NumberUtils.js?");
659
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEasing: () => (/* binding */ addEasing),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* binding */ calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* binding */ calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* binding */ calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* binding */ calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* binding */ calcPositionOrRandomFromSizeRanged),\n/* harmony export */ clamp: () => (/* binding */ clamp),\n/* harmony export */ collisionVelocity: () => (/* binding */ collisionVelocity),\n/* harmony export */ degToRad: () => (/* binding */ degToRad),\n/* harmony export */ getDistance: () => (/* binding */ getDistance),\n/* harmony export */ getDistances: () => (/* binding */ getDistances),\n/* harmony export */ getEasing: () => (/* binding */ getEasing),\n/* harmony export */ getParticleBaseVelocity: () => (/* binding */ getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* binding */ getParticleDirectionAngle),\n/* harmony export */ getRandom: () => (/* binding */ getRandom),\n/* harmony export */ getRangeMax: () => (/* binding */ getRangeMax),\n/* harmony export */ getRangeMin: () => (/* binding */ getRangeMin),\n/* harmony export */ getRangeValue: () => (/* binding */ getRangeValue),\n/* harmony export */ mix: () => (/* binding */ mix),\n/* harmony export */ parseAlpha: () => (/* binding */ parseAlpha),\n/* harmony export */ randomInRange: () => (/* binding */ randomInRange),\n/* harmony export */ setRandom: () => (/* binding */ setRandom),\n/* harmony export */ setRangeValue: () => (/* binding */ setRangeValue)\n/* harmony export */ });\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"./dist/browser/Core/Utils/Vectors.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n\n\n\nlet _random = Math.random;\nconst easings = new Map(),\n double = 2,\n doublePI = Math.PI * double;\nfunction addEasing(name, easing) {\n if (easings.get(name)) {\n return;\n }\n easings.set(name, easing);\n}\nfunction getEasing(name) {\n return easings.get(name) ?? (value => value);\n}\nfunction setRandom(rnd = Math.random) {\n _random = rnd;\n}\nfunction getRandom() {\n const min = 0,\n max = 1;\n return clamp(_random(), min, max - Number.EPSILON);\n}\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nfunction randomInRange(r) {\n const max = getRangeMax(r),\n minOffset = 0;\n let min = getRangeMin(r);\n if (max === min) {\n min = minOffset;\n }\n return getRandom() * (max - min) + min;\n}\nfunction getRangeValue(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(value) ? value : randomInRange(value);\n}\nfunction getRangeMin(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(value) ? value : value.min;\n}\nfunction getRangeMax(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(value) ? value : value.max;\n}\nfunction setRangeValue(source, value) {\n if (source === value || value === undefined && (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(source)) {\n return source;\n }\n const min = getRangeMin(source),\n max = getRangeMax(source);\n return value !== undefined ? {\n min: Math.min(min, value),\n max: Math.max(max, value)\n } : setRangeValue(min, max);\n}\nfunction getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x,\n dy = pointA.y - pointB.y,\n squareExp = 2;\n return {\n dx: dx,\n dy: dy,\n distance: Math.sqrt(dx ** squareExp + dy ** squareExp)\n };\n}\nfunction getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nfunction degToRad(degrees) {\n const PIDeg = 180;\n return degrees * Math.PI / PIDeg;\n}\nfunction getParticleDirectionAngle(direction, position, center) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isNumber)(direction)) {\n return degToRad(direction);\n }\n const empty = 0,\n half = 0.5,\n quarter = 0.25,\n threeQuarter = half + quarter;\n switch (direction) {\n case \"top\":\n return -Math.PI * half;\n case \"top-right\":\n return -Math.PI * quarter;\n case \"right\":\n return empty;\n case \"bottom-right\":\n return Math.PI * quarter;\n case \"bottom\":\n return Math.PI * half;\n case \"bottom-left\":\n return Math.PI * threeQuarter;\n case \"left\":\n return Math.PI;\n case \"top-left\":\n return -Math.PI * threeQuarter;\n case \"inside\":\n return Math.atan2(center.y - position.y, center.x - position.x);\n case \"outside\":\n return Math.atan2(position.y - center.y, position.x - center.x);\n default:\n return getRandom() * doublePI;\n }\n}\nfunction getParticleBaseVelocity(direction) {\n const baseVelocity = _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_1__.Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nfunction collisionVelocity(v1, v2, m1, m2) {\n const double = 2;\n return _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_1__.Vector.create(v1.x * (m1 - m2) / (m1 + m2) + v2.x * double * m2 / (m1 + m2), v1.y);\n}\nfunction calcPositionFromSize(data) {\n return data.position?.x !== undefined && data.position.y !== undefined ? {\n x: data.position.x * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator,\n y: data.position.y * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator\n } : undefined;\n}\nfunction calcPositionOrRandomFromSize(data) {\n return {\n x: (data.position?.x ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator) * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator,\n y: (data.position?.y ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator) * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator\n };\n}\nfunction calcPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction calcExactPositionOrRandomFromSize(data) {\n return {\n x: data.position?.x ?? getRandom() * data.size.width,\n y: data.position?.y ?? getRandom() * data.size.height\n };\n}\nfunction calcExactPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcExactPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction parseAlpha(input) {\n const defaultAlpha = 1;\n if (!input) {\n return defaultAlpha;\n }\n return input.endsWith(\"%\") ? parseFloat(input) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator : parseFloat(input);\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/NumberUtils.js?");
690
660
 
691
661
  /***/ }),
692
662
 
@@ -710,13 +680,23 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
710
680
 
711
681
  /***/ }),
712
682
 
683
+ /***/ "./dist/browser/Utils/TypeUtils.js":
684
+ /*!*****************************************!*\
685
+ !*** ./dist/browser/Utils/TypeUtils.js ***!
686
+ \*****************************************/
687
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
688
+
689
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isArray: () => (/* binding */ isArray),\n/* harmony export */ isBoolean: () => (/* binding */ isBoolean),\n/* harmony export */ isFunction: () => (/* binding */ isFunction),\n/* harmony export */ isNumber: () => (/* binding */ isNumber),\n/* harmony export */ isObject: () => (/* binding */ isObject),\n/* harmony export */ isString: () => (/* binding */ isString)\n/* harmony export */ });\nfunction isBoolean(arg) {\n return typeof arg === \"boolean\";\n}\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\nfunction isNumber(arg) {\n return typeof arg === \"number\";\n}\nfunction isFunction(arg) {\n return typeof arg === \"function\";\n}\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/TypeUtils.js?");
690
+
691
+ /***/ }),
692
+
713
693
  /***/ "./dist/browser/Utils/Utils.js":
714
694
  /*!*************************************!*\
715
695
  !*** ./dist/browser/Utils/Utils.js ***!
716
696
  \*************************************/
717
697
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
718
698
 
719
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ areBoundsInside: () => (/* binding */ areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* binding */ arrayRandomIndex),\n/* harmony export */ calculateBounds: () => (/* binding */ calculateBounds),\n/* harmony export */ circleBounce: () => (/* binding */ circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* binding */ circleBounceDataFromParticle),\n/* harmony export */ deepExtend: () => (/* binding */ deepExtend),\n/* harmony export */ divMode: () => (/* binding */ divMode),\n/* harmony export */ divModeExecute: () => (/* binding */ divModeExecute),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* binding */ executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* binding */ findItemFromSingleOrMultiple),\n/* harmony export */ getLogger: () => (/* binding */ getLogger),\n/* harmony export */ getPosition: () => (/* binding */ getPosition),\n/* harmony export */ getSize: () => (/* binding */ getSize),\n/* harmony export */ hasMatchMedia: () => (/* binding */ hasMatchMedia),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* binding */ initParticleNumericAnimationValue),\n/* harmony export */ isArray: () => (/* binding */ isArray),\n/* harmony export */ isBoolean: () => (/* binding */ isBoolean),\n/* harmony export */ isDivModeEnabled: () => (/* binding */ isDivModeEnabled),\n/* harmony export */ isFunction: () => (/* binding */ isFunction),\n/* harmony export */ isInArray: () => (/* binding */ isInArray),\n/* harmony export */ isNumber: () => (/* binding */ isNumber),\n/* harmony export */ isObject: () => (/* binding */ isObject),\n/* harmony export */ isPointInside: () => (/* binding */ isPointInside),\n/* harmony export */ isSsr: () => (/* binding */ isSsr),\n/* harmony export */ isString: () => (/* binding */ isString),\n/* harmony export */ itemFromArray: () => (/* binding */ itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* binding */ itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* binding */ loadFont),\n/* harmony export */ rectBounce: () => (/* binding */ rectBounce),\n/* harmony export */ safeIntersectionObserver: () => (/* binding */ safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* binding */ safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* binding */ safeMutationObserver),\n/* harmony export */ setLogger: () => (/* binding */ setLogger),\n/* harmony export */ singleDivModeExecute: () => (/* binding */ singleDivModeExecute),\n/* harmony export */ updateAnimation: () => (/* binding */ updateAnimation)\n/* harmony export */ });\n/* harmony import */ var _NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Core_Utils_Vector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Vector.js */ \"./dist/browser/Core/Utils/Vector.js\");\n\n\n\nconst _logger = {\n debug: console.debug,\n error: console.error,\n info: console.info,\n log: console.log,\n verbose: console.log,\n warning: console.warn\n};\nfunction setLogger(logger) {\n _logger.debug = logger.debug || _logger.debug;\n _logger.error = logger.error || _logger.error;\n _logger.info = logger.info || _logger.info;\n _logger.log = logger.log || _logger.log;\n _logger.verbose = logger.verbose || _logger.verbose;\n _logger.warning = logger.warning || _logger.warning;\n}\nfunction getLogger() {\n return _logger;\n}\nfunction rectSideBounce(data) {\n const res = {\n bounced: false\n },\n {\n pSide,\n pOtherSide,\n rectSide,\n rectOtherSide,\n velocity,\n factor\n } = data,\n half = 0.5,\n minVelocity = 0;\n if (pOtherSide.min < rectOtherSide.min || pOtherSide.min > rectOtherSide.max || pOtherSide.max < rectOtherSide.min || pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if (pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) * half && velocity > minVelocity || pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) * half && velocity < minVelocity) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, selector => {\n return element.matches(selector);\n });\n return isArray(res) ? res.some(t => t) : res;\n}\nfunction isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nfunction hasMatchMedia() {\n return !isSsr() && typeof matchMedia !== \"undefined\";\n}\nfunction safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nfunction safeIntersectionObserver(callback) {\n if (isSsr() || typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nfunction safeMutationObserver(callback) {\n if (isSsr() || typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nfunction isInArray(value, array) {\n const invalidIndex = -1;\n return value === array || isArray(array) && array.indexOf(value) > invalidIndex;\n}\nasync function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight ?? \"400\"} 36px '${font ?? \"Verdana\"}'`);\n } catch {}\n}\nfunction arrayRandomIndex(array) {\n return Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * array.length);\n}\nfunction itemFromArray(array, index, useIndex = true) {\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nfunction isPointInside(point, size, offset, radius, direction) {\n const minRadius = 0;\n return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nfunction areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nfunction calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius\n };\n}\nfunction deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (!isObject(source)) {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {\n destination = [];\n } else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source,\n value = sourceDict[key],\n destDict = destination;\n destDict[key] = isObject(value) && Array.isArray(value) ? value.map(v => deepExtend(destDict[key], v)) : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nfunction isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));\n}\nfunction divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, div => {\n const divMode = div.mode,\n divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, selector => {\n callback(selector, div);\n });\n}\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, div => {\n return checkSelector(element, div.selectors);\n });\n}\nfunction circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: _Core_Utils_Vector_js__WEBPACK_IMPORTED_MODULE_1__.Vector.create((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.horizontal.value), (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.vertical.value))\n };\n}\nfunction circleBounce(p1, p2) {\n const {\n x: xVelocityDiff,\n y: yVelocityDiff\n } = p1.velocity.sub(p2.velocity),\n [pos1, pos2] = [p1.position, p2.position],\n {\n dx: xDist,\n dy: yDist\n } = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos2, pos1),\n minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist),\n m1 = p1.mass,\n m2 = p2.mass,\n u1 = p1.velocity.rotate(angle),\n u2 = p2.velocity.rotate(angle),\n v1 = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u1, u2, m1, m2),\n v2 = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u2, u1, m1, m2),\n vFinal1 = v1.rotate(-angle),\n vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nfunction rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(),\n size = particle.getRadius(),\n bounds = calculateBounds(pPos, size),\n bounceOptions = particle.options.bounce,\n resH = rectSideBounce({\n pSide: {\n min: bounds.left,\n max: bounds.right\n },\n pOtherSide: {\n min: bounds.top,\n max: bounds.bottom\n },\n rectSide: {\n min: divBounds.left,\n max: divBounds.right\n },\n rectOtherSide: {\n min: divBounds.top,\n max: divBounds.bottom\n },\n velocity: particle.velocity.x,\n factor: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(bounceOptions.horizontal.value)\n });\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n pSide: {\n min: bounds.top,\n max: bounds.bottom\n },\n pOtherSide: {\n min: bounds.left,\n max: bounds.right\n },\n rectSide: {\n min: divBounds.top,\n max: divBounds.bottom\n },\n rectOtherSide: {\n min: divBounds.left,\n max: divBounds.right\n },\n velocity: particle.velocity.y,\n factor: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(bounceOptions.vertical.value)\n });\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nfunction executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);\n}\nfunction itemFromSingleOrMultiple(obj, index, useIndex) {\n return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nfunction findItemFromSingleOrMultiple(obj, callback) {\n if (isArray(obj)) {\n return obj.find((t, index) => callback(t, index));\n }\n const defaultIndex = 0;\n return callback(obj, defaultIndex) ? obj : undefined;\n}\nfunction initParticleNumericAnimationValue(options, pxRatio) {\n const valueRange = options.value,\n animationOptions = options.animation,\n res = {\n delayTime: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds,\n enable: animationOptions.enable,\n value: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(options.value) * pxRatio,\n max: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(valueRange) * pxRatio,\n min: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(valueRange) * pxRatio,\n loops: 0,\n maxLoops: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.count),\n time: 0\n },\n decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.decay);\n switch (animationOptions.mode) {\n case \"increase\":\n res.status = \"increasing\";\n break;\n case \"decrease\":\n res.status = \"decreasing\";\n break;\n case \"random\":\n res.status = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.halfRandom ? \"increasing\" : \"decreasing\";\n break;\n }\n const autoStatus = animationOptions.mode === \"auto\";\n switch (animationOptions.startValue) {\n case \"min\":\n res.value = res.min;\n if (autoStatus) {\n res.status = \"increasing\";\n }\n break;\n case \"max\":\n res.value = res.max;\n if (autoStatus) {\n res.status = \"decreasing\";\n }\n break;\n case \"random\":\n default:\n res.value = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.randomInRange)(res);\n if (autoStatus) {\n res.status = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.halfRandom ? \"increasing\" : \"decreasing\";\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === \"percent\";\n if (!isPercent) {\n const {\n mode: _,\n ...rest\n } = positionOrSize;\n return rest;\n }\n const isPosition = (\"x\" in positionOrSize);\n if (isPosition) {\n return {\n x: positionOrSize.x / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator * canvasSize.width,\n y: positionOrSize.y / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator * canvasSize.height\n };\n } else {\n return {\n width: positionOrSize.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator * canvasSize.width,\n height: positionOrSize.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator * canvasSize.height\n };\n }\n}\nfunction getPosition(position, canvasSize) {\n return getPositionOrSize(position, canvasSize);\n}\nfunction getSize(size, canvasSize) {\n return getPositionOrSize(size, canvasSize);\n}\nfunction isBoolean(arg) {\n return typeof arg === \"boolean\";\n}\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\nfunction isNumber(arg) {\n return typeof arg === \"number\";\n}\nfunction isFunction(arg) {\n return typeof arg === \"function\";\n}\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction checkDestroy(particle, destroyType, value, minValue, maxValue) {\n switch (destroyType) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minDecay = 1;\n if (particle.destroyed || !data || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor,\n minValue = data.min,\n maxValue = data.max,\n decay = data.decay ?? minDecay;\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n switch (data.status) {\n case \"increasing\":\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = \"decreasing\";\n } else {\n data.value -= maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n } else {\n data.value += velocity;\n }\n break;\n case \"decreasing\":\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = \"increasing\";\n } else {\n data.value += maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n } else {\n data.value -= velocity;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n if (!particle.destroyed) {\n data.value = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_0__.clamp)(data.value, minValue, maxValue);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/Utils.js?");
699
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ areBoundsInside: () => (/* binding */ areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* binding */ arrayRandomIndex),\n/* harmony export */ calculateBounds: () => (/* binding */ calculateBounds),\n/* harmony export */ circleBounce: () => (/* binding */ circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* binding */ circleBounceDataFromParticle),\n/* harmony export */ deepExtend: () => (/* binding */ deepExtend),\n/* harmony export */ divMode: () => (/* binding */ divMode),\n/* harmony export */ divModeExecute: () => (/* binding */ divModeExecute),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* binding */ executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* binding */ findItemFromSingleOrMultiple),\n/* harmony export */ getLogger: () => (/* binding */ getLogger),\n/* harmony export */ getPosition: () => (/* binding */ getPosition),\n/* harmony export */ getSize: () => (/* binding */ getSize),\n/* harmony export */ hasMatchMedia: () => (/* binding */ hasMatchMedia),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* binding */ initParticleNumericAnimationValue),\n/* harmony export */ isDivModeEnabled: () => (/* binding */ isDivModeEnabled),\n/* harmony export */ isInArray: () => (/* binding */ isInArray),\n/* harmony export */ isPointInside: () => (/* binding */ isPointInside),\n/* harmony export */ isSsr: () => (/* binding */ isSsr),\n/* harmony export */ itemFromArray: () => (/* binding */ itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* binding */ itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* binding */ loadFont),\n/* harmony export */ rectBounce: () => (/* binding */ rectBounce),\n/* harmony export */ safeIntersectionObserver: () => (/* binding */ safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* binding */ safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* binding */ safeMutationObserver),\n/* harmony export */ setLogger: () => (/* binding */ setLogger),\n/* harmony export */ singleDivModeExecute: () => (/* binding */ singleDivModeExecute),\n/* harmony export */ updateAnimation: () => (/* binding */ updateAnimation)\n/* harmony export */ });\n/* harmony import */ var _NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"./dist/browser/Core/Utils/Vectors.js\");\n\n\n\n\nconst _logger = {\n debug: console.debug,\n error: console.error,\n info: console.info,\n log: console.log,\n verbose: console.log,\n warning: console.warn\n};\nfunction setLogger(logger) {\n _logger.debug = logger.debug || _logger.debug;\n _logger.error = logger.error || _logger.error;\n _logger.info = logger.info || _logger.info;\n _logger.log = logger.log || _logger.log;\n _logger.verbose = logger.verbose || _logger.verbose;\n _logger.warning = logger.warning || _logger.warning;\n}\nfunction getLogger() {\n return _logger;\n}\nfunction rectSideBounce(data) {\n const res = {\n bounced: false\n },\n {\n pSide,\n pOtherSide,\n rectSide,\n rectOtherSide,\n velocity,\n factor\n } = data,\n half = 0.5,\n minVelocity = 0;\n if (pOtherSide.min < rectOtherSide.min || pOtherSide.min > rectOtherSide.max || pOtherSide.max < rectOtherSide.min || pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if (pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) * half && velocity > minVelocity || pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) * half && velocity < minVelocity) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, selector => {\n return element.matches(selector);\n });\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(res) ? res.some(t => t) : res;\n}\nfunction isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nfunction hasMatchMedia() {\n return !isSsr() && typeof matchMedia !== \"undefined\";\n}\nfunction safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nfunction safeIntersectionObserver(callback) {\n if (isSsr() || typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nfunction safeMutationObserver(callback) {\n if (isSsr() || typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nfunction isInArray(value, array) {\n const invalidIndex = -1;\n return value === array || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(array) && array.indexOf(value) > invalidIndex;\n}\nasync function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight ?? \"400\"} 36px '${font ?? \"Verdana\"}'`);\n } catch {}\n}\nfunction arrayRandomIndex(array) {\n return Math.floor((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRandom)() * array.length);\n}\nfunction itemFromArray(array, index, useIndex = true) {\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nfunction isPointInside(point, size, offset, radius, direction) {\n const minRadius = 0;\n return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nfunction areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nfunction calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius\n };\n}\nfunction deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (!(0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(source)) {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(destination) || !destination || !Array.isArray(destination))) {\n destination = [];\n } else if (!sourceIsArray && ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(destination) || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source,\n value = sourceDict[key],\n destDict = destination;\n destDict[key] = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(value) && Array.isArray(value) ? value.map(v => deepExtend(destDict[key], v)) : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nfunction isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));\n}\nfunction divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, div => {\n const divMode = div.mode,\n divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, selector => {\n callback(selector, div);\n });\n}\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, div => {\n return checkSelector(element, div.selectors);\n });\n}\nfunction circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__.Vector.create((0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(p.options.bounce.horizontal.value), (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(p.options.bounce.vertical.value))\n };\n}\nfunction circleBounce(p1, p2) {\n const {\n x: xVelocityDiff,\n y: yVelocityDiff\n } = p1.velocity.sub(p2.velocity),\n [pos1, pos2] = [p1.position, p2.position],\n {\n dx: xDist,\n dy: yDist\n } = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getDistances)(pos2, pos1),\n minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist),\n m1 = p1.mass,\n m2 = p2.mass,\n u1 = p1.velocity.rotate(angle),\n u2 = p2.velocity.rotate(angle),\n v1 = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.collisionVelocity)(u1, u2, m1, m2),\n v2 = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.collisionVelocity)(u2, u1, m1, m2),\n vFinal1 = v1.rotate(-angle),\n vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nfunction rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(),\n size = particle.getRadius(),\n bounds = calculateBounds(pPos, size),\n bounceOptions = particle.options.bounce,\n resH = rectSideBounce({\n pSide: {\n min: bounds.left,\n max: bounds.right\n },\n pOtherSide: {\n min: bounds.top,\n max: bounds.bottom\n },\n rectSide: {\n min: divBounds.left,\n max: divBounds.right\n },\n rectOtherSide: {\n min: divBounds.top,\n max: divBounds.bottom\n },\n velocity: particle.velocity.x,\n factor: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(bounceOptions.horizontal.value)\n });\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n pSide: {\n min: bounds.top,\n max: bounds.bottom\n },\n pOtherSide: {\n min: bounds.left,\n max: bounds.right\n },\n rectSide: {\n min: divBounds.top,\n max: divBounds.bottom\n },\n rectOtherSide: {\n min: divBounds.left,\n max: divBounds.right\n },\n velocity: particle.velocity.y,\n factor: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(bounceOptions.vertical.value)\n });\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nfunction executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);\n}\nfunction itemFromSingleOrMultiple(obj, index, useIndex) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nfunction findItemFromSingleOrMultiple(obj, callback) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_0__.isArray)(obj)) {\n return obj.find((t, index) => callback(t, index));\n }\n const defaultIndex = 0;\n return callback(obj, defaultIndex) ? obj : undefined;\n}\nfunction initParticleNumericAnimationValue(options, pxRatio) {\n const valueRange = options.value,\n animationOptions = options.animation,\n res = {\n delayTime: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(animationOptions.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds,\n enable: animationOptions.enable,\n value: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(options.value) * pxRatio,\n max: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeMax)(valueRange) * pxRatio,\n min: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeMin)(valueRange) * pxRatio,\n loops: 0,\n maxLoops: (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(animationOptions.count),\n time: 0\n },\n decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(animationOptions.decay);\n switch (animationOptions.mode) {\n case \"increase\":\n res.status = \"increasing\";\n break;\n case \"decrease\":\n res.status = \"decreasing\";\n break;\n case \"random\":\n res.status = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.halfRandom ? \"increasing\" : \"decreasing\";\n break;\n }\n const autoStatus = animationOptions.mode === \"auto\";\n switch (animationOptions.startValue) {\n case \"min\":\n res.value = res.min;\n if (autoStatus) {\n res.status = \"increasing\";\n }\n break;\n case \"max\":\n res.value = res.max;\n if (autoStatus) {\n res.status = \"decreasing\";\n }\n break;\n case \"random\":\n default:\n res.value = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.randomInRange)(res);\n if (autoStatus) {\n res.status = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.halfRandom ? \"increasing\" : \"decreasing\";\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === \"percent\";\n if (!isPercent) {\n const {\n mode: _,\n ...rest\n } = positionOrSize;\n return rest;\n }\n const isPosition = (\"x\" in positionOrSize);\n if (isPosition) {\n return {\n x: positionOrSize.x / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.percentDenominator * canvasSize.width,\n y: positionOrSize.y / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.percentDenominator * canvasSize.height\n };\n } else {\n return {\n width: positionOrSize.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.percentDenominator * canvasSize.width,\n height: positionOrSize.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.percentDenominator * canvasSize.height\n };\n }\n}\nfunction getPosition(position, canvasSize) {\n return getPositionOrSize(position, canvasSize);\n}\nfunction getSize(size, canvasSize) {\n return getPositionOrSize(size, canvasSize);\n}\nfunction checkDestroy(particle, destroyType, value, minValue, maxValue) {\n switch (destroyType) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minDecay = 1;\n if (particle.destroyed || !data || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor,\n minValue = data.min,\n maxValue = data.max,\n decay = data.decay ?? minDecay;\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n switch (data.status) {\n case \"increasing\":\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = \"decreasing\";\n } else {\n data.value -= maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n } else {\n data.value += velocity;\n }\n break;\n case \"decreasing\":\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = \"increasing\";\n } else {\n data.value += maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n } else {\n data.value -= velocity;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n if (!particle.destroyed) {\n data.value = (0,_NumberUtils_js__WEBPACK_IMPORTED_MODULE_1__.clamp)(data.value, minValue, maxValue);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/Utils.js?");
720
700
 
721
701
  /***/ }),
722
702
 
@@ -726,7 +706,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
726
706
  \*********************************/
727
707
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
728
708
 
729
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableColor: () => (/* reexport safe */ _Options_Classes_AnimatableColor_js__WEBPACK_IMPORTED_MODULE_9__.AnimatableColor),\n/* harmony export */ AnimationOptions: () => (/* reexport safe */ _Options_Classes_AnimationOptions_js__WEBPACK_IMPORTED_MODULE_10__.AnimationOptions),\n/* harmony export */ AnimationValueWithRandom: () => (/* reexport safe */ _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_57__.AnimationValueWithRandom),\n/* harmony export */ Background: () => (/* reexport safe */ _Options_Classes_Background_Background_js__WEBPACK_IMPORTED_MODULE_11__.Background),\n/* harmony export */ BackgroundMask: () => (/* reexport safe */ _Options_Classes_BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_12__.BackgroundMask),\n/* harmony export */ BackgroundMaskCover: () => (/* reexport safe */ _Options_Classes_BackgroundMask_BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_13__.BackgroundMaskCover),\n/* harmony export */ Circle: () => (/* reexport safe */ _Core_Utils_Circle_js__WEBPACK_IMPORTED_MODULE_0__.Circle),\n/* harmony export */ ClickEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_ClickEvent_js__WEBPACK_IMPORTED_MODULE_17__.ClickEvent),\n/* harmony export */ Collisions: () => (/* reexport safe */ _Options_Classes_Particles_Collisions_Collisions_js__WEBPACK_IMPORTED_MODULE_30__.Collisions),\n/* harmony export */ CollisionsAbsorb: () => (/* reexport safe */ _Options_Classes_Particles_Collisions_CollisionsAbsorb_js__WEBPACK_IMPORTED_MODULE_31__.CollisionsAbsorb),\n/* harmony export */ CollisionsOverlap: () => (/* reexport safe */ _Options_Classes_Particles_Collisions_CollisionsOverlap_js__WEBPACK_IMPORTED_MODULE_32__.CollisionsOverlap),\n/* harmony export */ ColorAnimation: () => (/* reexport safe */ _Options_Classes_ColorAnimation_js__WEBPACK_IMPORTED_MODULE_14__.ColorAnimation),\n/* harmony export */ DivEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_18__.DivEvent),\n/* harmony export */ Events: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_Events_js__WEBPACK_IMPORTED_MODULE_19__.Events),\n/* harmony export */ ExternalInteractorBase: () => (/* reexport safe */ _Core_Utils_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__.ExternalInteractorBase),\n/* harmony export */ FullScreen: () => (/* reexport safe */ _Options_Classes_FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_15__.FullScreen),\n/* harmony export */ HoverEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_HoverEvent_js__WEBPACK_IMPORTED_MODULE_20__.HoverEvent),\n/* harmony export */ HslAnimation: () => (/* reexport safe */ _Options_Classes_HslAnimation_js__WEBPACK_IMPORTED_MODULE_16__.HslAnimation),\n/* harmony export */ HslColorManager: () => (/* reexport safe */ _Utils_HslColorManager_js__WEBPACK_IMPORTED_MODULE_60__.HslColorManager),\n/* harmony export */ Interactivity: () => (/* reexport safe */ _Options_Classes_Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_23__.Interactivity),\n/* harmony export */ ManualParticle: () => (/* reexport safe */ _Options_Classes_ManualParticle_js__WEBPACK_IMPORTED_MODULE_25__.ManualParticle),\n/* harmony export */ Modes: () => (/* reexport safe */ _Options_Classes_Interactivity_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_24__.Modes),\n/* harmony export */ Move: () => (/* reexport safe */ _Options_Classes_Particles_Move_Move_js__WEBPACK_IMPORTED_MODULE_37__.Move),\n/* harmony export */ MoveAngle: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveAngle_js__WEBPACK_IMPORTED_MODULE_38__.MoveAngle),\n/* harmony export */ MoveAttract: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveAttract_js__WEBPACK_IMPORTED_MODULE_36__.MoveAttract),\n/* harmony export */ MoveCenter: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveCenter_js__WEBPACK_IMPORTED_MODULE_39__.MoveCenter),\n/* harmony export */ MoveGravity: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveGravity_js__WEBPACK_IMPORTED_MODULE_40__.MoveGravity),\n/* harmony export */ MovePath: () => (/* reexport safe */ _Options_Classes_Particles_Move_Path_MovePath_js__WEBPACK_IMPORTED_MODULE_42__.MovePath),\n/* harmony export */ MoveTrail: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveTrail_js__WEBPACK_IMPORTED_MODULE_44__.MoveTrail),\n/* harmony export */ Opacity: () => (/* reexport safe */ _Options_Classes_Particles_Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_48__.Opacity),\n/* harmony export */ OpacityAnimation: () => (/* reexport safe */ _Options_Classes_Particles_Opacity_OpacityAnimation_js__WEBPACK_IMPORTED_MODULE_49__.OpacityAnimation),\n/* harmony export */ Options: () => (/* reexport safe */ _Options_Classes_Options_js__WEBPACK_IMPORTED_MODULE_26__.Options),\n/* harmony export */ OptionsColor: () => (/* reexport safe */ _Options_Classes_OptionsColor_js__WEBPACK_IMPORTED_MODULE_27__.OptionsColor),\n/* harmony export */ OutModes: () => (/* reexport safe */ _Options_Classes_Particles_Move_OutModes_js__WEBPACK_IMPORTED_MODULE_41__.OutModes),\n/* harmony export */ Parallax: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_Parallax_js__WEBPACK_IMPORTED_MODULE_21__.Parallax),\n/* harmony export */ ParticlesBounce: () => (/* reexport safe */ _Options_Classes_Particles_Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_28__.ParticlesBounce),\n/* harmony export */ ParticlesBounceFactor: () => (/* reexport safe */ _Options_Classes_Particles_Bounce_ParticlesBounceFactor_js__WEBPACK_IMPORTED_MODULE_29__.ParticlesBounceFactor),\n/* harmony export */ ParticlesDensity: () => (/* reexport safe */ _Options_Classes_Particles_Number_ParticlesDensity_js__WEBPACK_IMPORTED_MODULE_47__.ParticlesDensity),\n/* harmony export */ ParticlesInteractorBase: () => (/* reexport safe */ _Core_Utils_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_3__.ParticlesInteractorBase),\n/* harmony export */ ParticlesNumber: () => (/* reexport safe */ _Options_Classes_Particles_Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_45__.ParticlesNumber),\n/* harmony export */ ParticlesNumberLimit: () => (/* reexport safe */ _Options_Classes_Particles_Number_ParticlesNumberLimit_js__WEBPACK_IMPORTED_MODULE_46__.ParticlesNumberLimit),\n/* harmony export */ ParticlesOptions: () => (/* reexport safe */ _Options_Classes_Particles_ParticlesOptions_js__WEBPACK_IMPORTED_MODULE_33__.ParticlesOptions),\n/* harmony export */ Point: () => (/* reexport safe */ _Core_Utils_Point_js__WEBPACK_IMPORTED_MODULE_4__.Point),\n/* harmony export */ Range: () => (/* reexport safe */ _Core_Utils_Range_js__WEBPACK_IMPORTED_MODULE_5__.Range),\n/* harmony export */ RangedAnimationOptions: () => (/* reexport safe */ _Options_Classes_AnimationOptions_js__WEBPACK_IMPORTED_MODULE_10__.RangedAnimationOptions),\n/* harmony export */ RangedAnimationValueWithRandom: () => (/* reexport safe */ _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_57__.RangedAnimationValueWithRandom),\n/* harmony export */ Rectangle: () => (/* reexport safe */ _Core_Utils_Rectangle_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle),\n/* harmony export */ ResizeEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_ResizeEvent_js__WEBPACK_IMPORTED_MODULE_22__.ResizeEvent),\n/* harmony export */ Responsive: () => (/* reexport safe */ _Options_Classes_Responsive_js__WEBPACK_IMPORTED_MODULE_54__.Responsive),\n/* harmony export */ RgbColorManager: () => (/* reexport safe */ _Utils_RgbColorManager_js__WEBPACK_IMPORTED_MODULE_63__.RgbColorManager),\n/* harmony export */ Shadow: () => (/* reexport safe */ _Options_Classes_Particles_Shadow_js__WEBPACK_IMPORTED_MODULE_34__.Shadow),\n/* harmony export */ Shape: () => (/* reexport safe */ _Options_Classes_Particles_Shape_Shape_js__WEBPACK_IMPORTED_MODULE_50__.Shape),\n/* harmony export */ Size: () => (/* reexport safe */ _Options_Classes_Particles_Size_Size_js__WEBPACK_IMPORTED_MODULE_51__.Size),\n/* harmony export */ SizeAnimation: () => (/* reexport safe */ _Options_Classes_Particles_Size_SizeAnimation_js__WEBPACK_IMPORTED_MODULE_52__.SizeAnimation),\n/* harmony export */ Spin: () => (/* reexport safe */ _Options_Classes_Particles_Move_Spin_js__WEBPACK_IMPORTED_MODULE_43__.Spin),\n/* harmony export */ Stroke: () => (/* reexport safe */ _Options_Classes_Particles_Stroke_js__WEBPACK_IMPORTED_MODULE_35__.Stroke),\n/* harmony export */ Theme: () => (/* reexport safe */ _Options_Classes_Theme_Theme_js__WEBPACK_IMPORTED_MODULE_55__.Theme),\n/* harmony export */ ThemeDefault: () => (/* reexport safe */ _Options_Classes_Theme_ThemeDefault_js__WEBPACK_IMPORTED_MODULE_56__.ThemeDefault),\n/* harmony export */ ValueWithRandom: () => (/* reexport safe */ _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_57__.ValueWithRandom),\n/* harmony export */ Vector: () => (/* reexport safe */ _Core_Utils_Vector_js__WEBPACK_IMPORTED_MODULE_7__.Vector),\n/* harmony export */ Vector3d: () => (/* reexport safe */ _Core_Utils_Vector3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d),\n/* harmony export */ ZIndex: () => (/* reexport safe */ _Options_Classes_Particles_ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_53__.ZIndex),\n/* harmony export */ addColorManager: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.addColorManager),\n/* harmony export */ addEasing: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.addEasing),\n/* harmony export */ alterHsl: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.alterHsl),\n/* harmony export */ areBoundsInside: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.arrayRandomIndex),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.calcPositionOrRandomFromSizeRanged),\n/* harmony export */ calculateBounds: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.calculateBounds),\n/* harmony export */ circleBounce: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.circleBounceDataFromParticle),\n/* harmony export */ clamp: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.clamp),\n/* harmony export */ clear: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.clear),\n/* harmony export */ collisionVelocity: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.collisionVelocity),\n/* harmony export */ colorMix: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.colorMix),\n/* harmony export */ colorToHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.colorToHsl),\n/* harmony export */ colorToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.colorToRgb),\n/* harmony export */ deepExtend: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.deepExtend),\n/* harmony export */ degToRad: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.degToRad),\n/* harmony export */ divMode: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.divMode),\n/* harmony export */ divModeExecute: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.divModeExecute),\n/* harmony export */ drawEffect: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.drawEffect),\n/* harmony export */ drawLine: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.drawLine),\n/* harmony export */ drawParticle: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.drawParticle),\n/* harmony export */ drawParticlePlugin: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.drawParticlePlugin),\n/* harmony export */ drawPlugin: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.drawPlugin),\n/* harmony export */ drawShape: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.drawShape),\n/* harmony export */ drawShapeAfterDraw: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.drawShapeAfterDraw),\n/* harmony export */ errorPrefix: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.errorPrefix),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.findItemFromSingleOrMultiple),\n/* harmony export */ generatedAttribute: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.generatedAttribute),\n/* harmony export */ getDistance: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getDistance),\n/* harmony export */ getDistances: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getDistances),\n/* harmony export */ getEasing: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getEasing),\n/* harmony export */ getHslAnimationFromHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.getLinkRandomColor),\n/* harmony export */ getLogger: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.getLogger),\n/* harmony export */ getParticleBaseVelocity: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getParticleDirectionAngle),\n/* harmony export */ getPosition: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.getPosition),\n/* harmony export */ getRandom: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getRandom),\n/* harmony export */ getRandomRgbColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.getRandomRgbColor),\n/* harmony export */ getRangeMax: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getRangeMax),\n/* harmony export */ getRangeMin: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getRangeMin),\n/* harmony export */ getRangeValue: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.getRangeValue),\n/* harmony export */ getSize: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.getSize),\n/* harmony export */ getStyleFromHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.getStyleFromRgb),\n/* harmony export */ halfRandom: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.halfRandom),\n/* harmony export */ hasMatchMedia: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.hasMatchMedia),\n/* harmony export */ hslToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.hslaToRgba),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.initParticleNumericAnimationValue),\n/* harmony export */ isArray: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isArray),\n/* harmony export */ isBoolean: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isBoolean),\n/* harmony export */ isDivModeEnabled: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isDivModeEnabled),\n/* harmony export */ isFunction: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isFunction),\n/* harmony export */ isInArray: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isInArray),\n/* harmony export */ isNumber: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isNumber),\n/* harmony export */ isObject: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isObject),\n/* harmony export */ isPointInside: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isPointInside),\n/* harmony export */ isSsr: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isSsr),\n/* harmony export */ isString: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.isString),\n/* harmony export */ itemFromArray: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.loadFont),\n/* harmony export */ loadOptions: () => (/* reexport safe */ _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_62__.loadOptions),\n/* harmony export */ loadParticlesOptions: () => (/* reexport safe */ _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_62__.loadParticlesOptions),\n/* harmony export */ millisecondsToSeconds: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds),\n/* harmony export */ mix: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.mix),\n/* harmony export */ mouseDownEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.mouseUpEvent),\n/* harmony export */ paintBase: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.paintBase),\n/* harmony export */ paintImage: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__.paintImage),\n/* harmony export */ parseAlpha: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.parseAlpha),\n/* harmony export */ percentDenominator: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator),\n/* harmony export */ randomInRange: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.randomInRange),\n/* harmony export */ rangeColorToHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.rangeColorToRgb),\n/* harmony export */ rectBounce: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.rectBounce),\n/* harmony export */ resizeEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.resizeEvent),\n/* harmony export */ rgbToHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.rgbToHsl),\n/* harmony export */ safeIntersectionObserver: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.safeMutationObserver),\n/* harmony export */ setLogger: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.setLogger),\n/* harmony export */ setRandom: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.setRandom),\n/* harmony export */ setRangeValue: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__.setRangeValue),\n/* harmony export */ singleDivModeExecute: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.singleDivModeExecute),\n/* harmony export */ stringToAlpha: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.stringToRgb),\n/* harmony export */ touchCancelEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.touchStartEvent),\n/* harmony export */ updateAnimation: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__.updateAnimation),\n/* harmony export */ updateColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.updateColor),\n/* harmony export */ updateColorValue: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__.updateColorValue),\n/* harmony export */ visibilityChangeEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.visibilityChangeEvent)\n/* harmony export */ });\n/* harmony import */ var _Core_Utils_Circle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Core/Utils/Circle.js */ \"./dist/browser/Core/Utils/Circle.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Core_Utils_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Core/Utils/ExternalInteractorBase.js */ \"./dist/browser/Core/Utils/ExternalInteractorBase.js\");\n/* harmony import */ var _Core_Utils_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Core/Utils/ParticlesInteractorBase.js */ \"./dist/browser/Core/Utils/ParticlesInteractorBase.js\");\n/* harmony import */ var _Core_Utils_Point_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Core/Utils/Point.js */ \"./dist/browser/Core/Utils/Point.js\");\n/* harmony import */ var _Core_Utils_Range_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Core/Utils/Range.js */ \"./dist/browser/Core/Utils/Range.js\");\n/* harmony import */ var _Core_Utils_Rectangle_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Core/Utils/Rectangle.js */ \"./dist/browser/Core/Utils/Rectangle.js\");\n/* harmony import */ var _Core_Utils_Vector_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Core/Utils/Vector.js */ \"./dist/browser/Core/Utils/Vector.js\");\n/* harmony import */ var _Core_Utils_Vector3d_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Core/Utils/Vector3d.js */ \"./dist/browser/Core/Utils/Vector3d.js\");\n/* harmony import */ var _Options_Classes_AnimatableColor_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Options/Classes/AnimatableColor.js */ \"./dist/browser/Options/Classes/AnimatableColor.js\");\n/* harmony import */ var _Options_Classes_AnimationOptions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Options/Classes/AnimationOptions.js */ \"./dist/browser/Options/Classes/AnimationOptions.js\");\n/* harmony import */ var _Options_Classes_Background_Background_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Options/Classes/Background/Background.js */ \"./dist/browser/Options/Classes/Background/Background.js\");\n/* harmony import */ var _Options_Classes_BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Options/Classes/BackgroundMask/BackgroundMask.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMask.js\");\n/* harmony import */ var _Options_Classes_BackgroundMask_BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Options/Classes/BackgroundMask/BackgroundMaskCover.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js\");\n/* harmony import */ var _Options_Classes_ColorAnimation_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Options/Classes/ColorAnimation.js */ \"./dist/browser/Options/Classes/ColorAnimation.js\");\n/* harmony import */ var _Options_Classes_FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Options/Classes/FullScreen/FullScreen.js */ \"./dist/browser/Options/Classes/FullScreen/FullScreen.js\");\n/* harmony import */ var _Options_Classes_HslAnimation_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Options/Classes/HslAnimation.js */ \"./dist/browser/Options/Classes/HslAnimation.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_ClickEvent_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/ClickEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/ClickEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/DivEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/DivEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_Events_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/Events.js */ \"./dist/browser/Options/Classes/Interactivity/Events/Events.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_HoverEvent_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/HoverEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/HoverEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_Parallax_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/Parallax.js */ \"./dist/browser/Options/Classes/Interactivity/Events/Parallax.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_ResizeEvent_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/ResizeEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/ResizeEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Interactivity.js */ \"./dist/browser/Options/Classes/Interactivity/Interactivity.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Modes/Modes.js */ \"./dist/browser/Options/Classes/Interactivity/Modes/Modes.js\");\n/* harmony import */ var _Options_Classes_ManualParticle_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./Options/Classes/ManualParticle.js */ \"./dist/browser/Options/Classes/ManualParticle.js\");\n/* harmony import */ var _Options_Classes_Options_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Options/Classes/Options.js */ \"./dist/browser/Options/Classes/Options.js\");\n/* harmony import */ var _Options_Classes_OptionsColor_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Options/Classes/OptionsColor.js */ \"./dist/browser/Options/Classes/OptionsColor.js\");\n/* harmony import */ var _Options_Classes_Particles_Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./Options/Classes/Particles/Bounce/ParticlesBounce.js */ \"./dist/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js\");\n/* harmony import */ var _Options_Classes_Particles_Bounce_ParticlesBounceFactor_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Options/Classes/Particles/Bounce/ParticlesBounceFactor.js */ \"./dist/browser/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js\");\n/* harmony import */ var _Options_Classes_Particles_Collisions_Collisions_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Options/Classes/Particles/Collisions/Collisions.js */ \"./dist/browser/Options/Classes/Particles/Collisions/Collisions.js\");\n/* harmony import */ var _Options_Classes_Particles_Collisions_CollisionsAbsorb_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Options/Classes/Particles/Collisions/CollisionsAbsorb.js */ \"./dist/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js\");\n/* harmony import */ var _Options_Classes_Particles_Collisions_CollisionsOverlap_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./Options/Classes/Particles/Collisions/CollisionsOverlap.js */ \"./dist/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js\");\n/* harmony import */ var _Options_Classes_Particles_ParticlesOptions_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./Options/Classes/Particles/ParticlesOptions.js */ \"./dist/browser/Options/Classes/Particles/ParticlesOptions.js\");\n/* harmony import */ var _Options_Classes_Particles_Shadow_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./Options/Classes/Particles/Shadow.js */ \"./dist/browser/Options/Classes/Particles/Shadow.js\");\n/* harmony import */ var _Options_Classes_Particles_Stroke_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./Options/Classes/Particles/Stroke.js */ \"./dist/browser/Options/Classes/Particles/Stroke.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveAttract_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveAttract.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAttract.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_Move_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/Move.js */ \"./dist/browser/Options/Classes/Particles/Move/Move.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveAngle_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveAngle.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAngle.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveCenter_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveCenter.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveCenter.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveGravity_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveGravity.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveGravity.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_OutModes_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/OutModes.js */ \"./dist/browser/Options/Classes/Particles/Move/OutModes.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_Path_MovePath_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/Path/MovePath.js */ \"./dist/browser/Options/Classes/Particles/Move/Path/MovePath.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_Spin_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/Spin.js */ \"./dist/browser/Options/Classes/Particles/Move/Spin.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveTrail_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveTrail.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveTrail.js\");\n/* harmony import */ var _Options_Classes_Particles_Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./Options/Classes/Particles/Number/ParticlesNumber.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesNumber.js\");\n/* harmony import */ var _Options_Classes_Particles_Number_ParticlesNumberLimit_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./Options/Classes/Particles/Number/ParticlesNumberLimit.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js\");\n/* harmony import */ var _Options_Classes_Particles_Number_ParticlesDensity_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./Options/Classes/Particles/Number/ParticlesDensity.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesDensity.js\");\n/* harmony import */ var _Options_Classes_Particles_Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./Options/Classes/Particles/Opacity/Opacity.js */ \"./dist/browser/Options/Classes/Particles/Opacity/Opacity.js\");\n/* harmony import */ var _Options_Classes_Particles_Opacity_OpacityAnimation_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./Options/Classes/Particles/Opacity/OpacityAnimation.js */ \"./dist/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js\");\n/* harmony import */ var _Options_Classes_Particles_Shape_Shape_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./Options/Classes/Particles/Shape/Shape.js */ \"./dist/browser/Options/Classes/Particles/Shape/Shape.js\");\n/* harmony import */ var _Options_Classes_Particles_Size_Size_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./Options/Classes/Particles/Size/Size.js */ \"./dist/browser/Options/Classes/Particles/Size/Size.js\");\n/* harmony import */ var _Options_Classes_Particles_Size_SizeAnimation_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./Options/Classes/Particles/Size/SizeAnimation.js */ \"./dist/browser/Options/Classes/Particles/Size/SizeAnimation.js\");\n/* harmony import */ var _Options_Classes_Particles_ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./Options/Classes/Particles/ZIndex/ZIndex.js */ \"./dist/browser/Options/Classes/Particles/ZIndex/ZIndex.js\");\n/* harmony import */ var _Options_Classes_Responsive_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./Options/Classes/Responsive.js */ \"./dist/browser/Options/Classes/Responsive.js\");\n/* harmony import */ var _Options_Classes_Theme_Theme_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./Options/Classes/Theme/Theme.js */ \"./dist/browser/Options/Classes/Theme/Theme.js\");\n/* harmony import */ var _Options_Classes_Theme_ThemeDefault_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./Options/Classes/Theme/ThemeDefault.js */ \"./dist/browser/Options/Classes/Theme/ThemeDefault.js\");\n/* harmony import */ var _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./Options/Classes/ValueWithRandom.js */ \"./dist/browser/Options/Classes/ValueWithRandom.js\");\n/* harmony import */ var _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./Utils/CanvasUtils.js */ \"./dist/browser/Utils/CanvasUtils.js\");\n/* harmony import */ var _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./Utils/ColorUtils.js */ \"./dist/browser/Utils/ColorUtils.js\");\n/* harmony import */ var _Utils_HslColorManager_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./Utils/HslColorManager.js */ \"./dist/browser/Utils/HslColorManager.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n/* harmony import */ var _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./Utils/OptionsUtils.js */ \"./dist/browser/Utils/OptionsUtils.js\");\n/* harmony import */ var _Utils_RgbColorManager_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./Utils/RgbColorManager.js */ \"./dist/browser/Utils/RgbColorManager.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/exports.js?");
709
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableColor: () => (/* reexport safe */ _Options_Classes_AnimatableColor_js__WEBPACK_IMPORTED_MODULE_6__.AnimatableColor),\n/* harmony export */ AnimationOptions: () => (/* reexport safe */ _Options_Classes_AnimationOptions_js__WEBPACK_IMPORTED_MODULE_7__.AnimationOptions),\n/* harmony export */ AnimationValueWithRandom: () => (/* reexport safe */ _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_54__.AnimationValueWithRandom),\n/* harmony export */ Background: () => (/* reexport safe */ _Options_Classes_Background_Background_js__WEBPACK_IMPORTED_MODULE_8__.Background),\n/* harmony export */ BackgroundMask: () => (/* reexport safe */ _Options_Classes_BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_9__.BackgroundMask),\n/* harmony export */ BackgroundMaskCover: () => (/* reexport safe */ _Options_Classes_BackgroundMask_BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_10__.BackgroundMaskCover),\n/* harmony export */ BaseRange: () => (/* reexport safe */ _Core_Utils_Ranges_js__WEBPACK_IMPORTED_MODULE_4__.BaseRange),\n/* harmony export */ Circle: () => (/* reexport safe */ _Core_Utils_Ranges_js__WEBPACK_IMPORTED_MODULE_4__.Circle),\n/* harmony export */ ClickEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_ClickEvent_js__WEBPACK_IMPORTED_MODULE_14__.ClickEvent),\n/* harmony export */ Collisions: () => (/* reexport safe */ _Options_Classes_Particles_Collisions_Collisions_js__WEBPACK_IMPORTED_MODULE_27__.Collisions),\n/* harmony export */ CollisionsAbsorb: () => (/* reexport safe */ _Options_Classes_Particles_Collisions_CollisionsAbsorb_js__WEBPACK_IMPORTED_MODULE_28__.CollisionsAbsorb),\n/* harmony export */ CollisionsOverlap: () => (/* reexport safe */ _Options_Classes_Particles_Collisions_CollisionsOverlap_js__WEBPACK_IMPORTED_MODULE_29__.CollisionsOverlap),\n/* harmony export */ ColorAnimation: () => (/* reexport safe */ _Options_Classes_ColorAnimation_js__WEBPACK_IMPORTED_MODULE_11__.ColorAnimation),\n/* harmony export */ DivEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_15__.DivEvent),\n/* harmony export */ Events: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_Events_js__WEBPACK_IMPORTED_MODULE_16__.Events),\n/* harmony export */ ExternalInteractorBase: () => (/* reexport safe */ _Core_Utils_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_1__.ExternalInteractorBase),\n/* harmony export */ FullScreen: () => (/* reexport safe */ _Options_Classes_FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_12__.FullScreen),\n/* harmony export */ HoverEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_HoverEvent_js__WEBPACK_IMPORTED_MODULE_17__.HoverEvent),\n/* harmony export */ HslAnimation: () => (/* reexport safe */ _Options_Classes_HslAnimation_js__WEBPACK_IMPORTED_MODULE_13__.HslAnimation),\n/* harmony export */ HslColorManager: () => (/* reexport safe */ _Utils_HslColorManager_js__WEBPACK_IMPORTED_MODULE_57__.HslColorManager),\n/* harmony export */ Interactivity: () => (/* reexport safe */ _Options_Classes_Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_20__.Interactivity),\n/* harmony export */ ManualParticle: () => (/* reexport safe */ _Options_Classes_ManualParticle_js__WEBPACK_IMPORTED_MODULE_22__.ManualParticle),\n/* harmony export */ Modes: () => (/* reexport safe */ _Options_Classes_Interactivity_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_21__.Modes),\n/* harmony export */ Move: () => (/* reexport safe */ _Options_Classes_Particles_Move_Move_js__WEBPACK_IMPORTED_MODULE_34__.Move),\n/* harmony export */ MoveAngle: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveAngle_js__WEBPACK_IMPORTED_MODULE_35__.MoveAngle),\n/* harmony export */ MoveAttract: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveAttract_js__WEBPACK_IMPORTED_MODULE_33__.MoveAttract),\n/* harmony export */ MoveCenter: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveCenter_js__WEBPACK_IMPORTED_MODULE_36__.MoveCenter),\n/* harmony export */ MoveGravity: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveGravity_js__WEBPACK_IMPORTED_MODULE_37__.MoveGravity),\n/* harmony export */ MovePath: () => (/* reexport safe */ _Options_Classes_Particles_Move_Path_MovePath_js__WEBPACK_IMPORTED_MODULE_39__.MovePath),\n/* harmony export */ MoveTrail: () => (/* reexport safe */ _Options_Classes_Particles_Move_MoveTrail_js__WEBPACK_IMPORTED_MODULE_41__.MoveTrail),\n/* harmony export */ Opacity: () => (/* reexport safe */ _Options_Classes_Particles_Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_45__.Opacity),\n/* harmony export */ OpacityAnimation: () => (/* reexport safe */ _Options_Classes_Particles_Opacity_OpacityAnimation_js__WEBPACK_IMPORTED_MODULE_46__.OpacityAnimation),\n/* harmony export */ Options: () => (/* reexport safe */ _Options_Classes_Options_js__WEBPACK_IMPORTED_MODULE_23__.Options),\n/* harmony export */ OptionsColor: () => (/* reexport safe */ _Options_Classes_OptionsColor_js__WEBPACK_IMPORTED_MODULE_24__.OptionsColor),\n/* harmony export */ OutModes: () => (/* reexport safe */ _Options_Classes_Particles_Move_OutModes_js__WEBPACK_IMPORTED_MODULE_38__.OutModes),\n/* harmony export */ Parallax: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_Parallax_js__WEBPACK_IMPORTED_MODULE_18__.Parallax),\n/* harmony export */ ParticlesBounce: () => (/* reexport safe */ _Options_Classes_Particles_Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_25__.ParticlesBounce),\n/* harmony export */ ParticlesBounceFactor: () => (/* reexport safe */ _Options_Classes_Particles_Bounce_ParticlesBounceFactor_js__WEBPACK_IMPORTED_MODULE_26__.ParticlesBounceFactor),\n/* harmony export */ ParticlesDensity: () => (/* reexport safe */ _Options_Classes_Particles_Number_ParticlesDensity_js__WEBPACK_IMPORTED_MODULE_44__.ParticlesDensity),\n/* harmony export */ ParticlesInteractorBase: () => (/* reexport safe */ _Core_Utils_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesInteractorBase),\n/* harmony export */ ParticlesNumber: () => (/* reexport safe */ _Options_Classes_Particles_Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_42__.ParticlesNumber),\n/* harmony export */ ParticlesNumberLimit: () => (/* reexport safe */ _Options_Classes_Particles_Number_ParticlesNumberLimit_js__WEBPACK_IMPORTED_MODULE_43__.ParticlesNumberLimit),\n/* harmony export */ ParticlesOptions: () => (/* reexport safe */ _Options_Classes_Particles_ParticlesOptions_js__WEBPACK_IMPORTED_MODULE_30__.ParticlesOptions),\n/* harmony export */ Point: () => (/* reexport safe */ _Core_Utils_Point_js__WEBPACK_IMPORTED_MODULE_3__.Point),\n/* harmony export */ RangedAnimationOptions: () => (/* reexport safe */ _Options_Classes_AnimationOptions_js__WEBPACK_IMPORTED_MODULE_7__.RangedAnimationOptions),\n/* harmony export */ RangedAnimationValueWithRandom: () => (/* reexport safe */ _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_54__.RangedAnimationValueWithRandom),\n/* harmony export */ Rectangle: () => (/* reexport safe */ _Core_Utils_Ranges_js__WEBPACK_IMPORTED_MODULE_4__.Rectangle),\n/* harmony export */ ResizeEvent: () => (/* reexport safe */ _Options_Classes_Interactivity_Events_ResizeEvent_js__WEBPACK_IMPORTED_MODULE_19__.ResizeEvent),\n/* harmony export */ Responsive: () => (/* reexport safe */ _Options_Classes_Responsive_js__WEBPACK_IMPORTED_MODULE_51__.Responsive),\n/* harmony export */ RgbColorManager: () => (/* reexport safe */ _Utils_RgbColorManager_js__WEBPACK_IMPORTED_MODULE_60__.RgbColorManager),\n/* harmony export */ Shadow: () => (/* reexport safe */ _Options_Classes_Particles_Shadow_js__WEBPACK_IMPORTED_MODULE_31__.Shadow),\n/* harmony export */ Shape: () => (/* reexport safe */ _Options_Classes_Particles_Shape_Shape_js__WEBPACK_IMPORTED_MODULE_47__.Shape),\n/* harmony export */ Size: () => (/* reexport safe */ _Options_Classes_Particles_Size_Size_js__WEBPACK_IMPORTED_MODULE_48__.Size),\n/* harmony export */ SizeAnimation: () => (/* reexport safe */ _Options_Classes_Particles_Size_SizeAnimation_js__WEBPACK_IMPORTED_MODULE_49__.SizeAnimation),\n/* harmony export */ Spin: () => (/* reexport safe */ _Options_Classes_Particles_Move_Spin_js__WEBPACK_IMPORTED_MODULE_40__.Spin),\n/* harmony export */ Stroke: () => (/* reexport safe */ _Options_Classes_Particles_Stroke_js__WEBPACK_IMPORTED_MODULE_32__.Stroke),\n/* harmony export */ Theme: () => (/* reexport safe */ _Options_Classes_Theme_Theme_js__WEBPACK_IMPORTED_MODULE_52__.Theme),\n/* harmony export */ ThemeDefault: () => (/* reexport safe */ _Options_Classes_Theme_ThemeDefault_js__WEBPACK_IMPORTED_MODULE_53__.ThemeDefault),\n/* harmony export */ ValueWithRandom: () => (/* reexport safe */ _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_54__.ValueWithRandom),\n/* harmony export */ Vector: () => (/* reexport safe */ _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_5__.Vector),\n/* harmony export */ Vector3d: () => (/* reexport safe */ _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_5__.Vector3d),\n/* harmony export */ ZIndex: () => (/* reexport safe */ _Options_Classes_Particles_ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_50__.ZIndex),\n/* harmony export */ addColorManager: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.addColorManager),\n/* harmony export */ addEasing: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.addEasing),\n/* harmony export */ alterHsl: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.alterHsl),\n/* harmony export */ areBoundsInside: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.arrayRandomIndex),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.calcPositionOrRandomFromSizeRanged),\n/* harmony export */ calculateBounds: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.calculateBounds),\n/* harmony export */ circleBounce: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.circleBounceDataFromParticle),\n/* harmony export */ clamp: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.clamp),\n/* harmony export */ clear: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.clear),\n/* harmony export */ collisionVelocity: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.collisionVelocity),\n/* harmony export */ colorMix: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.colorMix),\n/* harmony export */ colorToHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.colorToHsl),\n/* harmony export */ colorToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.colorToRgb),\n/* harmony export */ deepExtend: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.deepExtend),\n/* harmony export */ degToRad: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.degToRad),\n/* harmony export */ divMode: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.divMode),\n/* harmony export */ divModeExecute: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.divModeExecute),\n/* harmony export */ drawEffect: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.drawEffect),\n/* harmony export */ drawLine: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.drawLine),\n/* harmony export */ drawParticle: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.drawParticle),\n/* harmony export */ drawParticlePlugin: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.drawParticlePlugin),\n/* harmony export */ drawPlugin: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.drawPlugin),\n/* harmony export */ drawShape: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.drawShape),\n/* harmony export */ drawShapeAfterDraw: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.drawShapeAfterDraw),\n/* harmony export */ errorPrefix: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.findItemFromSingleOrMultiple),\n/* harmony export */ generatedAttribute: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute),\n/* harmony export */ getDistance: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getDistance),\n/* harmony export */ getDistances: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getDistances),\n/* harmony export */ getEasing: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getEasing),\n/* harmony export */ getHslAnimationFromHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.getLinkRandomColor),\n/* harmony export */ getLogger: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.getLogger),\n/* harmony export */ getParticleBaseVelocity: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getParticleDirectionAngle),\n/* harmony export */ getPosition: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.getPosition),\n/* harmony export */ getRandom: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getRandom),\n/* harmony export */ getRandomRgbColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.getRandomRgbColor),\n/* harmony export */ getRangeMax: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getRangeMax),\n/* harmony export */ getRangeMin: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getRangeMin),\n/* harmony export */ getRangeValue: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.getRangeValue),\n/* harmony export */ getSize: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.getSize),\n/* harmony export */ getStyleFromHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.getStyleFromRgb),\n/* harmony export */ halfRandom: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.halfRandom),\n/* harmony export */ hasMatchMedia: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.hasMatchMedia),\n/* harmony export */ hslToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.hslaToRgba),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.initParticleNumericAnimationValue),\n/* harmony export */ isArray: () => (/* reexport safe */ _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_62__.isArray),\n/* harmony export */ isBoolean: () => (/* reexport safe */ _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_62__.isBoolean),\n/* harmony export */ isDivModeEnabled: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.isDivModeEnabled),\n/* harmony export */ isFunction: () => (/* reexport safe */ _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_62__.isFunction),\n/* harmony export */ isInArray: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.isInArray),\n/* harmony export */ isNumber: () => (/* reexport safe */ _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_62__.isNumber),\n/* harmony export */ isObject: () => (/* reexport safe */ _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_62__.isObject),\n/* harmony export */ isPointInside: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.isPointInside),\n/* harmony export */ isSsr: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.isSsr),\n/* harmony export */ isString: () => (/* reexport safe */ _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_62__.isString),\n/* harmony export */ itemFromArray: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.loadFont),\n/* harmony export */ loadOptions: () => (/* reexport safe */ _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_59__.loadOptions),\n/* harmony export */ loadParticlesOptions: () => (/* reexport safe */ _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_59__.loadParticlesOptions),\n/* harmony export */ millisecondsToSeconds: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds),\n/* harmony export */ mix: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.mix),\n/* harmony export */ mouseDownEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.mouseUpEvent),\n/* harmony export */ paintBase: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.paintBase),\n/* harmony export */ paintImage: () => (/* reexport safe */ _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__.paintImage),\n/* harmony export */ parseAlpha: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.parseAlpha),\n/* harmony export */ percentDenominator: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.percentDenominator),\n/* harmony export */ randomInRange: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.randomInRange),\n/* harmony export */ rangeColorToHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.rangeColorToRgb),\n/* harmony export */ rectBounce: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.rectBounce),\n/* harmony export */ resizeEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.resizeEvent),\n/* harmony export */ rgbToHsl: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.rgbToHsl),\n/* harmony export */ safeIntersectionObserver: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.safeMutationObserver),\n/* harmony export */ setLogger: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.setLogger),\n/* harmony export */ setRandom: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.setRandom),\n/* harmony export */ setRangeValue: () => (/* reexport safe */ _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__.setRangeValue),\n/* harmony export */ singleDivModeExecute: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.singleDivModeExecute),\n/* harmony export */ stringToAlpha: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.stringToRgb),\n/* harmony export */ touchCancelEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.touchStartEvent),\n/* harmony export */ updateAnimation: () => (/* reexport safe */ _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__.updateAnimation),\n/* harmony export */ updateColor: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.updateColor),\n/* harmony export */ updateColorValue: () => (/* reexport safe */ _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__.updateColorValue),\n/* harmony export */ visibilityChangeEvent: () => (/* reexport safe */ _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.visibilityChangeEvent)\n/* harmony export */ });\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Core/Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Core_Utils_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Core/Utils/ExternalInteractorBase.js */ \"./dist/browser/Core/Utils/ExternalInteractorBase.js\");\n/* harmony import */ var _Core_Utils_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Core/Utils/ParticlesInteractorBase.js */ \"./dist/browser/Core/Utils/ParticlesInteractorBase.js\");\n/* harmony import */ var _Core_Utils_Point_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Core/Utils/Point.js */ \"./dist/browser/Core/Utils/Point.js\");\n/* harmony import */ var _Core_Utils_Ranges_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Core/Utils/Ranges.js */ \"./dist/browser/Core/Utils/Ranges.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Core/Utils/Vectors.js */ \"./dist/browser/Core/Utils/Vectors.js\");\n/* harmony import */ var _Options_Classes_AnimatableColor_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Options/Classes/AnimatableColor.js */ \"./dist/browser/Options/Classes/AnimatableColor.js\");\n/* harmony import */ var _Options_Classes_AnimationOptions_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Options/Classes/AnimationOptions.js */ \"./dist/browser/Options/Classes/AnimationOptions.js\");\n/* harmony import */ var _Options_Classes_Background_Background_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Options/Classes/Background/Background.js */ \"./dist/browser/Options/Classes/Background/Background.js\");\n/* harmony import */ var _Options_Classes_BackgroundMask_BackgroundMask_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Options/Classes/BackgroundMask/BackgroundMask.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMask.js\");\n/* harmony import */ var _Options_Classes_BackgroundMask_BackgroundMaskCover_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Options/Classes/BackgroundMask/BackgroundMaskCover.js */ \"./dist/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js\");\n/* harmony import */ var _Options_Classes_ColorAnimation_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Options/Classes/ColorAnimation.js */ \"./dist/browser/Options/Classes/ColorAnimation.js\");\n/* harmony import */ var _Options_Classes_FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Options/Classes/FullScreen/FullScreen.js */ \"./dist/browser/Options/Classes/FullScreen/FullScreen.js\");\n/* harmony import */ var _Options_Classes_HslAnimation_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Options/Classes/HslAnimation.js */ \"./dist/browser/Options/Classes/HslAnimation.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_ClickEvent_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/ClickEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/ClickEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/DivEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/DivEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_Events_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/Events.js */ \"./dist/browser/Options/Classes/Interactivity/Events/Events.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_HoverEvent_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/HoverEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/HoverEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_Parallax_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/Parallax.js */ \"./dist/browser/Options/Classes/Interactivity/Events/Parallax.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Events_ResizeEvent_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Events/ResizeEvent.js */ \"./dist/browser/Options/Classes/Interactivity/Events/ResizeEvent.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Interactivity_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Interactivity.js */ \"./dist/browser/Options/Classes/Interactivity/Interactivity.js\");\n/* harmony import */ var _Options_Classes_Interactivity_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Options/Classes/Interactivity/Modes/Modes.js */ \"./dist/browser/Options/Classes/Interactivity/Modes/Modes.js\");\n/* harmony import */ var _Options_Classes_ManualParticle_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Options/Classes/ManualParticle.js */ \"./dist/browser/Options/Classes/ManualParticle.js\");\n/* harmony import */ var _Options_Classes_Options_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Options/Classes/Options.js */ \"./dist/browser/Options/Classes/Options.js\");\n/* harmony import */ var _Options_Classes_OptionsColor_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Options/Classes/OptionsColor.js */ \"./dist/browser/Options/Classes/OptionsColor.js\");\n/* harmony import */ var _Options_Classes_Particles_Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./Options/Classes/Particles/Bounce/ParticlesBounce.js */ \"./dist/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js\");\n/* harmony import */ var _Options_Classes_Particles_Bounce_ParticlesBounceFactor_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Options/Classes/Particles/Bounce/ParticlesBounceFactor.js */ \"./dist/browser/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js\");\n/* harmony import */ var _Options_Classes_Particles_Collisions_Collisions_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Options/Classes/Particles/Collisions/Collisions.js */ \"./dist/browser/Options/Classes/Particles/Collisions/Collisions.js\");\n/* harmony import */ var _Options_Classes_Particles_Collisions_CollisionsAbsorb_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./Options/Classes/Particles/Collisions/CollisionsAbsorb.js */ \"./dist/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js\");\n/* harmony import */ var _Options_Classes_Particles_Collisions_CollisionsOverlap_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Options/Classes/Particles/Collisions/CollisionsOverlap.js */ \"./dist/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js\");\n/* harmony import */ var _Options_Classes_Particles_ParticlesOptions_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Options/Classes/Particles/ParticlesOptions.js */ \"./dist/browser/Options/Classes/Particles/ParticlesOptions.js\");\n/* harmony import */ var _Options_Classes_Particles_Shadow_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Options/Classes/Particles/Shadow.js */ \"./dist/browser/Options/Classes/Particles/Shadow.js\");\n/* harmony import */ var _Options_Classes_Particles_Stroke_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./Options/Classes/Particles/Stroke.js */ \"./dist/browser/Options/Classes/Particles/Stroke.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveAttract_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveAttract.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAttract.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_Move_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/Move.js */ \"./dist/browser/Options/Classes/Particles/Move/Move.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveAngle_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveAngle.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveAngle.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveCenter_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveCenter.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveCenter.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveGravity_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveGravity.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveGravity.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_OutModes_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/OutModes.js */ \"./dist/browser/Options/Classes/Particles/Move/OutModes.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_Path_MovePath_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/Path/MovePath.js */ \"./dist/browser/Options/Classes/Particles/Move/Path/MovePath.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_Spin_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/Spin.js */ \"./dist/browser/Options/Classes/Particles/Move/Spin.js\");\n/* harmony import */ var _Options_Classes_Particles_Move_MoveTrail_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./Options/Classes/Particles/Move/MoveTrail.js */ \"./dist/browser/Options/Classes/Particles/Move/MoveTrail.js\");\n/* harmony import */ var _Options_Classes_Particles_Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./Options/Classes/Particles/Number/ParticlesNumber.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesNumber.js\");\n/* harmony import */ var _Options_Classes_Particles_Number_ParticlesNumberLimit_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./Options/Classes/Particles/Number/ParticlesNumberLimit.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js\");\n/* harmony import */ var _Options_Classes_Particles_Number_ParticlesDensity_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./Options/Classes/Particles/Number/ParticlesDensity.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesDensity.js\");\n/* harmony import */ var _Options_Classes_Particles_Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./Options/Classes/Particles/Opacity/Opacity.js */ \"./dist/browser/Options/Classes/Particles/Opacity/Opacity.js\");\n/* harmony import */ var _Options_Classes_Particles_Opacity_OpacityAnimation_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./Options/Classes/Particles/Opacity/OpacityAnimation.js */ \"./dist/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js\");\n/* harmony import */ var _Options_Classes_Particles_Shape_Shape_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./Options/Classes/Particles/Shape/Shape.js */ \"./dist/browser/Options/Classes/Particles/Shape/Shape.js\");\n/* harmony import */ var _Options_Classes_Particles_Size_Size_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./Options/Classes/Particles/Size/Size.js */ \"./dist/browser/Options/Classes/Particles/Size/Size.js\");\n/* harmony import */ var _Options_Classes_Particles_Size_SizeAnimation_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./Options/Classes/Particles/Size/SizeAnimation.js */ \"./dist/browser/Options/Classes/Particles/Size/SizeAnimation.js\");\n/* harmony import */ var _Options_Classes_Particles_ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./Options/Classes/Particles/ZIndex/ZIndex.js */ \"./dist/browser/Options/Classes/Particles/ZIndex/ZIndex.js\");\n/* harmony import */ var _Options_Classes_Responsive_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./Options/Classes/Responsive.js */ \"./dist/browser/Options/Classes/Responsive.js\");\n/* harmony import */ var _Options_Classes_Theme_Theme_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./Options/Classes/Theme/Theme.js */ \"./dist/browser/Options/Classes/Theme/Theme.js\");\n/* harmony import */ var _Options_Classes_Theme_ThemeDefault_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./Options/Classes/Theme/ThemeDefault.js */ \"./dist/browser/Options/Classes/Theme/ThemeDefault.js\");\n/* harmony import */ var _Options_Classes_ValueWithRandom_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./Options/Classes/ValueWithRandom.js */ \"./dist/browser/Options/Classes/ValueWithRandom.js\");\n/* harmony import */ var _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./Utils/CanvasUtils.js */ \"./dist/browser/Utils/CanvasUtils.js\");\n/* harmony import */ var _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./Utils/ColorUtils.js */ \"./dist/browser/Utils/ColorUtils.js\");\n/* harmony import */ var _Utils_HslColorManager_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./Utils/HslColorManager.js */ \"./dist/browser/Utils/HslColorManager.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./Utils/NumberUtils.js */ \"./dist/browser/Utils/NumberUtils.js\");\n/* harmony import */ var _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./Utils/OptionsUtils.js */ \"./dist/browser/Utils/OptionsUtils.js\");\n/* harmony import */ var _Utils_RgbColorManager_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./Utils/RgbColorManager.js */ \"./dist/browser/Utils/RgbColorManager.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/exports.js?");
730
710
 
731
711
  /***/ }),
732
712
 
@@ -736,7 +716,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
736
716
  \*******************************/
737
717
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
738
718
 
739
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.AnimatableColor),\n/* harmony export */ AnimationOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.AnimationOptions),\n/* harmony export */ AnimationValueWithRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.AnimationValueWithRandom),\n/* harmony export */ Background: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Background),\n/* harmony export */ BackgroundMask: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.BackgroundMask),\n/* harmony export */ BackgroundMaskCover: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.BackgroundMaskCover),\n/* harmony export */ Circle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Circle),\n/* harmony export */ ClickEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ClickEvent),\n/* harmony export */ Collisions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Collisions),\n/* harmony export */ CollisionsAbsorb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.CollisionsAbsorb),\n/* harmony export */ CollisionsOverlap: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.CollisionsOverlap),\n/* harmony export */ ColorAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ColorAnimation),\n/* harmony export */ DivEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.DivEvent),\n/* harmony export */ Events: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Events),\n/* harmony export */ ExternalInteractorBase: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ExternalInteractorBase),\n/* harmony export */ FullScreen: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.FullScreen),\n/* harmony export */ HoverEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.HoverEvent),\n/* harmony export */ HslAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.HslAnimation),\n/* harmony export */ HslColorManager: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.HslColorManager),\n/* harmony export */ Interactivity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Interactivity),\n/* harmony export */ ManualParticle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ManualParticle),\n/* harmony export */ Modes: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Modes),\n/* harmony export */ Move: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Move),\n/* harmony export */ MoveAngle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveAngle),\n/* harmony export */ MoveAttract: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveAttract),\n/* harmony export */ MoveCenter: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveCenter),\n/* harmony export */ MoveGravity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveGravity),\n/* harmony export */ MovePath: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MovePath),\n/* harmony export */ MoveTrail: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveTrail),\n/* harmony export */ Opacity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Opacity),\n/* harmony export */ OpacityAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.OpacityAnimation),\n/* harmony export */ Options: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Options),\n/* harmony export */ OptionsColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.OptionsColor),\n/* harmony export */ OutModes: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.OutModes),\n/* harmony export */ Parallax: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Parallax),\n/* harmony export */ ParticlesBounce: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesBounce),\n/* harmony export */ ParticlesBounceFactor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesBounceFactor),\n/* harmony export */ ParticlesDensity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesDensity),\n/* harmony export */ ParticlesInteractorBase: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesInteractorBase),\n/* harmony export */ ParticlesNumber: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesNumber),\n/* harmony export */ ParticlesNumberLimit: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesNumberLimit),\n/* harmony export */ ParticlesOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesOptions),\n/* harmony export */ Point: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Point),\n/* harmony export */ Range: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Range),\n/* harmony export */ RangedAnimationOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.RangedAnimationOptions),\n/* harmony export */ RangedAnimationValueWithRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.RangedAnimationValueWithRandom),\n/* harmony export */ Rectangle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Rectangle),\n/* harmony export */ ResizeEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ResizeEvent),\n/* harmony export */ Responsive: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Responsive),\n/* harmony export */ RgbColorManager: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.RgbColorManager),\n/* harmony export */ Shadow: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Shadow),\n/* harmony export */ Shape: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Shape),\n/* harmony export */ Size: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Size),\n/* harmony export */ SizeAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.SizeAnimation),\n/* harmony export */ Spin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Spin),\n/* harmony export */ Stroke: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Stroke),\n/* harmony export */ Theme: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Theme),\n/* harmony export */ ThemeDefault: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ThemeDefault),\n/* harmony export */ ValueWithRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ValueWithRandom),\n/* harmony export */ Vector: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Vector),\n/* harmony export */ Vector3d: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d),\n/* harmony export */ ZIndex: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ZIndex),\n/* harmony export */ addColorManager: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.addColorManager),\n/* harmony export */ addEasing: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.addEasing),\n/* harmony export */ alterHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.alterHsl),\n/* harmony export */ areBoundsInside: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.arrayRandomIndex),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcPositionOrRandomFromSizeRanged),\n/* harmony export */ calculateBounds: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calculateBounds),\n/* harmony export */ circleBounce: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.circleBounceDataFromParticle),\n/* harmony export */ clamp: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.clamp),\n/* harmony export */ clear: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.clear),\n/* harmony export */ collisionVelocity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.collisionVelocity),\n/* harmony export */ colorMix: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.colorMix),\n/* harmony export */ colorToHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.colorToHsl),\n/* harmony export */ colorToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.colorToRgb),\n/* harmony export */ deepExtend: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.deepExtend),\n/* harmony export */ degToRad: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.degToRad),\n/* harmony export */ divMode: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.divMode),\n/* harmony export */ divModeExecute: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.divModeExecute),\n/* harmony export */ drawEffect: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawEffect),\n/* harmony export */ drawLine: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawLine),\n/* harmony export */ drawParticle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawParticle),\n/* harmony export */ drawParticlePlugin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawParticlePlugin),\n/* harmony export */ drawPlugin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawPlugin),\n/* harmony export */ drawShape: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawShape),\n/* harmony export */ drawShapeAfterDraw: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawShapeAfterDraw),\n/* harmony export */ errorPrefix: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.errorPrefix),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.findItemFromSingleOrMultiple),\n/* harmony export */ generatedAttribute: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.generatedAttribute),\n/* harmony export */ getDistance: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getDistance),\n/* harmony export */ getDistances: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getDistances),\n/* harmony export */ getEasing: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getEasing),\n/* harmony export */ getHslAnimationFromHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getLinkRandomColor),\n/* harmony export */ getLogger: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getLogger),\n/* harmony export */ getParticleBaseVelocity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getParticleDirectionAngle),\n/* harmony export */ getPosition: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getPosition),\n/* harmony export */ getRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRandom),\n/* harmony export */ getRandomRgbColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRandomRgbColor),\n/* harmony export */ getRangeMax: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRangeMax),\n/* harmony export */ getRangeMin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRangeMin),\n/* harmony export */ getRangeValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRangeValue),\n/* harmony export */ getSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getSize),\n/* harmony export */ getStyleFromHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb),\n/* harmony export */ halfRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.halfRandom),\n/* harmony export */ hasMatchMedia: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.hasMatchMedia),\n/* harmony export */ hslToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.hslaToRgba),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.initParticleNumericAnimationValue),\n/* harmony export */ isArray: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isArray),\n/* harmony export */ isBoolean: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isBoolean),\n/* harmony export */ isDivModeEnabled: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isDivModeEnabled),\n/* harmony export */ isFunction: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isFunction),\n/* harmony export */ isInArray: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isInArray),\n/* harmony export */ isNumber: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isNumber),\n/* harmony export */ isObject: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isObject),\n/* harmony export */ isPointInside: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isPointInside),\n/* harmony export */ isSsr: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isSsr),\n/* harmony export */ isString: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isString),\n/* harmony export */ itemFromArray: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.loadFont),\n/* harmony export */ loadOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.loadOptions),\n/* harmony export */ loadParticlesOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.loadParticlesOptions),\n/* harmony export */ millisecondsToSeconds: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds),\n/* harmony export */ mix: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mix),\n/* harmony export */ mouseDownEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseUpEvent),\n/* harmony export */ paintBase: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.paintBase),\n/* harmony export */ paintImage: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.paintImage),\n/* harmony export */ parseAlpha: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.parseAlpha),\n/* harmony export */ percentDenominator: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator),\n/* harmony export */ randomInRange: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.randomInRange),\n/* harmony export */ rangeColorToHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb),\n/* harmony export */ rectBounce: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rectBounce),\n/* harmony export */ resizeEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.resizeEvent),\n/* harmony export */ rgbToHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rgbToHsl),\n/* harmony export */ safeIntersectionObserver: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.safeMutationObserver),\n/* harmony export */ setLogger: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.setLogger),\n/* harmony export */ setRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.setRandom),\n/* harmony export */ setRangeValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.setRangeValue),\n/* harmony export */ singleDivModeExecute: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.singleDivModeExecute),\n/* harmony export */ stringToAlpha: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.stringToRgb),\n/* harmony export */ touchCancelEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchStartEvent),\n/* harmony export */ tsParticles: () => (/* binding */ tsParticles),\n/* harmony export */ updateAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.updateAnimation),\n/* harmony export */ updateColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.updateColor),\n/* harmony export */ updateColorValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.updateColorValue),\n/* harmony export */ visibilityChangeEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.visibilityChangeEvent)\n/* harmony export */ });\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init.js */ \"./dist/browser/init.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _exports_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./exports.js */ \"./dist/browser/exports.js\");\n\n\nconst tsParticles = (0,_init_js__WEBPACK_IMPORTED_MODULE_0__.init)();\nif (!(0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.isSsr)()) {\n window.tsParticles = tsParticles;\n}\n\n\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/index.js?");
719
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.AnimatableColor),\n/* harmony export */ AnimationOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.AnimationOptions),\n/* harmony export */ AnimationValueWithRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.AnimationValueWithRandom),\n/* harmony export */ Background: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Background),\n/* harmony export */ BackgroundMask: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.BackgroundMask),\n/* harmony export */ BackgroundMaskCover: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.BackgroundMaskCover),\n/* harmony export */ BaseRange: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.BaseRange),\n/* harmony export */ Circle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Circle),\n/* harmony export */ ClickEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ClickEvent),\n/* harmony export */ Collisions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Collisions),\n/* harmony export */ CollisionsAbsorb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.CollisionsAbsorb),\n/* harmony export */ CollisionsOverlap: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.CollisionsOverlap),\n/* harmony export */ ColorAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ColorAnimation),\n/* harmony export */ DivEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.DivEvent),\n/* harmony export */ Events: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Events),\n/* harmony export */ ExternalInteractorBase: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ExternalInteractorBase),\n/* harmony export */ FullScreen: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.FullScreen),\n/* harmony export */ HoverEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.HoverEvent),\n/* harmony export */ HslAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.HslAnimation),\n/* harmony export */ HslColorManager: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.HslColorManager),\n/* harmony export */ Interactivity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Interactivity),\n/* harmony export */ ManualParticle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ManualParticle),\n/* harmony export */ Modes: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Modes),\n/* harmony export */ Move: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Move),\n/* harmony export */ MoveAngle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveAngle),\n/* harmony export */ MoveAttract: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveAttract),\n/* harmony export */ MoveCenter: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveCenter),\n/* harmony export */ MoveGravity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveGravity),\n/* harmony export */ MovePath: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MovePath),\n/* harmony export */ MoveTrail: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.MoveTrail),\n/* harmony export */ Opacity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Opacity),\n/* harmony export */ OpacityAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.OpacityAnimation),\n/* harmony export */ Options: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Options),\n/* harmony export */ OptionsColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.OptionsColor),\n/* harmony export */ OutModes: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.OutModes),\n/* harmony export */ Parallax: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Parallax),\n/* harmony export */ ParticlesBounce: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesBounce),\n/* harmony export */ ParticlesBounceFactor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesBounceFactor),\n/* harmony export */ ParticlesDensity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesDensity),\n/* harmony export */ ParticlesInteractorBase: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesInteractorBase),\n/* harmony export */ ParticlesNumber: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesNumber),\n/* harmony export */ ParticlesNumberLimit: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesNumberLimit),\n/* harmony export */ ParticlesOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesOptions),\n/* harmony export */ Point: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Point),\n/* harmony export */ RangedAnimationOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.RangedAnimationOptions),\n/* harmony export */ RangedAnimationValueWithRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.RangedAnimationValueWithRandom),\n/* harmony export */ Rectangle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Rectangle),\n/* harmony export */ ResizeEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ResizeEvent),\n/* harmony export */ Responsive: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Responsive),\n/* harmony export */ RgbColorManager: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.RgbColorManager),\n/* harmony export */ Shadow: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Shadow),\n/* harmony export */ Shape: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Shape),\n/* harmony export */ Size: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Size),\n/* harmony export */ SizeAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.SizeAnimation),\n/* harmony export */ Spin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Spin),\n/* harmony export */ Stroke: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Stroke),\n/* harmony export */ Theme: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Theme),\n/* harmony export */ ThemeDefault: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ThemeDefault),\n/* harmony export */ ValueWithRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ValueWithRandom),\n/* harmony export */ Vector: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Vector),\n/* harmony export */ Vector3d: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d),\n/* harmony export */ ZIndex: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.ZIndex),\n/* harmony export */ addColorManager: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.addColorManager),\n/* harmony export */ addEasing: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.addEasing),\n/* harmony export */ alterHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.alterHsl),\n/* harmony export */ areBoundsInside: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.arrayRandomIndex),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calcPositionOrRandomFromSizeRanged),\n/* harmony export */ calculateBounds: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.calculateBounds),\n/* harmony export */ circleBounce: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.circleBounceDataFromParticle),\n/* harmony export */ clamp: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.clamp),\n/* harmony export */ clear: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.clear),\n/* harmony export */ collisionVelocity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.collisionVelocity),\n/* harmony export */ colorMix: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.colorMix),\n/* harmony export */ colorToHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.colorToHsl),\n/* harmony export */ colorToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.colorToRgb),\n/* harmony export */ deepExtend: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.deepExtend),\n/* harmony export */ degToRad: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.degToRad),\n/* harmony export */ divMode: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.divMode),\n/* harmony export */ divModeExecute: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.divModeExecute),\n/* harmony export */ drawEffect: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawEffect),\n/* harmony export */ drawLine: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawLine),\n/* harmony export */ drawParticle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawParticle),\n/* harmony export */ drawParticlePlugin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawParticlePlugin),\n/* harmony export */ drawPlugin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawPlugin),\n/* harmony export */ drawShape: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawShape),\n/* harmony export */ drawShapeAfterDraw: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.drawShapeAfterDraw),\n/* harmony export */ errorPrefix: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.errorPrefix),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.findItemFromSingleOrMultiple),\n/* harmony export */ generatedAttribute: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.generatedAttribute),\n/* harmony export */ getDistance: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getDistance),\n/* harmony export */ getDistances: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getDistances),\n/* harmony export */ getEasing: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getEasing),\n/* harmony export */ getHslAnimationFromHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getLinkRandomColor),\n/* harmony export */ getLogger: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getLogger),\n/* harmony export */ getParticleBaseVelocity: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getParticleDirectionAngle),\n/* harmony export */ getPosition: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getPosition),\n/* harmony export */ getRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRandom),\n/* harmony export */ getRandomRgbColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRandomRgbColor),\n/* harmony export */ getRangeMax: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRangeMax),\n/* harmony export */ getRangeMin: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRangeMin),\n/* harmony export */ getRangeValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getRangeValue),\n/* harmony export */ getSize: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getSize),\n/* harmony export */ getStyleFromHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb),\n/* harmony export */ halfRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.halfRandom),\n/* harmony export */ hasMatchMedia: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.hasMatchMedia),\n/* harmony export */ hslToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.hslaToRgba),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.initParticleNumericAnimationValue),\n/* harmony export */ isArray: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isArray),\n/* harmony export */ isBoolean: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isBoolean),\n/* harmony export */ isDivModeEnabled: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isDivModeEnabled),\n/* harmony export */ isFunction: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isFunction),\n/* harmony export */ isInArray: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isInArray),\n/* harmony export */ isNumber: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isNumber),\n/* harmony export */ isObject: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isObject),\n/* harmony export */ isPointInside: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isPointInside),\n/* harmony export */ isSsr: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isSsr),\n/* harmony export */ isString: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.isString),\n/* harmony export */ itemFromArray: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.loadFont),\n/* harmony export */ loadOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.loadOptions),\n/* harmony export */ loadParticlesOptions: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.loadParticlesOptions),\n/* harmony export */ millisecondsToSeconds: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds),\n/* harmony export */ mix: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mix),\n/* harmony export */ mouseDownEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.mouseUpEvent),\n/* harmony export */ paintBase: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.paintBase),\n/* harmony export */ paintImage: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.paintImage),\n/* harmony export */ parseAlpha: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.parseAlpha),\n/* harmony export */ percentDenominator: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.percentDenominator),\n/* harmony export */ randomInRange: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.randomInRange),\n/* harmony export */ rangeColorToHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb),\n/* harmony export */ rectBounce: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rectBounce),\n/* harmony export */ resizeEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.resizeEvent),\n/* harmony export */ rgbToHsl: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.rgbToHsl),\n/* harmony export */ safeIntersectionObserver: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.safeMutationObserver),\n/* harmony export */ setLogger: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.setLogger),\n/* harmony export */ setRandom: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.setRandom),\n/* harmony export */ setRangeValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.setRangeValue),\n/* harmony export */ singleDivModeExecute: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.singleDivModeExecute),\n/* harmony export */ stringToAlpha: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.stringToRgb),\n/* harmony export */ touchCancelEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.touchStartEvent),\n/* harmony export */ tsParticles: () => (/* binding */ tsParticles),\n/* harmony export */ updateAnimation: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.updateAnimation),\n/* harmony export */ updateColor: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.updateColor),\n/* harmony export */ updateColorValue: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.updateColorValue),\n/* harmony export */ visibilityChangeEvent: () => (/* reexport safe */ _exports_js__WEBPACK_IMPORTED_MODULE_2__.visibilityChangeEvent)\n/* harmony export */ });\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init.js */ \"./dist/browser/init.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _exports_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./exports.js */ \"./dist/browser/exports.js\");\n\n\nconst tsParticles = (0,_init_js__WEBPACK_IMPORTED_MODULE_0__.init)();\nif (!(0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.isSsr)()) {\n window.tsParticles = tsParticles;\n}\n\n\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/index.js?");
740
720
 
741
721
  /***/ }),
742
722