@tsparticles/updater-gradient 3.0.3 → 3.2.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.
- package/103.min.js +2 -0
- package/103.min.js.LICENSE.txt +1 -0
- package/914.min.js +2 -0
- package/914.min.js.LICENSE.txt +1 -0
- package/browser/GradientUpdater.js +20 -16
- package/browser/Utils.js +4 -97
- package/browser/index.js +4 -2
- package/cjs/GradientUpdater.js +43 -16
- package/cjs/Utils.js +4 -97
- package/cjs/index.js +27 -2
- package/dist_browser_GradientUpdater_js.js +90 -0
- package/dist_browser_Utils_js.js +30 -0
- package/esm/GradientUpdater.js +20 -16
- package/esm/Utils.js +4 -97
- package/esm/index.js +4 -2
- package/package.json +2 -2
- package/report.html +3 -3
- package/tsparticles.updater.gradient.js +241 -432
- package/tsparticles.updater.gradient.min.js +1 -1
- package/tsparticles.updater.gradient.min.js.LICENSE.txt +1 -1
- package/types/GradientUpdater.d.ts +2 -2
- package/types/Types.d.ts +2 -2
- package/umd/GradientUpdater.js +45 -17
- package/umd/Utils.js +5 -98
- package/umd/index.js +29 -3
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Author : Matteo Bruni
|
|
3
|
+
* MIT license: https://opensource.org/licenses/MIT
|
|
4
|
+
* Demo / Generator : https://particles.js.org/
|
|
5
|
+
* GitHub : https://www.github.com/matteobruni/tsparticles
|
|
6
|
+
* How to use? : Check the GitHub README
|
|
7
|
+
* v3.2.0
|
|
8
|
+
*/
|
|
9
|
+
"use strict";
|
|
10
|
+
/*
|
|
11
|
+
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
|
12
|
+
* This devtool is neither made for production nor for readable output files.
|
|
13
|
+
* It uses "eval()" calls to create a separate source file in the browser devtools.
|
|
14
|
+
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
15
|
+
* or disable the default devtool with "devtool: false".
|
|
16
|
+
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
17
|
+
*/
|
|
18
|
+
(this["webpackChunk_tsparticles_updater_gradient"] = this["webpackChunk_tsparticles_updater_gradient"] || []).push([["dist_browser_Utils_js"],{
|
|
19
|
+
|
|
20
|
+
/***/ "./dist/browser/Utils.js":
|
|
21
|
+
/*!*******************************!*\
|
|
22
|
+
!*** ./dist/browser/Utils.js ***!
|
|
23
|
+
\*******************************/
|
|
24
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
25
|
+
|
|
26
|
+
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, \"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, \"none\", delta);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/updater-gradient/./dist/browser/Utils.js?");
|
|
27
|
+
|
|
28
|
+
/***/ })
|
|
29
|
+
|
|
30
|
+
}]);
|
package/esm/GradientUpdater.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { executeOnSingleOrMultiple, getHslAnimationFromHsl, getRandom, getRangeMax, getRangeMin, getRangeValue, getStyleFromHsl, itemFromSingleOrMultiple, randomInRange, rangeColorToHsl, } from "@tsparticles/engine";
|
|
1
|
+
import { executeOnSingleOrMultiple, getHslAnimationFromHsl, getRandom, getRangeMax, getRangeMin, getRangeValue, getStyleFromHsl, halfRandom, itemFromSingleOrMultiple, millisecondsToSeconds, percentDenominator, randomInRange, rangeColorToHsl, } from "@tsparticles/engine";
|
|
2
2
|
import { AnimatableGradient } from "./Options/Classes/AnimatableGradient.js";
|
|
3
|
-
|
|
3
|
+
const double = 2, doublePI = Math.PI * double;
|
|
4
4
|
export class GradientUpdater {
|
|
5
5
|
getColorStyles(particle, context, radius, opacity) {
|
|
6
6
|
const gradient = particle.gradient;
|
|
7
7
|
if (!gradient) {
|
|
8
8
|
return {};
|
|
9
9
|
}
|
|
10
|
-
const gradientAngle = gradient.angle.value, fillGradient = gradient.type === "radial"
|
|
11
|
-
? context.createRadialGradient(
|
|
10
|
+
const gradientAngle = gradient.angle.value, origin = { x: 0, y: 0 }, minRadius = 0, fillGradient = gradient.type === "radial"
|
|
11
|
+
? context.createRadialGradient(origin.x, origin.y, minRadius, origin.x, origin.y, radius)
|
|
12
12
|
: context.createLinearGradient(Math.cos(gradientAngle) * -radius, Math.sin(gradientAngle) * -radius, Math.cos(gradientAngle) * radius, Math.sin(gradientAngle) * radius);
|
|
13
13
|
for (const { stop, value, opacity: cOpacity } of gradient.colors) {
|
|
14
14
|
fillGradient.addColorStop(stop, getStyleFromHsl({
|
|
@@ -19,19 +19,21 @@ export class GradientUpdater {
|
|
|
19
19
|
}
|
|
20
20
|
return { fill: fillGradient };
|
|
21
21
|
}
|
|
22
|
-
init(particle) {
|
|
22
|
+
async init(particle) {
|
|
23
23
|
const gradient = itemFromSingleOrMultiple(particle.options.gradient);
|
|
24
24
|
if (!gradient) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
const { angle } = gradient;
|
|
27
|
+
const { angle } = gradient, speedFactor = 360, delayOffset = 1;
|
|
28
28
|
particle.gradient = {
|
|
29
29
|
angle: {
|
|
30
30
|
value: getRangeValue(angle.value),
|
|
31
31
|
enable: angle.animation.enable,
|
|
32
|
-
velocity: (getRangeValue(angle.animation.speed) /
|
|
33
|
-
decay:
|
|
34
|
-
delayTime: getRangeValue(angle.animation.delay) *
|
|
32
|
+
velocity: (getRangeValue(angle.animation.speed) / speedFactor) * particle.container.retina.reduceFactor,
|
|
33
|
+
decay: delayOffset - getRangeValue(angle.animation.decay),
|
|
34
|
+
delayTime: getRangeValue(angle.animation.delay) * millisecondsToSeconds,
|
|
35
|
+
max: doublePI,
|
|
36
|
+
min: 0,
|
|
35
37
|
time: 0,
|
|
36
38
|
},
|
|
37
39
|
type: gradient.type,
|
|
@@ -39,7 +41,7 @@ export class GradientUpdater {
|
|
|
39
41
|
};
|
|
40
42
|
let rotateDirection = gradient.angle.direction;
|
|
41
43
|
if (rotateDirection === "random") {
|
|
42
|
-
rotateDirection = getRandom() >
|
|
44
|
+
rotateDirection = getRandom() > halfRandom ? "counter-clockwise" : "clockwise";
|
|
43
45
|
}
|
|
44
46
|
switch (rotateDirection) {
|
|
45
47
|
case "counter-clockwise":
|
|
@@ -66,10 +68,10 @@ export class GradientUpdater {
|
|
|
66
68
|
min: getRangeMin(grColor.opacity.value),
|
|
67
69
|
status: "increasing",
|
|
68
70
|
value: getRangeValue(grColor.opacity.value),
|
|
69
|
-
velocity: (getRangeValue(grColor.opacity.animation.speed) /
|
|
71
|
+
velocity: (getRangeValue(grColor.opacity.animation.speed) / percentDenominator) *
|
|
70
72
|
particle.container.retina.reduceFactor,
|
|
71
|
-
decay:
|
|
72
|
-
delayTime: getRangeValue(grColor.opacity.animation.delay) *
|
|
73
|
+
decay: delayOffset - getRangeValue(grColor.opacity.animation.decay),
|
|
74
|
+
delayTime: getRangeValue(grColor.opacity.animation.delay) * millisecondsToSeconds,
|
|
73
75
|
time: 0,
|
|
74
76
|
}
|
|
75
77
|
: undefined,
|
|
@@ -93,17 +95,18 @@ export class GradientUpdater {
|
|
|
93
95
|
default:
|
|
94
96
|
addOpacity.value = randomInRange(addOpacity);
|
|
95
97
|
addOpacity.status =
|
|
96
|
-
getRandom() >=
|
|
98
|
+
getRandom() >= halfRandom ? "increasing" : "decreasing";
|
|
97
99
|
break;
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
particle.gradient.colors.push(addColor);
|
|
101
103
|
}
|
|
104
|
+
await Promise.resolve();
|
|
102
105
|
}
|
|
103
106
|
isEnabled(particle) {
|
|
104
107
|
return (!particle.destroyed &&
|
|
105
108
|
!particle.spawning &&
|
|
106
|
-
(particle.gradient?.angle.enable ||
|
|
109
|
+
(!!particle.gradient?.angle.enable ||
|
|
107
110
|
(particle.gradient?.colors.some((c) => c.value.h.enable || c.value.s.enable || c.value.l.enable) ??
|
|
108
111
|
false)));
|
|
109
112
|
}
|
|
@@ -123,7 +126,8 @@ export class GradientUpdater {
|
|
|
123
126
|
});
|
|
124
127
|
}
|
|
125
128
|
}
|
|
126
|
-
update(particle, delta) {
|
|
129
|
+
async update(particle, delta) {
|
|
130
|
+
const { updateGradient } = await import("./Utils.js");
|
|
127
131
|
updateGradient(particle, delta);
|
|
128
132
|
}
|
|
129
133
|
}
|
package/esm/Utils.js
CHANGED
|
@@ -1,107 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
if (!value.enable) {
|
|
3
|
-
return;
|
|
4
|
-
}
|
|
5
|
-
const decay = value.decay ?? 1;
|
|
6
|
-
switch (value.status) {
|
|
7
|
-
case "increasing":
|
|
8
|
-
if (value.value >= value.max) {
|
|
9
|
-
value.status = "decreasing";
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
value.value += (value.velocity ?? 0) * delta.factor;
|
|
13
|
-
}
|
|
14
|
-
break;
|
|
15
|
-
case "decreasing":
|
|
16
|
-
if (value.value <= value.min) {
|
|
17
|
-
value.status = "increasing";
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
value.value -= (value.velocity ?? 0) * delta.factor;
|
|
21
|
-
}
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
if (value.velocity && decay !== 1) {
|
|
25
|
-
value.velocity *= decay;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function updateColorValue(delta, colorValue, max, decrease) {
|
|
29
|
-
if (!colorValue || !colorValue.enable) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (!colorValue.time) {
|
|
33
|
-
colorValue.time = 0;
|
|
34
|
-
}
|
|
35
|
-
if ((colorValue.delayTime ?? 0) > 0 && colorValue.time < (colorValue.delayTime ?? 0)) {
|
|
36
|
-
colorValue.time += delta.value;
|
|
37
|
-
}
|
|
38
|
-
if ((colorValue.delayTime ?? 0) > 0 && colorValue.time < (colorValue.delayTime ?? 0)) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
const velocity = (colorValue.velocity ?? 0) * delta.factor, decay = colorValue.decay ?? 1;
|
|
42
|
-
if (!decrease || colorValue.status === "increasing") {
|
|
43
|
-
colorValue.value += velocity;
|
|
44
|
-
if (decrease && colorValue.value > max) {
|
|
45
|
-
colorValue.status = "decreasing";
|
|
46
|
-
colorValue.value -= colorValue.value % max;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
colorValue.value -= velocity;
|
|
51
|
-
if (colorValue.value < 0) {
|
|
52
|
-
colorValue.status = "increasing";
|
|
53
|
-
colorValue.value += colorValue.value;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (colorValue.value > max) {
|
|
57
|
-
colorValue.value %= max;
|
|
58
|
-
}
|
|
59
|
-
if (colorValue.velocity && decay !== 1) {
|
|
60
|
-
colorValue.velocity *= decay;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
function updateAngle(delta, angle) {
|
|
64
|
-
const speed = (angle.velocity ?? 0) * delta.factor, max = 2 * Math.PI, decay = angle.decay ?? 1;
|
|
65
|
-
if (!angle.enable) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
switch (angle.status) {
|
|
69
|
-
case "increasing":
|
|
70
|
-
angle.value += speed;
|
|
71
|
-
if (angle.value > max) {
|
|
72
|
-
angle.value -= max;
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
75
|
-
case "decreasing":
|
|
76
|
-
default:
|
|
77
|
-
angle.value -= speed;
|
|
78
|
-
if (angle.value < 0) {
|
|
79
|
-
angle.value += max;
|
|
80
|
-
}
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
if (angle.velocity && decay !== 1) {
|
|
84
|
-
angle.velocity *= decay;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
1
|
+
import { updateAnimation, updateColor } from "@tsparticles/engine";
|
|
87
2
|
export function updateGradient(particle, delta) {
|
|
88
3
|
const { gradient } = particle;
|
|
89
4
|
if (!gradient) {
|
|
90
5
|
return;
|
|
91
6
|
}
|
|
92
|
-
|
|
7
|
+
updateAnimation(particle, gradient.angle, false, "none", delta);
|
|
93
8
|
for (const color of gradient.colors) {
|
|
94
|
-
|
|
95
|
-
updateColorValue(delta, color.value.h, 360, false);
|
|
96
|
-
}
|
|
97
|
-
if (particle.color?.s !== undefined) {
|
|
98
|
-
updateColorValue(delta, color.value.s, 100, true);
|
|
99
|
-
}
|
|
100
|
-
if (particle.color?.l !== undefined) {
|
|
101
|
-
updateColorValue(delta, color.value.l, 100, true);
|
|
102
|
-
}
|
|
9
|
+
updateColor(color.value, delta);
|
|
103
10
|
if (color.opacity) {
|
|
104
|
-
|
|
11
|
+
updateAnimation(particle, color.opacity, true, "none", delta);
|
|
105
12
|
}
|
|
106
13
|
}
|
|
107
14
|
}
|
package/esm/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { GradientUpdater } from "./GradientUpdater.js";
|
|
2
1
|
export async function loadGradientUpdater(engine, refresh = true) {
|
|
3
|
-
await engine.addParticleUpdater("gradient", () =>
|
|
2
|
+
await engine.addParticleUpdater("gradient", async () => {
|
|
3
|
+
const { GradientUpdater } = await import("./GradientUpdater.js");
|
|
4
|
+
return new GradientUpdater();
|
|
5
|
+
}, refresh);
|
|
4
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsparticles/updater-gradient",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "tsParticles particles gradient updater",
|
|
5
5
|
"homepage": "https://particles.js.org",
|
|
6
6
|
"repository": {
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"./package.json": "./package.json"
|
|
102
102
|
},
|
|
103
103
|
"dependencies": {
|
|
104
|
-
"@tsparticles/engine": "^3.0
|
|
104
|
+
"@tsparticles/engine": "^3.2.0"
|
|
105
105
|
},
|
|
106
106
|
"publishConfig": {
|
|
107
107
|
"access": "public"
|
package/report.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>@tsparticles/updater-gradient [
|
|
6
|
+
<title>@tsparticles/updater-gradient [31 Jan 2024 at 02:10]</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>
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
<body>
|
|
32
32
|
<div id="app"></div>
|
|
33
33
|
<script>
|
|
34
|
-
window.chartData = [
|
|
35
|
-
window.entrypoints = ["tsparticles.updater.gradient
|
|
34
|
+
window.chartData = [];
|
|
35
|
+
window.entrypoints = ["tsparticles.updater.gradient.min"];
|
|
36
36
|
window.defaultSizes = "parsed";
|
|
37
37
|
</script>
|
|
38
38
|
</body>
|