@tsparticles/engine 4.0.0-beta.5 → 4.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/67.min.js +1 -0
- package/README.md +53 -944
- package/browser/Core/Engine.js +1 -1
- package/browser/Options/Classes/Options.js +1 -14
- package/browser/Options/Classes/Particles/ParticlesOptions.js +31 -0
- package/browser/Utils/Utils.js +16 -10
- package/cjs/Core/Engine.js +1 -1
- package/cjs/Options/Classes/Options.js +1 -14
- package/cjs/Options/Classes/Particles/ParticlesOptions.js +31 -0
- package/cjs/Utils/Utils.js +16 -10
- package/dist_browser_Core_Container_js.js +1 -1
- package/esm/Core/Engine.js +1 -1
- package/esm/Options/Classes/Options.js +1 -14
- package/esm/Options/Classes/Particles/ParticlesOptions.js +31 -0
- package/esm/Utils/Utils.js +16 -10
- package/package.json +1 -1
- package/report.html +1 -1
- package/tsparticles.engine.js +5 -5
- package/tsparticles.engine.min.js +2 -2
- package/types/Options/Classes/Particles/ParticlesOptions.d.ts +2 -0
- package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +1 -0
- package/155.min.js +0 -1
package/tsparticles.engine.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* tsParticles Engine v4.0.0-beta.
|
|
2
|
+
* tsParticles Engine v4.0.0-beta.8
|
|
3
3
|
* Author: Matteo Bruni
|
|
4
4
|
* MIT license: https://opensource.org/licenses/MIT
|
|
5
5
|
* Website: https://particles.js.org/
|
|
@@ -36,7 +36,7 @@ return /******/ (() => { // webpackBootstrap
|
|
|
36
36
|
\*************************************/
|
|
37
37
|
(__unused_webpack___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_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.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 _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"./dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Utils_PluginManager_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Utils/PluginManager.js */ \"./dist/browser/Core/Utils/PluginManager.js\");\n/* harmony import */ var _Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Utils/LogUtils.js */ \"./dist/browser/Utils/LogUtils.js\");\n/* harmony import */ var _Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/MathUtils.js */ \"./dist/browser/Utils/MathUtils.js\");\n\n\n\n\n\n\nconst fullPercent = \"100%\";\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__.getLogger)().error(`${response.status.toString()} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = (domContainer)=>{\n const documentSafe = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)();\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag) {\n canvasEl = domContainer;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] ??= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n const existingCanvases = domContainer.getElementsByTagName(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag), foundCanvas = existingCanvases[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasFirstIndex];\n if (foundCanvas) {\n canvasEl = foundCanvas;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n canvasEl = documentSafe.createElement(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n canvasEl.style.width ||= fullPercent;\n canvasEl.style.height ||= fullPercent;\n return canvasEl;\n}, getDomContainer = (id, source)=>{\n const documentSafe = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)();\n let domContainer = source ?? documentSafe.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = documentSafe.createElement(\"canvas\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n documentSafe.body.append(domContainer);\n return domContainer;\n};\nclass Engine {\n pluginManager = new _Utils_PluginManager_js__WEBPACK_IMPORTED_MODULE_3__.PluginManager(this);\n _domArray = [];\n _eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__.EventDispatcher();\n _initialized = false;\n get items() {\n return this._domArray;\n }\n get version() {\n return \"4.0.0-beta.
|
|
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_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"./dist/browser/Core/Utils/Constants.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 _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"./dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Utils_PluginManager_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Utils/PluginManager.js */ \"./dist/browser/Core/Utils/PluginManager.js\");\n/* harmony import */ var _Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Utils/LogUtils.js */ \"./dist/browser/Utils/LogUtils.js\");\n/* harmony import */ var _Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/MathUtils.js */ \"./dist/browser/Utils/MathUtils.js\");\n\n\n\n\n\n\nconst fullPercent = \"100%\";\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__.getLogger)().error(`${response.status.toString()} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = (domContainer)=>{\n const documentSafe = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)();\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag) {\n canvasEl = domContainer;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] ??= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n const existingCanvases = domContainer.getElementsByTagName(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag), foundCanvas = existingCanvases[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasFirstIndex];\n if (foundCanvas) {\n canvasEl = foundCanvas;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n canvasEl = documentSafe.createElement(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n canvasEl.style.width ||= fullPercent;\n canvasEl.style.height ||= fullPercent;\n return canvasEl;\n}, getDomContainer = (id, source)=>{\n const documentSafe = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)();\n let domContainer = source ?? documentSafe.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = documentSafe.createElement(\"canvas\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n documentSafe.body.append(domContainer);\n return domContainer;\n};\nclass Engine {\n pluginManager = new _Utils_PluginManager_js__WEBPACK_IMPORTED_MODULE_3__.PluginManager(this);\n _domArray = [];\n _eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__.EventDispatcher();\n _initialized = false;\n get items() {\n return this._domArray;\n }\n get version() {\n return \"4.0.0-beta.8\";\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n checkVersion(pluginVersion) {\n if (this.version === pluginVersion) {\n return;\n }\n throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${pluginVersion}`);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n async init() {\n if (this._initialized) {\n return;\n }\n await this.pluginManager.init();\n this._initialized = true;\n }\n item(index) {\n const { items } = this, item = items[index];\n if (item?.destroyed) {\n items.splice(index, _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.removeDeleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n await this.init();\n const { Container } = await __webpack_require__.e(/*! import() */ \"dist_browser_Core_Container_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Container.js */ \"./dist/browser/Core/Container.js\")), id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_5__.getRandom)() * _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadRandomFactor).toString()}`, { index, url } = params, options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options, currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(options, index), { items } = this, oldIndex = items.findIndex((v)=>v.id.description === id), newItem = new Container({\n dispatchCallback: (eventType, args)=>{\n this.dispatchEvent(eventType, args);\n },\n id,\n onDestroy: (remove)=>{\n if (!remove) {\n return;\n }\n const mainArr = this.items, idx = mainArr.indexOf(newItem);\n if (idx >= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.removeMinIndex) {\n mainArr.splice(idx, _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.removeDeleteCount);\n }\n },\n pluginManager: this.pluginManager,\n sourceOptions: currentOptions\n });\n if (oldIndex >= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadMinIndex) {\n const old = this.item(oldIndex), deleteCount = old ? _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.one : _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n } else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element), canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map((t)=>t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Core/Engine.js?\n}");
|
|
40
40
|
|
|
41
41
|
/***/ },
|
|
42
42
|
|
|
@@ -306,7 +306,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
306
306
|
\*************************************************/
|
|
307
307
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
308
308
|
|
|
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_0__ = __webpack_require__(/*! ../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Background_Background_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Background/Background.js */ \"./dist/browser/Options/Classes/Background/Background.js\");\n/* harmony import */ var _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FullScreen/FullScreen.js */ \"./dist/browser/Options/Classes/FullScreen/FullScreen.js\");\n/* harmony import */ var _ResizeEvent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ResizeEvent.js */ \"./dist/browser/Options/Classes/ResizeEvent.js\");\n/* harmony import */ var _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Utils/OptionsUtils.js */ \"./dist/browser/Utils/OptionsUtils.js\");\n/* harmony import */ var _Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Utils/MathUtils.js */ \"./dist/browser/Utils/MathUtils.js\");\n\n\n\n\n\n\n\nclass Options {\n autoPlay;\n background;\n clear;\n defaultThemes;\n delay;\n detectRetina;\n duration;\n fpsLimit;\n fullScreen;\n hdr;\n key;\n name;\n palette;\n particles;\n pauseOnBlur;\n pauseOnOutsideViewport;\n preset;\n resize;\n smooth;\n style;\n zLayers;\n _container;\n _pluginManager;\n constructor(pluginManager, container){\n this._pluginManager = pluginManager;\n this._container = container;\n this.autoPlay = true;\n this.background = new _Background_Background_js__WEBPACK_IMPORTED_MODULE_2__.Background();\n this.clear = true;\n this.defaultThemes = {};\n this.delay = 0;\n this.fullScreen = new _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_3__.FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.hdr = true;\n this.particles = (0,_Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_5__.loadParticlesOptions)(this._pluginManager, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.resize = new _ResizeEvent_js__WEBPACK_IMPORTED_MODULE_4__.ResizeEvent();\n this.smooth = false;\n this.style = {};\n this.zLayers = 100;\n }\n load(data) {\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_1__.isNull)(data)) {\n return;\n }\n if (data.preset !== undefined) {\n this.preset = data.preset;\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(this.preset, (preset)=>{\n this._importPreset(preset);\n });\n }\n if (data.palette !== undefined) {\n this.palette = data.palette;\n this._importPalette(this.palette);\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_MathUtils_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_MathUtils_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.hdr !== undefined) {\n this.hdr = data.hdr;\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_1__.isBoolean)(fullScreen)) {\n this.fullScreen.enable = fullScreen;\n } else {\n this.fullScreen.load(fullScreen);\n }\n this.particles.load(data.particles);\n this.resize.load(data.resize);\n this.style = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.deepExtend)(this.style, data.style);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n this._pluginManager.plugins.forEach((plugin)=>{\n plugin.loadOptions(this._container, this, data);\n });\n }\n _importPalette = (palette)=>{\n const paletteData = this._pluginManager.getPalette(palette);\n if (!paletteData) {\n return;\n }\n this.load({\n background: {\n color: paletteData.background\n },\n blend: {\n enable: true,\n mode: paletteData.blendMode\n },\n particles: {\n
|
|
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_0__ = __webpack_require__(/*! ../../Utils/Utils.js */ \"./dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Background_Background_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Background/Background.js */ \"./dist/browser/Options/Classes/Background/Background.js\");\n/* harmony import */ var _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FullScreen/FullScreen.js */ \"./dist/browser/Options/Classes/FullScreen/FullScreen.js\");\n/* harmony import */ var _ResizeEvent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ResizeEvent.js */ \"./dist/browser/Options/Classes/ResizeEvent.js\");\n/* harmony import */ var _Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../Utils/OptionsUtils.js */ \"./dist/browser/Utils/OptionsUtils.js\");\n/* harmony import */ var _Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Utils/MathUtils.js */ \"./dist/browser/Utils/MathUtils.js\");\n\n\n\n\n\n\n\nclass Options {\n autoPlay;\n background;\n clear;\n defaultThemes;\n delay;\n detectRetina;\n duration;\n fpsLimit;\n fullScreen;\n hdr;\n key;\n name;\n palette;\n particles;\n pauseOnBlur;\n pauseOnOutsideViewport;\n preset;\n resize;\n smooth;\n style;\n zLayers;\n _container;\n _pluginManager;\n constructor(pluginManager, container){\n this._pluginManager = pluginManager;\n this._container = container;\n this.autoPlay = true;\n this.background = new _Background_Background_js__WEBPACK_IMPORTED_MODULE_2__.Background();\n this.clear = true;\n this.defaultThemes = {};\n this.delay = 0;\n this.fullScreen = new _FullScreen_FullScreen_js__WEBPACK_IMPORTED_MODULE_3__.FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.hdr = true;\n this.particles = (0,_Utils_OptionsUtils_js__WEBPACK_IMPORTED_MODULE_5__.loadParticlesOptions)(this._pluginManager, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.resize = new _ResizeEvent_js__WEBPACK_IMPORTED_MODULE_4__.ResizeEvent();\n this.smooth = false;\n this.style = {};\n this.zLayers = 100;\n }\n load(data) {\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_1__.isNull)(data)) {\n return;\n }\n if (data.preset !== undefined) {\n this.preset = data.preset;\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(this.preset, (preset)=>{\n this._importPreset(preset);\n });\n }\n if (data.palette !== undefined) {\n this.palette = data.palette;\n this._importPalette(this.palette);\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_MathUtils_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_MathUtils_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.hdr !== undefined) {\n this.hdr = data.hdr;\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_1__.isBoolean)(fullScreen)) {\n this.fullScreen.enable = fullScreen;\n } else {\n this.fullScreen.load(fullScreen);\n }\n this.particles.load(data.particles);\n this.resize.load(data.resize);\n this.style = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.deepExtend)(this.style, data.style);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n this._pluginManager.plugins.forEach((plugin)=>{\n plugin.loadOptions(this._container, this, data);\n });\n }\n _importPalette = (palette)=>{\n const paletteData = this._pluginManager.getPalette(palette);\n if (!paletteData) {\n return;\n }\n this.load({\n background: {\n color: paletteData.background\n },\n blend: {\n enable: true,\n mode: paletteData.blendMode\n },\n particles: {\n palette\n }\n });\n };\n _importPreset = (preset)=>{\n this.load(this._pluginManager.getPreset(preset));\n };\n}\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/Options.js?\n}");
|
|
310
310
|
|
|
311
311
|
/***/ },
|
|
312
312
|
|
|
@@ -486,7 +486,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
486
486
|
\********************************************************************/
|
|
487
487
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
488
488
|
|
|
489
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ParticlesOptions: () => (/* binding */ ParticlesOptions)\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/* harmony import */ var _Effect_Effect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Effect/Effect.js */ \"./dist/browser/Options/Classes/Particles/Effect/Effect.js\");\n/* harmony import */ var _Fill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Fill.js */ \"./dist/browser/Options/Classes/Particles/Fill.js\");\n/* harmony import */ var _Move_Move_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Move/Move.js */ \"./dist/browser/Options/Classes/Particles/Move/Move.js\");\n/* harmony import */ var _Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Opacity/Opacity.js */ \"./dist/browser/Options/Classes/Particles/Opacity/Opacity.js\");\n/* harmony import */ var _Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Bounce/ParticlesBounce.js */ \"./dist/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js\");\n/* harmony import */ var _Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Number/ParticlesNumber.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesNumber.js\");\n/* harmony import */ var _Shape_Shape_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Shape/Shape.js */ \"./dist/browser/Options/Classes/Particles/Shape/Shape.js\");\n/* harmony import */ var _Size_Size_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Size/Size.js */ \"./dist/browser/Options/Classes/Particles/Size/Size.js\");\n/* harmony import */ var _Stroke_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Stroke.js */ \"./dist/browser/Options/Classes/Particles/Stroke.js\");\n/* harmony import */ var _ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ZIndex/ZIndex.js */ \"./dist/browser/Options/Classes/Particles/ZIndex/ZIndex.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nclass ParticlesOptions {\n bounce;\n effect;\n fill;\n groups;\n move;\n number;\n opacity;\n reduceDuplicates;\n shape;\n size;\n stroke;\n zIndex;\n _container;\n _pluginManager;\n constructor(pluginManager, container){\n this._pluginManager = pluginManager;\n this._container = container;\n this.bounce = new _Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_5__.ParticlesBounce();\n this.effect = new _Effect_Effect_js__WEBPACK_IMPORTED_MODULE_1__.Effect();\n this.fill = new _Fill_js__WEBPACK_IMPORTED_MODULE_2__.Fill();\n this.groups = {};\n this.move = new _Move_Move_js__WEBPACK_IMPORTED_MODULE_3__.Move();\n this.number = new _Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_6__.ParticlesNumber();\n this.opacity = new _Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_4__.Opacity();\n this.reduceDuplicates = false;\n this.shape = new _Shape_Shape_js__WEBPACK_IMPORTED_MODULE_7__.Shape();\n this.size = new _Size_Size_js__WEBPACK_IMPORTED_MODULE_8__.Size();\n this.stroke = new _Stroke_js__WEBPACK_IMPORTED_MODULE_9__.Stroke();\n this.zIndex = new _ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_10__.ZIndex();\n }\n load(data) {\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_11__.isNull)(data)) {\n return;\n }\n if (data.groups !== undefined) {\n for (const group of Object.keys(data.groups)){\n if (!(group in data.groups)) {\n continue;\n }\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.deepExtend)(this.groups[group] ?? {}, item);\n }\n }\n }\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.bounce.load(data.bounce);\n this.effect.load(data.effect);\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.zIndex.load(data.zIndex);\n const fillToLoad = data.fill;\n if (fillToLoad) {\n this.fill = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(fillToLoad, (t)=>{\n const tmp = new _Fill_js__WEBPACK_IMPORTED_MODULE_2__.Fill();\n tmp.load(t);\n return tmp;\n });\n }\n const strokeToLoad = data.stroke;\n if (strokeToLoad) {\n this.stroke = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(strokeToLoad, (t)=>{\n const tmp = new _Stroke_js__WEBPACK_IMPORTED_MODULE_9__.Stroke();\n tmp.load(t);\n return tmp;\n });\n }\n if (this._container) {\n for (const plugin of this._pluginManager.plugins){\n if (plugin.loadParticlesOptions) {\n plugin.loadParticlesOptions(this._container, this, data);\n }\n }\n const updaters = this._pluginManager.updaters.get(this._container);\n if (updaters) {\n for (const updater of updaters){\n if (updater.loadOptions) {\n updater.loadOptions(this, data);\n }\n }\n }\n }\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/Particles/ParticlesOptions.js?\n}");
|
|
489
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ParticlesOptions: () => (/* binding */ ParticlesOptions)\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/* harmony import */ var _Effect_Effect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Effect/Effect.js */ \"./dist/browser/Options/Classes/Particles/Effect/Effect.js\");\n/* harmony import */ var _Fill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Fill.js */ \"./dist/browser/Options/Classes/Particles/Fill.js\");\n/* harmony import */ var _Move_Move_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Move/Move.js */ \"./dist/browser/Options/Classes/Particles/Move/Move.js\");\n/* harmony import */ var _Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Opacity/Opacity.js */ \"./dist/browser/Options/Classes/Particles/Opacity/Opacity.js\");\n/* harmony import */ var _Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Bounce/ParticlesBounce.js */ \"./dist/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js\");\n/* harmony import */ var _Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Number/ParticlesNumber.js */ \"./dist/browser/Options/Classes/Particles/Number/ParticlesNumber.js\");\n/* harmony import */ var _Shape_Shape_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Shape/Shape.js */ \"./dist/browser/Options/Classes/Particles/Shape/Shape.js\");\n/* harmony import */ var _Size_Size_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Size/Size.js */ \"./dist/browser/Options/Classes/Particles/Size/Size.js\");\n/* harmony import */ var _Stroke_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Stroke.js */ \"./dist/browser/Options/Classes/Particles/Stroke.js\");\n/* harmony import */ var _ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ZIndex/ZIndex.js */ \"./dist/browser/Options/Classes/Particles/ZIndex/ZIndex.js\");\n/* harmony import */ var _Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../Utils/TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nclass ParticlesOptions {\n bounce;\n effect;\n fill;\n groups;\n move;\n number;\n opacity;\n palette;\n reduceDuplicates;\n shape;\n size;\n stroke;\n zIndex;\n _container;\n _pluginManager;\n constructor(pluginManager, container){\n this._pluginManager = pluginManager;\n this._container = container;\n this.bounce = new _Bounce_ParticlesBounce_js__WEBPACK_IMPORTED_MODULE_5__.ParticlesBounce();\n this.effect = new _Effect_Effect_js__WEBPACK_IMPORTED_MODULE_1__.Effect();\n this.fill = new _Fill_js__WEBPACK_IMPORTED_MODULE_2__.Fill();\n this.groups = {};\n this.move = new _Move_Move_js__WEBPACK_IMPORTED_MODULE_3__.Move();\n this.number = new _Number_ParticlesNumber_js__WEBPACK_IMPORTED_MODULE_6__.ParticlesNumber();\n this.opacity = new _Opacity_Opacity_js__WEBPACK_IMPORTED_MODULE_4__.Opacity();\n this.reduceDuplicates = false;\n this.shape = new _Shape_Shape_js__WEBPACK_IMPORTED_MODULE_7__.Shape();\n this.size = new _Size_Size_js__WEBPACK_IMPORTED_MODULE_8__.Size();\n this.stroke = new _Stroke_js__WEBPACK_IMPORTED_MODULE_9__.Stroke();\n this.zIndex = new _ZIndex_ZIndex_js__WEBPACK_IMPORTED_MODULE_10__.ZIndex();\n }\n load(data) {\n if ((0,_Utils_TypeUtils_js__WEBPACK_IMPORTED_MODULE_11__.isNull)(data)) {\n return;\n }\n if (data.palette) {\n this.palette = data.palette;\n this._importPalette(this.palette);\n }\n if (data.groups !== undefined) {\n for (const group of Object.keys(data.groups)){\n if (!(group in data.groups)) {\n continue;\n }\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.deepExtend)(this.groups[group] ?? {}, item);\n }\n }\n }\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.bounce.load(data.bounce);\n this.effect.load(data.effect);\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.zIndex.load(data.zIndex);\n const fillToLoad = data.fill;\n if (fillToLoad) {\n this.fill = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(fillToLoad, (t)=>{\n const tmp = new _Fill_js__WEBPACK_IMPORTED_MODULE_2__.Fill();\n tmp.load(t);\n return tmp;\n });\n }\n const strokeToLoad = data.stroke;\n if (strokeToLoad) {\n this.stroke = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(strokeToLoad, (t)=>{\n const tmp = new _Stroke_js__WEBPACK_IMPORTED_MODULE_9__.Stroke();\n tmp.load(t);\n return tmp;\n });\n }\n if (this._container) {\n for (const plugin of this._pluginManager.plugins){\n if (plugin.loadParticlesOptions) {\n plugin.loadParticlesOptions(this._container, this, data);\n }\n }\n const updaters = this._pluginManager.updaters.get(this._container);\n if (updaters) {\n for (const updater of updaters){\n if (updater.loadOptions) {\n updater.loadOptions(this, data);\n }\n }\n }\n }\n }\n _importPalette = (palette)=>{\n const paletteData = this._pluginManager.getPalette(palette);\n if (!paletteData) {\n return;\n }\n this.load({\n fill: {\n color: paletteData.fill ? {\n value: paletteData.colors\n } : undefined,\n enable: paletteData.fill\n },\n stroke: paletteData.fill ? undefined : paletteData.colors.map((color)=>({\n color: {\n value: color\n },\n width: 1\n })),\n blend: {\n enable: true,\n mode: paletteData.blendMode\n }\n });\n };\n}\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Options/Classes/Particles/ParticlesOptions.js?\n}");
|
|
490
490
|
|
|
491
491
|
/***/ },
|
|
492
492
|
|
|
@@ -636,7 +636,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
636
636
|
\*************************************/
|
|
637
637
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
638
638
|
|
|
639
|
-
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 */ cloneStyle: () => (/* binding */ cloneStyle),\n/* harmony export */ deepExtend: () => (/* binding */ deepExtend),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* binding */ executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* binding */ findItemFromSingleOrMultiple),\n/* harmony export */ getFullScreenStyle: () => (/* binding */ getFullScreenStyle),\n/* harmony export */ getItemMapFromInitializer: () => (/* binding */ getItemMapFromInitializer),\n/* harmony export */ getItemsFromInitializer: () => (/* binding */ getItemsFromInitializer),\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 */ isInArray: () => (/* binding */ isInArray),\n/* harmony export */ isPointInside: () => (/* binding */ isPointInside),\n/* harmony export */ itemFromArray: () => (/* binding */ itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* binding */ itemFromSingleOrMultiple),\n/* harmony export */ manageListener: () => (/* binding */ manageListener),\n/* harmony export */ memoize: () => (/* binding */ memoize),\n/* harmony export */ safeDocument: () => (/* binding */ safeDocument),\n/* harmony export */ safeIntersectionObserver: () => (/* binding */ safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* binding */ safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* binding */ safeMutationObserver),\n/* harmony export */ updateAnimation: () => (/* binding */ updateAnimation)\n/* harmony export */ });\n/* harmony import */ var _MathUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MathUtils.js */ \"./dist/browser/Utils/MathUtils.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 _TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/Modes/AnimationMode.js */ \"./dist/browser/Enums/Modes/AnimationMode.js\");\n/* harmony import */ var _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/AnimationStatus.js */ \"./dist/browser/Enums/AnimationStatus.js\");\n/* harmony import */ var _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Enums/Types/DestroyType.js */ \"./dist/browser/Enums/Types/DestroyType.js\");\n/* harmony import */ var _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Enums/Directions/OutModeDirection.js */ \"./dist/browser/Enums/Directions/OutModeDirection.js\");\n/* harmony import */ var _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Enums/Modes/PixelMode.js */ \"./dist/browser/Enums/Modes/PixelMode.js\");\n/* harmony import */ var _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Enums/Types/StartValueType.js */ \"./dist/browser/Enums/Types/StartValueType.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"./dist/browser/Core/Utils/Vectors.js\");\n\n\n\n\n\n\n\n\n\n\nconst minRadius = 0, minMemoizeSize = 0;\nfunction memoize(fn, options) {\n const cache = new Map(), maxSize = options?.maxSize, ttlMs = options?.ttlMs, keyFn = options?.keyFn, stableStringify = (obj, seen = new WeakSet())=>{\n if (obj === null) {\n return \"null\";\n }\n const t = typeof obj;\n if (t === \"undefined\") {\n return \"undefined\";\n }\n if (t === \"number\" || t === \"boolean\" || t === \"string\") {\n return JSON.stringify(obj);\n }\n if (t === \"function\") {\n try {\n const fn = obj;\n return fn.toString();\n } catch {\n return '\"[Function]\"';\n }\n }\n if (t === \"symbol\") {\n try {\n return obj.toString();\n } catch {\n return '\"[Symbol]\"';\n }\n }\n if (Array.isArray(obj)) {\n return `[${obj.map((i)=>stableStringify(i, seen)).join(\",\")}]`;\n }\n if (seen.has(obj)) {\n return '\"[Circular]\"';\n }\n seen.add(obj);\n const keys = Object.keys(obj).sort();\n return `{${keys.map((k)=>`${JSON.stringify(k)}:${stableStringify(obj[k], seen)}`).join(\",\")}}`;\n }, defaultKeyer = (args)=>stableStringify(args), makeKey = (args)=>keyFn ? keyFn(args) : defaultKeyer(args), ensureBounds = ()=>{\n if (typeof maxSize === \"number\" && maxSize >= minMemoizeSize) {\n while(cache.size > maxSize){\n const firstKey = cache.keys().next().value;\n if (firstKey === undefined) break;\n cache.delete(firstKey);\n }\n }\n };\n return (...args)=>{\n const key = makeKey(args), now = Date.now(), entry = cache.get(key);\n if (entry !== undefined) {\n if (ttlMs && now - entry.ts > ttlMs) {\n cache.delete(key);\n } else {\n cache.delete(key);\n cache.set(key, {\n value: entry.value,\n ts: entry.ts\n });\n return entry.value;\n }\n }\n const result = fn(...args);\n cache.set(key, {\n value: result,\n ts: now\n });\n ensureBounds();\n return result;\n };\n}\nfunction hasMatchMedia() {\n return typeof matchMedia !== \"undefined\";\n}\nfunction safeDocument() {\n return globalThis.document;\n}\nfunction safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nfunction safeIntersectionObserver(callback) {\n if (typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nfunction safeMutationObserver(callback) {\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nfunction isInArray(value, array) {\n return value === array || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(array) && array.includes(value);\n}\nfunction arrayRandomIndex(array) {\n return Math.floor((0,_MathUtils_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 return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nfunction areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.bottom) {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.left)) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.right)) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.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 ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isNull)(source)) {\n continue;\n }\n if (!(0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(source)) {\n destination = source;\n continue;\n }\n if (Array.isArray(source)) {\n if (!Array.isArray(destination)) {\n destination = [];\n }\n } else if (!(0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(destination) || Array.isArray(destination)) {\n destination = {};\n }\n const sourceKeys = Object.keys(source), dangerousKeys = new Set([\n \"__proto__\",\n \"constructor\",\n \"prototype\"\n ]), hasNested = sourceKeys.some((k)=>{\n const v = source[k];\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(v) || Array.isArray(v);\n });\n if (!hasNested) {\n const sourceDict = source, destDict = destination;\n for (const key of sourceKeys){\n if (dangerousKeys.has(key)) {\n continue;\n }\n if (key in sourceDict) {\n const v = sourceDict[key];\n if (v !== undefined) {\n destDict[key] = v;\n }\n }\n }\n continue;\n }\n for (const key of sourceKeys){\n if (dangerousKeys.has(key)) {\n continue;\n }\n const sourceDict = source, destDict = destination, value = sourceDict[key];\n destDict[key] = Array.isArray(value) ? value.map((v)=>deepExtend(undefined, v)) : deepExtend(destDict[key], value);\n }\n }\n return destination;\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_9__.Vector.create((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.horizontal.value), (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.vertical.value))\n };\n}\nfunction circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [\n p1.position,\n p2.position\n ], { dx: xDist, dy: yDist } = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos2, pos1), minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u1, u2, m1, m2), v2 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), 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 executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.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_2__.isArray)(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nfunction findItemFromSingleOrMultiple(obj, callback) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.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, animationOptions = options.animation, res = {\n delayTime: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds,\n enable: animationOptions.enable,\n value: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(options.value) * pxRatio,\n max: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(valueRange) * pxRatio,\n min: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(valueRange) * pxRatio,\n loops: 0,\n maxLoops: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.count),\n time: 0\n }, decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.decay);\n switch(animationOptions.mode){\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.increase:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.decrease:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.random:\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n default:\n break;\n }\n const autoStatus = animationOptions.mode === _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.auto;\n switch(animationOptions.startValue){\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.min:\n res.value = res.min;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.max:\n res.value = res.max;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.random:\n default:\n res.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.randomInRangeValue)(res);\n if (autoStatus) {\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__.PixelMode.percent;\n if (!isPercent) {\n const { mode: _, ...rest } = 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_1__.percentDenominator * canvasSize.width,\n y: positionOrSize.y / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.height\n };\n } else {\n return {\n width: positionOrSize.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.width,\n height: positionOrSize.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.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 _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n default:\n break;\n }\n}\nfunction updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minDecay = 1;\n if (particle.destroyed || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor, minValue = data.min, maxValue = data.max, decay = data.decay ?? minDecay;\n data.time ??= 0;\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 _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing:\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n } else {\n data.value -= maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n } else {\n data.value += velocity;\n }\n break;\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing:\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n } else {\n data.value += maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n } else {\n data.value -= velocity;\n }\n break;\n default:\n break;\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n data.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.clamp)(data.value, minValue, maxValue);\n}\nfunction cloneStyle(style) {\n const clonedStyle = safeDocument().createElement(\"div\").style;\n for(const key in style){\n const styleKey = style[key];\n if (!(key in style) || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isNull)(styleKey)) {\n continue;\n }\n const styleValue = style.getPropertyValue?.(styleKey);\n if (!styleValue) {\n continue;\n }\n const stylePriority = style.getPropertyPriority?.(styleKey);\n if (stylePriority) {\n clonedStyle.setProperty(styleKey, styleValue, stylePriority);\n } else {\n clonedStyle.setProperty(styleKey, styleValue);\n }\n }\n return clonedStyle;\n}\nfunction computeFullScreenStyle(zIndex) {\n const fullScreenStyle = safeDocument().createElement(\"div\").style, radix = 10, style = {\n width: \"100%\",\n height: \"100%\",\n margin: \"0\",\n padding: \"0\",\n borderWidth: \"0\",\n position: \"fixed\",\n zIndex: zIndex.toString(radix),\n \"z-index\": zIndex.toString(radix),\n top: \"0\",\n left: \"0\"\n };\n for(const key in style){\n const value = style[key];\n if (value === undefined) {\n continue;\n }\n fullScreenStyle.setProperty(key, value);\n }\n return fullScreenStyle;\n}\nconst getFullScreenStyle = memoize(computeFullScreenStyle);\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = {\n passive: true\n };\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options)) {\n addOptions.capture = options;\n } else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n } else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\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([\n ...initializers.values()\n ].map((t)=>t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getItemMapFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n const entries = await Promise.all([\n ...initializers.entries()\n ].map(([key, initializer])=>initializer(container).then((item)=>[\n key,\n item\n ])));\n res = new Map(entries);\n map.set(container, res);\n }\n return res;\n}\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/Utils.js?\n}");
|
|
639
|
+
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 */ cloneStyle: () => (/* binding */ cloneStyle),\n/* harmony export */ deepExtend: () => (/* binding */ deepExtend),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* binding */ executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* binding */ findItemFromSingleOrMultiple),\n/* harmony export */ getFullScreenStyle: () => (/* binding */ getFullScreenStyle),\n/* harmony export */ getItemMapFromInitializer: () => (/* binding */ getItemMapFromInitializer),\n/* harmony export */ getItemsFromInitializer: () => (/* binding */ getItemsFromInitializer),\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 */ isInArray: () => (/* binding */ isInArray),\n/* harmony export */ isPointInside: () => (/* binding */ isPointInside),\n/* harmony export */ itemFromArray: () => (/* binding */ itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* binding */ itemFromSingleOrMultiple),\n/* harmony export */ manageListener: () => (/* binding */ manageListener),\n/* harmony export */ memoize: () => (/* binding */ memoize),\n/* harmony export */ safeDocument: () => (/* binding */ safeDocument),\n/* harmony export */ safeIntersectionObserver: () => (/* binding */ safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* binding */ safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* binding */ safeMutationObserver),\n/* harmony export */ updateAnimation: () => (/* binding */ updateAnimation)\n/* harmony export */ });\n/* harmony import */ var _MathUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MathUtils.js */ \"./dist/browser/Utils/MathUtils.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 _TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TypeUtils.js */ \"./dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/Modes/AnimationMode.js */ \"./dist/browser/Enums/Modes/AnimationMode.js\");\n/* harmony import */ var _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/AnimationStatus.js */ \"./dist/browser/Enums/AnimationStatus.js\");\n/* harmony import */ var _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Enums/Types/DestroyType.js */ \"./dist/browser/Enums/Types/DestroyType.js\");\n/* harmony import */ var _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Enums/Directions/OutModeDirection.js */ \"./dist/browser/Enums/Directions/OutModeDirection.js\");\n/* harmony import */ var _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Enums/Modes/PixelMode.js */ \"./dist/browser/Enums/Modes/PixelMode.js\");\n/* harmony import */ var _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Enums/Types/StartValueType.js */ \"./dist/browser/Enums/Types/StartValueType.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"./dist/browser/Core/Utils/Vectors.js\");\n\n\n\n\n\n\n\n\n\n\nconst minRadius = 0, minMemoizeSize = 0;\nfunction memoize(fn, options) {\n const cache = new Map(), maxSize = options?.maxSize, ttlMs = options?.ttlMs, keyFn = options?.keyFn, stableStringify = (obj, seen = new WeakSet())=>{\n if (obj === null) {\n return \"null\";\n }\n const t = typeof obj;\n if (t === \"undefined\") {\n return \"undefined\";\n }\n if (t === \"number\" || t === \"boolean\" || t === \"string\") {\n return JSON.stringify(obj);\n }\n if (t === \"function\") {\n try {\n const fn = obj;\n return fn.toString();\n } catch {\n return '\"[Function]\"';\n }\n }\n if (t === \"symbol\") {\n try {\n return obj.toString();\n } catch {\n return '\"[Symbol]\"';\n }\n }\n if (Array.isArray(obj)) {\n return `[${obj.map((i)=>stableStringify(i, seen)).join(\",\")}]`;\n }\n if (seen.has(obj)) {\n return '\"[Circular]\"';\n }\n seen.add(obj);\n const keys = Object.keys(obj).sort();\n return `{${keys.map((k)=>`${JSON.stringify(k)}:${stableStringify(obj[k], seen)}`).join(\",\")}}`;\n }, defaultKeyer = (args)=>stableStringify(args), makeKey = (args)=>keyFn ? keyFn(args) : defaultKeyer(args), ensureBounds = ()=>{\n if (typeof maxSize === \"number\" && maxSize >= minMemoizeSize) {\n while(cache.size > maxSize){\n const firstKey = cache.keys().next().value;\n if (firstKey === undefined) break;\n cache.delete(firstKey);\n }\n }\n };\n return (...args)=>{\n const key = makeKey(args), now = Date.now(), entry = cache.get(key);\n if (entry !== undefined) {\n if (ttlMs && now - entry.ts > ttlMs) {\n cache.delete(key);\n } else {\n cache.delete(key);\n cache.set(key, {\n value: entry.value,\n ts: entry.ts\n });\n return entry.value;\n }\n }\n const result = fn(...args);\n cache.set(key, {\n value: result,\n ts: now\n });\n ensureBounds();\n return result;\n };\n}\nfunction hasMatchMedia() {\n return typeof matchMedia !== \"undefined\";\n}\nfunction safeDocument() {\n return globalThis.document;\n}\nfunction safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nfunction safeIntersectionObserver(callback) {\n if (typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nfunction safeMutationObserver(callback) {\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nfunction isInArray(value, array) {\n return value === array || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(array) && array.includes(value);\n}\nfunction arrayRandomIndex(array) {\n return Math.floor((0,_MathUtils_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 return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nfunction areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.bottom) {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.left)) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.right)) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.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 ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isNull)(source)) {\n continue;\n }\n if (!(0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(source)) {\n destination = source;\n continue;\n }\n if (Array.isArray(source)) {\n if (!Array.isArray(destination)) {\n destination = [];\n }\n } else if (!(0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(destination) || Array.isArray(destination)) {\n destination = {};\n }\n const sourceKeys = Object.keys(source), dangerousKeys = new Set([\n \"__proto__\",\n \"constructor\",\n \"prototype\"\n ]), hasNested = sourceKeys.some((k)=>{\n const v = source[k];\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(v) || Array.isArray(v);\n });\n if (!hasNested) {\n const sourceDict = source, destDict = destination;\n for (const key of sourceKeys){\n if (dangerousKeys.has(key)) {\n continue;\n }\n if (key in sourceDict) {\n const v = sourceDict[key];\n if (v !== undefined) {\n destDict[key] = v;\n }\n }\n }\n continue;\n }\n for (const key of sourceKeys){\n if (dangerousKeys.has(key)) {\n continue;\n }\n const sourceDict = source, destDict = destination, value = sourceDict[key];\n destDict[key] = Array.isArray(value) ? value.map((v)=>deepExtend(undefined, v)) : deepExtend(destDict[key], value);\n }\n }\n return destination;\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_9__.Vector.create((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.horizontal.value), (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.vertical.value))\n };\n}\nfunction circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [\n p1.position,\n p2.position\n ], { dx: xDist, dy: yDist } = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos2, pos1), minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u1, u2, m1, m2), v2 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), 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 executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.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_2__.isArray)(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nfunction findItemFromSingleOrMultiple(obj, callback) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.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, animationOptions = options.animation, res = {\n delayTime: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds,\n enable: animationOptions.enable,\n value: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(options.value) * pxRatio,\n max: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(valueRange) * pxRatio,\n min: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(valueRange) * pxRatio,\n loops: 0,\n maxLoops: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.count),\n time: 0\n }, decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.decay);\n switch(animationOptions.mode){\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.increase:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.decrease:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.random:\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n default:\n break;\n }\n const autoStatus = animationOptions.mode === _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.auto;\n switch(animationOptions.startValue){\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.min:\n res.value = res.min;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.max:\n res.value = res.max;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.random:\n default:\n res.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.randomInRangeValue)(res);\n if (autoStatus) {\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__.PixelMode.percent;\n if (!isPercent) {\n const { mode: _, ...rest } = 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_1__.percentDenominator * canvasSize.width,\n y: positionOrSize.y / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.height\n };\n } else {\n return {\n width: positionOrSize.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.width,\n height: positionOrSize.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.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 _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n default:\n break;\n }\n}\nfunction updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minDecay = 1;\n if (particle.destroyed || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor, minValue = data.min, maxValue = data.max, decay = data.decay ?? minDecay;\n data.time ??= 0;\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 _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing:\n data.value += velocity;\n break;\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing:\n data.value -= velocity;\n break;\n default:\n break;\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n switch(data.status){\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing:\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n } else {\n data.value -= maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n }\n break;\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing:\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n } else {\n data.value += maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n }\n break;\n default:\n break;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n if (!particle.destroyed) {\n data.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.clamp)(data.value, minValue, maxValue);\n }\n}\nfunction cloneStyle(style) {\n const clonedStyle = safeDocument().createElement(\"div\").style;\n for(const key in style){\n const styleKey = style[key];\n if (!(key in style) || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isNull)(styleKey)) {\n continue;\n }\n const styleValue = style.getPropertyValue?.(styleKey);\n if (!styleValue) {\n continue;\n }\n const stylePriority = style.getPropertyPriority?.(styleKey);\n if (stylePriority) {\n clonedStyle.setProperty(styleKey, styleValue, stylePriority);\n } else {\n clonedStyle.setProperty(styleKey, styleValue);\n }\n }\n return clonedStyle;\n}\nfunction computeFullScreenStyle(zIndex) {\n const fullScreenStyle = safeDocument().createElement(\"div\").style, radix = 10, style = {\n width: \"100%\",\n height: \"100%\",\n margin: \"0\",\n padding: \"0\",\n borderWidth: \"0\",\n position: \"fixed\",\n zIndex: zIndex.toString(radix),\n \"z-index\": zIndex.toString(radix),\n top: \"0\",\n left: \"0\"\n };\n for(const key in style){\n const value = style[key];\n if (value === undefined) {\n continue;\n }\n fullScreenStyle.setProperty(key, value);\n }\n return fullScreenStyle;\n}\nconst getFullScreenStyle = memoize(computeFullScreenStyle);\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = {\n passive: true\n };\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options)) {\n addOptions.capture = options;\n } else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n } else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\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([\n ...initializers.values()\n ].map((t)=>t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getItemMapFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n const entries = await Promise.all([\n ...initializers.entries()\n ].map(([key, initializer])=>initializer(container).then((item)=>[\n key,\n item\n ])));\n res = new Map(entries);\n map.set(container, res);\n }\n return res;\n}\n\n\n//# sourceURL=webpack://@tsparticles/engine/./dist/browser/Utils/Utils.js?\n}");
|
|
640
640
|
|
|
641
641
|
/***/ },
|
|
642
642
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var a in i)("object"==typeof exports?exports:e)[a]=i[a]}}(this,()=>(()=>{"use strict";var e,t,i,a,n,o,s,r,l,d={7574(e,t,i){i.d(t,{$G:()=>L,$_:()=>T,$v:()=>K,$x:()=>O,BF:()=>eg,BW:()=>p,DN:()=>N,D_:()=>ed,Dv:()=>eu,Eo:()=>Y,Fl:()=>em,GW:()=>C,Ie:()=>D,JC:()=>q,K3:()=>eo,L1:()=>F,LD:()=>er,MX:()=>l,NF:()=>o,Nu:()=>ep,Nx:()=>W,PZ:()=>X,Pf:()=>ew,R1:()=>v,RF:()=>x,RV:()=>Z,Rq:()=>V,U0:()=>I,Ug:()=>c,WH:()=>U,X$:()=>b,X_:()=>ee,Xu:()=>d,Zp:()=>P,a5:()=>r,aE:()=>ev,aZ:()=>m,bo:()=>u,ce:()=>y,dm:()=>M,dv:()=>Q,eb:()=>a,eu:()=>E,gd:()=>f,hB:()=>k,hK:()=>eb,hv:()=>G,i8:()=>j,iU:()=>ec,iX:()=>z,jn:()=>ey,lA:()=>es,mR:()=>h,nK:()=>s,nq:()=>ei,oi:()=>R,ou:()=>et,rq:()=>w,tA:()=>el,tR:()=>ex,vF:()=>H,vS:()=>_,vd:()=>eh,w2:()=>B,wM:()=>ea,xH:()=>J,xd:()=>S,yj:()=>n,yx:()=>A,z$:()=>g,z9:()=>en,zg:()=>ef,zs:()=>$});let a="generated",n="source-over",o="resize",s="visibilitychange",r=100,l=.5,d=1e3,u={x:0,y:0,z:0},c={a:1,b:0,c:0,d:1},h="random",p="mid",f=2,v=2*Math.PI,g=60,m=1,y="true",b="false",x="canvas",w=0,M=2,z=100,S=1,O=1,P=1,k=1,R=255,_=360,E=100,T=100,F=0,A=0,I=60,D=0,L=.25,V=.75,C=0,$=1,B=0,Z=1,G=1,q=1,H=0,j=120,N=0,W=0,K=1e4,X=0,J=1,Q=0,U=1,Y=1,ee=0,et=0,ei=1,ea=0,en=0,eo=1,es=1,er=1,el=0,ed=1,eu=0,ec=1,eh=0,ep=3,ef=6,ev=1,eg=1,em=0,ey=0,eb=0,ex=0,ew=1},8450(e,t,i){i.d(t,{dg:()=>r,jl:()=>l,M_:()=>d}),(a=n||(n={})).circle="circle",a.rectangle="rectangle";var a,n,o=i(3404),s=i(7574);class r{position;type;constructor(e,t,i){this.position={x:e,y:t},this.type=i}_resetPosition(e,t){this.position.x=e,this.position.y=t}}class l extends r{radius;constructor(e,t,i){super(e,t,n.circle),this.radius=i}contains(e){return(0,o.gp)(e,this.position,this.radius)}intersects(e){let t=this.position,i=e.position,a=this.radius,o=Math.abs(i.x-t.x),r=Math.abs(i.y-t.y);if(e instanceof l||e.type===n.circle)return a+e.radius>Math.hypot(o,r);if(e instanceof d||e.type===n.rectangle){let{width:t,height:i}=e.size;return Math.pow(o-t,s.dm)+Math.pow(r-i,s.dm)<=a**s.dm||o<=a+t&&r<=a+i||o<=t||r<=i}return!1}reset(e,t,i){return this._resetPosition(e,t),this.radius=i,this}}class d extends r{size;constructor(e,t,i,a){super(e,t,n.rectangle),this.size={height:a,width:i}}contains(e){let t=this.size.width,i=this.size.height,a=this.position;return e.x>=a.x&&e.x<=a.x+t&&e.y>=a.y&&e.y<=a.y+i}intersects(e){if(e instanceof l)return e.intersects(this);if(!(e instanceof d))return!1;let t=this.size.width,i=this.size.height,a=this.position,n=e.position,o=e.size,s=o.width,r=o.height;return n.x<a.x+t&&n.x+s>a.x&&n.y<a.y+i&&n.y+r>a.y}reset(e,t,i,a){return this._resetPosition(e,t),this.size.width=i,this.size.height=a,this}}},1859(e,t,i){i.d(t,{M:()=>s,p:()=>o});var a=i(7574);function n(e){return"z"in e?e.z:a.bo.z}class o{x;y;z;constructor(e=a.bo.x,t=a.bo.y,i=a.bo.z){this.x=e,this.y=t,this.z=i}static get origin(){return o.create(a.bo.x,a.bo.y,a.bo.z)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(e){return o.create(e.x,e.y,n(e))}static create(e,t,i){return"number"==typeof e?new o(e,t??a.bo.y,i??a.bo.z):new o(e.x,e.y,n(e))}add(e){return o.create(this.x+e.x,this.y+e.y,this.z+n(e))}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=n(e)}copy(){return o.clone(this)}div(e){return o.create(this.x/e,this.y/e,this.z/e)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**a.dm+this.y**a.dm}mult(e){return o.create(this.x*e,this.y*e,this.z*e)}multTo(e){this.x*=e,this.y*=e,this.z*=e}normalize(){let e=this.length;e!=a.dv&&this.multTo(a.hB/e)}rotate(e){return o.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e),a.bo.z)}setTo(e){this.x=e.x,this.y=e.y,this.z=n(e)}sub(e){return o.create(this.x-e.x,this.y-e.y,this.z-n(e))}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=n(e)}_updateFromAngle(e,t){this.x=Math.cos(e)*t,this.y=Math.sin(e)*t}}class s extends o{constructor(e=a.bo.x,t=a.bo.y){super(e,t,a.bo.z)}static get origin(){return s.create(a.bo.x,a.bo.y)}static clone(e){return s.create(e.x,e.y)}static create(e,t){return"number"==typeof e?new s(e,t??a.bo.y):new s(e.x,e.y)}}},3608(e,t,i){var a,n;i.d(t,{H:()=>a}),(n=a||(a={})).increasing="increasing",n.decreasing="decreasing"},1341(e,t,i){var a,n;i.d(t,{F:()=>a}),(n=a||(a={})).bottom="bottom",n.bottomLeft="bottom-left",n.bottomRight="bottom-right",n.left="left",n.none="none",n.right="right",n.top="top",n.topLeft="top-left",n.topRight="top-right",n.outside="outside",n.inside="inside"},2487(e,t,i){var a,n;i.d(t,{v:()=>a}),(n=a||(a={})).bottom="bottom",n.left="left",n.right="right",n.top="top"},9798(e,t,i){var a,n;i.d(t,{g:()=>a}),(n=a||(a={})).auto="auto",n.increase="increase",n.decrease="decrease",n.random="random"},7171(e,t,i){var a,n;i.d(t,{d:()=>a}),(n=a||(a={})).delete="delete",n.wait="wait"},9300(e,t,i){var a,n;i.d(t,{Y:()=>a}),(n=a||(a={})).bounce="bounce",n.none="none",n.out="out",n.destroy="destroy",n.split="split"},4568(e,t,i){var a,n;i.d(t,{q:()=>a}),(n=a||(a={})).precise="precise",n.percent="percent"},2354(e,t,i){var a,n;i.d(t,{H:()=>a}),(n=a||(a={})).darken="darken",n.enlighten="enlighten"},1352(e,t,i){var a,n;i.d(t,{V:()=>a}),(n=a||(a={})).none="none",n.max="max",n.min="min"},9898(e,t,i){var a,n;i.d(t,{B:()=>a}),(n=a||(a={})).configAdded="configAdded",n.containerInit="containerInit",n.particlesSetup="particlesSetup",n.containerStarted="containerStarted",n.containerStopped="containerStopped",n.containerDestroyed="containerDestroyed",n.containerPaused="containerPaused",n.containerPlay="containerPlay",n.containerBuilt="containerBuilt",n.particleAdded="particleAdded",n.particleDestroyed="particleDestroyed",n.particleRemoved="particleRemoved"},6028(e,t,i){var a,n;i.d(t,{x:()=>a}),(n=a||(a={})).normal="normal",n.inside="inside",n.outside="outside"},257(e,t,i){var a,n;i.d(t,{S:()=>a}),(n=a||(a={})).max="max",n.min="min",n.random="random"},8468(e,t,i){i.d(t,{A:()=>s});var a=i(1282),n=i(2580),o=i(682);class s extends o.O{animation;constructor(){super(),this.animation=new n.i}static create(e,t){let i=new s;return i.load(e),void 0!==t&&((0,a.Kg)(t)||(0,a.cy)(t)?i.load({value:t}):i.load(t)),i}load(e){if(super.load(e),(0,a.kZ)(e))return;let t=e.animation;void 0!==t&&(void 0===t.enable?this.animation.load(e.animation):this.animation.h.load(t))}}},8527(e,t,i){i.d(t,{Q:()=>l,p:()=>r});var a=i(9798),n=i(257),o=i(1282),s=i(3404);class r{count;decay;delay;enable;speed;sync;constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){(0,o.kZ)(e)||(void 0!==e.count&&(this.count=(0,s.DT)(e.count)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.speed&&(this.speed=(0,s.DT)(e.speed)),void 0!==e.decay&&(this.decay=(0,s.DT)(e.decay)),void 0!==e.delay&&(this.delay=(0,s.DT)(e.delay)),void 0!==e.sync&&(this.sync=e.sync))}}class l extends r{mode;startValue;constructor(){super(),this.mode=a.g.auto,this.startValue=n.S.random}load(e){super.load(e),(0,o.kZ)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.startValue&&(this.startValue=e.startValue))}}},6322(e,t,i){i.d(t,{V:()=>o});var a=i(682),n=i(1282);class o{color;image;opacity;position;repeat;size;constructor(){this.color=new a.O,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(e){(0,n.kZ)(e)||(void 0!==e.color&&(this.color=a.O.create(this.color,e.color)),void 0!==e.image&&(this.image=e.image),void 0!==e.position&&(this.position=e.position),void 0!==e.repeat&&(this.repeat=e.repeat),void 0!==e.size&&(this.size=e.size),void 0!==e.opacity&&(this.opacity=e.opacity))}}},6676(e,t,i){i.d(t,{e:()=>s});var a=i(8527),n=i(1282),o=i(3404);class s extends a.p{max;min;offset;constructor(e,t){super(),this.min=e,this.max=t,this.offset=0,this.sync=!0}load(e){super.load(e),(0,n.kZ)(e)||(void 0!==e.max&&(this.max=e.max),void 0!==e.min&&(this.min=e.min),void 0!==e.offset&&(this.offset=(0,o.DT)(e.offset)))}}},2292(e,t,i){i.d(t,{m:()=>n});var a=i(1282);class n{enable;zIndex;constructor(){this.enable=!0,this.zIndex=0}load(e){(0,a.kZ)(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.zIndex&&(this.zIndex=e.zIndex))}}},2580(e,t,i){i.d(t,{i:()=>s});var a=i(7574),n=i(6676),o=i(1282);class s{h=new n.e(a.L1,a.vS);l=new n.e(a.vd,a.$_);s=new n.e(a.yx,a.eu);load(e){(0,o.kZ)(e)||(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}}},7849(e,t,i){i.d(t,{J:()=>u});var a=i(7818),n=i(1282),o=i(6322),s=i(2292),r=i(7319),l=i(3468),d=i(3404);class u{autoPlay;background;clear;defaultThemes;delay;detectRetina;duration;fpsLimit;fullScreen;hdr;key;name;palette;particles;pauseOnBlur;pauseOnOutsideViewport;preset;resize;smooth;style;zLayers;_container;_pluginManager;constructor(e,t){this._pluginManager=e,this._container=t,this.autoPlay=!0,this.background=new o.V,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new s.m,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.hdr=!0,this.particles=(0,l.y)(this._pluginManager,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.resize=new r.z,this.smooth=!1,this.style={},this.zLayers=100}load(e){if((0,n.kZ)(e))return;void 0!==e.preset&&(this.preset=e.preset,(0,a.wJ)(this.preset,e=>{this._importPreset(e)})),void 0!==e.palette&&(this.palette=e.palette,this._importPalette(this.palette)),void 0!==e.autoPlay&&(this.autoPlay=e.autoPlay),void 0!==e.clear&&(this.clear=e.clear),void 0!==e.key&&(this.key=e.key),void 0!==e.name&&(this.name=e.name),void 0!==e.delay&&(this.delay=(0,d.DT)(e.delay));let t=e.detectRetina;void 0!==t&&(this.detectRetina=t),void 0!==e.duration&&(this.duration=(0,d.DT)(e.duration));let i=e.fpsLimit;void 0!==i&&(this.fpsLimit=i),void 0!==e.hdr&&(this.hdr=e.hdr),void 0!==e.pauseOnBlur&&(this.pauseOnBlur=e.pauseOnBlur),void 0!==e.pauseOnOutsideViewport&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),void 0!==e.zLayers&&(this.zLayers=e.zLayers),this.background.load(e.background);let o=e.fullScreen;(0,n.Lm)(o)?this.fullScreen.enable=o:this.fullScreen.load(o),this.particles.load(e.particles),this.resize.load(e.resize),this.style=(0,a.zw)(this.style,e.style),void 0!==e.smooth&&(this.smooth=e.smooth),this._pluginManager.plugins.forEach(t=>{t.loadOptions(this._container,this,e)})}_importPalette=e=>{let t=this._pluginManager.getPalette(e);t&&this.load({background:{color:t.background},blend:{enable:!0,mode:t.blendMode},particles:{fill:{color:t.fill?{value:t.colors}:void 0,enable:t.fill},stroke:t.fill?void 0:t.colors.map(e=>({color:{value:e},width:1}))}})};_importPreset=e=>{this.load(this._pluginManager.getPreset(e))}}},682(e,t,i){i.d(t,{O:()=>n});var a=i(1282);class n{value;constructor(){this.value=""}static create(e,t){let i=new n;return i.load(e),void 0!==t&&((0,a.Kg)(t)||(0,a.cy)(t)?i.load({value:t}):i.load(t)),i}load(e){!(0,a.kZ)(e)&&((0,a.kZ)(e.value)||(this.value=e.value))}}},2175(e,t,i){i.d(t,{w:()=>o});var a=i(2816),n=i(1282);class o{horizontal;vertical;constructor(){this.horizontal=new a.F,this.vertical=new a.F}load(e){(0,n.kZ)(e)||(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}}},2816(e,t,i){i.d(t,{F:()=>n});var a=i(149);class n extends a.PV{constructor(){super(),this.value=1}}},694(e,t,i){i.d(t,{S:()=>s});var a=i(8468),n=i(1282),o=i(3404);class s{color;enable;opacity;constructor(){this.enable=!0,this.color=new a.A,this.color.value="#fff",this.opacity=1}load(e){(0,n.kZ)(e)||(void 0!==e.color&&(this.color=a.A.create(this.color,e.color)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.opacity&&(this.opacity=(0,o.DT)(e.opacity)))}}},5028(e,t,i){i.d(t,{y:()=>h});var a=i(1341),n=i(1282),o=i(3761),s=i(3389),r=i(4892),l=i(2183),d=i(2221),u=i(9453),c=i(3404);class h{angle;center;decay;direction;distance;drift;enable;gravity;outModes;path;random;size;speed;spin;straight;vibrate;warp;constructor(){this.angle=new o.h,this.center=new s.Z,this.decay=0,this.distance={},this.direction=a.F.none,this.drift=0,this.enable=!1,this.gravity=new r.y,this.path=new l.v,this.outModes=new d.j,this.random=!1,this.size=!1,this.speed=2,this.spin=new u.t,this.straight=!1,this.vibrate=!1,this.warp=!1}load(e){if((0,n.kZ)(e))return;this.angle.load((0,n.Et)(e.angle)?{value:e.angle}:e.angle),this.center.load(e.center),void 0!==e.decay&&(this.decay=(0,c.DT)(e.decay)),void 0!==e.direction&&(this.direction=e.direction),void 0!==e.distance&&(this.distance=(0,n.Et)(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),void 0!==e.drift&&(this.drift=(0,c.DT)(e.drift)),void 0!==e.enable&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes;void 0!==t&&((0,n.Gv)(t)?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path),void 0!==e.random&&(this.random=e.random),void 0!==e.size&&(this.size=e.size),void 0!==e.speed&&(this.speed=(0,c.DT)(e.speed)),this.spin.load(e.spin),void 0!==e.straight&&(this.straight=e.straight),void 0!==e.vibrate&&(this.vibrate=e.vibrate),void 0!==e.warp&&(this.warp=e.warp)}}},3761(e,t,i){i.d(t,{h:()=>o});var a=i(1282),n=i(3404);class o{offset;value;constructor(){this.offset=0,this.value=90}load(e){(0,a.kZ)(e)||(void 0!==e.offset&&(this.offset=(0,n.DT)(e.offset)),void 0!==e.value&&(this.value=(0,n.DT)(e.value)))}}},3389(e,t,i){i.d(t,{Z:()=>o});var a=i(4568),n=i(1282);class o{mode;radius;x;y;constructor(){this.x=50,this.y=50,this.mode=a.q.percent,this.radius=0}load(e){(0,n.kZ)(e)||(void 0!==e.x&&(this.x=e.x),void 0!==e.y&&(this.y=e.y),void 0!==e.mode&&(this.mode=e.mode),void 0!==e.radius&&(this.radius=e.radius))}}},4892(e,t,i){i.d(t,{y:()=>o});var a=i(1282),n=i(3404);class o{acceleration;enable;inverse;maxSpeed;constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){(0,a.kZ)(e)||(void 0!==e.acceleration&&(this.acceleration=(0,n.DT)(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.inverse&&(this.inverse=e.inverse),void 0!==e.maxSpeed&&(this.maxSpeed=(0,n.DT)(e.maxSpeed)))}}},2221(e,t,i){i.d(t,{j:()=>o});var a=i(9300),n=i(1282);class o{bottom;default;left;right;top;constructor(){this.default=a.Y.out}load(e){(0,n.kZ)(e)||(void 0!==e.default&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}}},2183(e,t,i){i.d(t,{v:()=>s});var a=i(149),n=i(7818),o=i(1282);class s{clamp;delay;enable;generator;options;constructor(){this.clamp=!0,this.delay=new a.PV,this.enable=!1,this.options={}}load(e){!(0,o.kZ)(e)&&(void 0!==e.clamp&&(this.clamp=e.clamp),this.delay.load(e.delay),void 0!==e.enable&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=(0,n.zw)(this.options,e.options)))}}},9453(e,t,i){i.d(t,{t:()=>s});var a=i(7818),n=i(1282),o=i(3404);class s{acceleration;enable;position;constructor(){this.acceleration=0,this.enable=!1}load(e){!(0,n.kZ)(e)&&(void 0!==e.acceleration&&(this.acceleration=(0,o.DT)(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),e.position&&(this.position=(0,a.zw)({},e.position)))}}},9020(e,t,i){i.d(t,{M:()=>n});var a=i(1282);class n{enable;height;width;constructor(){this.enable=!1,this.width=1920,this.height=1080}load(e){if((0,a.kZ)(e))return;void 0!==e.enable&&(this.enable=e.enable);let t=e.width;void 0!==t&&(this.width=t);let i=e.height;void 0!==i&&(this.height=i)}}},9611(e,t,i){i.d(t,{N:()=>s});var a=i(9020),n=i(5524),o=i(1282);class s{density;limit;value;constructor(){this.density=new a.M,this.limit=new n.A,this.value=0}load(e){(0,o.kZ)(e)||(this.density.load(e.density),this.limit.load(e.limit),void 0!==e.value&&(this.value=e.value))}}},5524(e,t,i){i.d(t,{A:()=>o});var a=i(7171),n=i(1282);class o{mode;value;constructor(){this.mode=a.d.delete,this.value=0}load(e){(0,n.kZ)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.value&&(this.value=e.value))}}},8976(e,t,i){i.d(t,{Y:()=>s});var a=i(6280),n=i(149),o=i(1282);class s extends n.AI{animation;constructor(){super(),this.animation=new a.I,this.value=1}load(e){if((0,o.kZ)(e))return;super.load(e);let t=e.animation;void 0!==t&&this.animation.load(t)}}},6280(e,t,i){i.d(t,{I:()=>s});var a=i(1352),n=i(8527),o=i(1282);class s extends n.Q{destroy;constructor(){super(),this.destroy=a.V.none,this.speed=2}load(e){super.load(e),(0,o.kZ)(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}},2926(e,t,i){i.d(t,{U:()=>v});var a=i(7818),n=i(1282);class o{close;options;type;constructor(){this.close=!0,this.options={},this.type=[]}load(e){if((0,n.kZ)(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=(0,a.zw)(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.type&&(this.type=e.type)}}var s=i(694),r=i(5028),l=i(8976),d=i(2175),u=i(9611),c=i(4332),h=i(804),p=i(7359),f=i(8250);class v{bounce;effect;fill;groups;move;number;opacity;reduceDuplicates;shape;size;stroke;zIndex;_container;_pluginManager;constructor(e,t){this._pluginManager=e,this._container=t,this.bounce=new d.w,this.effect=new o,this.fill=new s.S,this.groups={},this.move=new r.y,this.number=new u.N,this.opacity=new l.Y,this.reduceDuplicates=!1,this.shape=new c.y,this.size=new h.o,this.stroke=new p.t,this.zIndex=new f.P}load(e){if((0,n.kZ)(e))return;if(void 0!==e.groups)for(let t of Object.keys(e.groups)){if(!(t in e.groups))continue;let i=e.groups[t];void 0!==i&&(this.groups[t]=(0,a.zw)(this.groups[t]??{},i))}void 0!==e.reduceDuplicates&&(this.reduceDuplicates=e.reduceDuplicates),this.bounce.load(e.bounce),this.effect.load(e.effect),this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),this.shape.load(e.shape),this.size.load(e.size),this.zIndex.load(e.zIndex);let t=e.fill;t&&(this.fill=(0,a.wJ)(t,e=>{let t=new s.S;return t.load(e),t}));let i=e.stroke;if(i&&(this.stroke=(0,a.wJ)(i,e=>{let t=new p.t;return t.load(e),t})),this._container){for(let t of this._pluginManager.plugins)t.loadParticlesOptions&&t.loadParticlesOptions(this._container,this,e);let t=this._pluginManager.updaters.get(this._container);if(t)for(let i of t)i.loadOptions&&i.loadOptions(this,e)}}}},4332(e,t,i){i.d(t,{y:()=>o});var a=i(7818),n=i(1282);class o{close;options;type;constructor(){this.close=!0,this.options={},this.type="circle"}load(e){if((0,n.kZ)(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=(0,a.zw)(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.type&&(this.type=e.type)}}},804(e,t,i){i.d(t,{o:()=>s});var a=i(149),n=i(3244),o=i(1282);class s extends a.AI{animation;constructor(){super(),this.animation=new n.q,this.value=3}load(e){if(super.load(e),(0,o.kZ)(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}},3244(e,t,i){i.d(t,{q:()=>s});var a=i(1352),n=i(8527),o=i(1282);class s extends n.Q{destroy;constructor(){super(),this.destroy=a.V.none,this.speed=5}load(e){super.load(e),(0,o.kZ)(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}},7359(e,t,i){i.d(t,{t:()=>s});var a=i(8468),n=i(1282),o=i(3404);class s{color;opacity;width;constructor(){this.width=0}load(e){(0,n.kZ)(e)||(void 0!==e.color&&(this.color=a.A.create(this.color,e.color)),void 0!==e.width&&(this.width=(0,o.DT)(e.width)),void 0!==e.opacity&&(this.opacity=(0,o.DT)(e.opacity)))}}},8250(e,t,i){i.d(t,{P:()=>o});var a=i(149),n=i(1282);class o extends a.PV{opacityRate;sizeRate;velocityRate;constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),(0,n.kZ)(e)||(void 0!==e.opacityRate&&(this.opacityRate=e.opacityRate),void 0!==e.sizeRate&&(this.sizeRate=e.sizeRate),void 0!==e.velocityRate&&(this.velocityRate=e.velocityRate))}}},7319(e,t,i){i.d(t,{z:()=>n});var a=i(1282);class n{delay;enable;constructor(){this.delay=.5,this.enable=!0}load(e){(0,a.kZ)(e)||(void 0!==e.delay&&(this.delay=e.delay),void 0!==e.enable&&(this.enable=e.enable))}}},149(e,t,i){i.d(t,{AI:()=>l,Jm:()=>r,PV:()=>s});var a=i(8527),n=i(1282),o=i(3404);class s{value;constructor(){this.value=0}load(e){!(0,n.kZ)(e)&&((0,n.kZ)(e.value)||(this.value=(0,o.DT)(e.value)))}}class r extends s{animation=new a.p;load(e){if(super.load(e),(0,n.kZ)(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}class l extends r{animation;constructor(){super(),this.animation=new a.Q}load(e){super.load(e)}}},8862(e,t,i){i.d(t,{IU:()=>s,KG:()=>u,Md:()=>o,Sn:()=>n,VG:()=>h,Wb:()=>p,gF:()=>c,k:()=>l,p0:()=>r,z5:()=>d});var a=i(7574);function n(e,t,i){e.fillStyle=i??"rgba(0,0,0,0)",e.fillRect(a.bo.x,a.bo.y,t.width,t.height)}function o(e,t,i,n){if(!i)return;let o=e.globalAlpha;e.globalAlpha=n,e.drawImage(i,a.bo.x,a.bo.y,t.width,t.height),e.globalAlpha=o}function s(e,t){e.clearRect(a.bo.x,a.bo.y,t.width,t.height)}function r(e){let{container:t,context:i,particle:n,delta:o,colorStyles:s,radius:r,opacity:p,transform:f}=e,{effectDrawers:v,shapeDrawers:g}=t,m=n.getPosition(),y=n.getTransformData(f),b=a.Pf,x={x:m.x,y:m.y};i.setTransform(y.a,y.b,y.c,y.d,m.x,m.y),s.fill&&(i.fillStyle=s.fill);let w=!!n.fillEnabled,M=n.strokeWidth??a.Dv;i.lineWidth=M,s.stroke&&(i.strokeStyle=s.stroke);let z={context:i,particle:n,radius:r,drawRadius:r*b,opacity:p,delta:o,pixelRatio:t.retina.pixelRatio,fill:w,stroke:M>a.Dv,transformData:y,position:{...m},drawPosition:x,drawScale:b};for(let e of t.plugins)e.drawParticleTransform?.(z);let S=n.effect?v.get(n.effect):void 0,O=n.shape?g.get(n.shape):void 0;d(S,z),h(O,z),u(O,z),c(O,z),l(S,z),i.resetTransform()}function l(e,t){if(!e?.drawAfter)return;let{particle:i}=t;i.effect&&e.drawAfter(t)}function d(e,t){if(!e?.drawBefore)return;let{particle:i}=t;i.effect&&e.drawBefore(t)}function u(e,t){if(!e)return;let{context:i,fill:a,particle:n,stroke:o}=t;n.shape&&(i.beginPath(),e.draw(t),n.shapeClose&&i.closePath(),o&&i.stroke(),a&&i.fill())}function c(e,t){if(!e?.afterDraw)return;let{particle:i}=t;i.shape&&e.afterDraw(t)}function h(e,t){if(!e?.beforeDraw)return;let{particle:i}=t;i.shape&&e.beforeDraw(t)}function p(e,t,i,a){t.drawParticle&&t.drawParticle(e,i,a)}},3723(e,t,i){i.d(t,{BN:()=>h,EY:()=>O,Jv:()=>F,K6:()=>g,Ko:()=>T,LC:()=>S,OH:()=>w,O_:()=>R,PG:()=>k,R5:()=>v,YL:()=>b,_h:()=>P,ay:()=>x,eg:()=>y,mK:()=>f,pz:()=>_,qe:()=>p,xx:()=>M,yx:()=>A,zI:()=>m});var a=i(3404),n=i(7574),o=i(1282),s=i(2354),r=i(3608),l=i(7818);let d=new Map;function u(e,t){let i=d.get(e);return i||(i=t(),d.size>=1e3&&[...d.keys()].slice(0,1e3*n.MX).forEach(e=>d.delete(e)),d.set(e,i)),i}function c(e,t){if(t){for(let i of e.colorManagers.values())if(i.accepts(t))return i.parseString(t)}}function h(e,t,i,a=!0){if(!t)return;let n=(0,o.Kg)(t)?{value:t}:t;if((0,o.Kg)(n.value))return p(e,n.value,i,a);if((0,o.cy)(n.value)){let t=(0,l.Vh)(n.value,i,a);if(!t)return;return h(e,{value:t})}for(let t of e.colorManagers.values()){let e=t.handleRangeColor(n);if(e)return e}}function p(e,t,i,a=!0){if(!t)return;let s=(0,o.Kg)(t)?{value:t}:t;if((0,o.Kg)(s.value))return s.value===n.mR?w():c(e,s.value);if((0,o.cy)(s.value)){let t=(0,l.Vh)(s.value,i,a);if(!t)return;return p(e,{value:t})}for(let t of e.colorManagers.values()){let e=t.handleColor(s);if(e)return e}}function f(e,t,i,a=!0){let n=p(e,t,i,a);return n?g(n):void 0}function v(e,t,i,a=!0){let n=h(e,t,i,a);return n?g(n):void 0}function g(e){let t=e.r/n.oi,i=e.g/n.oi,a=e.b/n.oi,o=Math.max(t,i,a),s=Math.min(t,i,a),r={h:n.L1,l:(o+s)*n.MX,s:n.yx};return o!==s&&(r.s=r.l<n.MX?(o-s)/(o+s):(o-s)/(n.gd-o-s),t===o?r.h=(i-a)/(o-s):i===o?r.h=n.gd+(a-t)/(o-s):r.h=n.gd*n.gd+(t-i)/(o-s)),r.l*=n.$_,r.s*=n.eu,r.h*=n.U0,r.h<n.L1&&(r.h+=n.vS),r.h>=n.vS&&(r.h-=n.vS),r}function m(e,t){return c(e,t)?.a}function y(e,t){return c(e,t)}function b(e){let t=(e.h%n.vS+n.vS)%n.vS,i=Math.max(n.yx,Math.min(n.eu,e.s)),a=Math.max(n.vd,Math.min(n.$_,e.l)),o=t/n.vS,s=i/n.eu,r=a/n.$_;if(i===n.yx){let e=Math.round(r*n.oi);return{r:e,g:e,b:e}}let l=(e,t,i)=>(i<0&&i++,i>1&&i--,i*n.zg<1)?e+(t-e)*n.zg*i:i*n.gd<1?t:i*n.Nu<+n.gd?e+(t-e)*(n.gd/n.Nu-i)*n.zg:e,d=r<n.MX?r*(n.aE+s):r+s-r*s,u=n.gd*r-d,c=n.BF/n.Nu;return{r:Math.round(Math.min(n.oi,n.oi*l(u,d,o+c))),g:Math.round(Math.min(n.oi,n.oi*l(u,d,o))),b:Math.round(Math.min(n.oi,n.oi*l(u,d,o-c)))}}function x(e){let t=b(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}function w(e){let t=e??n.Fl,i=n.oi+n.D_,o=()=>Math.floor((0,a.e4)(t,i));return{b:o(),g:o(),r:o()}}function M(e,t,i){let a=i??n.hv;return u(`rgb-${e.r.toFixed(2)}-${e.g.toFixed(2)}-${e.b.toFixed(2)}-${t?"hdr":"sdr"}-${a.toString()}`,()=>{var a,o;return t?z(e,i):(a=e,o=i,`rgba(${a.r.toString()}, ${a.g.toString()}, ${a.b.toString()}, ${(o??n.hv).toString()})`)})}function z(e,t){return`color(display-p3 ${(e.r/n.oi).toString()} ${(e.g/n.oi).toString()} ${(e.b/n.oi).toString()} / ${(t??n.hv).toString()})`}function S(e,t,i){let a=i??n.hv;return u(`hsl-${e.h.toFixed(2)}-${e.s.toFixed(2)}-${e.l.toFixed(2)}-${t?"hdr":"sdr"}-${a.toString()}`,()=>{var a,o,s,r;return t?(a=e,o=i,z(b(a),o)):(s=e,r=i,`hsla(${s.h.toString()}, ${s.s.toString()}%, ${s.l.toString()}%, ${(r??n.hv).toString()})`)})}function O(e,t,i,n){let o=e,s=t;return"r"in o||(o=b(e)),"r"in s||(s=b(t)),{b:(0,a.jh)(o.b,s.b,i,n),g:(0,a.jh)(o.g,s.g,i,n),r:(0,a.jh)(o.r,s.r,i,n)}}function P(e,t,i){if(i===n.mR)return w();if(i!==n.BW)return i;{let i=e.getFillColor()??e.getStrokeColor(),a=t?.getFillColor()??t?.getStrokeColor();if(i&&a&&t)return O(i,a,e.getRadius(),t.getRadius());{let e=i??a;if(e)return b(e)}}}function k(e,t,i,a){let s=(0,o.Kg)(t)?t:t.value;return s===n.mR?a?h(e,{value:s}):i?n.mR:n.BW:s===n.BW?n.BW:h(e,{value:s})}function R(e){return void 0===e?void 0:{h:e.h.value,s:e.s.value,l:e.l.value}}function _(e,t,i){let a={h:{enable:!1,value:e.h,min:n.L1,max:n.vS},s:{enable:!1,value:e.s,min:n.yx,max:n.eu},l:{enable:!1,value:e.l,min:n.vd,max:n.$_}};return t&&(E(a.h,t.h,i),E(a.s,t.s,i),E(a.l,t.l,i)),a}function E(e,t,i){e.enable=t.enable,e.min=t.min,e.max=t.max,e.enable?(e.velocity=(0,a.VG)(t.speed)/n.a5*i,e.decay=n.WH-(0,a.VG)(t.decay),e.status=r.H.increasing,e.loops=n.hK,e.maxLoops=(0,a.VG)(t.count),e.time=n.tR,e.delayTime=(0,a.VG)(t.delay)*n.Xu,t.sync||(e.velocity*=(0,a.G0)(),e.value*=(0,a.G0)()),e.initialValue=e.value,e.offset=(0,a.DT)(t.offset)):e.velocity=n.jn}function T(e,t,i){if(!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(e.time??=0,(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=i.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0)))return;let n=e.offset?(0,a.vE)(e.offset):0,o=(e.velocity??0)*i.factor+3.6*n,s=e.decay??1,l=e.max,d=e.min;t&&e.status!==r.H.increasing?(e.value-=o,e.value<d&&(e.loops??=0,e.loops++,e.status=r.H.increasing)):(e.value+=o,e.value>l&&(e.loops??=0,e.loops++,t?e.status=r.H.decreasing:e.value-=l)),e.velocity&&1!==s&&(e.velocity*=s),e.value=(0,a.qE)(e.value,d,l)}function F(e,t){if(!e)return;let{h:i,s:a,l:n}=e;T(i,!1,t),T(a,!0,t),T(n,!0,t)}function A(e,t,i){return{h:e.h,s:e.s,l:e.l+(t===s.H.darken?-n.iU:n.iU)*i}}},5576(e,t,i){i.d(t,{B:()=>n,t:()=>o});let a={debug:console.debug,error:(e,t)=>{console.error(`tsParticles - Error - ${e}`,t)},info:console.info,log:console.log,trace:console.trace,verbose:console.log,warning:console.warn};function n(e){a.debug=e.debug,a.error=e.error,a.info=e.info,a.log=e.log,a.verbose=e.verbose,a.warning=e.warning}function o(){return a}},3404(e,t,i){i.d(t,{$m:()=>R,AD:()=>p,DT:()=>function e(t,i){if(t===i||void 0===i&&(0,s.Et)(t))return t;let a=x(t),n=w(t);return void 0!==i?{min:Math.min(a,i),max:Math.max(n,i)}:e(a,n)},G0:()=>c,JY:()=>k,M3:()=>D,Mh:()=>T,Nx:()=>A,OE:()=>u,OW:()=>_,Sc:()=>z,Sg:()=>x,VG:()=>b,W9:()=>w,Yf:()=>S,e4:()=>h,eh:()=>E,gp:()=>O,i0:()=>f,jh:()=>m,l1:()=>F,pu:()=>P,px:()=>v,qE:()=>g,qM:()=>I,vE:()=>y,vr:()=>M});var a=i(1341),n=i(7574),o=i(1859),s=i(1282);let r=Math.PI/180,l=Math.random,d={nextFrame:e=>requestAnimationFrame(e),cancel:e=>{cancelAnimationFrame(e)}};function u(e=Math.random){l=e}function c(){return g(l(),0,1-Number.EPSILON)}function h(e,t){return c()*(t-e)+e}function p(e,t){d.nextFrame=e,d.cancel=t}function f(e){return d.nextFrame(e)}function v(e){d.cancel(e)}function g(e,t,i){return Math.min(Math.max(e,t),i)}function m(e,t,i,a){return Math.floor((e*i+t*a)/(i+a))}function y(e){let t=w(e),i=x(e);return t===i&&(i=0),h(i,t)}function b(e){return(0,s.Et)(e)?e:y(e)}function x(e){return(0,s.Et)(e)?e:e.min}function w(e){return(0,s.Et)(e)?e:e.max}function M(e,t){let i=e.x-t.x,a=e.y-t.y;return{dx:i,dy:a,distance:Math.hypot(i,a)}}function z(e,t){let i=e.x-t.x,a=e.y-t.y;return i*i+a*a}function S(e,t){return Math.sqrt(z(e,t))}function O(e,t,i){return z(e,t)<=i*i}function P(e){return e*r}function k(e,t,i){if((0,s.Et)(e))return e*r;switch(e){case a.F.top:return-Math.PI*n.MX;case a.F.topRight:return-Math.PI*n.$G;case a.F.right:return n.Ie;case a.F.bottomRight:return Math.PI*n.$G;case a.F.bottom:return Math.PI*n.MX;case a.F.bottomLeft:return Math.PI*n.Rq;case a.F.left:return Math.PI;case a.F.topLeft:return-Math.PI*n.Rq;case a.F.inside:return Math.atan2(i.y-t.y,i.x-t.x);case a.F.outside:return Math.atan2(t.y-i.y,t.x-i.x);default:return c()*n.R1}}function R(e){let t=o.M.origin;return t.length=1,t.angle=e,t}function _(e,t,i,a){return o.M.create(e.x*(i-a)/(i+a)+t.x*n.gd*a/(i+a),e.y)}function E(e){return e.position?.x!==void 0&&void 0!==e.position.y?{x:e.position.x*e.size.width/n.a5,y:e.position.y*e.size.height/n.a5}:void 0}function T(e){return{x:(e.position?.x??c()*n.a5)*e.size.width/n.a5,y:(e.position?.y??c()*n.a5)*e.size.height/n.a5}}function F(e){let t={x:e.position?.x!==void 0?b(e.position.x):void 0,y:e.position?.y!==void 0?b(e.position.y):void 0};return T({size:e.size,position:t})}function A(e){let{position:t,size:i}=e;return{x:t?.x??c()*i.width,y:t?.y??c()*i.height}}function I(e){let t={x:e.position?.x!==void 0?b(e.position.x):void 0,y:e.position?.y!==void 0?b(e.position.y):void 0};return A({size:e.size,position:t})}function D(e){return e?e.endsWith("%")?parseFloat(e)/n.a5:parseFloat(e):1}},3468(e,t,i){i.d(t,{Z:()=>n,y:()=>o});var a=i(2926);function n(e,...t){for(let i of t)e.load(i)}function o(e,t,...i){let s=new a.U(e,t);return n(s,...i),s}},1282(e,t,i){function a(e){return"boolean"==typeof e}function n(e){return"string"==typeof e}function o(e){return"number"==typeof e}function s(e){return"function"==typeof e}function r(e){return"object"==typeof e&&null!==e}function l(e){return Array.isArray(e)}function d(e){return null==e}i.d(t,{Et:()=>o,Gv:()=>r,Kg:()=>n,Lm:()=>a,Tn:()=>s,cy:()=>l,kZ:()=>d})},7818(e,t,i){i.d(t,{AE:()=>S,BR:()=>m,Bj:()=>p,E9:()=>F,HQ:()=>C,Kp:()=>V,O2:()=>z,Ot:()=>$,T5:()=>v,TA:()=>R,Tg:()=>O,Tj:()=>M,UC:()=>I,Vh:()=>w,Xs:()=>E,YC:()=>A,hJ:()=>L,hn:()=>b,lV:()=>g,n0:()=>x,pE:()=>P,q8:()=>f,tG:()=>y,td:()=>D,w3:()=>_,wJ:()=>k,zw:()=>function e(t,...i){for(let a of i){if((0,o.kZ)(a))continue;if(!(0,o.Gv)(a)){t=a;continue}Array.isArray(a)?Array.isArray(t)||(t=[]):(!(0,o.Gv)(t)||Array.isArray(t))&&(t={});let i=Object.keys(a),n=new Set(["__proto__","constructor","prototype"]);if(!i.some(e=>{let t=a[e];return(0,o.Gv)(t)||Array.isArray(t)})){let e=t;for(let t of i)if(!n.has(t)&&t in a){let i=a[t];void 0!==i&&(e[t]=i)}continue}for(let o of i){if(n.has(o))continue;let i=t,s=a[o];i[o]=Array.isArray(s)?s.map(t=>e(void 0,t)):e(i[o],s)}}return t}});var a=i(3404),n=i(7574),o=i(1282),s=i(9798),r=i(3608),l=i(1352),d=i(2487),u=i(4568),c=i(257),h=i(1859);function p(e,t){let i=new Map,a=t?.maxSize,n=t?.ttlMs,o=t?.keyFn,s=(e,t=new WeakSet)=>{if(null===e)return"null";let i=typeof e;if("undefined"===i)return"undefined";if("number"===i||"boolean"===i||"string"===i)return JSON.stringify(e);if("function"===i)try{return e.toString()}catch{return'"[Function]"'}if("symbol"===i)try{return e.toString()}catch{return'"[Symbol]"'}if(Array.isArray(e))return`[${e.map(e=>s(e,t)).join(",")}]`;if(t.has(e))return'"[Circular]"';t.add(e);let a=Object.keys(e).sort();return`{${a.map(i=>`${JSON.stringify(i)}:${s(e[i],t)}`).join(",")}}`};return(...t)=>{let r,l=(r=t,o?o(r):s(r)),d=Date.now(),u=i.get(l);if(void 0!==u)if(!n||!(d-u.ts>n))return i.delete(l),i.set(l,{value:u.value,ts:u.ts}),u.value;else i.delete(l);let c=e(...t);if(i.set(l,{value:c,ts:d}),"number"==typeof a&&a>=0)for(;i.size>a;){let e=i.keys().next().value;if(void 0===e)break;i.delete(e)}return c}}function f(){return"u">typeof matchMedia}function v(){return globalThis.document}function g(e){if(f())return matchMedia(e)}function m(e){if("u">typeof IntersectionObserver)return new IntersectionObserver(e)}function y(e){if("u">typeof MutationObserver)return new MutationObserver(e)}function b(e,t){return e===t||(0,o.cy)(t)&&t.includes(e)}function x(e){return Math.floor((0,a.G0)()*e.length)}function w(e,t,i=!0){return e[void 0!==t&&i?t%e.length:x(e)]}function M(e,t,i,a,n){return z(S(e,a??0),t,i,n)}function z(e,t,i,a){let n=!0;return a&&a!==d.v.bottom||(n=e.top<t.height+i.x),n&&(!a||a===d.v.left)&&(n=e.right>i.x),n&&(!a||a===d.v.right)&&(n=e.left<t.width+i.y),n&&(!a||a===d.v.top)&&(n=e.bottom>i.y),n}function S(e,t){return{bottom:e.y+t,left:e.x-t,right:e.x+t,top:e.y-t}}function O(e){return{position:e.getPosition(),radius:e.getRadius(),mass:e.getMass(),velocity:e.velocity,factor:h.M.create((0,a.VG)(e.options.bounce.horizontal.value),(0,a.VG)(e.options.bounce.vertical.value))}}function P(e,t){let{x:i,y:n}=e.velocity.sub(t.velocity),[o,s]=[e.position,t.position],{dx:r,dy:l}=(0,a.vr)(s,o);if(i*r+n*l<0)return;let d=-Math.atan2(l,r),u=e.mass,c=t.mass,h=e.velocity.rotate(d),p=t.velocity.rotate(d),f=(0,a.OW)(h,p,u,c),v=(0,a.OW)(p,h,u,c),g=f.rotate(-d),m=v.rotate(-d);e.velocity.x=g.x*e.factor.x,e.velocity.y=g.y*e.factor.y,t.velocity.x=m.x*t.factor.x,t.velocity.y=m.y*t.factor.y}function k(e,t){return(0,o.cy)(e)?e.map((e,i)=>t(e,i)):t(e,0)}function R(e,t,i){return(0,o.cy)(e)?w(e,t,i):e}function _(e,t){return(0,o.cy)(e)?e.find((e,i)=>t(e,i)):t(e,0)?e:void 0}function E(e,t){let i=e.value,o=e.animation,l={delayTime:(0,a.VG)(o.delay)*n.Xu,enable:o.enable,value:(0,a.VG)(e.value)*t,max:(0,a.W9)(i)*t,min:(0,a.Sg)(i)*t,loops:0,maxLoops:(0,a.VG)(o.count),time:0};if(o.enable){switch(l.decay=1-(0,a.VG)(o.decay),o.mode){case s.g.increase:l.status=r.H.increasing;break;case s.g.decrease:l.status=r.H.decreasing;break;case s.g.random:l.status=(0,a.G0)()>=n.MX?r.H.increasing:r.H.decreasing}let e=o.mode===s.g.auto;switch(o.startValue){case c.S.min:l.value=l.min,e&&(l.status=r.H.increasing);break;case c.S.max:l.value=l.max,e&&(l.status=r.H.decreasing);break;case c.S.random:default:l.value=(0,a.vE)(l),e&&(l.status=(0,a.G0)()>=n.MX?r.H.increasing:r.H.decreasing)}}return l.initialValue=l.value,l}function T(e,t){if(e.mode!==u.q.percent){let{mode:t,...i}=e;return i}return"x"in e?{x:e.x/n.a5*t.width,y:e.y/n.a5*t.height}:{width:e.width/n.a5*t.width,height:e.height/n.a5*t.height}}function F(e,t){return T(e,t)}function A(e,t){return T(e,t)}function I(e,t,i,n,o){if(e.destroyed||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let s=(t.velocity??0)*o.factor,d=t.min,u=t.max,c=t.decay??1;if(t.time??=0,(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=o.value),!((t.delayTime??0)>0)||!(t.time<(t.delayTime??0))){switch(t.status){case r.H.increasing:t.value>=u?(i?t.status=r.H.decreasing:t.value-=u,t.loops??=0,t.loops++):t.value+=s;break;case r.H.decreasing:t.value<=d?(i?t.status=r.H.increasing:t.value+=u,t.loops??=0,t.loops++):t.value-=s}t.velocity&&1!==c&&(t.velocity*=c);var h=t.value;switch(n){case l.V.max:h>=u&&e.destroy();break;case l.V.min:h<=d&&e.destroy()}t.value=(0,a.qE)(t.value,d,u)}}function D(e){let t=v().createElement("div").style;for(let i in e){let a=e[i];if(!(i in e)||(0,o.kZ)(a))continue;let n=e.getPropertyValue?.(a);if(!n)continue;let s=e.getPropertyPriority?.(a);s?t.setProperty(a,n,s):t.setProperty(a,n)}return t}let L=p(function(e){let t=v().createElement("div").style,i={width:"100%",height:"100%",margin:"0",padding:"0",borderWidth:"0",position:"fixed",zIndex:e.toString(10),"z-index":e.toString(10),top:"0",left:"0"};for(let e in i){let a=i[e];void 0!==a&&t.setProperty(e,a)}return t});function V(e,t,i,a,n){if(a){let a={passive:!0};(0,o.Lm)(n)?a.capture=n:void 0!==n&&(a=n),e.addEventListener(t,i,a)}else e.removeEventListener(t,i,n)}async function C(e,t,i,a=!1){let n=t.get(e);return(!n||a)&&(n=await Promise.all([...i.values()].map(t=>t(e))),t.set(e,n)),n}async function $(e,t,i,a=!1){let n=t.get(e);return(!n||a)&&(n=new Map(await Promise.all([...i.entries()].map(([t,i])=>i(e).then(e=>[t,e])))),t.set(e,n)),n}}},u={};function c(e){var t=u[e];if(void 0!==t)return t.exports;var i=u[e]={exports:{}};return d[e](i,i.exports,c),i.exports}c.m=d,c.d=(e,t)=>{for(var i in t)c.o(t,i)&&!c.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((t,i)=>(c.f[i](e,t),t),[])),c.u=e=>""+e+".min.js",c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),h={},c.l=(e,t,i,a)=>{if(h[e])return void h[e].push(t);if(void 0!==i)for(var n,o,s=document.getElementsByTagName("script"),r=0;r<s.length;r++){var l=s[r];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="@tsparticles/engine:"+i){n=l;break}}n||(o=!0,(n=document.createElement("script")).charset="utf-8",c.nc&&n.setAttribute("nonce",c.nc),n.setAttribute("data-webpack","@tsparticles/engine:"+i),n.src=e),h[e]=[t];var d=(t,i)=>{n.onerror=n.onload=null,clearTimeout(u);var a=h[e];if(delete h[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach(e=>e(i)),t)return t(i)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=d.bind(null,n.onerror),n.onload=d.bind(null,n.onload),o&&document.head.appendChild(n)},c.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.g.importScripts&&(p=c.g.location+"");var h,p,f=c.g.document;if(!p&&f&&(f.currentScript&&"SCRIPT"===f.currentScript.tagName.toUpperCase()&&(p=f.currentScript.src),!p)){var v=f.getElementsByTagName("script");if(v.length)for(var g=v.length-1;g>-1&&(!p||!/^http(s?):/.test(p));)p=v[g--].src}if(!p)throw Error("Automatic publicPath is not supported in this browser");c.p=p=p.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e={397:0},c.f.j=(t,i)=>{var a=c.o(e,t)?e[t]:void 0;if(0!==a)if(a)i.push(a[2]);else{var n=new Promise((i,n)=>a=e[t]=[i,n]);i.push(a[2]=n);var o=c.p+c.u(t),s=Error();c.l(o,i=>{if(c.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=i&&("load"===i.type?"missing":i.type),o=i&&i.target&&i.target.src;s.message="Loading chunk "+t+` failed.
|
|
2
|
-
(`+n+": "+o+")",s.name="ChunkLoadError",s.type=n,s.request=o,a[1](s)}},"chunk-"+t,t)}},t=(t,i)=>{var a,n,[o,s,r]=i,l=0;if(o.some(t=>0!==e[t])){for(a in s)c.o(s,a)&&(c.m[a]=s[a]);r&&r(c)}for(t&&t(i);l<o.length;l++)n=o[l],c.o(e,n)&&e[n]&&e[n][0](),e[n]=0},(i=this.webpackChunk_tsparticles_engine=this.webpackChunk_tsparticles_engine||[]).forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i));var m={};c.r(m),c.d(m,{AlterType:()=>L.H,AnimatableColor:()=>Z.A,AnimationMode:()=>F.g,AnimationOptions:()=>G.p,AnimationStatus:()=>B.H,AnimationValueWithRandom:()=>em.Jm,Background:()=>q.V,BaseRange:()=>R.dg,Circle:()=>R.jl,ColorAnimation:()=>H.e,DestroyType:()=>V.V,EasingType:()=>l,EventType:()=>w.B,Fill:()=>U.S,FullScreen:()=>j.m,GradientType:()=>r,HslAnimation:()=>N.i,LimitMode:()=>A.d,Move:()=>ee.y,MoveAngle:()=>et.h,MoveCenter:()=>ei.Z,MoveDirection:()=>E.F,MoveGravity:()=>ea.y,MovePath:()=>eo.v,Opacity:()=>eu.Y,OpacityAnimation:()=>ec.I,Options:()=>W.J,OptionsColor:()=>K.O,OutMode:()=>I.Y,OutModeDirection:()=>T.v,OutModes:()=>en.j,ParticleOutType:()=>C.x,ParticlesBounce:()=>X.w,ParticlesBounceFactor:()=>J.F,ParticlesDensity:()=>ed.M,ParticlesNumber:()=>er.N,ParticlesNumberLimit:()=>el.A,ParticlesOptions:()=>Q.U,PixelMode:()=>D.q,RangedAnimationOptions:()=>G.Q,RangedAnimationValueWithRandom:()=>em.AI,Rectangle:()=>R.M_,ResizeEvent:()=>eg.z,RotateDirection:()=>s,Shape:()=>eh.y,Size:()=>ep.o,SizeAnimation:()=>ef.q,Spin:()=>es.t,StartValueType:()=>$.S,Stroke:()=>Y.t,ValueWithRandom:()=>em.PV,Vector:()=>_.M,Vector3d:()=>_.p,ZIndex:()=>ev.P,alterHsl:()=>eb.yx,animate:()=>S.i0,areBoundsInside:()=>b.O2,arrayRandomIndex:()=>b.n0,calcExactPositionOrRandomFromSize:()=>S.Nx,calcExactPositionOrRandomFromSizeRanged:()=>S.qM,calcPositionFromSize:()=>S.eh,calcPositionOrRandomFromSize:()=>S.Mh,calcPositionOrRandomFromSizeRanged:()=>S.l1,calculateBounds:()=>b.AE,cancelAnimation:()=>S.px,canvasFirstIndex:()=>y.Nx,canvasTag:()=>y.RF,checkDistance:()=>S.gp,circleBounce:()=>b.pE,circleBounceDataFromParticle:()=>b.Tg,clamp:()=>S.qE,clear:()=>ey.IU,cloneStyle:()=>b.td,collisionVelocity:()=>S.OW,colorMix:()=>eb.EY,colorToHsl:()=>eb.mK,colorToRgb:()=>eb.qe,countOffset:()=>y.nq,decayOffset:()=>y.WH,deepExtend:()=>b.zw,defaultAlpha:()=>y.aZ,defaultAngle:()=>y.tA,defaultCompositeValue:()=>y.yj,defaultDensityFactor:()=>y.lA,defaultFps:()=>y.z$,defaultFpsLimit:()=>y.i8,defaultLoops:()=>y.hK,defaultOpacity:()=>y.hv,defaultRatio:()=>y.$x,defaultReduceFactor:()=>y.Zp,defaultRemoveQuantity:()=>y.xd,defaultRetryCount:()=>y.rq,defaultRgbMin:()=>y.Fl,defaultTime:()=>y.tR,defaultTransform:()=>y.Ug,defaultTransformValue:()=>y.zs,defaultVelocity:()=>y.jn,defaultZoom:()=>y.Pf,degToRad:()=>S.pu,deleteCount:()=>y.LD,double:()=>y.gd,doublePI:()=>y.R1,drawAfterEffect:()=>ey.k,drawBeforeEffect:()=>ey.z5,drawParticle:()=>ey.p0,drawParticlePlugin:()=>ey.Wb,drawShape:()=>ey.KG,drawShapeAfterDraw:()=>ey.gF,drawShapeBeforeDraw:()=>ey.VG,empty:()=>y.Ie,executeOnSingleOrMultiple:()=>b.wJ,findItemFromSingleOrMultiple:()=>b.w3,generatedAttribute:()=>y.eb,generatedFalse:()=>y.X$,generatedTrue:()=>y.ce,getDistance:()=>S.Yf,getDistanceSq:()=>S.Sc,getDistances:()=>S.vr,getFullScreenStyle:()=>b.hJ,getHslAnimationFromHsl:()=>eb.pz,getHslFromAnimation:()=>eb.O_,getItemMapFromInitializer:()=>b.Ot,getItemsFromInitializer:()=>b.HQ,getLinkColor:()=>eb._h,getLinkRandomColor:()=>eb.PG,getLogger:()=>z.t,getParticleBaseVelocity:()=>S.$m,getParticleDirectionAngle:()=>S.JY,getPosition:()=>b.E9,getRandom:()=>S.G0,getRandomInRange:()=>S.e4,getRandomRgbColor:()=>eb.OH,getRangeMax:()=>S.W9,getRangeMin:()=>S.Sg,getRangeValue:()=>S.VG,getSize:()=>b.YC,getStyleFromHsl:()=>eb.LC,getStyleFromRgb:()=>eb.xx,hMax:()=>y.vS,hMin:()=>y.L1,hPhase:()=>y.U0,half:()=>y.MX,hasMatchMedia:()=>b.q8,hslToRgb:()=>eb.YL,hslaToRgba:()=>eb.ay,identity:()=>y.D_,initParticleNumericAnimationValue:()=>b.Xs,inverseFactorNumerator:()=>y.hB,isArray:()=>ew.cy,isBoolean:()=>ew.Lm,isFunction:()=>ew.Tn,isInArray:()=>b.hn,isNull:()=>ew.kZ,isNumber:()=>ew.Et,isObject:()=>ew.Gv,isPointInside:()=>b.Tj,isString:()=>ew.Kg,itemFromArray:()=>b.Vh,itemFromSingleOrMultiple:()=>b.TA,lFactor:()=>y.iU,lMax:()=>y.$_,lMin:()=>y.vd,lengthOffset:()=>y.K3,loadMinIndex:()=>y.PZ,loadOptions:()=>ex.Z,loadParticlesOptions:()=>ex.y,loadRandomFactor:()=>y.$v,manageListener:()=>b.Kp,memoize:()=>b.Bj,midColorValue:()=>y.BW,millisecondsToSeconds:()=>y.Xu,minCount:()=>y.wM,minFpsLimit:()=>y.DN,minIndex:()=>y.z9,minLimit:()=>y.ou,minStrokeWidth:()=>y.Dv,minVelocity:()=>y.GW,minZ:()=>y.X_,minimumSize:()=>y.w2,mix:()=>S.jh,none:()=>y.dv,one:()=>y.xH,originPoint:()=>y.bo,paintBase:()=>ey.Sn,paintImage:()=>ey.Md,parseAlpha:()=>S.M3,percentDenominator:()=>y.a5,phaseNumerator:()=>y.BF,quarter:()=>y.$G,randomColorValue:()=>y.mR,randomInRangeValue:()=>S.vE,rangeColorToHsl:()=>eb.R5,rangeColorToRgb:()=>eb.BN,removeDeleteCount:()=>y.JC,removeMinIndex:()=>y.vF,resizeEvent:()=>y.NF,rgbMax:()=>y.oi,rgbToHsl:()=>eb.K6,sMax:()=>y.eu,sMin:()=>y.yx,sNormalizedOffset:()=>y.aE,safeDocument:()=>b.T5,safeIntersectionObserver:()=>b.BR,safeMatchMedia:()=>b.lV,safeMutationObserver:()=>b.tG,setAnimationFunctions:()=>S.AD,setLogger:()=>z.B,setRandom:()=>S.OE,setRangeValue:()=>S.DT,sextuple:()=>y.zg,spatialHashGridCellSize:()=>y.iX,squareExp:()=>y.dm,stringToAlpha:()=>eb.zI,stringToRgb:()=>eb.eg,threeQuarter:()=>y.Rq,triple:()=>y.Nu,tryCountIncrement:()=>y.Eo,tsParticles:()=>eM,updateAnimation:()=>b.UC,updateColor:()=>eb.Jv,updateColorValue:()=>eb.Ko,visibilityChangeEvent:()=>y.nK,zIndexFactorOffset:()=>y.RV});var y=c(7574),b=c(7818);class x{_listeners;constructor(){this._listeners=new Map}addEventListener(e,t){this.removeEventListener(e,t);let i=this._listeners.get(e);i||(i=[],this._listeners.set(e,i)),i.push(t)}dispatchEvent(e,t){let i=this._listeners.get(e);i?.forEach(e=>{e(t)})}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,t){let i=this._listeners.get(e);if(!i)return;let a=i.length,n=i.indexOf(t);n<y.z9||(a===y.LD?this._listeners.delete(e):i.splice(n,y.LD))}}var w=c(9898);class M{colorManagers=new Map;easingFunctions=new Map;effectDrawers=new Map;initializers={effects:new Map,shapes:new Map,updaters:new Map};palettes=new Map;plugins=[];presets=new Map;shapeDrawers=new Map;updaters=new Map;_allLoadersSet=new Set;_configs=new Map;_engine;_executedSet=new Set;_initialized=!1;_isRunningLoaders=!1;_loadPromises=new Set;constructor(e){this._engine=e}get configs(){let e={};for(let[t,i]of this._configs)e[t]=i;return e}addColorManager(e,t){this.colorManagers.set(e,t)}addConfig(e){let t=e.key??e.name??"default";this._configs.set(t,e),this._engine.dispatchEvent(w.B.configAdded,{data:{name:t,config:e}})}addEasing(e,t){this.easingFunctions.get(e)||this.easingFunctions.set(e,t)}addEffect(e,t){this.initializers.effects.set(e,t)}addPalette(e,t){this.palettes.set(e,t)}addParticleUpdater(e,t){this.initializers.updaters.set(e,t)}addPlugin(e){this.getPlugin(e.id)||this.plugins.push(e)}addPreset(e,t,i=!1){(i||!this.getPreset(e))&&this.presets.set(e,t)}addShape(e,t){for(let i of e)this.initializers.shapes.set(i,t)}clearPlugins(e){this.effectDrawers.delete(e),this.shapeDrawers.delete(e),this.updaters.delete(e)}getEasing(e){return this.easingFunctions.get(e)??(e=>e)}getEffectDrawers(e,t=!1){return(0,b.Ot)(e,this.effectDrawers,this.initializers.effects,t)}getPalette(e){return this.palettes.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}async getShapeDrawers(e,t=!1){return(0,b.Ot)(e,this.shapeDrawers,this.initializers.shapes,t)}async getUpdaters(e,t=!1){return(0,b.HQ)(e,this.updaters,this.initializers.updaters,t)}async init(){if(!this._initialized&&!this._isRunningLoaders){this._isRunningLoaders=!0,this._executedSet=new Set,this._allLoadersSet=new Set(this._loadPromises);try{for(let e of this._allLoadersSet)await this._runLoader(e,this._executedSet,this._allLoadersSet)}finally{this._loadPromises.clear(),this._isRunningLoaders=!1,this._initialized=!0}}}loadParticlesOptions(e,t,...i){let a=this.updaters.get(e);a&&a.forEach(e=>e.loadOptions?.(t,...i))}async register(...e){if(this._initialized)throw Error("Register plugins can only be done before calling tsParticles.load()");for(let t of e)this._isRunningLoaders?await this._runLoader(t,this._executedSet,this._allLoadersSet):this._loadPromises.add(t)}async _runLoader(e,t,i){t.has(e)||(t.add(e),i.add(e),await e(this._engine))}}var z=c(5576),S=c(3404);let O="100%";async function P(e){let t=(0,b.TA)(e.url,e.index);if(!t)return e.fallback;let i=await fetch(t);return i.ok?await i.json():((0,z.t)().error(`${i.status.toString()} while retrieving config file`),e.fallback)}class k{pluginManager=new M(this);_domArray=[];_eventDispatcher=new x;_initialized=!1;get items(){return this._domArray}get version(){return"4.0.0-beta.5"}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}checkVersion(e){if(this.version!==e)throw Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${e}`)}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}async init(){this._initialized||(await this.pluginManager.init(),this._initialized=!0)}item(e){let{items:t}=this,i=t[e];return i?.destroyed?void t.splice(e,y.JC):i}async load(e){var t;let i,a;await this.init();let{Container:n}=await c.e(155).then(c.bind(c,2155)),o=e.id??e.element?.id??`tsparticles${Math.floor((0,S.G0)()*y.$v).toString()}`,{index:s,url:r}=e,l=r?await P({fallback:e.options,url:r,index:s}):e.options,d=(0,b.TA)(l,s),{items:u}=this,h=u.findIndex(e=>e.id.description===o),p=new n({dispatchCallback:(e,t)=>{this.dispatchEvent(e,t)},id:o,onDestroy:e=>{if(!e)return;let t=this.items,i=t.indexOf(p);i>=y.vF&&t.splice(i,y.JC)},pluginManager:this.pluginManager,sourceOptions:d});if(h>=y.PZ){let e=this.item(h),t=e?y.xH:y.dv;e&&!e.destroyed&&e.destroy(!1),u.splice(h,t,p)}else u.push(p);let f=(e=>{let t,i=(0,b.T5)();if(e instanceof HTMLCanvasElement||e.tagName.toLowerCase()===y.RF)t=e,t.dataset[y.eb]??=y.X$;else{let a=e.getElementsByTagName(y.RF)[y.Nx];a?(t=a).dataset[y.eb]=y.X$:((t=i.createElement(y.RF)).dataset[y.eb]=y.ce,e.appendChild(t))}return t.style.width||=O,t.style.height||=O,t})((t=e.element,i=(0,b.T5)(),(a=t??i.getElementById(o))||((a=i.createElement("canvas")).id=o,a.dataset[y.eb]=y.ce,i.body.append(a)),a));return p.canvas.loadCanvas(f),await p.start(),p}async refresh(e=!0){e&&await Promise.all(this.items.map(e=>e.refresh()))}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}}var R=c(8450),_=c(1859),E=c(1341);(a=s||(s={})).clockwise="clockwise",a.counterClockwise="counter-clockwise",a.random="random";var T=c(2487),F=c(9798),A=c(7171),I=c(9300),D=c(4568),L=c(2354),V=c(1352);(n=r||(r={})).linear="linear",n.radial="radial",n.random="random";var C=c(6028),$=c(257);(o=l||(l={})).easeInBack="ease-in-back",o.easeInBounce="ease-in-bounce",o.easeInCirc="ease-in-circ",o.easeInCubic="ease-in-cubic",o.easeInElastic="ease-in-elastic",o.easeInExpo="ease-in-expo",o.easeInGaussian="ease-in-gaussian",o.easeInLinear="ease-in-linear",o.easeInQuad="ease-in-quad",o.easeInQuart="ease-in-quart",o.easeInQuint="ease-in-quint",o.easeInSigmoid="ease-in-sigmoid",o.easeInSine="ease-in-sine",o.easeInSmoothstep="ease-in-smoothstep",o.easeOutBack="ease-out-back",o.easeOutBounce="ease-out-bounce",o.easeOutCirc="ease-out-circ",o.easeOutCubic="ease-out-cubic",o.easeOutElastic="ease-out-elastic",o.easeOutExpo="ease-out-expo",o.easeOutGaussian="ease-out-gaussian",o.easeOutLinear="ease-out-linear",o.easeOutQuad="ease-out-quad",o.easeOutQuart="ease-out-quart",o.easeOutQuint="ease-out-quint",o.easeOutSigmoid="ease-out-sigmoid",o.easeOutSine="ease-out-sine",o.easeOutSmoothstep="ease-out-smoothstep",o.easeInOutBack="ease-in-out-back",o.easeInOutBounce="ease-in-out-bounce",o.easeInOutCirc="ease-in-out-circ",o.easeInOutCubic="ease-in-out-cubic",o.easeInOutElastic="ease-in-out-elastic",o.easeInOutExpo="ease-in-out-expo",o.easeInOutGaussian="ease-in-out-gaussian",o.easeInOutLinear="ease-in-out-linear",o.easeInOutQuad="ease-in-out-quad",o.easeInOutQuart="ease-in-out-quart",o.easeInOutQuint="ease-in-out-quint",o.easeInOutSigmoid="ease-in-out-sigmoid",o.easeInOutSine="ease-in-out-sine",o.easeInOutSmoothstep="ease-in-out-smoothstep";var B=c(3608),Z=c(8468),G=c(8527),q=c(6322),H=c(6676),j=c(2292),N=c(2580),W=c(7849),K=c(682),X=c(2175),J=c(2816),Q=c(2926),U=c(694),Y=c(7359),ee=c(5028),et=c(3761),ei=c(3389),ea=c(4892),en=c(2221),eo=c(2183),es=c(9453),er=c(9611),el=c(5524),ed=c(9020),eu=c(8976),ec=c(6280),eh=c(4332),ep=c(804),ef=c(3244),ev=c(8250),eg=c(7319),em=c(149),ey=c(8862),eb=c(3723),ex=c(3468),ew=c(1282);let eM=new k;return globalThis.tsParticles=eM,m})());
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var a in i)("object"==typeof exports?exports:e)[a]=i[a]}}(this,()=>(()=>{"use strict";var e,t,i,a,n,o,s,r,l,d={9829(e,t,i){i.d(t,{$G:()=>L,$_:()=>T,$v:()=>K,$x:()=>P,BF:()=>eg,BW:()=>p,DN:()=>N,D_:()=>ed,Dv:()=>eu,Eo:()=>Y,Fl:()=>em,GW:()=>C,Ie:()=>D,JC:()=>H,K3:()=>eo,L1:()=>F,LD:()=>er,MX:()=>l,NF:()=>o,Nu:()=>ep,Nx:()=>W,PZ:()=>X,Pf:()=>ew,R1:()=>v,RF:()=>x,RV:()=>Z,Rq:()=>V,U0:()=>I,Ug:()=>c,WH:()=>U,X$:()=>b,X_:()=>ee,Xu:()=>d,Zp:()=>O,a5:()=>r,aE:()=>ev,aZ:()=>m,bo:()=>u,ce:()=>y,dm:()=>M,dv:()=>Q,eb:()=>a,eu:()=>E,gd:()=>f,hB:()=>k,hK:()=>eb,hv:()=>G,i8:()=>j,iU:()=>ec,iX:()=>z,jn:()=>ey,lA:()=>es,mR:()=>h,nK:()=>s,nq:()=>ei,oi:()=>_,ou:()=>et,rq:()=>w,tA:()=>el,tR:()=>ex,vF:()=>q,vS:()=>R,vd:()=>eh,w2:()=>B,wM:()=>ea,xH:()=>J,xd:()=>S,yj:()=>n,yx:()=>A,z$:()=>g,z9:()=>en,zg:()=>ef,zs:()=>$});let a="generated",n="source-over",o="resize",s="visibilitychange",r=100,l=.5,d=1e3,u={x:0,y:0,z:0},c={a:1,b:0,c:0,d:1},h="random",p="mid",f=2,v=2*Math.PI,g=60,m=1,y="true",b="false",x="canvas",w=0,M=2,z=100,S=1,P=1,O=1,k=1,_=255,R=360,E=100,T=100,F=0,A=0,I=60,D=0,L=.25,V=.75,C=0,$=1,B=0,Z=1,G=1,H=1,q=0,j=120,N=0,W=0,K=1e4,X=0,J=1,Q=0,U=1,Y=1,ee=0,et=0,ei=1,ea=0,en=0,eo=1,es=1,er=1,el=0,ed=1,eu=0,ec=1,eh=0,ep=3,ef=6,ev=1,eg=1,em=0,ey=0,eb=0,ex=0,ew=1},864(e,t,i){i.d(t,{dg:()=>r,jl:()=>l,M_:()=>d}),(a=n||(n={})).circle="circle",a.rectangle="rectangle";var a,n,o=i(8429),s=i(9829);class r{position;type;constructor(e,t,i){this.position={x:e,y:t},this.type=i}_resetPosition(e,t){this.position.x=e,this.position.y=t}}class l extends r{radius;constructor(e,t,i){super(e,t,n.circle),this.radius=i}contains(e){return(0,o.gp)(e,this.position,this.radius)}intersects(e){let t=this.position,i=e.position,a=this.radius,o=Math.abs(i.x-t.x),r=Math.abs(i.y-t.y);if(e instanceof l||e.type===n.circle)return a+e.radius>Math.hypot(o,r);if(e instanceof d||e.type===n.rectangle){let{width:t,height:i}=e.size;return Math.pow(o-t,s.dm)+Math.pow(r-i,s.dm)<=a**s.dm||o<=a+t&&r<=a+i||o<=t||r<=i}return!1}reset(e,t,i){return this._resetPosition(e,t),this.radius=i,this}}class d extends r{size;constructor(e,t,i,a){super(e,t,n.rectangle),this.size={height:a,width:i}}contains(e){let t=this.size.width,i=this.size.height,a=this.position;return e.x>=a.x&&e.x<=a.x+t&&e.y>=a.y&&e.y<=a.y+i}intersects(e){if(e instanceof l)return e.intersects(this);if(!(e instanceof d))return!1;let t=this.size.width,i=this.size.height,a=this.position,n=e.position,o=e.size,s=o.width,r=o.height;return n.x<a.x+t&&n.x+s>a.x&&n.y<a.y+i&&n.y+r>a.y}reset(e,t,i,a){return this._resetPosition(e,t),this.size.width=i,this.size.height=a,this}}},5360(e,t,i){i.d(t,{M:()=>s,p:()=>o});var a=i(9829);function n(e){return"z"in e?e.z:a.bo.z}class o{x;y;z;constructor(e=a.bo.x,t=a.bo.y,i=a.bo.z){this.x=e,this.y=t,this.z=i}static get origin(){return o.create(a.bo.x,a.bo.y,a.bo.z)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(e){return o.create(e.x,e.y,n(e))}static create(e,t,i){return"number"==typeof e?new o(e,t??a.bo.y,i??a.bo.z):new o(e.x,e.y,n(e))}add(e){return o.create(this.x+e.x,this.y+e.y,this.z+n(e))}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=n(e)}copy(){return o.clone(this)}div(e){return o.create(this.x/e,this.y/e,this.z/e)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**a.dm+this.y**a.dm}mult(e){return o.create(this.x*e,this.y*e,this.z*e)}multTo(e){this.x*=e,this.y*=e,this.z*=e}normalize(){let e=this.length;e!=a.dv&&this.multTo(a.hB/e)}rotate(e){return o.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e),a.bo.z)}setTo(e){this.x=e.x,this.y=e.y,this.z=n(e)}sub(e){return o.create(this.x-e.x,this.y-e.y,this.z-n(e))}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=n(e)}_updateFromAngle(e,t){this.x=Math.cos(e)*t,this.y=Math.sin(e)*t}}class s extends o{constructor(e=a.bo.x,t=a.bo.y){super(e,t,a.bo.z)}static get origin(){return s.create(a.bo.x,a.bo.y)}static clone(e){return s.create(e.x,e.y)}static create(e,t){return"number"==typeof e?new s(e,t??a.bo.y):new s(e.x,e.y)}}},9241(e,t,i){var a,n;i.d(t,{H:()=>a}),(n=a||(a={})).increasing="increasing",n.decreasing="decreasing"},6118(e,t,i){var a,n;i.d(t,{F:()=>a}),(n=a||(a={})).bottom="bottom",n.bottomLeft="bottom-left",n.bottomRight="bottom-right",n.left="left",n.none="none",n.right="right",n.top="top",n.topLeft="top-left",n.topRight="top-right",n.outside="outside",n.inside="inside"},3906(e,t,i){var a,n;i.d(t,{v:()=>a}),(n=a||(a={})).bottom="bottom",n.left="left",n.right="right",n.top="top"},3583(e,t,i){var a,n;i.d(t,{g:()=>a}),(n=a||(a={})).auto="auto",n.increase="increase",n.decrease="decrease",n.random="random"},4186(e,t,i){var a,n;i.d(t,{d:()=>a}),(n=a||(a={})).delete="delete",n.wait="wait"},5017(e,t,i){var a,n;i.d(t,{Y:()=>a}),(n=a||(a={})).bounce="bounce",n.none="none",n.out="out",n.destroy="destroy",n.split="split"},8557(e,t,i){var a,n;i.d(t,{q:()=>a}),(n=a||(a={})).precise="precise",n.percent="percent"},6383(e,t,i){var a,n;i.d(t,{H:()=>a}),(n=a||(a={})).darken="darken",n.enlighten="enlighten"},2293(e,t,i){var a,n;i.d(t,{V:()=>a}),(n=a||(a={})).none="none",n.max="max",n.min="min"},5871(e,t,i){var a,n;i.d(t,{B:()=>a}),(n=a||(a={})).configAdded="configAdded",n.containerInit="containerInit",n.particlesSetup="particlesSetup",n.containerStarted="containerStarted",n.containerStopped="containerStopped",n.containerDestroyed="containerDestroyed",n.containerPaused="containerPaused",n.containerPlay="containerPlay",n.containerBuilt="containerBuilt",n.particleAdded="particleAdded",n.particleDestroyed="particleDestroyed",n.particleRemoved="particleRemoved"},5937(e,t,i){var a,n;i.d(t,{x:()=>a}),(n=a||(a={})).normal="normal",n.inside="inside",n.outside="outside"},5678(e,t,i){var a,n;i.d(t,{S:()=>a}),(n=a||(a={})).max="max",n.min="min",n.random="random"},3097(e,t,i){i.d(t,{A:()=>s});var a=i(5279),n=i(9135),o=i(7421);class s extends o.O{animation;constructor(){super(),this.animation=new n.i}static create(e,t){let i=new s;return i.load(e),void 0!==t&&((0,a.Kg)(t)||(0,a.cy)(t)?i.load({value:t}):i.load(t)),i}load(e){if(super.load(e),(0,a.kZ)(e))return;let t=e.animation;void 0!==t&&(void 0===t.enable?this.animation.load(e.animation):this.animation.h.load(t))}}},120(e,t,i){i.d(t,{Q:()=>l,p:()=>r});var a=i(3583),n=i(5678),o=i(5279),s=i(8429);class r{count;decay;delay;enable;speed;sync;constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){(0,o.kZ)(e)||(void 0!==e.count&&(this.count=(0,s.DT)(e.count)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.speed&&(this.speed=(0,s.DT)(e.speed)),void 0!==e.decay&&(this.decay=(0,s.DT)(e.decay)),void 0!==e.delay&&(this.delay=(0,s.DT)(e.delay)),void 0!==e.sync&&(this.sync=e.sync))}}class l extends r{mode;startValue;constructor(){super(),this.mode=a.g.auto,this.startValue=n.S.random}load(e){super.load(e),(0,o.kZ)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.startValue&&(this.startValue=e.startValue))}}},3351(e,t,i){i.d(t,{V:()=>o});var a=i(7421),n=i(5279);class o{color;image;opacity;position;repeat;size;constructor(){this.color=new a.O,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(e){(0,n.kZ)(e)||(void 0!==e.color&&(this.color=a.O.create(this.color,e.color)),void 0!==e.image&&(this.image=e.image),void 0!==e.position&&(this.position=e.position),void 0!==e.repeat&&(this.repeat=e.repeat),void 0!==e.size&&(this.size=e.size),void 0!==e.opacity&&(this.opacity=e.opacity))}}},4507(e,t,i){i.d(t,{e:()=>s});var a=i(120),n=i(5279),o=i(8429);class s extends a.p{max;min;offset;constructor(e,t){super(),this.min=e,this.max=t,this.offset=0,this.sync=!0}load(e){super.load(e),(0,n.kZ)(e)||(void 0!==e.max&&(this.max=e.max),void 0!==e.min&&(this.min=e.min),void 0!==e.offset&&(this.offset=(0,o.DT)(e.offset)))}}},4581(e,t,i){i.d(t,{m:()=>n});var a=i(5279);class n{enable;zIndex;constructor(){this.enable=!0,this.zIndex=0}load(e){(0,a.kZ)(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.zIndex&&(this.zIndex=e.zIndex))}}},9135(e,t,i){i.d(t,{i:()=>s});var a=i(9829),n=i(4507),o=i(5279);class s{h=new n.e(a.L1,a.vS);l=new n.e(a.vd,a.$_);s=new n.e(a.yx,a.eu);load(e){(0,o.kZ)(e)||(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}}},8032(e,t,i){i.d(t,{J:()=>u});var a=i(9767),n=i(5279),o=i(3351),s=i(4581),r=i(5246),l=i(5811),d=i(8429);class u{autoPlay;background;clear;defaultThemes;delay;detectRetina;duration;fpsLimit;fullScreen;hdr;key;name;palette;particles;pauseOnBlur;pauseOnOutsideViewport;preset;resize;smooth;style;zLayers;_container;_pluginManager;constructor(e,t){this._pluginManager=e,this._container=t,this.autoPlay=!0,this.background=new o.V,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new s.m,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.hdr=!0,this.particles=(0,l.y)(this._pluginManager,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.resize=new r.z,this.smooth=!1,this.style={},this.zLayers=100}load(e){if((0,n.kZ)(e))return;void 0!==e.preset&&(this.preset=e.preset,(0,a.wJ)(this.preset,e=>{this._importPreset(e)})),void 0!==e.palette&&(this.palette=e.palette,this._importPalette(this.palette)),void 0!==e.autoPlay&&(this.autoPlay=e.autoPlay),void 0!==e.clear&&(this.clear=e.clear),void 0!==e.key&&(this.key=e.key),void 0!==e.name&&(this.name=e.name),void 0!==e.delay&&(this.delay=(0,d.DT)(e.delay));let t=e.detectRetina;void 0!==t&&(this.detectRetina=t),void 0!==e.duration&&(this.duration=(0,d.DT)(e.duration));let i=e.fpsLimit;void 0!==i&&(this.fpsLimit=i),void 0!==e.hdr&&(this.hdr=e.hdr),void 0!==e.pauseOnBlur&&(this.pauseOnBlur=e.pauseOnBlur),void 0!==e.pauseOnOutsideViewport&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),void 0!==e.zLayers&&(this.zLayers=e.zLayers),this.background.load(e.background);let o=e.fullScreen;(0,n.Lm)(o)?this.fullScreen.enable=o:this.fullScreen.load(o),this.particles.load(e.particles),this.resize.load(e.resize),this.style=(0,a.zw)(this.style,e.style),void 0!==e.smooth&&(this.smooth=e.smooth),this._pluginManager.plugins.forEach(t=>{t.loadOptions(this._container,this,e)})}_importPalette=e=>{let t=this._pluginManager.getPalette(e);t&&this.load({background:{color:t.background},blend:{enable:!0,mode:t.blendMode},particles:{palette:e}})};_importPreset=e=>{this.load(this._pluginManager.getPreset(e))}}},7421(e,t,i){i.d(t,{O:()=>n});var a=i(5279);class n{value;constructor(){this.value=""}static create(e,t){let i=new n;return i.load(e),void 0!==t&&((0,a.Kg)(t)||(0,a.cy)(t)?i.load({value:t}):i.load(t)),i}load(e){!(0,a.kZ)(e)&&((0,a.kZ)(e.value)||(this.value=e.value))}}},7484(e,t,i){i.d(t,{w:()=>o});var a=i(4487),n=i(5279);class o{horizontal;vertical;constructor(){this.horizontal=new a.F,this.vertical=new a.F}load(e){(0,n.kZ)(e)||(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}}},4487(e,t,i){i.d(t,{F:()=>n});var a=i(8536);class n extends a.PV{constructor(){super(),this.value=1}}},2109(e,t,i){i.d(t,{S:()=>s});var a=i(3097),n=i(5279),o=i(8429);class s{color;enable;opacity;constructor(){this.enable=!0,this.color=new a.A,this.color.value="#fff",this.opacity=1}load(e){(0,n.kZ)(e)||(void 0!==e.color&&(this.color=a.A.create(this.color,e.color)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.opacity&&(this.opacity=(0,o.DT)(e.opacity)))}}},6353(e,t,i){i.d(t,{y:()=>h});var a=i(6118),n=i(5279),o=i(1158),s=i(9904),r=i(2579),l=i(9976),d=i(1084),u=i(4e3),c=i(8429);class h{angle;center;decay;direction;distance;drift;enable;gravity;outModes;path;random;size;speed;spin;straight;vibrate;warp;constructor(){this.angle=new o.h,this.center=new s.Z,this.decay=0,this.distance={},this.direction=a.F.none,this.drift=0,this.enable=!1,this.gravity=new r.y,this.path=new l.v,this.outModes=new d.j,this.random=!1,this.size=!1,this.speed=2,this.spin=new u.t,this.straight=!1,this.vibrate=!1,this.warp=!1}load(e){if((0,n.kZ)(e))return;this.angle.load((0,n.Et)(e.angle)?{value:e.angle}:e.angle),this.center.load(e.center),void 0!==e.decay&&(this.decay=(0,c.DT)(e.decay)),void 0!==e.direction&&(this.direction=e.direction),void 0!==e.distance&&(this.distance=(0,n.Et)(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),void 0!==e.drift&&(this.drift=(0,c.DT)(e.drift)),void 0!==e.enable&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes;void 0!==t&&((0,n.Gv)(t)?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path),void 0!==e.random&&(this.random=e.random),void 0!==e.size&&(this.size=e.size),void 0!==e.speed&&(this.speed=(0,c.DT)(e.speed)),this.spin.load(e.spin),void 0!==e.straight&&(this.straight=e.straight),void 0!==e.vibrate&&(this.vibrate=e.vibrate),void 0!==e.warp&&(this.warp=e.warp)}}},1158(e,t,i){i.d(t,{h:()=>o});var a=i(5279),n=i(8429);class o{offset;value;constructor(){this.offset=0,this.value=90}load(e){(0,a.kZ)(e)||(void 0!==e.offset&&(this.offset=(0,n.DT)(e.offset)),void 0!==e.value&&(this.value=(0,n.DT)(e.value)))}}},9904(e,t,i){i.d(t,{Z:()=>o});var a=i(8557),n=i(5279);class o{mode;radius;x;y;constructor(){this.x=50,this.y=50,this.mode=a.q.percent,this.radius=0}load(e){(0,n.kZ)(e)||(void 0!==e.x&&(this.x=e.x),void 0!==e.y&&(this.y=e.y),void 0!==e.mode&&(this.mode=e.mode),void 0!==e.radius&&(this.radius=e.radius))}}},2579(e,t,i){i.d(t,{y:()=>o});var a=i(5279),n=i(8429);class o{acceleration;enable;inverse;maxSpeed;constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){(0,a.kZ)(e)||(void 0!==e.acceleration&&(this.acceleration=(0,n.DT)(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.inverse&&(this.inverse=e.inverse),void 0!==e.maxSpeed&&(this.maxSpeed=(0,n.DT)(e.maxSpeed)))}}},1084(e,t,i){i.d(t,{j:()=>o});var a=i(5017),n=i(5279);class o{bottom;default;left;right;top;constructor(){this.default=a.Y.out}load(e){(0,n.kZ)(e)||(void 0!==e.default&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}}},9976(e,t,i){i.d(t,{v:()=>s});var a=i(8536),n=i(9767),o=i(5279);class s{clamp;delay;enable;generator;options;constructor(){this.clamp=!0,this.delay=new a.PV,this.enable=!1,this.options={}}load(e){!(0,o.kZ)(e)&&(void 0!==e.clamp&&(this.clamp=e.clamp),this.delay.load(e.delay),void 0!==e.enable&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=(0,n.zw)(this.options,e.options)))}}},4e3(e,t,i){i.d(t,{t:()=>s});var a=i(9767),n=i(5279),o=i(8429);class s{acceleration;enable;position;constructor(){this.acceleration=0,this.enable=!1}load(e){!(0,n.kZ)(e)&&(void 0!==e.acceleration&&(this.acceleration=(0,o.DT)(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),e.position&&(this.position=(0,a.zw)({},e.position)))}}},4325(e,t,i){i.d(t,{M:()=>n});var a=i(5279);class n{enable;height;width;constructor(){this.enable=!1,this.width=1920,this.height=1080}load(e){if((0,a.kZ)(e))return;void 0!==e.enable&&(this.enable=e.enable);let t=e.width;void 0!==t&&(this.width=t);let i=e.height;void 0!==i&&(this.height=i)}}},1200(e,t,i){i.d(t,{N:()=>s});var a=i(4325),n=i(5265),o=i(5279);class s{density;limit;value;constructor(){this.density=new a.M,this.limit=new n.A,this.value=0}load(e){(0,o.kZ)(e)||(this.density.load(e.density),this.limit.load(e.limit),void 0!==e.value&&(this.value=e.value))}}},5265(e,t,i){i.d(t,{A:()=>o});var a=i(4186),n=i(5279);class o{mode;value;constructor(){this.mode=a.d.delete,this.value=0}load(e){(0,n.kZ)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.value&&(this.value=e.value))}}},3889(e,t,i){i.d(t,{Y:()=>s});var a=i(795),n=i(8536),o=i(5279);class s extends n.AI{animation;constructor(){super(),this.animation=new a.I,this.value=1}load(e){if((0,o.kZ)(e))return;super.load(e);let t=e.animation;void 0!==t&&this.animation.load(t)}}},795(e,t,i){i.d(t,{I:()=>s});var a=i(2293),n=i(120),o=i(5279);class s extends n.Q{destroy;constructor(){super(),this.destroy=a.V.none,this.speed=2}load(e){super.load(e),(0,o.kZ)(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}},3751(e,t,i){i.d(t,{U:()=>v});var a=i(9767),n=i(5279);class o{close;options;type;constructor(){this.close=!0,this.options={},this.type=[]}load(e){if((0,n.kZ)(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=(0,a.zw)(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.type&&(this.type=e.type)}}var s=i(2109),r=i(6353),l=i(3889),d=i(7484),u=i(1200),c=i(6717),h=i(3305),p=i(7160),f=i(3043);class v{bounce;effect;fill;groups;move;number;opacity;palette;reduceDuplicates;shape;size;stroke;zIndex;_container;_pluginManager;constructor(e,t){this._pluginManager=e,this._container=t,this.bounce=new d.w,this.effect=new o,this.fill=new s.S,this.groups={},this.move=new r.y,this.number=new u.N,this.opacity=new l.Y,this.reduceDuplicates=!1,this.shape=new c.y,this.size=new h.o,this.stroke=new p.t,this.zIndex=new f.P}load(e){if((0,n.kZ)(e))return;if(e.palette&&(this.palette=e.palette,this._importPalette(this.palette)),void 0!==e.groups)for(let t of Object.keys(e.groups)){if(!(t in e.groups))continue;let i=e.groups[t];void 0!==i&&(this.groups[t]=(0,a.zw)(this.groups[t]??{},i))}void 0!==e.reduceDuplicates&&(this.reduceDuplicates=e.reduceDuplicates),this.bounce.load(e.bounce),this.effect.load(e.effect),this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),this.shape.load(e.shape),this.size.load(e.size),this.zIndex.load(e.zIndex);let t=e.fill;t&&(this.fill=(0,a.wJ)(t,e=>{let t=new s.S;return t.load(e),t}));let i=e.stroke;if(i&&(this.stroke=(0,a.wJ)(i,e=>{let t=new p.t;return t.load(e),t})),this._container){for(let t of this._pluginManager.plugins)t.loadParticlesOptions&&t.loadParticlesOptions(this._container,this,e);let t=this._pluginManager.updaters.get(this._container);if(t)for(let i of t)i.loadOptions&&i.loadOptions(this,e)}}_importPalette=e=>{let t=this._pluginManager.getPalette(e);t&&this.load({fill:{color:t.fill?{value:t.colors}:void 0,enable:t.fill},stroke:t.fill?void 0:t.colors.map(e=>({color:{value:e},width:1})),blend:{enable:!0,mode:t.blendMode}})}}},6717(e,t,i){i.d(t,{y:()=>o});var a=i(9767),n=i(5279);class o{close;options;type;constructor(){this.close=!0,this.options={},this.type="circle"}load(e){if((0,n.kZ)(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=(0,a.zw)(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.type&&(this.type=e.type)}}},3305(e,t,i){i.d(t,{o:()=>s});var a=i(8536),n=i(7635),o=i(5279);class s extends a.AI{animation;constructor(){super(),this.animation=new n.q,this.value=3}load(e){if(super.load(e),(0,o.kZ)(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}},7635(e,t,i){i.d(t,{q:()=>s});var a=i(2293),n=i(120),o=i(5279);class s extends n.Q{destroy;constructor(){super(),this.destroy=a.V.none,this.speed=5}load(e){super.load(e),(0,o.kZ)(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}},7160(e,t,i){i.d(t,{t:()=>s});var a=i(3097),n=i(5279),o=i(8429);class s{color;opacity;width;constructor(){this.width=0}load(e){(0,n.kZ)(e)||(void 0!==e.color&&(this.color=a.A.create(this.color,e.color)),void 0!==e.width&&(this.width=(0,o.DT)(e.width)),void 0!==e.opacity&&(this.opacity=(0,o.DT)(e.opacity)))}}},3043(e,t,i){i.d(t,{P:()=>o});var a=i(8536),n=i(5279);class o extends a.PV{opacityRate;sizeRate;velocityRate;constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),(0,n.kZ)(e)||(void 0!==e.opacityRate&&(this.opacityRate=e.opacityRate),void 0!==e.sizeRate&&(this.sizeRate=e.sizeRate),void 0!==e.velocityRate&&(this.velocityRate=e.velocityRate))}}},5246(e,t,i){i.d(t,{z:()=>n});var a=i(5279);class n{delay;enable;constructor(){this.delay=.5,this.enable=!0}load(e){(0,a.kZ)(e)||(void 0!==e.delay&&(this.delay=e.delay),void 0!==e.enable&&(this.enable=e.enable))}}},8536(e,t,i){i.d(t,{AI:()=>l,Jm:()=>r,PV:()=>s});var a=i(120),n=i(5279),o=i(8429);class s{value;constructor(){this.value=0}load(e){!(0,n.kZ)(e)&&((0,n.kZ)(e.value)||(this.value=(0,o.DT)(e.value)))}}class r extends s{animation=new a.p;load(e){if(super.load(e),(0,n.kZ)(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}class l extends r{animation;constructor(){super(),this.animation=new a.Q}load(e){super.load(e)}}},6491(e,t,i){i.d(t,{IU:()=>s,KG:()=>u,Md:()=>o,Sn:()=>n,VG:()=>h,Wb:()=>p,gF:()=>c,k:()=>l,p0:()=>r,z5:()=>d});var a=i(9829);function n(e,t,i){e.fillStyle=i??"rgba(0,0,0,0)",e.fillRect(a.bo.x,a.bo.y,t.width,t.height)}function o(e,t,i,n){if(!i)return;let o=e.globalAlpha;e.globalAlpha=n,e.drawImage(i,a.bo.x,a.bo.y,t.width,t.height),e.globalAlpha=o}function s(e,t){e.clearRect(a.bo.x,a.bo.y,t.width,t.height)}function r(e){let{container:t,context:i,particle:n,delta:o,colorStyles:s,radius:r,opacity:p,transform:f}=e,{effectDrawers:v,shapeDrawers:g}=t,m=n.getPosition(),y=n.getTransformData(f),b=a.Pf,x={x:m.x,y:m.y};i.setTransform(y.a,y.b,y.c,y.d,m.x,m.y),s.fill&&(i.fillStyle=s.fill);let w=!!n.fillEnabled,M=n.strokeWidth??a.Dv;i.lineWidth=M,s.stroke&&(i.strokeStyle=s.stroke);let z={context:i,particle:n,radius:r,drawRadius:r*b,opacity:p,delta:o,pixelRatio:t.retina.pixelRatio,fill:w,stroke:M>a.Dv,transformData:y,position:{...m},drawPosition:x,drawScale:b};for(let e of t.plugins)e.drawParticleTransform?.(z);let S=n.effect?v.get(n.effect):void 0,P=n.shape?g.get(n.shape):void 0;d(S,z),h(P,z),u(P,z),c(P,z),l(S,z),i.resetTransform()}function l(e,t){if(!e?.drawAfter)return;let{particle:i}=t;i.effect&&e.drawAfter(t)}function d(e,t){if(!e?.drawBefore)return;let{particle:i}=t;i.effect&&e.drawBefore(t)}function u(e,t){if(!e)return;let{context:i,fill:a,particle:n,stroke:o}=t;n.shape&&(i.beginPath(),e.draw(t),n.shapeClose&&i.closePath(),o&&i.stroke(),a&&i.fill())}function c(e,t){if(!e?.afterDraw)return;let{particle:i}=t;i.shape&&e.afterDraw(t)}function h(e,t){if(!e?.beforeDraw)return;let{particle:i}=t;i.shape&&e.beforeDraw(t)}function p(e,t,i,a){t.drawParticle&&t.drawParticle(e,i,a)}},2912(e,t,i){i.d(t,{BN:()=>h,EY:()=>P,Jv:()=>F,K6:()=>g,Ko:()=>T,LC:()=>S,OH:()=>w,O_:()=>_,PG:()=>k,R5:()=>v,YL:()=>b,_h:()=>O,ay:()=>x,eg:()=>y,mK:()=>f,pz:()=>R,qe:()=>p,xx:()=>M,yx:()=>A,zI:()=>m});var a=i(8429),n=i(9829),o=i(5279),s=i(6383),r=i(9241),l=i(9767);let d=new Map;function u(e,t){let i=d.get(e);return i||(i=t(),d.size>=1e3&&[...d.keys()].slice(0,1e3*n.MX).forEach(e=>d.delete(e)),d.set(e,i)),i}function c(e,t){if(t){for(let i of e.colorManagers.values())if(i.accepts(t))return i.parseString(t)}}function h(e,t,i,a=!0){if(!t)return;let n=(0,o.Kg)(t)?{value:t}:t;if((0,o.Kg)(n.value))return p(e,n.value,i,a);if((0,o.cy)(n.value)){let t=(0,l.Vh)(n.value,i,a);if(!t)return;return h(e,{value:t})}for(let t of e.colorManagers.values()){let e=t.handleRangeColor(n);if(e)return e}}function p(e,t,i,a=!0){if(!t)return;let s=(0,o.Kg)(t)?{value:t}:t;if((0,o.Kg)(s.value))return s.value===n.mR?w():c(e,s.value);if((0,o.cy)(s.value)){let t=(0,l.Vh)(s.value,i,a);if(!t)return;return p(e,{value:t})}for(let t of e.colorManagers.values()){let e=t.handleColor(s);if(e)return e}}function f(e,t,i,a=!0){let n=p(e,t,i,a);return n?g(n):void 0}function v(e,t,i,a=!0){let n=h(e,t,i,a);return n?g(n):void 0}function g(e){let t=e.r/n.oi,i=e.g/n.oi,a=e.b/n.oi,o=Math.max(t,i,a),s=Math.min(t,i,a),r={h:n.L1,l:(o+s)*n.MX,s:n.yx};return o!==s&&(r.s=r.l<n.MX?(o-s)/(o+s):(o-s)/(n.gd-o-s),t===o?r.h=(i-a)/(o-s):i===o?r.h=n.gd+(a-t)/(o-s):r.h=n.gd*n.gd+(t-i)/(o-s)),r.l*=n.$_,r.s*=n.eu,r.h*=n.U0,r.h<n.L1&&(r.h+=n.vS),r.h>=n.vS&&(r.h-=n.vS),r}function m(e,t){return c(e,t)?.a}function y(e,t){return c(e,t)}function b(e){let t=(e.h%n.vS+n.vS)%n.vS,i=Math.max(n.yx,Math.min(n.eu,e.s)),a=Math.max(n.vd,Math.min(n.$_,e.l)),o=t/n.vS,s=i/n.eu,r=a/n.$_;if(i===n.yx){let e=Math.round(r*n.oi);return{r:e,g:e,b:e}}let l=(e,t,i)=>(i<0&&i++,i>1&&i--,i*n.zg<1)?e+(t-e)*n.zg*i:i*n.gd<1?t:i*n.Nu<+n.gd?e+(t-e)*(n.gd/n.Nu-i)*n.zg:e,d=r<n.MX?r*(n.aE+s):r+s-r*s,u=n.gd*r-d,c=n.BF/n.Nu;return{r:Math.round(Math.min(n.oi,n.oi*l(u,d,o+c))),g:Math.round(Math.min(n.oi,n.oi*l(u,d,o))),b:Math.round(Math.min(n.oi,n.oi*l(u,d,o-c)))}}function x(e){let t=b(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}function w(e){let t=e??n.Fl,i=n.oi+n.D_,o=()=>Math.floor((0,a.e4)(t,i));return{b:o(),g:o(),r:o()}}function M(e,t,i){let a=i??n.hv;return u(`rgb-${e.r.toFixed(2)}-${e.g.toFixed(2)}-${e.b.toFixed(2)}-${t?"hdr":"sdr"}-${a.toString()}`,()=>{var a,o;return t?z(e,i):(a=e,o=i,`rgba(${a.r.toString()}, ${a.g.toString()}, ${a.b.toString()}, ${(o??n.hv).toString()})`)})}function z(e,t){return`color(display-p3 ${(e.r/n.oi).toString()} ${(e.g/n.oi).toString()} ${(e.b/n.oi).toString()} / ${(t??n.hv).toString()})`}function S(e,t,i){let a=i??n.hv;return u(`hsl-${e.h.toFixed(2)}-${e.s.toFixed(2)}-${e.l.toFixed(2)}-${t?"hdr":"sdr"}-${a.toString()}`,()=>{var a,o,s,r;return t?(a=e,o=i,z(b(a),o)):(s=e,r=i,`hsla(${s.h.toString()}, ${s.s.toString()}%, ${s.l.toString()}%, ${(r??n.hv).toString()})`)})}function P(e,t,i,n){let o=e,s=t;return"r"in o||(o=b(e)),"r"in s||(s=b(t)),{b:(0,a.jh)(o.b,s.b,i,n),g:(0,a.jh)(o.g,s.g,i,n),r:(0,a.jh)(o.r,s.r,i,n)}}function O(e,t,i){if(i===n.mR)return w();if(i!==n.BW)return i;{let i=e.getFillColor()??e.getStrokeColor(),a=t?.getFillColor()??t?.getStrokeColor();if(i&&a&&t)return P(i,a,e.getRadius(),t.getRadius());{let e=i??a;if(e)return b(e)}}}function k(e,t,i,a){let s=(0,o.Kg)(t)?t:t.value;return s===n.mR?a?h(e,{value:s}):i?n.mR:n.BW:s===n.BW?n.BW:h(e,{value:s})}function _(e){return void 0===e?void 0:{h:e.h.value,s:e.s.value,l:e.l.value}}function R(e,t,i){let a={h:{enable:!1,value:e.h,min:n.L1,max:n.vS},s:{enable:!1,value:e.s,min:n.yx,max:n.eu},l:{enable:!1,value:e.l,min:n.vd,max:n.$_}};return t&&(E(a.h,t.h,i),E(a.s,t.s,i),E(a.l,t.l,i)),a}function E(e,t,i){e.enable=t.enable,e.min=t.min,e.max=t.max,e.enable?(e.velocity=(0,a.VG)(t.speed)/n.a5*i,e.decay=n.WH-(0,a.VG)(t.decay),e.status=r.H.increasing,e.loops=n.hK,e.maxLoops=(0,a.VG)(t.count),e.time=n.tR,e.delayTime=(0,a.VG)(t.delay)*n.Xu,t.sync||(e.velocity*=(0,a.G0)(),e.value*=(0,a.G0)()),e.initialValue=e.value,e.offset=(0,a.DT)(t.offset)):e.velocity=n.jn}function T(e,t,i){if(!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(e.time??=0,(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=i.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0)))return;let n=e.offset?(0,a.vE)(e.offset):0,o=(e.velocity??0)*i.factor+3.6*n,s=e.decay??1,l=e.max,d=e.min;t&&e.status!==r.H.increasing?(e.value-=o,e.value<d&&(e.loops??=0,e.loops++,e.status=r.H.increasing)):(e.value+=o,e.value>l&&(e.loops??=0,e.loops++,t?e.status=r.H.decreasing:e.value-=l)),e.velocity&&1!==s&&(e.velocity*=s),e.value=(0,a.qE)(e.value,d,l)}function F(e,t){if(!e)return;let{h:i,s:a,l:n}=e;T(i,!1,t),T(a,!0,t),T(n,!0,t)}function A(e,t,i){return{h:e.h,s:e.s,l:e.l+(t===s.H.darken?-n.iU:n.iU)*i}}},4759(e,t,i){i.d(t,{B:()=>n,t:()=>o});let a={debug:console.debug,error:(e,t)=>{console.error(`tsParticles - Error - ${e}`,t)},info:console.info,log:console.log,trace:console.trace,verbose:console.log,warning:console.warn};function n(e){a.debug=e.debug,a.error=e.error,a.info=e.info,a.log=e.log,a.verbose=e.verbose,a.warning=e.warning}function o(){return a}},8429(e,t,i){i.d(t,{$m:()=>_,AD:()=>p,DT:()=>function e(t,i){if(t===i||void 0===i&&(0,s.Et)(t))return t;let a=x(t),n=w(t);return void 0!==i?{min:Math.min(a,i),max:Math.max(n,i)}:e(a,n)},G0:()=>c,JY:()=>k,M3:()=>D,Mh:()=>T,Nx:()=>A,OE:()=>u,OW:()=>R,Sc:()=>z,Sg:()=>x,VG:()=>b,W9:()=>w,Yf:()=>S,e4:()=>h,eh:()=>E,gp:()=>P,i0:()=>f,jh:()=>m,l1:()=>F,pu:()=>O,px:()=>v,qE:()=>g,qM:()=>I,vE:()=>y,vr:()=>M});var a=i(6118),n=i(9829),o=i(5360),s=i(5279);let r=Math.PI/180,l=Math.random,d={nextFrame:e=>requestAnimationFrame(e),cancel:e=>{cancelAnimationFrame(e)}};function u(e=Math.random){l=e}function c(){return g(l(),0,1-Number.EPSILON)}function h(e,t){return c()*(t-e)+e}function p(e,t){d.nextFrame=e,d.cancel=t}function f(e){return d.nextFrame(e)}function v(e){d.cancel(e)}function g(e,t,i){return Math.min(Math.max(e,t),i)}function m(e,t,i,a){return Math.floor((e*i+t*a)/(i+a))}function y(e){let t=w(e),i=x(e);return t===i&&(i=0),h(i,t)}function b(e){return(0,s.Et)(e)?e:y(e)}function x(e){return(0,s.Et)(e)?e:e.min}function w(e){return(0,s.Et)(e)?e:e.max}function M(e,t){let i=e.x-t.x,a=e.y-t.y;return{dx:i,dy:a,distance:Math.hypot(i,a)}}function z(e,t){let i=e.x-t.x,a=e.y-t.y;return i*i+a*a}function S(e,t){return Math.sqrt(z(e,t))}function P(e,t,i){return z(e,t)<=i*i}function O(e){return e*r}function k(e,t,i){if((0,s.Et)(e))return e*r;switch(e){case a.F.top:return-Math.PI*n.MX;case a.F.topRight:return-Math.PI*n.$G;case a.F.right:return n.Ie;case a.F.bottomRight:return Math.PI*n.$G;case a.F.bottom:return Math.PI*n.MX;case a.F.bottomLeft:return Math.PI*n.Rq;case a.F.left:return Math.PI;case a.F.topLeft:return-Math.PI*n.Rq;case a.F.inside:return Math.atan2(i.y-t.y,i.x-t.x);case a.F.outside:return Math.atan2(t.y-i.y,t.x-i.x);default:return c()*n.R1}}function _(e){let t=o.M.origin;return t.length=1,t.angle=e,t}function R(e,t,i,a){return o.M.create(e.x*(i-a)/(i+a)+t.x*n.gd*a/(i+a),e.y)}function E(e){return e.position?.x!==void 0&&void 0!==e.position.y?{x:e.position.x*e.size.width/n.a5,y:e.position.y*e.size.height/n.a5}:void 0}function T(e){return{x:(e.position?.x??c()*n.a5)*e.size.width/n.a5,y:(e.position?.y??c()*n.a5)*e.size.height/n.a5}}function F(e){let t={x:e.position?.x!==void 0?b(e.position.x):void 0,y:e.position?.y!==void 0?b(e.position.y):void 0};return T({size:e.size,position:t})}function A(e){let{position:t,size:i}=e;return{x:t?.x??c()*i.width,y:t?.y??c()*i.height}}function I(e){let t={x:e.position?.x!==void 0?b(e.position.x):void 0,y:e.position?.y!==void 0?b(e.position.y):void 0};return A({size:e.size,position:t})}function D(e){return e?e.endsWith("%")?parseFloat(e)/n.a5:parseFloat(e):1}},5811(e,t,i){i.d(t,{Z:()=>n,y:()=>o});var a=i(3751);function n(e,...t){for(let i of t)e.load(i)}function o(e,t,...i){let s=new a.U(e,t);return n(s,...i),s}},5279(e,t,i){function a(e){return"boolean"==typeof e}function n(e){return"string"==typeof e}function o(e){return"number"==typeof e}function s(e){return"function"==typeof e}function r(e){return"object"==typeof e&&null!==e}function l(e){return Array.isArray(e)}function d(e){return null==e}i.d(t,{Et:()=>o,Gv:()=>r,Kg:()=>n,Lm:()=>a,Tn:()=>s,cy:()=>l,kZ:()=>d})},9767(e,t,i){i.d(t,{AE:()=>S,BR:()=>m,Bj:()=>p,E9:()=>F,HQ:()=>C,Kp:()=>V,O2:()=>z,Ot:()=>$,T5:()=>v,TA:()=>_,Tg:()=>P,Tj:()=>M,UC:()=>I,Vh:()=>w,Xs:()=>E,YC:()=>A,hJ:()=>L,hn:()=>b,lV:()=>g,n0:()=>x,pE:()=>O,q8:()=>f,tG:()=>y,td:()=>D,w3:()=>R,wJ:()=>k,zw:()=>function e(t,...i){for(let a of i){if((0,o.kZ)(a))continue;if(!(0,o.Gv)(a)){t=a;continue}Array.isArray(a)?Array.isArray(t)||(t=[]):(!(0,o.Gv)(t)||Array.isArray(t))&&(t={});let i=Object.keys(a),n=new Set(["__proto__","constructor","prototype"]);if(!i.some(e=>{let t=a[e];return(0,o.Gv)(t)||Array.isArray(t)})){let e=t;for(let t of i)if(!n.has(t)&&t in a){let i=a[t];void 0!==i&&(e[t]=i)}continue}for(let o of i){if(n.has(o))continue;let i=t,s=a[o];i[o]=Array.isArray(s)?s.map(t=>e(void 0,t)):e(i[o],s)}}return t}});var a=i(8429),n=i(9829),o=i(5279),s=i(3583),r=i(9241),l=i(2293),d=i(3906),u=i(8557),c=i(5678),h=i(5360);function p(e,t){let i=new Map,a=t?.maxSize,n=t?.ttlMs,o=t?.keyFn,s=(e,t=new WeakSet)=>{if(null===e)return"null";let i=typeof e;if("undefined"===i)return"undefined";if("number"===i||"boolean"===i||"string"===i)return JSON.stringify(e);if("function"===i)try{return e.toString()}catch{return'"[Function]"'}if("symbol"===i)try{return e.toString()}catch{return'"[Symbol]"'}if(Array.isArray(e))return`[${e.map(e=>s(e,t)).join(",")}]`;if(t.has(e))return'"[Circular]"';t.add(e);let a=Object.keys(e).sort();return`{${a.map(i=>`${JSON.stringify(i)}:${s(e[i],t)}`).join(",")}}`};return(...t)=>{let r,l=(r=t,o?o(r):s(r)),d=Date.now(),u=i.get(l);if(void 0!==u)if(!n||!(d-u.ts>n))return i.delete(l),i.set(l,{value:u.value,ts:u.ts}),u.value;else i.delete(l);let c=e(...t);if(i.set(l,{value:c,ts:d}),"number"==typeof a&&a>=0)for(;i.size>a;){let e=i.keys().next().value;if(void 0===e)break;i.delete(e)}return c}}function f(){return"u">typeof matchMedia}function v(){return globalThis.document}function g(e){if(f())return matchMedia(e)}function m(e){if("u">typeof IntersectionObserver)return new IntersectionObserver(e)}function y(e){if("u">typeof MutationObserver)return new MutationObserver(e)}function b(e,t){return e===t||(0,o.cy)(t)&&t.includes(e)}function x(e){return Math.floor((0,a.G0)()*e.length)}function w(e,t,i=!0){return e[void 0!==t&&i?t%e.length:x(e)]}function M(e,t,i,a,n){return z(S(e,a??0),t,i,n)}function z(e,t,i,a){let n=!0;return a&&a!==d.v.bottom||(n=e.top<t.height+i.x),n&&(!a||a===d.v.left)&&(n=e.right>i.x),n&&(!a||a===d.v.right)&&(n=e.left<t.width+i.y),n&&(!a||a===d.v.top)&&(n=e.bottom>i.y),n}function S(e,t){return{bottom:e.y+t,left:e.x-t,right:e.x+t,top:e.y-t}}function P(e){return{position:e.getPosition(),radius:e.getRadius(),mass:e.getMass(),velocity:e.velocity,factor:h.M.create((0,a.VG)(e.options.bounce.horizontal.value),(0,a.VG)(e.options.bounce.vertical.value))}}function O(e,t){let{x:i,y:n}=e.velocity.sub(t.velocity),[o,s]=[e.position,t.position],{dx:r,dy:l}=(0,a.vr)(s,o);if(i*r+n*l<0)return;let d=-Math.atan2(l,r),u=e.mass,c=t.mass,h=e.velocity.rotate(d),p=t.velocity.rotate(d),f=(0,a.OW)(h,p,u,c),v=(0,a.OW)(p,h,u,c),g=f.rotate(-d),m=v.rotate(-d);e.velocity.x=g.x*e.factor.x,e.velocity.y=g.y*e.factor.y,t.velocity.x=m.x*t.factor.x,t.velocity.y=m.y*t.factor.y}function k(e,t){return(0,o.cy)(e)?e.map((e,i)=>t(e,i)):t(e,0)}function _(e,t,i){return(0,o.cy)(e)?w(e,t,i):e}function R(e,t){return(0,o.cy)(e)?e.find((e,i)=>t(e,i)):t(e,0)?e:void 0}function E(e,t){let i=e.value,o=e.animation,l={delayTime:(0,a.VG)(o.delay)*n.Xu,enable:o.enable,value:(0,a.VG)(e.value)*t,max:(0,a.W9)(i)*t,min:(0,a.Sg)(i)*t,loops:0,maxLoops:(0,a.VG)(o.count),time:0};if(o.enable){switch(l.decay=1-(0,a.VG)(o.decay),o.mode){case s.g.increase:l.status=r.H.increasing;break;case s.g.decrease:l.status=r.H.decreasing;break;case s.g.random:l.status=(0,a.G0)()>=n.MX?r.H.increasing:r.H.decreasing}let e=o.mode===s.g.auto;switch(o.startValue){case c.S.min:l.value=l.min,e&&(l.status=r.H.increasing);break;case c.S.max:l.value=l.max,e&&(l.status=r.H.decreasing);break;case c.S.random:default:l.value=(0,a.vE)(l),e&&(l.status=(0,a.G0)()>=n.MX?r.H.increasing:r.H.decreasing)}}return l.initialValue=l.value,l}function T(e,t){if(e.mode!==u.q.percent){let{mode:t,...i}=e;return i}return"x"in e?{x:e.x/n.a5*t.width,y:e.y/n.a5*t.height}:{width:e.width/n.a5*t.width,height:e.height/n.a5*t.height}}function F(e,t){return T(e,t)}function A(e,t){return T(e,t)}function I(e,t,i,n,o){if(e.destroyed||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let s=(t.velocity??0)*o.factor,d=t.min,u=t.max,c=t.decay??1;if(t.time??=0,(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=o.value),!((t.delayTime??0)>0)||!(t.time<(t.delayTime??0))){switch(t.status){case r.H.increasing:t.value+=s;break;case r.H.decreasing:t.value-=s}switch(t.velocity&&1!==c&&(t.velocity*=c),t.status){case r.H.increasing:t.value>=u&&(i?t.status=r.H.decreasing:t.value-=u,t.loops??=0,t.loops++);break;case r.H.decreasing:t.value<=d&&(i?t.status=r.H.increasing:t.value+=u,t.loops??=0,t.loops++)}var h=t.value;switch(n){case l.V.max:h>=u&&e.destroy();break;case l.V.min:h<=d&&e.destroy()}e.destroyed||(t.value=(0,a.qE)(t.value,d,u))}}function D(e){let t=v().createElement("div").style;for(let i in e){let a=e[i];if(!(i in e)||(0,o.kZ)(a))continue;let n=e.getPropertyValue?.(a);if(!n)continue;let s=e.getPropertyPriority?.(a);s?t.setProperty(a,n,s):t.setProperty(a,n)}return t}let L=p(function(e){let t=v().createElement("div").style,i={width:"100%",height:"100%",margin:"0",padding:"0",borderWidth:"0",position:"fixed",zIndex:e.toString(10),"z-index":e.toString(10),top:"0",left:"0"};for(let e in i){let a=i[e];void 0!==a&&t.setProperty(e,a)}return t});function V(e,t,i,a,n){if(a){let a={passive:!0};(0,o.Lm)(n)?a.capture=n:void 0!==n&&(a=n),e.addEventListener(t,i,a)}else e.removeEventListener(t,i,n)}async function C(e,t,i,a=!1){let n=t.get(e);return(!n||a)&&(n=await Promise.all([...i.values()].map(t=>t(e))),t.set(e,n)),n}async function $(e,t,i,a=!1){let n=t.get(e);return(!n||a)&&(n=new Map(await Promise.all([...i.entries()].map(([t,i])=>i(e).then(e=>[t,e])))),t.set(e,n)),n}}},u={};function c(e){var t=u[e];if(void 0!==t)return t.exports;var i=u[e]={exports:{}};return d[e](i,i.exports,c),i.exports}c.m=d,c.d=(e,t)=>{for(var i in t)c.o(t,i)&&!c.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((t,i)=>(c.f[i](e,t),t),[])),c.u=e=>""+e+".min.js",c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),h={},c.l=(e,t,i,a)=>{if(h[e])return void h[e].push(t);if(void 0!==i)for(var n,o,s=document.getElementsByTagName("script"),r=0;r<s.length;r++){var l=s[r];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="@tsparticles/engine:"+i){n=l;break}}n||(o=!0,(n=document.createElement("script")).charset="utf-8",c.nc&&n.setAttribute("nonce",c.nc),n.setAttribute("data-webpack","@tsparticles/engine:"+i),n.src=e),h[e]=[t];var d=(t,i)=>{n.onerror=n.onload=null,clearTimeout(u);var a=h[e];if(delete h[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach(e=>e(i)),t)return t(i)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=d.bind(null,n.onerror),n.onload=d.bind(null,n.onload),o&&document.head.appendChild(n)},c.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.g.importScripts&&(p=c.g.location+"");var h,p,f=c.g.document;if(!p&&f&&(f.currentScript&&"SCRIPT"===f.currentScript.tagName.toUpperCase()&&(p=f.currentScript.src),!p)){var v=f.getElementsByTagName("script");if(v.length)for(var g=v.length-1;g>-1&&(!p||!/^http(s?):/.test(p));)p=v[g--].src}if(!p)throw Error("Automatic publicPath is not supported in this browser");c.p=p=p.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e={397:0},c.f.j=(t,i)=>{var a=c.o(e,t)?e[t]:void 0;if(0!==a)if(a)i.push(a[2]);else{var n=new Promise((i,n)=>a=e[t]=[i,n]);i.push(a[2]=n);var o=c.p+c.u(t),s=Error();c.l(o,i=>{if(c.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=i&&("load"===i.type?"missing":i.type),o=i&&i.target&&i.target.src;s.message="Loading chunk "+t+` failed.
|
|
2
|
+
(`+n+": "+o+")",s.name="ChunkLoadError",s.type=n,s.request=o,a[1](s)}},"chunk-"+t,t)}},t=(t,i)=>{var a,n,[o,s,r]=i,l=0;if(o.some(t=>0!==e[t])){for(a in s)c.o(s,a)&&(c.m[a]=s[a]);r&&r(c)}for(t&&t(i);l<o.length;l++)n=o[l],c.o(e,n)&&e[n]&&e[n][0](),e[n]=0},(i=this.webpackChunk_tsparticles_engine=this.webpackChunk_tsparticles_engine||[]).forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i));var m={};c.r(m),c.d(m,{AlterType:()=>L.H,AnimatableColor:()=>Z.A,AnimationMode:()=>F.g,AnimationOptions:()=>G.p,AnimationStatus:()=>B.H,AnimationValueWithRandom:()=>em.Jm,Background:()=>H.V,BaseRange:()=>_.dg,Circle:()=>_.jl,ColorAnimation:()=>q.e,DestroyType:()=>V.V,EasingType:()=>l,EventType:()=>w.B,Fill:()=>U.S,FullScreen:()=>j.m,GradientType:()=>r,HslAnimation:()=>N.i,LimitMode:()=>A.d,Move:()=>ee.y,MoveAngle:()=>et.h,MoveCenter:()=>ei.Z,MoveDirection:()=>E.F,MoveGravity:()=>ea.y,MovePath:()=>eo.v,Opacity:()=>eu.Y,OpacityAnimation:()=>ec.I,Options:()=>W.J,OptionsColor:()=>K.O,OutMode:()=>I.Y,OutModeDirection:()=>T.v,OutModes:()=>en.j,ParticleOutType:()=>C.x,ParticlesBounce:()=>X.w,ParticlesBounceFactor:()=>J.F,ParticlesDensity:()=>ed.M,ParticlesNumber:()=>er.N,ParticlesNumberLimit:()=>el.A,ParticlesOptions:()=>Q.U,PixelMode:()=>D.q,RangedAnimationOptions:()=>G.Q,RangedAnimationValueWithRandom:()=>em.AI,Rectangle:()=>_.M_,ResizeEvent:()=>eg.z,RotateDirection:()=>s,Shape:()=>eh.y,Size:()=>ep.o,SizeAnimation:()=>ef.q,Spin:()=>es.t,StartValueType:()=>$.S,Stroke:()=>Y.t,ValueWithRandom:()=>em.PV,Vector:()=>R.M,Vector3d:()=>R.p,ZIndex:()=>ev.P,alterHsl:()=>eb.yx,animate:()=>S.i0,areBoundsInside:()=>b.O2,arrayRandomIndex:()=>b.n0,calcExactPositionOrRandomFromSize:()=>S.Nx,calcExactPositionOrRandomFromSizeRanged:()=>S.qM,calcPositionFromSize:()=>S.eh,calcPositionOrRandomFromSize:()=>S.Mh,calcPositionOrRandomFromSizeRanged:()=>S.l1,calculateBounds:()=>b.AE,cancelAnimation:()=>S.px,canvasFirstIndex:()=>y.Nx,canvasTag:()=>y.RF,checkDistance:()=>S.gp,circleBounce:()=>b.pE,circleBounceDataFromParticle:()=>b.Tg,clamp:()=>S.qE,clear:()=>ey.IU,cloneStyle:()=>b.td,collisionVelocity:()=>S.OW,colorMix:()=>eb.EY,colorToHsl:()=>eb.mK,colorToRgb:()=>eb.qe,countOffset:()=>y.nq,decayOffset:()=>y.WH,deepExtend:()=>b.zw,defaultAlpha:()=>y.aZ,defaultAngle:()=>y.tA,defaultCompositeValue:()=>y.yj,defaultDensityFactor:()=>y.lA,defaultFps:()=>y.z$,defaultFpsLimit:()=>y.i8,defaultLoops:()=>y.hK,defaultOpacity:()=>y.hv,defaultRatio:()=>y.$x,defaultReduceFactor:()=>y.Zp,defaultRemoveQuantity:()=>y.xd,defaultRetryCount:()=>y.rq,defaultRgbMin:()=>y.Fl,defaultTime:()=>y.tR,defaultTransform:()=>y.Ug,defaultTransformValue:()=>y.zs,defaultVelocity:()=>y.jn,defaultZoom:()=>y.Pf,degToRad:()=>S.pu,deleteCount:()=>y.LD,double:()=>y.gd,doublePI:()=>y.R1,drawAfterEffect:()=>ey.k,drawBeforeEffect:()=>ey.z5,drawParticle:()=>ey.p0,drawParticlePlugin:()=>ey.Wb,drawShape:()=>ey.KG,drawShapeAfterDraw:()=>ey.gF,drawShapeBeforeDraw:()=>ey.VG,empty:()=>y.Ie,executeOnSingleOrMultiple:()=>b.wJ,findItemFromSingleOrMultiple:()=>b.w3,generatedAttribute:()=>y.eb,generatedFalse:()=>y.X$,generatedTrue:()=>y.ce,getDistance:()=>S.Yf,getDistanceSq:()=>S.Sc,getDistances:()=>S.vr,getFullScreenStyle:()=>b.hJ,getHslAnimationFromHsl:()=>eb.pz,getHslFromAnimation:()=>eb.O_,getItemMapFromInitializer:()=>b.Ot,getItemsFromInitializer:()=>b.HQ,getLinkColor:()=>eb._h,getLinkRandomColor:()=>eb.PG,getLogger:()=>z.t,getParticleBaseVelocity:()=>S.$m,getParticleDirectionAngle:()=>S.JY,getPosition:()=>b.E9,getRandom:()=>S.G0,getRandomInRange:()=>S.e4,getRandomRgbColor:()=>eb.OH,getRangeMax:()=>S.W9,getRangeMin:()=>S.Sg,getRangeValue:()=>S.VG,getSize:()=>b.YC,getStyleFromHsl:()=>eb.LC,getStyleFromRgb:()=>eb.xx,hMax:()=>y.vS,hMin:()=>y.L1,hPhase:()=>y.U0,half:()=>y.MX,hasMatchMedia:()=>b.q8,hslToRgb:()=>eb.YL,hslaToRgba:()=>eb.ay,identity:()=>y.D_,initParticleNumericAnimationValue:()=>b.Xs,inverseFactorNumerator:()=>y.hB,isArray:()=>ew.cy,isBoolean:()=>ew.Lm,isFunction:()=>ew.Tn,isInArray:()=>b.hn,isNull:()=>ew.kZ,isNumber:()=>ew.Et,isObject:()=>ew.Gv,isPointInside:()=>b.Tj,isString:()=>ew.Kg,itemFromArray:()=>b.Vh,itemFromSingleOrMultiple:()=>b.TA,lFactor:()=>y.iU,lMax:()=>y.$_,lMin:()=>y.vd,lengthOffset:()=>y.K3,loadMinIndex:()=>y.PZ,loadOptions:()=>ex.Z,loadParticlesOptions:()=>ex.y,loadRandomFactor:()=>y.$v,manageListener:()=>b.Kp,memoize:()=>b.Bj,midColorValue:()=>y.BW,millisecondsToSeconds:()=>y.Xu,minCount:()=>y.wM,minFpsLimit:()=>y.DN,minIndex:()=>y.z9,minLimit:()=>y.ou,minStrokeWidth:()=>y.Dv,minVelocity:()=>y.GW,minZ:()=>y.X_,minimumSize:()=>y.w2,mix:()=>S.jh,none:()=>y.dv,one:()=>y.xH,originPoint:()=>y.bo,paintBase:()=>ey.Sn,paintImage:()=>ey.Md,parseAlpha:()=>S.M3,percentDenominator:()=>y.a5,phaseNumerator:()=>y.BF,quarter:()=>y.$G,randomColorValue:()=>y.mR,randomInRangeValue:()=>S.vE,rangeColorToHsl:()=>eb.R5,rangeColorToRgb:()=>eb.BN,removeDeleteCount:()=>y.JC,removeMinIndex:()=>y.vF,resizeEvent:()=>y.NF,rgbMax:()=>y.oi,rgbToHsl:()=>eb.K6,sMax:()=>y.eu,sMin:()=>y.yx,sNormalizedOffset:()=>y.aE,safeDocument:()=>b.T5,safeIntersectionObserver:()=>b.BR,safeMatchMedia:()=>b.lV,safeMutationObserver:()=>b.tG,setAnimationFunctions:()=>S.AD,setLogger:()=>z.B,setRandom:()=>S.OE,setRangeValue:()=>S.DT,sextuple:()=>y.zg,spatialHashGridCellSize:()=>y.iX,squareExp:()=>y.dm,stringToAlpha:()=>eb.zI,stringToRgb:()=>eb.eg,threeQuarter:()=>y.Rq,triple:()=>y.Nu,tryCountIncrement:()=>y.Eo,tsParticles:()=>eM,updateAnimation:()=>b.UC,updateColor:()=>eb.Jv,updateColorValue:()=>eb.Ko,visibilityChangeEvent:()=>y.nK,zIndexFactorOffset:()=>y.RV});var y=c(9829),b=c(9767);class x{_listeners;constructor(){this._listeners=new Map}addEventListener(e,t){this.removeEventListener(e,t);let i=this._listeners.get(e);i||(i=[],this._listeners.set(e,i)),i.push(t)}dispatchEvent(e,t){let i=this._listeners.get(e);i?.forEach(e=>{e(t)})}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,t){let i=this._listeners.get(e);if(!i)return;let a=i.length,n=i.indexOf(t);n<y.z9||(a===y.LD?this._listeners.delete(e):i.splice(n,y.LD))}}var w=c(5871);class M{colorManagers=new Map;easingFunctions=new Map;effectDrawers=new Map;initializers={effects:new Map,shapes:new Map,updaters:new Map};palettes=new Map;plugins=[];presets=new Map;shapeDrawers=new Map;updaters=new Map;_allLoadersSet=new Set;_configs=new Map;_engine;_executedSet=new Set;_initialized=!1;_isRunningLoaders=!1;_loadPromises=new Set;constructor(e){this._engine=e}get configs(){let e={};for(let[t,i]of this._configs)e[t]=i;return e}addColorManager(e,t){this.colorManagers.set(e,t)}addConfig(e){let t=e.key??e.name??"default";this._configs.set(t,e),this._engine.dispatchEvent(w.B.configAdded,{data:{name:t,config:e}})}addEasing(e,t){this.easingFunctions.get(e)||this.easingFunctions.set(e,t)}addEffect(e,t){this.initializers.effects.set(e,t)}addPalette(e,t){this.palettes.set(e,t)}addParticleUpdater(e,t){this.initializers.updaters.set(e,t)}addPlugin(e){this.getPlugin(e.id)||this.plugins.push(e)}addPreset(e,t,i=!1){(i||!this.getPreset(e))&&this.presets.set(e,t)}addShape(e,t){for(let i of e)this.initializers.shapes.set(i,t)}clearPlugins(e){this.effectDrawers.delete(e),this.shapeDrawers.delete(e),this.updaters.delete(e)}getEasing(e){return this.easingFunctions.get(e)??(e=>e)}getEffectDrawers(e,t=!1){return(0,b.Ot)(e,this.effectDrawers,this.initializers.effects,t)}getPalette(e){return this.palettes.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}async getShapeDrawers(e,t=!1){return(0,b.Ot)(e,this.shapeDrawers,this.initializers.shapes,t)}async getUpdaters(e,t=!1){return(0,b.HQ)(e,this.updaters,this.initializers.updaters,t)}async init(){if(!this._initialized&&!this._isRunningLoaders){this._isRunningLoaders=!0,this._executedSet=new Set,this._allLoadersSet=new Set(this._loadPromises);try{for(let e of this._allLoadersSet)await this._runLoader(e,this._executedSet,this._allLoadersSet)}finally{this._loadPromises.clear(),this._isRunningLoaders=!1,this._initialized=!0}}}loadParticlesOptions(e,t,...i){let a=this.updaters.get(e);a&&a.forEach(e=>e.loadOptions?.(t,...i))}async register(...e){if(this._initialized)throw Error("Register plugins can only be done before calling tsParticles.load()");for(let t of e)this._isRunningLoaders?await this._runLoader(t,this._executedSet,this._allLoadersSet):this._loadPromises.add(t)}async _runLoader(e,t,i){t.has(e)||(t.add(e),i.add(e),await e(this._engine))}}var z=c(4759),S=c(8429);let P="100%";async function O(e){let t=(0,b.TA)(e.url,e.index);if(!t)return e.fallback;let i=await fetch(t);return i.ok?await i.json():((0,z.t)().error(`${i.status.toString()} while retrieving config file`),e.fallback)}class k{pluginManager=new M(this);_domArray=[];_eventDispatcher=new x;_initialized=!1;get items(){return this._domArray}get version(){return"4.0.0-beta.8"}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}checkVersion(e){if(this.version!==e)throw Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${e}`)}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}async init(){this._initialized||(await this.pluginManager.init(),this._initialized=!0)}item(e){let{items:t}=this,i=t[e];return i?.destroyed?void t.splice(e,y.JC):i}async load(e){var t;let i,a;await this.init();let{Container:n}=await c.e(67).then(c.bind(c,6067)),o=e.id??e.element?.id??`tsparticles${Math.floor((0,S.G0)()*y.$v).toString()}`,{index:s,url:r}=e,l=r?await O({fallback:e.options,url:r,index:s}):e.options,d=(0,b.TA)(l,s),{items:u}=this,h=u.findIndex(e=>e.id.description===o),p=new n({dispatchCallback:(e,t)=>{this.dispatchEvent(e,t)},id:o,onDestroy:e=>{if(!e)return;let t=this.items,i=t.indexOf(p);i>=y.vF&&t.splice(i,y.JC)},pluginManager:this.pluginManager,sourceOptions:d});if(h>=y.PZ){let e=this.item(h),t=e?y.xH:y.dv;e&&!e.destroyed&&e.destroy(!1),u.splice(h,t,p)}else u.push(p);let f=(e=>{let t,i=(0,b.T5)();if(e instanceof HTMLCanvasElement||e.tagName.toLowerCase()===y.RF)t=e,t.dataset[y.eb]??=y.X$;else{let a=e.getElementsByTagName(y.RF)[y.Nx];a?(t=a).dataset[y.eb]=y.X$:((t=i.createElement(y.RF)).dataset[y.eb]=y.ce,e.appendChild(t))}return t.style.width||=P,t.style.height||=P,t})((t=e.element,i=(0,b.T5)(),(a=t??i.getElementById(o))||((a=i.createElement("canvas")).id=o,a.dataset[y.eb]=y.ce,i.body.append(a)),a));return p.canvas.loadCanvas(f),await p.start(),p}async refresh(e=!0){e&&await Promise.all(this.items.map(e=>e.refresh()))}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}}var _=c(864),R=c(5360),E=c(6118);(a=s||(s={})).clockwise="clockwise",a.counterClockwise="counter-clockwise",a.random="random";var T=c(3906),F=c(3583),A=c(4186),I=c(5017),D=c(8557),L=c(6383),V=c(2293);(n=r||(r={})).linear="linear",n.radial="radial",n.random="random";var C=c(5937),$=c(5678);(o=l||(l={})).easeInBack="ease-in-back",o.easeInBounce="ease-in-bounce",o.easeInCirc="ease-in-circ",o.easeInCubic="ease-in-cubic",o.easeInElastic="ease-in-elastic",o.easeInExpo="ease-in-expo",o.easeInGaussian="ease-in-gaussian",o.easeInLinear="ease-in-linear",o.easeInQuad="ease-in-quad",o.easeInQuart="ease-in-quart",o.easeInQuint="ease-in-quint",o.easeInSigmoid="ease-in-sigmoid",o.easeInSine="ease-in-sine",o.easeInSmoothstep="ease-in-smoothstep",o.easeOutBack="ease-out-back",o.easeOutBounce="ease-out-bounce",o.easeOutCirc="ease-out-circ",o.easeOutCubic="ease-out-cubic",o.easeOutElastic="ease-out-elastic",o.easeOutExpo="ease-out-expo",o.easeOutGaussian="ease-out-gaussian",o.easeOutLinear="ease-out-linear",o.easeOutQuad="ease-out-quad",o.easeOutQuart="ease-out-quart",o.easeOutQuint="ease-out-quint",o.easeOutSigmoid="ease-out-sigmoid",o.easeOutSine="ease-out-sine",o.easeOutSmoothstep="ease-out-smoothstep",o.easeInOutBack="ease-in-out-back",o.easeInOutBounce="ease-in-out-bounce",o.easeInOutCirc="ease-in-out-circ",o.easeInOutCubic="ease-in-out-cubic",o.easeInOutElastic="ease-in-out-elastic",o.easeInOutExpo="ease-in-out-expo",o.easeInOutGaussian="ease-in-out-gaussian",o.easeInOutLinear="ease-in-out-linear",o.easeInOutQuad="ease-in-out-quad",o.easeInOutQuart="ease-in-out-quart",o.easeInOutQuint="ease-in-out-quint",o.easeInOutSigmoid="ease-in-out-sigmoid",o.easeInOutSine="ease-in-out-sine",o.easeInOutSmoothstep="ease-in-out-smoothstep";var B=c(9241),Z=c(3097),G=c(120),H=c(3351),q=c(4507),j=c(4581),N=c(9135),W=c(8032),K=c(7421),X=c(7484),J=c(4487),Q=c(3751),U=c(2109),Y=c(7160),ee=c(6353),et=c(1158),ei=c(9904),ea=c(2579),en=c(1084),eo=c(9976),es=c(4e3),er=c(1200),el=c(5265),ed=c(4325),eu=c(3889),ec=c(795),eh=c(6717),ep=c(3305),ef=c(7635),ev=c(3043),eg=c(5246),em=c(8536),ey=c(6491),eb=c(2912),ex=c(5811),ew=c(5279);let eM=new k;return globalThis.tsParticles=eM,m})());
|
|
@@ -24,6 +24,7 @@ export declare class ParticlesOptions implements IParticlesOptions, IOptionLoade
|
|
|
24
24
|
readonly move: Move;
|
|
25
25
|
readonly number: ParticlesNumber;
|
|
26
26
|
readonly opacity: Opacity;
|
|
27
|
+
palette?: string;
|
|
27
28
|
reduceDuplicates: boolean;
|
|
28
29
|
readonly shape: Shape;
|
|
29
30
|
readonly size: Size;
|
|
@@ -33,4 +34,5 @@ export declare class ParticlesOptions implements IParticlesOptions, IOptionLoade
|
|
|
33
34
|
private readonly _pluginManager;
|
|
34
35
|
constructor(pluginManager: PluginManager, container?: Container);
|
|
35
36
|
load(data?: RecursivePartial<IParticlesOptions>): void;
|
|
37
|
+
private readonly _importPalette;
|
|
36
38
|
}
|