@tsparticles/updater-gradient 3.2.2 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/browser/GradientUpdater.js +20 -21
  2. package/browser/Options/Classes/AnimatableGradient.js +3 -2
  3. package/browser/Options/Classes/GradientAngle.js +2 -2
  4. package/browser/Options/Classes/GradientColorOpacityAnimation.js +2 -2
  5. package/browser/Utils.js +3 -3
  6. package/browser/index.js +3 -3
  7. package/cjs/GradientUpdater.js +20 -44
  8. package/cjs/Options/Classes/AnimatableGradient.js +3 -2
  9. package/cjs/Options/Classes/GradientAngle.js +1 -1
  10. package/cjs/Options/Classes/GradientColorOpacityAnimation.js +1 -1
  11. package/cjs/Utils.js +2 -2
  12. package/cjs/index.js +3 -26
  13. package/esm/GradientUpdater.js +20 -21
  14. package/esm/Options/Classes/AnimatableGradient.js +3 -2
  15. package/esm/Options/Classes/GradientAngle.js +2 -2
  16. package/esm/Options/Classes/GradientColorOpacityAnimation.js +2 -2
  17. package/esm/Utils.js +3 -3
  18. package/esm/index.js +3 -3
  19. package/package.json +2 -2
  20. package/report.html +1 -1
  21. package/tsparticles.updater.gradient.js +82 -200
  22. package/tsparticles.updater.gradient.min.js +1 -1
  23. package/tsparticles.updater.gradient.min.js.LICENSE.txt +1 -1
  24. package/types/GradientUpdater.d.ts +2 -2
  25. package/umd/GradientUpdater.js +21 -46
  26. package/umd/Options/Classes/AnimatableGradient.js +4 -3
  27. package/umd/Options/Classes/GradientAngle.js +1 -1
  28. package/umd/Options/Classes/GradientColorOpacityAnimation.js +1 -1
  29. package/umd/Utils.js +2 -2
  30. package/umd/index.js +4 -28
  31. package/103.min.js +0 -2
  32. package/103.min.js.LICENSE.txt +0 -1
  33. package/914.min.js +0 -2
  34. package/914.min.js.LICENSE.txt +0 -1
  35. package/dist_browser_GradientUpdater_js.js +0 -90
  36. package/dist_browser_Utils_js.js +0 -30
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/updater-gradient [20 Feb 2024 at 01:39]</title>
6
+ <title>@tsparticles/updater-gradient [13 May 2024 at 00:14]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.4.0
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -28,13 +28,93 @@ return /******/ (() => { // webpackBootstrap
28
28
  /******/ "use strict";
29
29
  /******/ var __webpack_modules__ = ({
30
30
 
31
+ /***/ "./dist/browser/GradientUpdater.js":
32
+ /*!*****************************************!*\
33
+ !*** ./dist/browser/GradientUpdater.js ***!
34
+ \*****************************************/
35
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
36
+
37
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GradientUpdater: () => (/* binding */ GradientUpdater)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Options_Classes_AnimatableGradient_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/AnimatableGradient.js */ \"./dist/browser/Options/Classes/AnimatableGradient.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Utils.js */ \"./dist/browser/Utils.js\");\n\n\n\nconst double = 2,\n doublePI = Math.PI * double;\nclass GradientUpdater {\n getColorStyles(particle, context, radius, opacity) {\n const gradient = particle.gradient;\n if (!gradient) {\n return {};\n }\n const gradientAngle = gradient.angle.value,\n origin = {\n x: 0,\n y: 0\n },\n minRadius = 0,\n fillGradient = gradient.type === _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.GradientType.radial ? context.createRadialGradient(origin.x, origin.y, minRadius, origin.x, origin.y, radius) : context.createLinearGradient(Math.cos(gradientAngle) * -radius, Math.sin(gradientAngle) * -radius, Math.cos(gradientAngle) * radius, Math.sin(gradientAngle) * radius);\n for (const {\n stop,\n value,\n opacity: cOpacity\n } of gradient.colors) {\n fillGradient.addColorStop(stop, (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromHsl)({\n h: value.h.value,\n s: value.s.value,\n l: value.l.value\n }, cOpacity?.value ?? opacity));\n }\n return {\n fill: fillGradient\n };\n }\n init(particle) {\n const gradient = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(particle.options.gradient);\n if (!gradient) {\n return;\n }\n const {\n angle\n } = gradient,\n speedFactor = 360,\n delayOffset = 1;\n particle.gradient = {\n angle: {\n value: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(angle.value),\n enable: angle.animation.enable,\n velocity: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(angle.animation.speed) / speedFactor * particle.container.retina.reduceFactor,\n decay: delayOffset - (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(angle.animation.decay),\n delayTime: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(angle.animation.delay) * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds,\n max: doublePI,\n min: 0,\n time: 0\n },\n type: gradient.type,\n colors: []\n };\n let rotateDirection = gradient.angle.direction;\n if (rotateDirection === _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.random) {\n rotateDirection = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() > _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.halfRandom ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.counterClockwise : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise;\n }\n switch (rotateDirection) {\n case _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.counterClockwise:\n case \"counterClockwise\":\n particle.gradient.angle.status = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimationStatus.decreasing;\n break;\n case _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise:\n particle.gradient.angle.status = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimationStatus.increasing;\n break;\n }\n const reduceDuplicates = particle.options.reduceDuplicates;\n for (const grColor of gradient.colors) {\n const grHslColor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToHsl)(grColor.value, particle.id, reduceDuplicates);\n if (!grHslColor) {\n continue;\n }\n const grHslAnimation = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getHslAnimationFromHsl)(grHslColor, grColor.value.animation, particle.container.retina.reduceFactor),\n addColor = {\n stop: grColor.stop,\n value: grHslAnimation,\n opacity: grColor.opacity ? {\n enable: grColor.opacity.animation.enable,\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(grColor.opacity.value),\n min: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(grColor.opacity.value),\n status: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimationStatus.increasing,\n value: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(grColor.opacity.value),\n velocity: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(grColor.opacity.animation.speed) / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator * particle.container.retina.reduceFactor,\n decay: delayOffset - (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(grColor.opacity.animation.decay),\n delayTime: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(grColor.opacity.animation.delay) * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds,\n time: 0\n } : undefined\n };\n const {\n opacity: addOpacity\n } = addColor;\n if (grColor.opacity && addOpacity) {\n const opacityRange = grColor.opacity.value;\n addOpacity.min = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(opacityRange);\n addOpacity.max = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(opacityRange);\n const opacityAnimation = grColor.opacity.animation;\n switch (opacityAnimation.startValue) {\n case _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.min:\n addOpacity.value = addOpacity.min;\n addOpacity.status = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimationStatus.increasing;\n break;\n case _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.max:\n addOpacity.value = addOpacity.max;\n addOpacity.status = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimationStatus.decreasing;\n break;\n case _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.random:\n default:\n addOpacity.value = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.randomInRange)(addOpacity);\n addOpacity.status = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.halfRandom ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimationStatus.increasing : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimationStatus.decreasing;\n break;\n }\n }\n particle.gradient.colors.push(addColor);\n }\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning && (!!particle.gradient?.angle.enable || (particle.gradient?.colors.some(c => c.value.h.enable || c.value.s.enable || c.value.l.enable) ?? false));\n }\n loadOptions(options, ...sources) {\n for (const source of sources) {\n if (!source?.gradient) {\n continue;\n }\n const gradientToLoad = source.gradient;\n if (!gradientToLoad) {\n continue;\n }\n options.gradient = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(gradientToLoad, gradient => {\n const tmp = new _Options_Classes_AnimatableGradient_js__WEBPACK_IMPORTED_MODULE_1__.AnimatableGradient();\n tmp.load(gradient);\n return tmp;\n });\n }\n }\n update(particle, delta) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_2__.updateGradient)(particle, delta);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/GradientUpdater.js?");
38
+
39
+ /***/ }),
40
+
41
+ /***/ "./dist/browser/Options/Classes/AnimatableGradient.js":
42
+ /*!************************************************************!*\
43
+ !*** ./dist/browser/Options/Classes/AnimatableGradient.js ***!
44
+ \************************************************************/
45
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
46
+
47
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableGradient: () => (/* binding */ AnimatableGradient)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _AnimatableGradientColor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AnimatableGradientColor.js */ \"./dist/browser/Options/Classes/AnimatableGradientColor.js\");\n/* harmony import */ var _GradientAngle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GradientAngle.js */ \"./dist/browser/Options/Classes/GradientAngle.js\");\n\n\n\nclass AnimatableGradient {\n constructor() {\n this.angle = new _GradientAngle_js__WEBPACK_IMPORTED_MODULE_1__.GradientAngle();\n this.colors = [];\n this.type = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.GradientType.random;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load(data.angle);\n if (data.colors !== undefined) {\n this.colors = data.colors.map(s => {\n const tmp = new _AnimatableGradientColor_js__WEBPACK_IMPORTED_MODULE_2__.AnimatableGradientColor();\n tmp.load(s);\n return tmp;\n });\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Options/Classes/AnimatableGradient.js?");
48
+
49
+ /***/ }),
50
+
51
+ /***/ "./dist/browser/Options/Classes/AnimatableGradientColor.js":
52
+ /*!*****************************************************************!*\
53
+ !*** ./dist/browser/Options/Classes/AnimatableGradientColor.js ***!
54
+ \*****************************************************************/
55
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
56
+
57
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatableGradientColor: () => (/* binding */ AnimatableGradientColor)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _GradientColorOpacity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GradientColorOpacity.js */ \"./dist/browser/Options/Classes/GradientColorOpacity.js\");\n\n\nclass AnimatableGradientColor {\n constructor() {\n this.stop = 0;\n this.value = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimatableColor();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.stop !== undefined) {\n this.stop = data.stop;\n }\n this.value = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.AnimatableColor.create(this.value, data.value);\n if (data.opacity !== undefined) {\n this.opacity = new _GradientColorOpacity_js__WEBPACK_IMPORTED_MODULE_1__.GradientColorOpacity();\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(data.opacity)) {\n this.opacity.value = data.opacity;\n } else {\n this.opacity.load(data.opacity);\n }\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Options/Classes/AnimatableGradientColor.js?");
58
+
59
+ /***/ }),
60
+
61
+ /***/ "./dist/browser/Options/Classes/GradientAngle.js":
62
+ /*!*******************************************************!*\
63
+ !*** ./dist/browser/Options/Classes/GradientAngle.js ***!
64
+ \*******************************************************/
65
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
66
+
67
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GradientAngle: () => (/* binding */ GradientAngle)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _GradientAngleAnimation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GradientAngleAnimation.js */ \"./dist/browser/Options/Classes/GradientAngleAnimation.js\");\n\n\nclass GradientAngle {\n constructor() {\n this.value = 0;\n this.animation = new _GradientAngleAnimation_js__WEBPACK_IMPORTED_MODULE_1__.GradientAngleAnimation();\n this.direction = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.value);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Options/Classes/GradientAngle.js?");
68
+
69
+ /***/ }),
70
+
71
+ /***/ "./dist/browser/Options/Classes/GradientAngleAnimation.js":
72
+ /*!****************************************************************!*\
73
+ !*** ./dist/browser/Options/Classes/GradientAngleAnimation.js ***!
74
+ \****************************************************************/
75
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
76
+
77
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GradientAngleAnimation: () => (/* binding */ GradientAngleAnimation)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nclass GradientAngleAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.delay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.decay);\n }\n if (data.delay !== undefined) {\n this.delay = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.delay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Options/Classes/GradientAngleAnimation.js?");
78
+
79
+ /***/ }),
80
+
81
+ /***/ "./dist/browser/Options/Classes/GradientColorOpacity.js":
82
+ /*!**************************************************************!*\
83
+ !*** ./dist/browser/Options/Classes/GradientColorOpacity.js ***!
84
+ \**************************************************************/
85
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
86
+
87
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GradientColorOpacity: () => (/* binding */ GradientColorOpacity)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _GradientColorOpacityAnimation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GradientColorOpacityAnimation.js */ \"./dist/browser/Options/Classes/GradientColorOpacityAnimation.js\");\n\n\nclass GradientColorOpacity {\n constructor() {\n this.value = 0;\n this.animation = new _GradientColorOpacityAnimation_js__WEBPACK_IMPORTED_MODULE_1__.GradientColorOpacityAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.value);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Options/Classes/GradientColorOpacity.js?");
88
+
89
+ /***/ }),
90
+
91
+ /***/ "./dist/browser/Options/Classes/GradientColorOpacityAnimation.js":
92
+ /*!***********************************************************************!*\
93
+ !*** ./dist/browser/Options/Classes/GradientColorOpacityAnimation.js ***!
94
+ \***********************************************************************/
95
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
96
+
97
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GradientColorOpacityAnimation: () => (/* binding */ GradientColorOpacityAnimation)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nclass GradientColorOpacityAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.delay = 0;\n this.sync = false;\n this.startValue = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.StartValueType.random;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.decay !== undefined) {\n this.decay = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.decay);\n }\n if (data.delay !== undefined) {\n this.delay = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.delay);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Options/Classes/GradientColorOpacityAnimation.js?");
98
+
99
+ /***/ }),
100
+
101
+ /***/ "./dist/browser/Utils.js":
102
+ /*!*******************************!*\
103
+ !*** ./dist/browser/Utils.js ***!
104
+ \*******************************/
105
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
106
+
107
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ updateGradient: () => (/* binding */ updateGradient)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction updateGradient(particle, delta) {\n const {\n gradient\n } = particle;\n if (!gradient) {\n return;\n }\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.updateAnimation)(particle, gradient.angle, false, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.DestroyType.none, delta);\n for (const color of gradient.colors) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.updateColor)(color.value, delta);\n if (color.opacity) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.updateAnimation)(particle, color.opacity, true, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.DestroyType.none, delta);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Utils.js?");
108
+
109
+ /***/ }),
110
+
31
111
  /***/ "./dist/browser/index.js":
32
112
  /*!*******************************!*\
33
113
  !*** ./dist/browser/index.js ***!
34
114
  \*******************************/
35
115
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
36
116
 
37
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadGradientUpdater: () => (/* binding */ loadGradientUpdater)\n/* harmony export */ });\nasync function loadGradientUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"gradient\", async () => {\n const {\n GradientUpdater\n } = await __webpack_require__.e(/*! import() */ \"dist_browser_GradientUpdater_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./GradientUpdater.js */ \"./dist/browser/GradientUpdater.js\"));\n return new GradientUpdater();\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/index.js?");
117
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadGradientUpdater: () => (/* binding */ loadGradientUpdater)\n/* harmony export */ });\n/* harmony import */ var _GradientUpdater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GradientUpdater.js */ \"./dist/browser/GradientUpdater.js\");\n\nasync function loadGradientUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"gradient\", () => {\n return Promise.resolve(new _GradientUpdater_js__WEBPACK_IMPORTED_MODULE_0__.GradientUpdater());\n }, refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/index.js?");
38
118
 
39
119
  /***/ }),
40
120
 
@@ -74,9 +154,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
74
154
  /******/ return module.exports;
75
155
  /******/ }
76
156
  /******/
77
- /******/ // expose the modules object (__webpack_modules__)
78
- /******/ __webpack_require__.m = __webpack_modules__;
79
- /******/
80
157
  /************************************************************************/
81
158
  /******/ /* webpack/runtime/compat get default export */
82
159
  /******/ (() => {
@@ -102,91 +179,11 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
102
179
  /******/ };
103
180
  /******/ })();
104
181
  /******/
105
- /******/ /* webpack/runtime/ensure chunk */
106
- /******/ (() => {
107
- /******/ __webpack_require__.f = {};
108
- /******/ // This file contains only the entry chunk.
109
- /******/ // The chunk loading function for additional chunks
110
- /******/ __webpack_require__.e = (chunkId) => {
111
- /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
112
- /******/ __webpack_require__.f[key](chunkId, promises);
113
- /******/ return promises;
114
- /******/ }, []));
115
- /******/ };
116
- /******/ })();
117
- /******/
118
- /******/ /* webpack/runtime/get javascript chunk filename */
119
- /******/ (() => {
120
- /******/ // This function allow to reference async chunks
121
- /******/ __webpack_require__.u = (chunkId) => {
122
- /******/ // return url for filenames based on template
123
- /******/ return "" + chunkId + ".js";
124
- /******/ };
125
- /******/ })();
126
- /******/
127
- /******/ /* webpack/runtime/global */
128
- /******/ (() => {
129
- /******/ __webpack_require__.g = (function() {
130
- /******/ if (typeof globalThis === 'object') return globalThis;
131
- /******/ try {
132
- /******/ return this || new Function('return this')();
133
- /******/ } catch (e) {
134
- /******/ if (typeof window === 'object') return window;
135
- /******/ }
136
- /******/ })();
137
- /******/ })();
138
- /******/
139
182
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
140
183
  /******/ (() => {
141
184
  /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
142
185
  /******/ })();
143
186
  /******/
144
- /******/ /* webpack/runtime/load script */
145
- /******/ (() => {
146
- /******/ var inProgress = {};
147
- /******/ var dataWebpackPrefix = "@tsparticles/updater-gradient:";
148
- /******/ // loadScript function to load a script via script tag
149
- /******/ __webpack_require__.l = (url, done, key, chunkId) => {
150
- /******/ if(inProgress[url]) { inProgress[url].push(done); return; }
151
- /******/ var script, needAttach;
152
- /******/ if(key !== undefined) {
153
- /******/ var scripts = document.getElementsByTagName("script");
154
- /******/ for(var i = 0; i < scripts.length; i++) {
155
- /******/ var s = scripts[i];
156
- /******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; }
157
- /******/ }
158
- /******/ }
159
- /******/ if(!script) {
160
- /******/ needAttach = true;
161
- /******/ script = document.createElement('script');
162
- /******/
163
- /******/ script.charset = 'utf-8';
164
- /******/ script.timeout = 120;
165
- /******/ if (__webpack_require__.nc) {
166
- /******/ script.setAttribute("nonce", __webpack_require__.nc);
167
- /******/ }
168
- /******/ script.setAttribute("data-webpack", dataWebpackPrefix + key);
169
- /******/
170
- /******/ script.src = url;
171
- /******/ }
172
- /******/ inProgress[url] = [done];
173
- /******/ var onScriptComplete = (prev, event) => {
174
- /******/ // avoid mem leaks in IE.
175
- /******/ script.onerror = script.onload = null;
176
- /******/ clearTimeout(timeout);
177
- /******/ var doneFns = inProgress[url];
178
- /******/ delete inProgress[url];
179
- /******/ script.parentNode && script.parentNode.removeChild(script);
180
- /******/ doneFns && doneFns.forEach((fn) => (fn(event)));
181
- /******/ if(prev) return prev(event);
182
- /******/ }
183
- /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
184
- /******/ script.onerror = onScriptComplete.bind(null, script.onerror);
185
- /******/ script.onload = onScriptComplete.bind(null, script.onload);
186
- /******/ needAttach && document.head.appendChild(script);
187
- /******/ };
188
- /******/ })();
189
- /******/
190
187
  /******/ /* webpack/runtime/make namespace object */
191
188
  /******/ (() => {
192
189
  /******/ // define __esModule on exports
@@ -198,121 +195,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
198
195
  /******/ };
199
196
  /******/ })();
200
197
  /******/
201
- /******/ /* webpack/runtime/publicPath */
202
- /******/ (() => {
203
- /******/ var scriptUrl;
204
- /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
205
- /******/ var document = __webpack_require__.g.document;
206
- /******/ if (!scriptUrl && document) {
207
- /******/ if (document.currentScript)
208
- /******/ scriptUrl = document.currentScript.src;
209
- /******/ if (!scriptUrl) {
210
- /******/ var scripts = document.getElementsByTagName("script");
211
- /******/ if(scripts.length) {
212
- /******/ var i = scripts.length - 1;
213
- /******/ while (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;
214
- /******/ }
215
- /******/ }
216
- /******/ }
217
- /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
218
- /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
219
- /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
220
- /******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
221
- /******/ __webpack_require__.p = scriptUrl;
222
- /******/ })();
223
- /******/
224
- /******/ /* webpack/runtime/jsonp chunk loading */
225
- /******/ (() => {
226
- /******/ // no baseURI
227
- /******/
228
- /******/ // object to store loaded and loading chunks
229
- /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
230
- /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
231
- /******/ var installedChunks = {
232
- /******/ "tsparticles.updater.gradient": 0
233
- /******/ };
234
- /******/
235
- /******/ __webpack_require__.f.j = (chunkId, promises) => {
236
- /******/ // JSONP chunk loading for javascript
237
- /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
238
- /******/ if(installedChunkData !== 0) { // 0 means "already installed".
239
- /******/
240
- /******/ // a Promise means "currently loading".
241
- /******/ if(installedChunkData) {
242
- /******/ promises.push(installedChunkData[2]);
243
- /******/ } else {
244
- /******/ if(true) { // all chunks have JS
245
- /******/ // setup Promise in chunk cache
246
- /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));
247
- /******/ promises.push(installedChunkData[2] = promise);
248
- /******/
249
- /******/ // start chunk loading
250
- /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId);
251
- /******/ // create error before stack unwound to get useful stacktrace later
252
- /******/ var error = new Error();
253
- /******/ var loadingEnded = (event) => {
254
- /******/ if(__webpack_require__.o(installedChunks, chunkId)) {
255
- /******/ installedChunkData = installedChunks[chunkId];
256
- /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined;
257
- /******/ if(installedChunkData) {
258
- /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
259
- /******/ var realSrc = event && event.target && event.target.src;
260
- /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
261
- /******/ error.name = 'ChunkLoadError';
262
- /******/ error.type = errorType;
263
- /******/ error.request = realSrc;
264
- /******/ installedChunkData[1](error);
265
- /******/ }
266
- /******/ }
267
- /******/ };
268
- /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
269
- /******/ }
270
- /******/ }
271
- /******/ }
272
- /******/ };
273
- /******/
274
- /******/ // no prefetching
275
- /******/
276
- /******/ // no preloaded
277
- /******/
278
- /******/ // no HMR
279
- /******/
280
- /******/ // no HMR manifest
281
- /******/
282
- /******/ // no on chunks loaded
283
- /******/
284
- /******/ // install a JSONP callback for chunk loading
285
- /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
286
- /******/ var chunkIds = data[0];
287
- /******/ var moreModules = data[1];
288
- /******/ var runtime = data[2];
289
- /******/ // add "moreModules" to the modules object,
290
- /******/ // then flag all "chunkIds" as loaded and fire callback
291
- /******/ var moduleId, chunkId, i = 0;
292
- /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
293
- /******/ for(moduleId in moreModules) {
294
- /******/ if(__webpack_require__.o(moreModules, moduleId)) {
295
- /******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
296
- /******/ }
297
- /******/ }
298
- /******/ if(runtime) var result = runtime(__webpack_require__);
299
- /******/ }
300
- /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
301
- /******/ for(;i < chunkIds.length; i++) {
302
- /******/ chunkId = chunkIds[i];
303
- /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
304
- /******/ installedChunks[chunkId][0]();
305
- /******/ }
306
- /******/ installedChunks[chunkId] = 0;
307
- /******/ }
308
- /******/
309
- /******/ }
310
- /******/
311
- /******/ var chunkLoadingGlobal = this["webpackChunk_tsparticles_updater_gradient"] = this["webpackChunk_tsparticles_updater_gradient"] || [];
312
- /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
313
- /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
314
- /******/ })();
315
- /******/
316
198
  /************************************************************************/
317
199
  /******/
318
200
  /******/ // startup
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see tsparticles.updater.gradient.min.js.LICENSE.txt */
2
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(e=>(()=>{var t,r,n={533:t=>{t.exports=e}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return n[e](r,r.exports,i),r.exports}i.m=n,i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>e+".min.js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="@tsparticles/updater-gradient:",i.l=(e,n,o,a)=>{if(t[e])t[e].push(n);else{var s,d;if(void 0!==o)for(var u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var p=u[c];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==r+o){s=p;break}}s||(d=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",r+o),s.src=e),t[e]=[n];var l=(r,n)=>{s.onerror=s.onload=null,clearTimeout(f);var o=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),r)return r(n)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),d&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{var e={127:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,o)=>n=e[t]=[r,o]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,a=r[0],s=r[1],d=r[2],u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(d)d(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=this.webpackChunk_tsparticles_updater_gradient=this.webpackChunk_tsparticles_updater_gradient||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var a={};return(()=>{async function e(e,t=!0){await e.addParticleUpdater("gradient",(async()=>{const{GradientUpdater:e}=await i.e(914).then(i.bind(i,914));return new e}),t)}i.r(a),i.d(a,{loadGradientUpdater:()=>e})})(),a})()));
2
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var a="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var i in a)("object"==typeof exports?exports:e)[i]=a[i]}}(this,(e=>(()=>{var t={303:t=>{t.exports=e}},a={};function i(e){var n=a[e];if(void 0!==n)return n.exports;var o=a[e]={exports:{}};return t[e](o,o.exports,i),o.exports}i.d=(e,t)=>{for(var a in t)i.o(t,a)&&!i.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{i.r(n),i.d(n,{loadGradientUpdater:()=>u});var e=i(303);class t{constructor(){this.count=0,this.enable=!1,this.speed=0,this.decay=0,this.delay=0,this.sync=!1,this.startValue=e.StartValueType.random}load(t){t&&(void 0!==t.count&&(this.count=(0,e.setRangeValue)(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=(0,e.setRangeValue)(t.speed)),void 0!==t.sync&&(this.sync=t.sync),void 0!==t.startValue&&(this.startValue=t.startValue),void 0!==t.decay&&(this.decay=(0,e.setRangeValue)(t.decay)),void 0!==t.delay&&(this.delay=(0,e.setRangeValue)(t.delay)))}}class a{constructor(){this.value=0,this.animation=new t}load(t){t&&(this.animation.load(t.animation),void 0!==t.value&&(this.value=(0,e.setRangeValue)(t.value)))}}class o{constructor(){this.stop=0,this.value=new e.AnimatableColor}load(t){t&&(void 0!==t.stop&&(this.stop=t.stop),this.value=e.AnimatableColor.create(this.value,t.value),void 0!==t.opacity&&(this.opacity=new a,(0,e.isNumber)(t.opacity)?this.opacity.value=t.opacity:this.opacity.load(t.opacity)))}}class s{constructor(){this.count=0,this.enable=!1,this.speed=0,this.decay=0,this.delay=0,this.sync=!1}load(t){t&&(void 0!==t.count&&(this.count=(0,e.setRangeValue)(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=(0,e.setRangeValue)(t.speed)),void 0!==t.decay&&(this.decay=(0,e.setRangeValue)(t.decay)),void 0!==t.delay&&(this.delay=(0,e.setRangeValue)(t.delay)),void 0!==t.sync&&(this.sync=t.sync))}}class l{constructor(){this.value=0,this.animation=new s,this.direction=e.RotateDirection.clockwise}load(t){t&&(this.animation.load(t.animation),void 0!==t.value&&(this.value=(0,e.setRangeValue)(t.value)),void 0!==t.direction&&(this.direction=t.direction))}}class r{constructor(){this.angle=new l,this.colors=[],this.type=e.GradientType.random}load(e){e&&(this.angle.load(e.angle),void 0!==e.colors&&(this.colors=e.colors.map((e=>{const t=new o;return t.load(e),t}))),void 0!==e.type&&(this.type=e.type))}}const c=2*Math.PI;class d{getColorStyles(t,a,i,n){const o=t.gradient;if(!o)return{};const s=o.angle.value,l=0,r=0,c=o.type===e.GradientType.radial?a.createRadialGradient(l,r,0,l,r,i):a.createLinearGradient(Math.cos(s)*-i,Math.sin(s)*-i,Math.cos(s)*i,Math.sin(s)*i);for(const{stop:t,value:a,opacity:i}of o.colors)c.addColorStop(t,(0,e.getStyleFromHsl)({h:a.h.value,s:a.s.value,l:a.l.value},i?.value??n));return{fill:c}}init(t){const a=(0,e.itemFromSingleOrMultiple)(t.options.gradient);if(!a)return;const{angle:i}=a;t.gradient={angle:{value:(0,e.getRangeValue)(i.value),enable:i.animation.enable,velocity:(0,e.getRangeValue)(i.animation.speed)/360*t.container.retina.reduceFactor,decay:1-(0,e.getRangeValue)(i.animation.decay),delayTime:(0,e.getRangeValue)(i.animation.delay)*e.millisecondsToSeconds,max:c,min:0,time:0},type:a.type,colors:[]};let n=a.angle.direction;switch(n===e.RotateDirection.random&&(n=(0,e.getRandom)()>e.halfRandom?e.RotateDirection.counterClockwise:e.RotateDirection.clockwise),n){case e.RotateDirection.counterClockwise:case"counterClockwise":t.gradient.angle.status=e.AnimationStatus.decreasing;break;case e.RotateDirection.clockwise:t.gradient.angle.status=e.AnimationStatus.increasing}const o=t.options.reduceDuplicates;for(const i of a.colors){const a=(0,e.rangeColorToHsl)(i.value,t.id,o);if(!a)continue;const n=(0,e.getHslAnimationFromHsl)(a,i.value.animation,t.container.retina.reduceFactor),s={stop:i.stop,value:n,opacity:i.opacity?{enable:i.opacity.animation.enable,max:(0,e.getRangeMax)(i.opacity.value),min:(0,e.getRangeMin)(i.opacity.value),status:e.AnimationStatus.increasing,value:(0,e.getRangeValue)(i.opacity.value),velocity:(0,e.getRangeValue)(i.opacity.animation.speed)/e.percentDenominator*t.container.retina.reduceFactor,decay:1-(0,e.getRangeValue)(i.opacity.animation.decay),delayTime:(0,e.getRangeValue)(i.opacity.animation.delay)*e.millisecondsToSeconds,time:0}:void 0},{opacity:l}=s;if(i.opacity&&l){const t=i.opacity.value;l.min=(0,e.getRangeMin)(t),l.max=(0,e.getRangeMax)(t);switch(i.opacity.animation.startValue){case e.StartValueType.min:l.value=l.min,l.status=e.AnimationStatus.increasing;break;case e.StartValueType.max:l.value=l.max,l.status=e.AnimationStatus.decreasing;break;case e.StartValueType.random:default:l.value=(0,e.randomInRange)(l),l.status=(0,e.getRandom)()>=e.halfRandom?e.AnimationStatus.increasing:e.AnimationStatus.decreasing}}t.gradient.colors.push(s)}}isEnabled(e){return!e.destroyed&&!e.spawning&&(!!e.gradient?.angle.enable||(e.gradient?.colors.some((e=>e.value.h.enable||e.value.s.enable||e.value.l.enable))??!1))}loadOptions(t,...a){for(const i of a){if(!i?.gradient)continue;const a=i.gradient;a&&(t.gradient=(0,e.executeOnSingleOrMultiple)(a,(e=>{const t=new r;return t.load(e),t})))}}update(t,a){!function(t,a){const{gradient:i}=t;if(i){(0,e.updateAnimation)(t,i.angle,!1,e.DestroyType.none,a);for(const n of i.colors)(0,e.updateColor)(n.value,a),n.opacity&&(0,e.updateAnimation)(t,n.opacity,!0,e.DestroyType.none,a)}}(t,a)}}async function u(e,t=!0){await e.addParticleUpdater("gradient",(()=>Promise.resolve(new d)),t)}})(),n})()));
@@ -1 +1 @@
1
- /*! tsParticles Gradient Updater v3.2.2 by Matteo Bruni */
1
+ /*! tsParticles Gradient Updater v3.4.0 by Matteo Bruni */
@@ -2,8 +2,8 @@ import { type IDelta, type IParticleColorStyle, type IParticleUpdater, type Recu
2
2
  import type { GradientParticle, GradientParticlesOptions, IGradientParticlesOptions } from "./Types.js";
3
3
  export declare class GradientUpdater implements IParticleUpdater {
4
4
  getColorStyles(particle: GradientParticle, context: CanvasRenderingContext2D, radius: number, opacity: number): IParticleColorStyle;
5
- init(particle: GradientParticle): Promise<void>;
5
+ init(particle: GradientParticle): void;
6
6
  isEnabled(particle: GradientParticle): boolean;
7
7
  loadOptions(options: GradientParticlesOptions, ...sources: (RecursivePartial<IGradientParticlesOptions> | undefined)[]): void;
8
- update(particle: GradientParticle, delta: IDelta): Promise<void>;
8
+ update(particle: GradientParticle, delta: IDelta): void;
9
9
  }
@@ -1,41 +1,18 @@
1
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
- if (k2 === undefined) k2 = k;
3
- var desc = Object.getOwnPropertyDescriptor(m, k);
4
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
- desc = { enumerable: true, get: function() { return m[k]; } };
6
- }
7
- Object.defineProperty(o, k2, desc);
8
- }) : (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- o[k2] = m[k];
11
- }));
12
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
- Object.defineProperty(o, "default", { enumerable: true, value: v });
14
- }) : function(o, v) {
15
- o["default"] = v;
16
- });
17
- var __importStar = (this && this.__importStar) || function (mod) {
18
- if (mod && mod.__esModule) return mod;
19
- var result = {};
20
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
- __setModuleDefault(result, mod);
22
- return result;
23
- };
24
1
  (function (factory) {
25
2
  if (typeof module === "object" && typeof module.exports === "object") {
26
3
  var v = factory(require, exports);
27
4
  if (v !== undefined) module.exports = v;
28
5
  }
29
6
  else if (typeof define === "function" && define.amd) {
30
- define(["require", "exports", "@tsparticles/engine", "./Options/Classes/AnimatableGradient.js"], factory);
7
+ define(["require", "exports", "@tsparticles/engine", "./Options/Classes/AnimatableGradient.js", "./Utils.js"], factory);
31
8
  }
32
9
  })(function (require, exports) {
33
10
  "use strict";
34
- var __syncRequire = typeof module === "object" && typeof module.exports === "object";
35
11
  Object.defineProperty(exports, "__esModule", { value: true });
36
12
  exports.GradientUpdater = void 0;
37
13
  const engine_1 = require("@tsparticles/engine");
38
14
  const AnimatableGradient_js_1 = require("./Options/Classes/AnimatableGradient.js");
15
+ const Utils_js_1 = require("./Utils.js");
39
16
  const double = 2, doublePI = Math.PI * double;
40
17
  class GradientUpdater {
41
18
  getColorStyles(particle, context, radius, opacity) {
@@ -43,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
43
20
  if (!gradient) {
44
21
  return {};
45
22
  }
46
- const gradientAngle = gradient.angle.value, origin = { x: 0, y: 0 }, minRadius = 0, fillGradient = gradient.type === "radial"
23
+ const gradientAngle = gradient.angle.value, origin = { x: 0, y: 0 }, minRadius = 0, fillGradient = gradient.type === engine_1.GradientType.radial
47
24
  ? context.createRadialGradient(origin.x, origin.y, minRadius, origin.x, origin.y, radius)
48
25
  : context.createLinearGradient(Math.cos(gradientAngle) * -radius, Math.sin(gradientAngle) * -radius, Math.cos(gradientAngle) * radius, Math.sin(gradientAngle) * radius);
49
26
  for (const { stop, value, opacity: cOpacity } of gradient.colors) {
@@ -55,7 +32,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
55
32
  }
56
33
  return { fill: fillGradient };
57
34
  }
58
- async init(particle) {
35
+ init(particle) {
59
36
  const gradient = (0, engine_1.itemFromSingleOrMultiple)(particle.options.gradient);
60
37
  if (!gradient) {
61
38
  return;
@@ -76,16 +53,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
76
53
  colors: [],
77
54
  };
78
55
  let rotateDirection = gradient.angle.direction;
79
- if (rotateDirection === "random") {
80
- rotateDirection = (0, engine_1.getRandom)() > engine_1.halfRandom ? "counter-clockwise" : "clockwise";
56
+ if (rotateDirection === engine_1.RotateDirection.random) {
57
+ rotateDirection = (0, engine_1.getRandom)() > engine_1.halfRandom ? engine_1.RotateDirection.counterClockwise : engine_1.RotateDirection.clockwise;
81
58
  }
82
59
  switch (rotateDirection) {
83
- case "counter-clockwise":
60
+ case engine_1.RotateDirection.counterClockwise:
84
61
  case "counterClockwise":
85
- particle.gradient.angle.status = "decreasing";
62
+ particle.gradient.angle.status = engine_1.AnimationStatus.decreasing;
86
63
  break;
87
- case "clockwise":
88
- particle.gradient.angle.status = "increasing";
64
+ case engine_1.RotateDirection.clockwise:
65
+ particle.gradient.angle.status = engine_1.AnimationStatus.increasing;
89
66
  break;
90
67
  }
91
68
  const reduceDuplicates = particle.options.reduceDuplicates;
@@ -102,7 +79,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
102
79
  enable: grColor.opacity.animation.enable,
103
80
  max: (0, engine_1.getRangeMax)(grColor.opacity.value),
104
81
  min: (0, engine_1.getRangeMin)(grColor.opacity.value),
105
- status: "increasing",
82
+ status: engine_1.AnimationStatus.increasing,
106
83
  value: (0, engine_1.getRangeValue)(grColor.opacity.value),
107
84
  velocity: ((0, engine_1.getRangeValue)(grColor.opacity.animation.speed) / engine_1.percentDenominator) *
108
85
  particle.container.retina.reduceFactor,
@@ -119,31 +96,30 @@ var __importStar = (this && this.__importStar) || function (mod) {
119
96
  addOpacity.max = (0, engine_1.getRangeMax)(opacityRange);
120
97
  const opacityAnimation = grColor.opacity.animation;
121
98
  switch (opacityAnimation.startValue) {
122
- case "min":
99
+ case engine_1.StartValueType.min:
123
100
  addOpacity.value = addOpacity.min;
124
- addOpacity.status = "increasing";
101
+ addOpacity.status = engine_1.AnimationStatus.increasing;
125
102
  break;
126
- case "max":
103
+ case engine_1.StartValueType.max:
127
104
  addOpacity.value = addOpacity.max;
128
- addOpacity.status = "decreasing";
105
+ addOpacity.status = engine_1.AnimationStatus.decreasing;
129
106
  break;
130
- case "random":
107
+ case engine_1.StartValueType.random:
131
108
  default:
132
109
  addOpacity.value = (0, engine_1.randomInRange)(addOpacity);
133
110
  addOpacity.status =
134
- (0, engine_1.getRandom)() >= engine_1.halfRandom ? "increasing" : "decreasing";
111
+ (0, engine_1.getRandom)() >= engine_1.halfRandom ? engine_1.AnimationStatus.increasing : engine_1.AnimationStatus.decreasing;
135
112
  break;
136
113
  }
137
114
  }
138
115
  particle.gradient.colors.push(addColor);
139
116
  }
140
- await Promise.resolve();
141
117
  }
142
118
  isEnabled(particle) {
143
119
  return (!particle.destroyed &&
144
120
  !particle.spawning &&
145
121
  (!!particle.gradient?.angle.enable ||
146
- (particle.gradient?.colors.some((c) => c.value.h.enable || c.value.s.enable || c.value.l.enable) ??
122
+ (particle.gradient?.colors.some(c => c.value.h.enable || c.value.s.enable || c.value.l.enable) ??
147
123
  false)));
148
124
  }
149
125
  loadOptions(options, ...sources) {
@@ -155,16 +131,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
155
131
  if (!gradientToLoad) {
156
132
  continue;
157
133
  }
158
- options.gradient = (0, engine_1.executeOnSingleOrMultiple)(gradientToLoad, (gradient) => {
134
+ options.gradient = (0, engine_1.executeOnSingleOrMultiple)(gradientToLoad, gradient => {
159
135
  const tmp = new AnimatableGradient_js_1.AnimatableGradient();
160
136
  tmp.load(gradient);
161
137
  return tmp;
162
138
  });
163
139
  }
164
140
  }
165
- async update(particle, delta) {
166
- const { updateGradient } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./Utils.js"))) : new Promise((resolve_1, reject_1) => { require(["./Utils.js"], resolve_1, reject_1); }).then(__importStar));
167
- updateGradient(particle, delta);
141
+ update(particle, delta) {
142
+ (0, Utils_js_1.updateGradient)(particle, delta);
168
143
  }
169
144
  }
170
145
  exports.GradientUpdater = GradientUpdater;
@@ -4,19 +4,20 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./AnimatableGradientColor.js", "./GradientAngle.js"], factory);
7
+ define(["require", "exports", "@tsparticles/engine", "./AnimatableGradientColor.js", "./GradientAngle.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AnimatableGradient = void 0;
13
+ const engine_1 = require("@tsparticles/engine");
13
14
  const AnimatableGradientColor_js_1 = require("./AnimatableGradientColor.js");
14
15
  const GradientAngle_js_1 = require("./GradientAngle.js");
15
16
  class AnimatableGradient {
16
17
  constructor() {
17
18
  this.angle = new GradientAngle_js_1.GradientAngle();
18
19
  this.colors = [];
19
- this.type = "random";
20
+ this.type = engine_1.GradientType.random;
20
21
  }
21
22
  load(data) {
22
23
  if (!data) {
@@ -24,7 +25,7 @@
24
25
  }
25
26
  this.angle.load(data.angle);
26
27
  if (data.colors !== undefined) {
27
- this.colors = data.colors.map((s) => {
28
+ this.colors = data.colors.map(s => {
28
29
  const tmp = new AnimatableGradientColor_js_1.AnimatableGradientColor();
29
30
  tmp.load(s);
30
31
  return tmp;