@tsparticles/confetti 3.7.0 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.7.0
7
+ * v3.7.1
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -54,7 +54,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
54
54
  \**********************************/
55
55
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
56
56
 
57
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ confetti: () => (/* binding */ confetti)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/plugin-emitters */ \"../../plugins/emitters/dist/browser/index.js\");\n/* harmony import */ var _ConfettiOptions_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ConfettiOptions.js */ \"./dist/browser/ConfettiOptions.js\");\n/* harmony import */ var _tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/basic */ \"../basic/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_cards__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/shape-cards */ \"../../shapes/cards/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_emoji__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/shape-emoji */ \"../../shapes/emoji/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_heart__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/shape-heart */ \"../../shapes/heart/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_image__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/shape-image */ \"../../shapes/image/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/updater-life */ \"../../updaters/life/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/plugin-motion */ \"../../plugins/motion/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_polygon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @tsparticles/shape-polygon */ \"../../shapes/polygon/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_roll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @tsparticles/updater-roll */ \"../../updaters/roll/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @tsparticles/updater-rotate */ \"../../updaters/rotate/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_square__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @tsparticles/shape-square */ \"../../shapes/square/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_star__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @tsparticles/shape-star */ \"../../shapes/star/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_tilt__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @tsparticles/updater-tilt */ \"../../updaters/tilt/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_wobble__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @tsparticles/updater-wobble */ \"../../updaters/wobble/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultGravity = 9.81,\n sizeFactor = 5,\n speedFactor = 3,\n decayOffset = 1,\n disableRotate = 0,\n disableTilt = 0;\nlet initialized = false;\nlet initializing = false;\nconst ids = new Map();\nasync function initPlugins(engine) {\n if (initialized) {\n return;\n }\n if (initializing) {\n return new Promise(resolve => {\n const timeout = 100,\n interval = setInterval(() => {\n if (!initialized) {\n return;\n }\n clearInterval(interval);\n resolve();\n }, timeout);\n });\n }\n initializing = true;\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await (0,_tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_1__.loadEmittersPlugin)(engine, false);\n await (0,_tsparticles_plugin_motion__WEBPACK_IMPORTED_MODULE_8__.loadMotionPlugin)(engine, false);\n await (0,_tsparticles_shape_cards__WEBPACK_IMPORTED_MODULE_3__.loadCardsShape)(engine, false);\n await (0,_tsparticles_shape_heart__WEBPACK_IMPORTED_MODULE_5__.loadHeartShape)(engine, false);\n await (0,_tsparticles_shape_image__WEBPACK_IMPORTED_MODULE_6__.loadImageShape)(engine, false);\n await (0,_tsparticles_shape_polygon__WEBPACK_IMPORTED_MODULE_9__.loadPolygonShape)(engine, false);\n await (0,_tsparticles_shape_square__WEBPACK_IMPORTED_MODULE_12__.loadSquareShape)(engine, false);\n await (0,_tsparticles_shape_star__WEBPACK_IMPORTED_MODULE_13__.loadStarShape)(engine, false);\n await (0,_tsparticles_shape_emoji__WEBPACK_IMPORTED_MODULE_4__.loadEmojiShape)(engine, false);\n await (0,_tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_11__.loadRotateUpdater)(engine, false);\n await (0,_tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_7__.loadLifeUpdater)(engine, false);\n await (0,_tsparticles_updater_roll__WEBPACK_IMPORTED_MODULE_10__.loadRollUpdater)(engine, false);\n await (0,_tsparticles_updater_tilt__WEBPACK_IMPORTED_MODULE_14__.loadTiltUpdater)(engine, false);\n await (0,_tsparticles_updater_wobble__WEBPACK_IMPORTED_MODULE_15__.loadWobbleUpdater)(engine, false);\n await (0,_tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__.loadBasic)(engine);\n initializing = false;\n initialized = true;\n}\nasync function setConfetti(params) {\n const actualOptions = new _ConfettiOptions_js__WEBPACK_IMPORTED_MODULE_16__.ConfettiOptions();\n actualOptions.load(params.options);\n let container;\n const fpsLimit = 120,\n fpsLimitFactor = 3.6,\n opacitySpeed = actualOptions.ticks * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds / (fpsLimitFactor * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds * fpsLimit);\n if (ids.has(params.id)) {\n container = ids.get(params.id);\n if (container && !container.destroyed) {\n const alias = container;\n if (alias.addEmitter) {\n await alias.addEmitter({\n startCount: actualOptions.count,\n position: actualOptions.position,\n size: {\n width: 0,\n height: 0\n },\n rate: {\n delay: 0,\n quantity: 0\n },\n life: {\n duration: 0.1,\n count: 1\n },\n particles: {\n color: {\n value: actualOptions.colors\n },\n shape: {\n type: actualOptions.shapes,\n options: actualOptions.shapeOptions\n },\n life: {\n count: 1\n },\n opacity: {\n value: {\n min: 0,\n max: 1\n },\n animation: {\n enable: true,\n sync: true,\n speed: opacitySpeed,\n startValue: \"max\",\n destroy: \"min\"\n }\n },\n size: {\n value: sizeFactor * actualOptions.scalar\n },\n move: {\n angle: {\n value: actualOptions.spread,\n offset: 0\n },\n drift: {\n min: -actualOptions.drift,\n max: actualOptions.drift\n },\n gravity: {\n acceleration: actualOptions.gravity * defaultGravity\n },\n speed: actualOptions.startVelocity * speedFactor,\n decay: decayOffset - actualOptions.decay,\n direction: -actualOptions.angle\n },\n rotate: {\n value: actualOptions.flat ? disableRotate : {\n min: 0,\n max: 360\n },\n direction: \"random\",\n animation: {\n enable: !actualOptions.flat,\n speed: 60\n }\n },\n tilt: {\n direction: \"random\",\n enable: !actualOptions.flat,\n value: actualOptions.flat ? disableTilt : {\n min: 0,\n max: 360\n },\n animation: {\n enable: true,\n speed: 60\n }\n },\n roll: {\n darken: {\n enable: true,\n value: 25\n },\n enable: !actualOptions.flat,\n speed: {\n min: 15,\n max: 25\n }\n },\n wobble: {\n distance: 30,\n enable: !actualOptions.flat,\n speed: {\n min: -15,\n max: 15\n }\n }\n }\n });\n return;\n }\n }\n }\n const particlesOptions = {\n fullScreen: {\n enable: !params.canvas,\n zIndex: actualOptions.zIndex\n },\n fpsLimit: 120,\n particles: {\n number: {\n value: 0\n },\n color: {\n value: actualOptions.colors\n },\n shape: {\n type: actualOptions.shapes,\n options: actualOptions.shapeOptions\n },\n opacity: {\n value: {\n min: 0,\n max: 1\n },\n animation: {\n enable: true,\n sync: true,\n speed: opacitySpeed,\n startValue: \"max\",\n destroy: \"min\"\n }\n },\n size: {\n value: sizeFactor * actualOptions.scalar\n },\n links: {\n enable: false\n },\n life: {\n count: 1\n },\n move: {\n angle: {\n value: actualOptions.spread,\n offset: 0\n },\n drift: {\n min: -actualOptions.drift,\n max: actualOptions.drift\n },\n enable: true,\n gravity: {\n enable: true,\n acceleration: actualOptions.gravity * defaultGravity\n },\n speed: actualOptions.startVelocity * speedFactor,\n decay: decayOffset - actualOptions.decay,\n direction: -actualOptions.angle,\n random: true,\n straight: false,\n outModes: {\n default: \"none\",\n bottom: \"destroy\"\n }\n },\n rotate: {\n value: actualOptions.flat ? disableRotate : {\n min: 0,\n max: 360\n },\n direction: \"random\",\n animation: {\n enable: !actualOptions.flat,\n speed: 60\n }\n },\n tilt: {\n direction: \"random\",\n enable: !actualOptions.flat,\n value: actualOptions.flat ? disableTilt : {\n min: 0,\n max: 360\n },\n animation: {\n enable: true,\n speed: 60\n }\n },\n roll: {\n darken: {\n enable: true,\n value: 25\n },\n enable: !actualOptions.flat,\n speed: {\n min: 15,\n max: 25\n }\n },\n wobble: {\n distance: 30,\n enable: !actualOptions.flat,\n speed: {\n min: -15,\n max: 15\n }\n }\n },\n detectRetina: true,\n motion: {\n disable: actualOptions.disableForReducedMotion\n },\n emitters: {\n name: \"confetti\",\n startCount: actualOptions.count,\n position: actualOptions.position,\n size: {\n width: 0,\n height: 0\n },\n rate: {\n delay: 0,\n quantity: 0\n },\n life: {\n duration: 0.1,\n count: 1\n }\n }\n };\n container = await _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles.load({\n id: params.id,\n element: params.canvas,\n options: particlesOptions\n });\n ids.set(params.id, container);\n return container;\n}\nasync function confetti(idOrOptions, confettiOptions) {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n let options;\n let id;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(idOrOptions)) {\n id = idOrOptions;\n options = confettiOptions ?? {};\n } else {\n id = \"confetti\";\n options = idOrOptions;\n }\n return setConfetti({\n id,\n options\n });\n}\nconfetti.create = async (canvas, options) => {\n if (!canvas) {\n return confetti;\n }\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n const id = canvas.getAttribute(\"id\") ?? \"confetti\";\n canvas.setAttribute(\"id\", id);\n return async (idOrOptions, confettiOptions) => {\n let subOptions;\n let subId;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(idOrOptions)) {\n subId = idOrOptions;\n subOptions = confettiOptions ?? options;\n } else {\n subId = id;\n subOptions = idOrOptions;\n }\n return setConfetti({\n id: subId,\n canvas,\n options: subOptions\n });\n };\n};\nconfetti.init = async () => {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n};\nconfetti.version = \"3.7.0\";\nif (!(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isSsr)()) {\n window.confetti = confetti;\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/./dist/browser/confetti.js?");
57
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ confetti: () => (/* binding */ confetti)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/plugin-emitters */ \"../../plugins/emitters/dist/browser/index.js\");\n/* harmony import */ var _ConfettiOptions_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ConfettiOptions.js */ \"./dist/browser/ConfettiOptions.js\");\n/* harmony import */ var _tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/basic */ \"../basic/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_cards__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/shape-cards */ \"../../shapes/cards/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_emoji__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/shape-emoji */ \"../../shapes/emoji/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_heart__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/shape-heart */ \"../../shapes/heart/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_image__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/shape-image */ \"../../shapes/image/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/updater-life */ \"../../updaters/life/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/plugin-motion */ \"../../plugins/motion/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_polygon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @tsparticles/shape-polygon */ \"../../shapes/polygon/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_roll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @tsparticles/updater-roll */ \"../../updaters/roll/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @tsparticles/updater-rotate */ \"../../updaters/rotate/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_square__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @tsparticles/shape-square */ \"../../shapes/square/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_star__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @tsparticles/shape-star */ \"../../shapes/star/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_tilt__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @tsparticles/updater-tilt */ \"../../updaters/tilt/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_wobble__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @tsparticles/updater-wobble */ \"../../updaters/wobble/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst defaultGravity = 9.81,\n sizeFactor = 5,\n speedFactor = 3,\n decayOffset = 1,\n disableRotate = 0,\n disableTilt = 0;\nlet initialized = false;\nlet initializing = false;\nconst ids = new Map();\nasync function initPlugins(engine) {\n if (initialized) {\n return;\n }\n if (initializing) {\n return new Promise(resolve => {\n const timeout = 100,\n interval = setInterval(() => {\n if (!initialized) {\n return;\n }\n clearInterval(interval);\n resolve();\n }, timeout);\n });\n }\n initializing = true;\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await (0,_tsparticles_plugin_emitters__WEBPACK_IMPORTED_MODULE_1__.loadEmittersPlugin)(engine, false);\n await (0,_tsparticles_plugin_motion__WEBPACK_IMPORTED_MODULE_8__.loadMotionPlugin)(engine, false);\n await (0,_tsparticles_shape_cards__WEBPACK_IMPORTED_MODULE_3__.loadCardsShape)(engine, false);\n await (0,_tsparticles_shape_heart__WEBPACK_IMPORTED_MODULE_5__.loadHeartShape)(engine, false);\n await (0,_tsparticles_shape_image__WEBPACK_IMPORTED_MODULE_6__.loadImageShape)(engine, false);\n await (0,_tsparticles_shape_polygon__WEBPACK_IMPORTED_MODULE_9__.loadPolygonShape)(engine, false);\n await (0,_tsparticles_shape_square__WEBPACK_IMPORTED_MODULE_12__.loadSquareShape)(engine, false);\n await (0,_tsparticles_shape_star__WEBPACK_IMPORTED_MODULE_13__.loadStarShape)(engine, false);\n await (0,_tsparticles_shape_emoji__WEBPACK_IMPORTED_MODULE_4__.loadEmojiShape)(engine, false);\n await (0,_tsparticles_updater_rotate__WEBPACK_IMPORTED_MODULE_11__.loadRotateUpdater)(engine, false);\n await (0,_tsparticles_updater_life__WEBPACK_IMPORTED_MODULE_7__.loadLifeUpdater)(engine, false);\n await (0,_tsparticles_updater_roll__WEBPACK_IMPORTED_MODULE_10__.loadRollUpdater)(engine, false);\n await (0,_tsparticles_updater_tilt__WEBPACK_IMPORTED_MODULE_14__.loadTiltUpdater)(engine, false);\n await (0,_tsparticles_updater_wobble__WEBPACK_IMPORTED_MODULE_15__.loadWobbleUpdater)(engine, false);\n await (0,_tsparticles_basic__WEBPACK_IMPORTED_MODULE_2__.loadBasic)(engine);\n initializing = false;\n initialized = true;\n}\nasync function setConfetti(params) {\n const actualOptions = new _ConfettiOptions_js__WEBPACK_IMPORTED_MODULE_16__.ConfettiOptions();\n actualOptions.load(params.options);\n let container;\n const fpsLimit = 120,\n fpsLimitFactor = 3.6,\n opacitySpeed = actualOptions.ticks * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds / (fpsLimitFactor * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds * fpsLimit);\n if (ids.has(params.id)) {\n container = ids.get(params.id);\n if (container && !container.destroyed) {\n const alias = container;\n if (alias.addEmitter) {\n await alias.addEmitter({\n startCount: actualOptions.count,\n position: actualOptions.position,\n size: {\n width: 0,\n height: 0\n },\n rate: {\n delay: 0,\n quantity: 0\n },\n life: {\n duration: 0.1,\n count: 1\n },\n particles: {\n color: {\n value: actualOptions.colors\n },\n shape: {\n type: actualOptions.shapes,\n options: actualOptions.shapeOptions\n },\n life: {\n count: 1\n },\n opacity: {\n value: {\n min: 0,\n max: 1\n },\n animation: {\n enable: true,\n sync: true,\n speed: opacitySpeed,\n startValue: \"max\",\n destroy: \"min\"\n }\n },\n size: {\n value: sizeFactor * actualOptions.scalar\n },\n move: {\n angle: {\n value: actualOptions.spread,\n offset: 0\n },\n drift: {\n min: -actualOptions.drift,\n max: actualOptions.drift\n },\n gravity: {\n acceleration: actualOptions.gravity * defaultGravity\n },\n speed: actualOptions.startVelocity * speedFactor,\n decay: decayOffset - actualOptions.decay,\n direction: -actualOptions.angle\n },\n rotate: {\n value: actualOptions.flat ? disableRotate : {\n min: 0,\n max: 360\n },\n direction: \"random\",\n animation: {\n enable: !actualOptions.flat,\n speed: 60\n }\n },\n tilt: {\n direction: \"random\",\n enable: !actualOptions.flat,\n value: actualOptions.flat ? disableTilt : {\n min: 0,\n max: 360\n },\n animation: {\n enable: true,\n speed: 60\n }\n },\n roll: {\n darken: {\n enable: true,\n value: 25\n },\n enable: !actualOptions.flat,\n speed: {\n min: 15,\n max: 25\n }\n },\n wobble: {\n distance: 30,\n enable: !actualOptions.flat,\n speed: {\n min: -15,\n max: 15\n }\n }\n }\n });\n return;\n }\n }\n }\n const particlesOptions = {\n fullScreen: {\n enable: !params.canvas,\n zIndex: actualOptions.zIndex\n },\n fpsLimit: 120,\n particles: {\n number: {\n value: 0\n },\n color: {\n value: actualOptions.colors\n },\n shape: {\n type: actualOptions.shapes,\n options: actualOptions.shapeOptions\n },\n opacity: {\n value: {\n min: 0,\n max: 1\n },\n animation: {\n enable: true,\n sync: true,\n speed: opacitySpeed,\n startValue: \"max\",\n destroy: \"min\"\n }\n },\n size: {\n value: sizeFactor * actualOptions.scalar\n },\n links: {\n enable: false\n },\n life: {\n count: 1\n },\n move: {\n angle: {\n value: actualOptions.spread,\n offset: 0\n },\n drift: {\n min: -actualOptions.drift,\n max: actualOptions.drift\n },\n enable: true,\n gravity: {\n enable: true,\n acceleration: actualOptions.gravity * defaultGravity\n },\n speed: actualOptions.startVelocity * speedFactor,\n decay: decayOffset - actualOptions.decay,\n direction: -actualOptions.angle,\n random: true,\n straight: false,\n outModes: {\n default: \"none\",\n bottom: \"destroy\"\n }\n },\n rotate: {\n value: actualOptions.flat ? disableRotate : {\n min: 0,\n max: 360\n },\n direction: \"random\",\n animation: {\n enable: !actualOptions.flat,\n speed: 60\n }\n },\n tilt: {\n direction: \"random\",\n enable: !actualOptions.flat,\n value: actualOptions.flat ? disableTilt : {\n min: 0,\n max: 360\n },\n animation: {\n enable: true,\n speed: 60\n }\n },\n roll: {\n darken: {\n enable: true,\n value: 25\n },\n enable: !actualOptions.flat,\n speed: {\n min: 15,\n max: 25\n }\n },\n wobble: {\n distance: 30,\n enable: !actualOptions.flat,\n speed: {\n min: -15,\n max: 15\n }\n }\n },\n detectRetina: true,\n motion: {\n disable: actualOptions.disableForReducedMotion\n },\n emitters: {\n name: \"confetti\",\n startCount: actualOptions.count,\n position: actualOptions.position,\n size: {\n width: 0,\n height: 0\n },\n rate: {\n delay: 0,\n quantity: 0\n },\n life: {\n duration: 0.1,\n count: 1\n }\n }\n };\n container = await _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles.load({\n id: params.id,\n element: params.canvas,\n options: particlesOptions\n });\n ids.set(params.id, container);\n return container;\n}\nasync function confetti(idOrOptions, confettiOptions) {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n let options;\n let id;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(idOrOptions)) {\n id = idOrOptions;\n options = confettiOptions ?? {};\n } else {\n id = \"confetti\";\n options = idOrOptions;\n }\n return setConfetti({\n id,\n options\n });\n}\nconfetti.create = async (canvas, options) => {\n if (!canvas) {\n return confetti;\n }\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n const id = canvas.getAttribute(\"id\") ?? \"confetti\";\n canvas.setAttribute(\"id\", id);\n return async (idOrOptions, confettiOptions) => {\n let subOptions;\n let subId;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(idOrOptions)) {\n subId = idOrOptions;\n subOptions = confettiOptions ?? options;\n } else {\n subId = id;\n subOptions = idOrOptions;\n }\n return setConfetti({\n id: subId,\n canvas,\n options: subOptions\n });\n };\n};\nconfetti.init = async () => {\n await initPlugins(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles);\n};\nconfetti.version = \"3.7.1\";\nif (!(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isSsr)()) {\n window.confetti = confetti;\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/./dist/browser/confetti.js?");
58
58
 
59
59
  /***/ }),
60
60
 
@@ -74,7 +74,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
74
74
  \**************************************/
75
75
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76
76
 
77
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBasic: () => (/* binding */ loadBasic)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_move_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/move-base */ \"../../move/base/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/shape-circle */ \"../../shapes/circle/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/updater-color */ \"../../updaters/color/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/plugin-hex-color */ \"../../plugins/colors/hexColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/plugin-hsl-color */ \"../../plugins/colors/hslColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/updater-opacity */ \"../../updaters/opacity/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/updater-out-modes */ \"../../updaters/outModes/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/plugin-rgb-color */ \"../../plugins/colors/rgbColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @tsparticles/updater-size */ \"../../updaters/size/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\n\nasync function loadBasic(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await (0,_tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_4__.loadHexColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_5__.loadHslColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_8__.loadRgbColorPlugin)(engine, false);\n await (0,_tsparticles_move_base__WEBPACK_IMPORTED_MODULE_1__.loadBaseMover)(engine, false);\n await (0,_tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_2__.loadCircleShape)(engine, false);\n await (0,_tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_3__.loadColorUpdater)(engine, false);\n await (0,_tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_6__.loadOpacityUpdater)(engine, false);\n await (0,_tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_7__.loadOutModesUpdater)(engine, false);\n await (0,_tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_9__.loadSizeUpdater)(engine, false);\n await engine.refresh(refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../basic/dist/browser/index.js?");
77
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBasic: () => (/* binding */ loadBasic)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_move_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/move-base */ \"../../move/base/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/shape-circle */ \"../../shapes/circle/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tsparticles/updater-color */ \"../../updaters/color/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @tsparticles/plugin-hex-color */ \"../../plugins/colors/hexColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @tsparticles/plugin-hsl-color */ \"../../plugins/colors/hslColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @tsparticles/updater-opacity */ \"../../updaters/opacity/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @tsparticles/updater-out-modes */ \"../../updaters/outModes/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @tsparticles/plugin-rgb-color */ \"../../plugins/colors/rgbColor/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @tsparticles/updater-size */ \"../../updaters/size/dist/browser/index.js\");\n\n\n\n\n\n\n\n\n\n\nasync function loadBasic(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await (0,_tsparticles_plugin_hex_color__WEBPACK_IMPORTED_MODULE_4__.loadHexColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_hsl_color__WEBPACK_IMPORTED_MODULE_5__.loadHslColorPlugin)(engine, false);\n await (0,_tsparticles_plugin_rgb_color__WEBPACK_IMPORTED_MODULE_8__.loadRgbColorPlugin)(engine, false);\n await (0,_tsparticles_move_base__WEBPACK_IMPORTED_MODULE_1__.loadBaseMover)(engine, false);\n await (0,_tsparticles_shape_circle__WEBPACK_IMPORTED_MODULE_2__.loadCircleShape)(engine, false);\n await (0,_tsparticles_updater_color__WEBPACK_IMPORTED_MODULE_3__.loadColorUpdater)(engine, false);\n await (0,_tsparticles_updater_opacity__WEBPACK_IMPORTED_MODULE_6__.loadOpacityUpdater)(engine, false);\n await (0,_tsparticles_updater_out_modes__WEBPACK_IMPORTED_MODULE_7__.loadOutModesUpdater)(engine, false);\n await (0,_tsparticles_updater_size__WEBPACK_IMPORTED_MODULE_9__.loadSizeUpdater)(engine, false);\n await engine.refresh(refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../basic/dist/browser/index.js?");
78
78
 
79
79
  /***/ }),
80
80
 
@@ -84,7 +84,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
84
84
  \************************************************/
85
85
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
86
86
 
87
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Canvas: () => (/* binding */ Canvas)\n/* harmony export */ });\n/* harmony import */ var _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils/CanvasUtils.js */ \"../../engine/dist/browser/Utils/CanvasUtils.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/ColorUtils.js */ \"../../engine/dist/browser/Utils/ColorUtils.js\");\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n\n\n\n\nfunction setTransformValue(factor, newFactor, key) {\n const newValue = newFactor[key],\n defaultValue = 1;\n if (newValue !== undefined) {\n factor[key] = (factor[key] ?? defaultValue) * newValue;\n }\n}\nfunction setStyle(canvas, style, important = false) {\n if (!style) {\n return;\n }\n const element = canvas;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n for (const key in style) {\n const value = style[key];\n elementStyle.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nclass Canvas {\n constructor(container, engine) {\n this.container = container;\n this._applyPostDrawUpdaters = particle => {\n for (const updater of this._postDrawUpdaters) {\n updater.afterDraw?.(particle);\n }\n };\n this._applyPreDrawUpdaters = (ctx, particle, radius, zOpacity, colorStyles, transform) => {\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const {\n fill,\n stroke\n } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n updater.beforeDraw?.(particle);\n }\n };\n this._applyResizePlugins = () => {\n for (const plugin of this._resizePlugins) {\n plugin.resize?.();\n }\n };\n this._getPluginParticleColors = particle => {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToHsl)(this._engine, plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToHsl)(this._engine, plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n };\n this._initCover = async () => {\n const options = this.container.actualOptions,\n cover = options.backgroundMask.cover,\n color = cover.color;\n if (color) {\n const coverRgb = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb)(this._engine, color);\n if (coverRgb) {\n const coverColor = {\n ...coverRgb,\n a: cover.opacity\n };\n this._coverColorStyle = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb)(coverColor, coverColor.a);\n }\n } else {\n await new Promise((resolve, reject) => {\n if (!cover.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._coverImage = {\n image: img,\n opacity: cover.opacity\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = cover.image;\n });\n }\n };\n this._initStyle = () => {\n const element = this.element,\n options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (this._fullScreen) {\n this._originalStyle = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.deepExtend)({}, element.style);\n this._setFullScreenStyle();\n } else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n };\n this._initTrail = async () => {\n const options = this.container.actualOptions,\n trail = options.particles.move.trail,\n trailFill = trail.fill;\n if (!trail.enable) {\n return;\n }\n const factorNumerator = 1,\n opacity = factorNumerator / trail.length;\n if (trailFill.color) {\n const fillColor = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb)(this._engine, trailFill.color);\n if (!fillColor) {\n return;\n }\n this._trailFill = {\n color: {\n ...fillColor\n },\n opacity\n };\n } else {\n await new Promise((resolve, reject) => {\n if (!trailFill.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._trailFill = {\n image: img,\n opacity\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = trailFill.image;\n });\n }\n };\n this._paintBase = baseColor => {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.paintBase)(ctx, this.size, baseColor));\n };\n this._paintImage = (image, opacity) => {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.paintImage)(ctx, this.size, image, opacity));\n };\n this._repairStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n this._safeMutationObserver(observer => observer.disconnect());\n this._initStyle();\n this.initBackground();\n this._safeMutationObserver(observer => {\n if (!element || !(element instanceof Node)) {\n return;\n }\n observer.observe(element, {\n attributes: true\n });\n });\n };\n this._resetOriginalStyle = () => {\n const element = this.element,\n originalStyle = this._originalStyle;\n if (!(element && originalStyle)) {\n return;\n }\n setStyle(element, originalStyle);\n };\n this._safeMutationObserver = callback => {\n if (!this._mutationObserver) {\n return;\n }\n callback(this._mutationObserver);\n };\n this._setFullScreenStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n const radix = 10,\n zIndex = this.container.actualOptions.fullScreen.zIndex.toString(radix);\n setStyle(element, {\n position: \"fixed\",\n \"z-index\": zIndex,\n zIndex: zIndex,\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\"\n }, true);\n };\n this._engine = engine;\n this._standardSize = {\n height: 0,\n width: 0\n };\n const pxRatio = container.retina.pixelRatio,\n stdSize = this._standardSize;\n this.size = {\n height: stdSize.height * pxRatio,\n width: stdSize.width * pxRatio\n };\n this._context = null;\n this._generated = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n get _fullScreen() {\n return this.container.actualOptions.fullScreen.enable;\n }\n clear() {\n const options = this.container.actualOptions,\n trail = options.particles.move.trail,\n trailFill = this._trailFill,\n minimumLength = 0;\n if (options.backgroundMask.enable) {\n this.paint();\n } else if (trail.enable && trail.length > minimumLength && trailFill) {\n if (trailFill.color) {\n this._paintBase((0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb)(trailFill.color, trailFill.opacity));\n } else if (trailFill.image) {\n this._paintImage(trailFill.image, trailFill.opacity);\n }\n } else if (options.clear) {\n this.draw(ctx => {\n (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.clear)(ctx, this.size);\n });\n }\n }\n destroy() {\n this.stop();\n if (this._generated) {\n const element = this.element;\n element?.remove();\n } else {\n this._resetOriginalStyle();\n }\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n const ctx = this._context;\n if (!ctx) {\n return;\n }\n return cb(ctx);\n }\n drawAsync(cb) {\n const ctx = this._context;\n if (!ctx) {\n return undefined;\n }\n return cb(ctx);\n }\n drawParticle(particle, delta) {\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius(),\n minimumSize = 0;\n if (radius <= minimumSize) {\n return;\n }\n const pfColor = particle.getFillColor(),\n psColor = particle.getStrokeColor() ?? pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw(ctx => {\n const container = this.container,\n options = container.actualOptions,\n zIndexOptions = particle.options.zIndex,\n zIndexFactorOffset = 1,\n zIndexFactor = zIndexFactorOffset - particle.zIndexFactor,\n zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate,\n defaultOpacity = 1,\n opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity,\n strokeOpacity = particle.strokeOpacity ?? opacity,\n zOpacity = opacity * zOpacityFactor,\n zStrokeOpacity = strokeOpacity * zOpacityFactor,\n transform = {},\n colorStyles = {\n fill: fColor ? (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromHsl)(fColor, zOpacity) : undefined\n };\n colorStyles.stroke = sColor ? (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromHsl)(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.drawParticle)({\n container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * zIndexFactor ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.drawParticlePlugin)(ctx, plugin, particle, delta));\n }\n drawPlugin(plugin, delta) {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.drawPlugin)(ctx, plugin, delta));\n }\n async init() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeMutationObserver)(records => {\n for (const record of records) {\n if (record.type === \"attributes\" && record.attributeName === \"style\") {\n this._repairStyle();\n }\n }\n });\n this.resize();\n this._initStyle();\n await this._initCover();\n try {\n await this._initTrail();\n } catch (e) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.getLogger)().error(e);\n }\n this.initBackground();\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, {\n attributes: true\n });\n });\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions,\n background = options.background,\n element = this.element;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb)(this._engine, background.color);\n elementStyle.backgroundColor = color ? (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb)(color, background.opacity) : \"\";\n } else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const plugin of this.container.plugins.values()) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor ?? plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles ?? updater.getTransformValues ?? updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n if (this._generated && this.element) {\n this.element.remove();\n }\n this._generated = canvas.dataset && _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.generatedAttribute in canvas.dataset ? canvas.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.generatedAttribute] === \"true\" : this._generated;\n this.element = canvas;\n this.element.ariaHidden = \"true\";\n this._originalStyle = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.deepExtend)({}, this.element.style);\n const standardSize = this._standardSize;\n standardSize.height = canvas.offsetHeight;\n standardSize.width = canvas.offsetWidth;\n const pxRatio = this.container.retina.pixelRatio;\n const retinaSize = this.size;\n retinaSize.height = standardSize.height * pxRatio;\n retinaSize.width = standardSize.width * pxRatio;\n this._context = this.element.getContext(\"2d\");\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, {\n attributes: true\n });\n });\n this.container.retina.init();\n this.initBackground();\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw(ctx => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.clear)(ctx, this.size);\n if (this._coverImage) {\n this._paintImage(this._coverImage.image, this._coverImage.opacity);\n } else if (this._coverColorStyle) {\n this._paintBase(this._coverColorStyle);\n } else {\n this._paintBase();\n }\n } else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return false;\n }\n const container = this.container,\n currentSize = container.canvas._standardSize,\n newSize = {\n width: this.element.offsetWidth,\n height: this.element.offsetHeight\n };\n if (newSize.height === currentSize.height && newSize.width === currentSize.width) {\n return false;\n }\n const oldSize = {\n ...currentSize\n },\n pxRatio = container.retina.pixelRatio;\n currentSize.height = newSize.height;\n currentSize.width = newSize.width;\n const retinaSize = this.size;\n this.element.width = retinaSize.width = currentSize.width * pxRatio;\n this.element.height = retinaSize.height = currentSize.height * pxRatio;\n if (this.container.started) {\n container.particles.setResizeFactor({\n width: currentSize.width / oldSize.width,\n height: currentSize.height / oldSize.height\n });\n }\n return true;\n }\n stop() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = undefined;\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.clear)(ctx, this.size));\n }\n async windowResize() {\n if (!this.element || !this.resize()) {\n return;\n }\n const container = this.container,\n needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../engine/dist/browser/Core/Canvas.js?");
87
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Canvas: () => (/* binding */ Canvas)\n/* harmony export */ });\n/* harmony import */ var _Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils/CanvasUtils.js */ \"../../engine/dist/browser/Utils/CanvasUtils.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/ColorUtils.js */ \"../../engine/dist/browser/Utils/ColorUtils.js\");\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n\n\n\n\nfunction setTransformValue(factor, newFactor, key) {\n const newValue = newFactor[key],\n defaultValue = 1;\n if (newValue !== undefined) {\n factor[key] = (factor[key] ?? defaultValue) * newValue;\n }\n}\nfunction setStyle(canvas, style, important = false) {\n if (!style) {\n return;\n }\n const element = canvas;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n for (const key in style) {\n const value = style[key];\n elementStyle.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nclass Canvas {\n constructor(container, engine) {\n this.container = container;\n this._applyPostDrawUpdaters = particle => {\n for (const updater of this._postDrawUpdaters) {\n updater.afterDraw?.(particle);\n }\n };\n this._applyPreDrawUpdaters = (ctx, particle, radius, zOpacity, colorStyles, transform) => {\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const {\n fill,\n stroke\n } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n updater.beforeDraw?.(particle);\n }\n };\n this._applyResizePlugins = () => {\n for (const plugin of this._resizePlugins) {\n plugin.resize?.();\n }\n };\n this._getPluginParticleColors = particle => {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToHsl)(this._engine, plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToHsl)(this._engine, plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n };\n this._initCover = async () => {\n const options = this.container.actualOptions,\n cover = options.backgroundMask.cover,\n color = cover.color;\n if (color) {\n const coverRgb = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb)(this._engine, color);\n if (coverRgb) {\n const coverColor = {\n ...coverRgb,\n a: cover.opacity\n };\n this._coverColorStyle = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb)(coverColor, coverColor.a);\n }\n } else {\n await new Promise((resolve, reject) => {\n if (!cover.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._coverImage = {\n image: img,\n opacity: cover.opacity\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = cover.image;\n });\n }\n };\n this._initStyle = () => {\n const element = this.element,\n options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (this._fullScreen) {\n this._originalStyle = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.deepExtend)({}, element.style);\n this._setFullScreenStyle();\n } else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n };\n this._initTrail = async () => {\n const options = this.container.actualOptions,\n trail = options.particles.move.trail,\n trailFill = trail.fill;\n if (!trail.enable) {\n return;\n }\n const factorNumerator = 1,\n opacity = factorNumerator / trail.length;\n if (trailFill.color) {\n const fillColor = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb)(this._engine, trailFill.color);\n if (!fillColor) {\n return;\n }\n this._trailFill = {\n color: {\n ...fillColor\n },\n opacity\n };\n } else {\n await new Promise((resolve, reject) => {\n if (!trailFill.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._trailFill = {\n image: img,\n opacity\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = trailFill.image;\n });\n }\n };\n this._paintBase = baseColor => {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.paintBase)(ctx, this.size, baseColor));\n };\n this._paintImage = (image, opacity) => {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.paintImage)(ctx, this.size, image, opacity));\n };\n this._repairStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n this._safeMutationObserver(observer => observer.disconnect());\n this._initStyle();\n this.initBackground();\n this._safeMutationObserver(observer => {\n if (!element || !(element instanceof Node)) {\n return;\n }\n observer.observe(element, {\n attributes: true\n });\n });\n };\n this._resetOriginalStyle = () => {\n const element = this.element,\n originalStyle = this._originalStyle;\n if (!(element && originalStyle)) {\n return;\n }\n setStyle(element, originalStyle);\n };\n this._safeMutationObserver = callback => {\n if (!this._mutationObserver) {\n return;\n }\n callback(this._mutationObserver);\n };\n this._setFullScreenStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n const radix = 10,\n zIndex = this.container.actualOptions.fullScreen.zIndex.toString(radix);\n setStyle(element, {\n position: \"fixed\",\n \"z-index\": zIndex,\n zIndex: zIndex,\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\"\n }, true);\n };\n this._engine = engine;\n this._standardSize = {\n height: 0,\n width: 0\n };\n const pxRatio = container.retina.pixelRatio,\n stdSize = this._standardSize;\n this.size = {\n height: stdSize.height * pxRatio,\n width: stdSize.width * pxRatio\n };\n this._context = null;\n this._generated = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n get _fullScreen() {\n return this.container.actualOptions.fullScreen.enable;\n }\n clear() {\n const options = this.container.actualOptions,\n trail = options.particles.move.trail,\n trailFill = this._trailFill,\n minimumLength = 0;\n if (options.backgroundMask.enable) {\n this.paint();\n } else if (trail.enable && trail.length > minimumLength && trailFill) {\n if (trailFill.color) {\n this._paintBase((0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb)(trailFill.color, trailFill.opacity));\n } else if (trailFill.image) {\n this._paintImage(trailFill.image, trailFill.opacity);\n }\n } else if (options.clear) {\n this.draw(ctx => {\n (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.clear)(ctx, this.size);\n });\n }\n }\n destroy() {\n this.stop();\n if (this._generated) {\n const element = this.element;\n element?.remove();\n } else {\n this._resetOriginalStyle();\n }\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n const ctx = this._context;\n if (!ctx) {\n return;\n }\n return cb(ctx);\n }\n drawAsync(cb) {\n const ctx = this._context;\n if (!ctx) {\n return undefined;\n }\n return cb(ctx);\n }\n drawParticle(particle, delta) {\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius(),\n minimumSize = 0;\n if (radius <= minimumSize) {\n return;\n }\n const pfColor = particle.getFillColor(),\n psColor = particle.getStrokeColor() ?? pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw(ctx => {\n const container = this.container,\n options = container.actualOptions,\n zIndexOptions = particle.options.zIndex,\n zIndexFactorOffset = 1,\n zIndexFactor = zIndexFactorOffset - particle.zIndexFactor,\n zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate,\n defaultOpacity = 1,\n opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity,\n strokeOpacity = particle.strokeOpacity ?? opacity,\n zOpacity = opacity * zOpacityFactor,\n zStrokeOpacity = strokeOpacity * zOpacityFactor,\n transform = {},\n colorStyles = {\n fill: fColor ? (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromHsl)(fColor, zOpacity) : undefined\n };\n colorStyles.stroke = sColor ? (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromHsl)(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.drawParticle)({\n container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * zIndexFactor ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.drawParticlePlugin)(ctx, plugin, particle, delta));\n }\n drawPlugin(plugin, delta) {\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.drawPlugin)(ctx, plugin, delta));\n }\n async init() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeMutationObserver)(records => {\n for (const record of records) {\n if (record.type === \"attributes\" && record.attributeName === \"style\") {\n this._repairStyle();\n }\n }\n });\n this.resize();\n this._initStyle();\n await this._initCover();\n try {\n await this._initTrail();\n } catch (e) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.getLogger)().error(e);\n }\n this.initBackground();\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, {\n attributes: true\n });\n });\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions,\n background = options.background,\n element = this.element;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.rangeColorToRgb)(this._engine, background.color);\n elementStyle.backgroundColor = color ? (0,_Utils_ColorUtils_js__WEBPACK_IMPORTED_MODULE_2__.getStyleFromRgb)(color, background.opacity) : \"\";\n } else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const plugin of this.container.plugins.values()) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor ?? plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles ?? updater.getTransformValues ?? updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n if (this._generated && this.element) {\n this.element.remove();\n }\n this._generated = canvas.dataset && _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.generatedAttribute in canvas.dataset ? canvas.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_3__.generatedAttribute] === \"true\" : this._generated;\n this.element = canvas;\n this.element.ariaHidden = \"true\";\n this._originalStyle = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.deepExtend)({}, this.element.style);\n const standardSize = this._standardSize;\n standardSize.height = canvas.offsetHeight;\n standardSize.width = canvas.offsetWidth;\n const pxRatio = this.container.retina.pixelRatio,\n retinaSize = this.size;\n canvas.height = retinaSize.height = standardSize.height * pxRatio;\n canvas.width = retinaSize.width = standardSize.width * pxRatio;\n this._context = this.element.getContext(\"2d\");\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, {\n attributes: true\n });\n });\n this.container.retina.init();\n this.initBackground();\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw(ctx => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.clear)(ctx, this.size);\n if (this._coverImage) {\n this._paintImage(this._coverImage.image, this._coverImage.opacity);\n } else if (this._coverColorStyle) {\n this._paintBase(this._coverColorStyle);\n } else {\n this._paintBase();\n }\n } else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return false;\n }\n const container = this.container,\n currentSize = container.canvas._standardSize,\n newSize = {\n width: this.element.offsetWidth,\n height: this.element.offsetHeight\n },\n pxRatio = container.retina.pixelRatio,\n retinaSize = {\n width: newSize.width * pxRatio,\n height: newSize.height * pxRatio\n };\n if (newSize.height === currentSize.height && newSize.width === currentSize.width && retinaSize.height === this.element.height && retinaSize.width === this.element.width) {\n return false;\n }\n const oldSize = {\n ...currentSize\n };\n currentSize.height = newSize.height;\n currentSize.width = newSize.width;\n const canvasSize = this.size;\n this.element.width = canvasSize.width = retinaSize.width;\n this.element.height = canvasSize.height = retinaSize.height;\n if (this.container.started) {\n container.particles.setResizeFactor({\n width: currentSize.width / oldSize.width,\n height: currentSize.height / oldSize.height\n });\n }\n return true;\n }\n stop() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = undefined;\n this.draw(ctx => (0,_Utils_CanvasUtils_js__WEBPACK_IMPORTED_MODULE_0__.clear)(ctx, this.size));\n }\n async windowResize() {\n if (!this.element || !this.resize()) {\n return;\n }\n const container = this.container,\n needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../engine/dist/browser/Core/Canvas.js?");
88
88
 
89
89
  /***/ }),
90
90
 
@@ -104,7 +104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
104
104
  \************************************************/
105
105
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
106
106
 
107
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Engine: () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Container_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Container.js */ \"../../engine/dist/browser/Core/Container.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"../../engine/dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/Types/EventType.js */ \"../../engine/dist/browser/Enums/Types/EventType.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/NumberUtils.js */ \"../../engine/dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.getLogger)().error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nconst generatedTrue = \"true\",\n generatedFalse = \"false\",\n canvasTag = \"canvas\",\n getCanvasFromContainer = domContainer => {\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === canvasTag) {\n canvasEl = domContainer;\n if (!canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute]) {\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedFalse;\n }\n } else {\n const existingCanvases = domContainer.getElementsByTagName(canvasTag);\n if (existingCanvases.length) {\n const firstIndex = 0;\n canvasEl = existingCanvases[firstIndex];\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedFalse;\n } else {\n canvasEl = document.createElement(canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n const fullPercent = \"100%\";\n if (!canvasEl.style.width) {\n canvasEl.style.width = fullPercent;\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = fullPercent;\n }\n return canvasEl;\n },\n getDomContainer = (id, source) => {\n let domContainer = source ?? document.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedTrue;\n document.body.append(domContainer);\n return domContainer;\n };\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__.EventDispatcher();\n this._initialized = false;\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map()\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"3.7.0\";\n }\n async addColorManager(manager, refresh = true) {\n this.colorManagers.set(manager.key, manager);\n await this.refresh(refresh);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(_Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__.EventType.configAdded, {\n data: {\n name: key,\n config\n }\n });\n }\n async addEasing(name, easing, refresh = true) {\n if (this.getEasing(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n await this.refresh(refresh);\n }\n async addEffect(effect, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.executeOnSingleOrMultiple)(effect, type => {\n if (!this.getEffectDrawer(type)) {\n this.effectDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer, refresh = true) {\n this._initializers.interactors.set(name, interactorInitializer);\n await this.refresh(refresh);\n }\n async addMover(name, moverInitializer, refresh = true) {\n this._initializers.movers.set(name, moverInitializer);\n await this.refresh(refresh);\n }\n async addParticleUpdater(name, updaterInitializer, refresh = true) {\n this._initializers.updaters.set(name, updaterInitializer);\n await this.refresh(refresh);\n }\n async addPathGenerator(name, generator, refresh = true) {\n if (!this.getPathGenerator(name)) {\n this.pathGenerators.set(name, generator);\n }\n await this.refresh(refresh);\n }\n async addPlugin(plugin, refresh = true) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n await this.refresh(refresh);\n }\n async addPreset(preset, options, override = false, refresh = true) {\n if (override || !this.getPreset(preset)) {\n this.presets.set(preset, options);\n }\n await this.refresh(refresh);\n }\n async addShape(drawer, refresh = true) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n await this.refresh(refresh);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? (value => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n item(index) {\n const {\n items\n } = this,\n item = items[index];\n if (!item || item.destroyed) {\n const deleteCount = 1;\n items.splice(index, deleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n const randomFactor = 10000,\n id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__.getRandom)() * randomFactor)}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options;\n const currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(options, index),\n {\n items\n } = this,\n oldIndex = items.findIndex(v => v.id.description === id),\n minIndex = 0,\n newItem = new _Container_js__WEBPACK_IMPORTED_MODULE_2__.Container(this, id, currentOptions);\n if (oldIndex >= minIndex) {\n const old = this.item(oldIndex),\n one = 1,\n none = 0,\n deleteCount = old ? one : none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n } else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element),\n canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => plugin.loadOptions?.(options, sourceOptions));\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const {\n items\n } = this;\n if (!items.length) {\n throw new Error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n items.forEach(item => item.addClickHandler(callback));\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../engine/dist/browser/Core/Engine.js?");
107
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Engine: () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Container_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Container.js */ \"../../engine/dist/browser/Core/Container.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"../../engine/dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/Types/EventType.js */ \"../../engine/dist/browser/Enums/Types/EventType.js\");\n/* harmony import */ var _Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/NumberUtils.js */ \"../../engine/dist/browser/Utils/NumberUtils.js\");\n\n\n\n\n\n\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.getLogger)().error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nconst generatedTrue = \"true\",\n generatedFalse = \"false\",\n canvasTag = \"canvas\",\n getCanvasFromContainer = domContainer => {\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === canvasTag) {\n canvasEl = domContainer;\n if (!canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute]) {\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedFalse;\n }\n } else {\n const existingCanvases = domContainer.getElementsByTagName(canvasTag);\n if (existingCanvases.length) {\n const firstIndex = 0;\n canvasEl = existingCanvases[firstIndex];\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedFalse;\n } else {\n canvasEl = document.createElement(canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n const fullPercent = \"100%\";\n if (!canvasEl.style.width) {\n canvasEl.style.width = fullPercent;\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = fullPercent;\n }\n return canvasEl;\n },\n getDomContainer = (id, source) => {\n let domContainer = source ?? document.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = generatedTrue;\n document.body.append(domContainer);\n return domContainer;\n };\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_3__.EventDispatcher();\n this._initialized = false;\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map()\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"3.7.1\";\n }\n async addColorManager(manager, refresh = true) {\n this.colorManagers.set(manager.key, manager);\n await this.refresh(refresh);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(_Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_4__.EventType.configAdded, {\n data: {\n name: key,\n config\n }\n });\n }\n async addEasing(name, easing, refresh = true) {\n if (this.getEasing(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n await this.refresh(refresh);\n }\n async addEffect(effect, drawer, refresh = true) {\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.executeOnSingleOrMultiple)(effect, type => {\n if (!this.getEffectDrawer(type)) {\n this.effectDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer, refresh = true) {\n this._initializers.interactors.set(name, interactorInitializer);\n await this.refresh(refresh);\n }\n async addMover(name, moverInitializer, refresh = true) {\n this._initializers.movers.set(name, moverInitializer);\n await this.refresh(refresh);\n }\n async addParticleUpdater(name, updaterInitializer, refresh = true) {\n this._initializers.updaters.set(name, updaterInitializer);\n await this.refresh(refresh);\n }\n async addPathGenerator(name, generator, refresh = true) {\n if (!this.getPathGenerator(name)) {\n this.pathGenerators.set(name, generator);\n }\n await this.refresh(refresh);\n }\n async addPlugin(plugin, refresh = true) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n await this.refresh(refresh);\n }\n async addPreset(preset, options, override = false, refresh = true) {\n if (override || !this.getPreset(preset)) {\n this.presets.set(preset, options);\n }\n await this.refresh(refresh);\n }\n async addShape(drawer, refresh = true) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n await this.refresh(refresh);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? (value => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n item(index) {\n const {\n items\n } = this,\n item = items[index];\n if (!item || item.destroyed) {\n const deleteCount = 1;\n items.splice(index, deleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n const randomFactor = 10000,\n id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_NumberUtils_js__WEBPACK_IMPORTED_MODULE_5__.getRandom)() * randomFactor)}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options;\n const currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(options, index),\n {\n items\n } = this,\n oldIndex = items.findIndex(v => v.id.description === id),\n minIndex = 0,\n newItem = new _Container_js__WEBPACK_IMPORTED_MODULE_2__.Container(this, id, currentOptions);\n if (oldIndex >= minIndex) {\n const old = this.item(oldIndex),\n one = 1,\n none = 0,\n deleteCount = old ? one : none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n } else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element),\n canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => plugin.loadOptions?.(options, sourceOptions));\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const {\n items\n } = this;\n if (!items.length) {\n throw new Error(`${_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n items.forEach(item => item.addClickHandler(callback));\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../engine/dist/browser/Core/Engine.js?");
108
108
 
109
109
  /***/ }),
110
110
 
@@ -2084,7 +2084,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2084
2084
  \*********************************************/
2085
2085
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2086
2086
 
2087
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBaseMover: () => (/* binding */ loadBaseMover)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _BaseMover_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseMover.js */ \"../../move/base/dist/browser/BaseMover.js\");\n\n\nasync function loadBaseMover(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addMover(\"base\", () => {\n return Promise.resolve(new _BaseMover_js__WEBPACK_IMPORTED_MODULE_1__.BaseMover());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../move/base/dist/browser/index.js?");
2087
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadBaseMover: () => (/* binding */ loadBaseMover)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _BaseMover_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseMover.js */ \"../../move/base/dist/browser/BaseMover.js\");\n\n\nasync function loadBaseMover(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addMover(\"base\", () => {\n return Promise.resolve(new _BaseMover_js__WEBPACK_IMPORTED_MODULE_1__.BaseMover());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../move/base/dist/browser/index.js?");
2088
2088
 
2089
2089
  /***/ }),
2090
2090
 
@@ -2104,7 +2104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2104
2104
  \***********************************************************/
2105
2105
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2106
2106
 
2107
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHexColorPlugin: () => (/* binding */ loadHexColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _HexColorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HexColorManager.js */ \"../../plugins/colors/hexColor/dist/browser/HexColorManager.js\");\n\n\nasync function loadHexColorPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addColorManager(new _HexColorManager_js__WEBPACK_IMPORTED_MODULE_1__.HexColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/colors/hexColor/dist/browser/index.js?");
2107
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHexColorPlugin: () => (/* binding */ loadHexColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _HexColorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HexColorManager.js */ \"../../plugins/colors/hexColor/dist/browser/HexColorManager.js\");\n\n\nasync function loadHexColorPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addColorManager(new _HexColorManager_js__WEBPACK_IMPORTED_MODULE_1__.HexColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/colors/hexColor/dist/browser/index.js?");
2108
2108
 
2109
2109
  /***/ }),
2110
2110
 
@@ -2124,7 +2124,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2124
2124
  \***********************************************************/
2125
2125
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2126
2126
 
2127
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHslColorPlugin: () => (/* binding */ loadHslColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _HslColorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HslColorManager.js */ \"../../plugins/colors/hslColor/dist/browser/HslColorManager.js\");\n\n\nasync function loadHslColorPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addColorManager(new _HslColorManager_js__WEBPACK_IMPORTED_MODULE_1__.HslColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/colors/hslColor/dist/browser/index.js?");
2127
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHslColorPlugin: () => (/* binding */ loadHslColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _HslColorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HslColorManager.js */ \"../../plugins/colors/hslColor/dist/browser/HslColorManager.js\");\n\n\nasync function loadHslColorPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addColorManager(new _HslColorManager_js__WEBPACK_IMPORTED_MODULE_1__.HslColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/colors/hslColor/dist/browser/index.js?");
2128
2128
 
2129
2129
  /***/ }),
2130
2130
 
@@ -2144,7 +2144,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2144
2144
  \***********************************************************/
2145
2145
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2146
2146
 
2147
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRgbColorPlugin: () => (/* binding */ loadRgbColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RgbColorManager.js */ \"../../plugins/colors/rgbColor/dist/browser/RgbColorManager.js\");\n\n\nasync function loadRgbColorPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addColorManager(new _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_1__.RgbColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/colors/rgbColor/dist/browser/index.js?");
2147
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRgbColorPlugin: () => (/* binding */ loadRgbColorPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RgbColorManager.js */ \"../../plugins/colors/rgbColor/dist/browser/RgbColorManager.js\");\n\n\nasync function loadRgbColorPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addColorManager(new _RgbColorManager_js__WEBPACK_IMPORTED_MODULE_1__.RgbColorManager(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/colors/rgbColor/dist/browser/index.js?");
2148
2148
 
2149
2149
  /***/ }),
2150
2150
 
@@ -2324,7 +2324,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2324
2324
  \****************************************************/
2325
2325
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2326
2326
 
2327
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmitterClickMode: () => (/* reexport safe */ _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_8__.EmitterClickMode),\n/* harmony export */ EmitterShapeBase: () => (/* reexport safe */ _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_4__.EmitterShapeBase),\n/* harmony export */ loadEmittersPlugin: () => (/* binding */ loadEmittersPlugin)\n/* harmony export */ });\n/* harmony import */ var _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmittersPlugin.js */ \"../../plugins/emitters/dist/browser/EmittersPlugin.js\");\n/* harmony import */ var _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShapeManager.js */ \"../../plugins/emitters/dist/browser/ShapeManager.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _EmitterContainer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmitterContainer.js */ \"../../plugins/emitters/dist/browser/EmitterContainer.js\");\n/* harmony import */ var _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EmitterShapeBase.js */ \"../../plugins/emitters/dist/browser/EmitterShapeBase.js\");\n/* harmony import */ var _EmittersEngine_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./EmittersEngine.js */ \"../../plugins/emitters/dist/browser/EmittersEngine.js\");\n/* harmony import */ var _IEmitterShape_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./IEmitterShape.js */ \"../../plugins/emitters/dist/browser/IEmitterShape.js\");\n/* harmony import */ var _IEmitterShapeGenerator_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./IEmitterShapeGenerator.js */ \"../../plugins/emitters/dist/browser/IEmitterShapeGenerator.js\");\n/* harmony import */ var _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Enums/EmitterClickMode.js */ \"../../plugins/emitters/dist/browser/Enums/EmitterClickMode.js\");\n/* harmony import */ var _IRandomPositionData_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./IRandomPositionData.js */ \"../../plugins/emitters/dist/browser/IRandomPositionData.js\");\n\n\n\nasync function loadEmittersPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_2__.assertValidVersion)(engine, \"3.7.0\");\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__.ShapeManager(engine);\n }\n if (!engine.addEmitterShapeGenerator) {\n engine.addEmitterShapeGenerator = (name, generator) => {\n engine.emitterShapeManager?.addShapeGenerator(name, generator);\n };\n }\n const plugin = new _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__.EmittersPlugin(engine);\n await engine.addPlugin(plugin, refresh);\n}\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/emitters/dist/browser/index.js?");
2327
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmitterClickMode: () => (/* reexport safe */ _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_8__.EmitterClickMode),\n/* harmony export */ EmitterShapeBase: () => (/* reexport safe */ _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_4__.EmitterShapeBase),\n/* harmony export */ loadEmittersPlugin: () => (/* binding */ loadEmittersPlugin)\n/* harmony export */ });\n/* harmony import */ var _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmittersPlugin.js */ \"../../plugins/emitters/dist/browser/EmittersPlugin.js\");\n/* harmony import */ var _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShapeManager.js */ \"../../plugins/emitters/dist/browser/ShapeManager.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _EmitterContainer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmitterContainer.js */ \"../../plugins/emitters/dist/browser/EmitterContainer.js\");\n/* harmony import */ var _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EmitterShapeBase.js */ \"../../plugins/emitters/dist/browser/EmitterShapeBase.js\");\n/* harmony import */ var _EmittersEngine_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./EmittersEngine.js */ \"../../plugins/emitters/dist/browser/EmittersEngine.js\");\n/* harmony import */ var _IEmitterShape_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./IEmitterShape.js */ \"../../plugins/emitters/dist/browser/IEmitterShape.js\");\n/* harmony import */ var _IEmitterShapeGenerator_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./IEmitterShapeGenerator.js */ \"../../plugins/emitters/dist/browser/IEmitterShapeGenerator.js\");\n/* harmony import */ var _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Enums/EmitterClickMode.js */ \"../../plugins/emitters/dist/browser/Enums/EmitterClickMode.js\");\n/* harmony import */ var _IRandomPositionData_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./IRandomPositionData.js */ \"../../plugins/emitters/dist/browser/IRandomPositionData.js\");\n\n\n\nasync function loadEmittersPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_2__.assertValidVersion)(engine, \"3.7.1\");\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new _ShapeManager_js__WEBPACK_IMPORTED_MODULE_1__.ShapeManager(engine);\n }\n if (!engine.addEmitterShapeGenerator) {\n engine.addEmitterShapeGenerator = (name, generator) => {\n engine.emitterShapeManager?.addShapeGenerator(name, generator);\n };\n }\n const plugin = new _EmittersPlugin_js__WEBPACK_IMPORTED_MODULE_0__.EmittersPlugin(engine);\n await engine.addPlugin(plugin, refresh);\n}\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/emitters/dist/browser/index.js?");
2328
2328
 
2329
2329
  /***/ }),
2330
2330
 
@@ -2374,7 +2374,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2374
2374
  \**************************************************/
2375
2375
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2376
2376
 
2377
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadMotionPlugin: () => (/* binding */ loadMotionPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _MotionPlugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MotionPlugin.js */ \"../../plugins/motion/dist/browser/MotionPlugin.js\");\n\n\nasync function loadMotionPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addPlugin(new _MotionPlugin_js__WEBPACK_IMPORTED_MODULE_1__.MotionPlugin(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/motion/dist/browser/index.js?");
2377
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadMotionPlugin: () => (/* binding */ loadMotionPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _MotionPlugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MotionPlugin.js */ \"../../plugins/motion/dist/browser/MotionPlugin.js\");\n\n\nasync function loadMotionPlugin(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addPlugin(new _MotionPlugin_js__WEBPACK_IMPORTED_MODULE_1__.MotionPlugin(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../plugins/motion/dist/browser/index.js?");
2378
2378
 
2379
2379
  /***/ }),
2380
2380
 
@@ -2434,7 +2434,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2434
2434
  \************************************************/
2435
2435
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2436
2436
 
2437
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCardsShape: () => (/* binding */ loadCardsShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _ClubDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClubDrawer.js */ \"../../shapes/cards/dist/browser/ClubDrawer.js\");\n/* harmony import */ var _DiamondDrawer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DiamondDrawer.js */ \"../../shapes/cards/dist/browser/DiamondDrawer.js\");\n/* harmony import */ var _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HeartDrawer.js */ \"../../shapes/cards/dist/browser/HeartDrawer.js\");\n/* harmony import */ var _SpadeDrawer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SpadeDrawer.js */ \"../../shapes/cards/dist/browser/SpadeDrawer.js\");\n\n\n\n\n\nasync function loadCardsShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _SpadeDrawer_js__WEBPACK_IMPORTED_MODULE_4__.SpadeDrawer(), refresh);\n await engine.addShape(new _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_3__.HeartDrawer(), refresh);\n await engine.addShape(new _DiamondDrawer_js__WEBPACK_IMPORTED_MODULE_2__.DiamondDrawer(), refresh);\n await engine.addShape(new _ClubDrawer_js__WEBPACK_IMPORTED_MODULE_1__.ClubDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/index.js?");
2437
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCardsShape: () => (/* binding */ loadCardsShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _ClubDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClubDrawer.js */ \"../../shapes/cards/dist/browser/ClubDrawer.js\");\n/* harmony import */ var _DiamondDrawer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DiamondDrawer.js */ \"../../shapes/cards/dist/browser/DiamondDrawer.js\");\n/* harmony import */ var _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HeartDrawer.js */ \"../../shapes/cards/dist/browser/HeartDrawer.js\");\n/* harmony import */ var _SpadeDrawer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SpadeDrawer.js */ \"../../shapes/cards/dist/browser/SpadeDrawer.js\");\n\n\n\n\n\nasync function loadCardsShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _SpadeDrawer_js__WEBPACK_IMPORTED_MODULE_4__.SpadeDrawer(), refresh);\n await engine.addShape(new _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_3__.HeartDrawer(), refresh);\n await engine.addShape(new _DiamondDrawer_js__WEBPACK_IMPORTED_MODULE_2__.DiamondDrawer(), refresh);\n await engine.addShape(new _ClubDrawer_js__WEBPACK_IMPORTED_MODULE_1__.ClubDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/index.js?");
2438
2438
 
2439
2439
  /***/ }),
2440
2440
 
@@ -2464,7 +2464,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2464
2464
  \*************************************************/
2465
2465
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2466
2466
 
2467
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCircleShape: () => (/* binding */ loadCircleShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CircleDrawer.js */ \"../../shapes/circle/dist/browser/CircleDrawer.js\");\n\n\nasync function loadCircleShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_1__.CircleDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/index.js?");
2467
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCircleShape: () => (/* binding */ loadCircleShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CircleDrawer.js */ \"../../shapes/circle/dist/browser/CircleDrawer.js\");\n\n\nasync function loadCircleShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _CircleDrawer_js__WEBPACK_IMPORTED_MODULE_1__.CircleDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/index.js?");
2468
2468
 
2469
2469
  /***/ }),
2470
2470
 
@@ -2494,7 +2494,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2494
2494
  \************************************************/
2495
2495
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2496
2496
 
2497
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadEmojiShape: () => (/* binding */ loadEmojiShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _EmojiDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EmojiDrawer.js */ \"../../shapes/emoji/dist/browser/EmojiDrawer.js\");\n\n\nasync function loadEmojiShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _EmojiDrawer_js__WEBPACK_IMPORTED_MODULE_1__.EmojiDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/emoji/dist/browser/index.js?");
2497
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadEmojiShape: () => (/* binding */ loadEmojiShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _EmojiDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EmojiDrawer.js */ \"../../shapes/emoji/dist/browser/EmojiDrawer.js\");\n\n\nasync function loadEmojiShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _EmojiDrawer_js__WEBPACK_IMPORTED_MODULE_1__.EmojiDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/emoji/dist/browser/index.js?");
2498
2498
 
2499
2499
  /***/ }),
2500
2500
 
@@ -2524,7 +2524,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2524
2524
  \************************************************/
2525
2525
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2526
2526
 
2527
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHeartShape: () => (/* binding */ loadHeartShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HeartDrawer.js */ \"../../shapes/heart/dist/browser/HeartDrawer.js\");\n\n\nasync function loadHeartShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_1__.HeartDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/heart/dist/browser/index.js?");
2527
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHeartShape: () => (/* binding */ loadHeartShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HeartDrawer.js */ \"../../shapes/heart/dist/browser/HeartDrawer.js\");\n\n\nasync function loadHeartShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _HeartDrawer_js__WEBPACK_IMPORTED_MODULE_1__.HeartDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/heart/dist/browser/index.js?");
2528
2528
 
2529
2529
  /***/ }),
2530
2530
 
@@ -2624,7 +2624,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2624
2624
  \************************************************/
2625
2625
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2626
2626
 
2627
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadImageShape: () => (/* binding */ loadImageShape)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/image/dist/browser/Utils.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _ImageDrawer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ImageDrawer.js */ \"../../shapes/image/dist/browser/ImageDrawer.js\");\n/* harmony import */ var _ImagePreloader_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ImagePreloader.js */ \"../../shapes/image/dist/browser/ImagePreloader.js\");\n/* harmony import */ var _GifUtils_Utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./GifUtils/Utils.js */ \"../../shapes/image/dist/browser/GifUtils/Utils.js\");\n\n\n\n\n\nconst extLength = 3;\nfunction addLoadImageToEngine(engine) {\n if (engine.loadImage) {\n return;\n }\n engine.loadImage = async data => {\n if (!data.name && !data.src) {\n throw new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} no image source provided`);\n }\n if (!engine.images) {\n engine.images = [];\n }\n if (engine.images.find(t => t.name === data.name || t.source === data.src)) {\n return;\n }\n try {\n const image = {\n gif: data.gif ?? false,\n name: data.name ?? data.src,\n source: data.src,\n type: data.src.substring(data.src.length - extLength),\n error: false,\n loading: true,\n replaceColor: data.replaceColor,\n ratio: data.width && data.height ? data.width / data.height : undefined\n };\n engine.images.push(image);\n let imageFunc;\n if (data.gif) {\n imageFunc = _GifUtils_Utils_js__WEBPACK_IMPORTED_MODULE_4__.loadGifImage;\n } else {\n imageFunc = data.replaceColor ? _Utils_js__WEBPACK_IMPORTED_MODULE_0__.downloadSvgImage : _Utils_js__WEBPACK_IMPORTED_MODULE_0__.loadImage;\n }\n await imageFunc(image);\n } catch {\n throw new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} ${data.name ?? data.src} not found`);\n }\n };\n}\nasync function loadImageShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.assertValidVersion)(engine, \"3.7.0\");\n addLoadImageToEngine(engine);\n const preloader = new _ImagePreloader_js__WEBPACK_IMPORTED_MODULE_3__.ImagePreloaderPlugin(engine);\n await engine.addPlugin(preloader, refresh);\n await engine.addShape(new _ImageDrawer_js__WEBPACK_IMPORTED_MODULE_2__.ImageDrawer(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/image/dist/browser/index.js?");
2627
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadImageShape: () => (/* binding */ loadImageShape)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/image/dist/browser/Utils.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _ImageDrawer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ImageDrawer.js */ \"../../shapes/image/dist/browser/ImageDrawer.js\");\n/* harmony import */ var _ImagePreloader_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ImagePreloader.js */ \"../../shapes/image/dist/browser/ImagePreloader.js\");\n/* harmony import */ var _GifUtils_Utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./GifUtils/Utils.js */ \"../../shapes/image/dist/browser/GifUtils/Utils.js\");\n\n\n\n\n\nconst extLength = 3;\nfunction addLoadImageToEngine(engine) {\n if (engine.loadImage) {\n return;\n }\n engine.loadImage = async data => {\n if (!data.name && !data.src) {\n throw new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} no image source provided`);\n }\n if (!engine.images) {\n engine.images = [];\n }\n if (engine.images.find(t => t.name === data.name || t.source === data.src)) {\n return;\n }\n try {\n const image = {\n gif: data.gif ?? false,\n name: data.name ?? data.src,\n source: data.src,\n type: data.src.substring(data.src.length - extLength),\n error: false,\n loading: true,\n replaceColor: data.replaceColor,\n ratio: data.width && data.height ? data.width / data.height : undefined\n };\n engine.images.push(image);\n let imageFunc;\n if (data.gif) {\n imageFunc = _GifUtils_Utils_js__WEBPACK_IMPORTED_MODULE_4__.loadGifImage;\n } else {\n imageFunc = data.replaceColor ? _Utils_js__WEBPACK_IMPORTED_MODULE_0__.downloadSvgImage : _Utils_js__WEBPACK_IMPORTED_MODULE_0__.loadImage;\n }\n await imageFunc(image);\n } catch {\n throw new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.errorPrefix} ${data.name ?? data.src} not found`);\n }\n };\n}\nasync function loadImageShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.assertValidVersion)(engine, \"3.7.1\");\n addLoadImageToEngine(engine);\n const preloader = new _ImagePreloader_js__WEBPACK_IMPORTED_MODULE_3__.ImagePreloaderPlugin(engine);\n await engine.addPlugin(preloader, refresh);\n await engine.addShape(new _ImageDrawer_js__WEBPACK_IMPORTED_MODULE_2__.ImageDrawer(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/image/dist/browser/index.js?");
2628
2628
 
2629
2629
  /***/ }),
2630
2630
 
@@ -2674,7 +2674,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2674
2674
  \**************************************************/
2675
2675
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2676
2676
 
2677
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadGenericPolygonShape: () => (/* binding */ loadGenericPolygonShape),\n/* harmony export */ loadPolygonShape: () => (/* binding */ loadPolygonShape),\n/* harmony export */ loadTriangleShape: () => (/* binding */ loadTriangleShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _PolygonDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PolygonDrawer.js */ \"../../shapes/polygon/dist/browser/PolygonDrawer.js\");\n/* harmony import */ var _TriangleDrawer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TriangleDrawer.js */ \"../../shapes/polygon/dist/browser/TriangleDrawer.js\");\n\n\n\nasync function loadGenericPolygonShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _PolygonDrawer_js__WEBPACK_IMPORTED_MODULE_1__.PolygonDrawer(), refresh);\n}\nasync function loadTriangleShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _TriangleDrawer_js__WEBPACK_IMPORTED_MODULE_2__.TriangleDrawer(), refresh);\n}\nasync function loadPolygonShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await loadGenericPolygonShape(engine, refresh);\n await loadTriangleShape(engine, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/polygon/dist/browser/index.js?");
2677
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadGenericPolygonShape: () => (/* binding */ loadGenericPolygonShape),\n/* harmony export */ loadPolygonShape: () => (/* binding */ loadPolygonShape),\n/* harmony export */ loadTriangleShape: () => (/* binding */ loadTriangleShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _PolygonDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PolygonDrawer.js */ \"../../shapes/polygon/dist/browser/PolygonDrawer.js\");\n/* harmony import */ var _TriangleDrawer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TriangleDrawer.js */ \"../../shapes/polygon/dist/browser/TriangleDrawer.js\");\n\n\n\nasync function loadGenericPolygonShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _PolygonDrawer_js__WEBPACK_IMPORTED_MODULE_1__.PolygonDrawer(), refresh);\n}\nasync function loadTriangleShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _TriangleDrawer_js__WEBPACK_IMPORTED_MODULE_2__.TriangleDrawer(), refresh);\n}\nasync function loadPolygonShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await loadGenericPolygonShape(engine, refresh);\n await loadTriangleShape(engine, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/polygon/dist/browser/index.js?");
2678
2678
 
2679
2679
  /***/ }),
2680
2680
 
@@ -2704,7 +2704,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2704
2704
  \*************************************************/
2705
2705
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2706
2706
 
2707
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSquareShape: () => (/* binding */ loadSquareShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _SquareDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SquareDrawer.js */ \"../../shapes/square/dist/browser/SquareDrawer.js\");\n\n\nasync function loadSquareShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _SquareDrawer_js__WEBPACK_IMPORTED_MODULE_1__.SquareDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/square/dist/browser/index.js?");
2707
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSquareShape: () => (/* binding */ loadSquareShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _SquareDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SquareDrawer.js */ \"../../shapes/square/dist/browser/SquareDrawer.js\");\n\n\nasync function loadSquareShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _SquareDrawer_js__WEBPACK_IMPORTED_MODULE_1__.SquareDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/square/dist/browser/index.js?");
2708
2708
 
2709
2709
  /***/ }),
2710
2710
 
@@ -2734,7 +2734,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2734
2734
  \***********************************************/
2735
2735
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2736
2736
 
2737
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadStarShape: () => (/* binding */ loadStarShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _StarDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StarDrawer.js */ \"../../shapes/star/dist/browser/StarDrawer.js\");\n\n\nasync function loadStarShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addShape(new _StarDrawer_js__WEBPACK_IMPORTED_MODULE_1__.StarDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/star/dist/browser/index.js?");
2737
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadStarShape: () => (/* binding */ loadStarShape)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _StarDrawer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StarDrawer.js */ \"../../shapes/star/dist/browser/StarDrawer.js\");\n\n\nasync function loadStarShape(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addShape(new _StarDrawer_js__WEBPACK_IMPORTED_MODULE_1__.StarDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/star/dist/browser/index.js?");
2738
2738
 
2739
2739
  /***/ }),
2740
2740
 
@@ -2754,7 +2754,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2754
2754
  \**************************************************/
2755
2755
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2756
2756
 
2757
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadColorUpdater: () => (/* binding */ loadColorUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ColorUpdater.js */ \"../../updaters/color/dist/browser/ColorUpdater.js\");\n\n\nasync function loadColorUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"color\", container => {\n return Promise.resolve(new _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_1__.ColorUpdater(container, engine));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/color/dist/browser/index.js?");
2757
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadColorUpdater: () => (/* binding */ loadColorUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ColorUpdater.js */ \"../../updaters/color/dist/browser/ColorUpdater.js\");\n\n\nasync function loadColorUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"color\", container => {\n return Promise.resolve(new _ColorUpdater_js__WEBPACK_IMPORTED_MODULE_1__.ColorUpdater(container, engine));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/color/dist/browser/index.js?");
2758
2758
 
2759
2759
  /***/ }),
2760
2760
 
@@ -2814,7 +2814,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2814
2814
  \*************************************************/
2815
2815
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2816
2816
 
2817
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadLifeUpdater: () => (/* binding */ loadLifeUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LifeUpdater.js */ \"../../updaters/life/dist/browser/LifeUpdater.js\");\n\n\nasync function loadLifeUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"life\", async container => {\n return Promise.resolve(new _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_1__.LifeUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/life/dist/browser/index.js?");
2817
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadLifeUpdater: () => (/* binding */ loadLifeUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LifeUpdater.js */ \"../../updaters/life/dist/browser/LifeUpdater.js\");\n\n\nasync function loadLifeUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"life\", async container => {\n return Promise.resolve(new _LifeUpdater_js__WEBPACK_IMPORTED_MODULE_1__.LifeUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/life/dist/browser/index.js?");
2818
2818
 
2819
2819
  /***/ }),
2820
2820
 
@@ -2834,7 +2834,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2834
2834
  \****************************************************/
2835
2835
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2836
2836
 
2837
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOpacityUpdater: () => (/* binding */ loadOpacityUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OpacityUpdater.js */ \"../../updaters/opacity/dist/browser/OpacityUpdater.js\");\n\n\nasync function loadOpacityUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"opacity\", container => {\n return Promise.resolve(new _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_1__.OpacityUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/opacity/dist/browser/index.js?");
2837
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOpacityUpdater: () => (/* binding */ loadOpacityUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OpacityUpdater.js */ \"../../updaters/opacity/dist/browser/OpacityUpdater.js\");\n\n\nasync function loadOpacityUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"opacity\", container => {\n return Promise.resolve(new _OpacityUpdater_js__WEBPACK_IMPORTED_MODULE_1__.OpacityUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/opacity/dist/browser/index.js?");
2838
2838
 
2839
2839
  /***/ }),
2840
2840
 
@@ -2904,7 +2904,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2904
2904
  \*****************************************************/
2905
2905
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2906
2906
 
2907
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOutModesUpdater: () => (/* binding */ loadOutModesUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OutOfCanvasUpdater.js */ \"../../updaters/outModes/dist/browser/OutOfCanvasUpdater.js\");\n\n\nasync function loadOutModesUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"outModes\", container => {\n return Promise.resolve(new _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_1__.OutOfCanvasUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/outModes/dist/browser/index.js?");
2907
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadOutModesUpdater: () => (/* binding */ loadOutModesUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OutOfCanvasUpdater.js */ \"../../updaters/outModes/dist/browser/OutOfCanvasUpdater.js\");\n\n\nasync function loadOutModesUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"outModes\", container => {\n return Promise.resolve(new _OutOfCanvasUpdater_js__WEBPACK_IMPORTED_MODULE_1__.OutOfCanvasUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/outModes/dist/browser/index.js?");
2908
2908
 
2909
2909
  /***/ }),
2910
2910
 
@@ -2964,7 +2964,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2964
2964
  \*************************************************/
2965
2965
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2966
2966
 
2967
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRollUpdater: () => (/* binding */ loadRollUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _RollUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RollUpdater.js */ \"../../updaters/roll/dist/browser/RollUpdater.js\");\n\n\nasync function loadRollUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"roll\", () => {\n return Promise.resolve(new _RollUpdater_js__WEBPACK_IMPORTED_MODULE_1__.RollUpdater(engine));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/roll/dist/browser/index.js?");
2967
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRollUpdater: () => (/* binding */ loadRollUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _RollUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RollUpdater.js */ \"../../updaters/roll/dist/browser/RollUpdater.js\");\n\n\nasync function loadRollUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"roll\", () => {\n return Promise.resolve(new _RollUpdater_js__WEBPACK_IMPORTED_MODULE_1__.RollUpdater(engine));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/roll/dist/browser/index.js?");
2968
2968
 
2969
2969
  /***/ }),
2970
2970
 
@@ -3004,7 +3004,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3004
3004
  \***************************************************/
3005
3005
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3006
3006
 
3007
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRotateUpdater: () => (/* binding */ loadRotateUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RotateUpdater.js */ \"../../updaters/rotate/dist/browser/RotateUpdater.js\");\n\n\nasync function loadRotateUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"rotate\", container => {\n return Promise.resolve(new _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_1__.RotateUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/rotate/dist/browser/index.js?");
3007
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadRotateUpdater: () => (/* binding */ loadRotateUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RotateUpdater.js */ \"../../updaters/rotate/dist/browser/RotateUpdater.js\");\n\n\nasync function loadRotateUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"rotate\", container => {\n return Promise.resolve(new _RotateUpdater_js__WEBPACK_IMPORTED_MODULE_1__.RotateUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/rotate/dist/browser/index.js?");
3008
3008
 
3009
3009
  /***/ }),
3010
3010
 
@@ -3024,7 +3024,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3024
3024
  \*************************************************/
3025
3025
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3026
3026
 
3027
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSizeUpdater: () => (/* binding */ loadSizeUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SizeUpdater.js */ \"../../updaters/size/dist/browser/SizeUpdater.js\");\n\n\nasync function loadSizeUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"size\", () => {\n return Promise.resolve(new _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_1__.SizeUpdater());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/size/dist/browser/index.js?");
3027
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSizeUpdater: () => (/* binding */ loadSizeUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SizeUpdater.js */ \"../../updaters/size/dist/browser/SizeUpdater.js\");\n\n\nasync function loadSizeUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"size\", () => {\n return Promise.resolve(new _SizeUpdater_js__WEBPACK_IMPORTED_MODULE_1__.SizeUpdater());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/size/dist/browser/index.js?");
3028
3028
 
3029
3029
  /***/ }),
3030
3030
 
@@ -3074,7 +3074,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3074
3074
  \*************************************************/
3075
3075
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3076
3076
 
3077
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadTiltUpdater: () => (/* binding */ loadTiltUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _TiltUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TiltUpdater.js */ \"../../updaters/tilt/dist/browser/TiltUpdater.js\");\n\n\nasync function loadTiltUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"tilt\", container => {\n return Promise.resolve(new _TiltUpdater_js__WEBPACK_IMPORTED_MODULE_1__.TiltUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/tilt/dist/browser/index.js?");
3077
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadTiltUpdater: () => (/* binding */ loadTiltUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _TiltUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TiltUpdater.js */ \"../../updaters/tilt/dist/browser/TiltUpdater.js\");\n\n\nasync function loadTiltUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"tilt\", container => {\n return Promise.resolve(new _TiltUpdater_js__WEBPACK_IMPORTED_MODULE_1__.TiltUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/tilt/dist/browser/index.js?");
3078
3078
 
3079
3079
  /***/ }),
3080
3080
 
@@ -3124,7 +3124,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3124
3124
  \***************************************************/
3125
3125
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3126
3126
 
3127
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadWobbleUpdater: () => (/* binding */ loadWobbleUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _WobbleUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./WobbleUpdater.js */ \"../../updaters/wobble/dist/browser/WobbleUpdater.js\");\n\n\nasync function loadWobbleUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.0\");\n await engine.addParticleUpdater(\"wobble\", container => {\n return Promise.resolve(new _WobbleUpdater_js__WEBPACK_IMPORTED_MODULE_1__.WobbleUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/wobble/dist/browser/index.js?");
3127
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadWobbleUpdater: () => (/* binding */ loadWobbleUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _WobbleUpdater_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./WobbleUpdater.js */ \"../../updaters/wobble/dist/browser/WobbleUpdater.js\");\n\n\nasync function loadWobbleUpdater(engine, refresh = true) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.assertValidVersion)(engine, \"3.7.1\");\n await engine.addParticleUpdater(\"wobble\", container => {\n return Promise.resolve(new _WobbleUpdater_js__WEBPACK_IMPORTED_MODULE_1__.WobbleUpdater(container));\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../updaters/wobble/dist/browser/index.js?");
3128
3128
 
3129
3129
  /***/ })
3130
3130