{"version":3,"file":"a202ef8e3960392ced0638b47ed99bbc60b417b3-5e5c13b70ebba259ec7a.js","mappings":"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","sources":["webpack://vie_gatsby/./node_modules/fast-deep-equal/react.js","webpack://vie_gatsby/./node_modules/react-tsparticles/esm/Particles.js","webpack://vie_gatsby/./node_modules/react-tsparticles/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/EventDispatcher.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Vector3d.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Vector.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/NumberUtils.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/Utils.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/ColorUtils.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/CanvasUtils.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Constants.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Canvas.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/EventListeners.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/FrameManager.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/OptionsColor.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Background/Background.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMask.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/FullScreen/FullScreen.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/ClickEvent.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/DivEvent.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Parallax.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/HoverEvent.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Events.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Modes.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Interactivity.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/ManualParticle.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Motion/MotionReduce.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Motion/Motion.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Responsive.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Theme/ThemeDefault.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Theme/Theme.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/ColorAnimation.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/HslAnimation.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/AnimatableColor.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Random.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/ValueWithRandom.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/Collisions.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAngle.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAttract.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveGravity.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Path/MovePathDelay.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Path/MovePath.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveTrail.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/OutModes.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Spin.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Move.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/AnimationOptions.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/Opacity.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesDensity.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesNumber.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shadow.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shape/Shape.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/SizeAnimation.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/Size.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/Stroke.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/ZIndex/ZIndex.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Particles/ParticlesOptions.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/OptionsUtils.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Options/Classes/Options.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/InteractionManager.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Particle.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Point.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Range.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Circle.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Rectangle.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/QuadTree.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Particles.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Retina.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Container.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Loader.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/Plugins.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/ExternalInteractorBase.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Core/Utils/ParticlesInteractorBase.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/RgbColorManager.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/Utils/HslColorManager.js","webpack://vie_gatsby/./node_modules/tsparticles-engine/esm/engine.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/pathseg.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/AbsorberSizeLimit.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/AbsorberSize.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/Absorber.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-absorbers/esm/AbsorberInstance.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-absorbers/esm/Absorbers.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-absorbers/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-destroy/esm/Options/Classes/DestroyBounds.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-destroy/esm/Options/Classes/SplitFactor.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-destroy/esm/Options/Classes/SplitRate.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-destroy/esm/Options/Classes/Split.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-destroy/esm/Options/Classes/Destroy.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-destroy/esm/DestroyUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/Shapes/Circle/CircleShape.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterLife.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterRate.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterSize.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/Options/Classes/Emitter.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/EmitterInstance.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/Emitters.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/ShapeManager.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/Shapes/Square/SquareShape.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-emitters/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-trail/esm/Options/Classes/Trail.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-trail/esm/TrailMaker.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskDrawStroke.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskDraw.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskInline.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskLocalSvg.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskMove.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMask.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/utils.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/PolygonMaskInstance.js","webpack://vie_gatsby/./node_modules/tsparticles-plugin-polygon-mask/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-roll/esm/Options/Classes/RollLight.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-roll/esm/Options/Classes/Roll.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-roll/esm/RollUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-particles.js/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-angle/esm/Options/Classes/RotateAnimation.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-angle/esm/Options/Classes/Rotate.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-angle/esm/RotateUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-move-base/esm/BaseMover.js","webpack://vie_gatsby/./node_modules/tsparticles-move-base/esm/Utils.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-circle/esm/CircleDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-color/esm/ColorUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-attract/esm/Options/Classes/Attract.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-attract/esm/Attractor.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bounce/esm/Options/Classes/Bounce.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bounce/esm/Bouncer.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bubble/esm/Options/Classes/BubbleBase.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bubble/esm/Options/Classes/BubbleDiv.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bubble/esm/Options/Classes/Bubble.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bubble/esm/Bubbler.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-connect/esm/Options/Classes/ConnectLinks.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-connect/esm/Options/Classes/Connect.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-connect/esm/Connector.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-grab/esm/Options/Classes/GrabLinks.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-grab/esm/Options/Classes/Grab.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-grab/esm/Grabber.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-pause/esm/Pauser.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-push/esm/Options/Classes/Push.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-push/esm/Pusher.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-remove/esm/Options/Classes/Remove.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-remove/esm/Remover.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-repulse/esm/Options/Classes/RepulseBase.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-repulse/esm/Options/Classes/RepulseDiv.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-repulse/esm/Options/Classes/Repulse.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-repulse/esm/Repulser.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-slow/esm/Options/Classes/Slow.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-slow/esm/Slower.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-image/esm/Utils.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-image/esm/ImageDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-life/esm/Options/Classes/LifeDelay.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-life/esm/Options/Classes/LifeDuration.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-life/esm/Options/Classes/Life.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-life/esm/LifeUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-line/esm/LineDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-opacity/esm/OpacityUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-out-modes/esm/BounceOutMode.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-out-modes/esm/Utils.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-out-modes/esm/DestroyOutMode.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-out-modes/esm/NoneOutMode.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-out-modes/esm/OutOutMode.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-out-modes/esm/OutOfCanvasUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-move-parallax/esm/ParallaxMover.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-attract/esm/Attractor.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-collisions/esm/Bounce.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-collisions/esm/ResolveCollision.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-collisions/esm/Absorb.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-collisions/esm/Destroy.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-collisions/esm/Collider.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/CircleWarp.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/Options/Classes/LinksShadow.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/Options/Classes/LinksTriangle.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/Options/Classes/Links.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/Linker.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/LinkInstance.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/Utils.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/plugin.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-links/esm/interaction.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-polygon/esm/PolygonDrawerBase.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-polygon/esm/PolygonDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-polygon/esm/TriangleDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-polygon/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-size/esm/SizeUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-square/esm/SquareDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-star/esm/StarDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-stroke-color/esm/StrokeColorUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-text/esm/TextDrawer.js","webpack://vie_gatsby/./node_modules/tsparticles-slim/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-move-base/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-move-parallax/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-attract/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bounce/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-bubble/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-connect/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-grab/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-pause/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-push/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-remove/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-repulse/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-slow/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-attract/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-particles-collisions/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-circle/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-image/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-line/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-square/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-star/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-shape-text/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-life/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-opacity/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-size/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-angle/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-color/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-stroke-color/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-out-modes/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-tilt/esm/Options/Classes/TiltAnimation.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-tilt/esm/Options/Classes/Tilt.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-tilt/esm/TiltUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-twinkle/esm/Options/Classes/TwinkleValues.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-twinkle/esm/Options/Classes/Twinkle.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-twinkle/esm/TwinkleUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-wobble/esm/Options/Classes/WobbleSpeed.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-wobble/esm/Options/Classes/Wobble.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-wobble/esm/WobbleUpdater.js","webpack://vie_gatsby/./node_modules/tsparticles/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-destroy/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-roll/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-tilt/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-twinkle/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-updater-wobble/esm/index.js","webpack://vie_gatsby/./node_modules/tsparticles-interaction-external-trail/esm/index.js","webpack://vie_gatsby/./src/components/Footer/footer.jsx","webpack://vie_gatsby/./src/common/navbar.js","webpack://vie_gatsby/./src/components/Navbar/navbar.jsx","webpack://vie_gatsby/./src/config/particle-config.js","webpack://vie_gatsby/./src/config/pr-s-black.js","webpack://vie_gatsby/./src/common/mouseEffect.js","webpack://vie_gatsby/./src/components/cursor/index.jsx","webpack://vie_gatsby/./src/common/scrollToTop.js","webpack://vie_gatsby/./src/components/scrollToTop/index.jsx","webpack://vie_gatsby/./src/common/loadingPace.js","webpack://vie_gatsby/./src/components/Loading-Screen/index.jsx","webpack://vie_gatsby/./src/layouts/Dark.jsx"],"sourcesContent":["'use strict';\n\n// do not edit .js files directly - edit src/index.jst\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n if (!equal(a[key], b[key])) return false;\n }\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n};","import React, { Component } from \"react\";\nimport { tsParticles } from \"tsparticles-engine\";\nimport equal from \"fast-deep-equal/react\";\nconst defaultId = \"tsparticles\";\nexport default class Particles extends Component {\n constructor(props) {\n super(props);\n this.state = {\n init: false,\n library: undefined\n };\n }\n destroy() {\n if (!this.state.library) {\n return;\n }\n this.state.library.destroy();\n this.setState({\n library: undefined\n });\n }\n shouldComponentUpdate(nextProps) {\n return !equal(nextProps, this.props);\n }\n componentDidUpdate() {\n this.refresh();\n }\n forceUpdate() {\n this.refresh().then(() => {\n super.forceUpdate();\n });\n }\n componentDidMount() {\n (async () => {\n if (this.props.init) {\n await this.props.init(tsParticles);\n }\n this.setState({\n init: true\n }, async () => {\n await this.loadParticles();\n });\n })();\n }\n componentWillUnmount() {\n this.destroy();\n }\n render() {\n const {\n width,\n height,\n className,\n canvasClassName,\n id\n } = this.props;\n return React.createElement(\"div\", {\n className: className,\n id: id\n }, React.createElement(\"canvas\", {\n className: canvasClassName,\n style: Object.assign(Object.assign({}, this.props.style), {\n width,\n height\n })\n }));\n }\n async refresh() {\n this.destroy();\n await this.loadParticles();\n }\n async loadParticles() {\n var _a, _b, _c;\n if (!this.state.init) {\n return;\n }\n const cb = async container => {\n if (this.props.container) {\n this.props.container.current = container;\n }\n this.setState({\n library: container\n });\n if (this.props.loaded) {\n await this.props.loaded(container);\n }\n };\n const id = (_b = (_a = this.props.id) !== null && _a !== void 0 ? _a : Particles.defaultProps.id) !== null && _b !== void 0 ? _b : defaultId,\n container = this.props.url ? await tsParticles.loadJSON(id, this.props.url) : await tsParticles.load(id, (_c = this.props.params) !== null && _c !== void 0 ? _c : this.props.options);\n await cb(container);\n }\n}\nParticles.defaultProps = {\n width: \"100%\",\n height: \"100%\",\n options: {},\n style: {},\n url: undefined,\n id: defaultId\n};","import Particles from \"./Particles\";\nexport default Particles;\nexport { Particles };","export class EventDispatcher {\n constructor() {\n this._listeners = new Map();\n }\n addEventListener(type, listener) {\n var _a;\n this.removeEventListener(type, listener);\n if (!this._listeners.get(type)) {\n this._listeners.set(type, []);\n }\n (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.push(listener);\n }\n dispatchEvent(type, args) {\n var _a;\n (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.forEach(handler => handler(args));\n }\n hasEventListener(type) {\n return !!this._listeners.get(type);\n }\n removeAllEventListeners(type) {\n if (!type) {\n this._listeners = new Map();\n } else {\n this._listeners.delete(type);\n }\n }\n removeEventListener(type, listener) {\n const arr = this._listeners.get(type);\n if (!arr) {\n return;\n }\n const length = arr.length,\n idx = arr.indexOf(listener);\n if (idx < 0) {\n return;\n }\n if (length === 1) {\n this._listeners.delete(type);\n } else {\n arr.splice(idx, 1);\n }\n }\n}","export class Vector3d {\n constructor(xOrCoords, y, z) {\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n const coords3d = xOrCoords;\n this.z = coords3d.z ? coords3d.z : 0;\n } else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n this.z = z !== null && z !== void 0 ? z : 0;\n } else {\n throw new Error(\"tsParticles - Vector3d not initialized correctly\");\n }\n }\n static get origin() {\n return Vector3d.create(0, 0, 0);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this.updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this.updateFromAngle(this.angle, length);\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n }\n copy() {\n return Vector3d.clone(this);\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n this.z /= n;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n this.z *= n;\n }\n rotate(angle) {\n return Vector3d.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle), 0);\n }\n setTo(c) {\n this.x = c.x;\n this.y = c.y;\n const v3d = c;\n this.z = v3d.z ? v3d.z : 0;\n }\n sub(v) {\n return Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}","import { Vector3d } from \"./Vector3d\";\nexport class Vector extends Vector3d {\n constructor(xOrCoords, y) {\n super(xOrCoords, y, 0);\n }\n static get origin() {\n return Vector.create(0, 0);\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n}","import { Vector } from \"../Core/Utils/Vector\";\nlet _random = Math.random;\nexport function setRandom() {\n let rnd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math.random;\n _random = rnd;\n}\nexport function getRandom() {\n return clamp(_random(), 0, 1 - 1e-16);\n}\nexport function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexport function randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return getRandom() * (max - min) + min;\n}\nexport function getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexport function getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexport function getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexport function setRangeValue(source, value) {\n if (source === value || value === undefined && typeof source === \"number\") {\n return source;\n }\n const min = getRangeMin(source),\n max = getRangeMax(source);\n return value !== undefined ? {\n min: Math.min(min, value),\n max: Math.max(max, value)\n } : setRangeValue(min, max);\n}\nexport function getValue(options) {\n const random = options.random,\n {\n enable,\n minimumValue\n } = typeof random === \"boolean\" ? {\n enable: random,\n minimumValue: 0\n } : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexport function getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x,\n dy = pointA.y - pointB.y;\n return {\n dx: dx,\n dy: dy,\n distance: Math.sqrt(dx * dx + dy * dy)\n };\n}\nexport function getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexport function getParticleDirectionAngle(direction, position, center) {\n if (typeof direction === \"number\") {\n return direction * Math.PI / 180;\n } else {\n switch (direction) {\n case \"top\":\n return -Math.PI / 2;\n case \"top-right\":\n return -Math.PI / 4;\n case \"right\":\n return 0;\n case \"bottom-right\":\n return Math.PI / 4;\n case \"bottom\":\n return Math.PI / 2;\n case \"bottom-left\":\n return 3 * Math.PI / 4;\n case \"left\":\n return Math.PI;\n case \"top-left\":\n return -3 * Math.PI / 4;\n case \"inside\":\n return Math.atan2(center.y - position.y, center.x - position.x);\n case \"outside\":\n return Math.atan2(position.y - center.y, position.x - center.x);\n case \"none\":\n default:\n return getRandom() * Math.PI * 2;\n }\n }\n}\nexport function getParticleBaseVelocity(direction) {\n const baseVelocity = Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexport function collisionVelocity(v1, v2, m1, m2) {\n return Vector.create(v1.x * (m1 - m2) / (m1 + m2) + v2.x * 2 * m2 / (m1 + m2), v1.y);\n}\nexport function calcEasing(value, type) {\n switch (type) {\n case \"ease-in-quad\":\n return value ** 2;\n case \"ease-out-quad\":\n return 1 - (1 - value) ** 2;\n case \"ease-in-out-quad\":\n return value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2;\n case \"ease-in-cubic\":\n return value ** 3;\n case \"ease-out-cubic\":\n return 1 - (1 - value) ** 3;\n case \"ease-in-out-cubic\":\n return value < 0.5 ? 4 * value ** 3 : 1 - (-2 * value + 2) ** 3 / 2;\n case \"ease-in-quart\":\n return value ** 4;\n case \"ease-out-quart\":\n return 1 - (1 - value) ** 4;\n case \"ease-in-out-quart\":\n return value < 0.5 ? 8 * value ** 4 : 1 - (-2 * value + 2) ** 4 / 2;\n case \"ease-in-quint\":\n return value ** 5;\n case \"ease-out-quint\":\n return 1 - (1 - value) ** 5;\n case \"ease-in-out-quint\":\n return value < 0.5 ? 16 * value ** 5 : 1 - (-2 * value + 2) ** 5 / 2;\n case \"ease-in-expo\":\n return !value ? 0 : 2 ** (10 * value - 10);\n case \"ease-out-expo\":\n return value === 1 ? 1 : 1 - Math.pow(2, -10 * value);\n case \"ease-in-out-expo\":\n return !value ? 0 : value === 1 ? 1 : value < 0.5 ? 2 ** (20 * value - 10) / 2 : (2 - 2 ** (-20 * value + 10)) / 2;\n case \"ease-in-sine\":\n return 1 - Math.cos(value * Math.PI / 2);\n case \"ease-out-sine\":\n return Math.sin(value * Math.PI / 2);\n case \"ease-in-out-sine\":\n return -(Math.cos(Math.PI * value) - 1) / 2;\n case \"ease-in-back\":\n {\n const c1 = 1.70158,\n c3 = c1 + 1;\n return c3 * value ** 3 - c1 * value ** 2;\n }\n case \"ease-out-back\":\n {\n const c1 = 1.70158,\n c3 = c1 + 1;\n return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2);\n }\n case \"ease-in-out-back\":\n {\n const c1 = 1.70158,\n c2 = c1 * 1.525;\n return value < 0.5 ? (2 * value) ** 2 * ((c2 + 1) * 2 * value - c2) / 2 : ((2 * value - 2) ** 2 * ((c2 + 1) * (value * 2 - 2) + c2) + 2) / 2;\n }\n case \"ease-in-circ\":\n return 1 - Math.sqrt(1 - value ** 2);\n case \"ease-out-circ\":\n return Math.sqrt(1 - (value - 1) ** 2);\n case \"ease-in-out-circ\":\n return value < 0.5 ? (1 - Math.sqrt(1 - (2 * value) ** 2)) / 2 : (Math.sqrt(1 - (-2 * value + 2) ** 2) + 1) / 2;\n default:\n return value;\n }\n}\nexport function calcPositionFromSize(data) {\n var _a, _b;\n return ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined && ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? {\n x: data.position.x * data.size.width / 100,\n y: data.position.y * data.size.height / 100\n } : undefined;\n}\nexport function calcPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: ((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * 100) * data.size.width / 100,\n y: ((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * 100) * data.size.height / 100\n };\n}\nexport function calcPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nexport function calcExactPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * data.size.width,\n y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * data.size.height\n };\n}\nexport function calcExactPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcExactPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nexport function parseAlpha(input) {\n return input.endsWith(\"%\") ? parseFloat(input) / 100 : parseFloat(input);\n}","import { collisionVelocity, getDistances, getRandom, getValue } from \"./NumberUtils\";\nimport { Vector } from \"../Core/Utils/Vector\";\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = {\n bounced: false\n };\n if (pOtherSide.min < rectOtherSide.min || pOtherSide.min > rectOtherSide.max || pOtherSide.max < rectOtherSide.min || pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if (pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0 || pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, selector => {\n return element.matches(selector);\n });\n return res instanceof Array ? res.some(t => t) : res;\n}\nexport function isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexport function hasMatchMedia() {\n return !isSsr() && typeof matchMedia !== \"undefined\";\n}\nexport function safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nexport function animate() {\n return isSsr() ? callback => setTimeout(callback) : callback => (requestAnimationFrame || setTimeout)(callback);\n}\nexport function cancelAnimation() {\n return isSsr() ? handle => clearTimeout(handle) : handle => (cancelAnimationFrame || clearTimeout)(handle);\n}\nexport function isInArray(value, array) {\n return value === array || array instanceof Array && array.indexOf(value) > -1;\n}\nexport async function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : \"400\"} 36px '${font !== null && font !== void 0 ? font : \"Verdana\"}'`);\n } catch (_a) {}\n}\nexport function arrayRandomIndex(array) {\n return Math.floor(getRandom() * array.length);\n}\nexport function itemFromArray(array, index) {\n let useIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nexport function isPointInside(point, size, offset, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);\n}\nexport function areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nexport function calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius\n };\n}\nexport function deepExtend(destination) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n } else if (!sourceIsArray && (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source,\n value = sourceDict[key],\n isObject = typeof value === \"object\",\n destDict = destination;\n destDict[key] = isObject && Array.isArray(value) ? value.map(v => deepExtend(destDict[key], v)) : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexport function isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));\n}\nexport function divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, div => {\n const divMode = div.mode,\n divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nexport function singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, selector => {\n callback(selector, div);\n });\n}\nexport function divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, div => {\n return checkSelector(element, div.selectors);\n });\n}\nexport function circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector.create(getValue(p.options.bounce.horizontal), getValue(p.options.bounce.vertical))\n };\n}\nexport function circleBounce(p1, p2) {\n const {\n x: xVelocityDiff,\n y: yVelocityDiff\n } = p1.velocity.sub(p2.velocity),\n [pos1, pos2] = [p1.position, p2.position],\n {\n dx: xDist,\n dy: yDist\n } = getDistances(pos2, pos1);\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist),\n m1 = p1.mass,\n m2 = p2.mass,\n u1 = p1.velocity.rotate(angle),\n u2 = p2.velocity.rotate(angle),\n v1 = collisionVelocity(u1, u2, m1, m2),\n v2 = collisionVelocity(u2, u1, m1, m2),\n vFinal1 = v1.rotate(-angle),\n vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nexport function rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(),\n size = particle.getRadius(),\n bounds = calculateBounds(pPos, size),\n resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right\n }, {\n min: bounds.top,\n max: bounds.bottom\n }, {\n min: divBounds.left,\n max: divBounds.right\n }, {\n min: divBounds.top,\n max: divBounds.bottom\n }, particle.velocity.x, getValue(particle.options.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom\n }, {\n min: bounds.left,\n max: bounds.right\n }, {\n min: divBounds.top,\n max: divBounds.bottom\n }, {\n min: divBounds.left,\n max: divBounds.right\n }, particle.velocity.y, getValue(particle.options.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nexport function executeOnSingleOrMultiple(obj, callback) {\n return obj instanceof Array ? obj.map(item => callback(item)) : callback(obj);\n}\nexport function itemFromSingleOrMultiple(obj, index, useIndex) {\n return obj instanceof Array ? itemFromArray(obj, index, useIndex) : obj;\n}\nexport function findItemFromSingleOrMultiple(obj, callback) {\n return obj instanceof Array ? obj.find(t => callback(t)) : callback(obj) ? obj : undefined;\n}","import { getRandom, getRangeValue, mix, randomInRange, setRangeValue } from \"./NumberUtils\";\nimport { itemFromArray } from \"./Utils\";\nconst randomColorValue = \"random\",\n midColorValue = \"mid\",\n colorManagers = new Map();\nexport function addColorManager(manager) {\n colorManagers.set(manager.key, manager);\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n for (const [, manager] of colorManagers) {\n if (input.startsWith(manager.stringPrefix)) {\n return manager.parseString(input);\n }\n }\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i,\n hexFixed = input.replace(shorthandRegex, (_, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n }),\n regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i,\n result = regex.exec(hexFixed);\n return result ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16)\n } : undefined;\n}\nexport function rangeColorToRgb(input, index) {\n let useIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!input) {\n return;\n }\n const color = typeof input === \"string\" ? {\n value: input\n } : input;\n if (typeof color.value === \"string\") {\n return colorToRgb(color.value, index, useIndex);\n }\n if (color.value instanceof Array) {\n return rangeColorToRgb({\n value: itemFromArray(color.value, index, useIndex)\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToRgb(input, index) {\n let useIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!input) {\n return;\n }\n const color = typeof input === \"string\" ? {\n value: input\n } : input;\n if (typeof color.value === \"string\") {\n return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n if (color.value instanceof Array) {\n return colorToRgb({\n value: itemFromArray(color.value, index, useIndex)\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToHsl(color, index) {\n let useIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const rgb = colorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rangeColorToHsl(color, index) {\n let useIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const rgb = rangeColorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rgbToHsl(color) {\n const r1 = color.r / 255,\n g1 = color.g / 255,\n b1 = color.b / 255,\n max = Math.max(r1, g1, b1),\n min = Math.min(r1, g1, b1),\n res = {\n h: 0,\n l: (max + min) / 2,\n s: 0\n };\n if (max !== min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h = r1 === max ? (g1 - b1) / (max - min) : res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min);\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n if (res.h >= 360) {\n res.h -= 360;\n }\n return res;\n}\nexport function stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexport function stringToRgb(input) {\n return stringToRgba(input);\n}\nexport function hslToRgb(hsl) {\n const result = {\n b: 0,\n g: 0,\n r: 0\n },\n hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100\n };\n if (!hslPercent.s) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n } else {\n const q = hslPercent.l < 0.5 ? hslPercent.l * (1 + hslPercent.s) : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s,\n p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n}\nexport function hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r\n };\n}\nexport function getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n g: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n r: Math.floor(randomInRange(setRangeValue(fixedMin, 256)))\n };\n}\nexport function getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function colorMix(color1, color2, size1, size2) {\n let rgb1 = color1,\n rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: mix(rgb1.b, rgb2.b, size1, size2),\n g: mix(rgb1.g, rgb2.g, size1, size2),\n r: mix(rgb1.r, rgb2.r, size1, size2)\n };\n}\nexport function getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n } else if (linkColor === midColorValue) {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor(),\n destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n } else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n } else {\n return linkColor;\n }\n}\nexport function getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return rangeColorToRgb({\n value: color\n });\n }\n if (blink) {\n return randomColorValue;\n }\n return midColorValue;\n } else if (color === midColorValue) {\n return midColorValue;\n } else {\n return rangeColorToRgb({\n value: color\n });\n }\n}\nexport function getHslFromAnimation(animation) {\n return animation !== undefined ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value\n } : undefined;\n}\nexport function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h\n },\n s: {\n enable: false,\n value: hsl.s\n },\n l: {\n enable: false,\n value: hsl.l\n }\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = getRangeValue(colorAnimation.speed) / 100 * reduceFactor;\n colorValue.decay = 1 - getRangeValue(colorAnimation.decay);\n colorValue.status = 0;\n if (!colorAnimation.sync) {\n colorValue.velocity *= getRandom();\n colorValue.value *= getRandom();\n }\n } else {\n colorValue.velocity = 0;\n }\n}","import { getStyleFromRgb } from \"./ColorUtils\";\nexport function drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function paintBase(context, dimension, baseColor) {\n context.save();\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n context.restore();\n}\nexport function clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexport function drawParticle(data) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n const {\n container,\n context,\n particle,\n delta,\n colorStyles,\n backgroundMask,\n composite,\n radius,\n opacity,\n shadow,\n transform\n } = data;\n const pos = particle.getPosition();\n context.save();\n if (transform.a !== undefined || transform.b !== undefined || transform.c !== undefined || transform.d !== undefined) {\n context.setTransform((_a = transform.a) !== null && _a !== void 0 ? _a : 1, (_b = transform.b) !== null && _b !== void 0 ? _b : 0, (_c = transform.c) !== null && _c !== void 0 ? _c : 0, (_d = transform.d) !== null && _d !== void 0 ? _d : 1, pos.x, pos.y);\n } else {\n context.translate(pos.x, pos.y);\n }\n context.beginPath();\n const angle = particle.rotation + (particle.pathRotation ? particle.velocity.angle : 0);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const stroke = particle.stroke;\n context.lineWidth = (_e = particle.strokeWidth) !== null && _e !== void 0 ? _e : 0;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (((_f = stroke === null || stroke === void 0 ? void 0 : stroke.width) !== null && _f !== void 0 ? _f : 0) > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n context.restore();\n context.save();\n if (transform.a !== undefined || transform.b !== undefined || transform.c !== undefined || transform.d !== undefined) {\n context.setTransform((_g = transform.a) !== null && _g !== void 0 ? _g : 1, (_h = transform.b) !== null && _h !== void 0 ? _h : 0, (_j = transform.c) !== null && _j !== void 0 ? _j : 0, (_k = transform.d) !== null && _k !== void 0 ? _k : 1, pos.x, pos.y);\n } else {\n context.translate(pos.x, pos.y);\n }\n if (particle.rotation) {\n context.rotate(particle.rotation);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n}\nexport function drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n context.save();\n plugin.draw(context, delta);\n context.restore();\n}\nexport function drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n context.save();\n plugin.drawParticle(context, particle, delta);\n context.restore();\n}\nexport function alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === \"darken\" ? -1 : 1) * value\n };\n}","export const generatedAttribute = \"generated\";\nexport const touchEndEvent = \"touchend\";\nexport const mouseDownEvent = \"pointerdown\";\nexport const mouseUpEvent = \"pointerup\";\nexport const mouseMoveEvent = \"pointermove\";\nexport const touchStartEvent = \"touchstart\";\nexport const touchMoveEvent = \"touchmove\";\nexport const mouseLeaveEvent = \"pointerleave\";\nexport const mouseOutEvent = \"pointerout\";\nexport const touchCancelEvent = \"touchcancel\";\nexport const resizeEvent = \"resize\";\nexport const visibilityChangeEvent = \"visibilitychange\";","import { clear, drawParticle, drawParticlePlugin, drawPlugin, paintBase } from \"../Utils/CanvasUtils\";\nimport { getStyleFromHsl, getStyleFromRgb, rangeColorToHsl, rangeColorToRgb } from \"../Utils/ColorUtils\";\nimport { deepExtend } from \"../Utils/Utils\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nfunction setTransformValue(factor, newFactor, key) {\n var _a;\n const newValue = newFactor[key];\n if (newValue !== undefined) {\n factor[key] = ((_a = factor[key]) !== null && _a !== void 0 ? _a : 1) * newValue;\n }\n}\nexport class Canvas {\n constructor(container) {\n this.container = container;\n this.size = {\n height: 0,\n width: 0\n };\n this._context = null;\n this._generatedCanvas = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n clear() {\n const options = this.container.actualOptions,\n trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n } else if (trail.enable && trail.length > 0 && this._trailFillColor) {\n this._paintBase(getStyleFromRgb(this._trailFillColor, 1 / trail.length));\n } else {\n this.draw(ctx => {\n clear(ctx, this.size);\n });\n }\n }\n destroy() {\n var _a;\n if (this._generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n } else {\n this._resetOriginalStyle();\n }\n this.draw(ctx => {\n clear(ctx, this.size);\n });\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n if (!this._context) {\n return;\n }\n return cb(this._context);\n }\n drawParticle(particle, delta) {\n var _a;\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius();\n if (radius <= 0) {\n return;\n }\n const pfColor = particle.getFillColor(),\n psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw(ctx => {\n var _a, _b, _c, _d, _e;\n const options = this.container.actualOptions,\n zIndexOptions = particle.options.zIndex,\n zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate,\n opacity = (_c = (_a = particle.bubble.opacity) !== null && _a !== void 0 ? _a : (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1,\n strokeOpacity = (_e = (_d = particle.stroke) === null || _d === void 0 ? void 0 : _d.opacity) !== null && _e !== void 0 ? _e : opacity,\n zOpacity = opacity * zOpacityFactor,\n zStrokeOpacity = strokeOpacity * zOpacityFactor,\n transform = {},\n colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n drawParticle({\n container: this.container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw(ctx => {\n drawParticlePlugin(ctx, plugin, particle, delta);\n });\n }\n drawPlugin(plugin, delta) {\n this.draw(ctx => {\n drawPlugin(ctx, plugin, delta);\n });\n }\n init() {\n this.resize();\n this._initStyle();\n this._initCover();\n this._initTrail();\n this.initBackground();\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions,\n background = options.background,\n element = this.element,\n elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = rangeColorToRgb(background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n } else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const [, plugin] of this.container.plugins) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor || plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles || updater.getTransformValues || updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n var _a;\n if (this._generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this._generatedCanvas = canvas.dataset && generatedAttribute in canvas.dataset ? canvas.dataset[generatedAttribute] === \"true\" : this._generatedCanvas;\n this.element = canvas;\n this._originalStyle = deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this._context = this.element.getContext(\"2d\");\n this.container.retina.init();\n this.initBackground();\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw(ctx => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n this._paintBase(this._coverColorStyle);\n } else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container,\n pxRatio = container.retina.pixelRatio,\n size = container.canvas.size,\n newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio\n };\n if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {\n return;\n }\n const oldSize = Object.assign({}, size);\n this.element.width = size.width = this.element.offsetWidth * pxRatio;\n this.element.height = size.height = this.element.offsetHeight * pxRatio;\n if (this.container.started) {\n this.resizeFactor = {\n width: size.width / oldSize.width,\n height: size.height / oldSize.height\n };\n }\n }\n async windowResize() {\n if (!this.element) {\n return;\n }\n this.resize();\n const container = this.container,\n needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n _applyPostDrawUpdaters(particle) {\n var _a;\n for (const updater of this._postDrawUpdaters) {\n (_a = updater.afterDraw) === null || _a === void 0 ? void 0 : _a.call(updater, particle);\n }\n }\n _applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform) {\n var _a;\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const {\n fill,\n stroke\n } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n (_a = updater.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(updater, particle);\n }\n }\n _applyResizePlugins() {\n var _a;\n for (const plugin of this._resizePlugins) {\n (_a = plugin.resize) === null || _a === void 0 ? void 0 : _a.call(plugin);\n }\n }\n _getPluginParticleColors(particle) {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = rangeColorToHsl(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = rangeColorToHsl(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n _initCover() {\n const options = this.container.actualOptions,\n cover = options.backgroundMask.cover,\n color = cover.color,\n coverRgb = rangeColorToRgb(color);\n if (coverRgb) {\n const coverColor = {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity\n };\n this._coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n _initStyle() {\n const element = this.element,\n options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (options.fullScreen.enable) {\n this._originalStyle = deepExtend({}, element.style);\n element.style.setProperty(\"position\", \"fixed\", \"important\");\n element.style.setProperty(\"z-index\", options.fullScreen.zIndex.toString(10), \"important\");\n element.style.setProperty(\"top\", \"0\", \"important\");\n element.style.setProperty(\"left\", \"0\", \"important\");\n element.style.setProperty(\"width\", \"100%\", \"important\");\n element.style.setProperty(\"height\", \"100%\", \"important\");\n } else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n }\n _initTrail() {\n const options = this.container.actualOptions,\n trail = options.particles.move.trail,\n fillColor = rangeColorToRgb(trail.fillColor);\n if (fillColor) {\n const trail = options.particles.move.trail;\n this._trailFillColor = {\n r: fillColor.r,\n g: fillColor.g,\n b: fillColor.b,\n a: 1 / trail.length\n };\n }\n }\n _paintBase(baseColor) {\n this.draw(ctx => {\n paintBase(ctx, this.size, baseColor);\n });\n }\n _resetOriginalStyle() {\n const element = this.element,\n originalStyle = this._originalStyle;\n if (element && originalStyle) {\n element.style.position = originalStyle.position;\n element.style.zIndex = originalStyle.zIndex;\n element.style.top = originalStyle.top;\n element.style.left = originalStyle.left;\n element.style.width = originalStyle.width;\n element.style.height = originalStyle.height;\n }\n }\n}","import { executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils\";\nimport { mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent } from \"./Constants\";\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = {\n passive: true\n };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n } else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n } else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.mouseMoveHandler = e => this.mouseTouchMove(e);\n this.touchStartHandler = e => this.mouseTouchMove(e);\n this.touchMoveHandler = e => this.mouseTouchMove(e);\n this.touchEndHandler = () => this.mouseTouchFinish();\n this.mouseLeaveHandler = () => this.mouseTouchFinish();\n this.touchCancelHandler = () => this.mouseTouchFinish();\n this.touchEndClickHandler = e => this.mouseTouchClick(e);\n this.mouseUpHandler = e => this.mouseTouchClick(e);\n this.mouseDownHandler = () => this.mouseDown();\n this.visibilityChangeHandler = () => this.handleVisibilityChange();\n this.themeChangeHandler = e => this.handleThemeChange(e);\n this.oldThemeChangeHandler = e => this.handleThemeChange(e);\n this.resizeHandler = () => this.handleWindowResize();\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n doMouseTouchClick(e) {\n const container = this.container,\n options = container.actualOptions;\n if (this.canPush) {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n container.interactivity.mouse.clickPosition = Object.assign({}, mousePos);\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n executeOnSingleOrMultiple(onClick.mode, mode => this.handleClickMode(mode));\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleClickMode(mode) {\n this.container.handleClickMode(mode);\n }\n handleThemeChange(e) {\n const mediaEvent = e,\n themeName = mediaEvent.matches ? this.container.options.defaultDarkTheme : this.container.options.defaultLightTheme,\n theme = this.container.options.themes.find(theme => theme.name === themeName);\n if (theme && theme.default.auto) {\n this.container.loadTheme(themeName);\n }\n }\n handleVisibilityChange() {\n const container = this.container,\n options = container.actualOptions;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n } else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n } else {\n container.draw(true);\n }\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(async () => {\n var _a;\n return (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize();\n }, 500);\n }\n manageListeners(add) {\n var _a;\n const container = this.container,\n options = container.actualOptions,\n detectType = options.interactivity.detectsOn;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n } else if (detectType === \"parent\" && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n } else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", this.themeChangeHandler, add);\n } else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(this.oldThemeChangeHandler);\n } else {\n mediaMatch.removeListener(this.oldThemeChangeHandler);\n }\n }\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, this.touchEndHandler, add);\n } else {\n manageListener(interactivityEl, touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, touchCancelEvent, this.touchCancelHandler, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n if (typeof ResizeObserver !== \"undefined\") {\n if (this.resizeObserver && !add) {\n if (container.canvas.element) {\n this.resizeObserver.unobserve(container.canvas.element);\n }\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n } else if (!this.resizeObserver && add && container.canvas.element) {\n this.resizeObserver = new ResizeObserver(entries => {\n const entry = entries.find(e => e.target === container.canvas.element);\n if (!entry) {\n return;\n }\n this.handleWindowResize();\n });\n this.resizeObserver.observe(container.canvas.element);\n }\n } else {\n manageListener(window, resizeEvent, this.resizeHandler, add);\n }\n }\n if (document) {\n manageListener(document, visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchClick(e) {\n const container = this.container,\n options = container.actualOptions,\n mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container,\n options = container.actualOptions;\n if (!((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element)) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"pointer\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top\n };\n }\n } else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target,\n target = mouseEvent.currentTarget,\n canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect(),\n targetRect = target.getBoundingClientRect(),\n canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top)\n };\n } else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY\n };\n }\n } else if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY\n };\n }\n } else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e,\n lastTouch = touchEvent.touches[touchEvent.touches.length - 1],\n canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0)\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = mouseMoveEvent;\n }\n}","function initDelta(value) {\n let fpsLimit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60;\n let smooth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n value,\n factor: smooth ? 60 / fpsLimit : 60 * value / 1000\n };\n}\nexport class FrameManager {\n constructor(container) {\n this.container = container;\n }\n async nextFrame(timestamp) {\n var _a;\n try {\n const container = this.container;\n if (!container.smooth && container.lastFrameTime !== undefined && timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw(false);\n return;\n }\n (_a = container.lastFrameTime) !== null && _a !== void 0 ? _a : container.lastFrameTime = timestamp;\n const delta = initDelta(timestamp - container.lastFrameTime, container.fpsLimit, container.smooth);\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (delta.value > 1000) {\n container.draw(false);\n return;\n }\n await container.particles.draw(delta);\n if (container.duration > 0 && container.lifeTime > container.duration) {\n container.destroy();\n return;\n }\n if (container.getAnimationStatus()) {\n container.draw(false);\n }\n } catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}","export class OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({\n value: data\n });\n } else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}","import { OptionsColor } from \"../OptionsColor\";\nexport class Background {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}","import { OptionsColor } from \"../OptionsColor\";\nexport class BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}","import { BackgroundMaskCover } from \"./BackgroundMaskCover\";\nexport class BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = typeof data.cover === \"string\" ? {\n color: data.cover\n } : data.cover;\n this.cover.load(cover.color !== undefined ? cover : {\n color: color\n });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}","export class FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}","export class ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}","import { executeOnSingleOrMultiple } from \"../../../../Utils/Utils\";\nexport class DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = \"circle\";\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get ids() {\n return executeOnSingleOrMultiple(this.selectors, t => t.replace(\"#\", \"\"));\n }\n set ids(value) {\n this.selectors = executeOnSingleOrMultiple(value, t => `#${t}`);\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}","export class Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}","import { Parallax } from \"./Parallax\";\nexport class HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}","import { ClickEvent } from \"./ClickEvent\";\nimport { DivEvent } from \"./DivEvent\";\nimport { HoverEvent } from \"./HoverEvent\";\nimport { executeOnSingleOrMultiple } from \"../../../../Utils/Utils\";\nexport class Events {\n constructor() {\n this.onClick = new ClickEvent();\n this.onDiv = new DivEvent();\n this.onHover = new HoverEvent();\n this.resize = true;\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n this.onDiv = executeOnSingleOrMultiple(onDiv, t => {\n const tmp = new DivEvent();\n tmp.load(t);\n return tmp;\n });\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (data.resize !== undefined) {\n this.resize = data.resize;\n }\n }\n}","export class Modes {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (this._container) {\n const interactors = this._engine.plugins.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadModeOptions) {\n interactor.loadModeOptions(this, data);\n }\n }\n }\n }\n }\n}","import { Events } from \"./Events/Events\";\nimport { Modes } from \"./Modes/Modes\";\nexport class Interactivity {\n constructor(engine, container) {\n this.detectsOn = \"window\";\n this.events = new Events();\n this.modes = new Modes(engine, container);\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n }\n}","import { deepExtend } from \"../../Utils/Utils\";\nexport class ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50\n };\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}","export class MotionReduce {\n constructor() {\n this.factor = 4;\n this.value = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}","import { MotionReduce } from \"./MotionReduce\";\nexport class Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.disable !== undefined) {\n this.disable = data.disable;\n }\n this.reduce.load(data.reduce);\n }\n}","import { deepExtend } from \"../../Utils/Utils\";\nexport class Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = \"canvas\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.maxWidth !== undefined) {\n this.maxWidth = data.maxWidth;\n }\n if (data.mode !== undefined) {\n if (data.mode === \"screen\") {\n this.mode = \"screen\";\n } else {\n this.mode = \"canvas\";\n }\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}","export class ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = \"any\";\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}","import { ThemeDefault } from \"./ThemeDefault\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.decay = 0;\n this.sync = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { ColorAnimation } from \"./ColorAnimation\";\nexport class HslAnimation {\n constructor() {\n this.h = new ColorAnimation();\n this.s = new ColorAnimation();\n this.l = new ColorAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}","import { HslAnimation } from \"./HslAnimation\";\nimport { OptionsColor } from \"./OptionsColor\";\nexport class AnimatableColor extends OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({\n value: data\n });\n } else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n } else {\n this.animation.load(data.animation);\n }\n }\n }\n}","export class CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}","export class Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}","import { Random } from \"./Random\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ValueWithRandom {\n constructor() {\n this.random = new Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n } else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ParticlesBounceFactor extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}","import { ParticlesBounceFactor } from \"./ParticlesBounceFactor\";\nexport class ParticlesBounce {\n constructor() {\n this.horizontal = new ParticlesBounceFactor();\n this.vertical = new ParticlesBounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}","import { CollisionsOverlap } from \"./CollisionsOverlap\";\nimport { ParticlesBounce } from \"../Bounce/ParticlesBounce\";\nexport class Collisions {\n constructor() {\n this.bounce = new ParticlesBounce();\n this.enable = false;\n this.mode = \"bounce\";\n this.overlap = new CollisionsOverlap();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAttract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n }\n}","import { ValueWithRandom } from \"../../../ValueWithRandom\";\nexport class MovePathDelay extends ValueWithRandom {\n constructor() {\n super();\n }\n}","import { MovePathDelay } from \"./MovePathDelay\";\nimport { deepExtend } from \"../../../../../Utils/Utils\";\nexport class MovePath {\n constructor() {\n this.clamp = true;\n this.delay = new MovePathDelay();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = deepExtend(this.options, data.options);\n }\n }\n}","import { OptionsColor } from \"../../OptionsColor\";\nexport class MoveTrail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}","export class OutModes {\n constructor() {\n this.default = \"out\";\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}","import { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? deepExtend({}, data.position) : undefined;\n }\n}","import { MoveAngle } from \"./MoveAngle\";\nimport { MoveAttract } from \"./MoveAttract\";\nimport { MoveGravity } from \"./MoveGravity\";\nimport { MovePath } from \"./Path/MovePath\";\nimport { MoveTrail } from \"./MoveTrail\";\nimport { OutModes } from \"./OutModes\";\nimport { Spin } from \"./Spin\";\nimport { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Move {\n constructor() {\n this.angle = new MoveAngle();\n this.attract = new MoveAttract();\n this.center = {\n x: 50,\n y: 50,\n mode: \"percent\",\n radius: 0\n };\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity();\n this.path = new MovePath();\n this.outModes = new OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin();\n this.straight = false;\n this.trail = new MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get collisions() {\n return false;\n }\n set collisions(_) {}\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n this.angle.load(typeof data.angle === \"number\" ? {\n value: data.angle\n } : data.angle);\n this.attract.load(data.attract);\n this.center = deepExtend((_a = this.center) !== null && _a !== void 0 ? _a : {}, data.center);\n if (data.decay !== undefined) {\n this.decay = data.decay;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance = typeof data.distance === \"number\" ? {\n horizontal: data.distance,\n vertical: data.distance\n } : Object.assign({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = setRangeValue(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outModes = (_c = (_b = data.outModes) !== null && _b !== void 0 ? _b : data.outMode) !== null && _c !== void 0 ? _c : data.out_mode;\n if (outModes !== undefined) {\n if (typeof outModes === \"object\") {\n this.outModes.load(outModes);\n } else {\n this.outModes.load({\n default: outModes\n });\n }\n }\n this.path.load((_d = data.path) !== null && _d !== void 0 ? _d : data.noise);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class OpacityAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 2;\n this.startValue = \"random\";\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { OpacityAnimation } from \"./OpacityAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Opacity extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}","export class ParticlesDensity {\n constructor() {\n this.enable = false;\n this.area = 800;\n this.factor = 1000;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const area = (_a = data.area) !== null && _a !== void 0 ? _a : data.value_area;\n if (area !== undefined) {\n this.area = area;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n }\n}","import { ParticlesDensity } from \"./ParticlesDensity\";\nexport class ParticlesNumber {\n constructor() {\n this.density = new ParticlesDensity();\n this.limit = 0;\n this.value = 100;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}","import { OptionsColor } from \"../OptionsColor\";\nexport class Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0\n };\n this.color.value = \"#000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}","import { deepExtend } from \"../../../../Utils/Utils\";\nexport class Shape {\n constructor() {\n this.options = {};\n this.type = \"circle\";\n }\n get character() {\n var _a;\n return (_a = this.options[\"character\"]) !== null && _a !== void 0 ? _a : this.options[\"char\"];\n }\n set character(value) {\n this.options[\"character\"] = value;\n this.options[\"char\"] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get image() {\n var _a;\n return (_a = this.options[\"image\"]) !== null && _a !== void 0 ? _a : this.options[\"images\"];\n }\n set image(value) {\n this.options[\"image\"] = value;\n this.options[\"images\"] = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get polygon() {\n var _a;\n return (_a = this.options[\"polygon\"]) !== null && _a !== void 0 ? _a : this.options[\"star\"];\n }\n set polygon(value) {\n this.options[\"polygon\"] = value;\n this.options[\"star\"] = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {}\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item) {\n this.options[shape] = deepExtend((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, \"character\", \"char\", true);\n this.loadShape(data.polygon, \"polygon\", \"star\", false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, \"image\", \"images\", true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b;\n if (!item) {\n return;\n }\n const isArray = item instanceof Array;\n const emptyValue = isArray ? [] : {},\n mainDifferentValues = isArray !== this.options[mainKey] instanceof Array,\n altDifferentValues = isArray !== this.options[altKey] instanceof Array;\n if (mainDifferentValues) {\n this.options[mainKey] = emptyValue;\n }\n if (altDifferentValues && altOverride) {\n this.options[altKey] = emptyValue;\n }\n this.options[mainKey] = deepExtend((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : emptyValue, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : emptyValue, item);\n }\n }\n}","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class SizeAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 5;\n this.startValue = \"random\";\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { SizeAnimation } from \"./SizeAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Size extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}","import { AnimatableColor } from \"../AnimatableColor\";\nexport class Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ZIndex extends ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}","import { deepExtend, executeOnSingleOrMultiple } from \"../../../Utils/Utils\";\nimport { AnimatableColor } from \"../AnimatableColor\";\nimport { Collisions } from \"./Collisions/Collisions\";\nimport { Move } from \"./Move/Move\";\nimport { Opacity } from \"./Opacity/Opacity\";\nimport { ParticlesBounce } from \"./Bounce/ParticlesBounce\";\nimport { ParticlesNumber } from \"./Number/ParticlesNumber\";\nimport { Shadow } from \"./Shadow\";\nimport { Shape } from \"./Shape/Shape\";\nimport { Size } from \"./Size/Size\";\nimport { Stroke } from \"./Stroke\";\nimport { ZIndex } from \"./ZIndex/ZIndex\";\nexport class ParticlesOptions {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n this.bounce = new ParticlesBounce();\n this.collisions = new Collisions();\n this.color = new AnimatableColor();\n this.color.value = \"#fff\";\n this.groups = {};\n this.move = new Move();\n this.number = new ParticlesNumber();\n this.opacity = new Opacity();\n this.reduceDuplicates = false;\n this.shadow = new Shadow();\n this.shape = new Shape();\n this.size = new Size();\n this.stroke = new Stroke();\n this.zIndex = new ZIndex();\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f;\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor.create(this.color, data.color));\n if (data.groups !== undefined) {\n for (const group in data.groups) {\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = deepExtend((_a = this.groups[group]) !== null && _a !== void 0 ? _a : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.zIndex.load(data.zIndex);\n const collisions = (_c = (_b = data.move) === null || _b === void 0 ? void 0 : _b.collisions) !== null && _c !== void 0 ? _c : (_d = data.move) === null || _d === void 0 ? void 0 : _d.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n if (data.interactivity !== undefined) {\n this.interactivity = deepExtend({}, data.interactivity);\n }\n const strokeToLoad = (_e = data.stroke) !== null && _e !== void 0 ? _e : (_f = data.shape) === null || _f === void 0 ? void 0 : _f.stroke;\n if (strokeToLoad) {\n this.stroke = executeOnSingleOrMultiple(strokeToLoad, t => {\n const tmp = new Stroke();\n tmp.load(t);\n return tmp;\n });\n }\n if (this._container) {\n const updaters = this._engine.plugins.updaters.get(this._container);\n if (updaters) {\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(this, data);\n }\n }\n }\n const interactors = this._engine.plugins.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadParticlesOptions) {\n interactor.loadParticlesOptions(this, data);\n }\n }\n }\n }\n }\n}","import { ParticlesOptions } from \"../Options/Classes/Particles/ParticlesOptions\";\nexport function loadOptions(options) {\n for (var _len = arguments.length, sourceOptionsArr = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sourceOptionsArr[_key - 1] = arguments[_key];\n }\n for (const sourceOptions of sourceOptionsArr) {\n options.load(sourceOptions);\n }\n}\nexport function loadParticlesOptions(engine, container) {\n const options = new ParticlesOptions(engine, container);\n for (var _len2 = arguments.length, sourceOptionsArr = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n sourceOptionsArr[_key2 - 2] = arguments[_key2];\n }\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}","import { deepExtend, executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils\";\nimport { Background } from \"./Background/Background\";\nimport { BackgroundMask } from \"./BackgroundMask/BackgroundMask\";\nimport { FullScreen } from \"./FullScreen/FullScreen\";\nimport { Interactivity } from \"./Interactivity/Interactivity\";\nimport { ManualParticle } from \"./ManualParticle\";\nimport { Motion } from \"./Motion/Motion\";\nimport { Responsive } from \"./Responsive\";\nimport { Theme } from \"./Theme/Theme\";\nimport { loadParticlesOptions } from \"../../Utils/OptionsUtils\";\nexport class Options {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n this.autoPlay = true;\n this.background = new Background();\n this.backgroundMask = new BackgroundMask();\n this.fullScreen = new FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity(engine, container);\n this.manualParticles = [];\n this.motion = new Motion();\n this.particles = loadParticlesOptions(this._engine, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.smooth = false;\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (!data) {\n return;\n }\n if (data.preset !== undefined) {\n executeOnSingleOrMultiple(data.preset, preset => this._importPreset(preset));\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = (_c = data.fullScreen) !== null && _c !== void 0 ? _c : data.backgroundMode;\n if (typeof fullScreen === \"boolean\") {\n this.fullScreen.enable = fullScreen;\n } else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map(t => {\n const tmp = new ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.motion.load(data.motion);\n this.particles.load(data.particles);\n this.style = deepExtend(this.style, data.style);\n this._engine.plugins.loadOptions(this, data);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n const interactors = this._engine.plugins.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadOptions) {\n interactor.loadOptions(this, data);\n }\n }\n }\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const optTheme = new Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n this.defaultDarkTheme = (_d = this._findDefaultTheme(\"dark\")) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultLightTheme = (_e = this._findDefaultTheme(\"light\")) === null || _e === void 0 ? void 0 : _e.name;\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find(t => t.mode === \"screen\" && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.options);\n return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find(theme => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n } else {\n const mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\"),\n clientDarkMode = mediaMatch && mediaMatch.matches,\n defaultTheme = this._findDefaultTheme(clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n _findDefaultTheme(mode) {\n var _a;\n return (_a = this.themes.find(theme => theme.default.value && theme.default.mode === mode)) !== null && _a !== void 0 ? _a : this.themes.find(theme => theme.default.value && theme.default.mode === \"any\");\n }\n _importPreset(preset) {\n this.load(this._engine.plugins.getPreset(preset));\n }\n}","export class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this._interactors = this._engine.plugins.getInteractors(this.container, true);\n this._externalInteractors = [];\n this._particleInteractors = [];\n }\n async externalInteract(delta) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.interact(delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this._externalInteractors) {\n if (interactor.handleClickMode) {\n interactor.handleClickMode(mode);\n }\n }\n }\n init() {\n this._externalInteractors = [];\n this._particleInteractors = [];\n for (const interactor of this._interactors) {\n switch (interactor.type) {\n case 0:\n this._externalInteractors.push(interactor);\n break;\n case 1:\n this._particleInteractors.push(interactor);\n break;\n }\n interactor.init();\n }\n }\n async particlesInteract(particle, delta) {\n for (const interactor of this._externalInteractors) {\n interactor.clear(particle, delta);\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.interact(particle, delta);\n }\n }\n }\n async reset(particle) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.reset(particle);\n }\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.reset(particle);\n }\n }\n }\n}","import { calcExactPositionOrRandomFromSize, clamp, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRandom, getRangeMax, getRangeMin, getRangeValue, getValue, randomInRange, setRangeValue } from \"../Utils/NumberUtils\";\nimport { deepExtend, isInArray, itemFromSingleOrMultiple } from \"../Utils/Utils\";\nimport { getHslFromAnimation, rangeColorToRgb } from \"../Utils/ColorUtils\";\nimport { Interactivity } from \"../Options/Classes/Interactivity/Interactivity\";\nimport { Shape } from \"../Options/Classes/Particles/Shape/Shape\";\nimport { Vector } from \"./Utils/Vector\";\nimport { Vector3d } from \"./Utils/Vector3d\";\nimport { alterHsl } from \"../Utils/CanvasUtils\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils\";\nconst fixOutMode = data => {\n if (!(isInArray(data.outMode, data.checkModes) || isInArray(data.outMode, data.checkModes))) {\n return;\n }\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n } else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n};\nexport class Particle {\n constructor(engine, id, container, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n this.id = id;\n this.container = container;\n this.group = group;\n this._engine = engine;\n this.fill = true;\n this.pathRotation = false;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.rotation = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {}\n };\n this.outType = \"normal\";\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio,\n mainOptions = container.actualOptions,\n particlesOptions = loadParticlesOptions(this._engine, container, mainOptions.particles),\n shapeType = particlesOptions.shape.type,\n reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates);\n if (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.shape) {\n if (overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type;\n this.shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates);\n }\n const shapeOptions = new Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n this.shapeData = this._loadShapeData(shapeOptions, reduceDuplicates);\n }\n } else {\n this.shapeData = this._loadShapeData(particlesOptions.shape, reduceDuplicates);\n }\n particlesOptions.load(overrideOptions);\n particlesOptions.load((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles);\n this.interactivity = new Interactivity(engine, container);\n this.interactivity.load(container.actualOptions.interactivity);\n this.interactivity.load(particlesOptions.interactivity);\n this.fill = (_c = (_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.fill) !== null && _c !== void 0 ? _c : this.fill;\n this.close = (_e = (_d = this.shapeData) === null || _d === void 0 ? void 0 : _d.close) !== null && _e !== void 0 ? _e : this.close;\n this.options = particlesOptions;\n const pathOptions = this.options.move.path;\n this.pathDelay = getValue(pathOptions.delay) * 1000;\n if (pathOptions.generator) {\n this.pathGenerator = this._engine.plugins.getPathGenerator(pathOptions.generator);\n if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) {\n this.pathGenerator.init(container);\n }\n }\n const zIndexValue = getRangeValue(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size,\n sizeRange = sizeOptions.value,\n sizeAnimation = sizeOptions.animation;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: getRangeValue(sizeOptions.value) * container.retina.pixelRatio,\n max: getRangeMax(sizeRange) * pxRatio,\n min: getRangeMin(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: getRangeValue(sizeOptions.animation.count)\n };\n if (sizeAnimation.enable) {\n this.size.status = 0;\n this.size.decay = 1 - getRangeValue(sizeAnimation.decay);\n switch (sizeAnimation.startValue) {\n case \"min\":\n this.size.value = this.size.min;\n this.size.status = 0;\n break;\n case \"random\":\n this.size.value = randomInRange(this.size) * pxRatio;\n this.size.status = getRandom() >= 0.5 ? 0 : 1;\n break;\n case \"max\":\n default:\n this.size.value = this.size.max;\n this.size.status = 1;\n break;\n }\n this.size.velocity = ((_f = this.retina.sizeAnimationSpeed) !== null && _f !== void 0 ? _f : container.retina.sizeAnimationSpeed) / 100 * container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= getRandom();\n }\n }\n this.bubble = {\n inRange: false\n };\n this.slow = {\n inRange: false,\n factor: 1\n };\n this.position = this._calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size,\n moveCenter = this.options.move.center,\n isCenterPercent = moveCenter.mode === \"percent\";\n this.moveCenter = {\n x: ((_g = moveCenter.x) !== null && _g !== void 0 ? _g : 50) * (isCenterPercent ? canvasSize.width / 100 : 1),\n y: ((_h = moveCenter.y) !== null && _h !== void 0 ? _h : 50) * (isCenterPercent ? canvasSize.height / 100 : 1),\n radius: (_j = this.options.move.center.radius) !== null && _j !== void 0 ? _j : 0,\n mode: (_k = this.options.move.center.mode) !== null && _k !== void 0 ? _k : \"percent\"\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case \"inside\":\n this.outType = \"inside\";\n break;\n case \"outside\":\n this.outType = \"outside\";\n break;\n }\n this.initialVelocity = this._calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - getRangeValue(this.options.move.decay);\n this.offset = Vector.origin;\n const particles = container.particles;\n particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z;\n particles.lastZIndex = this.position.z;\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = this._engine.plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.loadShape) {\n drawer === null || drawer === void 0 ? void 0 : drawer.loadShape(this);\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.spawning = false;\n this.shadowColor = rangeColorToRgb(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n (_l = updater.init) === null || _l === void 0 ? void 0 : _l.call(updater, this);\n }\n for (const mover of container.particles.movers) {\n (_m = mover.init) === null || _m === void 0 ? void 0 : _m.call(mover, this);\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n (_o = plugin.particleCreated) === null || _o === void 0 ? void 0 : _o.call(plugin, this);\n }\n }\n destroy(override) {\n if (this.unbreakable || this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n this.slow.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n for (const updater of this.container.particles.updaters) {\n if (updater.particleDestroyed) {\n updater.particleDestroyed(this, override);\n }\n }\n }\n draw(delta) {\n const container = this.container;\n for (const [, plugin] of container.plugins) {\n container.canvas.drawParticlePlugin(plugin, this, delta);\n }\n container.canvas.drawParticle(this, delta);\n }\n getFillColor() {\n var _a, _b;\n const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color);\n if (color && this.roll && (this.backColor || this.roll.alter)) {\n const backFactor = this.roll.horizontal && this.roll.vertical ? 2 : 1,\n backSum = this.roll.horizontal ? Math.PI / 2 : 0,\n rolled = Math.floor((((_b = this.roll.angle) !== null && _b !== void 0 ? _b : 0) + backSum) / (Math.PI / backFactor)) % 2;\n if (rolled) {\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n }\n }\n return color;\n }\n getMass() {\n return this.getRadius() ** 2 * Math.PI / 2;\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z\n };\n }\n getRadius() {\n var _a;\n return (_a = this.bubble.radius) !== null && _a !== void 0 ? _a : this.size.value;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.strokeColor)) !== null && _b !== void 0 ? _b : this.getFillColor();\n }\n isInsideCanvas() {\n const radius = this.getRadius(),\n canvasSize = this.container.canvas.size;\n return this.position.x >= -radius && this.position.y >= -radius && this.position.y <= canvasSize.height + radius && this.position.x <= canvasSize.width + radius;\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n reset() {\n if (this.opacity) {\n this.opacity.loops = 0;\n }\n this.size.loops = 0;\n }\n _calcPosition(container, position, zIndex) {\n let tryCount = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var _a, _b, _c, _d;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size,\n exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position\n }),\n pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex),\n radius = this.getRadius(),\n outModes = this.options.move.outModes,\n fixHorizontal = outMode => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-horizontal\"],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: value => pos.x += value,\n radius\n });\n },\n fixVertical = outMode => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-vertical\"],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: value => pos.y += value,\n radius\n });\n };\n fixHorizontal((_a = outModes.left) !== null && _a !== void 0 ? _a : outModes.default);\n fixHorizontal((_b = outModes.right) !== null && _b !== void 0 ? _b : outModes.default);\n fixVertical((_c = outModes.top) !== null && _c !== void 0 ? _c : outModes.default);\n fixVertical((_d = outModes.bottom) !== null && _d !== void 0 ? _d : outModes.default);\n if (this._checkOverlap(pos, tryCount)) {\n return this._calcPosition(container, undefined, zIndex, tryCount + 1);\n }\n return pos;\n }\n _calculateVelocity() {\n const baseVelocity = getParticleBaseVelocity(this.direction);\n const res = baseVelocity.copy();\n const moveOptions = this.options.move;\n if (moveOptions.direction === \"inside\" || moveOptions.direction === \"outside\") {\n return res;\n }\n const rad = Math.PI / 180 * getRangeValue(moveOptions.angle.value);\n const radOffset = Math.PI / 180 * getRangeValue(moveOptions.angle.offset);\n const range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= getRandom();\n }\n return res;\n }\n _checkOverlap(pos) {\n let tryCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n const collisionsOptions = this.options.collisions,\n radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= 0 && tryCount > retries) {\n throw new Error(\"Particle is overlapping and can't be placed\");\n }\n let overlaps = false;\n for (const particle of this.container.particles.array) {\n if (getDistance(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n _loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return deepExtend({}, itemFromSingleOrMultiple(shapeData, this.id, reduceDuplicates));\n }\n }\n}","export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}","export class Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y\n };\n }\n}","import { Range } from \"./Range\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class Circle extends Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return getDistance(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range,\n circle = range,\n pos1 = this.position,\n pos2 = range.position,\n distPos = {\n x: Math.abs(pos2.x - pos1.x),\n y: Math.abs(pos2.y - pos1.y)\n },\n r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius,\n dist = Math.sqrt(distPos.x ** 2 + distPos.y ** 2);\n return rSum > dist;\n } else if (rect.size !== undefined) {\n const w = rect.size.width,\n h = rect.size.height,\n edges = Math.pow(distPos.x - w, 2) + Math.pow(distPos.y - h, 2);\n return edges <= r ** 2 || distPos.x <= r + w && distPos.y <= r + h || distPos.x <= w || distPos.y <= h;\n }\n return false;\n }\n}","import { Circle } from \"./Circle\";\nimport { Range } from \"./Range\";\nexport class Rectangle extends Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width\n };\n }\n contains(point) {\n const w = this.size.width,\n h = this.size.height,\n pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n if (range instanceof Circle) {\n range.intersects(this);\n }\n const w = this.size.width,\n h = this.size.height,\n pos1 = this.position,\n pos2 = range.position,\n size2 = range instanceof Rectangle ? range.size : {\n width: 0,\n height: 0\n },\n w2 = size2.width,\n h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}","import { Circle } from \"./Circle\";\nimport { Rectangle } from \"./Rectangle\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this.points = [];\n this.divided = false;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this.points.length < this.capacity) {\n this.points.push(point);\n return true;\n }\n if (!this.divided) {\n this.subdivide();\n }\n return (_e = ((_a = this.northEast) === null || _a === void 0 ? void 0 : _a.insert(point)) || ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) || ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) || ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point))) !== null && _e !== void 0 ? _e : false;\n }\n query(range, check, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this.points) {\n if (!range.contains(p.position) && getDistance(range.position, p.position) > p.particle.getRadius() && (!check || check(p.particle))) {\n continue;\n }\n res.push(p.particle);\n }\n if (this.divided) {\n (_a = this.northEast) === null || _a === void 0 ? void 0 : _a.query(range, check, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, check, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, check, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, check, res);\n }\n return res;\n }\n queryCircle(position, radius, check) {\n return this.query(new Circle(position.x, position.y, radius), check);\n }\n queryRectangle(position, size, check) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height), check);\n }\n subdivide() {\n const x = this.rectangle.position.x,\n y = this.rectangle.position.y,\n w = this.rectangle.size.width,\n h = this.rectangle.size.height,\n capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n}","import { InteractionManager } from \"./Utils/InteractionManager\";\nimport { Particle } from \"./Particle\";\nimport { Point } from \"./Utils/Point\";\nimport { QuadTree } from \"./Utils/QuadTree\";\nimport { Rectangle } from \"./Utils/Rectangle\";\nimport { calcPositionFromSize } from \"../Utils/NumberUtils\";\nexport class Particles {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.interactionManager = new InteractionManager(this._engine, container);\n const canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);\n this.movers = this._engine.plugins.getMovers(container, true);\n this.updaters = this._engine.plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n addManualParticles() {\n const container = this.container,\n options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle(calcPositionFromSize({\n size: container.canvas.size,\n position: particle.position\n }), particle.options);\n }\n }\n addParticle(position, overrideOptions, group, initializer) {\n const container = this.container,\n options = container.actualOptions,\n limit = options.particles.number.limit;\n if (limit > 0) {\n const countToRemove = this.count + 1 - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n return this._pushParticle(position, overrideOptions, group, initializer);\n }\n clear() {\n this.array = [];\n this.zArray = [];\n }\n destroy() {\n this.array = [];\n this.zArray = [];\n this.movers = [];\n this.updaters = [];\n }\n async draw(delta) {\n const container = this.container,\n canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);\n container.canvas.clear();\n await this.update(delta);\n if (this.needsSort) {\n this.zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;\n this.needsSort = false;\n }\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.zArray) {\n p.draw(delta);\n }\n }\n handleClickMode(mode) {\n this.interactionManager.handleClickMode(mode);\n }\n init() {\n var _a;\n const container = this.container,\n options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n let handled = false;\n this.updaters = this._engine.plugins.getUpdaters(container, true);\n this.interactionManager.init();\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.interactionManager.init();\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.init(container);\n }\n this.addManualParticles();\n if (!handled) {\n for (const group in options.particles.groups) {\n const groupOptions = options.particles.groups[group];\n for (let i = this.count, j = 0; j < ((_a = groupOptions.number) === null || _a === void 0 ? void 0 : _a.value) && i < options.particles.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n }\n push(nb, mouse, overrideOptions, group) {\n this.pushing = true;\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions, group);\n }\n this.pushing = false;\n }\n async redraw() {\n this.clear();\n this.init();\n await this.draw({\n value: 0,\n factor: 0\n });\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n removeAt(index) {\n let quantity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n let group = arguments.length > 2 ? arguments[2] : undefined;\n let override = arguments.length > 3 ? arguments[3] : undefined;\n if (index < 0 || index > this.count) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n const particle = this.array[i];\n if (!particle || particle.group !== group) {\n continue;\n }\n particle.destroy(override);\n this.array.splice(i--, 1);\n const zIdx = this.zArray.indexOf(particle);\n this.zArray.splice(zIdx, 1);\n deleted++;\n this._engine.dispatchEvent(\"particleRemoved\", {\n container: this.container,\n data: {\n particle\n }\n });\n }\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n setDensity() {\n const options = this.container.actualOptions;\n for (const group in options.particles.groups) {\n this._applyDensity(options.particles.groups[group], 0, group);\n }\n this._applyDensity(options.particles, options.manualParticles.length);\n }\n async update(delta) {\n var _a, _b;\n const container = this.container,\n particlesToDelete = [];\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.update();\n }\n for (const [, plugin] of container.plugins) {\n (_a = plugin.update) === null || _a === void 0 ? void 0 : _a.call(plugin, delta);\n }\n for (const particle of this.array) {\n const resizeFactor = container.canvas.resizeFactor;\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n await this.interactionManager.reset(particle);\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n (_b = plugin.particleUpdate) === null || _b === void 0 ? void 0 : _b.call(plugin, particle, delta);\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n await this.interactionManager.externalInteract(delta);\n for (const particle of container.particles.array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n await this.interactionManager.particlesInteract(particle, delta);\n }\n }\n delete container.canvas.resizeFactor;\n }\n _applyDensity(options, manualCount, group) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number,\n densityFactor = this._initDensityFactor(numberOptions.density),\n optParticlesNumber = numberOptions.value,\n optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber,\n particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount,\n particlesCount = Math.min(this.count, this.array.filter(t => t.group === group).length);\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n } else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n }\n _initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element,\n pxRatio = container.retina.pixelRatio;\n return canvas.width * canvas.height / (densityOptions.factor * pxRatio ** 2 * densityOptions.area);\n }\n _pushParticle(position, overrideOptions, group, initializer) {\n try {\n const particle = new Particle(this._engine, this.nextId, this.container, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this.array.push(particle);\n this.zArray.push(particle);\n this.nextId++;\n this._engine.dispatchEvent(\"particleAdded\", {\n container: this.container,\n data: {\n particle\n }\n });\n return particle;\n } catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}","import { isSsr, safeMatchMedia } from \"../Utils/Utils\";\nimport { getRangeValue } from \"../Utils/NumberUtils\";\nexport class Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container,\n options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? 1 : window.devicePixelRatio;\n const motionOptions = this.container.actualOptions.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n const mediaQuery = safeMatchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this._handleMotionChange(mediaQuery);\n const handleChange = () => {\n this._handleMotionChange(mediaQuery);\n container.refresh().catch(() => {});\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n } else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n } else {\n this.reduceFactor = 1;\n }\n } else {\n this.reduceFactor = 1;\n }\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;\n }\n initParticle(particle) {\n const options = particle.options,\n ratio = this.pixelRatio,\n moveDistance = options.move.distance,\n props = particle.retina;\n props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;\n props.moveDrift = getRangeValue(options.move.drift) * ratio;\n props.moveSpeed = getRangeValue(options.move.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;\n }\n _handleMotionChange(mediaQuery) {\n const options = this.container.actualOptions;\n if (mediaQuery.matches) {\n const motion = options.motion;\n this.reduceFactor = motion.disable ? 0 : motion.reduce.value ? 1 / motion.reduce.factor : 1;\n } else {\n this.reduceFactor = 1;\n }\n }\n}","import { animate, cancelAnimation } from \"../Utils/Utils\";\nimport { Canvas } from \"./Canvas\";\nimport { EventListeners } from \"./Utils/EventListeners\";\nimport { FrameManager } from \"./Utils/FrameManager\";\nimport { Options } from \"../Options/Classes/Options\";\nimport { Particles } from \"./Particles\";\nimport { Retina } from \"./Retina\";\nimport { getRangeValue } from \"../Utils/NumberUtils\";\nimport { loadOptions } from \"../Utils/OptionsUtils\";\nfunction guardCheck(container) {\n return container && !container.destroyed;\n}\nfunction loadContainerOptions(engine, container) {\n const options = new Options(engine, container);\n for (var _len = arguments.length, sourceOptionsArr = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n sourceOptionsArr[_key - 2] = arguments[_key];\n }\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nconst defaultPathGeneratorKey = \"default\",\n defaultPathGenerator = {\n generate: p => {\n const v = p.velocity.copy();\n v.angle += v.length * Math.PI / 180;\n return v;\n },\n init: () => {},\n update: () => {}\n };\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this.id = id;\n this._engine = engine;\n this.fpsLimit = 120;\n this.smooth = false;\n this.duration = 0;\n this.lifeTime = 0;\n this._firstStart = true;\n this.started = false;\n this.destroyed = false;\n this._paused = true;\n this.lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this);\n this.particles = new Particles(this._engine, this);\n this.frameManager = new FrameManager(this);\n this.pathGenerators = new Map();\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false\n }\n };\n this.plugins = new Map();\n this.drawers = new Map();\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this);\n this._eventListeners = new EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this._intersectionObserver = new IntersectionObserver(entries => this._intersectionManager(entries));\n }\n this._engine.dispatchEvent(\"containerBuilt\", {\n container: this\n });\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n addClickHandler(callback) {\n if (!guardCheck(this)) {\n return;\n }\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (!guardCheck(this)) {\n return;\n }\n const pxRatio = this.retina.pixelRatio,\n posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio\n },\n particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = e => {\n if (!guardCheck(this)) {\n return;\n }\n const mouseEvent = e,\n pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY\n };\n clickOrTouchHandler(e, pos, 1);\n };\n const touchStartHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = e => {\n var _a, _b, _c;\n if (!guardCheck(this)) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1];\n if (!lastTouch) {\n return;\n }\n }\n const canvasRect = (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(),\n pos = {\n x: lastTouch.clientX - ((_b = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _b !== void 0 ? _b : 0),\n y: lastTouch.clientY - ((_c = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _c !== void 0 ? _c : 0)\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false,\n touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n addPath(key, generator) {\n let override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!guardCheck(this) || !override && this.pathGenerators.has(key)) {\n return false;\n }\n this.pathGenerators.set(key, generator !== null && generator !== void 0 ? generator : defaultPathGenerator);\n return true;\n }\n destroy() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n this.particles.destroy();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this._engine.plugins.destroy(this);\n this.destroyed = true;\n const mainArr = this._engine.dom(),\n idx = mainArr.findIndex(t => t === this);\n if (idx >= 0) {\n mainArr.splice(idx, 1);\n }\n this._engine.dispatchEvent(\"containerDestroyed\", {\n container: this\n });\n }\n draw(force) {\n if (!guardCheck(this)) {\n return;\n }\n let refreshTime = force;\n this._drawAnimationFrame = animate()(async timestamp => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n await this.frameManager.nextFrame(timestamp);\n });\n }\n exportConfiguration() {\n return JSON.stringify(this.actualOptions, (key, value) => {\n if (key === \"_engine\" || key === \"_container\") {\n return;\n }\n return value;\n }, 2);\n }\n exportImage(callback, type, quality) {\n var _a;\n return (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n getAnimationStatus() {\n return !this._paused && !this.pageHidden && guardCheck(this);\n }\n handleClickMode(mode) {\n if (!guardCheck(this)) {\n return;\n }\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n async init() {\n if (!guardCheck(this)) {\n return;\n }\n const shapes = this._engine.plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = this._engine.plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n this.retina.init();\n this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this.duration = getRangeValue(this.actualOptions.duration) * 1000;\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;\n this.smooth = this.actualOptions.smooth;\n const availablePlugins = this._engine.plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n await drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n plugin.init(this.actualOptions);\n } else if (plugin.initAsync !== undefined) {\n await plugin.initAsync(this.actualOptions);\n }\n }\n this._engine.dispatchEvent(\"containerInit\", {\n container: this\n });\n this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n if (plugin.particlesSetup !== undefined) {\n plugin.particlesSetup();\n }\n }\n this._engine.dispatchEvent(\"particlesSetup\", {\n container: this\n });\n }\n async loadTheme(name) {\n if (!guardCheck(this)) {\n return;\n }\n this._currentTheme = name;\n await this.refresh();\n }\n pause() {\n if (!guardCheck(this)) {\n return;\n }\n if (this._drawAnimationFrame !== undefined) {\n cancelAnimation()(this._drawAnimationFrame);\n delete this._drawAnimationFrame;\n }\n if (this._paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this._paused = true;\n }\n this._engine.dispatchEvent(\"containerPaused\", {\n container: this\n });\n }\n play(force) {\n if (!guardCheck(this)) {\n return;\n }\n const needsUpdate = this._paused || force;\n if (this._firstStart && !this.actualOptions.autoPlay) {\n this._firstStart = false;\n return;\n }\n if (this._paused) {\n this._paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this._engine.dispatchEvent(\"containerPlay\", {\n container: this\n });\n this.draw(needsUpdate || false);\n }\n async refresh() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n return this.start();\n }\n async reset() {\n if (!guardCheck(this)) {\n return;\n }\n this._options = loadContainerOptions(this._engine, this);\n return this.refresh();\n }\n setNoise(noiseOrGenerator, init, update) {\n if (!guardCheck(this)) {\n return;\n }\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n if (!pathOrGenerator || !guardCheck(this)) {\n return;\n }\n const pathGenerator = Object.assign({}, defaultPathGenerator);\n if (typeof pathOrGenerator === \"function\") {\n pathGenerator.generate = pathOrGenerator;\n if (init) {\n pathGenerator.init = init;\n }\n if (update) {\n pathGenerator.update = update;\n }\n } else {\n const oldGenerator = pathGenerator;\n pathGenerator.generate = pathOrGenerator.generate || oldGenerator.generate;\n pathGenerator.init = pathOrGenerator.init || oldGenerator.init;\n pathGenerator.update = pathOrGenerator.update || oldGenerator.update;\n }\n this.addPath(defaultPathGeneratorKey, pathGenerator, true);\n }\n async start() {\n if (!guardCheck(this) || this.started) {\n return;\n }\n await this.init();\n this.started = true;\n this._eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.startAsync !== undefined) {\n await plugin.startAsync();\n } else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n this._engine.dispatchEvent(\"containerStarted\", {\n container: this\n });\n this.play();\n }\n stop() {\n var _a;\n if (!guardCheck(this) || !this.started) {\n return;\n }\n this._firstStart = true;\n this.started = false;\n this._eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.clear();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n (_a = plugin.stop) === null || _a === void 0 ? void 0 : _a.call(plugin);\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this._sourceOptions = this._options;\n this._engine.dispatchEvent(\"containerStopped\", {\n container: this\n });\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this._currentTheme);\n if (this.responsiveMaxWidth === newMaxWidth) {\n return false;\n }\n this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n _intersectionManager(entries) {\n if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n (entry.isIntersecting ? this.play : this.pause)();\n }\n }\n}","import { Container } from \"./Container\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nimport { getRandom } from \"../Utils/NumberUtils\";\nimport { itemFromSingleOrMultiple } from \"../Utils/Utils\";\nfunction fetchError(statusCode) {\n console.error(`tsParticles - Error ${statusCode} while retrieving config file`);\n}\nasync function getDataFromUrl(jsonUrl, index) {\n const url = itemFromSingleOrMultiple(jsonUrl, index);\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (response.ok) {\n return response.json();\n }\n fetchError(response.status);\n}\nexport class Loader {\n constructor(engine) {\n this._engine = engine;\n }\n load(tagId, options, index) {\n const params = {\n index,\n remote: false\n };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n } else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options;\n } else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async loadJSON(tagId, jsonUrl, index) {\n let url, id;\n if (typeof jsonUrl === \"number\" || jsonUrl === undefined) {\n url = tagId;\n } else {\n id = tagId;\n url = jsonUrl;\n }\n return this.loadRemoteOptions({\n tagId: id,\n url,\n index,\n remote: true\n });\n }\n async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(getRandom() * 10000)}`,\n {\n index,\n url: jsonUrl,\n remote\n } = params,\n options = remote ? await getDataFromUrl(jsonUrl, index) : params.options;\n let domContainer = (_b = params.element) !== null && _b !== void 0 ? _b : document.getElementById(tagId);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = tagId;\n (_c = document.querySelector(\"body\")) === null || _c === void 0 ? void 0 : _c.append(domContainer);\n }\n const currentOptions = itemFromSingleOrMultiple(options, index),\n dom = this._engine.dom(),\n oldIndex = dom.findIndex(v => v.id === tagId);\n if (oldIndex >= 0) {\n const old = this._engine.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n canvasEl.dataset[generatedAttribute] = \"false\";\n } else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n canvasEl.dataset[generatedAttribute] = \"false\";\n } else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[generatedAttribute] = \"true\";\n domContainer.appendChild(canvasEl);\n }\n }\n if (!canvasEl.style.width) {\n canvasEl.style.width = \"100%\";\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = \"100%\";\n }\n const newItem = new Container(this._engine, tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n } else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n async loadRemoteOptions(params) {\n return this.loadOptions(params);\n }\n async set(id, domContainer, options, index) {\n const params = {\n index,\n remote: false\n };\n if (typeof id === \"string\") {\n params.tagId = id;\n } else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n } else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n } else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async setJSON(id, domContainer, jsonUrl, index) {\n let url, newId, newIndex, element;\n if (id instanceof HTMLElement) {\n element = id;\n url = domContainer;\n newIndex = jsonUrl;\n } else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return this.loadRemoteOptions({\n tagId: newId,\n url,\n index: newIndex,\n element,\n remote: true\n });\n }\n}","function getItemsFromInitializer(container, map, initializers) {\n let force = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let res = map.get(container);\n if (!res || force) {\n res = [...initializers.values()].map(t => t(container));\n map.set(container, res);\n }\n return res;\n}\nexport class Plugins {\n constructor(engine) {\n this._engine = engine;\n this.plugins = [];\n this.interactorsInitializers = new Map();\n this.moversInitializers = new Map();\n this.updatersInitializers = new Map();\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.drawers = new Map();\n this.pathGenerators = new Map();\n }\n addInteractor(name, initInteractor) {\n this.interactorsInitializers.set(name, initInteractor);\n }\n addParticleMover(name, initMover) {\n this.moversInitializers.set(name, initMover);\n }\n addParticleUpdater(name, initUpdater) {\n this.updatersInitializers.set(name, initUpdater);\n }\n addPathGenerator(type, pathGenerator) {\n if (!this.getPathGenerator(type)) {\n this.pathGenerators.set(type, pathGenerator);\n }\n }\n addPlugin(plugin) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n }\n addPreset(presetKey, options) {\n let override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (override || !this.getPreset(presetKey)) {\n this.presets.set(presetKey, options);\n }\n }\n addShapeDrawer(type, drawer) {\n if (!this.getShapeDrawer(type)) {\n this.drawers.set(type, drawer);\n }\n }\n destroy(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (!plugin.needsPlugin(container.actualOptions)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n getInteractors(container) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return getItemsFromInitializer(container, this.interactors, this.interactorsInitializers, force);\n }\n getMovers(container) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return getItemsFromInitializer(container, this.movers, this.moversInitializers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.drawers.get(type);\n }\n getSupportedShapes() {\n return this.drawers.keys();\n }\n getUpdaters(container) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return getItemsFromInitializer(container, this.updaters, this.updatersInitializers, force);\n }\n loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n loadParticlesOptions(container, options) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n for (var _len = arguments.length, sourceOptions = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n sourceOptions[_key - 2] = arguments[_key];\n }\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(options, ...sourceOptions);\n }\n }\n }\n}","export class ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 0;\n }\n}","export class ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 1;\n }\n}","import { Engine } from \"./engine\";\nimport { HslColorManager } from \"./Utils/HslColorManager\";\nimport { RgbColorManager } from \"./Utils/RgbColorManager\";\nimport { addColorManager } from \"./Utils/ColorUtils\";\nconst rgbColorManager = new RgbColorManager(),\n hslColorManager = new HslColorManager();\naddColorManager(rgbColorManager);\naddColorManager(hslColorManager);\nconst tsParticles = new Engine();\ntsParticles.init();\nexport * from \"./Core/Interfaces/Colors\";\nexport * from \"./Core/Interfaces/IBounds\";\nexport * from \"./Core/Interfaces/IBubbleParticleData\";\nexport * from \"./Core/Interfaces/ICircleBouncer\";\nexport * from \"./Core/Interfaces/IColorManager\";\nexport * from \"./Core/Interfaces/IContainerInteractivity\";\nexport * from \"./Core/Interfaces/IContainerPlugin\";\nexport * from \"./Core/Interfaces/ICoordinates\";\nexport * from \"./Core/Interfaces/IDelta\";\nexport * from \"./Core/Interfaces/IDimension\";\nexport * from \"./Core/Interfaces/IDistance\";\nexport * from \"./Core/Interfaces/IExternalInteractor\";\nexport * from \"./Core/Interfaces/IInteractor\";\nexport * from \"./Core/Interfaces/IMouseData\";\nexport * from \"./Core/Interfaces/IMovePathGenerator\";\nexport * from \"./Core/Interfaces/IParticle\";\nexport * from \"./Core/Interfaces/IParticleColorStyle\";\nexport * from \"./Core/Interfaces/IParticleHslAnimation\";\nexport * from \"./Core/Interfaces/IParticlesInteractor\";\nexport * from \"./Core/Interfaces/IParticleLife\";\nexport * from \"./Core/Interfaces/IParticleRetinaProps\";\nexport * from \"./Core/Interfaces/IParticleRoll\";\nexport * from \"./Core/Interfaces/IParticleTransformValues\";\nexport * from \"./Core/Interfaces/IParticleUpdater\";\nexport * from \"./Core/Interfaces/IParticleValueAnimation\";\nexport * from \"./Core/Interfaces/IParticleWobble\";\nexport * from \"./Core/Interfaces/IParticlesMover\";\nexport * from \"./Core/Interfaces/IPlugin\";\nexport * from \"./Core/Interfaces/IRangeValue\";\nexport * from \"./Core/Interfaces/IRectSideResult\";\nexport * from \"./Core/Interfaces/IShapeDrawer\";\nexport * from \"./Core/Interfaces/IShapeValues\";\nexport * from \"./Core/Interfaces/ISlowParticleData\";\nexport * from \"./Core/Utils/Circle\";\nexport * from \"./Core/Utils/Constants\";\nexport * from \"./Core/Utils/ExternalInteractorBase\";\nexport * from \"./Core/Utils/ParticlesInteractorBase\";\nexport * from \"./Core/Utils/Point\";\nexport * from \"./Core/Utils/Range\";\nexport * from \"./Core/Utils/Rectangle\";\nexport * from \"./Core/Utils/Vector\";\nexport * from \"./Core/Utils/Vector3d\";\nexport * from \"./Enums/Directions/MoveDirection\";\nexport * from \"./Enums/Directions/RotateDirection\";\nexport * from \"./Enums/Directions/OutModeDirection\";\nexport * from \"./Enums/Modes/ClickMode\";\nexport * from \"./Enums/Modes/DivMode\";\nexport * from \"./Enums/Modes/HoverMode\";\nexport * from \"./Enums/Modes/CollisionMode\";\nexport * from \"./Enums/Modes/OutMode\";\nexport * from \"./Enums/Modes/SizeMode\";\nexport * from \"./Enums/Modes/ThemeMode\";\nexport * from \"./Enums/Modes/ResponsiveMode\";\nexport * from \"./Enums/Types/AlterType\";\nexport * from \"./Enums/Types/DestroyType\";\nexport * from \"./Enums/Types/GradientType\";\nexport * from \"./Enums/Types/InteractorType\";\nexport * from \"./Enums/Types/ParticleOutType\";\nexport * from \"./Enums/Types/StartValueType\";\nexport * from \"./Enums/Types/DivType\";\nexport * from \"./Enums/Types/EasingType\";\nexport * from \"./Enums/AnimationStatus\";\nexport * from \"./Enums/InteractivityDetect\";\nexport * from \"./Options/Classes/AnimatableColor\";\nexport * from \"./Options/Classes/AnimationOptions\";\nexport * from \"./Options/Classes/Background/Background\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMask\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMaskCover\";\nexport * from \"./Options/Classes/ColorAnimation\";\nexport * from \"./Options/Classes/FullScreen/FullScreen\";\nexport * from \"./Options/Classes/HslAnimation\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Events\";\nexport * from \"./Options/Classes/Interactivity/Events/HoverEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Parallax\";\nexport * from \"./Options/Classes/Interactivity/Interactivity\";\nexport * from \"./Options/Classes/Interactivity/Modes/Modes\";\nexport * from \"./Options/Classes/ManualParticle\";\nexport * from \"./Options/Classes/Motion/Motion\";\nexport * from \"./Options/Classes/Motion/MotionReduce\";\nexport * from \"./Options/Classes/Options\";\nexport * from \"./Options/Classes/OptionsColor\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounce\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounceFactor\";\nexport * from \"./Options/Classes/Particles/Collisions/Collisions\";\nexport * from \"./Options/Classes/Particles/Collisions/CollisionsOverlap\";\nexport * from \"./Options/Classes/Particles/ParticlesOptions\";\nexport * from \"./Options/Classes/Particles/Shadow\";\nexport * from \"./Options/Classes/Particles/Stroke\";\nexport * from \"./Options/Classes/Particles/Move/MoveAttract\";\nexport * from \"./Options/Classes/Particles/Move/Move\";\nexport * from \"./Options/Classes/Particles/Move/MoveAngle\";\nexport * from \"./Options/Classes/Particles/Move/MoveGravity\";\nexport * from \"./Options/Classes/Particles/Move/OutModes\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePath\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePathDelay\";\nexport * from \"./Options/Classes/Particles/Move/Spin\";\nexport * from \"./Options/Classes/Particles/Move/MoveTrail\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesNumber\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesDensity\";\nexport * from \"./Options/Classes/Particles/Opacity/Opacity\";\nexport * from \"./Options/Classes/Particles/Opacity/OpacityAnimation\";\nexport * from \"./Options/Classes/Particles/Shape/Shape\";\nexport * from \"./Options/Classes/Particles/Size/Size\";\nexport * from \"./Options/Classes/Particles/Size/SizeAnimation\";\nexport * from \"./Options/Classes/Particles/ZIndex/ZIndex\";\nexport * from \"./Options/Classes/Responsive\";\nexport * from \"./Options/Classes/Theme/Theme\";\nexport * from \"./Options/Classes/Theme/ThemeDefault\";\nexport * from \"./Options/Classes/ValueWithRandom\";\nexport * from \"./Options/Interfaces/Background/IBackground\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMask\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMaskCover\";\nexport * from \"./Options/Interfaces/FullScreen/IFullScreen\";\nexport * from \"./Options/Interfaces/IAnimatable\";\nexport * from \"./Options/Interfaces/IAnimatableColor\";\nexport * from \"./Options/Interfaces/IAnimation\";\nexport * from \"./Options/Interfaces/IColorAnimation\";\nexport * from \"./Options/Interfaces/IHslAnimation\";\nexport * from \"./Options/Interfaces/IManualParticle\";\nexport * from \"./Options/Interfaces/IOptionLoader\";\nexport * from \"./Options/Interfaces/IOptions\";\nexport * from \"./Options/Interfaces/IOptionsColor\";\nexport * from \"./Options/Interfaces/IResponsive\";\nexport * from \"./Options/Interfaces/IValueWithRandom\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IClickEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IDivEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IEvents\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IHoverEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IParallax\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModeDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModes\";\nexport * from \"./Options/Interfaces/Interactivity/IInteractivity\";\nexport * from \"./Options/Interfaces/Motion/IMotion\";\nexport * from \"./Options/Interfaces/Motion/IMotionReduce\";\nexport * from \"./Options/Interfaces/Particles/Bounce/IParticlesBounce\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisions\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisionsOverlap\";\nexport * from \"./Options/Interfaces/Particles/IParticlesOptions\";\nexport * from \"./Options/Interfaces/Particles/IShadow\";\nexport * from \"./Options/Interfaces/Particles/IStroke\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAttract\";\nexport * from \"./Options/Interfaces/Particles/Move/IMove\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAngle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveGravity\";\nexport * from \"./Options/Interfaces/Particles/Move/Path/IMovePath\";\nexport * from \"./Options/Interfaces/Particles/Move/IOutModes\";\nexport * from \"./Options/Interfaces/Particles/Move/ISpin\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveTrail\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesDensity\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesNumber\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacity\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacityAnimation\";\nexport * from \"./Options/Interfaces/Particles/Shape/ICharacterShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IImageShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IPolygonShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShapeValues\";\nexport * from \"./Options/Interfaces/Particles/Shape/IStarShape\";\nexport * from \"./Options/Interfaces/Particles/Size/ISize\";\nexport * from \"./Options/Interfaces/Particles/Size/ISizeAnimation\";\nexport * from \"./Options/Interfaces/Particles/ZIndex/IZIndex\";\nexport * from \"./Options/Interfaces/Theme/ITheme\";\nexport * from \"./Options/Interfaces/Theme/IThemeDefault\";\nexport * from \"./Types/RangeValue\";\nexport * from \"./Types/RecursivePartial\";\nexport * from \"./Types/ShapeData\";\nexport * from \"./Types/ShapeDrawerFunctions\";\nexport * from \"./Types/SingleOrMultiple\";\nexport * from \"./Types/PathOptions\";\nexport * from \"./Utils/CanvasUtils\";\nexport * from \"./Utils/ColorUtils\";\nexport * from \"./Utils/HslColorManager\";\nexport * from \"./Utils/NumberUtils\";\nexport * from \"./Utils/OptionsUtils\";\nexport * from \"./Utils/RgbColorManager\";\nexport * from \"./Utils/Utils\";\nexport { tsParticles };","import { getRangeValue, parseAlpha } from \"./NumberUtils\";\nexport class RgbColorManager {\n constructor() {\n this.key = \"rgb\";\n this.stringPrefix = \"rgb\";\n }\n handleColor(color) {\n var _a;\n const colorValue = color.value,\n rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n return rgbColor;\n }\n }\n handleRangeColor(color) {\n var _a;\n const colorValue = color.value,\n rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n return {\n r: getRangeValue(rgbColor.r),\n g: getRangeValue(rgbColor.g),\n b: getRangeValue(rgbColor.b)\n };\n }\n }\n parseString(input) {\n if (!input.startsWith(this.stringPrefix)) {\n return;\n }\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.%]+)\\s*)?\\)/i,\n result = regex.exec(input);\n return result ? {\n a: result.length > 4 ? parseAlpha(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10)\n } : undefined;\n }\n}","import { getRangeValue, parseAlpha } from \"./NumberUtils\";\nimport { hslToRgb, hslaToRgba } from \"./ColorUtils\";\nexport class HslColorManager {\n constructor() {\n this.key = \"hsl\";\n this.stringPrefix = \"hsl\";\n }\n handleColor(color) {\n var _a;\n const colorValue = color.value,\n hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n return hslToRgb(hslColor);\n }\n }\n handleRangeColor(color) {\n var _a;\n const colorValue = color.value,\n hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n return hslToRgb({\n h: getRangeValue(hslColor.h),\n l: getRangeValue(hslColor.l),\n s: getRangeValue(hslColor.s)\n });\n }\n }\n parseString(input) {\n if (!input.startsWith(\"hsl\")) {\n return;\n }\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.%]+)\\s*)?\\)/i,\n result = regex.exec(input);\n return result ? hslaToRgba({\n a: result.length > 4 ? parseAlpha(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10)\n }) : undefined;\n }\n}","import { EventDispatcher } from \"./Utils/EventDispatcher\";\nimport { Loader } from \"./Core/Loader\";\nimport { Plugins } from \"./Core/Utils/Plugins\";\nexport class Engine {\n constructor() {\n this._domArray = [];\n this._eventDispatcher = new EventDispatcher();\n this._initialized = false;\n this._loader = new Loader(this);\n this.plugins = new Plugins(this);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer) {\n this.plugins.addInteractor(name, interactorInitializer);\n await this.refresh();\n }\n async addMover(name, moverInitializer) {\n this.plugins.addParticleMover(name, moverInitializer);\n await this.refresh();\n }\n async addParticleUpdater(name, updaterInitializer) {\n this.plugins.addParticleUpdater(name, updaterInitializer);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n this.plugins.addPathGenerator(name, generator);\n await this.refresh();\n }\n async addPlugin(plugin) {\n this.plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPreset(preset, options) {\n let override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init\n };\n } else {\n customDrawer = drawer;\n }\n this.plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this._domArray;\n }\n domItem(index) {\n const dom = this.dom(),\n item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n init() {\n if (!this._initialized) {\n this._initialized = true;\n }\n }\n async load(tagId, options) {\n return this._loader.load(tagId, options);\n }\n async loadFromArray(tagId, options, index) {\n return this._loader.load(tagId, options, index);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return this._loader.loadJSON(tagId, pathConfigJson, index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n async set(id, element, options) {\n return this._loader.set(id, element, options);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return this._loader.setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n const dom = this.dom();\n if (!dom.length) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n}","\"use strict\";\n\n(function () {\n \"use strict\";\n\n try {\n if (typeof window === \"undefined\") return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList) this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._r1 + \" \" + this._r2 + \" \" + this._angle + \" \" + (this._largeArcFlag ? \"1\" : \"0\") + \" \" + (this._sweepFlag ? \"1\" : \"0\") + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._r1 + \" \" + this._r2 + \" \" + this._angle + \" \" + (this._largeArcFlag ? \"1\" : \"0\") + \" \" + (this._sweepFlag ? \"1\" : \"0\") + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance)) throw \"Invalid arguments.\";\n const measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0) return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength()) break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = {\n attributes: true,\n attributeFilter: [\"d\"]\n };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList) this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement) return;\n let hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\") hasPathMutations = true;\n });\n if (hasPathMutations) this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function (pathSeg) {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems) throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems) index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n let string = \"\";\n let first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n } else {\n string += \" \" + pathSeg._asPathString();\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string || string.length == 0) return [];\n const owningPathSegList = this;\n const Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n const Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n const character = this._string[this._currentIndex];\n return character <= \" \" && (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\");\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace()) this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex && !this._isCurrentSpace() && this._string.charAt(this._currentIndex) != \",\") return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || lookahead >= \"0\" && lookahead <= \"9\") && previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS) return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL) return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData()) return true;\n const command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n const startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\") this._currentIndex++;else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex || (this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") && this._string.charAt(this._currentIndex) != \".\") return undefined;\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") && this._string.charAt(this._currentIndex + 1) != \"x\" && this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n } else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n let number = integer + decimal;\n number *= sign;\n if (exponent) number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex) return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex) return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\") flag = false;else if (flagChar == \"1\") flag = true;else return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n } else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n let points;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n const builder = new Builder();\n const source = new Source(string);\n if (!source.initialCommandIsMoveTo()) return [];\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg) return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n } catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles\", e);\n }\n})();","export class AbsorberSizeLimit {\n constructor() {\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}","import { AbsorberSizeLimit } from \"./AbsorberSizeLimit\";\nimport { ValueWithRandom } from \"tsparticles-engine\";\nexport class AbsorberSize extends ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new AbsorberSizeLimit();\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if (typeof data.limit === \"number\") {\n this.limit.radius = data.limit;\n } else {\n this.limit.load(data.limit);\n }\n }\n}","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nimport { AbsorberSize } from \"./AbsorberSize\";\nexport class Absorber {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = setRangeValue(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = setRangeValue(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}","import { Vector, calcPositionOrRandomFromSize, calcPositionOrRandomFromSizeRanged, getDistance, getDistances, getRandom, getRangeValue, getStyleFromRgb, isPointInside, rangeColorToRgb } from \"tsparticles-engine\";\nimport { Absorber } from \"./Options/Classes/Absorber\";\nexport class AbsorberInstance {\n constructor(absorbers, container, options, position) {\n var _a, _b, _c;\n this.absorbers = absorbers;\n this.container = container;\n this.initialPosition = position ? Vector.create(position.x, position.y) : undefined;\n if (options instanceof Absorber) {\n this.options = options;\n } else {\n this.options = new Absorber();\n this.options.load(options);\n }\n this.dragging = false;\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = getRangeValue(this.options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * this.options.size.density * container.retina.reduceFactor;\n const limit = this.options.size.limit;\n this.limit = {\n radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: limit.mass\n };\n this.color = (_a = rangeColorToRgb(this.options.color)) !== null && _a !== void 0 ? _a : {\n b: 0,\n g: 0,\n r: 0\n };\n this.position = (_c = (_b = this.initialPosition) === null || _b === void 0 ? void 0 : _b.copy()) !== null && _c !== void 0 ? _c : this.calcPosition();\n }\n attract(particle) {\n const container = this.container,\n options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = getDistance(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n } else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition(),\n {\n dx,\n dy,\n distance\n } = getDistances(this.position, pos),\n v = Vector.create(dx, dy);\n v.length = this.mass / Math.pow(distance, 2) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * 0.033 * container.retina.pixelRatio;\n if (this.size > particle.getRadius() && distance < this.size - particle.getRadius() || particle.absorberOrbit !== undefined && particle.absorberOrbit.length < 0) {\n if (options.destroy) {\n particle.destroy();\n } else {\n particle.needsNewPosition = true;\n this.updateParticlePosition(particle, v);\n }\n } else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this.updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= 0 || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= 0 || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n } else {\n this.updateParticlePosition(particle, v);\n }\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(0, 0, this.size, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStyle = getStyleFromRgb(this.color, this.opacity);\n context.fill();\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position = initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin) ? initialPosition : this.calcPosition();\n }\n calcPosition() {\n const exactPosition = calcPositionOrRandomFromSizeRanged({\n size: this.container.canvas.size,\n position: this.options.position\n });\n return Vector.create(exactPosition.x, exactPosition.y);\n }\n updateParticlePosition(particle, v) {\n var _a;\n if (particle.destroyed) {\n return;\n }\n const container = this.container,\n canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n const newPosition = calcPositionOrRandomFromSize({\n size: canvasSize\n });\n particle.position.setTo(newPosition);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = Vector.create(0, 0);\n particle.absorberOrbit.length = getDistance(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = getRandom() * Math.PI * 2;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height);\n particle.absorberOrbit.length = minSize * (1 + (getRandom() * 0.2 - 0.1));\n }\n if (particle.absorberOrbitDirection === undefined) {\n particle.absorberOrbitDirection = particle.velocity.x >= 0 ? \"clockwise\" : \"counter-clockwise\";\n }\n const orbitRadius = particle.absorberOrbit.length,\n orbitAngle = particle.absorberOrbit.angle,\n orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.setTo(Vector.origin);\n const updateFunc = {\n x: orbitDirection === \"clockwise\" ? Math.cos : Math.sin,\n y: orbitDirection === \"clockwise\" ? Math.sin : Math.cos\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle += ((_a = particle.retina.moveSpeed) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio / 100 * container.retina.reduceFactor;\n } else {\n const addV = Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n }\n}","import { executeOnSingleOrMultiple, itemFromSingleOrMultiple } from \"tsparticles-engine\";\nimport { Absorber } from \"./Options/Classes/Absorber\";\nimport { AbsorberInstance } from \"./AbsorberInstance\";\nexport class Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n container.getAbsorber = idxOrName => idxOrName === undefined || typeof idxOrName === \"number\" ? this.array[idxOrName || 0] : this.array.find(t => t.name === idxOrName);\n container.addAbsorber = (options, position) => this.addAbsorber(options, position);\n }\n addAbsorber(options, position) {\n const absorber = new AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n draw(context) {\n for (const absorber of this.array) {\n context.save();\n absorber.draw(context);\n context.restore();\n }\n }\n handleClickMode(mode) {\n const absorberOptions = this.absorbers,\n modeAbsorbers = this.interactivityAbsorbers;\n if (mode === \"absorber\") {\n const absorbersModeOptions = itemFromSingleOrMultiple(modeAbsorbers),\n absorbersOptions = absorbersModeOptions !== null && absorbersModeOptions !== void 0 ? absorbersModeOptions : itemFromSingleOrMultiple(absorberOptions),\n aPosition = this.container.interactivity.mouse.clickPosition;\n this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n this.absorbers = executeOnSingleOrMultiple(options.absorbers, absorber => {\n const tmp = new Absorber();\n tmp.load(absorber);\n return tmp;\n });\n this.interactivityAbsorbers = executeOnSingleOrMultiple((_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers, absorber => {\n const tmp = new Absorber();\n tmp.load(absorber);\n return tmp;\n });\n executeOnSingleOrMultiple(this.absorbers, absorber => {\n this.addAbsorber(absorber);\n });\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n stop() {\n this.array = [];\n }\n}","import { executeOnSingleOrMultiple, isInArray } from \"tsparticles-engine\";\nimport { Absorber } from \"./Options/Classes/Absorber\";\nimport { Absorbers } from \"./Absorbers\";\nclass AbsorbersPlugin {\n constructor() {\n this.id = \"absorbers\";\n }\n getPlugin(container) {\n return new Absorbers(container);\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.absorbers) {\n optionsCast.absorbers = executeOnSingleOrMultiple(source.absorbers, absorber => {\n const tmp = new Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n optionsCast.interactivity.modes.absorbers = executeOnSingleOrMultiple((_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers, absorber => {\n const tmp = new Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (!options) {\n return false;\n }\n const absorbers = options.absorbers;\n if (absorbers instanceof Array) {\n return !!absorbers.length;\n } else if (absorbers) {\n return true;\n } else if (((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) && isInArray(\"absorber\", options.interactivity.events.onClick.mode)) {\n return true;\n }\n return false;\n }\n}\nexport async function loadAbsorbersPlugin(engine) {\n const plugin = new AbsorbersPlugin();\n await engine.addPlugin(plugin);\n}\nexport * from \"./AbsorberContainer\";\nexport * from \"./Enums/AbsorberClickMode\";\nexport * from \"./Options/Interfaces/IAbsorberOptions\";","import { setRangeValue } from \"tsparticles-engine\";\nexport class DestroyBounds {\n load(data) {\n if (!data) {\n return;\n }\n if (data.bottom !== undefined) {\n this.bottom = setRangeValue(data.bottom);\n }\n if (data.left !== undefined) {\n this.left = setRangeValue(data.left);\n }\n if (data.right !== undefined) {\n this.right = setRangeValue(data.right);\n }\n if (data.top !== undefined) {\n this.top = setRangeValue(data.top);\n }\n }\n}","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class SplitFactor extends ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class SplitRate extends ValueWithRandom {\n constructor() {\n super();\n this.value = {\n min: 4,\n max: 9\n };\n }\n}","import { deepExtend, executeOnSingleOrMultiple } from \"tsparticles-engine\";\nimport { SplitFactor } from \"./SplitFactor\";\nimport { SplitRate } from \"./SplitRate\";\nexport class Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor();\n this.rate = new SplitRate();\n this.sizeOffset = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.factor.load(data.factor);\n this.rate.load(data.rate);\n this.particles = executeOnSingleOrMultiple(data.particles, particles => {\n return deepExtend({}, particles);\n });\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n }\n}","import { DestroyBounds } from \"./DestroyBounds\";\nimport { Split } from \"./Split\";\nexport class Destroy {\n constructor() {\n this.bounds = new DestroyBounds();\n this.mode = \"none\";\n this.split = new Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode) {\n this.mode = data.mode;\n }\n if (data.bounds) {\n this.bounds.load(data.bounds);\n }\n this.split.load(data.split);\n }\n}","import { getRangeValue, getValue, itemFromSingleOrMultiple, loadParticlesOptions, randomInRange, setRangeValue } from \"tsparticles-engine\";\nimport { Destroy } from \"./Options/Classes/Destroy\";\nexport class DestroyUpdater {\n constructor(engine, container) {\n this.engine = engine;\n this.container = container;\n }\n init(particle) {\n const container = this.container,\n particlesOptions = particle.options,\n destroyOptions = particlesOptions.destroy;\n if (!destroyOptions) {\n return;\n }\n particle.splitCount = 0;\n const destroyBounds = destroyOptions.bounds;\n if (!particle.destroyBounds) {\n particle.destroyBounds = {};\n }\n if (destroyBounds.bottom) {\n particle.destroyBounds.bottom = getRangeValue(destroyBounds.bottom) * container.canvas.size.height / 100;\n }\n if (destroyBounds.left) {\n particle.destroyBounds.left = getRangeValue(destroyBounds.left) * container.canvas.size.width / 100;\n }\n if (destroyBounds.right) {\n particle.destroyBounds.right = getRangeValue(destroyBounds.right) * container.canvas.size.width / 100;\n }\n if (destroyBounds.top) {\n particle.destroyBounds.top = getRangeValue(destroyBounds.top) * container.canvas.size.height / 100;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options) {\n if (!options.destroy) {\n options.destroy = new Destroy();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.destroy.load(source === null || source === void 0 ? void 0 : source.destroy);\n }\n }\n particleDestroyed(particle, override) {\n if (override) {\n return;\n }\n const destroyOptions = particle.options.destroy;\n if (destroyOptions && destroyOptions.mode === \"split\") {\n this.split(particle);\n }\n }\n update(particle) {\n if (!this.isEnabled(particle)) {\n return;\n }\n const position = particle.getPosition(),\n bounds = particle.destroyBounds;\n if (!bounds) {\n return;\n }\n if (bounds.bottom !== undefined && position.y >= bounds.bottom || bounds.left !== undefined && position.x <= bounds.left || bounds.right !== undefined && position.x >= bounds.right || bounds.top !== undefined && position.y <= bounds.top) {\n particle.destroy();\n }\n }\n addSplitParticle(parent, splitParticlesOptions) {\n const destroyOptions = parent.options.destroy;\n if (!destroyOptions) {\n return;\n }\n const splitOptions = destroyOptions.split,\n options = loadParticlesOptions(this.engine, this.container, parent.options),\n factor = getValue(splitOptions.factor);\n options.color.load({\n value: {\n hsl: parent.getFillColor()\n }\n });\n options.move.load({\n center: {\n x: parent.position.x,\n y: parent.position.y,\n mode: \"precise\"\n }\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n } else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitParticlesOptions);\n const offset = splitOptions.sizeOffset ? setRangeValue(-parent.size.value, parent.size.value) : 0,\n position = {\n x: parent.position.x + randomInRange(offset),\n y: parent.position.y + randomInRange(offset)\n };\n return this.container.particles.addParticle(position, options, parent.group, particle => {\n var _a;\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = randomInRange(setRangeValue(parent.velocity.length, particle.velocity.length));\n particle.splitCount = ((_a = parent.splitCount) !== null && _a !== void 0 ? _a : 0) + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n split(particle) {\n const destroyOptions = particle.options.destroy;\n if (!destroyOptions) {\n return;\n }\n const splitOptions = destroyOptions.split;\n if (splitOptions.count >= 0 && (particle.splitCount === undefined || particle.splitCount++ > splitOptions.count)) {\n return;\n }\n const rate = getValue(splitOptions.rate),\n particlesSplitOptions = itemFromSingleOrMultiple(splitOptions.particles);\n for (let i = 0; i < rate; i++) {\n this.addSplitParticle(particle, particlesSplitOptions);\n }\n }\n}","import { getRandom } from \"tsparticles-engine\";\nexport class CircleShape {\n randomPosition(position, size, fill) {\n const generateTheta = (x, y) => {\n const u = getRandom() / 4.0,\n theta = Math.atan(y / x * Math.tan(2 * Math.PI * u)),\n v = getRandom();\n if (v < 0.25) {\n return theta;\n } else if (v < 0.5) {\n return Math.PI - theta;\n } else if (v < 0.75) {\n return Math.PI + theta;\n } else {\n return -theta;\n }\n },\n radius = (x, y, theta) => x * y / Math.sqrt((y * Math.cos(theta)) ** 2 + (x * Math.sin(theta)) ** 2),\n [a, b] = [size.width / 2, size.height / 2],\n randomTheta = generateTheta(a, b),\n maxRadius = radius(a, b, randomTheta),\n randomRadius = fill ? maxRadius * Math.sqrt(getRandom()) : maxRadius;\n return {\n x: position.x + randomRadius * Math.cos(randomTheta),\n y: position.y + randomRadius * Math.sin(randomTheta)\n };\n }\n}","export class EmitterLife {\n constructor() {\n this.wait = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}","import { setRangeValue } from \"tsparticles-engine\";\nexport class EmitterRate {\n constructor() {\n this.quantity = 1;\n this.delay = 0.1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.quantity !== undefined) {\n this.quantity = setRangeValue(data.quantity);\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n }\n}","export class EmitterSize {\n constructor() {\n this.mode = \"percent\";\n this.height = 0;\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}","import { AnimatableColor, deepExtend, executeOnSingleOrMultiple, setRangeValue } from \"tsparticles-engine\";\nimport { EmitterLife } from \"./EmitterLife\";\nimport { EmitterRate } from \"./EmitterRate\";\nimport { EmitterSize } from \"./EmitterSize\";\nexport class Emitter {\n constructor() {\n this.autoPlay = true;\n this.fill = true;\n this.life = new EmitterLife();\n this.rate = new EmitterRate();\n this.shape = \"square\";\n this.startCount = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.size !== undefined) {\n if (this.size === undefined) {\n this.size = new EmitterSize();\n }\n this.size.load(data.size);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.domId = data.domId;\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n this.life.load(data.life);\n this.name = data.name;\n this.particles = executeOnSingleOrMultiple(data.particles, particles => {\n return deepExtend({}, particles);\n });\n this.rate.load(data.rate);\n if (data.shape !== undefined) {\n this.shape = data.shape;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = setRangeValue(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = setRangeValue(data.position.y);\n }\n }\n if (data.spawnColor !== undefined) {\n if (this.spawnColor === undefined) {\n this.spawnColor = new AnimatableColor();\n }\n this.spawnColor.load(data.spawnColor);\n }\n if (data.startCount !== undefined) {\n this.startCount = data.startCount;\n }\n }\n}","import { Vector, calcPositionOrRandomFromSizeRanged, deepExtend, getRangeValue, isPointInside, itemFromSingleOrMultiple, randomInRange, rangeColorToHsl } from \"tsparticles-engine\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { EmitterSize } from \"./Options/Classes/EmitterSize\";\nexport class EmitterInstance {\n constructor(engine, emitters, container, options, position) {\n var _a, _b, _c, _d, _e, _f, _g;\n var _h;\n this.emitters = emitters;\n this.container = container;\n this._engine = engine;\n this._currentDuration = 0;\n this._currentEmitDelay = 0;\n this._currentSpawnDelay = 0;\n this._initialPosition = position;\n if (options instanceof Emitter) {\n this.options = options;\n } else {\n this.options = new Emitter();\n this.options.load(options);\n }\n this._spawnDelay = ((_a = this.options.life.delay) !== null && _a !== void 0 ? _a : 0) * 1000 / this.container.retina.reduceFactor;\n this.position = (_b = this._initialPosition) !== null && _b !== void 0 ? _b : this.calcPosition();\n this.name = this.options.name;\n this._shape = (_c = this._engine.emitterShapeManager) === null || _c === void 0 ? void 0 : _c.getShape(this.options.shape);\n this.fill = this.options.fill;\n this._firstSpawn = !this.options.life.wait;\n this._startParticlesAdded = false;\n let particlesOptions = deepExtend({}, this.options.particles);\n particlesOptions !== null && particlesOptions !== void 0 ? particlesOptions : particlesOptions = {};\n (_d = particlesOptions.move) !== null && _d !== void 0 ? _d : particlesOptions.move = {};\n (_e = (_h = particlesOptions.move).direction) !== null && _e !== void 0 ? _e : _h.direction = this.options.direction;\n if (this.options.spawnColor) {\n this.spawnColor = rangeColorToHsl(this.options.spawnColor);\n }\n this._paused = !this.options.autoPlay;\n this._particlesOptions = particlesOptions;\n this.size = (_f = this.options.size) !== null && _f !== void 0 ? _f : (() => {\n const size = new EmitterSize();\n size.load({\n height: 0,\n mode: \"percent\",\n width: 0\n });\n return size;\n })();\n this._lifeCount = (_g = this.options.life.count) !== null && _g !== void 0 ? _g : -1;\n this._immortal = this._lifeCount <= 0;\n this._engine.dispatchEvent(\"emitterCreated\", {\n container,\n data: {\n emitter: this\n }\n });\n this.play();\n }\n externalPause() {\n this._paused = true;\n this.pause();\n }\n externalPlay() {\n this._paused = false;\n this.play();\n }\n getPosition() {\n if (this.options.domId) {\n const container = this.container,\n element = document.getElementById(this.options.domId);\n if (element) {\n const elRect = element.getBoundingClientRect();\n return {\n x: (elRect.x + elRect.width / 2) * container.retina.pixelRatio,\n y: (elRect.y + elRect.height / 2) * container.retina.pixelRatio\n };\n }\n }\n return this.position;\n }\n getSize() {\n const container = this.container;\n if (this.options.domId) {\n const element = document.getElementById(this.options.domId);\n if (element) {\n const elRect = element.getBoundingClientRect();\n return {\n width: elRect.width * container.retina.pixelRatio,\n height: elRect.height * container.retina.pixelRatio\n };\n }\n }\n return {\n width: this.size.mode === \"percent\" ? container.canvas.size.width * this.size.width / 100 : this.size.width,\n height: this.size.mode === \"percent\" ? container.canvas.size.height * this.size.height / 100 : this.size.height\n };\n }\n pause() {\n if (this._paused) {\n return;\n }\n delete this._emitDelay;\n }\n play() {\n var _a;\n if (this._paused) {\n return;\n }\n if (!(this.container.retina.reduceFactor && (this._lifeCount > 0 || this._immortal || !this.options.life.count) && (this._firstSpawn || this._currentSpawnDelay >= ((_a = this._spawnDelay) !== null && _a !== void 0 ? _a : 0)))) {\n return;\n }\n if (this._emitDelay === undefined) {\n const delay = getRangeValue(this.options.rate.delay);\n this._emitDelay = 1000 * delay / this.container.retina.reduceFactor;\n }\n if (this._lifeCount > 0 || this._immortal) {\n this.prepareToDie();\n }\n }\n resize() {\n const initialPosition = this._initialPosition;\n this.position = initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin) ? initialPosition : this.calcPosition();\n }\n update(delta) {\n var _a, _b, _c;\n if (this._paused) {\n return;\n }\n if (this._firstSpawn) {\n this._firstSpawn = false;\n this._currentSpawnDelay = (_a = this._spawnDelay) !== null && _a !== void 0 ? _a : 0;\n this._currentEmitDelay = (_b = this._emitDelay) !== null && _b !== void 0 ? _b : 0;\n }\n if (!this._startParticlesAdded) {\n this._startParticlesAdded = true;\n this.emitParticles(this.options.startCount);\n }\n if (this._duration !== undefined) {\n this._currentDuration += delta.value;\n if (this._currentDuration >= this._duration) {\n this.pause();\n if (this._spawnDelay !== undefined) {\n delete this._spawnDelay;\n }\n if (!this._immortal) {\n this._lifeCount--;\n }\n if (this._lifeCount > 0 || this._immortal) {\n this.position = this.calcPosition();\n this._spawnDelay = ((_c = this.options.life.delay) !== null && _c !== void 0 ? _c : 0) * 1000 / this.container.retina.reduceFactor;\n } else {\n this.destroy();\n }\n this._currentDuration -= this._duration;\n delete this._duration;\n }\n }\n if (this._spawnDelay !== undefined) {\n this._currentSpawnDelay += delta.value;\n if (this._currentSpawnDelay >= this._spawnDelay) {\n this._engine.dispatchEvent(\"emitterPlay\", {\n container: this.container\n });\n this.play();\n this._currentSpawnDelay -= this._currentSpawnDelay;\n delete this._spawnDelay;\n }\n }\n if (this._emitDelay !== undefined) {\n this._currentEmitDelay += delta.value;\n if (this._currentEmitDelay >= this._emitDelay) {\n this.emit();\n this._currentEmitDelay -= this._emitDelay;\n }\n }\n }\n calcPosition() {\n return calcPositionOrRandomFromSizeRanged({\n size: this.container.canvas.size,\n position: this.options.position\n });\n }\n destroy() {\n this.emitters.removeEmitter(this);\n this._engine.dispatchEvent(\"emitterDestroyed\", {\n container: this.container,\n data: {\n emitter: this\n }\n });\n }\n emit() {\n if (this._paused) {\n return;\n }\n const quantity = getRangeValue(this.options.rate.quantity);\n this.emitParticles(quantity);\n }\n emitParticles(quantity) {\n var _a, _b, _c;\n const position = this.getPosition(),\n size = this.getSize(),\n singleParticlesOptions = itemFromSingleOrMultiple(this._particlesOptions);\n for (let i = 0; i < quantity; i++) {\n const particlesOptions = deepExtend({}, singleParticlesOptions);\n if (this.spawnColor) {\n const hslAnimation = (_a = this.options.spawnColor) === null || _a === void 0 ? void 0 : _a.animation;\n if (hslAnimation) {\n this.spawnColor.h = this.setColorAnimation(hslAnimation.h, this.spawnColor.h, 360);\n this.spawnColor.s = this.setColorAnimation(hslAnimation.s, this.spawnColor.s, 100);\n this.spawnColor.l = this.setColorAnimation(hslAnimation.l, this.spawnColor.l, 100);\n }\n if (!particlesOptions.color) {\n particlesOptions.color = {\n value: this.spawnColor\n };\n } else {\n particlesOptions.color.value = this.spawnColor;\n }\n }\n if (!position) {\n return;\n }\n const pPosition = (_c = (_b = this._shape) === null || _b === void 0 ? void 0 : _b.randomPosition(position, size, this.fill)) !== null && _c !== void 0 ? _c : position;\n this.container.particles.addParticle(pPosition, particlesOptions);\n }\n }\n prepareToDie() {\n var _a;\n if (this._paused) {\n return;\n }\n const duration = (_a = this.options.life) === null || _a === void 0 ? void 0 : _a.duration;\n if (this.container.retina.reduceFactor && (this._lifeCount > 0 || this._immortal) && duration !== undefined && duration > 0) {\n this._duration = duration * 1000;\n }\n }\n setColorAnimation(animation, initValue, maxValue) {\n var _a;\n const container = this.container;\n if (!animation.enable) {\n return initValue;\n }\n const colorOffset = randomInRange(animation.offset),\n delay = getRangeValue(this.options.rate.delay),\n emitFactor = 1000 * delay / container.retina.reduceFactor,\n colorSpeed = getRangeValue((_a = animation.speed) !== null && _a !== void 0 ? _a : 0);\n return (initValue + colorSpeed * container.fpsLimit / emitFactor + colorOffset * 3.6) % maxValue;\n }\n}","import { arrayRandomIndex, executeOnSingleOrMultiple, itemFromArray } from \"tsparticles-engine\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { EmitterInstance } from \"./EmitterInstance\";\nexport class Emitters {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this.array = [];\n this.emitters = [];\n this.interactivityEmitters = {\n random: {\n count: 1,\n enable: false\n },\n value: []\n };\n container.getEmitter = idxOrName => idxOrName === undefined || typeof idxOrName === \"number\" ? this.array[idxOrName || 0] : this.array.find(t => t.name === idxOrName);\n container.addEmitter = (options, position) => this.addEmitter(options, position);\n container.removeEmitter = idxOrName => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n this.removeEmitter(emitter);\n }\n };\n container.playEmitter = idxOrName => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPlay();\n }\n };\n container.pauseEmitter = idxOrName => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPause();\n }\n };\n }\n addEmitter(options, position) {\n const emitterOptions = new Emitter();\n emitterOptions.load(options);\n const emitter = new EmitterInstance(this._engine, this, this.container, emitterOptions, position);\n this.array.push(emitter);\n return emitter;\n }\n handleClickMode(mode) {\n const emitterOptions = this.emitters,\n modeEmitters = this.interactivityEmitters;\n if (mode === \"emitter\") {\n let emittersModeOptions;\n if (modeEmitters && modeEmitters.value instanceof Array) {\n if (modeEmitters.value.length > 0 && modeEmitters.random.enable) {\n emittersModeOptions = [];\n const usedIndexes = [];\n for (let i = 0; i < modeEmitters.random.count; i++) {\n const idx = arrayRandomIndex(modeEmitters.value);\n if (usedIndexes.includes(idx) && usedIndexes.length < modeEmitters.value.length) {\n i--;\n continue;\n }\n usedIndexes.push(idx);\n emittersModeOptions.push(itemFromArray(modeEmitters.value, idx));\n }\n } else {\n emittersModeOptions = modeEmitters.value;\n }\n } else {\n emittersModeOptions = modeEmitters === null || modeEmitters === void 0 ? void 0 : modeEmitters.value;\n }\n const emittersOptions = emittersModeOptions !== null && emittersModeOptions !== void 0 ? emittersModeOptions : emitterOptions,\n ePosition = this.container.interactivity.mouse.clickPosition;\n executeOnSingleOrMultiple(emittersOptions, emitter => {\n this.addEmitter(emitter, ePosition);\n });\n }\n }\n init(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!options) {\n return;\n }\n this.emitters = executeOnSingleOrMultiple(options.emitters, emitter => {\n const tmp = new Emitter();\n tmp.load(emitter);\n return tmp;\n });\n const interactivityEmitters = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n this.interactivityEmitters = {\n random: {\n count: 1,\n enable: true\n },\n value: interactivityEmitters.map(s => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n })\n };\n } else {\n const emitterMode = interactivityEmitters;\n if (emitterMode.value !== undefined) {\n if (emitterMode.value instanceof Array) {\n this.interactivityEmitters = {\n random: {\n count: (_c = this.interactivityEmitters.random.count) !== null && _c !== void 0 ? _c : 1,\n enable: (_d = this.interactivityEmitters.random.enable) !== null && _d !== void 0 ? _d : false\n },\n value: emitterMode.value.map(s => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n })\n };\n } else {\n const tmp = new Emitter();\n tmp.load(emitterMode.value);\n this.interactivityEmitters = {\n random: {\n count: (_e = this.interactivityEmitters.random.count) !== null && _e !== void 0 ? _e : 1,\n enable: (_f = this.interactivityEmitters.random.enable) !== null && _f !== void 0 ? _f : false\n },\n value: tmp\n };\n }\n } else {\n const tmp = new Emitter();\n tmp.load(interactivityEmitters);\n this.interactivityEmitters = {\n random: {\n count: (_g = this.interactivityEmitters.random.count) !== null && _g !== void 0 ? _g : 1,\n enable: (_h = this.interactivityEmitters.random.enable) !== null && _h !== void 0 ? _h : false\n },\n value: tmp\n };\n }\n }\n }\n if (this.emitters instanceof Array) {\n for (const emitterOptions of this.emitters) {\n this.addEmitter(emitterOptions);\n }\n } else {\n this.addEmitter(this.emitters);\n }\n }\n pause() {\n for (const emitter of this.array) {\n emitter.pause();\n }\n }\n play() {\n for (const emitter of this.array) {\n emitter.play();\n }\n }\n removeEmitter(emitter) {\n const index = this.array.indexOf(emitter);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n resize() {\n for (const emitter of this.array) {\n emitter.resize();\n }\n }\n stop() {\n this.array = [];\n }\n update(delta) {\n for (const emitter of this.array) {\n emitter.update(delta);\n }\n }\n}","const shapes = new Map();\nexport class ShapeManager {\n constructor(engine) {\n this._engine = engine;\n }\n addShape(name, drawer) {\n if (!this.getShape(name)) {\n shapes.set(name, drawer);\n }\n }\n getShape(name) {\n return shapes.get(name);\n }\n getSupportedShapes() {\n return shapes.keys();\n }\n}","import { getRandom } from \"tsparticles-engine\";\nfunction randomSquareCoordinate(position, offset) {\n return position + offset * (getRandom() - 0.5);\n}\nexport class SquareShape {\n randomPosition(position, size, fill) {\n if (fill) {\n return {\n x: randomSquareCoordinate(position.x, size.width),\n y: randomSquareCoordinate(position.y, size.height)\n };\n } else {\n const halfW = size.width / 2,\n halfH = size.height / 2,\n side = Math.floor(getRandom() * 4),\n v = (getRandom() - 0.5) * 2;\n switch (side) {\n case 0:\n return {\n x: position.x + v * halfW,\n y: position.y - halfH\n };\n case 1:\n return {\n x: position.x - halfW,\n y: position.y + v * halfH\n };\n case 2:\n return {\n x: position.x + v * halfW,\n y: position.y + halfH\n };\n case 3:\n default:\n return {\n x: position.x + halfW,\n y: position.y + v * halfH\n };\n }\n }\n }\n}","import { executeOnSingleOrMultiple, isInArray } from \"tsparticles-engine\";\nimport { CircleShape } from \"./Shapes/Circle/CircleShape\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { Emitters } from \"./Emitters\";\nimport { ShapeManager } from \"./ShapeManager\";\nimport { SquareShape } from \"./Shapes/Square/SquareShape\";\nclass EmittersPlugin {\n constructor(engine) {\n this._engine = engine;\n this.id = \"emitters\";\n }\n getPlugin(container) {\n return new Emitters(this._engine, container);\n }\n loadOptions(options, source) {\n var _a, _b, _c, _d, _e, _f;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.emitters) {\n optionsCast.emitters = executeOnSingleOrMultiple(source.emitters, emitter => {\n const tmp = new Emitter();\n tmp.load(emitter);\n return tmp;\n });\n }\n const interactivityEmitters = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n optionsCast.interactivity.modes.emitters = {\n random: {\n count: 1,\n enable: true\n },\n value: interactivityEmitters.map(s => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n })\n };\n } else {\n const emitterMode = interactivityEmitters;\n if (emitterMode.value !== undefined) {\n if (emitterMode.value instanceof Array) {\n optionsCast.interactivity.modes.emitters = {\n random: {\n count: (_c = emitterMode.random.count) !== null && _c !== void 0 ? _c : 1,\n enable: (_d = emitterMode.random.enable) !== null && _d !== void 0 ? _d : false\n },\n value: emitterMode.value.map(s => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n })\n };\n } else {\n const tmp = new Emitter();\n tmp.load(emitterMode.value);\n optionsCast.interactivity.modes.emitters = {\n random: {\n count: (_e = emitterMode.random.count) !== null && _e !== void 0 ? _e : 1,\n enable: (_f = emitterMode.random.enable) !== null && _f !== void 0 ? _f : false\n },\n value: tmp\n };\n }\n } else {\n const emitterOptions = optionsCast.interactivity.modes.emitters = {\n random: {\n count: 1,\n enable: false\n },\n value: new Emitter()\n };\n emitterOptions.value.load(interactivityEmitters);\n }\n }\n }\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (!options) {\n return false;\n }\n const emitters = options.emitters;\n return emitters instanceof Array && !!emitters.length || emitters !== undefined || !!((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) && isInArray(\"emitter\", options.interactivity.events.onClick.mode);\n }\n}\nexport async function loadEmittersPlugin(engine) {\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new ShapeManager(engine);\n }\n if (!engine.addEmitterShape) {\n engine.addEmitterShape = (name, shape) => {\n var _a;\n (_a = engine.emitterShapeManager) === null || _a === void 0 ? void 0 : _a.addShape(name, shape);\n };\n }\n const plugin = new EmittersPlugin(engine);\n await engine.addPlugin(plugin);\n engine.addEmitterShape(\"circle\", new CircleShape());\n engine.addEmitterShape(\"square\", new SquareShape());\n}\nexport * from \"./EmitterContainer\";\nexport * from \"./EmittersEngine\";\nexport * from \"./Enums/EmitterClickMode\";\nexport * from \"./Enums/EmitterShapeType\";\nexport * from \"./Options/Interfaces/IEmitterOptions\";","import { deepExtend } from \"tsparticles-engine\";\nexport class Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = deepExtend({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}","import { ExternalInteractorBase, isInArray } from \"tsparticles-engine\";\nimport { Trail } from \"./Options/Classes/Trail\";\nexport class TrailMaker extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this._delay = 0;\n }\n clear() {}\n init() {}\n async interact(delta) {\n var _a, _b, _c, _d;\n if (!this.container.retina.reduceFactor) {\n return;\n }\n const container = this.container,\n options = container.actualOptions,\n trailOptions = options.interactivity.modes.trail;\n if (!trailOptions) {\n return;\n }\n const optDelay = trailOptions.delay * 1000 / this.container.retina.reduceFactor;\n if (this._delay < optDelay) {\n this._delay += delta.value;\n }\n if (this._delay < optDelay) {\n return;\n }\n let canEmit = true;\n if (trailOptions.pauseOnStop) {\n if (container.interactivity.mouse.position === this._lastPosition || ((_a = container.interactivity.mouse.position) === null || _a === void 0 ? void 0 : _a.x) === ((_b = this._lastPosition) === null || _b === void 0 ? void 0 : _b.x) && ((_c = container.interactivity.mouse.position) === null || _c === void 0 ? void 0 : _c.y) === ((_d = this._lastPosition) === null || _d === void 0 ? void 0 : _d.y)) {\n canEmit = false;\n }\n }\n if (container.interactivity.mouse.position) {\n this._lastPosition = {\n x: container.interactivity.mouse.position.x,\n y: container.interactivity.mouse.position.y\n };\n } else {\n delete this._lastPosition;\n }\n if (canEmit) {\n container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);\n }\n this._delay -= optDelay;\n }\n isEnabled(particle) {\n var _a;\n const container = this.container,\n options = container.actualOptions,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events;\n return mouse.clicking && mouse.inside && !!mouse.position && isInArray(\"trail\", events.onClick.mode) || mouse.inside && !!mouse.position && isInArray(\"trail\", events.onHover.mode);\n }\n loadModeOptions(options) {\n if (!options.trail) {\n options.trail = new Trail();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.trail.load(source === null || source === void 0 ? void 0 : source.trail);\n }\n }\n reset() {}\n}","import { OptionsColor, stringToAlpha } from \"tsparticles-engine\";\nexport class PolygonMaskDrawStroke {\n constructor() {\n this.color = new OptionsColor();\n this.width = 0.5;\n this.opacity = 1;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (typeof this.color.value === \"string\") {\n this.opacity = (_a = stringToAlpha(this.color.value)) !== null && _a !== void 0 ? _a : this.opacity;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}","import { OptionsColor } from \"tsparticles-engine\";\nimport { PolygonMaskDrawStroke } from \"./PolygonMaskDrawStroke\";\nexport class PolygonMaskDraw {\n constructor() {\n this.enable = false;\n this.stroke = new PolygonMaskDrawStroke();\n }\n get lineColor() {\n return this.stroke.color;\n }\n set lineColor(value) {\n this.stroke.color = OptionsColor.create(this.stroke.color, value);\n }\n get lineWidth() {\n return this.stroke.width;\n }\n set lineWidth(value) {\n this.stroke.width = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const stroke = (_a = data.stroke) !== null && _a !== void 0 ? _a : {\n color: data.lineColor,\n width: data.lineWidth\n };\n this.stroke.load(stroke);\n }\n}","export class PolygonMaskInline {\n constructor() {\n this.arrangement = \"one-per-point\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.arrangement !== undefined) {\n this.arrangement = data.arrangement;\n }\n }\n}","export class PolygonMaskLocalSvg {\n constructor() {\n this.path = [];\n this.size = {\n height: 0,\n width: 0\n };\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.path !== undefined) {\n this.path = data.path;\n }\n if (data.size !== undefined) {\n if (data.size.width !== undefined) {\n this.size.width = data.size.width;\n }\n if (data.size.height !== undefined) {\n this.size.height = data.size.height;\n }\n }\n }\n}","export class PolygonMaskMove {\n constructor() {\n this.radius = 10;\n this.type = \"path\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}","import { PolygonMaskDraw } from \"./PolygonMaskDraw\";\nimport { PolygonMaskInline } from \"./PolygonMaskInline\";\nimport { PolygonMaskLocalSvg } from \"./PolygonMaskLocalSvg\";\nimport { PolygonMaskMove } from \"./PolygonMaskMove\";\nimport { deepExtend } from \"tsparticles-engine\";\nexport class PolygonMask {\n constructor() {\n this.draw = new PolygonMaskDraw();\n this.enable = false;\n this.inline = new PolygonMaskInline();\n this.move = new PolygonMaskMove();\n this.scale = 1;\n this.type = \"none\";\n }\n get inlineArrangement() {\n return this.inline.arrangement;\n }\n set inlineArrangement(value) {\n this.inline.arrangement = value;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.draw.load(data.draw);\n this.inline.load(data.inline);\n this.move.load(data.move);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n } else {\n this.enable = this.type !== \"none\";\n }\n if (data.url !== undefined) {\n this.url = data.url;\n }\n if (data.data !== undefined) {\n if (typeof data.data === \"string\") {\n this.data = data.data;\n } else {\n this.data = new PolygonMaskLocalSvg();\n this.data.load(data.data);\n }\n }\n if (data.position !== undefined) {\n this.position = deepExtend({}, data.position);\n }\n }\n}","import { Vector, getDistances, getStyleFromRgb, rangeColorToRgb } from \"tsparticles-engine\";\nexport function drawPolygonMask(context, rawData, stroke) {\n const color = rangeColorToRgb(stroke.color);\n if (!color) {\n return;\n }\n context.beginPath();\n context.moveTo(rawData[0].x, rawData[0].y);\n for (const item of rawData) {\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = getStyleFromRgb(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nexport function drawPolygonMaskPath(context, path, stroke, position) {\n context.translate(position.x, position.y);\n const color = rangeColorToRgb(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = getStyleFromRgb(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n}\nexport function parsePaths(paths, scale, offset) {\n var _a;\n const res = [];\n for (const path of paths) {\n const segments = path.element.pathSegList,\n len = (_a = segments === null || segments === void 0 ? void 0 : segments.numberOfItems) !== null && _a !== void 0 ? _a : 0,\n p = {\n x: 0,\n y: 0\n };\n for (let i = 0; i < len; i++) {\n const segment = segments === null || segments === void 0 ? void 0 : segments.getItem(i);\n const svgPathSeg = window.SVGPathSeg;\n switch (segment === null || segment === void 0 ? void 0 : segment.pathSegType) {\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y\n });\n }\n }\n return res;\n}\nexport function calcClosestPtOnSegment(s1, s2, pos) {\n const {\n dx,\n dy\n } = getDistances(pos, s1),\n {\n dx: dxx,\n dy: dyy\n } = getDistances(s2, s1),\n t = (dx * dxx + dy * dyy) / (dxx ** 2 + dyy ** 2),\n res = {\n x: s1.x + dxx * t,\n y: s1.x + dyy * t,\n isOnSegment: t >= 0 && t <= 1\n };\n if (t < 0) {\n res.x = s1.x;\n res.y = s1.y;\n } else if (t > 1) {\n res.x = s2.x;\n res.y = s2.y;\n }\n return res;\n}\nexport function segmentBounce(start, stop, velocity) {\n const {\n dx,\n dy\n } = getDistances(start, stop),\n wallAngle = Math.atan2(dy, dx),\n wallNormal = Vector.create(Math.sin(wallAngle), -Math.cos(wallAngle)),\n d = 2 * (velocity.x * wallNormal.x + velocity.y * wallNormal.y);\n wallNormal.multTo(d);\n velocity.subFrom(wallNormal);\n}","import { calcClosestPtOnSegment, drawPolygonMask, drawPolygonMaskPath, parsePaths, segmentBounce } from \"./utils\";\nimport { deepExtend, getDistance, getDistances, getRandom, itemFromArray } from \"tsparticles-engine\";\nimport { PolygonMask } from \"./Options/Classes/PolygonMask\";\nconst noPolygonDataLoaded = \"No polygon data loaded.\",\n noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\nexport class PolygonMaskInstance {\n constructor(container, engine) {\n this._container = container;\n this._engine = engine;\n this.dimension = {\n height: 0,\n width: 0\n };\n this.path2DSupported = !!window.Path2D;\n this.options = new PolygonMask();\n this._polygonMaskMoveRadius = this.options.move.radius * container.retina.pixelRatio;\n }\n clickPositionValid(position) {\n const options = this.options;\n return options.enable && options.type !== \"none\" && options.type !== \"inline\" && this.checkInsidePolygon(position);\n }\n draw(context) {\n var _a;\n if (!((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n const options = this.options,\n polygonDraw = options.draw;\n if (!options.enable || !polygonDraw.enable) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d,\n path2dSupported = this.path2DSupported;\n if (!context) {\n continue;\n }\n if (path2dSupported && path2d && this.offset) {\n drawPolygonMaskPath(context, path2d, polygonDraw.stroke, this.offset);\n } else if (rawData) {\n drawPolygonMask(context, rawData, polygonDraw.stroke);\n }\n }\n }\n async initAsync(options) {\n this.options.load(options === null || options === void 0 ? void 0 : options.polygon);\n const polygonMaskOptions = this.options;\n this._polygonMaskMoveRadius = polygonMaskOptions.move.radius * this._container.retina.pixelRatio;\n if (polygonMaskOptions.enable) {\n await this.initRawData();\n }\n }\n particleBounce(particle, delta, direction) {\n return this.polygonBounce(particle, delta, direction);\n }\n particlePosition(position) {\n var _a, _b;\n const options = this.options;\n if (!(options.enable && ((_b = (_a = this.raw) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0)) {\n return;\n }\n return deepExtend({}, position ? position : this.randomPoint());\n }\n particlesInitialization() {\n const options = this.options;\n if (options.enable && options.type === \"inline\" && (options.inline.arrangement === \"one-per-point\" || options.inline.arrangement === \"per-point\")) {\n this.drawPoints();\n return true;\n }\n return false;\n }\n resize() {\n const container = this._container,\n options = this.options;\n if (!(options.enable && options.type !== \"none\")) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n this.redrawTimeout = window.setTimeout(async () => {\n await this.initRawData(true);\n await container.particles.redraw();\n }, 250);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n checkInsidePolygon(position) {\n var _a, _b;\n const container = this._container,\n options = this.options;\n if (!options.enable || options.type === \"none\" || options.type === \"inline\") {\n return true;\n }\n if (!this.raw) {\n throw new Error(noPolygonFound);\n }\n const canvasSize = container.canvas.size,\n x = (_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : getRandom() * canvasSize.width,\n y = (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : getRandom() * canvasSize.height;\n let inside = false;\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j],\n intersect = pi.y > y !== pj.y > y && x < (pj.x - pi.x) * (y - pi.y) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n return options.type === \"inside\" ? inside : options.type === \"outside\" ? !inside : false;\n }\n createPath2D() {\n var _a, _b;\n const options = this.options;\n if (!this.path2DSupported || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n for (const path of this.paths) {\n const pathData = (_b = path.element) === null || _b === void 0 ? void 0 : _b.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData),\n matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(),\n finalPath = new Path2D(),\n transform = matrix.scale(options.scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n } else {\n delete path.path2d;\n }\n } else {\n delete path.path2d;\n }\n if (path.path2d || !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n path.path2d.moveTo(this.raw[0].x, this.raw[0].y);\n this.raw.forEach((pos, i) => {\n var _a;\n if (i > 0) {\n (_a = path.path2d) === null || _a === void 0 ? void 0 : _a.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n }\n async downloadSvgPath(svgUrl, force) {\n const options = this.options,\n url = svgUrl || options.url,\n forceDownload = force !== null && force !== void 0 ? force : false;\n if (!url || this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(\"tsParticles Error - Error occurred during polygon mask download\");\n }\n return this.parseSvgPath(await req.text(), force);\n }\n drawPoints() {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n this._container.particles.addParticle({\n x: item.x,\n y: item.y\n });\n }\n }\n getEquidistantPointByIndex(index) {\n var _a, _b, _c, _d, _e, _f, _g;\n const options = this._container.actualOptions,\n polygonMaskOptions = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) throw new Error(noPolygonDataLoaded);\n let offset = 0,\n point;\n const totalLength = this.paths.reduce((tot, path) => tot + path.length, 0),\n distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n } else {\n offset += path.length;\n }\n }\n return {\n x: ((_b = point === null || point === void 0 ? void 0 : point.x) !== null && _b !== void 0 ? _b : 0) * polygonMaskOptions.scale + ((_d = (_c = this.offset) === null || _c === void 0 ? void 0 : _c.x) !== null && _d !== void 0 ? _d : 0),\n y: ((_e = point === null || point === void 0 ? void 0 : point.y) !== null && _e !== void 0 ? _e : 0) * polygonMaskOptions.scale + ((_g = (_f = this.offset) === null || _f === void 0 ? void 0 : _f.y) !== null && _g !== void 0 ? _g : 0)\n };\n }\n getPointByIndex(index) {\n if (!this.raw || !this.raw.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y\n };\n }\n getRandomPoint() {\n if (!this.raw || !this.raw.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = itemFromArray(this.raw);\n return {\n x: coords.x,\n y: coords.y\n };\n }\n getRandomPointByLength() {\n var _a, _b, _c;\n const options = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new Error(noPolygonDataLoaded);\n }\n const path = itemFromArray(this.paths),\n distance = Math.floor(getRandom() * path.length) + 1,\n point = path.element.getPointAtLength(distance);\n return {\n x: point.x * options.scale + (((_b = this.offset) === null || _b === void 0 ? void 0 : _b.x) || 0),\n y: point.y * options.scale + (((_c = this.offset) === null || _c === void 0 ? void 0 : _c.y) || 0)\n };\n }\n async initRawData(force) {\n const options = this.options;\n if (options.url) {\n this.raw = await this.downloadSvgPath(options.url, force);\n } else if (options.data) {\n const data = options.data;\n let svg;\n if (typeof data !== \"string\") {\n const path = data.path instanceof Array ? data.path.map(t => ``).join(\"\") : ``;\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `${path}`;\n } else {\n svg = data;\n }\n this.raw = this.parseSvgPath(svg, force);\n }\n this.createPath2D();\n this._engine.dispatchEvent(\"polygonMaskLoaded\", {\n container: this._container\n });\n }\n parseSvgPath(xml, force) {\n var _a, _b, _c;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this._container,\n options = this.options,\n parser = new DOMParser(),\n doc = parser.parseFromString(xml, \"image/svg+xml\"),\n svg = doc.getElementsByTagName(\"svg\")[0];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength()\n });\n }\n }\n const pxRatio = container.retina.pixelRatio,\n scale = options.scale / pxRatio;\n this.dimension.width = parseFloat((_a = svg.getAttribute(\"width\")) !== null && _a !== void 0 ? _a : \"0\") * scale;\n this.dimension.height = parseFloat((_b = svg.getAttribute(\"height\")) !== null && _b !== void 0 ? _b : \"0\") * scale;\n const position = (_c = options.position) !== null && _c !== void 0 ? _c : {\n x: 50,\n y: 50\n };\n this.offset = {\n x: container.canvas.size.width * position.x / (100 * pxRatio) - this.dimension.width / 2,\n y: container.canvas.size.height * position.y / (100 * pxRatio) - this.dimension.height / 2\n };\n return parsePaths(this.paths, scale, this.offset);\n }\n polygonBounce(particle, _delta, direction) {\n const options = this.options;\n if (!this.raw || !options.enable || direction !== \"top\") {\n return false;\n }\n if (options.type === \"inside\" || options.type === \"outside\") {\n let closest, dx, dy;\n const pos = particle.getPosition(),\n radius = particle.getRadius();\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j];\n closest = calcClosestPtOnSegment(pi, pj, pos);\n const dist = getDistances(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n segmentBounce(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this.checkInsidePolygon(pos)) {\n const factor = {\n x: 1,\n y: 1\n };\n if (particle.position.x >= closest.x) {\n factor.x = -1;\n }\n if (particle.position.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + radius * 2 * factor.x;\n particle.position.y = closest.y + radius * 2 * factor.y;\n particle.velocity.mult(-1);\n return true;\n }\n } else if (options.type === \"inline\" && particle.initialPosition) {\n const dist = getDistance(particle.initialPosition, particle.getPosition());\n if (dist > this._polygonMaskMoveRadius) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n return true;\n }\n }\n return false;\n }\n randomPoint() {\n const container = this._container,\n options = this.options;\n let position;\n if (options.type === \"inline\") {\n switch (options.inline.arrangement) {\n case \"random-point\":\n position = this.getRandomPoint();\n break;\n case \"random-length\":\n position = this.getRandomPointByLength();\n break;\n case \"equidistant\":\n position = this.getEquidistantPointByIndex(container.particles.count);\n break;\n case \"one-per-point\":\n case \"per-point\":\n default:\n position = this.getPointByIndex(container.particles.count);\n }\n } else {\n position = {\n x: getRandom() * container.canvas.size.width,\n y: getRandom() * container.canvas.size.height\n };\n }\n if (this.checkInsidePolygon(position)) {\n return position;\n } else {\n return this.randomPoint();\n }\n }\n}","import \"./pathseg\";\nimport { PolygonMask } from \"./Options/Classes/PolygonMask\";\nimport { PolygonMaskInstance } from \"./PolygonMaskInstance\";\nclass PolygonMaskPlugin {\n constructor(engine) {\n this.id = \"polygonMask\";\n this._engine = engine;\n }\n getPlugin(container) {\n return new PolygonMaskInstance(container, this._engine);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n let polygonOptions = optionsCast.polygon;\n if ((polygonOptions === null || polygonOptions === void 0 ? void 0 : polygonOptions.load) === undefined) {\n optionsCast.polygon = polygonOptions = new PolygonMask();\n }\n polygonOptions.load(source === null || source === void 0 ? void 0 : source.polygon);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n return (_b = (_a = options === null || options === void 0 ? void 0 : options.polygon) === null || _a === void 0 ? void 0 : _a.enable) !== null && _b !== void 0 ? _b : ((_c = options === null || options === void 0 ? void 0 : options.polygon) === null || _c === void 0 ? void 0 : _c.type) !== undefined && options.polygon.type !== \"none\";\n }\n}\nexport async function loadPolygonMaskPlugin(engine) {\n const plugin = new PolygonMaskPlugin(engine);\n await engine.addPlugin(plugin);\n}\nexport * from \"./Enums/PolygonMaskInlineArrangement\";\nexport * from \"./Enums/PolygonMaskMoveType\";\nexport * from \"./Enums/PolygonMaskType\";\nexport * from \"./Options/Interfaces/IPolygonMaskOptions\";","import { setRangeValue } from \"tsparticles-engine\";\nexport class RollLight {\n constructor() {\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nimport { RollLight } from \"./RollLight\";\nexport class Roll {\n constructor() {\n this.darken = new RollLight();\n this.enable = false;\n this.enlighten = new RollLight();\n this.mode = \"vertical\";\n this.speed = 25;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.backColor !== undefined) {\n this.backColor = OptionsColor.create(this.backColor, data.backColor);\n }\n this.darken.load(data.darken);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.enlighten.load(data.enlighten);\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}","import { getRandom, getRangeValue, rangeColorToHsl } from \"tsparticles-engine\";\nimport { Roll } from \"./Options/Classes/Roll\";\nfunction updateRoll(particle, delta) {\n const roll = particle.options.roll;\n if (!particle.roll || !(roll === null || roll === void 0 ? void 0 : roll.enable)) {\n return;\n }\n const speed = particle.roll.speed * delta.factor,\n max = 2 * Math.PI;\n particle.roll.angle += speed;\n if (particle.roll.angle > max) {\n particle.roll.angle -= max;\n }\n}\nexport class RollUpdater {\n getTransformValues(particle) {\n var _a;\n const roll = ((_a = particle.roll) === null || _a === void 0 ? void 0 : _a.enable) && particle.roll,\n rollHorizontal = roll && roll.horizontal,\n rollVertical = roll && roll.vertical;\n return {\n a: rollHorizontal ? Math.cos(roll.angle) : undefined,\n d: rollVertical ? Math.sin(roll.angle) : undefined\n };\n }\n init(particle) {\n const rollOpt = particle.options.roll;\n if (rollOpt === null || rollOpt === void 0 ? void 0 : rollOpt.enable) {\n particle.roll = {\n enable: rollOpt.enable,\n horizontal: rollOpt.mode === \"horizontal\" || rollOpt.mode === \"both\",\n vertical: rollOpt.mode === \"vertical\" || rollOpt.mode === \"both\",\n angle: getRandom() * Math.PI * 2,\n speed: getRangeValue(rollOpt.speed) / 360\n };\n if (rollOpt.backColor) {\n particle.backColor = rangeColorToHsl(rollOpt.backColor);\n } else if (rollOpt.darken.enable && rollOpt.enlighten.enable) {\n const alterType = getRandom() >= 0.5 ? \"darken\" : \"enlighten\";\n particle.roll.alter = {\n type: alterType,\n value: getRangeValue(alterType === \"darken\" ? rollOpt.darken.value : rollOpt.enlighten.value)\n };\n } else if (rollOpt.darken.enable) {\n particle.roll.alter = {\n type: \"darken\",\n value: getRangeValue(rollOpt.darken.value)\n };\n } else if (rollOpt.enlighten.enable) {\n particle.roll.alter = {\n type: \"enlighten\",\n value: getRangeValue(rollOpt.enlighten.value)\n };\n }\n } else {\n particle.roll = {\n enable: false,\n horizontal: false,\n vertical: false,\n angle: 0,\n speed: 0\n };\n }\n }\n isEnabled(particle) {\n const roll = particle.options.roll;\n return !particle.destroyed && !particle.spawning && !!(roll === null || roll === void 0 ? void 0 : roll.enable);\n }\n loadOptions(options) {\n if (!options.roll) {\n options.roll = new Roll();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.roll.load(source === null || source === void 0 ? void 0 : source.roll);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateRoll(particle, delta);\n }\n}","const initPjs = engine => {\n const particlesJS = (tagId, options) => {\n return engine.load(tagId, options);\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n engine.loadJSON(tagId, pathConfigJson).then(container => {\n if (container) {\n callback(container);\n }\n }).catch(() => {\n callback(undefined);\n });\n };\n particlesJS.setOnClickHandler = callback => {\n engine.setOnClickHandler(callback);\n };\n const pJSDom = engine.dom();\n return {\n particlesJS,\n pJSDom\n };\n};\nexport { initPjs };","import { setRangeValue } from \"tsparticles-engine\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { ValueWithRandom } from \"tsparticles-engine\";\nimport { RotateAnimation } from \"./RotateAnimation\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = \"clockwise\";\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}","import { getRandom, getRangeValue } from \"tsparticles-engine\";\nimport { Rotate } from \"./Options/Classes/Rotate\";\nfunction updateAngle(particle, delta) {\n var _a, _b;\n const rotate = particle.rotate,\n rotateOptions = particle.options.rotate;\n if (!rotate || !rotateOptions) {\n return;\n }\n const rotateAnimation = rotateOptions.animation,\n speed = ((_a = rotate.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor,\n max = 2 * Math.PI,\n decay = (_b = rotate.decay) !== null && _b !== void 0 ? _b : 1;\n if (!rotateAnimation.enable) {\n return;\n }\n switch (rotate.status) {\n case 0:\n rotate.value += speed;\n if (rotate.value > max) {\n rotate.value -= max;\n }\n break;\n case 1:\n default:\n rotate.value -= speed;\n if (rotate.value < 0) {\n rotate.value += max;\n }\n break;\n }\n if (rotate.velocity && decay !== 1) {\n rotate.velocity *= decay;\n }\n}\nexport class RotateUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n if (!rotateOptions) {\n return;\n }\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: getRangeValue(rotateOptions.value) * Math.PI / 180\n };\n particle.pathRotation = rotateOptions.path;\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === \"random\") {\n const index = Math.floor(getRandom() * 2);\n rotateDirection = index > 0 ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (rotateDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.rotate.status = 1;\n break;\n case \"clockwise\":\n particle.rotate.status = 0;\n break;\n }\n const rotateAnimation = rotateOptions.animation;\n if (rotateAnimation.enable) {\n particle.rotate.decay = 1 - getRangeValue(rotateAnimation.decay);\n particle.rotate.velocity = getRangeValue(rotateAnimation.speed) / 360 * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= getRandom();\n }\n }\n particle.rotation = particle.rotate.value;\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n if (!rotate) {\n return false;\n }\n return !particle.destroyed && !particle.spawning && rotate.animation.enable && !rotate.path;\n }\n loadOptions(options) {\n if (!options.rotate) {\n options.rotate = new Rotate();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.rotate.load(source === null || source === void 0 ? void 0 : source.rotate);\n }\n }\n update(particle, delta) {\n var _a, _b;\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAngle(particle, delta);\n particle.rotation = (_b = (_a = particle.rotate) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0;\n }\n}","import { getDistance, getRangeMax, getRangeValue } from \"tsparticles-engine\";\nimport { applyDistance, applyPath, getProximitySpeedFactor, spin } from \"./Utils\";\nexport class BaseMover {\n init(particle) {\n var _a;\n const container = particle.container,\n options = particle.options,\n gravityOptions = options.move.gravity,\n spinOptions = options.move.spin;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse\n };\n if (spinOptions.enable) {\n const spinPos = (_a = spinOptions.position) !== null && _a !== void 0 ? _a : {\n x: 50,\n y: 50\n };\n const spinCenter = {\n x: spinPos.x / 100 * container.canvas.size.width,\n y: spinPos.y / 100 * container.canvas.size.height\n };\n const pos = particle.getPosition();\n const distance = getDistance(pos, spinCenter);\n const spinAcceleration = getRangeValue(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= 0 ? \"clockwise\" : \"counter-clockwise\",\n angle: particle.velocity.angle,\n radius: distance,\n acceleration: particle.retina.spinAcceleration\n };\n }\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n var _a, _b, _c;\n var _d, _e;\n const particleOptions = particle.options,\n moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container,\n slowFactor = getProximitySpeedFactor(particle),\n baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : _d.moveSpeed = getRangeValue(moveOptions.speed) * container.retina.pixelRatio) * container.retina.reduceFactor,\n moveDrift = (_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : _e.moveDrift = getRangeValue(particle.options.move.drift) * container.retina.pixelRatio,\n maxSize = getRangeMax(particleOptions.size.value) * container.retina.pixelRatio,\n sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1,\n speedFactor = sizeFactor * slowFactor * (delta.factor || 1),\n diffFactor = 2,\n moveSpeed = baseSpeed * speedFactor / diffFactor;\n if (moveOptions.spin.enable) {\n spin(particle, moveSpeed);\n } else {\n applyPath(particle, delta);\n const gravityOptions = particle.gravity,\n gravityFactor = (gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) && gravityOptions.inverse ? -1 : 1;\n if ((gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) && moveSpeed) {\n particle.velocity.y += gravityFactor * (gravityOptions.acceleration * delta.factor) / (60 * moveSpeed);\n }\n if (moveDrift && moveSpeed) {\n particle.velocity.x += moveDrift * delta.factor / (60 * moveSpeed);\n }\n const decay = particle.moveDecay;\n if (decay != 1) {\n particle.velocity.multTo(decay);\n }\n const velocity = particle.velocity.mult(moveSpeed),\n maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;\n if ((gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) && maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex,\n zVelocityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n if (zVelocityFactor != 1) {\n velocity.multTo(zVelocityFactor);\n }\n particle.position.addTo(velocity);\n if (moveOptions.vibrate) {\n particle.position.x += Math.sin(particle.position.x * Math.cos(particle.position.y));\n particle.position.y += Math.cos(particle.position.y * Math.sin(particle.position.x));\n }\n }\n applyDistance(particle);\n }\n}","import { clamp, getDistances, getRandom } from \"tsparticles-engine\";\nexport function applyDistance(particle) {\n const initialPosition = particle.initialPosition,\n {\n dx,\n dy\n } = getDistances(initialPosition, particle.position),\n dxFixed = Math.abs(dx),\n dyFixed = Math.abs(dy),\n hDistance = particle.retina.maxDistance.horizontal,\n vDistance = particle.retina.maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n if ((hDistance && dxFixed >= hDistance || vDistance && dyFixed >= vDistance) && !particle.misplaced) {\n particle.misplaced = !!hDistance && dxFixed > hDistance || !!vDistance && dyFixed > vDistance;\n if (hDistance) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n }\n } else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n } else if (particle.misplaced) {\n const pos = particle.position,\n vel = particle.velocity;\n if (hDistance && (pos.x < initialPosition.x && vel.x < 0 || pos.x > initialPosition.x && vel.x > 0)) {\n vel.x *= -getRandom();\n }\n if (vDistance && (pos.y < initialPosition.y && vel.y < 0 || pos.y > initialPosition.y && vel.y > 0)) {\n vel.y *= -getRandom();\n }\n }\n}\nexport function spin(particle, moveSpeed) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const updateFunc = {\n x: particle.spin.direction === \"clockwise\" ? Math.cos : Math.sin,\n y: particle.spin.direction === \"clockwise\" ? Math.sin : Math.cos\n };\n particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle);\n particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle);\n particle.spin.radius += particle.spin.acceleration;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height);\n if (particle.spin.radius > maxCanvasSize / 2) {\n particle.spin.radius = maxCanvasSize / 2;\n particle.spin.acceleration *= -1;\n } else if (particle.spin.radius < 0) {\n particle.spin.radius = 0;\n particle.spin.acceleration *= -1;\n }\n particle.spin.angle += moveSpeed / 100 * (1 - particle.spin.radius / maxCanvasSize);\n}\nexport function applyPath(particle, delta) {\n var _a;\n const particlesOptions = particle.options;\n const pathOptions = particlesOptions.move.path;\n const pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = (_a = particle.pathGenerator) === null || _a === void 0 ? void 0 : _a.generate(particle);\n if (path) {\n particle.velocity.addTo(path);\n }\n if (pathOptions.clamp) {\n particle.velocity.x = clamp(particle.velocity.x, -1, 1);\n particle.velocity.y = clamp(particle.velocity.y, -1, 1);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexport function getProximitySpeedFactor(particle) {\n return particle.slow.inRange ? particle.slow.factor : 1;\n}","export class CircleDrawer {\n draw(context, particle, radius) {\n context.arc(0, 0, radius, 0, Math.PI * 2, false);\n }\n getSidesCount() {\n return 12;\n }\n}","import { getHslAnimationFromHsl, randomInRange, rangeColorToHsl } from \"tsparticles-engine\";\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a, _b;\n const colorValue = value;\n if (!colorValue || !valueAnimation.enable) {\n return;\n }\n const offset = randomInRange(valueAnimation.offset),\n velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6,\n decay = (_b = value.decay) !== null && _b !== void 0 ? _b : 1;\n if (!decrease || colorValue.status === 0) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = 1;\n colorValue.value -= colorValue.value % max;\n }\n } else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = 0;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.velocity && decay !== 1) {\n colorValue.velocity *= decay;\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateColor(particle, delta) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n if (((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h) !== undefined) {\n updateColorValue(delta, particle.color.h, animationOptions.h, 360, false);\n }\n if (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s) !== undefined) {\n updateColorValue(delta, particle.color.s, animationOptions.s, 100, true);\n }\n if (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l) !== undefined) {\n updateColorValue(delta, particle.color.l, animationOptions.l, 100, true);\n }\n}\nexport class ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = rangeColorToHsl(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this.container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n return !particle.destroyed && !particle.spawning && (((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h.value) !== undefined && animationOptions.h.enable || ((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s.value) !== undefined && animationOptions.s.enable || ((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l.value) !== undefined && animationOptions.l.enable);\n }\n update(particle, delta) {\n updateColor(particle, delta);\n }\n}","export class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = \"ease-out-quad\";\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}","import { Circle, ExternalInteractorBase, Vector, calcEasing, clamp, getDistances, isInArray, mouseMoveEvent } from \"tsparticles-engine\";\nimport { Attract } from \"./Options/Classes/Attract\";\nexport class Attractor extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.attract) {\n container.attract = {\n particles: []\n };\n }\n this.handleClickMode = mode => {\n const options = this.container.actualOptions,\n attract = options.interactivity.modes.attract;\n if (!attract || mode !== \"attract\") {\n return;\n }\n if (!container.attract) {\n container.attract = {\n particles: []\n };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n if (!container.attract) {\n container.attract = {\n particles: []\n };\n }\n container.attract.clicking = false;\n }\n }, attract.duration * 1000);\n };\n }\n clear() {}\n init() {\n const container = this.container,\n attract = container.actualOptions.interactivity.modes.attract;\n if (!attract) {\n return;\n }\n container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container,\n options = container.actualOptions,\n mouseMoveStatus = container.interactivity.status === mouseMoveEvent,\n events = options.interactivity.events,\n hoverEnabled = events.onHover.enable,\n hoverMode = events.onHover.mode,\n clickEnabled = events.onClick.enable,\n clickMode = events.onClick.mode;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"attract\", hoverMode)) {\n this.hoverAttract();\n } else if (clickEnabled && isInArray(\"attract\", clickMode)) {\n this.clickAttract();\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container,\n options = container.actualOptions,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode,\n clickMode = events.onClick.mode;\n return isInArray(\"attract\", hoverMode) || isInArray(\"attract\", clickMode);\n }\n loadModeOptions(options) {\n if (!options.attract) {\n options.attract = new Attract();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.attract.load(source === null || source === void 0 ? void 0 : source.attract);\n }\n }\n reset() {}\n clickAttract() {\n const container = this.container;\n if (!container.attract) {\n container.attract = {\n particles: []\n };\n }\n if (!container.attract.finish) {\n if (!container.attract.count) {\n container.attract.count = 0;\n }\n container.attract.count++;\n if (container.attract.count === container.particles.count) {\n container.attract.finish = true;\n }\n }\n if (container.attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition,\n attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < 0 || !mousePos) {\n return;\n }\n this.processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius));\n } else if (container.attract.clicking === false) {\n container.attract.particles = [];\n }\n return;\n }\n hoverAttract() {\n const container = this.container,\n mousePos = container.interactivity.mouse.position,\n attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < 0 || !mousePos) {\n return;\n }\n this.processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius));\n }\n processAttract(position, attractRadius, area) {\n const container = this.container,\n attractOptions = container.actualOptions.interactivity.modes.attract;\n if (!attractOptions) {\n return;\n }\n const query = container.particles.quadTree.query(area, p => this.isEnabled(p));\n for (const particle of query) {\n const {\n dx,\n dy,\n distance\n } = getDistances(particle.position, position);\n const velocity = attractOptions.speed * attractOptions.factor;\n const attractFactor = clamp(calcEasing(1 - distance / attractRadius, attractOptions.easing) * velocity, 0, attractOptions.maxSpeed);\n const normVec = Vector.create(distance === 0 ? velocity : dx / distance * attractFactor, distance === 0 ? velocity : dy / distance * attractFactor);\n particle.position.subFrom(normVec);\n }\n }\n}","export class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}","import { Circle, ExternalInteractorBase, Rectangle, Vector, calculateBounds, circleBounce, circleBounceDataFromParticle, divModeExecute, isDivModeEnabled, isInArray, mouseMoveEvent, rectBounce } from \"tsparticles-engine\";\nimport { Bounce } from \"./Options/Classes/Bounce\";\nexport class Bouncer extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {}\n init() {\n const container = this.container,\n bounce = container.actualOptions.interactivity.modes.bounce;\n if (!bounce) {\n return;\n }\n container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container,\n options = container.actualOptions,\n events = options.interactivity.events,\n mouseMoveStatus = container.interactivity.status === mouseMoveEvent,\n hoverEnabled = events.onHover.enable,\n hoverMode = events.onHover.mode,\n divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"bounce\", hoverMode)) {\n this.processMouseBounce();\n } else {\n divModeExecute(\"bounce\", divs, (selector, div) => this.singleSelectorBounce(selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container,\n options = container.actualOptions,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events,\n divs = events.onDiv;\n return mouse.position && events.onHover.enable && isInArray(\"bounce\", events.onHover.mode) || isDivModeEnabled(\"bounce\", divs);\n }\n loadModeOptions(options) {\n if (!options.bounce) {\n options.bounce = new Bounce();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.bounce.load(source === null || source === void 0 ? void 0 : source.bounce);\n }\n }\n reset() {}\n processBounce(position, radius, area) {\n const query = this.container.particles.quadTree.query(area, p => this.isEnabled(p));\n for (const particle of query) {\n if (area instanceof Circle) {\n circleBounce(circleBounceDataFromParticle(particle), {\n position,\n radius,\n mass: radius ** 2 * Math.PI / 2,\n velocity: Vector.origin,\n factor: Vector.origin\n });\n } else if (area instanceof Rectangle) {\n rectBounce(particle, calculateBounds(position, radius));\n }\n }\n }\n processMouseBounce() {\n const container = this.container,\n pxRatio = container.retina.pixelRatio,\n tolerance = 10 * pxRatio,\n mousePos = container.interactivity.mouse.position,\n radius = container.retina.bounceModeDistance;\n if (!radius || radius < 0 || !mousePos) {\n return;\n }\n this.processBounce(mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance));\n }\n singleSelectorBounce(selector, div) {\n const container = this.container,\n query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach(item => {\n const elem = item,\n pxRatio = container.retina.pixelRatio,\n pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio\n },\n radius = elem.offsetWidth / 2 * pxRatio,\n tolerance = 10 * pxRatio,\n area = div.type === \"circle\" ? new Circle(pos.x, pos.y, radius + tolerance) : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * 2, elem.offsetHeight * pxRatio + tolerance * 2);\n this.processBounce(pos, radius, area);\n });\n }\n}","import { OptionsColor, executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n const sourceColor = this.color instanceof Array ? undefined : this.color;\n this.color = executeOnSingleOrMultiple(data.color, color => {\n return OptionsColor.create(sourceColor, color);\n });\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}","import { BubbleBase } from \"./BubbleBase\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return executeOnSingleOrMultiple(this.selectors, t => t.replace(\"#\", \"\"));\n }\n set ids(value) {\n this.selectors = executeOnSingleOrMultiple(value, t => `#${t}`);\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}","import { BubbleBase } from \"./BubbleBase\";\nimport { BubbleDiv } from \"./BubbleDiv\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, div => {\n const tmp = new BubbleDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}","import { Circle, ExternalInteractorBase, Rectangle, clamp, colorMix, divMode, divModeExecute, getDistance, getRangeMax, isDivModeEnabled, isInArray, itemFromSingleOrMultiple, mouseLeaveEvent, mouseMoveEvent, rangeColorToHsl, rgbToHsl } from \"tsparticles-engine\";\nimport { Bubble } from \"./Options/Classes/Bubble\";\nfunction calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return clamp(value, particleValue, modeValue);\n } else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return clamp(value, modeValue, particleValue);\n }\n}\nexport class Bubbler extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.bubble) {\n container.bubble = {};\n }\n this.handleClickMode = mode => {\n if (mode !== \"bubble\") {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n container.bubble.clicking = true;\n };\n }\n clear(particle, delta, force) {\n if (particle.bubble.inRange && !force) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n init() {\n const container = this.container,\n bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble) {\n return;\n }\n container.retina.bubbleModeDistance = bubble.distance * container.retina.pixelRatio;\n if (bubble.size !== undefined) {\n container.retina.bubbleModeSize = bubble.size * container.retina.pixelRatio;\n }\n }\n async interact(delta) {\n const options = this.container.actualOptions,\n events = options.interactivity.events,\n onHover = events.onHover,\n onClick = events.onClick,\n hoverEnabled = onHover.enable,\n hoverMode = onHover.mode,\n clickEnabled = onClick.enable,\n clickMode = onClick.mode,\n divs = events.onDiv;\n if (hoverEnabled && isInArray(\"bubble\", hoverMode)) {\n this.hoverBubble(delta);\n } else if (clickEnabled && isInArray(\"bubble\", clickMode)) {\n this.clickBubble(delta);\n } else {\n divModeExecute(\"bubble\", divs, (selector, div) => this.singleSelectorHover(delta, selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container,\n options = container.actualOptions,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events,\n divs = events.onDiv,\n divBubble = isDivModeEnabled(\"bubble\", divs);\n if (!(divBubble || events.onHover.enable && mouse.position || events.onClick.enable && mouse.clickPosition)) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return isInArray(\"bubble\", hoverMode) || isInArray(\"bubble\", clickMode) || divBubble;\n }\n loadModeOptions(options) {\n if (!options.bubble) {\n options.bubble = new Bubble();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.bubble.load(source === null || source === void 0 ? void 0 : source.bubble);\n }\n }\n reset(particle) {\n particle.bubble.inRange = false;\n }\n clickBubble(delta) {\n var _a, _b;\n const container = this.container,\n options = container.actualOptions,\n mouseClickPos = container.interactivity.mouse.clickPosition,\n bubble = options.interactivity.modes.bubble;\n if (!bubble || !mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance;\n if (!distance || distance < 0) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mouseClickPos, distance, p => this.isEnabled(p));\n for (const particle of query) {\n if (!container.bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !container.bubble.durationEnd;\n const pos = particle.getPosition(),\n distMouse = getDistance(pos, mouseClickPos),\n timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000;\n if (timeSpent > bubble.duration) {\n container.bubble.durationEnd = true;\n }\n if (timeSpent > bubble.duration * 2) {\n container.bubble.clicking = false;\n container.bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value\n },\n type: \"size\"\n };\n this.process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: bubble.opacity,\n value: particle.bubble.opacity\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.opacity.value),\n value: (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1\n },\n type: \"opacity\"\n };\n this.process(particle, distMouse, timeSpent, opacityData);\n if (!container.bubble.durationEnd) {\n if (distMouse <= distance) {\n this.hoverBubbleColor(particle, distMouse);\n } else {\n delete particle.bubble.color;\n }\n } else {\n delete particle.bubble.color;\n }\n }\n }\n hoverBubble(delta) {\n const container = this.container,\n mousePos = container.interactivity.mouse.position,\n distance = container.retina.bubbleModeDistance;\n if (!distance || distance < 0 || mousePos === undefined) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(),\n pointDistance = getDistance(pos, mousePos),\n ratio = 1 - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= 0 && container.interactivity.status === mouseMoveEvent) {\n this.hoverBubbleSize(particle, ratio);\n this.hoverBubbleOpacity(particle, ratio);\n this.hoverBubbleColor(particle, ratio);\n }\n } else {\n this.reset(particle);\n }\n if (container.interactivity.status === mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n }\n hoverBubbleColor(particle, ratio, divBubble) {\n const options = this.container.actualOptions;\n const bubbleOptions = divBubble !== null && divBubble !== void 0 ? divBubble : options.interactivity.modes.bubble;\n if (!bubbleOptions) {\n return;\n }\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = itemFromSingleOrMultiple(modeColor);\n particle.bubble.finalColor = rangeColorToHsl(bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, 1 - ratio, ratio)) : particle.bubble.finalColor;\n } else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n }\n hoverBubbleOpacity(particle, ratio, divBubble) {\n var _a, _b, _c, _d;\n const container = this.container,\n options = container.actualOptions,\n modeOpacity = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.opacity) !== null && _a !== void 0 ? _a : (_b = options.interactivity.modes.bubble) === null || _b === void 0 ? void 0 : _b.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value;\n const pOpacity = (_d = (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;\n const opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n }\n hoverBubbleSize(particle, ratio, divBubble) {\n const container = this.container,\n modeSize = (divBubble === null || divBubble === void 0 ? void 0 : divBubble.size) ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio;\n const pSize = particle.size.value;\n const size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n }\n process(particle, distMouse, timeSpent, data) {\n const container = this.container,\n bubbleParam = data.bubbleObj.optValue,\n options = container.actualOptions,\n bubble = options.interactivity.modes.bubble;\n if (!bubble || bubbleParam === undefined) {\n return;\n }\n const bubbleDuration = bubble.duration,\n bubbleDistance = container.retina.bubbleModeDistance,\n particlesParam = data.particlesObj.optValue,\n pObjBubble = data.bubbleObj.value,\n pObj = data.particlesObj.value || 0,\n type = data.type;\n if (!bubbleDistance || bubbleDistance < 0 || bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n if (!container.bubble.durationEnd) {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble !== null && pObjBubble !== void 0 ? pObjBubble : pObj;\n if (obj !== bubbleParam) {\n const value = pObj - timeSpent * (pObj - bubbleParam) / bubbleDuration;\n if (type === \"size\") {\n particle.bubble.radius = value;\n }\n if (type === \"opacity\") {\n particle.bubble.opacity = value;\n }\n }\n } else {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n } else if (pObjBubble) {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n singleSelectorHover(delta, selector, div) {\n const container = this.container,\n selectors = document.querySelectorAll(selector),\n bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble || !selectors.length) {\n return;\n }\n selectors.forEach(item => {\n const elem = item,\n pxRatio = container.retina.pixelRatio,\n pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio\n },\n repulseRadius = elem.offsetWidth / 2 * pxRatio,\n area = div.type === \"circle\" ? new Circle(pos.x, pos.y, repulseRadius) : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio),\n query = container.particles.quadTree.query(area, p => this.isEnabled(p));\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = bubble.divs;\n const divBubble = divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.clear(particle, delta, true);\n particle.bubble.div = elem;\n }\n this.hoverBubbleSize(particle, 1, divBubble);\n this.hoverBubbleOpacity(particle, 1, divBubble);\n this.hoverBubbleColor(particle, 1, divBubble);\n }\n });\n }\n}","export class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}","import { ConnectLinks } from \"./ConnectLinks\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}","import { ExternalInteractorBase, colorMix, drawLine, getStyleFromHsl, getStyleFromRgb, isInArray } from \"tsparticles-engine\";\nimport { Connect } from \"./Options/Classes/Connect\";\nfunction gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()),\n color1 = p1.getFillColor(),\n color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(),\n destPos = p2.getPosition(),\n midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()),\n grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, getStyleFromHsl(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(1, getStyleFromHsl(color2, opacity));\n return grad;\n}\nfunction drawConnectLine(context, width, lineStyle, begin, end) {\n context.save();\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n context.restore();\n}\nfunction lineStyle(container, ctx, p1, p2) {\n const options = container.actualOptions,\n connectOptions = options.interactivity.modes.connect;\n if (!connectOptions) {\n return;\n }\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n}\nfunction drawConnection(container, p1, p2) {\n container.canvas.draw(ctx => {\n var _a;\n const ls = lineStyle(container, ctx, p1, p2);\n if (!ls) {\n return;\n }\n const pos1 = p1.getPosition(),\n pos2 = p2.getPosition();\n drawConnectLine(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : 0, ls, pos1, pos2);\n });\n}\nexport class Connector extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {}\n init() {\n const container = this.container,\n connect = container.actualOptions.interactivity.modes.connect;\n if (!connect) {\n return;\n }\n container.retina.connectModeDistance = connect.distance * container.retina.pixelRatio;\n container.retina.connectModeRadius = connect.radius * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container,\n options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"pointermove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!container.retina.connectModeDistance || container.retina.connectModeDistance < 0 || !container.retina.connectModeRadius || container.retina.connectModeRadius < 0 || !mousePos) {\n return;\n }\n const distance = Math.abs(container.retina.connectModeRadius),\n query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n let i = 0;\n for (const p1 of query) {\n const pos1 = p1.getPosition();\n for (const p2 of query.slice(i + 1)) {\n const pos2 = p2.getPosition(),\n distMax = Math.abs(container.retina.connectModeDistance),\n xDiff = Math.abs(pos1.x - pos2.x),\n yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n drawConnection(container, p1, p2);\n }\n }\n ++i;\n }\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return isInArray(\"connect\", events.onHover.mode);\n }\n loadModeOptions(options) {\n if (!options.connect) {\n options.connect = new Connect();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.connect.load(source === null || source === void 0 ? void 0 : source.connect);\n }\n }\n reset() {}\n}","import { OptionsColor } from \"tsparticles-engine\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}","import { GrabLinks } from \"./GrabLinks\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}","import { ExternalInteractorBase, drawLine, getDistance, getLinkColor, getLinkRandomColor, getStyleFromRgb, isInArray, mouseMoveEvent } from \"tsparticles-engine\";\nimport { Grab } from \"./Options/Classes/Grab\";\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n}\nfunction drawGrab(container, particle, lineColor, opacity, mousePos) {\n container.canvas.draw(ctx => {\n var _a;\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : 0, beginPos, mousePos, lineColor, opacity);\n });\n}\nexport class Grabber extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {}\n init() {\n const container = this.container,\n grab = container.actualOptions.interactivity.modes.grab;\n if (!grab) {\n return;\n }\n container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;\n }\n async interact() {\n var _a, _b;\n const container = this.container,\n options = container.actualOptions,\n interactivity = options.interactivity;\n if (!interactivity.modes.grab || !interactivity.events.onHover.enable || container.interactivity.status !== mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance;\n if (!distance || distance < 0) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n for (const particle of query) {\n const pos = particle.getPosition(),\n pointDistance = getDistance(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links,\n lineOpacity = grabLineOptions.opacity,\n opacityLine = lineOpacity - pointDistance * lineOpacity / distance;\n if (opacityLine <= 0) {\n continue;\n }\n const optColor = (_a = grabLineOptions.color) !== null && _a !== void 0 ? _a : (_b = particle.options.links) === null || _b === void 0 ? void 0 : _b.color;\n if (!container.particles.grabLineColor && optColor) {\n const linksOptions = interactivity.modes.grab.links;\n container.particles.grabLineColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n return;\n }\n drawGrab(container, particle, colorLine, opacityLine, mousePos);\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(\"grab\", events.onHover.mode);\n }\n loadModeOptions(options) {\n if (!options.grab) {\n options.grab = new Grab();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.grab.load(source === null || source === void 0 ? void 0 : source.grab);\n }\n }\n reset() {}\n}","import { ExternalInteractorBase } from \"tsparticles-engine\";\nexport class Pauser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = mode => {\n if (mode !== \"pause\") {\n return;\n }\n const container = this.container;\n if (container.getAnimationStatus()) {\n container.pause();\n } else {\n container.play();\n }\n };\n }\n clear() {}\n init() {}\n async interact() {}\n isEnabled() {\n return true;\n }\n reset() {}\n}","export class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map(t => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}","import { ExternalInteractorBase } from \"tsparticles-engine\";\nimport { Push } from \"./Options/Classes/Push\";\nimport { itemFromArray } from \"tsparticles-engine\";\nexport class Pusher extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = mode => {\n if (mode !== \"push\") {\n return;\n }\n const container = this.container,\n options = container.actualOptions,\n pushOptions = options.interactivity.modes.push;\n if (!pushOptions) {\n return;\n }\n const pushNb = pushOptions.quantity;\n if (pushNb <= 0) {\n return;\n }\n const group = itemFromArray([undefined, ...pushOptions.groups]),\n groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n container.particles.push(pushNb, container.interactivity.mouse, groupOptions, group);\n };\n }\n clear() {}\n init() {}\n async interact() {}\n isEnabled() {\n return true;\n }\n loadModeOptions(options) {\n if (!options.push) {\n options.push = new Push();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.push.load(source === null || source === void 0 ? void 0 : source.push);\n }\n }\n reset() {}\n}","export class Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}","import { ExternalInteractorBase } from \"tsparticles-engine\";\nimport { Remove } from \"./Options/Classes/Remove\";\nexport class Remover extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = mode => {\n const container = this.container,\n options = container.actualOptions;\n if (!options.interactivity.modes.remove || mode !== \"remove\") {\n return;\n }\n const removeNb = options.interactivity.modes.remove.quantity;\n container.particles.removeQuantity(removeNb);\n };\n }\n clear() {}\n init() {}\n async interact() {}\n isEnabled() {\n return true;\n }\n loadModeOptions(options) {\n if (!options.remove) {\n options.remove = new Remove();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.remove.load(source === null || source === void 0 ? void 0 : source.remove);\n }\n }\n reset() {}\n}","export class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = \"ease-out-quad\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}","import { RepulseBase } from \"./RepulseBase\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return executeOnSingleOrMultiple(this.selectors, t => t.replace(\"#\", \"\"));\n }\n set ids(value) {\n this.selectors = executeOnSingleOrMultiple(value, t => `#${t}`);\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}","import { RepulseBase } from \"./RepulseBase\";\nimport { RepulseDiv } from \"./RepulseDiv\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, div => {\n const tmp = new RepulseDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}","import { Circle, ExternalInteractorBase, Rectangle, Vector, calcEasing, clamp, divMode, divModeExecute, getDistances, isDivModeEnabled, isInArray, mouseMoveEvent } from \"tsparticles-engine\";\nimport { Repulse } from \"./Options/Classes/Repulse\";\nexport class Repulser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.repulse) {\n container.repulse = {\n particles: []\n };\n }\n this.handleClickMode = mode => {\n const options = this.container.actualOptions,\n repulse = options.interactivity.modes.repulse;\n if (!repulse || mode !== \"repulse\") {\n return;\n }\n if (!container.repulse) {\n container.repulse = {\n particles: []\n };\n }\n container.repulse.clicking = true;\n container.repulse.count = 0;\n for (const particle of container.repulse.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n container.repulse.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n if (!container.repulse) {\n container.repulse = {\n particles: []\n };\n }\n container.repulse.clicking = false;\n }\n }, repulse.duration * 1000);\n };\n }\n clear() {}\n init() {\n const container = this.container,\n repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container,\n options = container.actualOptions,\n mouseMoveStatus = container.interactivity.status === mouseMoveEvent,\n events = options.interactivity.events,\n hoverEnabled = events.onHover.enable,\n hoverMode = events.onHover.mode,\n clickEnabled = events.onClick.enable,\n clickMode = events.onClick.mode,\n divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"repulse\", hoverMode)) {\n this.hoverRepulse();\n } else if (clickEnabled && isInArray(\"repulse\", clickMode)) {\n this.clickRepulse();\n } else {\n divModeExecute(\"repulse\", divs, (selector, div) => this.singleSelectorRepulse(selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container,\n options = container.actualOptions,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events,\n divs = events.onDiv,\n divRepulse = isDivModeEnabled(\"repulse\", divs);\n if (!(divRepulse || events.onHover.enable && mouse.position || events.onClick.enable && mouse.clickPosition)) {\n return false;\n }\n const hoverMode = events.onHover.mode,\n clickMode = events.onClick.mode;\n return isInArray(\"repulse\", hoverMode) || isInArray(\"repulse\", clickMode) || divRepulse;\n }\n loadModeOptions(options) {\n if (!options.repulse) {\n options.repulse = new Repulse();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.repulse.load(source === null || source === void 0 ? void 0 : source.repulse);\n }\n }\n reset() {}\n clickRepulse() {\n const container = this.container,\n repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n if (!container.repulse) {\n container.repulse = {\n particles: []\n };\n }\n if (!container.repulse.finish) {\n if (!container.repulse.count) {\n container.repulse.count = 0;\n }\n container.repulse.count++;\n if (container.repulse.count === container.particles.count) {\n container.repulse.finish = true;\n }\n }\n if (container.repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance;\n if (!repulseDistance || repulseDistance < 0) {\n return;\n }\n const repulseRadius = Math.pow(repulseDistance / 6, 3),\n mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius),\n query = container.particles.quadTree.query(range, p => this.isEnabled(p));\n for (const particle of query) {\n const {\n dx,\n dy,\n distance\n } = getDistances(mouseClickPos, particle.position),\n d = distance ** 2,\n velocity = repulse.speed,\n force = -repulseRadius * velocity / d;\n if (d <= repulseRadius) {\n container.repulse.particles.push(particle);\n const vect = Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n } else if (container.repulse.clicking === false) {\n for (const particle of container.repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n }\n }\n hoverRepulse() {\n const container = this.container,\n mousePos = container.interactivity.mouse.position,\n repulseRadius = container.retina.repulseModeDistance;\n if (!repulseRadius || repulseRadius < 0 || !mousePos) {\n return;\n }\n this.processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius));\n }\n processRepulse(position, repulseRadius, area, divRepulse) {\n var _a;\n const container = this.container,\n query = container.particles.quadTree.query(area, p => this.isEnabled(p)),\n repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n for (const particle of query) {\n const {\n dx,\n dy,\n distance\n } = getDistances(particle.position, position),\n velocity = ((_a = divRepulse === null || divRepulse === void 0 ? void 0 : divRepulse.speed) !== null && _a !== void 0 ? _a : repulseOptions.speed) * repulseOptions.factor,\n repulseFactor = clamp(calcEasing(1 - distance / repulseRadius, repulseOptions.easing) * velocity, 0, repulseOptions.maxSpeed),\n normVec = Vector.create(distance === 0 ? velocity : dx / distance * repulseFactor, distance === 0 ? velocity : dy / distance * repulseFactor);\n particle.position.addTo(normVec);\n }\n }\n singleSelectorRepulse(selector, div) {\n const container = this.container,\n repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach(item => {\n const elem = item,\n pxRatio = container.retina.pixelRatio,\n pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio\n },\n repulseRadius = elem.offsetWidth / 2 * pxRatio,\n area = div.type === \"circle\" ? new Circle(pos.x, pos.y, repulseRadius) : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio),\n divs = repulse.divs,\n divRepulse = divMode(divs, elem);\n this.processRepulse(pos, repulseRadius, area, divRepulse);\n });\n }\n}","export class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}","import { ExternalInteractorBase, getDistance, isInArray } from \"tsparticles-engine\";\nimport { Slow } from \"./Options/Classes/Slow\";\nexport class Slower extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear(particle, delta, force) {\n if (particle.slow.inRange && !force) {\n return;\n }\n particle.slow.factor = 1;\n }\n init() {\n const container = this.container,\n slow = container.actualOptions.interactivity.modes.slow;\n if (!slow) {\n return;\n }\n container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio;\n }\n async interact() {}\n isEnabled(particle) {\n var _a;\n const container = this.container,\n mouse = container.interactivity.mouse,\n events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(\"slow\", events.onHover.mode);\n }\n loadModeOptions(options) {\n if (!options.slow) {\n options.slow = new Slow();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.slow.load(source === null || source === void 0 ? void 0 : source.slow);\n }\n }\n reset(particle) {\n particle.slow.inRange = false;\n const container = this.container,\n options = container.actualOptions,\n mousePos = container.interactivity.mouse.position,\n radius = container.retina.slowModeRadius,\n slow = options.interactivity.modes.slow;\n if (!slow || !radius || radius < 0 || !mousePos) {\n return;\n }\n const particlePos = particle.getPosition(),\n dist = getDistance(mousePos, particlePos),\n proximityFactor = dist / radius,\n slowFactor = slow.factor;\n if (dist <= radius) {\n particle.slow.inRange = true;\n particle.slow.factor = proximityFactor / slowFactor;\n }\n }\n}","import { getStyleFromHsl } from \"tsparticles-engine\";\nconst currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const {\n svgData\n } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = getStyleFromHsl(color, opacity);\n if (svgData.includes(\"fill\")) {\n return svgData.replace(currentColorRegex, () => colorStyle);\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(0, preFillIndex)} fill=\"${colorStyle}\"${svgData.substring(preFillIndex)}`;\n}\nexport async function loadImage(image) {\n return new Promise(resolve => {\n image.loading = true;\n const img = new Image();\n image.element = img;\n img.addEventListener(\"load\", () => {\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\n image.element = undefined;\n image.error = true;\n image.loading = false;\n console.error(`Error tsParticles - loading image: ${image.source}`);\n resolve();\n });\n img.src = image.source;\n });\n}\nexport async function downloadSvgImage(image) {\n if (image.type !== \"svg\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n const response = await fetch(image.source);\n if (!response.ok) {\n console.error(\"Error tsParticles - Image not found\");\n image.error = true;\n }\n if (!image.error) {\n image.svgData = await response.text();\n }\n image.loading = false;\n}\nexport function replaceImageColor(image, imageData, color, particle) {\n var _a, _b, _c;\n const svgColoredData = replaceColorSvg(image, color, (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1),\n imageRes = {\n color,\n data: Object.assign(Object.assign({}, image), {\n svgData: svgColoredData\n }),\n loaded: false,\n ratio: imageData.width / imageData.height,\n replaceColor: (_c = imageData.replaceColor) !== null && _c !== void 0 ? _c : imageData.replace_color,\n source: imageData.src\n };\n return new Promise(resolve => {\n const svg = new Blob([svgColoredData], {\n type: \"image/svg+xml\"\n }),\n domUrl = URL || window.URL || window.webkitURL || window,\n url = domUrl.createObjectURL(svg),\n img = new Image();\n img.addEventListener(\"load\", () => {\n imageRes.loaded = true;\n imageRes.element = img;\n resolve(imageRes);\n domUrl.revokeObjectURL(url);\n });\n img.addEventListener(\"error\", async () => {\n domUrl.revokeObjectURL(url);\n const img2 = Object.assign(Object.assign({}, image), {\n error: false,\n loading: true\n });\n await loadImage(img2);\n imageRes.loaded = true;\n imageRes.element = img2.element;\n resolve(imageRes);\n });\n img.src = url;\n });\n}","import { downloadSvgImage, loadImage, replaceImageColor } from \"./Utils\";\nexport class ImageDrawer {\n constructor() {\n this._images = [];\n }\n addImage(container, image) {\n const containerImages = this.getImages(container);\n containerImages === null || containerImages === void 0 ? void 0 : containerImages.images.push(image);\n }\n destroy() {\n this._images = [];\n }\n draw(context, particle, radius, opacity) {\n var _a;\n const image = particle.image,\n element = image === null || image === void 0 ? void 0 : image.element;\n if (!element) {\n return;\n }\n const ratio = (_a = image === null || image === void 0 ? void 0 : image.ratio) !== null && _a !== void 0 ? _a : 1,\n pos = {\n x: -radius,\n y: -radius\n };\n context.globalAlpha = opacity;\n context.drawImage(element, pos.x, pos.y, radius * 2, radius * 2 / ratio);\n context.globalAlpha = 1;\n }\n getImages(container) {\n const containerImages = this._images.find(t => t.id === container.id);\n if (!containerImages) {\n this._images.push({\n id: container.id,\n images: []\n });\n return this.getImages(container);\n } else {\n return containerImages;\n }\n }\n getSidesCount() {\n return 12;\n }\n loadShape(particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const container = particle.container,\n images = this.getImages(container).images,\n imageData = particle.shapeData,\n image = images.find(t => t.source === imageData.src);\n if (!image) {\n this.loadImageShape(container, imageData).then(() => {\n this.loadShape(particle);\n });\n return;\n }\n if (image.error) {\n return;\n }\n }\n particleInit(container, particle) {\n var _a;\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const images = this.getImages(container).images,\n imageData = particle.shapeData,\n color = particle.getFillColor(),\n replaceColor = (_a = imageData.replaceColor) !== null && _a !== void 0 ? _a : imageData.replace_color,\n image = images.find(t => t.source === imageData.src);\n if (!image) {\n return;\n }\n if (image.loading) {\n setTimeout(() => {\n this.particleInit(container, particle);\n });\n return;\n }\n (async () => {\n var _a, _b;\n let imageRes;\n if (image.svgData && replaceColor && color) {\n imageRes = await replaceImageColor(image, imageData, color, particle);\n } else {\n imageRes = {\n color,\n data: image,\n element: image.element,\n loaded: true,\n ratio: imageData.width / imageData.height,\n replaceColor: replaceColor,\n source: imageData.src\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = (_a = imageData.fill) !== null && _a !== void 0 ? _a : particle.fill,\n close = (_b = imageData.close) !== null && _b !== void 0 ? _b : particle.close,\n imageShape = {\n image: imageRes,\n fill,\n close\n };\n particle.image = imageShape.image;\n particle.fill = imageShape.fill;\n particle.close = imageShape.close;\n })();\n }\n async loadImageShape(container, imageShape) {\n var _a;\n const source = imageShape.src;\n if (!source) {\n throw new Error(\"Error tsParticles - No image.src\");\n }\n try {\n const image = {\n source: source,\n type: source.substring(source.length - 3),\n error: false,\n loading: true\n };\n this.addImage(container, image);\n const imageFunc = ((_a = imageShape.replaceColor) !== null && _a !== void 0 ? _a : imageShape.replace_color) ? downloadSvgImage : loadImage;\n await imageFunc(image);\n } catch (_b) {\n throw new Error(`tsParticles error - ${imageShape.src} not found`);\n }\n }\n}","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { LifeDelay } from \"./LifeDelay\";\nimport { LifeDuration } from \"./LifeDuration\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}","import { getRandom, getRangeValue, randomInRange, setRangeValue } from \"tsparticles-engine\";\nimport { Life } from \"./Options/Classes/Life\";\nexport class LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container,\n particlesOptions = particle.options,\n lifeOptions = particlesOptions.life;\n if (!lifeOptions) {\n return;\n }\n particle.life = {\n delay: container.retina.reduceFactor ? getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : getRandom()) / container.retina.reduceFactor * 1000 : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor ? getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : getRandom()) / container.retina.reduceFactor * 1000 : 0,\n time: 0,\n count: lifeOptions.count\n };\n if (particle.life.duration <= 0) {\n particle.life.duration = -1;\n }\n if (particle.life.count <= 0) {\n particle.life.count = -1;\n }\n if (particle.life) {\n particle.spawning = particle.life.delay > 0;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options) {\n if (!options.life) {\n options.life = new Life();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.life.load(source === null || source === void 0 ? void 0 : source.life);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.life) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = 0;\n life.time = 0;\n } else {\n return;\n }\n }\n if (life.duration === -1) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = 0;\n } else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = 0;\n if (particle.life.count > 0) {\n particle.life.count--;\n }\n if (particle.life.count === 0) {\n particle.destroy();\n return;\n }\n const canvasSize = this.container.canvas.size,\n widthRange = setRangeValue(0, canvasSize.width),\n heightRange = setRangeValue(0, canvasSize.width);\n particle.position.x = randomInRange(widthRange);\n particle.position.y = randomInRange(heightRange);\n particle.spawning = true;\n life.delayTime = 0;\n life.time = 0;\n particle.reset();\n const lifeOptions = particle.options.life;\n if (lifeOptions) {\n life.delay = getRangeValue(lifeOptions.delay.value) * 1000;\n life.duration = getRangeValue(lifeOptions.duration.value) * 1000;\n }\n }\n}","export class LineDrawer {\n draw(context, particle, radius) {\n context.moveTo(-radius / 2, 0);\n context.lineTo(radius / 2, 0);\n }\n getSidesCount() {\n return 1;\n }\n}","import { clamp, getRandom, getRangeMax, getRangeMin, getRangeValue, randomInRange } from \"tsparticles-engine\";\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.opacity.animation.destroy) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateOpacity(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (!particle.opacity) {\n return;\n }\n const minValue = particle.opacity.min,\n maxValue = particle.opacity.max,\n decay = (_a = particle.opacity.decay) !== null && _a !== void 0 ? _a : 1;\n 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)) {\n return;\n }\n switch (particle.opacity.status) {\n case 0:\n if (particle.opacity.value >= maxValue) {\n particle.opacity.status = 1;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n } else {\n particle.opacity.value += ((_e = particle.opacity.velocity) !== null && _e !== void 0 ? _e : 0) * delta.factor;\n }\n break;\n case 1:\n if (particle.opacity.value <= minValue) {\n particle.opacity.status = 0;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n } else {\n particle.opacity.value -= ((_f = particle.opacity.velocity) !== null && _f !== void 0 ? _f : 0) * delta.factor;\n }\n break;\n }\n if (particle.opacity.velocity && particle.opacity.decay !== 1) {\n particle.opacity.velocity *= decay;\n }\n checkDestroy(particle, particle.opacity.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.opacity.value = clamp(particle.opacity.value, minValue, maxValue);\n }\n}\nexport class OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity;\n particle.opacity = {\n enable: opacityOptions.animation.enable,\n max: getRangeMax(opacityOptions.value),\n min: getRangeMin(opacityOptions.value),\n value: getRangeValue(opacityOptions.value),\n loops: 0,\n maxLoops: getRangeValue(opacityOptions.animation.count)\n };\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.decay = 1 - getRangeValue(opacityAnimation.decay);\n particle.opacity.status = 0;\n const opacityRange = opacityOptions.value;\n particle.opacity.min = getRangeMin(opacityRange);\n particle.opacity.max = getRangeMax(opacityRange);\n switch (opacityAnimation.startValue) {\n case \"min\":\n particle.opacity.value = particle.opacity.min;\n particle.opacity.status = 0;\n break;\n case \"random\":\n particle.opacity.value = randomInRange(particle.opacity);\n particle.opacity.status = getRandom() >= 0.5 ? 0 : 1;\n break;\n case \"max\":\n default:\n particle.opacity.value = particle.opacity.max;\n particle.opacity.status = 1;\n break;\n }\n particle.opacity.velocity = getRangeValue(opacityAnimation.speed) / 100 * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n 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));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateOpacity(particle, delta);\n }\n}","import { calculateBounds } from \"tsparticles-engine\";\nimport { bounceHorizontal, bounceVertical } from \"./Utils\";\nexport class BounceOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"bounce\", \"bounce-vertical\", \"bounce-horizontal\", \"bounceVertical\", \"bounceHorizontal\", \"split\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(),\n offset = particle.offset,\n size = particle.getRadius(),\n bounds = calculateBounds(pos, size),\n canvasSize = container.canvas.size;\n bounceHorizontal({\n particle,\n outMode,\n direction,\n bounds,\n canvasSize,\n offset,\n size\n });\n bounceVertical({\n particle,\n outMode,\n direction,\n bounds,\n canvasSize,\n offset,\n size\n });\n }\n}","import { getValue } from \"tsparticles-engine\";\nexport function bounceHorizontal(data) {\n if (data.outMode !== \"bounce\" && data.outMode !== \"bounce-horizontal\" && data.outMode !== \"bounceHorizontal\" && data.outMode !== \"split\") {\n return;\n }\n if (data.bounds.right < 0) {\n data.particle.position.x = data.size + data.offset.x;\n } else if (data.bounds.left > data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - data.size - data.offset.x;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if (data.direction === \"right\" && data.bounds.right >= data.canvasSize.width && velocity > 0 || data.direction === \"left\" && data.bounds.left <= 0 && velocity < 0) {\n const newVelocity = getValue(data.particle.options.bounce.horizontal);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - minPos;\n } else if (data.bounds.left <= 0) {\n data.particle.position.x = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\nexport function bounceVertical(data) {\n if (data.outMode !== \"bounce\" && data.outMode !== \"bounce-vertical\" && data.outMode !== \"bounceVertical\" && data.outMode !== \"split\") {\n return;\n }\n if (data.bounds.bottom < 0) {\n data.particle.position.y = data.size + data.offset.y;\n } else if (data.bounds.top > data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - data.size - data.offset.y;\n }\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if (data.direction === \"bottom\" && data.bounds.bottom >= data.canvasSize.height && velocity > 0 || data.direction === \"top\" && data.bounds.top <= 0 && velocity < 0) {\n const newVelocity = getValue(data.particle.options.bounce.vertical);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - minPos;\n } else if (data.bounds.top <= 0) {\n data.particle.position.y = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}","import { Vector, getDistances, isPointInside } from \"tsparticles-engine\";\nexport class DestroyOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"destroy\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"normal\":\n case \"outside\":\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n break;\n case \"inside\":\n {\n const {\n dx,\n dy\n } = getDistances(particle.position, particle.moveCenter);\n const {\n x: vx,\n y: vy\n } = particle.velocity;\n if (vx < 0 && dx > particle.moveCenter.radius || vy < 0 && dy > particle.moveCenter.radius || vx >= 0 && dx < -particle.moveCenter.radius || vy >= 0 && dy < -particle.moveCenter.radius) {\n return;\n }\n break;\n }\n }\n container.particles.remove(particle, undefined, true);\n }\n}","import { Vector, isPointInside } from \"tsparticles-engine\";\nexport class NoneOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"none\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n if (particle.options.move.distance.horizontal && (direction === \"left\" || direction === \"right\") || particle.options.move.distance.vertical && (direction === \"top\" || direction === \"bottom\")) {\n return;\n }\n const gravityOptions = particle.options.move.gravity,\n container = this.container;\n const canvasSize = container.canvas.size;\n const pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if (particle.velocity.y > 0 && particle.position.y <= canvasSize.height + pRadius || particle.velocity.y < 0 && particle.position.y >= -pRadius || particle.velocity.x > 0 && particle.position.x <= canvasSize.width + pRadius || particle.velocity.x < 0 && particle.position.x >= -pRadius) {\n return;\n }\n if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) {\n container.particles.remove(particle);\n }\n } else {\n const position = particle.position;\n if (!gravityOptions.inverse && position.y > canvasSize.height + pRadius && direction === \"bottom\" || gravityOptions.inverse && position.y < -pRadius && direction === \"top\") {\n container.particles.remove(particle);\n }\n }\n }\n}","import { Vector, calculateBounds, getDistances, getRandom, isPointInside, randomInRange } from \"tsparticles-engine\";\nexport class OutOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"out\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"inside\":\n {\n const {\n x: vx,\n y: vy\n } = particle.velocity;\n const circVec = Vector.origin;\n circVec.length = particle.moveCenter.radius;\n circVec.angle = particle.velocity.angle + Math.PI;\n circVec.addTo(Vector.create(particle.moveCenter));\n const {\n dx,\n dy\n } = getDistances(particle.position, circVec);\n if (vx <= 0 && dx >= 0 || vy <= 0 && dy >= 0 || vx >= 0 && dx <= 0 || vy >= 0 && dy <= 0) {\n return;\n }\n particle.position.x = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.width\n }));\n particle.position.y = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.height\n }));\n const {\n dx: newDx,\n dy: newDy\n } = getDistances(particle.position, particle.moveCenter);\n particle.direction = Math.atan2(-newDy, -newDx);\n particle.velocity.angle = particle.direction;\n break;\n }\n default:\n {\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n switch (particle.outType) {\n case \"outside\":\n {\n particle.position.x = Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius\n })) + particle.moveCenter.x;\n particle.position.y = Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius\n })) + particle.moveCenter.y;\n const {\n dx,\n dy\n } = getDistances(particle.position, particle.moveCenter);\n if (particle.moveCenter.radius) {\n particle.direction = Math.atan2(dy, dx);\n particle.velocity.angle = particle.direction;\n }\n break;\n }\n case \"normal\":\n {\n const wrap = particle.options.move.warp,\n canvasSize = container.canvas.size,\n newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y\n },\n sizeValue = particle.getRadius(),\n nextBounds = calculateBounds(particle.position, sizeValue);\n if (direction === \"right\" && nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n } else if (direction === \"left\" && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === \"bottom\" && nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!wrap) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n } else if (direction === \"top\" && nextBounds.bottom < -particle.offset.y) {\n if (!wrap) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n break;\n }\n }\n break;\n }\n }\n }\n}","import { BounceOutMode } from \"./BounceOutMode\";\nimport { DestroyOutMode } from \"./DestroyOutMode\";\nimport { NoneOutMode } from \"./NoneOutMode\";\nimport { OutOutMode } from \"./OutOutMode\";\nexport class OutOfCanvasUpdater {\n constructor(container) {\n this.container = container;\n this.updaters = [new BounceOutMode(container), new DestroyOutMode(container), new OutOutMode(container), new NoneOutMode(container)];\n }\n init() {}\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n var _a, _b, _c, _d;\n const outModes = particle.options.move.outModes;\n this.updateOutMode(particle, delta, (_a = outModes.bottom) !== null && _a !== void 0 ? _a : outModes.default, \"bottom\");\n this.updateOutMode(particle, delta, (_b = outModes.left) !== null && _b !== void 0 ? _b : outModes.default, \"left\");\n this.updateOutMode(particle, delta, (_c = outModes.right) !== null && _c !== void 0 ? _c : outModes.default, \"right\");\n this.updateOutMode(particle, delta, (_d = outModes.top) !== null && _d !== void 0 ? _d : outModes.default, \"top\");\n }\n updateOutMode(particle, delta, outMode, direction) {\n for (const updater of this.updaters) {\n updater.update(particle, direction, delta, outMode);\n }\n }\n}","import { isSsr } from \"tsparticles-engine\";\nexport class ParallaxMover {\n init() {}\n isEnabled(particle) {\n return !isSsr() && !particle.destroyed && particle.container.actualOptions.interactivity.events.onHover.parallax.enable;\n }\n move(particle) {\n const container = particle.container,\n options = container.actualOptions;\n if (isSsr() || !options.interactivity.events.onHover.parallax.enable) {\n return;\n }\n const parallaxForce = options.interactivity.events.onHover.parallax.force,\n mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasCenter = {\n x: container.canvas.size.width / 2,\n y: container.canvas.size.height / 2\n },\n parallaxSmooth = options.interactivity.events.onHover.parallax.smooth,\n factor = particle.getRadius() / parallaxForce,\n centerDistance = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor\n };\n particle.offset.x += (centerDistance.x - particle.offset.x) / parallaxSmooth;\n particle.offset.y += (centerDistance.y - particle.offset.y) / parallaxSmooth;\n }\n}","import { ParticlesInteractorBase, getDistances } from \"tsparticles-engine\";\nexport class Attractor extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {}\n init() {}\n async interact(p1) {\n var _a;\n const container = this.container,\n distance = (_a = p1.retina.attractDistance) !== null && _a !== void 0 ? _a : container.retina.attractDistance,\n pos1 = p1.getPosition(),\n query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(),\n {\n dx,\n dy\n } = getDistances(pos1, pos2),\n rotate = p1.options.move.attract.rotate,\n ax = dx / (rotate.x * 1000),\n ay = dy / (rotate.y * 1000),\n p1Factor = p2.size.value / p1.size.value,\n p2Factor = 1 / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {}\n}","import { circleBounce, circleBounceDataFromParticle } from \"tsparticles-engine\";\nexport function bounce(p1, p2) {\n circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2));\n}","import { absorb } from \"./Absorb\";\nimport { bounce } from \"./Bounce\";\nimport { destroy } from \"./Destroy\";\nexport function resolveCollision(p1, p2, fps, pixelRatio) {\n switch (p1.options.collisions.mode) {\n case \"absorb\":\n {\n absorb(p1, p2, fps, pixelRatio);\n break;\n }\n case \"bounce\":\n {\n bounce(p1, p2);\n break;\n }\n case \"destroy\":\n {\n destroy(p1, p2);\n break;\n }\n }\n}","import { clamp } from \"tsparticles-engine\";\nexport function absorb(p1, p2, fps, pixelRatio) {\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n } else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n } else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n const factor = clamp(p1.getRadius() / p2.getRadius(), 0, p2.getRadius()) * fps;\n p1.size.value += factor;\n p2.size.value -= factor;\n if (p2.getRadius() <= pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n } else {\n const factor = clamp(p2.getRadius() / p1.getRadius(), 0, p1.getRadius()) * fps;\n p1.size.value -= factor;\n p2.size.value += factor;\n if (p1.getRadius() <= pixelRatio) {\n p1.size.value = 0;\n p1.destroy();\n }\n }\n }\n}","import { bounce } from \"./Bounce\";\nexport function destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n } else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n } else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n p2.destroy();\n } else {\n p1.destroy();\n }\n }\n}","import { ParticlesInteractorBase, getDistance } from \"tsparticles-engine\";\nimport { resolveCollision } from \"./ResolveCollision\";\nexport class Collider extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {}\n init() {}\n async interact(p1) {\n const container = this.container,\n pos1 = p1.getPosition(),\n radius1 = p1.getRadius(),\n query = container.particles.quadTree.queryCircle(pos1, radius1 * 2);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.collisions.enable || p1.options.collisions.mode !== p2.options.collisions.mode || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition();\n const radius2 = p2.getRadius();\n if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) {\n continue;\n }\n const dist = getDistance(pos1, pos2);\n const distP = radius1 + radius2;\n if (dist > distP) {\n continue;\n }\n resolveCollision(p1, p2, container.fpsLimit / 1000, container.retina.pixelRatio);\n }\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {}\n}","import { Circle, Rectangle } from \"tsparticles-engine\";\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = Object.assign({}, canvasSize);\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range,\n circle = range,\n newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n } else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}","import { OptionsColor } from \"tsparticles-engine\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}","import { OptionsColor } from \"tsparticles-engine\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}","import { LinksShadow } from \"./LinksShadow\";\nimport { LinksTriangle } from \"./LinksTriangle\";\nimport { OptionsColor } from \"tsparticles-engine\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}","import { Circle, ParticlesInteractorBase, getDistance, getLinkRandomColor } from \"tsparticles-engine\";\nimport { CircleWarp } from \"./CircleWarp\";\nimport { Links } from \"./Options/Classes/Links\";\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n let distance = getDistance(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const pos2NE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y\n };\n distance = getDistance(pos1, pos2NE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y - canvasSize.height\n };\n distance = getDistance(pos1, pos2SE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SW = {\n x: pos2.x,\n y: pos2.y - canvasSize.height\n };\n distance = getDistance(pos1, pos2SW);\n return distance;\n}\nexport class Linker extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n this.linkContainer = container;\n }\n clear() {}\n init() {\n this.linkContainer.particles.linksColors = new Map();\n }\n async interact(p1) {\n var _a;\n if (!p1.options.links) {\n return;\n }\n p1.links = [];\n const pos1 = p1.getPosition(),\n container = this.container,\n canvasSize = container.canvas.size;\n if (pos1.x < 0 || pos1.y < 0 || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links,\n optOpacity = linkOpt1.opacity,\n optDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : 0,\n warp = linkOpt1.warp,\n range = warp ? new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize) : new Circle(pos1.x, pos1.y, optDistance),\n query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 || !(linkOpt2 === null || linkOpt2 === void 0 ? void 0 : linkOpt2.enable) || linkOpt1.id !== linkOpt2.id || p2.spawning || p2.destroyed || !p2.links || p1.links.map(t => t.destination).indexOf(p2) !== -1 || p2.links.map(t => t.destination).indexOf(p1) !== -1) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < 0 || pos2.y < 0 || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n return;\n }\n const opacityLine = (1 - distance / optDistance) * optOpacity;\n this.setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine\n });\n }\n }\n isEnabled(particle) {\n var _a;\n return !!((_a = particle.options.links) === null || _a === void 0 ? void 0 : _a.enable);\n }\n loadParticlesOptions(options) {\n var _a, _b;\n if (!options.links) {\n options.links = new Links();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.links.load((_b = (_a = source === null || source === void 0 ? void 0 : source.links) !== null && _a !== void 0 ? _a : source === null || source === void 0 ? void 0 : source.lineLinked) !== null && _b !== void 0 ? _b : source === null || source === void 0 ? void 0 : source.line_linked);\n }\n }\n reset() {}\n setColor(p1) {\n if (!p1.options.links) {\n return;\n }\n const container = this.linkContainer,\n linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined ? container.particles.linksColor : container.particles.linksColors.get(linksOptions.id);\n if (linkColor) {\n return;\n }\n const optColor = linksOptions.color;\n linkColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n } else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n }\n}","import { drawLinkLine, drawLinkTriangle } from \"./Utils\";\nimport { getDistance, getLinkColor, getRandom, getRangeValue, rangeColorToRgb } from \"tsparticles-engine\";\nfunction getLinkKey(ids) {\n ids.sort((a, b) => a - b);\n return ids.join(\"_\");\n}\nfunction setLinkFrequency(particles, dictionary) {\n const key = getLinkKey(particles.map(t => t.id));\n let res = dictionary.get(key);\n if (res === undefined) {\n res = getRandom();\n dictionary.set(key, res);\n }\n return res;\n}\nexport class LinkInstance {\n constructor(container) {\n this.container = container;\n this._freqs = {\n links: new Map(),\n triangles: new Map()\n };\n }\n drawParticle(context, particle) {\n var _a;\n const container = this.container,\n pOptions = particle.options;\n if (!particle.links || particle.links.length <= 0) {\n return;\n }\n context.save();\n const p1Links = particle.links.filter(l => pOptions.links && this.getLinkFrequency(particle, l.destination) <= pOptions.links.frequency);\n for (const link of p1Links) {\n this.drawTriangles(container, pOptions, particle, link, p1Links);\n if (link.opacity > 0 && ((_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : 0) > 0) {\n this.drawLinkLine(particle, link);\n }\n }\n context.restore();\n }\n init() {\n this._freqs.links = new Map();\n this._freqs.triangles = new Map();\n }\n particleCreated(particle) {\n particle.links = [];\n if (!particle.options.links) {\n return;\n }\n const ratio = this.container.retina.pixelRatio;\n particle.retina.linksDistance = particle.options.links.distance * ratio;\n particle.retina.linksWidth = particle.options.links.width * ratio;\n }\n particleDestroyed(particle) {\n particle.links = [];\n }\n drawLinkLine(p1, link) {\n const container = this.container,\n options = container.actualOptions,\n p2 = link.destination,\n pos1 = p1.getPosition(),\n pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw(ctx => {\n var _a, _b, _c;\n if (!p1.options.links) {\n return;\n }\n let colorLine;\n const twinkle = (_a = p1.options.twinkle) === null || _a === void 0 ? void 0 : _a.lines;\n if (twinkle === null || twinkle === void 0 ? void 0 : twinkle.enable) {\n const twinkleFreq = twinkle.frequency,\n twinkleRgb = rangeColorToRgb(twinkle.color),\n twinkling = getRandom() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = getRangeValue(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linksOptions = p1.options.links,\n linkColor = (linksOptions === null || linksOptions === void 0 ? void 0 : linksOptions.id) !== undefined ? container.particles.linksColors.get(linksOptions.id) : container.particles.linksColor;\n colorLine = getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = (_b = p1.retina.linksWidth) !== null && _b !== void 0 ? _b : 0,\n maxDistance = (_c = p1.retina.linksDistance) !== null && _c !== void 0 ? _c : 0;\n drawLinkLine(ctx, width, pos1, pos2, maxDistance, container.canvas.size, p1.options.links.warp, options.backgroundMask.enable, options.backgroundMask.composite, colorLine, opacity, p1.options.links.shadow);\n });\n }\n drawLinkTriangle(p1, link1, link2) {\n var _a;\n if (!p1.options.links) {\n return;\n }\n const container = this.container,\n options = container.actualOptions,\n p2 = link1.destination,\n p3 = link2.destination,\n triangleOptions = p1.options.links.triangles,\n opacityTriangle = (_a = triangleOptions.opacity) !== null && _a !== void 0 ? _a : (link1.opacity + link2.opacity) / 2;\n if (opacityTriangle <= 0) {\n return;\n }\n container.canvas.draw(ctx => {\n var _a;\n const pos1 = p1.getPosition(),\n pos2 = p2.getPosition(),\n pos3 = p3.getPosition(),\n linksDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : 0;\n if (getDistance(pos1, pos2) > linksDistance || getDistance(pos3, pos2) > linksDistance || getDistance(pos3, pos1) > linksDistance) {\n return;\n }\n let colorTriangle = rangeColorToRgb(triangleOptions.color);\n if (!colorTriangle) {\n const linksOptions = p1.options.links,\n linkColor = (linksOptions === null || linksOptions === void 0 ? void 0 : linksOptions.id) !== undefined ? container.particles.linksColors.get(linksOptions.id) : container.particles.linksColor;\n colorTriangle = getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n drawLinkTriangle(ctx, pos1, pos2, pos3, options.backgroundMask.enable, options.backgroundMask.composite, colorTriangle, opacityTriangle);\n });\n }\n drawTriangles(container, options, p1, link, p1Links) {\n var _a, _b, _c;\n const p2 = link.destination;\n if (!(((_a = options.links) === null || _a === void 0 ? void 0 : _a.triangles.enable) && ((_b = p2.options.links) === null || _b === void 0 ? void 0 : _b.triangles.enable))) {\n return;\n }\n const vertices = (_c = p2.links) === null || _c === void 0 ? void 0 : _c.filter(t => {\n const linkFreq = this.getLinkFrequency(p2, t.destination);\n return p2.options.links && linkFreq <= p2.options.links.frequency && p1Links.findIndex(l => l.destination === t.destination) >= 0;\n });\n if (!(vertices === null || vertices === void 0 ? void 0 : vertices.length)) {\n return;\n }\n for (const vertex of vertices) {\n const p3 = vertex.destination,\n triangleFreq = this.getTriangleFrequency(p1, p2, p3);\n if (triangleFreq > options.links.triangles.frequency) {\n continue;\n }\n this.drawLinkTriangle(p1, link, vertex);\n }\n }\n getLinkFrequency(p1, p2) {\n return setLinkFrequency([p1, p2], this._freqs.links);\n }\n getTriangleFrequency(p1, p2, p3) {\n return setLinkFrequency([p1, p2, p3], this._freqs.triangles);\n }\n}","import { drawLine, drawTriangle, getDistance, getDistances, getStyleFromRgb, rangeColorToRgb } from \"tsparticles-engine\";\nexport function drawLinkLine(context, width, begin, end, maxDistance, canvasSize, warp, backgroundMask, composite, colorLine, opacity, shadow) {\n let drawn = false;\n if (getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n } else if (warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y\n };\n const d1 = getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - d1.dy / d1.dx * begin.x;\n pi1 = {\n x: 0,\n y: yi\n };\n pi2 = {\n x: canvasSize.width,\n y: yi\n };\n } else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height\n };\n const d2 = getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - d2.dy / d2.dx * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = {\n x: xi,\n y: 0\n };\n pi2 = {\n x: xi,\n y: canvasSize.height\n };\n } else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height\n };\n const d3 = getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - d3.dy / d3.dx * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = {\n x: xi,\n y: yi\n };\n pi2 = {\n x: pi1.x + canvasSize.width,\n y: pi1.y + canvasSize.height\n };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n if (shadow.enable) {\n const shadowColor = rangeColorToRgb(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n}\nexport function drawLinkTriangle(context, pos1, pos2, pos3, backgroundMask, composite, colorTriangle, opacityTriangle) {\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n}","import { LinkInstance } from \"./LinkInstance\";\nclass LinksPlugin {\n constructor() {\n this.id = \"links\";\n }\n getPlugin(container) {\n return new LinkInstance(container);\n }\n loadOptions() {}\n needsPlugin() {\n return true;\n }\n}\nexport async function loadPlugin(engine) {\n const plugin = new LinksPlugin();\n await engine.addPlugin(plugin);\n}","import { loadInteraction } from \"./interaction\";\nimport { loadPlugin } from \"./plugin\";\nexport async function loadParticlesLinksInteraction(engine) {\n await loadInteraction(engine);\n await loadPlugin(engine);\n}\nexport * from \"./Options/Classes/Links\";\nexport * from \"./Options/Classes/LinksShadow\";\nexport * from \"./Options/Classes/LinksTriangle\";\nexport * from \"./Options/Interfaces/ILinks\";\nexport * from \"./Options/Interfaces/ILinksShadow\";\nexport * from \"./Options/Interfaces/ILinksTriangle\";","import { Linker } from \"./Linker\";\nexport async function loadInteraction(engine) {\n await engine.addInteractor(\"particlesLinks\", container => new Linker(container));\n}","export class PolygonDrawerBase {\n draw(context, particle, radius) {\n const start = this.getCenter(particle, radius);\n const side = this.getSidesData(particle, radius);\n const sideCount = side.count.numerator * side.count.denominator;\n const decimalSides = side.count.numerator / side.count.denominator;\n const interiorAngleDegrees = 180 * (decimalSides - 2) / decimalSides;\n const interiorAngle = Math.PI - Math.PI * interiorAngleDegrees / 180;\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(0, 0);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, 0);\n context.translate(side.length, 0);\n context.rotate(interiorAngle);\n }\n }\n getSidesCount(particle) {\n var _a, _b;\n const polygon = particle.shapeData;\n return (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n}","import { PolygonDrawerBase } from \"./PolygonDrawerBase\";\nexport class PolygonDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n const sides = this.getSidesCount(particle);\n return {\n x: -radius / (sides / 3.5),\n y: -radius / (2.66 / 3.5)\n };\n }\n getSidesData(particle, radius) {\n var _a, _b;\n const polygon = particle.shapeData;\n const sides = (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n return {\n count: {\n denominator: 1,\n numerator: sides\n },\n length: radius * 2.66 / (sides / 3)\n };\n }\n}","import { PolygonDrawerBase } from \"./PolygonDrawerBase\";\nexport class TriangleDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / 1.66\n };\n }\n getSidesCount() {\n return 3;\n }\n getSidesData(particle, radius) {\n return {\n count: {\n denominator: 2,\n numerator: 3\n },\n length: radius * 2\n };\n }\n}","import { PolygonDrawer } from \"./PolygonDrawer\";\nimport { TriangleDrawer } from \"./TriangleDrawer\";\nexport async function loadGenericPolygonShape(engine) {\n await engine.addShape(\"polygon\", new PolygonDrawer());\n}\nexport async function loadTriangleShape(engine) {\n await engine.addShape(\"triangle\", new TriangleDrawer());\n}\nexport async function loadPolygonShape(engine) {\n await loadGenericPolygonShape(engine);\n await loadTriangleShape(engine);\n}","import { clamp } from \"tsparticles-engine\";\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.size.animation.destroy) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateSize(particle, delta) {\n var _a, _b, _c, _d, _e;\n const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor,\n minValue = particle.size.min,\n maxValue = particle.size.max,\n decay = (_b = particle.size.decay) !== null && _b !== void 0 ? _b : 1;\n if (particle.destroyed || !particle.size.enable || ((_c = particle.size.maxLoops) !== null && _c !== void 0 ? _c : 0) > 0 && ((_d = particle.size.loops) !== null && _d !== void 0 ? _d : 0) > ((_e = particle.size.maxLoops) !== null && _e !== void 0 ? _e : 0)) {\n return;\n }\n switch (particle.size.status) {\n case 0:\n if (particle.size.value >= maxValue) {\n particle.size.status = 1;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n } else {\n particle.size.value += sizeVelocity;\n }\n break;\n case 1:\n if (particle.size.value <= minValue) {\n particle.size.status = 0;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n } else {\n particle.size.value -= sizeVelocity;\n }\n }\n if (particle.size.velocity && decay !== 1) {\n particle.size.velocity *= decay;\n }\n checkDestroy(particle, particle.size.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.size.value = clamp(particle.size.value, minValue, maxValue);\n }\n}\nexport class SizeUpdater {\n init() {}\n isEnabled(particle) {\n var _a, _b, _c, _d;\n return !particle.destroyed && !particle.spawning && particle.size.enable && (((_a = particle.size.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 || ((_b = particle.size.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateSize(particle, delta);\n }\n}","const fixFactor = Math.sqrt(2);\nexport class SquareDrawer {\n draw(context, particle, radius) {\n context.rect(-radius / fixFactor, -radius / fixFactor, radius * 2 / fixFactor, radius * 2 / fixFactor);\n }\n getSidesCount() {\n return 4;\n }\n}","export class StarDrawer {\n draw(context, particle, radius) {\n var _a;\n const star = particle.shapeData,\n sides = this.getSidesCount(particle),\n inset = (_a = star === null || star === void 0 ? void 0 : star.inset) !== null && _a !== void 0 ? _a : 2;\n context.moveTo(0, 0 - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius);\n }\n }\n getSidesCount(particle) {\n var _a, _b;\n const star = particle.shapeData;\n return (_b = (_a = star === null || star === void 0 ? void 0 : star.sides) !== null && _a !== void 0 ? _a : star === null || star === void 0 ? void 0 : star.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n}","import { getHslAnimationFromHsl, itemFromSingleOrMultiple, randomInRange, rangeColorToHsl } from \"tsparticles-engine\";\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a, _b;\n const colorValue = value;\n if (!colorValue || !colorValue.enable) {\n return;\n }\n const offset = randomInRange(valueAnimation.offset),\n velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6,\n decay = (_b = value.decay) !== null && _b !== void 0 ? _b : 1;\n if (!decrease || colorValue.status === 0) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = 1;\n colorValue.value -= colorValue.value % max;\n }\n } else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = 0;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.velocity && decay !== 1) {\n colorValue.velocity *= decay;\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateStrokeColor(particle, delta) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n if (!((_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color)) {\n return;\n }\n const animationOptions = particle.stroke.color.animation,\n h = (_c = (_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h) !== null && _c !== void 0 ? _c : (_d = particle.color) === null || _d === void 0 ? void 0 : _d.h;\n if (h) {\n updateColorValue(delta, h, animationOptions.h, 360, false);\n }\n const s = (_f = (_e = particle.strokeColor) === null || _e === void 0 ? void 0 : _e.s) !== null && _f !== void 0 ? _f : (_g = particle.color) === null || _g === void 0 ? void 0 : _g.s;\n if (s) {\n updateColorValue(delta, s, animationOptions.s, 100, true);\n }\n const l = (_j = (_h = particle.strokeColor) === null || _h === void 0 ? void 0 : _h.l) !== null && _j !== void 0 ? _j : (_k = particle.color) === null || _k === void 0 ? void 0 : _k.l;\n if (l) {\n updateColorValue(delta, l, animationOptions.l, 100, true);\n }\n}\nexport class StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a, _b;\n const container = this.container;\n particle.stroke = itemFromSingleOrMultiple(particle.options.stroke, particle.id, particle.options.reduceDuplicates);\n particle.strokeWidth = particle.stroke.width * container.retina.pixelRatio;\n const strokeHslColor = (_a = rangeColorToHsl(particle.stroke.color)) !== null && _a !== void 0 ? _a : particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, (_b = particle.stroke.color) === null || _b === void 0 ? void 0 : _b.animation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n const color = (_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color;\n return !particle.destroyed && !particle.spawning && !!color && (((_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h.value) !== undefined && color.animation.h.enable || ((_c = particle.strokeColor) === null || _c === void 0 ? void 0 : _c.s.value) !== undefined && color.animation.s.enable || ((_d = particle.strokeColor) === null || _d === void 0 ? void 0 : _d.l.value) !== undefined && color.animation.l.enable);\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateStrokeColor(particle, delta);\n }\n}","import { executeOnSingleOrMultiple, isInArray, itemFromSingleOrMultiple, loadFont } from \"tsparticles-engine\";\nexport const validTypes = [\"text\", \"character\", \"char\"];\nexport class TextDrawer {\n draw(context, particle, radius, opacity) {\n var _a, _b, _c;\n const character = particle.shapeData;\n if (character === undefined) {\n return;\n }\n const textData = character.value;\n if (textData === undefined) {\n return;\n }\n const textParticle = particle;\n if (textParticle.text === undefined) {\n textParticle.text = itemFromSingleOrMultiple(textData, particle.randomIndexData);\n }\n const text = textParticle.text,\n style = (_a = character.style) !== null && _a !== void 0 ? _a : \"\",\n weight = (_b = character.weight) !== null && _b !== void 0 ? _b : \"400\",\n size = Math.round(radius) * 2,\n font = (_c = character.font) !== null && _c !== void 0 ? _c : \"Verdana\",\n fill = particle.fill,\n offsetX = text.length * radius / 2;\n context.font = `${style} ${weight} ${size}px \"${font}\"`;\n const pos = {\n x: -offsetX,\n y: radius / 2\n };\n context.globalAlpha = opacity;\n if (fill) {\n context.fillText(text, pos.x, pos.y);\n } else {\n context.strokeText(text, pos.x, pos.y);\n }\n context.globalAlpha = 1;\n }\n getSidesCount() {\n return 12;\n }\n async init(container) {\n const options = container.actualOptions;\n if (validTypes.find(t => isInArray(t, options.particles.shape.type))) {\n const shapeOptions = validTypes.map(t => options.particles.shape.options[t]).find(t => !!t),\n promises = [];\n executeOnSingleOrMultiple(shapeOptions, shape => {\n promises.push(loadFont(shape.font, shape.weight));\n });\n await Promise.all(promises);\n }\n }\n}","import { initPjs } from \"tsparticles-particles.js\";\nimport { loadAngleUpdater } from \"tsparticles-updater-angle\";\nimport { loadBaseMover } from \"tsparticles-move-base\";\nimport { loadCircleShape } from \"tsparticles-shape-circle\";\nimport { loadColorUpdater } from \"tsparticles-updater-color\";\nimport { loadExternalAttractInteraction } from \"tsparticles-interaction-external-attract\";\nimport { loadExternalBounceInteraction } from \"tsparticles-interaction-external-bounce\";\nimport { loadExternalBubbleInteraction } from \"tsparticles-interaction-external-bubble\";\nimport { loadExternalConnectInteraction } from \"tsparticles-interaction-external-connect\";\nimport { loadExternalGrabInteraction } from \"tsparticles-interaction-external-grab\";\nimport { loadExternalPauseInteraction } from \"tsparticles-interaction-external-pause\";\nimport { loadExternalPushInteraction } from \"tsparticles-interaction-external-push\";\nimport { loadExternalRemoveInteraction } from \"tsparticles-interaction-external-remove\";\nimport { loadExternalRepulseInteraction } from \"tsparticles-interaction-external-repulse\";\nimport { loadExternalSlowInteraction } from \"tsparticles-interaction-external-slow\";\nimport { loadImageShape } from \"tsparticles-shape-image\";\nimport { loadLifeUpdater } from \"tsparticles-updater-life\";\nimport { loadLineShape } from \"tsparticles-shape-line\";\nimport { loadOpacityUpdater } from \"tsparticles-updater-opacity\";\nimport { loadOutModesUpdater } from \"tsparticles-updater-out-modes\";\nimport { loadParallaxMover } from \"tsparticles-move-parallax\";\nimport { loadParticlesAttractInteraction } from \"tsparticles-interaction-particles-attract\";\nimport { loadParticlesCollisionsInteraction } from \"tsparticles-interaction-particles-collisions\";\nimport { loadParticlesLinksInteraction } from \"tsparticles-interaction-particles-links\";\nimport { loadPolygonShape } from \"tsparticles-shape-polygon\";\nimport { loadSizeUpdater } from \"tsparticles-updater-size\";\nimport { loadSquareShape } from \"tsparticles-shape-square\";\nimport { loadStarShape } from \"tsparticles-shape-star\";\nimport { loadStrokeColorUpdater } from \"tsparticles-updater-stroke-color\";\nimport { loadTextShape } from \"tsparticles-shape-text\";\nexport async function loadSlim(engine) {\n await loadBaseMover(engine);\n await loadParallaxMover(engine);\n await loadExternalAttractInteraction(engine);\n await loadExternalBounceInteraction(engine);\n await loadExternalBubbleInteraction(engine);\n await loadExternalConnectInteraction(engine);\n await loadExternalGrabInteraction(engine);\n await loadExternalPauseInteraction(engine);\n await loadExternalPushInteraction(engine);\n await loadExternalRemoveInteraction(engine);\n await loadExternalRepulseInteraction(engine);\n await loadExternalSlowInteraction(engine);\n await loadParticlesAttractInteraction(engine);\n await loadParticlesCollisionsInteraction(engine);\n await loadParticlesLinksInteraction(engine);\n await loadCircleShape(engine);\n await loadImageShape(engine);\n await loadLineShape(engine);\n await loadPolygonShape(engine);\n await loadSquareShape(engine);\n await loadStarShape(engine);\n await loadTextShape(engine);\n await loadLifeUpdater(engine);\n await loadOpacityUpdater(engine);\n await loadSizeUpdater(engine);\n await loadAngleUpdater(engine);\n await loadColorUpdater(engine);\n await loadStrokeColorUpdater(engine);\n await loadOutModesUpdater(engine);\n await initPjs(engine);\n}","import { BaseMover } from \"./BaseMover\";\nexport async function loadBaseMover(engine) {\n engine.addMover(\"base\", () => new BaseMover());\n}","import { ParallaxMover } from \"./ParallaxMover\";\nexport async function loadParallaxMover(engine) {\n engine.addMover(\"parallax\", () => new ParallaxMover());\n}","import { Attractor } from \"./Attractor\";\nexport async function loadExternalAttractInteraction(engine) {\n await engine.addInteractor(\"externalAttract\", container => new Attractor(container));\n}\nexport * from \"./Options/Classes/Attract\";\nexport * from \"./Options/Interfaces/IAttract\";","import { Bouncer } from \"./Bouncer\";\nexport async function loadExternalBounceInteraction(engine) {\n await engine.addInteractor(\"externalBounce\", container => new Bouncer(container));\n}\nexport * from \"./Options/Classes/Bounce\";\nexport * from \"./Options/Interfaces/IBounce\";","import { Bubbler } from \"./Bubbler\";\nexport async function loadExternalBubbleInteraction(engine) {\n await engine.addInteractor(\"externalBubble\", container => new Bubbler(container));\n}\nexport * from \"./Options/Classes/BubbleBase\";\nexport * from \"./Options/Classes/BubbleDiv\";\nexport * from \"./Options/Classes/Bubble\";\nexport * from \"./Options/Interfaces/IBubbleBase\";\nexport * from \"./Options/Interfaces/IBubbleDiv\";\nexport * from \"./Options/Interfaces/IBubble\";","import { Connector } from \"./Connector\";\nexport async function loadExternalConnectInteraction(engine) {\n await engine.addInteractor(\"externalConnect\", container => new Connector(container));\n}\nexport * from \"./Options/Classes/Connect\";\nexport * from \"./Options/Classes/ConnectLinks\";\nexport * from \"./Options/Interfaces/IConnect\";\nexport * from \"./Options/Interfaces/IConnectLinks\";","import { Grabber } from \"./Grabber\";\nexport async function loadExternalGrabInteraction(engine) {\n await engine.addInteractor(\"externalGrab\", container => new Grabber(container));\n}\nexport * from \"./Options/Classes/Grab\";\nexport * from \"./Options/Classes/GrabLinks\";\nexport * from \"./Options/Interfaces/IGrab\";\nexport * from \"./Options/Interfaces/IGrabLinks\";","import { Pauser } from \"./Pauser\";\nexport function loadExternalPauseInteraction(engine) {\n engine.addInteractor(\"externalPause\", container => new Pauser(container));\n}","import { Pusher } from \"./Pusher\";\nexport async function loadExternalPushInteraction(engine) {\n await engine.addInteractor(\"externalPush\", container => new Pusher(container));\n}\nexport * from \"./Options/Classes/Push\";\nexport * from \"./Options/Interfaces/IPush\";","import { Remover } from \"./Remover\";\nexport function loadExternalRemoveInteraction(engine) {\n engine.addInteractor(\"externalRemove\", container => new Remover(container));\n}\nexport * from \"./Options/Classes/Remove\";\nexport * from \"./Options/Interfaces/IRemove\";","import { Repulser } from \"./Repulser\";\nexport async function loadExternalRepulseInteraction(engine) {\n await engine.addInteractor(\"externalRepulse\", container => new Repulser(container));\n}\nexport * from \"./Options/Classes/RepulseBase\";\nexport * from \"./Options/Classes/RepulseDiv\";\nexport * from \"./Options/Classes/Repulse\";\nexport * from \"./Options/Interfaces/IRepulseBase\";\nexport * from \"./Options/Interfaces/IRepulseDiv\";\nexport * from \"./Options/Interfaces/IRepulse\";","import { Slower } from \"./Slower\";\nexport async function loadExternalSlowInteraction(engine) {\n await engine.addInteractor(\"externalSlow\", container => new Slower(container));\n}\nexport * from \"./Options/Classes/Slow\";\nexport * from \"./Options/Interfaces/ISlow\";","import { Attractor } from \"./Attractor\";\nexport async function loadParticlesAttractInteraction(engine) {\n await engine.addInteractor(\"particlesAttract\", container => new Attractor(container));\n}","import { Collider } from \"./Collider\";\nexport async function loadParticlesCollisionsInteraction(engine) {\n await engine.addInteractor(\"particlesCollisions\", container => new Collider(container));\n}","import { CircleDrawer } from \"./CircleDrawer\";\nexport async function loadCircleShape(engine) {\n await engine.addShape(\"circle\", new CircleDrawer());\n}","import { ImageDrawer } from \"./ImageDrawer\";\nexport async function loadImageShape(engine) {\n const imageDrawer = new ImageDrawer();\n await engine.addShape(\"image\", imageDrawer);\n await engine.addShape(\"images\", imageDrawer);\n}","import { LineDrawer } from \"./LineDrawer\";\nexport async function loadLineShape(engine) {\n await engine.addShape(\"line\", new LineDrawer());\n}","import { SquareDrawer } from \"./SquareDrawer\";\nexport async function loadSquareShape(engine) {\n const drawer = new SquareDrawer();\n await engine.addShape(\"edge\", drawer);\n await engine.addShape(\"square\", drawer);\n}","import { StarDrawer } from \"./StarDrawer\";\nexport async function loadStarShape(engine) {\n await engine.addShape(\"star\", new StarDrawer());\n}","import { TextDrawer, validTypes } from \"./TextDrawer\";\nexport async function loadTextShape(engine) {\n const drawer = new TextDrawer();\n for (const type of validTypes) {\n await engine.addShape(type, drawer);\n }\n}","import { LifeUpdater } from \"./LifeUpdater\";\nexport async function loadLifeUpdater(engine) {\n await engine.addParticleUpdater(\"life\", container => new LifeUpdater(container));\n}","import { OpacityUpdater } from \"./OpacityUpdater\";\nexport async function loadOpacityUpdater(engine) {\n await engine.addParticleUpdater(\"opacity\", container => new OpacityUpdater(container));\n}","import { SizeUpdater } from \"./SizeUpdater\";\nexport async function loadSizeUpdater(engine) {\n await engine.addParticleUpdater(\"size\", () => new SizeUpdater());\n}","import { RotateUpdater } from \"./RotateUpdater\";\nexport async function loadAngleUpdater(engine) {\n await engine.addParticleUpdater(\"rotate\", container => new RotateUpdater(container));\n}","import { ColorUpdater } from \"./ColorUpdater\";\nexport async function loadColorUpdater(engine) {\n await engine.addParticleUpdater(\"color\", container => new ColorUpdater(container));\n}","import { StrokeColorUpdater } from \"./StrokeColorUpdater\";\nexport async function loadStrokeColorUpdater(engine) {\n await engine.addParticleUpdater(\"strokeColor\", container => new StrokeColorUpdater(container));\n}","import { OutOfCanvasUpdater } from \"./OutOfCanvasUpdater\";\nexport async function loadOutModesUpdater(engine) {\n await engine.addParticleUpdater(\"outModes\", container => new OutOfCanvasUpdater(container));\n}","import { setRangeValue } from \"tsparticles-engine\";\nexport class TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}","import { TiltAnimation } from \"./TiltAnimation\";\nimport { ValueWithRandom } from \"tsparticles-engine\";\nexport class Tilt extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation();\n this.direction = \"clockwise\";\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}","import { getRandom, getRangeValue } from \"tsparticles-engine\";\nimport { Tilt } from \"./Options/Classes/Tilt\";\nfunction updateTilt(particle, delta) {\n var _a, _b;\n if (!particle.tilt || !particle.options.tilt) {\n return;\n }\n const tilt = particle.options.tilt,\n tiltAnimation = tilt.animation,\n speed = ((_a = particle.tilt.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor,\n max = 2 * Math.PI,\n decay = (_b = particle.tilt.decay) !== null && _b !== void 0 ? _b : 1;\n if (!tiltAnimation.enable) {\n return;\n }\n switch (particle.tilt.status) {\n case 0:\n particle.tilt.value += speed;\n if (particle.tilt.value > max) {\n particle.tilt.value -= max;\n }\n break;\n case 1:\n default:\n particle.tilt.value -= speed;\n if (particle.tilt.value < 0) {\n particle.tilt.value += max;\n }\n break;\n }\n if (particle.tilt.velocity && decay !== 1) {\n particle.tilt.velocity *= decay;\n }\n}\nexport class TiltUpdater {\n constructor(container) {\n this.container = container;\n }\n getTransformValues(particle) {\n var _a;\n const tilt = ((_a = particle.tilt) === null || _a === void 0 ? void 0 : _a.enable) && particle.tilt;\n return {\n b: tilt ? Math.cos(tilt.value) * tilt.cosDirection : undefined,\n c: tilt ? Math.sin(tilt.value) * tilt.sinDirection : undefined\n };\n }\n init(particle) {\n var _a;\n const tiltOptions = particle.options.tilt;\n if (!tiltOptions) {\n return;\n }\n particle.tilt = {\n enable: tiltOptions.enable,\n value: getRangeValue(tiltOptions.value) * Math.PI / 180,\n sinDirection: getRandom() >= 0.5 ? 1 : -1,\n cosDirection: getRandom() >= 0.5 ? 1 : -1\n };\n let tiltDirection = tiltOptions.direction;\n if (tiltDirection === \"random\") {\n const index = Math.floor(getRandom() * 2);\n tiltDirection = index > 0 ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (tiltDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.tilt.status = 1;\n break;\n case \"clockwise\":\n particle.tilt.status = 0;\n break;\n }\n const tiltAnimation = (_a = particle.options.tilt) === null || _a === void 0 ? void 0 : _a.animation;\n if (tiltAnimation === null || tiltAnimation === void 0 ? void 0 : tiltAnimation.enable) {\n particle.tilt.decay = 1 - getRangeValue(tiltAnimation.decay);\n particle.tilt.velocity = getRangeValue(tiltAnimation.speed) / 360 * this.container.retina.reduceFactor;\n if (!tiltAnimation.sync) {\n particle.tilt.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n var _a;\n const tiltAnimation = (_a = particle.options.tilt) === null || _a === void 0 ? void 0 : _a.animation;\n return !particle.destroyed && !particle.spawning && !!(tiltAnimation === null || tiltAnimation === void 0 ? void 0 : tiltAnimation.enable);\n }\n loadOptions(options) {\n if (!options.tilt) {\n options.tilt = new Tilt();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.tilt.load(source === null || source === void 0 ? void 0 : source.tilt);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateTilt(particle, delta);\n }\n}","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nexport class TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}","import { TwinkleValues } from \"./TwinkleValues\";\nexport class Twinkle {\n constructor() {\n this.lines = new TwinkleValues();\n this.particles = new TwinkleValues();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}","import { getRandom, getRangeValue, getStyleFromHsl, rangeColorToHsl } from \"tsparticles-engine\";\nimport { Twinkle } from \"./Options/Classes/Twinkle\";\nexport class TwinkleUpdater {\n getColorStyles(particle, context, radius, opacity) {\n const pOptions = particle.options,\n twinkleOptions = pOptions.twinkle;\n if (!twinkleOptions) {\n return {};\n }\n const twinkle = twinkleOptions.particles,\n twinkling = twinkle.enable && getRandom() < twinkle.frequency,\n zIndexOptions = particle.options.zIndex,\n zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate,\n twinklingOpacity = twinkling ? getRangeValue(twinkle.opacity) * zOpacityFactor : opacity,\n twinkleRgb = rangeColorToHsl(twinkle.color),\n twinkleStyle = twinkleRgb ? getStyleFromHsl(twinkleRgb, twinklingOpacity) : undefined,\n res = {},\n needsTwinkle = twinkling && twinkleStyle;\n res.fill = needsTwinkle ? twinkleStyle : undefined;\n res.stroke = needsTwinkle ? twinkleStyle : undefined;\n return res;\n }\n init() {}\n isEnabled(particle) {\n const pOptions = particle.options,\n twinkleOptions = pOptions.twinkle;\n if (!twinkleOptions) {\n return false;\n }\n return twinkleOptions.particles.enable;\n }\n loadOptions(options) {\n if (!options.twinkle) {\n options.twinkle = new Twinkle();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.twinkle.load(source === null || source === void 0 ? void 0 : source.twinkle);\n }\n }\n update() {}\n}","import { setRangeValue } from \"tsparticles-engine\";\nexport class WobbleSpeed {\n constructor() {\n this.angle = 50;\n this.move = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.angle !== undefined) {\n this.angle = setRangeValue(data.angle);\n }\n if (data.move !== undefined) {\n this.move = setRangeValue(data.move);\n }\n }\n}","import { WobbleSpeed } from \"./WobbleSpeed\";\nimport { setRangeValue } from \"tsparticles-engine\";\nexport class Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = new WobbleSpeed();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n if (typeof data.speed === \"number\") {\n this.speed.load({\n angle: data.speed\n });\n } else {\n const rangeSpeed = data.speed;\n if (rangeSpeed.min !== undefined) {\n this.speed.load({\n angle: rangeSpeed\n });\n } else {\n this.speed.load(data.speed);\n }\n }\n }\n }\n}","import { getRandom, getRangeValue } from \"tsparticles-engine\";\nimport { Wobble } from \"./Options/Classes/Wobble\";\nfunction updateWobble(particle, delta) {\n var _a;\n const wobble = particle.options.wobble;\n if (!(wobble === null || wobble === void 0 ? void 0 : wobble.enable) || !particle.wobble) {\n return;\n }\n const angleSpeed = particle.wobble.angleSpeed * delta.factor,\n moveSpeed = particle.wobble.moveSpeed * delta.factor,\n distance = moveSpeed * (((_a = particle.retina.wobbleDistance) !== null && _a !== void 0 ? _a : 0) * delta.factor) / (1000 / 60),\n max = 2 * Math.PI;\n particle.wobble.angle += angleSpeed;\n if (particle.wobble.angle > max) {\n particle.wobble.angle -= max;\n }\n particle.position.x += distance * Math.cos(particle.wobble.angle);\n particle.position.y += distance * Math.abs(Math.sin(particle.wobble.angle));\n}\nexport class WobbleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a;\n const wobbleOpt = particle.options.wobble;\n if (wobbleOpt === null || wobbleOpt === void 0 ? void 0 : wobbleOpt.enable) {\n particle.wobble = {\n angle: getRandom() * Math.PI * 2,\n angleSpeed: getRangeValue(wobbleOpt.speed.angle) / 360,\n moveSpeed: getRangeValue(wobbleOpt.speed.move) / 10\n };\n } else {\n particle.wobble = {\n angle: 0,\n angleSpeed: 0,\n moveSpeed: 0\n };\n }\n particle.retina.wobbleDistance = getRangeValue((_a = wobbleOpt === null || wobbleOpt === void 0 ? void 0 : wobbleOpt.distance) !== null && _a !== void 0 ? _a : 0) * this.container.retina.pixelRatio;\n }\n isEnabled(particle) {\n var _a;\n return !particle.destroyed && !particle.spawning && !!((_a = particle.options.wobble) === null || _a === void 0 ? void 0 : _a.enable);\n }\n loadOptions(options) {\n if (!options.wobble) {\n options.wobble = new Wobble();\n }\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n for (const source of sources) {\n options.wobble.load(source === null || source === void 0 ? void 0 : source.wobble);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateWobble(particle, delta);\n }\n}","import { loadAbsorbersPlugin } from \"tsparticles-plugin-absorbers\";\nimport { loadDestroyUpdater } from \"tsparticles-updater-destroy\";\nimport { loadEmittersPlugin } from \"tsparticles-plugin-emitters\";\nimport { loadExternalTrailInteraction } from \"tsparticles-interaction-external-trail\";\nimport { loadPolygonMaskPlugin } from \"tsparticles-plugin-polygon-mask\";\nimport { loadRollUpdater } from \"tsparticles-updater-roll\";\nimport { loadSlim } from \"tsparticles-slim\";\nimport { loadTiltUpdater } from \"tsparticles-updater-tilt\";\nimport { loadTwinkleUpdater } from \"tsparticles-updater-twinkle\";\nimport { loadWobbleUpdater } from \"tsparticles-updater-wobble\";\nexport async function loadFull(engine) {\n await loadSlim(engine);\n await loadDestroyUpdater(engine);\n await loadRollUpdater(engine);\n await loadTiltUpdater(engine);\n await loadTwinkleUpdater(engine);\n await loadWobbleUpdater(engine);\n await loadExternalTrailInteraction(engine);\n await loadAbsorbersPlugin(engine);\n await loadEmittersPlugin(engine);\n await loadPolygonMaskPlugin(engine);\n}","import { DestroyUpdater } from \"./DestroyUpdater\";\nexport async function loadDestroyUpdater(engine) {\n await engine.addParticleUpdater(\"destroy\", container => new DestroyUpdater(engine, container));\n}","import { RollUpdater } from \"./RollUpdater\";\nexport async function loadRollUpdater(engine) {\n await engine.addParticleUpdater(\"roll\", () => new RollUpdater());\n}","import { TiltUpdater } from \"./TiltUpdater\";\nexport async function loadTiltUpdater(engine) {\n await engine.addParticleUpdater(\"tilt\", container => new TiltUpdater(container));\n}","import { TwinkleUpdater } from \"./TwinkleUpdater\";\nexport async function loadTwinkleUpdater(engine) {\n await engine.addParticleUpdater(\"twinkle\", () => new TwinkleUpdater());\n}","import { WobbleUpdater } from \"./WobbleUpdater\";\nexport async function loadWobbleUpdater(engine) {\n await engine.addParticleUpdater(\"wobble\", container => new WobbleUpdater(container));\n}","import { TrailMaker } from \"./TrailMaker\";\nexport async function loadExternalTrailInteraction(engine) {\n await engine.addInteractor(\"externalTrail\", container => new TrailMaker(container));\n}\nexport * from \"./Options/Classes/Trail\";\nexport * from \"./Options/Interfaces/ITrail\";","import React from \"react\";\r\nimport { Link } from 'gatsby'\r\nimport appData from \"data/app.json\";\r\n\r\nconst Footer = ({ hideBGCOLOR }) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n \"\"\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
    \r\n
    Office Address
    \r\n

    2360 Hopewell Plantation Dr, Milton GA 30534

    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
    \r\n
    Call Us
    \r\n

    +1 833 270 3304

    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n © 2023 Creative Clarity Inc.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import getSiblings from './getSiblings'\r\n\r\nexport const handleDropdown = (e) => {\r\n getSiblings(e.target.parentElement)\r\n .filter((item) => item.classList.contains(\"show\"))\r\n .forEach((item) => {\r\n item.classList.remove(\"show\");\r\n if (item.childNodes[0]) {\r\n item.childNodes[0].setAttribute(\"aria-expanded\", false);\r\n }\r\n if (item.childNodes[1]) {\r\n item.childNodes[1].classList.remove(\"show\");\r\n }\r\n });\r\n e.target.parentElement.classList.toggle(\"show\");\r\n e.target.setAttribute(\"aria-expanded\", true);\r\n e.target.parentElement.childNodes[1].classList.toggle(\"show\");\r\n};\r\n\r\nexport const handleMobileDropdown = (e) => {\r\n document\r\n .getElementById(\"navbarSupportedContent\")\r\n .classList.toggle(\"show-with-trans\");\r\n};","import React from \"react\";\r\nimport { Link } from \"gatsby\";\r\nimport appData from \"data/app.json\";\r\nimport { handleDropdown, handleMobileDropdown } from \"common/navbar\";\r\n\r\nconst Navbar = ({ lr, nr, theme }) => {\r\n return (\r\n \r\n
\r\n \r\n {theme ? (\r\n theme === \"themeL\" ? (\r\n \"logo\"\r\n ) : (\r\n \"logo\"\r\n )\r\n ) : (\r\n \"logo\"\r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
    \r\n
  • \r\n \r\n Home\r\n \r\n
  • \r\n
  • \r\n \r\n Services\r\n \r\n
  • \r\n
  • \r\n \r\n Projects\r\n \r\n
  • \r\n
  • \r\n \r\n About\r\n \r\n
  • \r\n
  • \r\n \r\n Contact\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Navbar;\r\n","const particlesConfig = {\r\n particles: {\r\n number: {\r\n value: 130,\r\n density: {\r\n enable: true,\r\n value_area: 900,\r\n },\r\n },\r\n color: {\r\n value: \"#ffffff\",\r\n },\r\n shape: {\r\n type: \"circle\",\r\n stroke: {\r\n width: 0,\r\n color: \"#000000\",\r\n },\r\n polygon: {\r\n nb_sides: 5,\r\n },\r\n image: {\r\n src: \"/img/github.svg\",\r\n width: 100,\r\n height: 100,\r\n },\r\n },\r\n opacity: {\r\n value: 0.2,\r\n random: true,\r\n anim: {\r\n enable: true,\r\n speed: 1,\r\n opacity_min: 0.3,\r\n sync: false,\r\n },\r\n },\r\n size: {\r\n value: 1.8,\r\n random: true,\r\n anim: {\r\n enable: false,\r\n speed: 4,\r\n size_min: 0.4,\r\n sync: false,\r\n },\r\n },\r\n line_linked: {\r\n enable: false,\r\n distance: 150,\r\n color: \"#ffffff\",\r\n opacity: 0.4,\r\n width: 1,\r\n },\r\n move: {\r\n enable: true,\r\n speed: 1,\r\n direction: \"none\",\r\n random: true,\r\n straight: false,\r\n out_mode: \"out\",\r\n bounce: false,\r\n attract: {\r\n enable: false,\r\n rotateX: 600,\r\n rotateY: 600,\r\n },\r\n },\r\n },\r\n interactivity: {\r\n detect_on: \"canvas\",\r\n events: {\r\n onhover: {\r\n enable: true,\r\n mode: \"bubble\",\r\n },\r\n onclick: {\r\n enable: true,\r\n mode: \"repulse\",\r\n },\r\n resize: true,\r\n },\r\n modes: {\r\n grab: {\r\n distance: 400,\r\n line_linked: {\r\n opacity: 1,\r\n },\r\n },\r\n bubble: {\r\n distance: 250,\r\n size: 0,\r\n duration: 2,\r\n opacity: 0,\r\n speed: 3,\r\n },\r\n repulse: {\r\n distance: 400,\r\n duration: 0.4,\r\n },\r\n push: {\r\n particles_nb: 4,\r\n },\r\n remove: {\r\n particles_nb: 2,\r\n },\r\n },\r\n },\r\n retina_detect: true,\r\n};\r\n\r\nexport default particlesConfig;\r\n","const particlesBlackConfig = {\r\n particles: {\r\n number: {\r\n value: 130,\r\n density: {\r\n enable: true,\r\n value_area: 900,\r\n },\r\n },\r\n color: {\r\n value: \"#000000\",\r\n },\r\n shape: {\r\n type: \"circle\",\r\n stroke: {\r\n width: 0,\r\n color: \"#000000\",\r\n },\r\n polygon: {\r\n nb_sides: 5,\r\n },\r\n image: {\r\n src: \"/img/github.svg\",\r\n width: 100,\r\n height: 100,\r\n },\r\n },\r\n opacity: {\r\n value: 0.2,\r\n random: true,\r\n anim: {\r\n enable: true,\r\n speed: 1,\r\n opacity_min: 0.3,\r\n sync: false,\r\n },\r\n },\r\n size: {\r\n value: 1.8,\r\n random: true,\r\n anim: {\r\n enable: false,\r\n speed: 4,\r\n size_min: 0.4,\r\n sync: false,\r\n },\r\n },\r\n line_linked: {\r\n enable: false,\r\n distance: 150,\r\n color: \"#ffffff\",\r\n opacity: 0.4,\r\n width: 1,\r\n },\r\n move: {\r\n enable: true,\r\n speed: 1,\r\n direction: \"none\",\r\n random: true,\r\n straight: false,\r\n out_mode: \"out\",\r\n bounce: false,\r\n attract: {\r\n enable: false,\r\n rotateX: 600,\r\n rotateY: 600,\r\n },\r\n },\r\n },\r\n interactivity: {\r\n detect_on: \"canvas\",\r\n events: {\r\n onhover: {\r\n enable: true,\r\n mode: \"bubble\",\r\n },\r\n onclick: {\r\n enable: true,\r\n mode: \"repulse\",\r\n },\r\n resize: true,\r\n },\r\n modes: {\r\n grab: {\r\n distance: 400,\r\n line_linked: {\r\n opacity: 1,\r\n },\r\n },\r\n bubble: {\r\n distance: 250,\r\n size: 0,\r\n duration: 2,\r\n opacity: 0,\r\n speed: 3,\r\n },\r\n repulse: {\r\n distance: 400,\r\n duration: 0.4,\r\n },\r\n push: {\r\n particles_nb: 4,\r\n },\r\n remove: {\r\n particles_nb: 2,\r\n },\r\n },\r\n },\r\n retina_detect: true,\r\n};\r\n\r\nexport default particlesBlackConfig","const mouseEffect = () => {\r\n function mousecursor() {\r\n const cursorInner = document.querySelector(\".cursor-inner\"),\r\n cursorOuter = document.querySelector(\".cursor-outer\");\r\n let n,\r\n i = 0,\r\n o = !1;\r\n window.onmousemove = function (s) {\r\n o ||\r\n (cursorOuter.style.transform =\r\n \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\"),\r\n (cursorInner.style.transform =\r\n \"translate(\" + s.clientX + \"px, \" + s.clientY + \"px)\"),\r\n (n = s.clientY),\r\n (i = s.clientX);\r\n };\r\n if (document.querySelector(\".cursor-pointer\")) {\r\n document\r\n .querySelector(\".cursor-pointer\")\r\n .addEventListener(\"mouseenter\", function () {\r\n cursorInner.classList.add(\"cursor-hover\"),\r\n cursorOuter.classList.add(\"cursor-hover\");\r\n });\r\n document\r\n .querySelector(\".cursor-pointer\")\r\n .addEventListener(\"mouseleave\", function () {\r\n cursorInner.classList.remove(\"cursor-hover\"),\r\n cursorOuter.classList.remove(\"cursor-hover\");\r\n }),\r\n (cursorInner.style.visibility = \"visible\"),\r\n (cursorOuter.style.visibility = \"visible\");\r\n }\r\n document.querySelectorAll(\"a\").forEach(function (item) {\r\n item.addEventListener(\"mouseenter\", function () {\r\n cursorInner.classList.add(\"cursor-hover\"),\r\n cursorOuter.classList.add(\"cursor-hover\");\r\n });\r\n });\r\n document.querySelectorAll(\"a\").forEach(function (item) {\r\n item.addEventListener(\"mouseleave\", function () {\r\n cursorInner.classList.remove(\"cursor-hover\"),\r\n cursorOuter.classList.remove(\"cursor-hover\");\r\n });\r\n }),\r\n (cursorInner.style.visibility = \"visible\"),\r\n (cursorOuter.style.visibility = \"visible\");\r\n }\r\n mousecursor();\r\n};\r\n\r\nexport default mouseEffect;\r\n","import React from \"react\";\r\nimport mouseEffect from \"common/mouseEffect\";\r\n\r\nconst Cursor = () => {\r\n React.useEffect(() => {\r\n mouseEffect();\r\n }, []);\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Cursor;\r\n","const scrollToTop = () => {\r\n let progressPath = document.querySelector(\".progress-wrap path\");\r\n let pathLength = progressPath.getTotalLength();\r\n progressPath.style.transition = progressPath.style.WebkitTransition = \"none\";\r\n progressPath.style.strokeDasharray = pathLength + \" \" + pathLength;\r\n progressPath.style.strokeDashoffset = pathLength;\r\n progressPath.getBoundingClientRect();\r\n progressPath.style.transition = progressPath.style.WebkitTransition =\r\n \"stroke-dashoffset 10ms linear\";\r\n const updateProgress = function () {\r\n let scroll = window.pageYOffset;\r\n let height = document.documentElement.scrollHeight - window.innerHeight;\r\n let progress = pathLength - (scroll * pathLength) / height;\r\n progressPath.style.strokeDashoffset = progress;\r\n };\r\n updateProgress();\r\n window.addEventListener(\"scroll\", updateProgress);\r\n let progressWrap = document.querySelector(\".progress-wrap\");\r\n let offset = 150;\r\n window.addEventListener(\"scroll\", function () {\r\n if (window.pageYOffset > offset) {\r\n progressWrap.classList.add(\"active-progress\");\r\n } else {\r\n document\r\n .querySelector(\".progress-wrap\")\r\n .classList.remove(\"active-progress\");\r\n }\r\n });\r\n progressWrap.addEventListener(\"click\", function (event) {\r\n event.preventDefault();\r\n window.scrollTo({ top: 0, behavior: \"smooth\" });\r\n return false;\r\n });\r\n};\r\n\r\nexport default scrollToTop;\r\n","import React from \"react\";\r\nimport scrollToTop from \"common/scrollToTop\";\r\n\r\nconst ScrollToTop = () => {\r\n React.useEffect(() => {\r\n scrollToTop();\r\n }, []);\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ScrollToTop;\r\n","const loadingPace = () => {\r\n \r\n Pace.on(\"start\", function () {\r\n document.querySelector(\"#preloader\").classList.remove(\"isdone\");\r\n document.querySelector(\".loading\").classList.remove(\"isdone\");\r\n });\r\n Pace.on(\"done\", function () {\r\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\r\n document.querySelector(\".loading\").classList.add(\"isdone\");\r\n \r\n });\r\n\r\n if (document.querySelector(\"body\").classList.contains(\"pace-done\")) {\r\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\r\n document.querySelector(\".loading\").classList.add(\"isdone\");\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n document.querySelector(\"#preloader\").classList.add(\"isdone\");\r\n document.querySelector(\".loading\").classList.add(\"isdone\");\r\n if (document.querySelector('.pace-running.pace-running')) {\r\n document.querySelector('.pace-running.pace-running').classList.remove('pace-running')\r\n }\r\n });\r\n};\r\n\r\nexport default loadingPace;\r\n","import React from \"react\";\r\nimport loadingPace from \"common/loadingPace\";\r\nimport appData from \"data/app.json\";\r\n\r\nconst LoadingScreen = () => {\r\n\r\n React.useEffect(() => {\r\n let bodyEl = document.querySelector(\"body\");\r\n\r\n if (appData.showLoading) {\r\n loadingPace();\r\n if (bodyEl.classList.contains(\"hideX\")) bodyEl.classList.remove(\"hideX\");\r\n } else {\r\n bodyEl.classList.add(\"hideX\");\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n L\r\n o\r\n a\r\n d\r\n i\r\n n\r\n g\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LoadingScreen;\r\n","import React from \"react\";\r\nimport { Script } from \"gatsby\";\r\n\r\nimport Cursor from \"components/cursor\";\r\nimport ScrollToTop from \"components/scrollToTop\";\r\nimport LoadingScreen from \"components/Loading-Screen\";\r\n\r\nimport \"styles/main.css\";\r\nimport \"styles/preloader.css\"; \r\n\r\nconst DarkTheme = ({ children, useSkin, mobileappstyle }) => {\r\n React.useEffect(() => {\r\n window.theme = \"dark\";\r\n let lightStyles = document.querySelector('link[href=\"/css/light.css\"]');\r\n let darkStyles = document.querySelector('link[href=\"/css/dark.css\"]');\r\n if (lightStyles) {\r\n if (!darkStyles) {\r\n let darkStylesheet = document.createElement('link');\r\n darkStylesheet.rel = \"stylesheet\";\r\n darkStylesheet.href = \"/css/dark.css\";\r\n document.head.appendChild(darkStylesheet)\r\n }\r\n lightStyles.remove();\r\n }\r\n if (useSkin) {\r\n let skinCssLink = document.createElement('link');\r\n skinCssLink.rel = \"stylesheet\";\r\n skinCssLink.href = \"/css/arch-skin-dark.css\";\r\n document.head.appendChild(skinCssLink)\r\n }\r\n\r\n if (mobileappstyle) {\r\n let mobileAppCssLink = document.createElement('link');\r\n mobileAppCssLink.rel = \"stylesheet\";\r\n mobileAppCssLink.href = \"/css/mobile-app-dark.css\";\r\n document.head.appendChild(mobileAppCssLink)\r\n }\r\n }, [useSkin, mobileappstyle]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n { children }\r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DarkTheme;\r\n"],"names":["module","exports","equal","a","b","constructor","length","i","keys","Array","isArray","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","key","$$typeof","defaultId","Particles","Component","props","super","this","state","init","library","undefined","destroy","setState","shouldComponentUpdate","nextProps","componentDidUpdate","refresh","forceUpdate","then","componentDidMount","async","loadParticles","componentWillUnmount","render","width","height","className","canvasClassName","id","style","assign","_a","_b","_c","defaultProps","container","url","loadJSON","load","params","options","current","loaded","cb","EventDispatcher","_listeners","Map","addEventListener","type","listener","removeEventListener","get","set","push","dispatchEvent","args","forEach","handler","hasEventListener","removeAllEventListeners","delete","arr","idx","indexOf","splice","Vector3d","xOrCoords","y","z","x","coords3d","Error","origin","create","angle","Math","atan2","updateFromAngle","sqrt","getLengthSq","clone","add","v","addTo","copy","distanceTo","sub","distanceToSq","div","n","divTo","mult","multTo","rotate","cos","sin","setTo","c","v3d","subFrom","Vector","_random","random","getRandom","clamp","num","min","max","mix","comp1","comp2","weight1","weight2","floor","randomInRange","r","getRangeMax","getRangeMin","getRangeValue","value","setRangeValue","getValue","enable","minimumValue","getDistances","pointA","pointB","dx","dy","distance","getDistance","collisionVelocity","v1","v2","m1","m2","calcEasing","pow","PI","c1","c2","calcPositionOrRandomFromSize","data","_d","position","size","calcPositionOrRandomFromSizeRanged","calcExactPositionOrRandomFromSize","parseAlpha","input","endsWith","parseFloat","rectSideBounce","pSide","pOtherSide","rectSide","rectOtherSide","velocity","factor","res","bounced","isSsr","window","document","safeMatchMedia","query","matchMedia","isInArray","array","loadFont","font","weight","fonts","arrayRandomIndex","itemFromArray","index","arguments","isPointInside","point","offset","radius","direction","bounds","inside","top","right","left","bottom","areBoundsInside","calculateBounds","deepExtend","destination","_len","sources","_key","sourceIsArray","isObject","destDict","map","isDivModeEnabled","mode","divs","findItemFromSingleOrMultiple","t","divModeExecute","callback","executeOnSingleOrMultiple","divMode","selectors","selector","singleDivModeExecute","element","matches","some","checkSelector","circleBounceDataFromParticle","p","getPosition","getRadius","mass","getMass","bounce","horizontal","vertical","circleBounce","p1","p2","xVelocityDiff","yVelocityDiff","pos1","pos2","xDist","yDist","u1","u2","vFinal1","vFinal2","rectBounce","particle","divBounds","resH","resV","obj","item","itemFromSingleOrMultiple","useIndex","find","randomColorValue","midColorValue","colorManagers","addColorManager","manager","hue2rgb","q","stringToRgba","startsWith","stringPrefix","parseString","hexFixed","replace","_","g","result","exec","parseInt","rangeColorToRgb","color","colorToRgb","handleRangeColor","getRandomRgbColor","stringToRgb","handleColor","rangeColorToHsl","rgb","rgbToHsl","r1","g1","b1","h","l","s","stringToAlpha","hslToRgb","hsl","hslPercent","fixedMin","getStyleFromRgb","opacity","getStyleFromHsl","colorMix","color1","color2","size1","size2","rgb1","rgb2","getLinkColor","linkColor","sourceColor","getFillColor","getStrokeColor","destColor","hslColor","getLinkRandomColor","optColor","blink","consent","getHslFromAnimation","animation","getHslAnimationFromHsl","animationOptions","reduceFactor","resColor","setColorAnimation","colorValue","colorAnimation","speed","decay","status","sync","drawLine","context","begin","end","beginPath","moveTo","lineTo","closePath","drawTriangle","p3","clear","dimension","clearRect","generatedAttribute","touchEndEvent","mouseMoveEvent","mouseLeaveEvent","setTransformValue","newFactor","newValue","Canvas","_context","_generatedCanvas","_preDrawUpdaters","_postDrawUpdaters","_resizePlugins","_colorPlugins","actualOptions","trail","particles","move","backgroundMask","paint","_trailFillColor","_paintBase","draw","ctx","remove","_resetOriginalStyle","drawParticle","delta","spawning","destroyed","pfColor","psColor","fColor","sColor","_getPluginParticleColors","_e","zIndexOptions","zIndex","zOpacityFactor","zIndexFactor","opacityRate","bubble","zOpacity","zStrokeOpacity","stroke","transform","colorStyles","fill","_applyPreDrawUpdaters","_f","_g","_h","_j","_k","composite","shadow","pos","save","d","setTransform","translate","rotation","pathRotation","globalCompositeOperation","shadowColor","shadowBlur","blur","shadowOffsetX","shadowOffsetY","fillStyle","lineWidth","strokeWidth","strokeStyle","shape","drawer","drawers","retina","pixelRatio","drawShape","close","restore","afterEffect","drawShapeAfterEffect","sizeRate","_applyPostDrawUpdaters","drawParticlePlugin","plugin","drawPlugin","resize","_initStyle","_initCover","_initTrail","initBackground","initUpdaters","initPlugins","background","elementStyle","backgroundColor","backgroundImage","image","backgroundPosition","backgroundRepeat","repeat","backgroundSize","plugins","particleFillColor","particleStrokeColor","updater","updaters","afterDraw","getColorStyles","getTransformValues","beforeDraw","loadCanvas","canvas","dataset","_originalStyle","offsetHeight","offsetWidth","getContext","cover","_coverColorStyle","pxRatio","newSize","oldSize","started","resizeFactor","windowResize","needsRefresh","updateActualOptions","setDensity","_applyResizePlugins","updaterTransform","coverRgb","coverColor","fullScreen","setProperty","fillColor","baseColor","fillRect","paintBase","originalStyle","manageListener","event","addOptions","passive","capture","removeOptions","EventListeners","canPush","mouseMoveHandler","e","mouseTouchMove","touchStartHandler","touchMoveHandler","touchEndHandler","mouseTouchFinish","mouseLeaveHandler","touchCancelHandler","touchEndClickHandler","mouseTouchClick","mouseUpHandler","mouseDownHandler","mouseDown","visibilityChangeHandler","handleVisibilityChange","themeChangeHandler","handleThemeChange","oldThemeChangeHandler","resizeHandler","handleWindowResize","addListeners","manageListeners","removeListeners","doMouseTouchClick","mousePos","interactivity","mouse","clickPosition","clickTime","Date","getTime","events","onClick","handleClickMode","setTimeout","themeName","defaultDarkTheme","defaultLightTheme","theme","themes","name","default","auto","loadTheme","pauseOnBlur","hidden","pageHidden","pause","getAnimationStatus","play","resizeTimeout","clearTimeout","detectType","detectsOn","mouseLeaveTmpEvent","canvasEl","parentElement","parentNode","mediaMatch","addListener","removeListener","interactivityEl","html","onHover","pointerEvents","ResizeObserver","resizeObserver","unobserve","disconnect","entries","target","observe","clicking","downPosition","handled","mousePosition","clickPositionValid","mouseEvent","clientRect","getBoundingClientRect","clientX","clientY","currentTarget","sourceRect","targetRect","canvasRect","offsetX","offsetY","touchEvent","lastTouch","touches","FrameManager","nextFrame","timestamp","smooth","lastFrameTime","fpsLimit","initDelta","lifeTime","duration","console","error","OptionsColor","Background","BackgroundMaskCover","BackgroundMask","FullScreen","ClickEvent","DivEvent","el","elementId","ids","Parallax","force","HoverEvent","parallax","Events","onDiv","onclick","ondiv","onhover","tmp","Modes","engine","_engine","_container","interactors","interactor","loadModeOptions","Interactivity","modes","detect_on","ManualParticle","MotionReduce","Motion","disable","reduce","Responsive","maxWidth","Infinity","ThemeDefault","Theme","ColorAnimation","count","HslAnimation","AnimatableColor","CollisionsOverlap","retries","Random","ValueWithRandom","ParticlesBounceFactor","ParticlesBounce","Collisions","overlap","MoveAngle","MoveAttract","rotateX","rotateY","MoveGravity","acceleration","inverse","maxSpeed","MovePathDelay","MovePath","delay","generator","MoveTrail","OutModes","Spin","Move","attract","center","drift","gravity","path","outModes","spin","straight","vibrate","warp","collisions","noise","outMode","out_mode","AnimationOptions","OpacityAnimation","startValue","opacity_min","Opacity","anim","ParticlesDensity","area","value_area","ParticlesNumber","density","limit","Shadow","Shape","character","custom","images","polygon","_value","loadShape","mainKey","altKey","altOverride","emptyValue","mainDifferentValues","altDifferentValues","SizeAnimation","size_min","Size","Stroke","ZIndex","velocityRate","ParticlesOptions","groups","number","reduceDuplicates","group","strokeToLoad","loadOptions","loadParticlesOptions","sourceOptionsArr","sourceOptions","_len2","_key2","Options","autoPlay","detectRetina","manualParticles","motion","pauseOnOutsideViewport","responsive","zLayers","backgroundMode","fps_limit","retina_detect","preset","_importPreset","optResponsive","sort","optTheme","_findDefaultTheme","setResponsive","defaultOptions","responsiveOptions","screen","availWidth","setTheme","chosenTheme","clientDarkMode","defaultTheme","getPreset","InteractionManager","_interactors","getInteractors","_externalInteractors","_particleInteractors","externalInteract","isEnabled","interact","particlesInteract","reset","fixOutMode","checkModes","coord","maxCoord","setCb","Particle","overrideOptions","_l","_m","_o","lastPathTime","unbreakable","misplaced","maxDistance","outType","ignoresResizeRatio","mainOptions","particlesOptions","shapeType","overrideShapeType","shapeOptions","shapeData","_loadShapeData","pathOptions","pathDelay","pathGenerator","getPathGenerator","addPath","zIndexValue","initParticle","sizeOptions","sizeRange","sizeAnimation","loops","maxLoops","sizeAnimationSpeed","inRange","slow","_calcPosition","initialPosition","canvasSize","moveCenter","isCenterPercent","getParticleDirectionAngle","initialVelocity","_calculateVelocity","moveDecay","needsSort","lastZIndex","sides","getShapeDrawer","sideCountFunc","getSidesCount","mover","movers","particleInit","particleCreated","override","particleDestroyed","roll","backColor","alter","backFactor","backSum","alterHsl","strokeColor","isInsideCanvas","isVisible","tryCount","pluginPos","particlePosition","exactPosition","fixHorizontal","fixVertical","_checkOverlap","baseVelocity","getParticleBaseVelocity","moveOptions","rad","radOffset","range","collisionsOptions","overlapOptions","overlaps","Point","Range","Circle","contains","intersects","rect","circle","distPos","abs","w","Rectangle","w2","h2","QuadTree","rectangle","capacity","points","divided","insert","subdivide","northEast","northWest","southEast","southWest","check","found","queryCircle","queryRectangle","nextId","zArray","interactionManager","quadTree","getMovers","getUpdaters","addManualParticles","addParticle","initializer","countToRemove","removeQuantity","_pushParticle","update","particlesInitialization","pathGenerators","groupOptions","j","nb","pushing","redraw","removeAt","quantity","deleted","zIdx","_applyDensity","particlesToDelete","particleUpdate","manualCount","numberOptions","densityFactor","_initDensityFactor","optParticlesNumber","optParticlesLimit","particlesNumber","particlesCount","filter","densityOptions","canAdd","warn","Retina","devicePixelRatio","motionOptions","mediaQuery","_handleMotionChange","handleChange","catch","ratio","attractDistance","moveDistance","moveDrift","moveSpeed","guardCheck","loadContainerOptions","defaultPathGenerator","generate","Container","_firstStart","_paused","_sourceOptions","_initialSourceOptions","frameManager","_options","_eventListeners","IntersectionObserver","_intersectionObserver","_intersectionManager","addClickHandler","clickOrTouchHandler","posRetina","touched","touchMoved","changedTouches","radiusX","radiusY","has","stop","mainArr","dom","findIndex","refreshTime","_drawAnimationFrame","requestAnimationFrame","exportConfiguration","JSON","stringify","exportImage","quality","toBlob","exportImg","shapes","getSupportedShapes","availablePlugins","getAvailablePlugins","initAsync","particlesSetup","_currentTheme","handle","cancelAnimationFrame","needsUpdate","start","setNoise","noiseOrGenerator","setPath","pathOrGenerator","oldGenerator","HTMLElement","startAsync","newMaxWidth","responsiveMaxWidth","entry","isIntersecting","getDataFromUrl","jsonUrl","response","fetch","ok","json","statusCode","Loader","tagId","remote","loadRemoteOptions","domContainer","getElementById","createElement","querySelector","append","currentOptions","oldIndex","old","domItem","tagName","toLowerCase","existingCanvases","getElementsByTagName","appendChild","newItem","setJSON","newId","newIndex","getItemsFromInitializer","initializers","values","Plugins","interactorsInitializers","moversInitializers","updatersInitializers","presets","addInteractor","initInteractor","addParticleMover","initMover","addParticleUpdater","initUpdater","addPathGenerator","addPlugin","getPlugin","addPreset","presetKey","addShapeDrawer","needsPlugin","ExternalInteractorBase","ParticlesInteractorBase","rgbColorManager","rgbColor","hslColorManager","hsla","rgbResult","hslaToRgba","tsParticles","_domArray","_eventDispatcher","_initialized","_loader","interactorInitializer","addMover","moverInitializer","updaterInitializer","addShape","customDrawer","loadFromArray","pathConfigJson","instance","setOnClickHandler","SVGPathSeg","typeAsLetter","owningPathSegList","pathSegType","pathSegTypeAsLetter","_owningPathSegList","classname","PATHSEG_UNKNOWN","PATHSEG_CLOSEPATH","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_REL","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","_segmentChanged","segmentChanged","SVGPathSegClosePath","_asPathString","SVGPathSegMovetoAbs","_x","_y","defineProperty","enumerable","SVGPathSegMovetoRel","SVGPathSegLinetoAbs","SVGPathSegLinetoRel","SVGPathSegCurvetoCubicAbs","x1","y1","x2","y2","_x1","_y1","_x2","_y2","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegArcAbs","r2","largeArcFlag","sweepFlag","_r1","_r2","_angle","_largeArcFlag","_sweepFlag","SVGPathSegArcRel","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathElement","createSVGPathSegClosePath","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoRel","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","getPathSegAtLength","isFinite","measurementElement","createElementNS","setAttribute","getAttribute","lastPathSegment","pathSegList","numberOfItems","removeItem","getTotalLength","SVGPathSegList","pathElement","_pathElement","_list","_parsePath","_mutationObserverConfig","attributes","attributeFilter","_pathElementMutationObserver","MutationObserver","_updateListFromPathMutations","bind","_checkPathSynchronizedToList","_pathSegList","takeRecords","mutationRecords","hasPathMutations","record","attributeName","_writeListToPath","_pathSegArrayAsString","pathSeg","initialize","_checkValidIndex","isNaN","getItem","insertItemBefore","replaceItem","appendItem","pathSegArray","string","first","Builder","appendSegment","Source","_string","_currentIndex","_endIndex","_previousCommand","_skipOptionalSpaces","_isCurrentSpace","_skipOptionalSpacesOrDelimiter","charAt","hasMoreData","peekSegmentType","lookahead","_pathSegTypeFromChar","_nextCommandHelper","previousCommand","initialCommandIsMoveTo","command","_parseNumber","exponent","integer","frac","decimal","sign","expsign","startIndex","startIntPartIndex","scanIntPartIndex","multiplier","_parseArcFlag","flag","flagChar","parseSegment","arcAngle","arcLarge","arcSweep","builder","AbsorberSizeLimit","AbsorberSize","Absorber","draggable","orbits","AbsorberInstance","absorbers","dragging","calcPosition","sizeFactor","absorberOrbit","needsNewPosition","updateParticlePosition","arc","newPosition","minSize","absorberOrbitDirection","orbitRadius","orbitAngle","orbitDirection","updateFunc","addV","Absorbers","interactivityAbsorbers","getAbsorber","idxOrName","addAbsorber","absorber","absorberOptions","modeAbsorbers","absorbersModeOptions","absorbersOptions","aPosition","removeAbsorber","AbsorbersPlugin","optionsCast","DestroyBounds","SplitFactor","SplitRate","Split","rate","sizeOffset","Destroy","split","DestroyUpdater","destroyOptions","splitCount","destroyBounds","addSplitParticle","parent","splitParticlesOptions","splitOptions","particlesSplitOptions","CircleShape","randomPosition","randomTheta","u","theta","atan","tan","generateTheta","maxRadius","randomRadius","EmitterLife","wait","EmitterRate","EmitterSize","Emitter","life","startCount","domId","spawnColor","EmitterInstance","emitters","_currentDuration","_currentEmitDelay","_currentSpawnDelay","_initialPosition","_spawnDelay","_shape","emitterShapeManager","getShape","_firstSpawn","_startParticlesAdded","_particlesOptions","_lifeCount","_immortal","emitter","externalPause","externalPlay","elRect","getSize","_emitDelay","prepareToDie","emitParticles","_duration","emit","removeEmitter","singleParticlesOptions","hslAnimation","pPosition","initValue","maxValue","colorOffset","emitFactor","Emitters","interactivityEmitters","getEmitter","addEmitter","playEmitter","pauseEmitter","emitterOptions","modeEmitters","emittersModeOptions","usedIndexes","includes","emittersOptions","ePosition","emitterMode","ShapeManager","randomSquareCoordinate","SquareShape","halfW","halfH","side","EmittersPlugin","Trail","pauseOnStop","TrailMaker","_delay","trailOptions","optDelay","canEmit","_lastPosition","PolygonMaskDrawStroke","PolygonMaskDraw","lineColor","PolygonMaskInline","arrangement","PolygonMaskLocalSvg","PolygonMaskMove","PolygonMask","inline","scale","inlineArrangement","drawPolygonMask","rawData","drawPolygonMaskPath","calcClosestPtOnSegment","s1","s2","dxx","dyy","isOnSegment","segmentBounce","wallAngle","wallNormal","noPolygonDataLoaded","PolygonMaskInstance","path2DSupported","Path2D","_polygonMaskMoveRadius","checkInsidePolygon","paths","polygonDraw","raw","path2d","path2dSupported","polygonMaskOptions","initRawData","particleBounce","polygonBounce","randomPoint","drawPoints","redrawTimeout","pi","pj","createPath2D","pathData","matrix","createSVGMatrix","finalPath","downloadSvgPath","svgUrl","forceDownload","req","parseSvgPath","text","getEquidistantPointByIndex","tot","pathDistance","getPointAtLength","getPointByIndex","coords","getRandomPoint","getRandomPointByLength","svg","join","xml","doc","DOMParser","parseFromString","svgPaths","segments","len","segment","svgPathSeg","absSeg","relSeg","parsePaths","_delta","closest","dist","PolygonMaskPlugin","polygonOptions","RollLight","Roll","darken","enlighten","RollUpdater","rollHorizontal","rollVertical","rollOpt","alterType","updateRoll","initPjs","particlesJS","pJSDom","RotateAnimation","Rotate","RotateUpdater","rotateOptions","rotateDirection","rotateAnimation","updateAngle","BaseMover","gravityOptions","spinOptions","spinPos","spinCenter","spinAcceleration","particleOptions","slowFactor","getProximitySpeedFactor","baseSpeed","maxSize","maxCanvasSize","applyPath","gravityFactor","zVelocityFactor","dxFixed","dyFixed","hDistance","vDistance","vel","applyDistance","CircleDrawer","updateColorValue","valueAnimation","decrease","ColorUpdater","updateColor","Attract","easing","Attractor","finish","attractModeDistance","mouseMoveStatus","hoverEnabled","hoverMode","clickEnabled","clickMode","hoverAttract","clickAttract","attractRadius","processAttract","attractOptions","attractFactor","normVec","Bounce","Bouncer","bounceModeDistance","processMouseBounce","singleSelectorBounce","processBounce","tolerance","querySelectorAll","elem","offsetLeft","offsetTop","BubbleBase","BubbleDiv","Bubble","calculateBubbleValue","particleValue","modeValue","optionsValue","Bubbler","bubbleModeDistance","bubbleModeSize","hoverBubble","clickBubble","singleSelectorHover","divBubble","mouseClickPos","durationEnd","distMouse","timeSpent","sizeData","bubbleObj","optValue","particlesObj","process","opacityData","hoverBubbleColor","pointDistance","hoverBubbleSize","hoverBubbleOpacity","bubbleOptions","finalColor","modeColor","bubbleColor","pColor","modeOpacity","optOpacity","modeSize","optSize","bubbleParam","bubbleDuration","bubbleDistance","particlesParam","pObjBubble","pObj","repulseRadius","ConnectLinks","Connect","links","lineLinked","line_linked","lineStyle","connectOptions","connect","gradStop","sourcePos","destPos","midRgb","grad","createLinearGradient","addColorStop","gradient","drawConnection","ls","drawConnectLine","linksWidth","Connector","connectModeDistance","connectModeRadius","slice","distMax","xDiff","yDiff","GrabLinks","Grab","drawGrab","beginPos","colorLine","drawGrabLine","Grabber","grab","grabModeDistance","grabLineOptions","lineOpacity","opacityLine","grabLineColor","linksOptions","Pauser","Push","particles_nb","Pusher","pushOptions","pushNb","Remove","Remover","removeNb","RepulseBase","RepulseDiv","Repulse","Repulser","repulse","repulseModeDistance","hoverRepulse","clickRepulse","singleSelectorRepulse","divRepulse","repulseDistance","vect","processRepulse","repulseOptions","repulseFactor","Slow","Slower","slowModeRadius","particlePos","proximityFactor","currentColorRegex","loadImage","Promise","resolve","loading","img","Image","src","downloadSvgImage","svgData","replaceImageColor","imageData","svgColoredData","imageShape","colorStyle","preFillIndex","substring","replaceColorSvg","imageRes","replaceColor","replace_color","Blob","domUrl","URL","webkitURL","createObjectURL","revokeObjectURL","img2","ImageDrawer","_images","addImage","containerImages","getImages","globalAlpha","drawImage","loadImageShape","imageFunc","LifeDelay","LifeDuration","Life","LifeUpdater","lifeOptions","delayTime","time","justSpawned","widthRange","heightRange","LineDrawer","OpacityUpdater","opacityOptions","opacityAnimation","opacityRange","minValue","checkDestroy","updateOpacity","BounceOutMode","newVelocity","minPos","bounceHorizontal","bounceVertical","DestroyOutMode","vx","vy","NoneOutMode","pRadius","OutOutMode","circVec","newDx","newDy","wrap","newPos","sizeValue","nextBounds","OutOfCanvasUpdater","updateOutMode","ParallaxMover","parallaxForce","canvasCenter","parallaxSmooth","centerDistance","ax","ay","p1Factor","p2Factor","resolveCollision","fps","absorb","Collider","radius1","radius2","round","CircleWarp","posNE","posSE","posSW","biggerCircle","rectSW","LinksShadow","LinksTriangle","frequency","Links","triangles","getLinkDistance","optDistance","pos2NE","pos2SE","pos2SW","Linker","linkContainer","linksColors","linkOpt1","linksDistance","linkOpt2","setColor","linksColor","setLinkFrequency","dictionary","LinkInstance","_freqs","pOptions","p1Links","getLinkFrequency","link","drawTriangles","drawLinkLine","twinkle","lines","twinkleFreq","twinkleRgb","drawn","pi1","pi2","endNE","d1","yi","endSW","d2","xi","endSE","d3","drawLinkTriangle","link1","link2","triangleOptions","opacityTriangle","pos3","colorTriangle","vertices","linkFreq","vertex","getTriangleFrequency","LinksPlugin","loadParticlesLinksInteraction","loadInteraction","loadPlugin","PolygonDrawerBase","getCenter","getSidesData","sideCount","numerator","denominator","decimalSides","interiorAngleDegrees","interiorAngle","nb_sides","PolygonDrawer","TriangleDrawer","loadPolygonShape","loadGenericPolygonShape","loadTriangleShape","SizeUpdater","sizeVelocity","updateSize","fixFactor","SquareDrawer","StarDrawer","star","inset","StrokeColorUpdater","strokeHslColor","updateStrokeColor","validTypes","TextDrawer","textData","textParticle","randomIndexData","fillText","strokeText","promises","all","loadSlim","loadBaseMover","loadParallaxMover","loadExternalAttractInteraction","loadExternalBounceInteraction","loadExternalBubbleInteraction","loadExternalConnectInteraction","loadExternalGrabInteraction","loadExternalPauseInteraction","loadExternalPushInteraction","loadExternalRemoveInteraction","loadExternalRepulseInteraction","loadExternalSlowInteraction","loadParticlesAttractInteraction","loadParticlesCollisionsInteraction","loadCircleShape","imageDrawer","loadLineShape","loadSquareShape","loadStarShape","loadTextShape","loadLifeUpdater","loadOpacityUpdater","loadSizeUpdater","loadAngleUpdater","loadColorUpdater","loadStrokeColorUpdater","loadOutModesUpdater","TiltAnimation","Tilt","TiltUpdater","tilt","cosDirection","sinDirection","tiltOptions","tiltDirection","tiltAnimation","updateTilt","TwinkleValues","Twinkle","TwinkleUpdater","twinkleOptions","twinkling","twinklingOpacity","twinkleStyle","needsTwinkle","WobbleSpeed","Wobble","rangeSpeed","WobbleUpdater","wobbleOpt","wobble","angleSpeed","wobbleDistance","updateWobble","loadFull","loadDestroyUpdater","loadRollUpdater","loadTiltUpdater","loadTwinkleUpdater","loadWobbleUpdater","loadExternalTrailInteraction","loadAbsorbersPlugin","addEmitterShape","loadEmittersPlugin","loadPolygonMaskPlugin","hideBGCOLOR","appData","alt","href","handleMobileDropdown","classList","toggle","lr","nr","ref","to","cursorInner","cursorOuter","onmousemove","visibility","mousecursor","React","mouseEffect","progressPath","pathLength","transition","WebkitTransition","strokeDasharray","strokeDashoffset","updateProgress","scroll","pageYOffset","documentElement","scrollHeight","innerHeight","progress","progressWrap","preventDefault","scrollTo","behavior","scrollToTop","viewBox","Pace","on","bodyEl","loadingPace","children","useSkin","mobileappstyle","lightStyles","darkStyles","darkStylesheet","rel","head","skinCssLink","mobileAppCssLink"],"sourceRoot":""}