132 lines
5.5 KiB
JavaScript
132 lines
5.5 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.OpacityUpdater = void 0;
|
|
const tsparticles_engine_1 = require("tsparticles-engine");
|
|
function checkDestroy(particle, value, minValue, maxValue) {
|
|
switch (particle.options.opacity.animation.destroy) {
|
|
case "max":
|
|
if (value >= maxValue) {
|
|
particle.destroy();
|
|
}
|
|
break;
|
|
case "min":
|
|
if (value <= minValue) {
|
|
particle.destroy();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
function updateOpacity(particle, delta) {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
if (!particle.opacity) {
|
|
return;
|
|
}
|
|
const minValue = particle.opacity.min, maxValue = particle.opacity.max, decay = (_a = particle.opacity.decay) !== null && _a !== void 0 ? _a : 1;
|
|
if (particle.destroyed ||
|
|
!particle.opacity.enable ||
|
|
(((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.opacity.loops) !== null && _c !== void 0 ? _c : 0) > ((_d = particle.opacity.maxLoops) !== null && _d !== void 0 ? _d : 0))) {
|
|
return;
|
|
}
|
|
switch (particle.opacity.status) {
|
|
case "increasing":
|
|
if (particle.opacity.value >= maxValue) {
|
|
particle.opacity.status = "decreasing";
|
|
if (!particle.opacity.loops) {
|
|
particle.opacity.loops = 0;
|
|
}
|
|
particle.opacity.loops++;
|
|
}
|
|
else {
|
|
particle.opacity.value += ((_e = particle.opacity.velocity) !== null && _e !== void 0 ? _e : 0) * delta.factor;
|
|
}
|
|
break;
|
|
case "decreasing":
|
|
if (particle.opacity.value <= minValue) {
|
|
particle.opacity.status = "increasing";
|
|
if (!particle.opacity.loops) {
|
|
particle.opacity.loops = 0;
|
|
}
|
|
particle.opacity.loops++;
|
|
}
|
|
else {
|
|
particle.opacity.value -= ((_f = particle.opacity.velocity) !== null && _f !== void 0 ? _f : 0) * delta.factor;
|
|
}
|
|
break;
|
|
}
|
|
if (particle.opacity.velocity && particle.opacity.decay !== 1) {
|
|
particle.opacity.velocity *= decay;
|
|
}
|
|
checkDestroy(particle, particle.opacity.value, minValue, maxValue);
|
|
if (!particle.destroyed) {
|
|
particle.opacity.value = (0, tsparticles_engine_1.clamp)(particle.opacity.value, minValue, maxValue);
|
|
}
|
|
}
|
|
class OpacityUpdater {
|
|
constructor(container) {
|
|
this.container = container;
|
|
}
|
|
init(particle) {
|
|
const opacityOptions = particle.options.opacity;
|
|
particle.opacity = {
|
|
enable: opacityOptions.animation.enable,
|
|
max: (0, tsparticles_engine_1.getRangeMax)(opacityOptions.value),
|
|
min: (0, tsparticles_engine_1.getRangeMin)(opacityOptions.value),
|
|
value: (0, tsparticles_engine_1.getRangeValue)(opacityOptions.value),
|
|
loops: 0,
|
|
maxLoops: (0, tsparticles_engine_1.getRangeValue)(opacityOptions.animation.count),
|
|
};
|
|
const opacityAnimation = opacityOptions.animation;
|
|
if (opacityAnimation.enable) {
|
|
particle.opacity.decay = 1 - (0, tsparticles_engine_1.getRangeValue)(opacityAnimation.decay);
|
|
particle.opacity.status = "increasing";
|
|
const opacityRange = opacityOptions.value;
|
|
particle.opacity.min = (0, tsparticles_engine_1.getRangeMin)(opacityRange);
|
|
particle.opacity.max = (0, tsparticles_engine_1.getRangeMax)(opacityRange);
|
|
switch (opacityAnimation.startValue) {
|
|
case "min":
|
|
particle.opacity.value = particle.opacity.min;
|
|
particle.opacity.status = "increasing";
|
|
break;
|
|
case "random":
|
|
particle.opacity.value = (0, tsparticles_engine_1.randomInRange)(particle.opacity);
|
|
particle.opacity.status =
|
|
(0, tsparticles_engine_1.getRandom)() >= 0.5 ? "increasing" : "decreasing";
|
|
break;
|
|
case "max":
|
|
default:
|
|
particle.opacity.value = particle.opacity.max;
|
|
particle.opacity.status = "decreasing";
|
|
break;
|
|
}
|
|
particle.opacity.velocity =
|
|
((0, tsparticles_engine_1.getRangeValue)(opacityAnimation.speed) / 100) * this.container.retina.reduceFactor;
|
|
if (!opacityAnimation.sync) {
|
|
particle.opacity.velocity *= (0, tsparticles_engine_1.getRandom)();
|
|
}
|
|
}
|
|
particle.opacity.initialValue = particle.opacity.value;
|
|
}
|
|
isEnabled(particle) {
|
|
var _a, _b, _c, _d;
|
|
return (!particle.destroyed &&
|
|
!particle.spawning &&
|
|
!!particle.opacity &&
|
|
particle.opacity.enable &&
|
|
(((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 ||
|
|
(((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 &&
|
|
((_c = particle.opacity.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.opacity.maxLoops) !== null && _d !== void 0 ? _d : 0))));
|
|
}
|
|
reset(particle) {
|
|
if (particle.opacity) {
|
|
particle.opacity.loops = 0;
|
|
}
|
|
}
|
|
update(particle, delta) {
|
|
if (!this.isEnabled(particle)) {
|
|
return;
|
|
}
|
|
updateOpacity(particle, delta);
|
|
}
|
|
}
|
|
exports.OpacityUpdater = OpacityUpdater;
|