tsparticles 1.41.6 → 1.42.2
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/Core/Canvas.d.ts +1 -1
- package/Core/Canvas.js +8 -4
- package/Core/Interfaces/ICoordinates.d.ts +8 -0
- package/Core/Interfaces/IParticleGravity.d.ts +5 -0
- package/Core/Interfaces/IParticleGravity.js +2 -0
- package/Core/Interfaces/index.d.ts +1 -0
- package/Core/Interfaces/index.js +1 -0
- package/Core/Particle.d.ts +2 -1
- package/Core/Particle.js +8 -7
- package/Core/Retina.js +7 -7
- package/Core/Utils/ParticlesMover.js +2 -2
- package/Interactions/Particles/Links/LinkInstance.js +1 -1
- package/Options/Classes/AnimatableGradient.d.ts +4 -4
- package/Options/Classes/AnimatableGradient.js +4 -4
- package/Options/Classes/AnimationOptions.d.ts +5 -5
- package/Options/Classes/AnimationOptions.js +3 -2
- package/Options/Classes/ColorAnimation.d.ts +2 -2
- package/Options/Classes/ColorAnimation.js +2 -2
- package/Options/Classes/Particles/Move/Attract.d.ts +2 -2
- package/Options/Classes/Particles/Move/Attract.js +2 -1
- package/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
- package/Options/Classes/Particles/Move/MoveAngle.js +3 -2
- package/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
- package/Options/Classes/Particles/Move/MoveGravity.js +3 -2
- package/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
- package/Options/Classes/Particles/Orbit/Orbit.js +4 -3
- package/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
- package/Options/Classes/Particles/Repulse/Repulse.js +5 -4
- package/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
- package/Options/Classes/Particles/Roll/RollLight.js +2 -1
- package/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
- package/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
- package/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
- package/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
- package/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
- package/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
- package/Options/Interfaces/IAnimation.d.ts +3 -2
- package/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
- package/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
- package/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
- package/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
- package/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
- package/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
- package/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
- package/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
- package/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
- package/Plugins/Absorbers/AbsorberInstance.js +1 -1
- package/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
- package/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
- package/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
- package/Plugins/Emitters/EmitterInstance.js +3 -3
- package/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
- package/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
- package/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
- package/Updaters/Angle/AngleUpdater.js +2 -1
- package/Updaters/Opacity/OpacityUpdater.js +3 -2
- package/Updaters/Roll/RollUpdater.js +3 -3
- package/Updaters/Tilt/TiltUpdater.js +1 -1
- package/Utils/ColorUtils.js +1 -1
- package/browser/Core/Canvas.d.ts +1 -1
- package/browser/Core/Canvas.js +9 -5
- package/browser/Core/Interfaces/ICoordinates.d.ts +8 -0
- package/browser/Core/Interfaces/IParticleGravity.d.ts +5 -0
- package/browser/Core/Interfaces/IParticleGravity.js +1 -0
- package/browser/Core/Interfaces/index.d.ts +1 -0
- package/browser/Core/Interfaces/index.js +1 -0
- package/browser/Core/Particle.d.ts +2 -1
- package/browser/Core/Particle.js +8 -7
- package/browser/Core/Retina.js +7 -7
- package/browser/Core/Utils/ParticlesMover.js +2 -2
- package/browser/Interactions/Particles/Links/LinkInstance.js +2 -2
- package/browser/Options/Classes/AnimatableGradient.d.ts +4 -4
- package/browser/Options/Classes/AnimatableGradient.js +4 -4
- package/browser/Options/Classes/AnimationOptions.d.ts +5 -5
- package/browser/Options/Classes/AnimationOptions.js +3 -2
- package/browser/Options/Classes/ColorAnimation.d.ts +2 -2
- package/browser/Options/Classes/ColorAnimation.js +2 -2
- package/browser/Options/Classes/Particles/Move/Attract.d.ts +2 -2
- package/browser/Options/Classes/Particles/Move/Attract.js +2 -1
- package/browser/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
- package/browser/Options/Classes/Particles/Move/MoveAngle.js +3 -2
- package/browser/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
- package/browser/Options/Classes/Particles/Move/MoveGravity.js +3 -2
- package/browser/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
- package/browser/Options/Classes/Particles/Orbit/Orbit.js +4 -3
- package/browser/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
- package/browser/Options/Classes/Particles/Repulse/Repulse.js +5 -4
- package/browser/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
- package/browser/Options/Classes/Particles/Roll/RollLight.js +2 -1
- package/browser/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
- package/browser/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
- package/browser/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
- package/browser/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
- package/browser/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
- package/browser/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
- package/browser/Options/Interfaces/IAnimation.d.ts +3 -2
- package/browser/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
- package/browser/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
- package/browser/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
- package/browser/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
- package/browser/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
- package/browser/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
- package/browser/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
- package/browser/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
- package/browser/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
- package/browser/Plugins/Absorbers/AbsorberInstance.js +1 -1
- package/browser/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
- package/browser/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
- package/browser/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
- package/browser/Plugins/Emitters/EmitterInstance.js +3 -3
- package/browser/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
- package/browser/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
- package/browser/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
- package/browser/Updaters/Angle/AngleUpdater.js +2 -1
- package/browser/Updaters/Opacity/OpacityUpdater.js +3 -2
- package/browser/Updaters/Roll/RollUpdater.js +3 -3
- package/browser/Updaters/Tilt/TiltUpdater.js +1 -1
- package/browser/Utils/ColorUtils.js +2 -2
- package/esm/Core/Canvas.d.ts +1 -1
- package/esm/Core/Canvas.js +9 -5
- package/esm/Core/Interfaces/ICoordinates.d.ts +8 -0
- package/esm/Core/Interfaces/IParticleGravity.d.ts +5 -0
- package/esm/Core/Interfaces/IParticleGravity.js +1 -0
- package/esm/Core/Interfaces/index.d.ts +1 -0
- package/esm/Core/Interfaces/index.js +1 -0
- package/esm/Core/Particle.d.ts +2 -1
- package/esm/Core/Particle.js +8 -7
- package/esm/Core/Retina.js +7 -7
- package/esm/Core/Utils/ParticlesMover.js +2 -2
- package/esm/Interactions/Particles/Links/LinkInstance.js +2 -2
- package/esm/Options/Classes/AnimatableGradient.d.ts +4 -4
- package/esm/Options/Classes/AnimatableGradient.js +4 -4
- package/esm/Options/Classes/AnimationOptions.d.ts +5 -5
- package/esm/Options/Classes/AnimationOptions.js +3 -2
- package/esm/Options/Classes/ColorAnimation.d.ts +2 -2
- package/esm/Options/Classes/ColorAnimation.js +2 -2
- package/esm/Options/Classes/Particles/Move/Attract.d.ts +2 -2
- package/esm/Options/Classes/Particles/Move/Attract.js +2 -1
- package/esm/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
- package/esm/Options/Classes/Particles/Move/MoveAngle.js +3 -2
- package/esm/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
- package/esm/Options/Classes/Particles/Move/MoveGravity.js +3 -2
- package/esm/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
- package/esm/Options/Classes/Particles/Orbit/Orbit.js +4 -3
- package/esm/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
- package/esm/Options/Classes/Particles/Repulse/Repulse.js +5 -4
- package/esm/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
- package/esm/Options/Classes/Particles/Roll/RollLight.js +2 -1
- package/esm/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
- package/esm/Options/Classes/Particles/Rotate/RotateAnimation.js +2 -1
- package/esm/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
- package/esm/Options/Classes/Particles/Tilt/TiltAnimation.js +2 -1
- package/esm/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
- package/esm/Options/Classes/Particles/Twinkle/TwinkleValues.js +2 -1
- package/esm/Options/Interfaces/IAnimation.d.ts +3 -2
- package/esm/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
- package/esm/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
- package/esm/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
- package/esm/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
- package/esm/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
- package/esm/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
- package/esm/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
- package/esm/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
- package/esm/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
- package/esm/Plugins/Absorbers/AbsorberInstance.js +1 -1
- package/esm/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
- package/esm/Plugins/Absorbers/Options/Classes/Absorber.js +8 -4
- package/esm/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
- package/esm/Plugins/Emitters/EmitterInstance.js +3 -3
- package/esm/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
- package/esm/Plugins/Emitters/Options/Classes/Emitter.js +8 -5
- package/esm/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
- package/esm/Updaters/Angle/AngleUpdater.js +2 -1
- package/esm/Updaters/Opacity/OpacityUpdater.js +3 -2
- package/esm/Updaters/Roll/RollUpdater.js +3 -3
- package/esm/Updaters/Tilt/TiltUpdater.js +1 -1
- package/esm/Utils/ColorUtils.js +2 -2
- package/package.json +15 -3
- package/report.html +2 -2
- package/report.slim.html +2 -2
- package/scripts/install.js +11 -2
- package/tsparticles.engine.js +48 -45
- package/tsparticles.engine.min.js +2 -2
- package/tsparticles.interaction.external.attract.js +320 -34
- package/tsparticles.interaction.external.attract.min.js +1 -1
- package/tsparticles.interaction.external.bounce.js +320 -34
- package/tsparticles.interaction.external.bounce.min.js +1 -1
- package/tsparticles.interaction.external.bubble.js +320 -34
- package/tsparticles.interaction.external.bubble.min.js +1 -1
- package/tsparticles.interaction.external.connect.js +320 -34
- package/tsparticles.interaction.external.connect.min.js +1 -1
- package/tsparticles.interaction.external.grab.js +320 -34
- package/tsparticles.interaction.external.grab.min.js +1 -1
- package/tsparticles.interaction.external.repulse.js +320 -34
- package/tsparticles.interaction.external.repulse.min.js +1 -1
- package/tsparticles.interaction.external.trail.js +320 -34
- package/tsparticles.interaction.external.trail.min.js +1 -1
- package/tsparticles.interaction.particles.attract.js +320 -34
- package/tsparticles.interaction.particles.attract.min.js +1 -1
- package/tsparticles.interaction.particles.collisions.js +320 -34
- package/tsparticles.interaction.particles.collisions.min.js +1 -1
- package/tsparticles.interaction.particles.links.js +321 -35
- package/tsparticles.interaction.particles.links.min.js +2 -2
- package/tsparticles.js +74 -65
- package/tsparticles.min.js +2 -2
- package/tsparticles.pathseg.min.js +1 -1
- package/tsparticles.plugins.absorbers.js +328 -39
- package/tsparticles.plugins.absorbers.min.js +2 -2
- package/tsparticles.plugins.emitters.js +431 -142
- package/tsparticles.plugins.emitters.min.js +2 -2
- package/tsparticles.plugins.polygonMask.js +320 -34
- package/tsparticles.plugins.polygonMask.min.js +1 -1
- package/tsparticles.shape.circle.min.js +1 -1
- package/tsparticles.shape.image.js +320 -34
- package/tsparticles.shape.image.min.js +1 -1
- package/tsparticles.shape.line.min.js +1 -1
- package/tsparticles.shape.polygon.min.js +1 -1
- package/tsparticles.shape.square.min.js +1 -1
- package/tsparticles.shape.star.min.js +1 -1
- package/tsparticles.shape.text.js +320 -34
- package/tsparticles.shape.text.min.js +1 -1
- package/tsparticles.slim.js +52 -49
- package/tsparticles.slim.min.js +2 -2
- package/tsparticles.updater.angle.js +321 -35
- package/tsparticles.updater.angle.min.js +2 -2
- package/tsparticles.updater.color.js +320 -34
- package/tsparticles.updater.color.min.js +2 -2
- package/tsparticles.updater.life.js +320 -34
- package/tsparticles.updater.life.min.js +1 -1
- package/tsparticles.updater.opacity.js +322 -36
- package/tsparticles.updater.opacity.min.js +2 -2
- package/tsparticles.updater.outModes.js +320 -34
- package/tsparticles.updater.outModes.min.js +1 -1
- package/tsparticles.updater.roll.js +323 -37
- package/tsparticles.updater.roll.min.js +2 -2
- package/tsparticles.updater.size.js +320 -34
- package/tsparticles.updater.size.min.js +1 -1
- package/tsparticles.updater.strokeColor.js +320 -34
- package/tsparticles.updater.strokeColor.min.js +2 -2
- package/tsparticles.updater.tilt.js +321 -35
- package/tsparticles.updater.tilt.min.js +2 -2
- package/tsparticles.updater.wobble.js +320 -34
- package/tsparticles.updater.wobble.min.js +1 -1
- package/umd/Core/Canvas.d.ts +1 -1
- package/umd/Core/Canvas.js +8 -4
- package/umd/Core/Interfaces/ICoordinates.d.ts +8 -0
- package/umd/Core/Interfaces/IParticleGravity.d.ts +5 -0
- package/umd/Core/Interfaces/IParticleGravity.js +12 -0
- package/umd/Core/Interfaces/index.d.ts +1 -0
- package/umd/Core/Interfaces/index.js +2 -1
- package/umd/Core/Particle.d.ts +2 -1
- package/umd/Core/Particle.js +8 -7
- package/umd/Core/Retina.js +7 -7
- package/umd/Core/Utils/ParticlesMover.js +2 -2
- package/umd/Interactions/Particles/Links/LinkInstance.js +1 -1
- package/umd/Options/Classes/AnimatableGradient.d.ts +4 -4
- package/umd/Options/Classes/AnimatableGradient.js +4 -4
- package/umd/Options/Classes/AnimationOptions.d.ts +5 -5
- package/umd/Options/Classes/AnimationOptions.js +4 -3
- package/umd/Options/Classes/ColorAnimation.d.ts +2 -2
- package/umd/Options/Classes/ColorAnimation.js +2 -2
- package/umd/Options/Classes/Particles/Move/Attract.d.ts +2 -2
- package/umd/Options/Classes/Particles/Move/Attract.js +3 -2
- package/umd/Options/Classes/Particles/Move/MoveAngle.d.ts +3 -3
- package/umd/Options/Classes/Particles/Move/MoveAngle.js +4 -3
- package/umd/Options/Classes/Particles/Move/MoveGravity.d.ts +5 -5
- package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -3
- package/umd/Options/Classes/Particles/Orbit/Orbit.d.ts +4 -4
- package/umd/Options/Classes/Particles/Orbit/Orbit.js +5 -4
- package/umd/Options/Classes/Particles/Repulse/Repulse.d.ts +5 -5
- package/umd/Options/Classes/Particles/Repulse/Repulse.js +6 -5
- package/umd/Options/Classes/Particles/Roll/RollLight.d.ts +2 -2
- package/umd/Options/Classes/Particles/Roll/RollLight.js +3 -2
- package/umd/Options/Classes/Particles/Rotate/RotateAnimation.d.ts +2 -2
- package/umd/Options/Classes/Particles/Rotate/RotateAnimation.js +3 -2
- package/umd/Options/Classes/Particles/Tilt/TiltAnimation.d.ts +2 -2
- package/umd/Options/Classes/Particles/Tilt/TiltAnimation.js +3 -2
- package/umd/Options/Classes/Particles/Twinkle/TwinkleValues.d.ts +2 -2
- package/umd/Options/Classes/Particles/Twinkle/TwinkleValues.js +3 -2
- package/umd/Options/Interfaces/IAnimation.d.ts +3 -2
- package/umd/Options/Interfaces/Particles/Move/IAttract.d.ts +3 -2
- package/umd/Options/Interfaces/Particles/Move/IMoveAngle.d.ts +3 -2
- package/umd/Options/Interfaces/Particles/Move/IMoveGravity.d.ts +3 -2
- package/umd/Options/Interfaces/Particles/Orbit/IOrbit.d.ts +4 -3
- package/umd/Options/Interfaces/Particles/Repulse/IRepulse.d.ts +5 -4
- package/umd/Options/Interfaces/Particles/Roll/IRollLight.d.ts +2 -1
- package/umd/Options/Interfaces/Particles/Rotate/IRotateAnimation.d.ts +2 -1
- package/umd/Options/Interfaces/Particles/Tilt/ITiltAnimation.d.ts +2 -1
- package/umd/Options/Interfaces/Particles/Twinkle/ITwinkleValues.d.ts +3 -2
- package/umd/Plugins/Absorbers/AbsorberInstance.js +1 -1
- package/umd/Plugins/Absorbers/Options/Classes/Absorber.d.ts +2 -2
- package/umd/Plugins/Absorbers/Options/Classes/Absorber.js +9 -5
- package/umd/Plugins/Absorbers/Options/Interfaces/IAbsorber.d.ts +2 -2
- package/umd/Plugins/Emitters/EmitterInstance.js +3 -3
- package/umd/Plugins/Emitters/Options/Classes/Emitter.d.ts +2 -2
- package/umd/Plugins/Emitters/Options/Classes/Emitter.js +9 -6
- package/umd/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +2 -2
- package/umd/Updaters/Angle/AngleUpdater.js +2 -1
- package/umd/Updaters/Opacity/OpacityUpdater.js +3 -2
- package/umd/Updaters/Roll/RollUpdater.js +3 -3
- package/umd/Updaters/Tilt/TiltUpdater.js +1 -1
- package/umd/Utils/ColorUtils.js +1 -1
|
@@ -799,7 +799,7 @@
|
|
|
799
799
|
function setColorAnimation(colorValue, colorAnimation, reduceFactor) {
|
|
800
800
|
colorValue.enable = colorAnimation.enable;
|
|
801
801
|
if (colorValue.enable) {
|
|
802
|
-
colorValue.velocity = colorAnimation.speed / 100 * reduceFactor;
|
|
802
|
+
colorValue.velocity = getRangeValue(colorAnimation.speed) / 100 * reduceFactor;
|
|
803
803
|
if (colorAnimation.sync) {
|
|
804
804
|
return;
|
|
805
805
|
}
|
|
@@ -1706,7 +1706,7 @@
|
|
|
1706
1706
|
}
|
|
1707
1707
|
const container = this.container, slowFactor = this.getProximitySpeedFactor(particle), baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : _d.moveSpeed = getRangeValue(moveOptions.speed) * container.retina.pixelRatio) * container.retina.reduceFactor, moveDrift = (_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : _e.moveDrift = getRangeValue(particle.options.move.drift) * container.retina.pixelRatio, maxSize = getRangeMax(particleOptions.size.value) * container.retina.pixelRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, diffFactor = 2, speedFactor = sizeFactor * slowFactor * (delta.factor || 1) / diffFactor, moveSpeed = baseSpeed * speedFactor;
|
|
1708
1708
|
this.applyPath(particle, delta);
|
|
1709
|
-
const gravityOptions =
|
|
1709
|
+
const gravityOptions = particle.gravity;
|
|
1710
1710
|
const gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;
|
|
1711
1711
|
if (gravityOptions.enable && moveSpeed) {
|
|
1712
1712
|
particle.velocity.y += gravityFactor * (gravityOptions.acceleration * delta.factor) / (60 * moveSpeed);
|
|
@@ -1720,7 +1720,7 @@
|
|
|
1720
1720
|
}
|
|
1721
1721
|
const velocity = particle.velocity.mult(moveSpeed);
|
|
1722
1722
|
const maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;
|
|
1723
|
-
if (gravityOptions.enable &&
|
|
1723
|
+
if (gravityOptions.enable && maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {
|
|
1724
1724
|
velocity.y = gravityFactor * maxSpeed;
|
|
1725
1725
|
if (moveSpeed) {
|
|
1726
1726
|
particle.velocity.y = velocity.y / moveSpeed;
|
|
@@ -2034,9 +2034,9 @@
|
|
|
2034
2034
|
paint() {
|
|
2035
2035
|
const options = this.container.actualOptions;
|
|
2036
2036
|
this.draw((ctx => {
|
|
2037
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
2037
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
2038
2038
|
clear(ctx, this.size);
|
|
2039
|
-
this.paintBase(
|
|
2039
|
+
this.paintBase(this.coverColorStyle);
|
|
2040
2040
|
} else {
|
|
2041
2041
|
this.paintBase();
|
|
2042
2042
|
}
|
|
@@ -2138,7 +2138,7 @@
|
|
|
2138
2138
|
const zIndexOptions = particle.options.zIndex;
|
|
2139
2139
|
const zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate;
|
|
2140
2140
|
const radius = particle.getRadius();
|
|
2141
|
-
const opacity = twinkling ? twinkle.opacity : (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;
|
|
2141
|
+
const opacity = twinkling ? getRangeValue(twinkle.opacity) : (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;
|
|
2142
2142
|
const strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity;
|
|
2143
2143
|
const zOpacity = opacity * zOpacityFactor;
|
|
2144
2144
|
const fillColorValue = fColor ? getStyleFromHsl(fColor, zOpacity) : undefined;
|
|
@@ -2207,12 +2207,14 @@
|
|
|
2207
2207
|
const color = cover.color;
|
|
2208
2208
|
const coverRgb = colorToRgb(color);
|
|
2209
2209
|
if (coverRgb) {
|
|
2210
|
-
|
|
2210
|
+
const coverColor = {
|
|
2211
2211
|
r: coverRgb.r,
|
|
2212
2212
|
g: coverRgb.g,
|
|
2213
2213
|
b: coverRgb.b,
|
|
2214
2214
|
a: cover.opacity
|
|
2215
2215
|
};
|
|
2216
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2217
|
+
console.log(this.coverColorStyle);
|
|
2216
2218
|
}
|
|
2217
2219
|
}
|
|
2218
2220
|
initTrail() {
|
|
@@ -2409,7 +2411,7 @@
|
|
|
2409
2411
|
return;
|
|
2410
2412
|
}
|
|
2411
2413
|
if (data.count !== undefined) {
|
|
2412
|
-
this.count = data.count;
|
|
2414
|
+
this.count = setRangeValue(data.count);
|
|
2413
2415
|
}
|
|
2414
2416
|
if (data.enable !== undefined) {
|
|
2415
2417
|
this.enable = data.enable;
|
|
@@ -2418,7 +2420,7 @@
|
|
|
2418
2420
|
this.offset = setRangeValue(data.offset);
|
|
2419
2421
|
}
|
|
2420
2422
|
if (data.speed !== undefined) {
|
|
2421
|
-
this.speed = data.speed;
|
|
2423
|
+
this.speed = setRangeValue(data.speed);
|
|
2422
2424
|
}
|
|
2423
2425
|
if (data.sync !== undefined) {
|
|
2424
2426
|
this.sync = data.sync;
|
|
@@ -2566,13 +2568,13 @@
|
|
|
2566
2568
|
return;
|
|
2567
2569
|
}
|
|
2568
2570
|
if (data.count !== undefined) {
|
|
2569
|
-
this.count = data.count;
|
|
2571
|
+
this.count = setRangeValue(data.count);
|
|
2570
2572
|
}
|
|
2571
2573
|
if (data.enable !== undefined) {
|
|
2572
2574
|
this.enable = data.enable;
|
|
2573
2575
|
}
|
|
2574
2576
|
if (data.speed !== undefined) {
|
|
2575
|
-
this.speed = data.speed;
|
|
2577
|
+
this.speed = setRangeValue(data.speed);
|
|
2576
2578
|
}
|
|
2577
2579
|
if (data.sync !== undefined) {
|
|
2578
2580
|
this.sync = data.sync;
|
|
@@ -2592,13 +2594,13 @@
|
|
|
2592
2594
|
return;
|
|
2593
2595
|
}
|
|
2594
2596
|
if (data.count !== undefined) {
|
|
2595
|
-
this.count = data.count;
|
|
2597
|
+
this.count = setRangeValue(data.count);
|
|
2596
2598
|
}
|
|
2597
2599
|
if (data.enable !== undefined) {
|
|
2598
2600
|
this.enable = data.enable;
|
|
2599
2601
|
}
|
|
2600
2602
|
if (data.speed !== undefined) {
|
|
2601
|
-
this.speed = data.speed;
|
|
2603
|
+
this.speed = setRangeValue(data.speed);
|
|
2602
2604
|
}
|
|
2603
2605
|
if (data.sync !== undefined) {
|
|
2604
2606
|
this.sync = data.sync;
|
|
@@ -2770,6 +2772,90 @@
|
|
|
2770
2772
|
this.duration.load(data.duration);
|
|
2771
2773
|
}
|
|
2772
2774
|
}
|
|
2775
|
+
class Attract_Attract {
|
|
2776
|
+
constructor() {
|
|
2777
|
+
this.distance = 200;
|
|
2778
|
+
this.enable = false;
|
|
2779
|
+
this.rotate = {
|
|
2780
|
+
x: 3e3,
|
|
2781
|
+
y: 3e3
|
|
2782
|
+
};
|
|
2783
|
+
}
|
|
2784
|
+
get rotateX() {
|
|
2785
|
+
return this.rotate.x;
|
|
2786
|
+
}
|
|
2787
|
+
set rotateX(value) {
|
|
2788
|
+
this.rotate.x = value;
|
|
2789
|
+
}
|
|
2790
|
+
get rotateY() {
|
|
2791
|
+
return this.rotate.y;
|
|
2792
|
+
}
|
|
2793
|
+
set rotateY(value) {
|
|
2794
|
+
this.rotate.y = value;
|
|
2795
|
+
}
|
|
2796
|
+
load(data) {
|
|
2797
|
+
var _a, _b, _c, _d;
|
|
2798
|
+
if (!data) {
|
|
2799
|
+
return;
|
|
2800
|
+
}
|
|
2801
|
+
if (data.distance !== undefined) {
|
|
2802
|
+
this.distance = setRangeValue(data.distance);
|
|
2803
|
+
}
|
|
2804
|
+
if (data.enable !== undefined) {
|
|
2805
|
+
this.enable = data.enable;
|
|
2806
|
+
}
|
|
2807
|
+
const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;
|
|
2808
|
+
if (rotateX !== undefined) {
|
|
2809
|
+
this.rotate.x = rotateX;
|
|
2810
|
+
}
|
|
2811
|
+
const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;
|
|
2812
|
+
if (rotateY !== undefined) {
|
|
2813
|
+
this.rotate.y = rotateY;
|
|
2814
|
+
}
|
|
2815
|
+
}
|
|
2816
|
+
}
|
|
2817
|
+
class MoveAngle_MoveAngle {
|
|
2818
|
+
constructor() {
|
|
2819
|
+
this.offset = 0;
|
|
2820
|
+
this.value = 90;
|
|
2821
|
+
}
|
|
2822
|
+
load(data) {
|
|
2823
|
+
if (data === undefined) {
|
|
2824
|
+
return;
|
|
2825
|
+
}
|
|
2826
|
+
if (data.offset !== undefined) {
|
|
2827
|
+
this.offset = setRangeValue(data.offset);
|
|
2828
|
+
}
|
|
2829
|
+
if (data.value !== undefined) {
|
|
2830
|
+
this.value = setRangeValue(data.value);
|
|
2831
|
+
}
|
|
2832
|
+
}
|
|
2833
|
+
}
|
|
2834
|
+
class MoveGravity_MoveGravity {
|
|
2835
|
+
constructor() {
|
|
2836
|
+
this.acceleration = 9.81;
|
|
2837
|
+
this.enable = false;
|
|
2838
|
+
this.inverse = false;
|
|
2839
|
+
this.maxSpeed = 50;
|
|
2840
|
+
}
|
|
2841
|
+
load(data) {
|
|
2842
|
+
if (!data) {
|
|
2843
|
+
return;
|
|
2844
|
+
}
|
|
2845
|
+
if (data.acceleration !== undefined) {
|
|
2846
|
+
this.acceleration = setRangeValue(data.acceleration);
|
|
2847
|
+
}
|
|
2848
|
+
if (data.enable !== undefined) {
|
|
2849
|
+
this.enable = data.enable;
|
|
2850
|
+
}
|
|
2851
|
+
if (data.inverse !== undefined) {
|
|
2852
|
+
this.inverse = data.inverse;
|
|
2853
|
+
}
|
|
2854
|
+
if (data.maxSpeed !== undefined) {
|
|
2855
|
+
this.maxSpeed = setRangeValue(data.maxSpeed);
|
|
2856
|
+
}
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2773
2859
|
class PathDelay_PathDelay extends(null && ValueWithRandom){
|
|
2774
2860
|
constructor() {
|
|
2775
2861
|
super();
|
|
@@ -2931,6 +3017,70 @@
|
|
|
2931
3017
|
}
|
|
2932
3018
|
}
|
|
2933
3019
|
}
|
|
3020
|
+
class AnimationOptions_AnimationOptions {
|
|
3021
|
+
constructor() {
|
|
3022
|
+
this.count = 0;
|
|
3023
|
+
this.enable = false;
|
|
3024
|
+
this.speed = 1;
|
|
3025
|
+
this.sync = false;
|
|
3026
|
+
}
|
|
3027
|
+
load(data) {
|
|
3028
|
+
if (!data) {
|
|
3029
|
+
return;
|
|
3030
|
+
}
|
|
3031
|
+
if (data.count !== undefined) {
|
|
3032
|
+
this.count = setRangeValue(data.count);
|
|
3033
|
+
}
|
|
3034
|
+
if (data.enable !== undefined) {
|
|
3035
|
+
this.enable = data.enable;
|
|
3036
|
+
}
|
|
3037
|
+
if (data.speed !== undefined) {
|
|
3038
|
+
this.speed = setRangeValue(data.speed);
|
|
3039
|
+
}
|
|
3040
|
+
if (data.sync !== undefined) {
|
|
3041
|
+
this.sync = data.sync;
|
|
3042
|
+
}
|
|
3043
|
+
}
|
|
3044
|
+
}
|
|
3045
|
+
class OpacityAnimation_OpacityAnimation extends(null && AnimationOptions){
|
|
3046
|
+
constructor() {
|
|
3047
|
+
super();
|
|
3048
|
+
this.destroy = "none";
|
|
3049
|
+
this.enable = false;
|
|
3050
|
+
this.speed = 2;
|
|
3051
|
+
this.startValue = "random";
|
|
3052
|
+
this.sync = false;
|
|
3053
|
+
}
|
|
3054
|
+
get opacity_min() {
|
|
3055
|
+
return this.minimumValue;
|
|
3056
|
+
}
|
|
3057
|
+
set opacity_min(value) {
|
|
3058
|
+
this.minimumValue = value;
|
|
3059
|
+
}
|
|
3060
|
+
load(data) {
|
|
3061
|
+
var _a;
|
|
3062
|
+
if (data === undefined) {
|
|
3063
|
+
return;
|
|
3064
|
+
}
|
|
3065
|
+
super.load(data);
|
|
3066
|
+
if (data.destroy !== undefined) {
|
|
3067
|
+
this.destroy = data.destroy;
|
|
3068
|
+
}
|
|
3069
|
+
if (data.enable !== undefined) {
|
|
3070
|
+
this.enable = data.enable;
|
|
3071
|
+
}
|
|
3072
|
+
this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;
|
|
3073
|
+
if (data.speed !== undefined) {
|
|
3074
|
+
this.speed = data.speed;
|
|
3075
|
+
}
|
|
3076
|
+
if (data.startValue !== undefined) {
|
|
3077
|
+
this.startValue = data.startValue;
|
|
3078
|
+
}
|
|
3079
|
+
if (data.sync !== undefined) {
|
|
3080
|
+
this.sync = data.sync;
|
|
3081
|
+
}
|
|
3082
|
+
}
|
|
3083
|
+
}
|
|
2934
3084
|
class Opacity_Opacity extends(null && ValueWithRandom){
|
|
2935
3085
|
constructor() {
|
|
2936
3086
|
super();
|
|
@@ -2989,13 +3139,13 @@
|
|
|
2989
3139
|
this.enable = data.enable;
|
|
2990
3140
|
}
|
|
2991
3141
|
if (data.opacity !== undefined) {
|
|
2992
|
-
this.opacity = data.opacity;
|
|
3142
|
+
this.opacity = setRangeValue(data.opacity);
|
|
2993
3143
|
}
|
|
2994
3144
|
if (data.width !== undefined) {
|
|
2995
|
-
this.width = data.width;
|
|
3145
|
+
this.width = setRangeValue(data.width);
|
|
2996
3146
|
}
|
|
2997
3147
|
if (data.radius !== undefined) {
|
|
2998
|
-
this.radius = data.radius;
|
|
3148
|
+
this.radius = setRangeValue(data.radius);
|
|
2999
3149
|
}
|
|
3000
3150
|
if (data.color !== undefined) {
|
|
3001
3151
|
this.color = OptionsColor.create(this.color, data.color);
|
|
@@ -3020,16 +3170,33 @@
|
|
|
3020
3170
|
this.enabled = data.enabled;
|
|
3021
3171
|
}
|
|
3022
3172
|
if (data.distance !== undefined) {
|
|
3023
|
-
this.distance = data.distance;
|
|
3173
|
+
this.distance = setRangeValue(data.distance);
|
|
3024
3174
|
}
|
|
3025
3175
|
if (data.duration !== undefined) {
|
|
3026
|
-
this.duration = data.duration;
|
|
3176
|
+
this.duration = setRangeValue(data.duration);
|
|
3027
3177
|
}
|
|
3028
3178
|
if (data.factor !== undefined) {
|
|
3029
|
-
this.factor = data.factor;
|
|
3179
|
+
this.factor = setRangeValue(data.factor);
|
|
3030
3180
|
}
|
|
3031
3181
|
if (data.speed !== undefined) {
|
|
3032
|
-
this.speed = data.speed;
|
|
3182
|
+
this.speed = setRangeValue(data.speed);
|
|
3183
|
+
}
|
|
3184
|
+
}
|
|
3185
|
+
}
|
|
3186
|
+
class RollLight_RollLight {
|
|
3187
|
+
constructor() {
|
|
3188
|
+
this.enable = false;
|
|
3189
|
+
this.value = 0;
|
|
3190
|
+
}
|
|
3191
|
+
load(data) {
|
|
3192
|
+
if (!data) {
|
|
3193
|
+
return;
|
|
3194
|
+
}
|
|
3195
|
+
if (data.enable !== undefined) {
|
|
3196
|
+
this.enable = data.enable;
|
|
3197
|
+
}
|
|
3198
|
+
if (data.value !== undefined) {
|
|
3199
|
+
this.value = setRangeValue(data.value);
|
|
3033
3200
|
}
|
|
3034
3201
|
}
|
|
3035
3202
|
}
|
|
@@ -3061,6 +3228,27 @@
|
|
|
3061
3228
|
}
|
|
3062
3229
|
}
|
|
3063
3230
|
}
|
|
3231
|
+
class RotateAnimation_RotateAnimation {
|
|
3232
|
+
constructor() {
|
|
3233
|
+
this.enable = false;
|
|
3234
|
+
this.speed = 0;
|
|
3235
|
+
this.sync = false;
|
|
3236
|
+
}
|
|
3237
|
+
load(data) {
|
|
3238
|
+
if (data === undefined) {
|
|
3239
|
+
return;
|
|
3240
|
+
}
|
|
3241
|
+
if (data.enable !== undefined) {
|
|
3242
|
+
this.enable = data.enable;
|
|
3243
|
+
}
|
|
3244
|
+
if (data.speed !== undefined) {
|
|
3245
|
+
this.speed = setRangeValue(data.speed);
|
|
3246
|
+
}
|
|
3247
|
+
if (data.sync !== undefined) {
|
|
3248
|
+
this.sync = data.sync;
|
|
3249
|
+
}
|
|
3250
|
+
}
|
|
3251
|
+
}
|
|
3064
3252
|
class Rotate_Rotate extends(null && ValueWithRandom){
|
|
3065
3253
|
constructor() {
|
|
3066
3254
|
super();
|
|
@@ -3179,6 +3367,45 @@
|
|
|
3179
3367
|
}
|
|
3180
3368
|
}
|
|
3181
3369
|
}
|
|
3370
|
+
class SizeAnimation_SizeAnimation extends(null && AnimationOptions){
|
|
3371
|
+
constructor() {
|
|
3372
|
+
super();
|
|
3373
|
+
this.destroy = "none";
|
|
3374
|
+
this.enable = false;
|
|
3375
|
+
this.speed = 5;
|
|
3376
|
+
this.startValue = "random";
|
|
3377
|
+
this.sync = false;
|
|
3378
|
+
}
|
|
3379
|
+
get size_min() {
|
|
3380
|
+
return this.minimumValue;
|
|
3381
|
+
}
|
|
3382
|
+
set size_min(value) {
|
|
3383
|
+
this.minimumValue = value;
|
|
3384
|
+
}
|
|
3385
|
+
load(data) {
|
|
3386
|
+
var _a;
|
|
3387
|
+
if (data === undefined) {
|
|
3388
|
+
return;
|
|
3389
|
+
}
|
|
3390
|
+
super.load(data);
|
|
3391
|
+
if (data.destroy !== undefined) {
|
|
3392
|
+
this.destroy = data.destroy;
|
|
3393
|
+
}
|
|
3394
|
+
if (data.enable !== undefined) {
|
|
3395
|
+
this.enable = data.enable;
|
|
3396
|
+
}
|
|
3397
|
+
this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;
|
|
3398
|
+
if (data.speed !== undefined) {
|
|
3399
|
+
this.speed = data.speed;
|
|
3400
|
+
}
|
|
3401
|
+
if (data.startValue !== undefined) {
|
|
3402
|
+
this.startValue = data.startValue;
|
|
3403
|
+
}
|
|
3404
|
+
if (data.sync !== undefined) {
|
|
3405
|
+
this.sync = data.sync;
|
|
3406
|
+
}
|
|
3407
|
+
}
|
|
3408
|
+
}
|
|
3182
3409
|
class Size_Size extends(null && ValueWithRandom){
|
|
3183
3410
|
constructor() {
|
|
3184
3411
|
super();
|
|
@@ -3224,6 +3451,27 @@
|
|
|
3224
3451
|
}
|
|
3225
3452
|
}
|
|
3226
3453
|
}
|
|
3454
|
+
class TiltAnimation_TiltAnimation {
|
|
3455
|
+
constructor() {
|
|
3456
|
+
this.enable = false;
|
|
3457
|
+
this.speed = 0;
|
|
3458
|
+
this.sync = false;
|
|
3459
|
+
}
|
|
3460
|
+
load(data) {
|
|
3461
|
+
if (data === undefined) {
|
|
3462
|
+
return;
|
|
3463
|
+
}
|
|
3464
|
+
if (data.enable !== undefined) {
|
|
3465
|
+
this.enable = data.enable;
|
|
3466
|
+
}
|
|
3467
|
+
if (data.speed !== undefined) {
|
|
3468
|
+
this.speed = setRangeValue(data.speed);
|
|
3469
|
+
}
|
|
3470
|
+
if (data.sync !== undefined) {
|
|
3471
|
+
this.sync = data.sync;
|
|
3472
|
+
}
|
|
3473
|
+
}
|
|
3474
|
+
}
|
|
3227
3475
|
class Tilt_Tilt extends(null && ValueWithRandom){
|
|
3228
3476
|
constructor() {
|
|
3229
3477
|
super();
|
|
@@ -3246,6 +3494,43 @@
|
|
|
3246
3494
|
}
|
|
3247
3495
|
}
|
|
3248
3496
|
}
|
|
3497
|
+
class TwinkleValues_TwinkleValues {
|
|
3498
|
+
constructor() {
|
|
3499
|
+
this.enable = false;
|
|
3500
|
+
this.frequency = .05;
|
|
3501
|
+
this.opacity = 1;
|
|
3502
|
+
}
|
|
3503
|
+
load(data) {
|
|
3504
|
+
if (data === undefined) {
|
|
3505
|
+
return;
|
|
3506
|
+
}
|
|
3507
|
+
if (data.color !== undefined) {
|
|
3508
|
+
this.color = OptionsColor.create(this.color, data.color);
|
|
3509
|
+
}
|
|
3510
|
+
if (data.enable !== undefined) {
|
|
3511
|
+
this.enable = data.enable;
|
|
3512
|
+
}
|
|
3513
|
+
if (data.frequency !== undefined) {
|
|
3514
|
+
this.frequency = data.frequency;
|
|
3515
|
+
}
|
|
3516
|
+
if (data.opacity !== undefined) {
|
|
3517
|
+
this.opacity = setRangeValue(data.opacity);
|
|
3518
|
+
}
|
|
3519
|
+
}
|
|
3520
|
+
}
|
|
3521
|
+
class Twinkle_Twinkle {
|
|
3522
|
+
constructor() {
|
|
3523
|
+
this.lines = new TwinkleValues;
|
|
3524
|
+
this.particles = new TwinkleValues;
|
|
3525
|
+
}
|
|
3526
|
+
load(data) {
|
|
3527
|
+
if (data === undefined) {
|
|
3528
|
+
return;
|
|
3529
|
+
}
|
|
3530
|
+
this.lines.load(data.lines);
|
|
3531
|
+
this.particles.load(data.particles);
|
|
3532
|
+
}
|
|
3533
|
+
}
|
|
3249
3534
|
class Wobble_Wobble {
|
|
3250
3535
|
constructor() {
|
|
3251
3536
|
this.distance = 5;
|
|
@@ -3683,7 +3968,7 @@
|
|
|
3683
3968
|
max: getRangeMax(sizeRange) * pxRatio,
|
|
3684
3969
|
min: getRangeMin(sizeRange) * pxRatio,
|
|
3685
3970
|
loops: 0,
|
|
3686
|
-
maxLoops: sizeOptions.animation.count
|
|
3971
|
+
maxLoops: getRangeValue(sizeOptions.animation.count)
|
|
3687
3972
|
};
|
|
3688
3973
|
const sizeAnimation = sizeOptions.animation;
|
|
3689
3974
|
if (sizeAnimation.enable) {
|
|
@@ -3717,6 +4002,12 @@
|
|
|
3717
4002
|
this.initialVelocity = this.calculateVelocity();
|
|
3718
4003
|
this.velocity = this.initialVelocity.copy();
|
|
3719
4004
|
this.moveDecay = 1 - getRangeValue(this.options.move.decay);
|
|
4005
|
+
const gravityOptions = this.options.move.gravity;
|
|
4006
|
+
this.gravity = {
|
|
4007
|
+
enable: gravityOptions.enable,
|
|
4008
|
+
acceleration: getRangeValue(gravityOptions.acceleration),
|
|
4009
|
+
inverse: gravityOptions.inverse
|
|
4010
|
+
};
|
|
3720
4011
|
this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));
|
|
3721
4012
|
this.initialPosition = this.position.copy();
|
|
3722
4013
|
this.offset = Vector.origin;
|
|
@@ -3924,12 +4215,7 @@
|
|
|
3924
4215
|
return overlaps;
|
|
3925
4216
|
}
|
|
3926
4217
|
calculateVelocity() {
|
|
3927
|
-
const baseVelocity = getParticleBaseVelocity(this.direction)
|
|
3928
|
-
const res = baseVelocity.copy();
|
|
3929
|
-
const moveOptions = this.options.move;
|
|
3930
|
-
const rad = Math.PI / 180 * moveOptions.angle.value;
|
|
3931
|
-
const radOffset = Math.PI / 180 * moveOptions.angle.offset;
|
|
3932
|
-
const range = {
|
|
4218
|
+
const baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move, rad = Math.PI / 180 * getRangeValue(moveOptions.angle.value), radOffset = Math.PI / 180 * getRangeValue(moveOptions.angle.offset), range = {
|
|
3933
4219
|
left: radOffset - rad / 2,
|
|
3934
4220
|
right: radOffset + rad / 2
|
|
3935
4221
|
};
|
|
@@ -4319,13 +4605,13 @@
|
|
|
4319
4605
|
container.canvas.size.height = element.offsetHeight * ratio;
|
|
4320
4606
|
}
|
|
4321
4607
|
const particles = options.particles;
|
|
4322
|
-
this.attractDistance = particles.move.attract.distance * ratio;
|
|
4608
|
+
this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;
|
|
4323
4609
|
this.linksDistance = particles.links.distance * ratio;
|
|
4324
4610
|
this.linksWidth = particles.links.width * ratio;
|
|
4325
|
-
this.sizeAnimationSpeed = particles.size.animation.speed * ratio;
|
|
4326
|
-
this.maxSpeed = particles.move.gravity.maxSpeed * ratio;
|
|
4611
|
+
this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;
|
|
4612
|
+
this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;
|
|
4327
4613
|
if (particles.orbit.radius !== undefined) {
|
|
4328
|
-
this.orbitRadius = particles.orbit.radius * this.container.retina.pixelRatio;
|
|
4614
|
+
this.orbitRadius = getRangeValue(particles.orbit.radius) * this.container.retina.pixelRatio;
|
|
4329
4615
|
}
|
|
4330
4616
|
const modes = options.interactivity.modes;
|
|
4331
4617
|
this.connectModeDistance = modes.connect.distance * ratio;
|
|
@@ -4345,19 +4631,19 @@
|
|
|
4345
4631
|
const ratio = this.pixelRatio;
|
|
4346
4632
|
const moveDistance = options.move.distance;
|
|
4347
4633
|
const props = particle.retina;
|
|
4348
|
-
props.attractDistance = options.move.attract.distance * ratio;
|
|
4634
|
+
props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;
|
|
4349
4635
|
props.linksDistance = options.links.distance * ratio;
|
|
4350
4636
|
props.linksWidth = options.links.width * ratio;
|
|
4351
4637
|
props.moveDrift = getRangeValue(options.move.drift) * ratio;
|
|
4352
4638
|
props.moveSpeed = getRangeValue(options.move.speed) * ratio;
|
|
4353
|
-
props.sizeAnimationSpeed = options.size.animation.speed * ratio;
|
|
4639
|
+
props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;
|
|
4354
4640
|
if (particle.spin) {
|
|
4355
4641
|
props.spinAcceleration = getRangeValue(options.move.spin.acceleration) * ratio;
|
|
4356
4642
|
}
|
|
4357
4643
|
const maxDistance = props.maxDistance;
|
|
4358
4644
|
maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;
|
|
4359
4645
|
maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;
|
|
4360
|
-
props.maxSpeed = options.move.gravity.maxSpeed * ratio;
|
|
4646
|
+
props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;
|
|
4361
4647
|
}
|
|
4362
4648
|
handleMotionChange(mediaQuery) {
|
|
4363
4649
|
const options = this.container.actualOptions;
|
|
@@ -5119,7 +5405,7 @@
|
|
|
5119
5405
|
const twinkling = Math.random() < twinkleFreq;
|
|
5120
5406
|
if (twinkling && twinkleRgb !== undefined) {
|
|
5121
5407
|
colorLine = twinkleRgb;
|
|
5122
|
-
opacity = twinkle.opacity;
|
|
5408
|
+
opacity = NumberUtils_getRangeValue(twinkle.opacity);
|
|
5123
5409
|
}
|
|
5124
5410
|
}
|
|
5125
5411
|
if (!colorLine) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.
|
|
2
|
-
!function(t,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var i=n();for(var e in i)("object"==typeof exports?exports:t)[e]=i[e]}}(window,(function(){return function(){"use strict";var t={d:function(n,i){for(var e in i)t.o(i,e)&&!t.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:i[e]})},o:function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},n={};function i(t,n,i,e){return Math.floor((t*i+n*e)/(i+e))}function e(t){const n=s(t);let i=o(t);return n===i&&(i=0),Math.random()*(n-i)+i}function o(t){return"number"==typeof t?t:t.min}function s(t){return"number"==typeof t?t:t.max}function r(t,n){if(t===n||void 0===n&&"number"==typeof t)return t;const i=o(t),e=s(t);return void 0!==n?{min:Math.min(i,n),max:Math.max(e,n)}:r(i,e)}function a(t,n){const i=t.x-n.x,e=t.y-n.y;return{dx:i,dy:e,distance:Math.sqrt(i*i+e*e)}}function l(t,n){return a(t,n).distance}function c(t,n,i=!0){return t[void 0!==n&&i?n%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function u(t,n,i){let e=i;return e<0&&(e+=1),e>1&&(e-=1),e<1/6?t+6*(n-t)*e:e<.5?n:e<2/3?t+(n-t)*(2/3-e)*6:t}function d(t){if(t.startsWith("rgb")){const n=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return n?{a:n.length>4?parseFloat(n[5]):1,b:parseInt(n[3],10),g:parseInt(n[2],10),r:parseInt(n[1],10)}:void 0}if(t.startsWith("hsl")){const n=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return n?function(t){const n=f(t);return{a:t.a,b:n.b,g:n.g,r:n.r}}({a:n.length>4?parseFloat(n[5]):1,h:parseInt(n[1],10),l:parseInt(n[3],10),s:parseInt(n[2],10)}):void 0}if(t.startsWith("hsv")){const n=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return n?function(t){const n=p(t);return{a:t.a,b:n.b,g:n.g,r:n.r}}({a:n.length>4?parseFloat(n[5]):1,h:parseInt(n[1],10),s:parseInt(n[2],10),v:parseInt(n[3],10)}):void 0}{const n=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,i=t.replace(n,((t,n,i,e,o)=>n+n+i+i+e+e+(void 0!==o?o+o:""))),e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(i);return e?{a:void 0!==e[4]?parseInt(e[4],16)/255:1,b:parseInt(e[3],16),g:parseInt(e[2],16),r:parseInt(e[1],16)}:void 0}}function h(t,n,i=!0){var e,o,s;if(void 0===t)return;const r="string"==typeof t?{value:t}:t;let a;if("string"==typeof r.value)a=r.value===M.randomColorValue?y():function(t){return d(t)}(r.value);else if(r.value instanceof Array){a=h({value:c(r.value,n,i)})}else{const t=r.value,n=null!==(e=t.rgb)&&void 0!==e?e:r.value;if(void 0!==n.r)a=n;else{const n=null!==(o=t.hsl)&&void 0!==o?o:r.value;if(void 0!==n.h&&void 0!==n.l)a=f(n);else{const n=null!==(s=t.hsv)&&void 0!==s?s:r.value;void 0!==n.h&&void 0!==n.v&&(a=p(n))}}}return a}function f(t){const n={b:0,g:0,r:0},i={h:t.h/360,l:t.l/100,s:t.s/100};if(0===i.s)n.b=i.l,n.g=i.l,n.r=i.l;else{const t=i.l<.5?i.l*(1+i.s):i.l+i.s-i.l*i.s,e=2*i.l-t;n.r=u(e,t,i.h+1/3),n.g=u(e,t,i.h),n.b=u(e,t,i.h-1/3)}return n.r=Math.floor(255*n.r),n.g=Math.floor(255*n.g),n.b=Math.floor(255*n.b),n}function p(t){const n={b:0,g:0,r:0},i=t.h/60,e=t.s/100,o=t.v/100,s=o*e,r=s*(1-Math.abs(i%2-1));let a;if(i>=0&&i<=1?a={r:s,g:r,b:0}:i>1&&i<=2?a={r:r,g:s,b:0}:i>2&&i<=3?a={r:0,g:s,b:r}:i>3&&i<=4?a={r:0,g:r,b:s}:i>4&&i<=5?a={r:r,g:0,b:s}:i>5&&i<=6&&(a={r:s,g:0,b:r}),a){const t=o-s;n.r=Math.floor(255*(a.r+t)),n.g=Math.floor(255*(a.g+t)),n.b=Math.floor(255*(a.b+t))}return n}function y(t){const n=null!=t?t:0;return{b:Math.floor(e(r(n,256))),g:Math.floor(e(r(n,256))),r:Math.floor(e(r(n,256)))}}function g(t,n){return`rgba(${t.r}, ${t.g}, ${t.b}, ${null!=n?n:1})`}function v(t,n,e){var o,s;if(e===M.randomColorValue)return y();if("mid"!==e)return e;{const e=null!==(o=t.getFillColor())&&void 0!==o?o:t.getStrokeColor(),r=null!==(s=null==n?void 0:n.getFillColor())&&void 0!==s?s:null==n?void 0:n.getStrokeColor();if(e&&r&&n)return function(t,n,e,o){let s=t,r=n;return void 0===s.r&&(s=f(t)),void 0===r.r&&(r=f(n)),{b:i(s.b,r.b,e,o),g:i(s.g,r.g,e,o),r:i(s.r,r.r,e,o)}}(e,r,t.getRadius(),n.getRadius());{const t=null!=e?e:r;if(t)return f(t)}}}function x(t,n,i){t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(i.x,i.y),t.closePath()}t.r(n),t.d(n,{loadParticlesLinksInteraction:function(){return I}});class k{constructor(t,n){this.position={x:t,y:n}}}class b extends k{constructor(t,n,i){super(t,n),this.radius=i}contains(t){return l(t,this.position)<=this.radius}intersects(t){const n=t,i=t,e=this.position,o=t.position,s=Math.abs(o.x-e.x),r=Math.abs(o.y-e.y),a=this.radius;if(void 0!==i.radius){return a+i.radius>Math.sqrt(s*s+r+r)}if(void 0!==n.size){const t=n.size.width,i=n.size.height,e=Math.pow(s-t,2)+Math.pow(r-i,2);return!(s>a+t||r>a+i)&&(s<=t||r<=i||e<=a*a)}return!1}}class w extends k{constructor(t,n,i,e){super(t,n),this.size={height:e,width:i}}contains(t){const n=this.size.width,i=this.size.height,e=this.position;return t.x>=e.x&&t.x<=e.x+n&&t.y>=e.y&&t.y<=e.y+i}intersects(t){const n=t,i=t,e=this.size.width,o=this.size.height,s=this.position,r=t.position;if(void 0!==i.radius)return i.intersects(this);if(void 0!==n.size){const t=n.size,i=t.width,a=t.height;return r.x<s.x+e&&r.x+i>s.x&&r.y<s.y+o&&r.y+a>s.y}return!1}}class m extends b{constructor(t,n,i,e){super(t,n,i),this.canvasSize=e,this.canvasSize={height:e.height,width:e.width}}contains(t){if(super.contains(t))return!0;const n={x:t.x-this.canvasSize.width,y:t.y};if(super.contains(n))return!0;const i={x:t.x-this.canvasSize.width,y:t.y-this.canvasSize.height};if(super.contains(i))return!0;const e={x:t.x,y:t.y-this.canvasSize.height};return super.contains(e)}intersects(t){if(super.intersects(t))return!0;const n=t,i=t,e={x:t.position.x-this.canvasSize.width,y:t.position.y-this.canvasSize.height};if(void 0!==i.radius){const t=new b(e.x,e.y,2*i.radius);return super.intersects(t)}if(void 0!==n.size){const t=new w(e.x,e.y,2*n.size.width,2*n.size.height);return super.intersects(t)}return!1}}class M{}M.generatedAttribute="generated",M.randomColorValue="random",M.midColorValue="mid",M.touchEndEvent="touchend",M.mouseDownEvent="mousedown",M.mouseUpEvent="mouseup",M.mouseMoveEvent="mousemove",M.touchStartEvent="touchstart",M.touchMoveEvent="touchmove",M.mouseLeaveEvent="mouseleave",M.mouseOutEvent="mouseout",M.touchCancelEvent="touchcancel",M.resizeEvent="resize",M.visibilityChangeEvent="visibilitychange",M.noPolygonDataLoaded="No polygon data loaded.",M.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function C(t,n,i,e,o){let s=l(t,n);if(!o||s<=i)return s;if(s=l(t,{x:n.x-e.width,y:n.y}),s<=i)return s;if(s=l(t,{x:n.x-e.width,y:n.y-e.height}),s<=i)return s;return s=l(t,{x:n.x,y:n.y-e.height}),s}new WeakMap;class z extends class{constructor(t){this.container=t,this.type=1}}{constructor(t){super(t)}isEnabled(t){return t.options.links.enable}reset(){}async interact(t){var n;t.links=[];const i=t.getPosition(),e=this.container,o=e.canvas.size;if(i.x<0||i.y<0||i.x>o.width||i.y>o.height)return;const s=t.options.links,r=s.opacity,a=null!==(n=t.retina.linksDistance)&&void 0!==n?n:e.retina.linksDistance,l=s.warp,c=l?new m(i.x,i.y,a,o):new b(i.x,i.y,a),u=e.particles.quadTree.query(c);for(const n of u){const e=n.options.links;if(t===n||!e.enable||s.id!==e.id||n.spawning||n.destroyed||-1!==t.links.map((t=>t.destination)).indexOf(n)||-1!==n.links.map((t=>t.destination)).indexOf(t))continue;const c=n.getPosition();if(c.x<0||c.y<0||c.x>o.width||c.y>o.height)continue;const u=C(i,c,a,o,l&&e.warp);if(u>a)return;const d=(1-u/a)*r;this.setColor(t),t.links.push({destination:n,opacity:d})}}setColor(t){const n=this.container,i=t.options.links;let e=void 0===i.id?n.particles.linksColor:n.particles.linksColors.get(i.id);if(!e){e=function(t,n,i){const e="string"==typeof t?t:t.value;return e===M.randomColorValue?i?h({value:e}):n?M.randomColorValue:M.midColorValue:h({value:e})}(i.color,i.blink,i.consent),void 0===i.id?n.particles.linksColor=e:n.particles.linksColors.set(i.id,e)}}}class P{constructor(t){this.container=t}particleCreated(t){t.links=[]}particleDestroyed(t){t.links=[]}drawParticle(t,n){const i=n,e=this.container,o=e.particles,s=n.options;if(i.links.length>0){t.save();const n=i.links.filter((t=>e.particles.getLinkFrequency(i,t.destination)<=s.links.frequency));for(const t of n){const r=t.destination;if(s.links.triangles.enable){const a=n.map((t=>t.destination)),l=r.links.filter((t=>e.particles.getLinkFrequency(r,t.destination)<=r.options.links.frequency&&a.indexOf(t.destination)>=0));if(l.length)for(const n of l){const e=n.destination;o.getTriangleFrequency(i,r,e)>s.links.triangles.frequency||this.drawLinkTriangle(i,t,n)}}t.opacity>0&&e.retina.linksWidth>0&&this.drawLinkLine(i,t)}t.restore()}}drawLinkTriangle(t,n,i){var e;const o=this.container,s=o.actualOptions,r=n.destination,a=i.destination,c=t.options.links.triangles,u=null!==(e=c.opacity)&&void 0!==e?e:(n.opacity+i.opacity)/2;if(u<=0)return;const d=t.getPosition(),f=r.getPosition(),p=a.getPosition();o.canvas.draw((n=>{if(l(d,f)>o.retina.linksDistance||l(p,f)>o.retina.linksDistance||l(p,d)>o.retina.linksDistance)return;let i=h(c.color);if(!i){const n=t.options.links,e=void 0!==n.id?o.particles.linksColors.get(n.id):o.particles.linksColor;i=v(t,r,e)}i&&function(t,n,i,e,o,s,r,a){!function(t,n,i,e){t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(i.x,i.y),t.lineTo(e.x,e.y),t.closePath()}(t,n,i,e),o&&(t.globalCompositeOperation=s),t.fillStyle=g(r,a),t.fill()}(n,d,f,p,s.backgroundMask.enable,s.backgroundMask.composite,i,u)}))}drawLinkLine(t,n){const i=this.container,e=i.actualOptions,o=n.destination;let s=n.opacity;const r=t.getPosition(),c=o.getPosition();i.canvas.draw((n=>{var u,d;let f;const p=t.options.twinkle.lines;if(p.enable){const t=p.frequency,n=h(p.color);Math.random()<t&&void 0!==n&&(f=n,s=p.opacity)}if(!f){const n=t.options.links,e=void 0!==n.id?i.particles.linksColors.get(n.id):i.particles.linksColor;f=v(t,o,e)}if(!f)return;const y=null!==(u=t.retina.linksWidth)&&void 0!==u?u:i.retina.linksWidth,k=null!==(d=t.retina.linksDistance)&&void 0!==d?d:i.retina.linksDistance;!function(t,n,i,e,o,s,r,c,u,d,f,p){let y=!1;if(l(i,e)<=o)x(t,i,e),y=!0;else if(r){let n,r;const l=a(i,{x:e.x-s.width,y:e.y});if(l.distance<=o){const t=i.y-l.dy/l.dx*i.x;n={x:0,y:t},r={x:s.width,y:t}}else{const t=a(i,{x:e.x,y:e.y-s.height});if(t.distance<=o){const e=-(i.y-t.dy/t.dx*i.x)/(t.dy/t.dx);n={x:e,y:0},r={x:e,y:s.height}}else{const t=a(i,{x:e.x-s.width,y:e.y-s.height});if(t.distance<=o){const e=i.y-t.dy/t.dx*i.x;n={x:-e/(t.dy/t.dx),y:e},r={x:n.x+s.width,y:n.y+s.height}}}}n&&r&&(x(t,i,n),x(t,e,r),y=!0)}if(y){if(t.lineWidth=n,c&&(t.globalCompositeOperation=u),t.strokeStyle=g(d,f),p.enable){const n=h(p.color);n&&(t.shadowBlur=p.blur,t.shadowColor=g(n))}t.stroke()}}(n,y,r,c,k,i.canvas.size,t.options.links.warp,e.backgroundMask.enable,e.backgroundMask.composite,f,s,t.options.links.shadow)}))}}class S{constructor(){this.id="links"}getPlugin(t){return new P(t)}needsPlugin(){return!0}loadOptions(){}}async function I(t){await async function(t){await t.addInteractor("particlesLinks",(t=>new z(t)))}(t),await async function(t){const n=new S;await t.addPlugin(n)}(t)}return n}()}));
|
|
1
|
+
/*! tsParticles v1.42.2 by Matteo Bruni */
|
|
2
|
+
!function(t,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var i=n();for(var e in i)("object"==typeof exports?exports:t)[e]=i[e]}}(window,(function(){return function(){"use strict";var t={d:function(n,i){for(var e in i)t.o(i,e)&&!t.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:i[e]})},o:function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},n={};function i(t,n,i,e){return Math.floor((t*i+n*e)/(i+e))}function e(t){const n=r(t);let i=s(t);return n===i&&(i=0),Math.random()*(n-i)+i}function o(t){return"number"==typeof t?t:e(t)}function s(t){return"number"==typeof t?t:t.min}function r(t){return"number"==typeof t?t:t.max}function a(t,n){if(t===n||void 0===n&&"number"==typeof t)return t;const i=s(t),e=r(t);return void 0!==n?{min:Math.min(i,n),max:Math.max(e,n)}:a(i,e)}function l(t,n){const i=t.x-n.x,e=t.y-n.y;return{dx:i,dy:e,distance:Math.sqrt(i*i+e*e)}}function c(t,n){return l(t,n).distance}function u(t,n,i=!0){return t[void 0!==n&&i?n%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function d(t,n,i){let e=i;return e<0&&(e+=1),e>1&&(e-=1),e<1/6?t+6*(n-t)*e:e<.5?n:e<2/3?t+(n-t)*(2/3-e)*6:t}function h(t){if(t.startsWith("rgb")){const n=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return n?{a:n.length>4?parseFloat(n[5]):1,b:parseInt(n[3],10),g:parseInt(n[2],10),r:parseInt(n[1],10)}:void 0}if(t.startsWith("hsl")){const n=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return n?function(t){const n=p(t);return{a:t.a,b:n.b,g:n.g,r:n.r}}({a:n.length>4?parseFloat(n[5]):1,h:parseInt(n[1],10),l:parseInt(n[3],10),s:parseInt(n[2],10)}):void 0}if(t.startsWith("hsv")){const n=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return n?function(t){const n=y(t);return{a:t.a,b:n.b,g:n.g,r:n.r}}({a:n.length>4?parseFloat(n[5]):1,h:parseInt(n[1],10),s:parseInt(n[2],10),v:parseInt(n[3],10)}):void 0}{const n=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,i=t.replace(n,((t,n,i,e,o)=>n+n+i+i+e+e+(void 0!==o?o+o:""))),e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(i);return e?{a:void 0!==e[4]?parseInt(e[4],16)/255:1,b:parseInt(e[3],16),g:parseInt(e[2],16),r:parseInt(e[1],16)}:void 0}}function f(t,n,i=!0){var e,o,s;if(void 0===t)return;const r="string"==typeof t?{value:t}:t;let a;if("string"==typeof r.value)a=r.value===C.randomColorValue?g():function(t){return h(t)}(r.value);else if(r.value instanceof Array){a=f({value:u(r.value,n,i)})}else{const t=r.value,n=null!==(e=t.rgb)&&void 0!==e?e:r.value;if(void 0!==n.r)a=n;else{const n=null!==(o=t.hsl)&&void 0!==o?o:r.value;if(void 0!==n.h&&void 0!==n.l)a=p(n);else{const n=null!==(s=t.hsv)&&void 0!==s?s:r.value;void 0!==n.h&&void 0!==n.v&&(a=y(n))}}}return a}function p(t){const n={b:0,g:0,r:0},i={h:t.h/360,l:t.l/100,s:t.s/100};if(0===i.s)n.b=i.l,n.g=i.l,n.r=i.l;else{const t=i.l<.5?i.l*(1+i.s):i.l+i.s-i.l*i.s,e=2*i.l-t;n.r=d(e,t,i.h+1/3),n.g=d(e,t,i.h),n.b=d(e,t,i.h-1/3)}return n.r=Math.floor(255*n.r),n.g=Math.floor(255*n.g),n.b=Math.floor(255*n.b),n}function y(t){const n={b:0,g:0,r:0},i=t.h/60,e=t.s/100,o=t.v/100,s=o*e,r=s*(1-Math.abs(i%2-1));let a;if(i>=0&&i<=1?a={r:s,g:r,b:0}:i>1&&i<=2?a={r:r,g:s,b:0}:i>2&&i<=3?a={r:0,g:s,b:r}:i>3&&i<=4?a={r:0,g:r,b:s}:i>4&&i<=5?a={r:r,g:0,b:s}:i>5&&i<=6&&(a={r:s,g:0,b:r}),a){const t=o-s;n.r=Math.floor(255*(a.r+t)),n.g=Math.floor(255*(a.g+t)),n.b=Math.floor(255*(a.b+t))}return n}function g(t){const n=null!=t?t:0;return{b:Math.floor(e(a(n,256))),g:Math.floor(e(a(n,256))),r:Math.floor(e(a(n,256)))}}function v(t,n){return`rgba(${t.r}, ${t.g}, ${t.b}, ${null!=n?n:1})`}function x(t,n,e){var o,s;if(e===C.randomColorValue)return g();if("mid"!==e)return e;{const e=null!==(o=t.getFillColor())&&void 0!==o?o:t.getStrokeColor(),r=null!==(s=null==n?void 0:n.getFillColor())&&void 0!==s?s:null==n?void 0:n.getStrokeColor();if(e&&r&&n)return function(t,n,e,o){let s=t,r=n;return void 0===s.r&&(s=p(t)),void 0===r.r&&(r=p(n)),{b:i(s.b,r.b,e,o),g:i(s.g,r.g,e,o),r:i(s.r,r.r,e,o)}}(e,r,t.getRadius(),n.getRadius());{const t=null!=e?e:r;if(t)return p(t)}}}function k(t,n,i){t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(i.x,i.y),t.closePath()}t.r(n),t.d(n,{loadParticlesLinksInteraction:function(){return W}});class b{constructor(t,n){this.position={x:t,y:n}}}class w extends b{constructor(t,n,i){super(t,n),this.radius=i}contains(t){return c(t,this.position)<=this.radius}intersects(t){const n=t,i=t,e=this.position,o=t.position,s=Math.abs(o.x-e.x),r=Math.abs(o.y-e.y),a=this.radius;if(void 0!==i.radius){return a+i.radius>Math.sqrt(s*s+r+r)}if(void 0!==n.size){const t=n.size.width,i=n.size.height,e=Math.pow(s-t,2)+Math.pow(r-i,2);return!(s>a+t||r>a+i)&&(s<=t||r<=i||e<=a*a)}return!1}}class m extends b{constructor(t,n,i,e){super(t,n),this.size={height:e,width:i}}contains(t){const n=this.size.width,i=this.size.height,e=this.position;return t.x>=e.x&&t.x<=e.x+n&&t.y>=e.y&&t.y<=e.y+i}intersects(t){const n=t,i=t,e=this.size.width,o=this.size.height,s=this.position,r=t.position;if(void 0!==i.radius)return i.intersects(this);if(void 0!==n.size){const t=n.size,i=t.width,a=t.height;return r.x<s.x+e&&r.x+i>s.x&&r.y<s.y+o&&r.y+a>s.y}return!1}}class M extends w{constructor(t,n,i,e){super(t,n,i),this.canvasSize=e,this.canvasSize={height:e.height,width:e.width}}contains(t){if(super.contains(t))return!0;const n={x:t.x-this.canvasSize.width,y:t.y};if(super.contains(n))return!0;const i={x:t.x-this.canvasSize.width,y:t.y-this.canvasSize.height};if(super.contains(i))return!0;const e={x:t.x,y:t.y-this.canvasSize.height};return super.contains(e)}intersects(t){if(super.intersects(t))return!0;const n=t,i=t,e={x:t.position.x-this.canvasSize.width,y:t.position.y-this.canvasSize.height};if(void 0!==i.radius){const t=new w(e.x,e.y,2*i.radius);return super.intersects(t)}if(void 0!==n.size){const t=new m(e.x,e.y,2*n.size.width,2*n.size.height);return super.intersects(t)}return!1}}class C{}C.generatedAttribute="generated",C.randomColorValue="random",C.midColorValue="mid",C.touchEndEvent="touchend",C.mouseDownEvent="mousedown",C.mouseUpEvent="mouseup",C.mouseMoveEvent="mousemove",C.touchStartEvent="touchstart",C.touchMoveEvent="touchmove",C.mouseLeaveEvent="mouseleave",C.mouseOutEvent="mouseout",C.touchCancelEvent="touchcancel",C.resizeEvent="resize",C.visibilityChangeEvent="visibilitychange",C.noPolygonDataLoaded="No polygon data loaded.",C.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function z(t,n,i,e,o){let s=c(t,n);if(!o||s<=i)return s;if(s=c(t,{x:n.x-e.width,y:n.y}),s<=i)return s;if(s=c(t,{x:n.x-e.width,y:n.y-e.height}),s<=i)return s;return s=c(t,{x:n.x,y:n.y-e.height}),s}new WeakMap;class P extends class{constructor(t){this.container=t,this.type=1}}{constructor(t){super(t)}isEnabled(t){return t.options.links.enable}reset(){}async interact(t){var n;t.links=[];const i=t.getPosition(),e=this.container,o=e.canvas.size;if(i.x<0||i.y<0||i.x>o.width||i.y>o.height)return;const s=t.options.links,r=s.opacity,a=null!==(n=t.retina.linksDistance)&&void 0!==n?n:e.retina.linksDistance,l=s.warp,c=l?new M(i.x,i.y,a,o):new w(i.x,i.y,a),u=e.particles.quadTree.query(c);for(const n of u){const e=n.options.links;if(t===n||!e.enable||s.id!==e.id||n.spawning||n.destroyed||-1!==t.links.map((t=>t.destination)).indexOf(n)||-1!==n.links.map((t=>t.destination)).indexOf(t))continue;const c=n.getPosition();if(c.x<0||c.y<0||c.x>o.width||c.y>o.height)continue;const u=z(i,c,a,o,l&&e.warp);if(u>a)return;const d=(1-u/a)*r;this.setColor(t),t.links.push({destination:n,opacity:d})}}setColor(t){const n=this.container,i=t.options.links;let e=void 0===i.id?n.particles.linksColor:n.particles.linksColors.get(i.id);if(!e){e=function(t,n,i){const e="string"==typeof t?t:t.value;return e===C.randomColorValue?i?f({value:e}):n?C.randomColorValue:C.midColorValue:f({value:e})}(i.color,i.blink,i.consent),void 0===i.id?n.particles.linksColor=e:n.particles.linksColors.set(i.id,e)}}}class S{constructor(t){this.container=t}particleCreated(t){t.links=[]}particleDestroyed(t){t.links=[]}drawParticle(t,n){const i=n,e=this.container,o=e.particles,s=n.options;if(i.links.length>0){t.save();const n=i.links.filter((t=>e.particles.getLinkFrequency(i,t.destination)<=s.links.frequency));for(const t of n){const r=t.destination;if(s.links.triangles.enable){const a=n.map((t=>t.destination)),l=r.links.filter((t=>e.particles.getLinkFrequency(r,t.destination)<=r.options.links.frequency&&a.indexOf(t.destination)>=0));if(l.length)for(const n of l){const e=n.destination;o.getTriangleFrequency(i,r,e)>s.links.triangles.frequency||this.drawLinkTriangle(i,t,n)}}t.opacity>0&&e.retina.linksWidth>0&&this.drawLinkLine(i,t)}t.restore()}}drawLinkTriangle(t,n,i){var e;const o=this.container,s=o.actualOptions,r=n.destination,a=i.destination,l=t.options.links.triangles,u=null!==(e=l.opacity)&&void 0!==e?e:(n.opacity+i.opacity)/2;if(u<=0)return;const d=t.getPosition(),h=r.getPosition(),p=a.getPosition();o.canvas.draw((n=>{if(c(d,h)>o.retina.linksDistance||c(p,h)>o.retina.linksDistance||c(p,d)>o.retina.linksDistance)return;let i=f(l.color);if(!i){const n=t.options.links,e=void 0!==n.id?o.particles.linksColors.get(n.id):o.particles.linksColor;i=x(t,r,e)}i&&function(t,n,i,e,o,s,r,a){!function(t,n,i,e){t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(i.x,i.y),t.lineTo(e.x,e.y),t.closePath()}(t,n,i,e),o&&(t.globalCompositeOperation=s),t.fillStyle=v(r,a),t.fill()}(n,d,h,p,s.backgroundMask.enable,s.backgroundMask.composite,i,u)}))}drawLinkLine(t,n){const i=this.container,e=i.actualOptions,s=n.destination;let r=n.opacity;const a=t.getPosition(),u=s.getPosition();i.canvas.draw((n=>{var d,h;let p;const y=t.options.twinkle.lines;if(y.enable){const t=y.frequency,n=f(y.color);Math.random()<t&&void 0!==n&&(p=n,r=o(y.opacity))}if(!p){const n=t.options.links,e=void 0!==n.id?i.particles.linksColors.get(n.id):i.particles.linksColor;p=x(t,s,e)}if(!p)return;const g=null!==(d=t.retina.linksWidth)&&void 0!==d?d:i.retina.linksWidth,b=null!==(h=t.retina.linksDistance)&&void 0!==h?h:i.retina.linksDistance;!function(t,n,i,e,o,s,r,a,u,d,h,p){let y=!1;if(c(i,e)<=o)k(t,i,e),y=!0;else if(r){let n,r;const a=l(i,{x:e.x-s.width,y:e.y});if(a.distance<=o){const t=i.y-a.dy/a.dx*i.x;n={x:0,y:t},r={x:s.width,y:t}}else{const t=l(i,{x:e.x,y:e.y-s.height});if(t.distance<=o){const e=-(i.y-t.dy/t.dx*i.x)/(t.dy/t.dx);n={x:e,y:0},r={x:e,y:s.height}}else{const t=l(i,{x:e.x-s.width,y:e.y-s.height});if(t.distance<=o){const e=i.y-t.dy/t.dx*i.x;n={x:-e/(t.dy/t.dx),y:e},r={x:n.x+s.width,y:n.y+s.height}}}}n&&r&&(k(t,i,n),k(t,e,r),y=!0)}if(y){if(t.lineWidth=n,a&&(t.globalCompositeOperation=u),t.strokeStyle=v(d,h),p.enable){const n=f(p.color);n&&(t.shadowBlur=p.blur,t.shadowColor=v(n))}t.stroke()}}(n,g,a,u,b,i.canvas.size,t.options.links.warp,e.backgroundMask.enable,e.backgroundMask.composite,p,r,t.options.links.shadow)}))}}class I{constructor(){this.id="links"}getPlugin(t){return new S(t)}needsPlugin(){return!0}loadOptions(){}}async function W(t){await async function(t){await t.addInteractor("particlesLinks",(t=>new P(t)))}(t),await async function(t){const n=new I;await t.addPlugin(n)}(t)}return n}()}));
|