{"version":3,"file":"static/js/main.946ac0f3.js","mappings":"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AAAA,EAAAA,cAAAA,GAAY29C,mBACe,KAAlC39C,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY29C,oBACsB,UAAlC39C,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY29C,mBAEV39C,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY29C,oBC9BPnzE,ICCA,IAAIntC,IDDUf,OAAOuhH,OAAO,KAC5BvsG,GAAehV,OAAOuhH,OAAO,CAAC,GEAnB,SAAAnzF,GACtBtsB,EACA2mB,EACAD,GAEA,YAAO,IAFPA,IAAAA,EAAiExT,IAEzDlT,EAAM85D,QAAUpzC,EAAaozC,OAAS95D,EAAM85D,OAAUnzC,GAAiBD,EAAaozC,KAC9F,CCPA,IAwIA12D,GAAe,IAAInE,IAxIF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,IACA,KACA,MACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UA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","sources":["../node_modules/fast-deep-equal/react.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-tsparticles/cjs/particles.js","../node_modules/react-tsparticles/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/tsparticles/cjs/Core/Canvas.js","../node_modules/tsparticles/cjs/Core/Container.js","../node_modules/tsparticles/cjs/Core/Interfaces/Colors.js","../node_modules/tsparticles/cjs/Core/Interfaces/Gradients.js","../node_modules/tsparticles/cjs/Core/Interfaces/IBounds.js","../node_modules/tsparticles/cjs/Core/Interfaces/IBubbleParticleData.js","../node_modules/tsparticles/cjs/Core/Interfaces/ICircleBouncer.js","../node_modules/tsparticles/cjs/Core/Interfaces/IContainerInteractivity.js","../node_modules/tsparticles/cjs/Core/Interfaces/IContainerPlugin.js","../node_modules/tsparticles/cjs/Core/Interfaces/ICoordinates.js","../node_modules/tsparticles/cjs/Core/Interfaces/IDelta.js","../node_modules/tsparticles/cjs/Core/Interfaces/IDimension.js","../node_modules/tsparticles/cjs/Core/Interfaces/IDistance.js","../node_modules/tsparticles/cjs/Core/Interfaces/IExternalInteractor.js","../node_modules/tsparticles/cjs/Core/Interfaces/IInteractor.js","../node_modules/tsparticles/cjs/Core/Interfaces/IMouseData.js","../node_modules/tsparticles/cjs/Core/Interfaces/IMovePathGenerator.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticle.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleColorStyle.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleGravity.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleHslAnimation.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleLife.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleLoops.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleRetinaProps.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleRoll.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleSpin.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleUpdater.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleValueAnimation.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticleWobble.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticlesInteractor.js","../node_modules/tsparticles/cjs/Core/Interfaces/IParticlesMover.js","../node_modules/tsparticles/cjs/Core/Interfaces/IPlugin.js","../node_modules/tsparticles/cjs/Core/Interfaces/IRangeValue.js","../node_modules/tsparticles/cjs/Core/Interfaces/IRectSideResult.js","../node_modules/tsparticles/cjs/Core/Interfaces/IShapeDrawer.js","../node_modules/tsparticles/cjs/Core/Interfaces/IShapeValues.js","../node_modules/tsparticles/cjs/Core/Loader.js","../node_modules/tsparticles/cjs/Core/Particle.js","../node_modules/tsparticles/cjs/Core/Particles.js","../node_modules/tsparticles/cjs/Core/Retina.js","../node_modules/tsparticles/cjs/Core/Utils/Circle.js","../node_modules/tsparticles/cjs/Core/Utils/CircleWarp.js","../node_modules/tsparticles/cjs/Core/Utils/Constants.js","../node_modules/tsparticles/cjs/Core/Utils/EventListeners.js","../node_modules/tsparticles/cjs/Core/Utils/ExternalInteractorBase.js","../node_modules/tsparticles/cjs/Core/Utils/FrameManager.js","../node_modules/tsparticles/cjs/Core/Utils/InteractionManager.js","../node_modules/tsparticles/cjs/Core/Utils/ParticlesInteractorBase.js","../node_modules/tsparticles/cjs/Core/Utils/Plugins.js","../node_modules/tsparticles/cjs/Core/Utils/Point.js","../node_modules/tsparticles/cjs/Core/Utils/QuadTree.js","../node_modules/tsparticles/cjs/Core/Utils/Range.js","../node_modules/tsparticles/cjs/Core/Utils/Rectangle.js","../node_modules/tsparticles/cjs/Core/Utils/Vector.js","../node_modules/tsparticles/cjs/Core/Utils/Vector3d.js","../node_modules/tsparticles/cjs/Enums/AnimationStatus.js","../node_modules/tsparticles/cjs/Enums/Directions/MoveDirection.js","../node_modules/tsparticles/cjs/Enums/Directions/OutModeDirection.js","../node_modules/tsparticles/cjs/Enums/Directions/RotateDirection.js","../node_modules/tsparticles/cjs/Enums/Directions/TiltDirection.js","../node_modules/tsparticles/cjs/Enums/InteractivityDetect.js","../node_modules/tsparticles/cjs/Enums/Modes/ClickMode.js","../node_modules/tsparticles/cjs/Enums/Modes/CollisionMode.js","../node_modules/tsparticles/cjs/Enums/Modes/DestroyMode.js","../node_modules/tsparticles/cjs/Enums/Modes/DivMode.js","../node_modules/tsparticles/cjs/Enums/Modes/HoverMode.js","../node_modules/tsparticles/cjs/Enums/Modes/OutMode.js","../node_modules/tsparticles/cjs/Enums/Modes/ResponsiveMode.js","../node_modules/tsparticles/cjs/Enums/Modes/RollMode.js","../node_modules/tsparticles/cjs/Enums/Modes/SizeMode.js","../node_modules/tsparticles/cjs/Enums/Modes/ThemeMode.js","../node_modules/tsparticles/cjs/Enums/Types/AlterType.js","../node_modules/tsparticles/cjs/Enums/Types/DestroyType.js","../node_modules/tsparticles/cjs/Enums/Types/DivType.js","../node_modules/tsparticles/cjs/Enums/Types/EasingType.js","../node_modules/tsparticles/cjs/Enums/Types/GradientType.js","../node_modules/tsparticles/cjs/Enums/Types/InteractorType.js","../node_modules/tsparticles/cjs/Enums/Types/ShapeType.js","../node_modules/tsparticles/cjs/Enums/Types/StartValueType.js","../node_modules/tsparticles/cjs/Interactions/External/Attract/Attractor.js","../node_modules/tsparticles/cjs/Interactions/External/Attract/index.js","../node_modules/tsparticles/cjs/Interactions/External/Bounce/Bouncer.js","../node_modules/tsparticles/cjs/Interactions/External/Bounce/index.js","../node_modules/tsparticles/cjs/Interactions/External/Bubble/Bubbler.js","../node_modules/tsparticles/cjs/Interactions/External/Bubble/index.js","../node_modules/tsparticles/cjs/Interactions/External/Connect/Connector.js","../node_modules/tsparticles/cjs/Interactions/External/Connect/index.js","../node_modules/tsparticles/cjs/Interactions/External/Grab/Grabber.js","../node_modules/tsparticles/cjs/Interactions/External/Grab/index.js","../node_modules/tsparticles/cjs/Interactions/External/Pause/Pauser.js","../node_modules/tsparticles/cjs/Interactions/External/Pause/index.js","../node_modules/tsparticles/cjs/Interactions/External/Push/Pusher.js","../node_modules/tsparticles/cjs/Interactions/External/Push/index.js","../node_modules/tsparticles/cjs/Interactions/External/Remove/Remover.js","../node_modules/tsparticles/cjs/Interactions/External/Remove/index.js","../node_modules/tsparticles/cjs/Interactions/External/Repulse/Repulser.js","../node_modules/tsparticles/cjs/Interactions/External/Repulse/index.js","../node_modules/tsparticles/cjs/Interactions/External/Trail/TrailMaker.js","../node_modules/tsparticles/cjs/Interactions/External/Trail/index.js","../node_modules/tsparticles/cjs/Interactions/Particles/Attract/Attractor.js","../node_modules/tsparticles/cjs/Interactions/Particles/Attract/index.js","../node_modules/tsparticles/cjs/Interactions/Particles/Collisions/Collider.js","../node_modules/tsparticles/cjs/Interactions/Particles/Collisions/index.js","../node_modules/tsparticles/cjs/Interactions/Particles/Links/LinkInstance.js","../node_modules/tsparticles/cjs/Interactions/Particles/Links/Linker.js","../node_modules/tsparticles/cjs/Interactions/Particles/Links/index.js","../node_modules/tsparticles/cjs/Interactions/Particles/Links/interaction.js","../node_modules/tsparticles/cjs/Interactions/Particles/Links/plugin.js","../node_modules/tsparticles/cjs/Movers/Base/BaseMover.js","../node_modules/tsparticles/cjs/Movers/Base/Utils.js","../node_modules/tsparticles/cjs/Movers/Base/index.js","../node_modules/tsparticles/cjs/Movers/Parallax/ParallaxMover.js","../node_modules/tsparticles/cjs/Movers/Parallax/index.js","../node_modules/tsparticles/cjs/Options/Classes/AnimatableColor.js","../node_modules/tsparticles/cjs/Options/Classes/AnimatableGradient.js","../node_modules/tsparticles/cjs/Options/Classes/AnimationOptions.js","../node_modules/tsparticles/cjs/Options/Classes/Background/Background.js","../node_modules/tsparticles/cjs/Options/Classes/BackgroundMask/BackgroundMask.js","../node_modules/tsparticles/cjs/Options/Classes/BackgroundMask/BackgroundMaskCover.js","../node_modules/tsparticles/cjs/Options/Classes/ColorAnimation.js","../node_modules/tsparticles/cjs/Options/Classes/FullScreen/FullScreen.js","../node_modules/tsparticles/cjs/Options/Classes/HslAnimation.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Events/ClickEvent.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Events/DivEvent.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Events/Events.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Events/HoverEvent.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Events/Parallax.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Interactivity.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Attract.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Bounce.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Bubble.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/BubbleBase.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/BubbleDiv.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Connect.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/ConnectLinks.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Grab.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/GrabLinks.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Light.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/LightArea.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/LightGradient.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/LightShadow.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Modes.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Push.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Remove.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Repulse.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/RepulseBase.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/RepulseDiv.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Slow.js","../node_modules/tsparticles/cjs/Options/Classes/Interactivity/Modes/Trail.js","../node_modules/tsparticles/cjs/Options/Classes/ManualParticle.js","../node_modules/tsparticles/cjs/Options/Classes/Motion/Motion.js","../node_modules/tsparticles/cjs/Options/Classes/Motion/MotionReduce.js","../node_modules/tsparticles/cjs/Options/Classes/Options.js","../node_modules/tsparticles/cjs/Options/Classes/OptionsColor.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Bounce/Bounce.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Bounce/BounceFactor.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Collisions/Collisions.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Collisions/CollisionsOverlap.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Destroy/Destroy.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Destroy/Split.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Destroy/SplitFactor.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Destroy/SplitRate.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Life/Life.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Life/LifeDelay.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Life/LifeDuration.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Links/Links.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Links/LinksShadow.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Links/LinksTriangle.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/Attract.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/Move.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/MoveAngle.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/MoveGravity.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/OutModes.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/Path/Path.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/Path/PathDelay.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/Spin.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Move/Trail.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Number/Density.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Number/ParticlesNumber.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Opacity/Opacity.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Orbit/Orbit.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Orbit/OrbitRotation.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/ParticlesOptions.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Repulse/Repulse.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Roll/Roll.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Roll/RollLight.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Rotate/Rotate.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Rotate/RotateAnimation.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Shadow.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Shape/Shape.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Size/Size.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Size/SizeAnimation.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Stroke.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Tilt/Tilt.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Tilt/TiltAnimation.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Twinkle/Twinkle.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Twinkle/TwinkleValues.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/Wobble/Wobble.js","../node_modules/tsparticles/cjs/Options/Classes/Particles/ZIndex/ZIndex.js","../node_modules/tsparticles/cjs/Options/Classes/Random.js","../node_modules/tsparticles/cjs/Options/Classes/Responsive.js","../node_modules/tsparticles/cjs/Options/Classes/Theme/Theme.js","../node_modules/tsparticles/cjs/Options/Classes/Theme/ThemeDefault.js","../node_modules/tsparticles/cjs/Options/Classes/ValueWithRandom.js","../node_modules/tsparticles/cjs/Options/Interfaces/IOptionLoader.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/AbsorberInstance.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/Absorbers.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/Enums/AbsorberClickMode.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/Options/Classes/Absorber.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/Options/Classes/AbsorberSize.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/Options/Classes/AbsorberSizeLimit.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/Options/Interfaces/IAbsorberOptions.js","../node_modules/tsparticles/cjs/Plugins/Absorbers/index.js","../node_modules/tsparticles/cjs/Plugins/Emitters/EmitterInstance.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Emitters.js","../node_modules/tsparticles/cjs/Plugins/Emitters/EmittersEngine.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Enums/EmitterClickMode.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Enums/EmitterShapeType.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Options/Classes/Emitter.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Options/Classes/EmitterLife.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Options/Classes/EmitterRate.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Options/Classes/EmitterSize.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Options/Interfaces/IEmitterOptions.js","../node_modules/tsparticles/cjs/Plugins/Emitters/ShapeManager.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Shapes/Circle/CircleShape.js","../node_modules/tsparticles/cjs/Plugins/Emitters/Shapes/Square/SquareShape.js","../node_modules/tsparticles/cjs/Plugins/Emitters/index.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Enums/PolygonMaskInlineArrangement.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Enums/PolygonMaskMoveType.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Enums/PolygonMaskType.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Options/Classes/PolygonMask.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Options/Classes/PolygonMaskDraw.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Options/Classes/PolygonMaskDrawStroke.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Options/Classes/PolygonMaskInline.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Options/Classes/PolygonMaskLocalSvg.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Options/Classes/PolygonMaskMove.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Options/Interfaces/IPolygonMaskOptions.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/PolygonMaskInstance.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/Utils.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/index.js","../node_modules/tsparticles/cjs/Plugins/PolygonMask/pathseg.js","../node_modules/tsparticles/cjs/Shapes/Circle/CircleDrawer.js","../node_modules/tsparticles/cjs/Shapes/Circle/index.js","../node_modules/tsparticles/cjs/Shapes/Image/ImageDrawer.js","../node_modules/tsparticles/cjs/Shapes/Image/Utils.js","../node_modules/tsparticles/cjs/Shapes/Image/index.js","../node_modules/tsparticles/cjs/Shapes/Line/LineDrawer.js","../node_modules/tsparticles/cjs/Shapes/Line/index.js","../node_modules/tsparticles/cjs/Shapes/Polygon/PolygonDrawer.js","../node_modules/tsparticles/cjs/Shapes/Polygon/PolygonDrawerBase.js","../node_modules/tsparticles/cjs/Shapes/Polygon/TriangleDrawer.js","../node_modules/tsparticles/cjs/Shapes/Polygon/index.js","../node_modules/tsparticles/cjs/Shapes/Square/SquareDrawer.js","../node_modules/tsparticles/cjs/Shapes/Square/index.js","../node_modules/tsparticles/cjs/Shapes/Star/StarDrawer.js","../node_modules/tsparticles/cjs/Shapes/Star/index.js","../node_modules/tsparticles/cjs/Shapes/Text/TextDrawer.js","../node_modules/tsparticles/cjs/Shapes/Text/index.js","../node_modules/tsparticles/cjs/Types/PathOptions.js","../node_modules/tsparticles/cjs/Types/RangeValue.js","../node_modules/tsparticles/cjs/Types/RecursivePartial.js","../node_modules/tsparticles/cjs/Types/ShapeData.js","../node_modules/tsparticles/cjs/Types/ShapeDrawerFunctions.js","../node_modules/tsparticles/cjs/Types/SingleOrMultiple.js","../node_modules/tsparticles/cjs/Updaters/Angle/AngleUpdater.js","../node_modules/tsparticles/cjs/Updaters/Angle/index.js","../node_modules/tsparticles/cjs/Updaters/Color/ColorUpdater.js","../node_modules/tsparticles/cjs/Updaters/Color/index.js","../node_modules/tsparticles/cjs/Updaters/Life/LifeUpdater.js","../node_modules/tsparticles/cjs/Updaters/Life/index.js","../node_modules/tsparticles/cjs/Updaters/Opacity/OpacityUpdater.js","../node_modules/tsparticles/cjs/Updaters/Opacity/index.js","../node_modules/tsparticles/cjs/Updaters/OutModes/OutOfCanvasUpdater.js","../node_modules/tsparticles/cjs/Updaters/OutModes/Utils.js","../node_modules/tsparticles/cjs/Updaters/OutModes/index.js","../node_modules/tsparticles/cjs/Updaters/Roll/RollUpdater.js","../node_modules/tsparticles/cjs/Updaters/Roll/index.js","../node_modules/tsparticles/cjs/Updaters/Size/SizeUpdater.js","../node_modules/tsparticles/cjs/Updaters/Size/index.js","../node_modules/tsparticles/cjs/Updaters/StrokeColor/StrokeColorUpdater.js","../node_modules/tsparticles/cjs/Updaters/StrokeColor/index.js","../node_modules/tsparticles/cjs/Updaters/Tilt/TiltUpdater.js","../node_modules/tsparticles/cjs/Updaters/Tilt/index.js","../node_modules/tsparticles/cjs/Updaters/Twinkle/TwinkleUpdater.js","../node_modules/tsparticles/cjs/Updaters/Twinkle/index.js","../node_modules/tsparticles/cjs/Updaters/Wobble/WobbleUpdater.js","../node_modules/tsparticles/cjs/Updaters/Wobble/index.js","../node_modules/tsparticles/cjs/Utils/CanvasUtils.js","../node_modules/tsparticles/cjs/Utils/ColorUtils.js","../node_modules/tsparticles/cjs/Utils/NumberUtils.js","../node_modules/tsparticles/cjs/Utils/Utils.js","../node_modules/tsparticles/cjs/engine.js","../node_modules/tsparticles/cjs/full.js","../node_modules/tsparticles/cjs/index.js","../node_modules/tsparticles/cjs/pjs.js","../node_modules/tsparticles/cjs/slim.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/nonce","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","appearance/options.ts","appearance/themes.ts","App/AppContext.tsx","../node_modules/tslib/tslib.es6.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Middleware.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","components/Buttons.tsx","components/Content.tsx","components/Footer.tsx","components/Particles.tsx","icons/Email.tsx","icons/GitHub.tsx","icons/LinkedIn.tsx","icons/Moon.tsx","icons/Resume.tsx","icons/Sun.tsx","components/Toggle.tsx","icons/Projetcs.tsx","icons/AboutMe.tsx","App/config.tsx","components/Card.tsx","App/pages/Projects.tsx","components/Card2.tsx","App/pages/AboutMe.tsx","App/App.tsx","index.tsx"],"sourcesContent":["'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\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;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\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\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\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\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3{var t={757:(t,e,r)=>{t.exports=r(666)},666:t=>{var e=function(t){\"use strict\";var e,r=Object.prototype,n=r.hasOwnProperty,o=\"function\"==typeof Symbol?Symbol:{},i=o.iterator||\"@@iterator\",a=o.asyncIterator||\"@@asyncIterator\",c=o.toStringTag||\"@@toStringTag\";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},\"\")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof v?e:v,i=Object.create(o.prototype),a=new k(n||[]);return i._invoke=function(t,e,r){var n=l;return function(o,i){if(n===p)throw new Error(\"Generator is already running\");if(n===y){if(\"throw\"===o)throw i;return N()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var c=P(a,r);if(c){if(c===d)continue;return c}}if(\"next\"===r.method)r.sent=r._sent=r.arg;else if(\"throw\"===r.method){if(n===l)throw n=y,r.arg;r.dispatchException(r.arg)}else\"return\"===r.method&&r.abrupt(\"return\",r.arg);n=p;var u=f(t,e,r);if(\"normal\"===u.type){if(n=r.done?y:h,u.arg===d)continue;return{value:u.arg,done:r.done}}\"throw\"===u.type&&(n=y,r.method=\"throw\",r.arg=u.arg)}}}(t,r,a),i}function f(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=s;var l=\"suspendedStart\",h=\"suspendedYield\",p=\"executing\",y=\"completed\",d={};function v(){}function m(){}function g(){}var w={};w[i]=function(){return this};var b=Object.getPrototypeOf,x=b&&b(b(S([])));x&&x!==r&&n.call(x,i)&&(w=x);var O=g.prototype=v.prototype=Object.create(w);function _(t){[\"next\",\"throw\",\"return\"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if(\"throw\"!==u.type){var s=u.arg,l=s.value;return l&&\"object\"==typeof l&&n.call(l,\"__await\")?e.resolve(l.__await).then((function(t){r(\"next\",t,a,c)}),(function(t){r(\"throw\",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r(\"throw\",t,a,c)}))}c(u.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function P(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,\"throw\"===r.method){if(t.iterator.return&&(r.method=\"return\",r.arg=e,P(t,r),\"throw\"===r.method))return d;r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return d}var o=f(n,t.iterator,r.arg);if(\"throw\"===o.type)return r.method=\"throw\",r.arg=o.arg,r.delegate=null,d;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=e),r.delegate=null,d):i:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,d)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(E,this),this.reset(!0)}function S(t){if(t){var r=t[i];if(r)return r.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if(\"root\"===a.tryLoc)return o(\"end\");if(a.tryLoc<=this.prev){var u=n.call(a,\"catchLoc\"),s=n.call(a,\"finallyLoc\");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),L(r),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;L(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,r,n){return this.delegate={iterator:S(t),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(e)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})};var n={};(()=>{\"use strict\";function t(t,e){for(var r=0;rm,default:()=>g});var s=r(757),f=r.n(s);const l=require(\"react\");var h=r.n(l);const p=require(\"tsparticles\"),y=require(\"fast-deep-equal/react\");var d=r.n(y);var v=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function c(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,c)}u((n=n.apply(t,e||[])).next())}))},m=function(r){!function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");Object.defineProperty(t,\"prototype\",{value:Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),writable:!1}),e&&a(t,e)}(y,r);var n,o,c,s,l=(c=y,s=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,r=e(c);if(s){var n=e(this).constructor;t=Reflect.construct(r,arguments,n)}else t=r.apply(this,arguments);return u(this,t)});function y(t){var e;return function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,y),(e=l.call(this,t)).state={library:void 0},e}return n=y,(o=[{key:\"destroy\",value:function(){this.state.library&&(this.state.library.destroy(),this.setState({library:void 0}))}},{key:\"shouldComponentUpdate\",value:function(t){return!d()(t,this.props)}},{key:\"componentDidUpdate\",value:function(){this.refresh()}},{key:\"forceUpdate\",value:function(){var t=this;this.refresh().then((function(){i(e(y.prototype),\"forceUpdate\",t).call(t)}))}},{key:\"componentDidMount\",value:function(){v(this,void 0,void 0,f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.props.init){t.next=3;break}return t.next=3,this.props.init(p.tsParticles);case 3:return t.next=5,this.loadParticles();case 5:case\"end\":return t.stop()}}),t,this)})))}},{key:\"componentWillUnmount\",value:function(){this.destroy()}},{key:\"render\",value:function(){var t=this.props,e=t.width,r=t.height,n=t.className,o=t.canvasClassName,i=t.id;return h().createElement(\"div\",{className:n,id:i},h().createElement(\"canvas\",{className:o,style:Object.assign(Object.assign({},this.props.style),{width:e,height:r})}))}},{key:\"refresh\",value:function(){return v(this,void 0,void 0,f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.destroy(),t.next=3,this.loadParticles();case 3:case\"end\":return t.stop()}}),t,this)})))}},{key:\"loadParticles\",value:function(){var t;return v(this,void 0,void 0,f().mark((function e(){var r,n,o=this;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=function(t){return v(o,void 0,void 0,f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.props.container&&(this.props.container.current=t),this.setState({library:t}),!this.props.loaded){e.next=5;break}return e.next=5,this.props.loaded(t);case 5:case\"end\":return e.stop()}}),e,this)})))},!this.props.url){e.next=7;break}return e.next=4,p.tsParticles.loadJSON(this.props.id,this.props.url);case 4:e.t0=e.sent,e.next=10;break;case 7:return e.next=9,p.tsParticles.load(this.props.id,null!==(t=this.props.params)&&void 0!==t?t:this.props.options);case 9:e.t0=e.sent;case 10:return n=e.t0,e.next=13,r(n);case 13:case\"end\":return e.stop()}}),e,this)})))}}])&&t(n.prototype,o),Object.defineProperty(n,\"prototype\",{writable:!1}),y}(l.Component);m.defaultProps={width:\"100%\",height:\"100%\",options:{},style:{},url:void 0,id:\"tsparticles\"};const g=m})();var o=exports;for(var i in n)o[i]=n[i];n.__esModule&&Object.defineProperty(o,\"__esModule\",{value:!0})})();","const ReactParticles = require(\"./cjs/particles\");\n\nfor (let key in ReactParticles) {\n ReactParticles.default[key] = ReactParticles[key];\n}\n\nmodule.exports = ReactParticles.default;\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Canvas = void 0;\nconst CanvasUtils_1 = require(\"../Utils/CanvasUtils\");\nconst ColorUtils_1 = require(\"../Utils/ColorUtils\");\nconst Constants_1 = require(\"./Utils/Constants\");\nconst Utils_1 = require(\"../Utils/Utils\");\nclass 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 }\n init() {\n this.resize();\n this.initStyle();\n this.initCover();\n this.initTrail();\n this.initBackground();\n this.paint();\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 =\n canvas.dataset && Constants_1.Constants.generatedAttribute in canvas.dataset\n ? canvas.dataset[Constants_1.Constants.generatedAttribute] === \"true\"\n : this.generatedCanvas;\n this.element = canvas;\n this.originalStyle = (0, Utils_1.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 destroy() {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.draw((ctx) => {\n (0, CanvasUtils_1.clear)(ctx, this.size);\n });\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n (0, CanvasUtils_1.clear)(ctx, this.size);\n this.paintBase(this.coverColorStyle);\n }\n else {\n this.paintBase();\n }\n });\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && this.trailFillColor) {\n this.paintBase((0, ColorUtils_1.getStyleFromRgb)(this.trailFillColor, 1 / trail.length));\n }\n else {\n this.draw((ctx) => {\n (0, CanvasUtils_1.clear)(ctx, this.size);\n });\n }\n }\n async windowResize() {\n if (!this.element) {\n return;\n }\n this.resize();\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n for (const [, plugin] of container.plugins) {\n if (plugin.resize !== undefined) {\n plugin.resize();\n }\n }\n if (needsRefresh) {\n await container.refresh();\n }\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio,\n };\n if (newSize.height === size.height &&\n newSize.width === size.width &&\n newSize.height === this.element.height &&\n 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 drawConnectLine(p1, p2) {\n this.draw((ctx) => {\n var _a;\n const lineStyle = this.lineStyle(p1, p2);\n if (!lineStyle) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n (0, CanvasUtils_1.drawConnectLine)(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : this.container.retina.linksWidth, lineStyle, pos1, pos2);\n });\n }\n drawGrabLine(particle, lineColor, opacity, mousePos) {\n const container = this.container;\n this.draw((ctx) => {\n var _a;\n const beginPos = particle.getPosition();\n (0, CanvasUtils_1.drawGrabLine)(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, beginPos, mousePos, lineColor, opacity);\n });\n }\n drawParticle(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\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(), psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n if (!pfColor && !psColor) {\n return;\n }\n let [fColor, sColor] = this.getPluginParticleColors(particle);\n if (!fColor || !sColor) {\n if (!fColor) {\n fColor = pfColor ? pfColor : undefined;\n }\n if (!sColor) {\n sColor = psColor ? psColor : undefined;\n }\n }\n const options = this.container.actualOptions, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, opacity = (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1, strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor;\n const colorStyles = {\n fill: fColor ? (0, ColorUtils_1.getStyleFromHsl)(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? (0, ColorUtils_1.getStyleFromHsl)(sColor, zStrokeOpacity) : colorStyles.fill;\n this.draw((ctx) => {\n const zSizeFactor = (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate, container = this.container;\n for (const updater of container.particles.updaters) {\n if (updater.beforeDraw) {\n updater.beforeDraw(particle);\n }\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n }\n (0, CanvasUtils_1.drawParticle)(container, ctx, particle, delta, colorStyles, options.backgroundMask.enable, options.backgroundMask.composite, radius * zSizeFactor, zOpacity, particle.options.shadow);\n for (const updater of container.particles.updaters) {\n if (updater.afterDraw) {\n updater.afterDraw(particle);\n }\n }\n });\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => {\n (0, CanvasUtils_1.drawPlugin)(ctx, plugin, delta);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => {\n (0, CanvasUtils_1.drawParticlePlugin)(ctx, plugin, particle, delta);\n });\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element, elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = (0, ColorUtils_1.colorToRgb)(background.color);\n elementStyle.backgroundColor = color ? (0, ColorUtils_1.getStyleFromRgb)(color, background.opacity) : \"\";\n }\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 draw(cb) {\n if (!this.context) {\n return;\n }\n return cb(this.context);\n }\n initCover() {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color, coverRgb = (0, ColorUtils_1.colorToRgb)(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 = (0, ColorUtils_1.getStyleFromRgb)(coverColor, coverColor.a);\n }\n }\n initTrail() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, fillColor = (0, ColorUtils_1.colorToRgb)(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 getPluginParticleColors(particle) {\n let fColor, sColor;\n for (const [, plugin] of this.container.plugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = (0, ColorUtils_1.colorToHsl)(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = (0, ColorUtils_1.colorToHsl)(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n initStyle() {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n const originalStyle = this.originalStyle;\n if (options.fullScreen.enable) {\n this.originalStyle = (0, Utils_1.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 }\n else if (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 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 paintBase(baseColor) {\n this.draw((ctx) => {\n (0, CanvasUtils_1.paintBase)(ctx, this.size, baseColor);\n });\n }\n lineStyle(p1, p2) {\n return this.draw((ctx) => {\n const options = this.container.actualOptions, connectOptions = options.interactivity.modes.connect;\n return (0, CanvasUtils_1.gradient)(ctx, p1, p2, connectOptions.links.opacity);\n });\n }\n}\nexports.Canvas = Canvas;\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Container_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Container = void 0;\nconst Utils_1 = require(\"../Utils/Utils\");\nconst Canvas_1 = require(\"./Canvas\");\nconst EventListeners_1 = require(\"./Utils/EventListeners\");\nconst FrameManager_1 = require(\"./Utils/FrameManager\");\nconst Options_1 = require(\"../Options/Classes/Options\");\nconst Particles_1 = require(\"./Particles\");\nconst Retina_1 = require(\"./Retina\");\nconst Vector_1 = require(\"./Utils/Vector\");\nconst NumberUtils_1 = require(\"../Utils/NumberUtils\");\nclass Container {\n constructor(engine, id, sourceOptions, ...presets) {\n this.id = id;\n _Container_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Container_engine, engine, \"f\");\n this.fpsLimit = 120;\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_1.Retina(this);\n this.canvas = new Canvas_1.Canvas(this);\n this.particles = new Particles_1.Particles(__classPrivateFieldGet(this, _Container_engine, \"f\"), this);\n this.drawer = new FrameManager_1.FrameManager(this);\n this.presets = presets;\n this.pathGenerator = {\n generate: () => {\n const v = Vector_1.Vector.create(0, 0);\n v.length = Math.random();\n v.angle = Math.random() * Math.PI * 2;\n return v;\n },\n init: () => {\n },\n update: () => {\n },\n };\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.density = 1;\n this._options = new Options_1.Options(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n this.actualOptions = new Options_1.Options(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n this.eventListeners = new EventListeners_1.EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this.intersectionObserver = new IntersectionObserver((entries) => this.intersectionManager(entries));\n }\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n play(force) {\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.draw(needsUpdate || false);\n }\n pause() {\n if (this.drawAnimationFrame !== undefined) {\n (0, Utils_1.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 }\n draw(force) {\n let refreshTime = force;\n this.drawAnimationFrame = (0, Utils_1.animate)()(async (timestamp) => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n await this.drawer.nextFrame(timestamp);\n });\n }\n getAnimationStatus() {\n return !this.paused && !this.pageHidden;\n }\n setNoise(noiseOrGenerator, init, update) {\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n var _a, _b, _c;\n if (!pathOrGenerator) {\n return;\n }\n if (typeof pathOrGenerator === \"function\") {\n this.pathGenerator.generate = pathOrGenerator;\n if (init) {\n this.pathGenerator.init = init;\n }\n if (update) {\n this.pathGenerator.update = update;\n }\n }\n else {\n const oldGenerator = this.pathGenerator;\n this.pathGenerator = pathOrGenerator;\n (_a = this.pathGenerator).generate || (_a.generate = oldGenerator.generate);\n (_b = this.pathGenerator).init || (_b.init = oldGenerator.init);\n (_c = this.pathGenerator).update || (_c.update = oldGenerator.update);\n }\n }\n destroy() {\n this.stop();\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.destroyed = true;\n }\n exportImg(callback) {\n this.exportImage(callback);\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 exportConfiguration() {\n return JSON.stringify(this.actualOptions, undefined, 2);\n }\n refresh() {\n this.stop();\n return this.start();\n }\n reset() {\n this._options = new Options_1.Options(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n return this.refresh();\n }\n stop() {\n if (!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 if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this.particles.linksColors = new Map();\n delete this.particles.grabLineColor;\n delete this.particles.linksColor;\n this._sourceOptions = this._options;\n }\n async loadTheme(name) {\n this.currentTheme = name;\n await this.refresh();\n }\n async start() {\n if (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 }\n else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n this.play();\n }\n addClickHandler(callback) {\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (this.destroyed) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (this.destroyed) {\n return;\n }\n const mouseEvent = e, 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 (this.destroyed) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (this.destroyed) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n var _a, _b, _c;\n if (this.destroyed) {\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(), 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 (this.destroyed) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false;\n let 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 handleClickMode(mode) {\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\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 this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n return false;\n }\n async init() {\n this._options = new Options_1.Options(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n for (const preset of this.presets) {\n this._options.load(__classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getPreset(preset));\n }\n const shapes = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options.load(this._initialSourceOptions);\n this._options.load(this._sourceOptions);\n this.actualOptions = new Options_1.Options(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n this.actualOptions.load(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 = (0, NumberUtils_1.getRangeValue)(this.actualOptions.duration);\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;\n const availablePlugins = __classPrivateFieldGet(this, _Container_engine, \"f\").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 }\n else if (plugin.initAsync !== undefined) {\n await plugin.initAsync(this.actualOptions);\n }\n }\n const pathOptions = this.actualOptions.particles.move.path;\n if (pathOptions.generator) {\n this.setPath(__classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getPathGenerator(pathOptions.generator));\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 }\n intersectionManager(entries) {\n if (!this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n }\n}\nexports.Container = Container;\n_Container_engine = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Loader_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Loader = void 0;\nconst Constants_1 = require(\"./Utils/Constants\");\nconst Container_1 = require(\"./Container\");\nconst Utils_1 = require(\"../Utils/Utils\");\nfunction fetchError(statusCode) {\n console.error(`Error tsParticles - fetch status: ${statusCode}`);\n console.error(\"Error tsParticles - File config not found\");\n}\nclass Loader {\n constructor(engine) {\n _Loader_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Loader_engine, engine, \"f\");\n }\n dom() {\n return __classPrivateFieldGet(this, _Loader_engine, \"f\").domArray;\n }\n domItem(index) {\n const dom = this.dom();\n const item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 10000)}`, { options, index } = params;\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 = options instanceof Array ? (0, Utils_1.itemFromArray)(options, index) : options, dom = this.dom(), oldIndex = dom.findIndex((v) => v.id === tagId);\n if (oldIndex >= 0) {\n const old = this.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[Constants_1.Constants.generatedAttribute] = \"false\";\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n canvasEl.dataset[Constants_1.Constants.generatedAttribute] = \"false\";\n }\n else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[Constants_1.Constants.generatedAttribute] = \"true\";\n canvasEl.style.width = \"100%\";\n canvasEl.style.height = \"100%\";\n domContainer.appendChild(canvasEl);\n }\n }\n const newItem = new Container_1.Container(__classPrivateFieldGet(this, _Loader_engine, \"f\"), tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\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 const { url: jsonUrl, index } = params, url = jsonUrl instanceof Array ? (0, Utils_1.itemFromArray)(jsonUrl, index) : jsonUrl;\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (!response.ok) {\n fetchError(response.status);\n return;\n }\n const data = await response.json();\n return this.loadOptions({\n tagId: params.tagId,\n element: params.element,\n index,\n options: data,\n });\n }\n load(tagId, options, index) {\n const params = { index };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n }\n else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options !== null && options !== void 0 ? options : params.index;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async set(id, domContainer, options, index) {\n const params = { index };\n if (typeof id === \"string\") {\n params.tagId = id;\n }\n else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n }\n else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\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 }\n else {\n id = tagId;\n url = jsonUrl;\n }\n return this.loadRemoteOptions({ tagId: id, url, index });\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 }\n else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return this.loadRemoteOptions({ tagId: newId, url, index: newIndex, element });\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}\nexports.Loader = Loader;\n_Loader_engine = new WeakMap();\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particle_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Particle = void 0;\nconst NumberUtils_1 = require(\"../Utils/NumberUtils\");\nconst ColorUtils_1 = require(\"../Utils/ColorUtils\");\nconst Utils_1 = require(\"../Utils/Utils\");\nconst ParticlesOptions_1 = require(\"../Options/Classes/Particles/ParticlesOptions\");\nconst Shape_1 = require(\"../Options/Classes/Particles/Shape/Shape\");\nconst Vector_1 = require(\"./Utils/Vector\");\nconst Vector3d_1 = require(\"./Utils/Vector3d\");\nconst CanvasUtils_1 = require(\"../Utils/CanvasUtils\");\nconst fixOutMode = (data) => {\n if (!((0, Utils_1.isInArray)(data.outMode, data.checkModes) || (0, Utils_1.isInArray)(data.outMode, data.checkModes))) {\n return;\n }\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n }\n else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n};\nclass Particle {\n constructor(engine, id, container, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f, _g;\n this.id = id;\n this.container = container;\n this.group = group;\n _Particle_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particle_engine, engine, \"f\");\n this.fill = true;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.splitCount = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = new ParticlesOptions_1.ParticlesOptions();\n particlesOptions.load(mainOptions.particles);\n const shapeType = particlesOptions.shape.type, reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = shapeType instanceof Array ? (0, Utils_1.itemFromArray)(shapeType, this.id, reduceDuplicates) : shapeType;\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 =\n overrideShapeType instanceof Array\n ? (0, Utils_1.itemFromArray)(overrideShapeType, this.id, reduceDuplicates)\n : overrideShapeType;\n }\n const shapeOptions = new Shape_1.Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n this.shapeData = this.loadShapeData(shapeOptions, reduceDuplicates);\n }\n }\n else {\n this.shapeData = this.loadShapeData(particlesOptions.shape, reduceDuplicates);\n }\n if (overrideOptions !== undefined) {\n particlesOptions.load(overrideOptions);\n }\n if (((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles) !== undefined) {\n particlesOptions.load((_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.particles);\n }\n this.fill = (_d = (_c = this.shapeData) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this.fill;\n this.close = (_f = (_e = this.shapeData) === null || _e === void 0 ? void 0 : _e.close) !== null && _f !== void 0 ? _f : this.close;\n this.options = particlesOptions;\n this.pathDelay = (0, NumberUtils_1.getValue)(this.options.move.path.delay) * 1000;\n const zIndexValue = (0, NumberUtils_1.getRangeValue)(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size, sizeRange = sizeOptions.value;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: (0, NumberUtils_1.getValue)(sizeOptions) * container.retina.pixelRatio,\n max: (0, NumberUtils_1.getRangeMax)(sizeRange) * pxRatio,\n min: (0, NumberUtils_1.getRangeMin)(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: (0, NumberUtils_1.getRangeValue)(sizeOptions.animation.count),\n };\n const sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n this.size.status = 0;\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 = (0, NumberUtils_1.randomInRange)(this.size) * pxRatio;\n this.size.status = Math.random() >= 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 =\n (((_g = this.retina.sizeAnimationSpeed) !== null && _g !== void 0 ? _g : container.retina.sizeAnimationSpeed) / 100) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= Math.random();\n }\n }\n this.direction = (0, NumberUtils_1.getParticleDirectionAngle)(this.options.move.direction);\n this.bubble = {\n inRange: false,\n };\n this.initialVelocity = this.calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - (0, NumberUtils_1.getRangeValue)(this.options.move.decay);\n const gravityOptions = this.options.move.gravity;\n this.gravity = {\n enable: gravityOptions.enable,\n acceleration: (0, NumberUtils_1.getRangeValue)(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n this.position = this.calcPosition(container, position, (0, NumberUtils_1.clamp)(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n this.offset = Vector_1.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 = __classPrivateFieldGet(this, _Particle_engine, \"f\").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.life = this.loadLife();\n this.spawning = this.life.delay > 0;\n this.shadowColor = (0, ColorUtils_1.colorToRgb)(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n if (updater.init) {\n updater.init(this);\n }\n }\n if (drawer && drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.particleCreated) {\n plugin.particleCreated(this);\n }\n }\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size;\n return (this.position.x >= -radius &&\n this.position.y >= -radius &&\n this.position.y <= canvasSize.height + radius &&\n this.position.x <= canvasSize.width + radius);\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 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 getMass() {\n return (this.getRadius() ** 2 * Math.PI) / 2;\n }\n getFillColor() {\n var _a, _b;\n const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : (0, ColorUtils_1.getHslFromAnimation)(this.color);\n if (color && this.roll && (this.backColor || this.roll.alter)) {\n const backFactor = this.options.roll.mode === \"both\" ? 2 : 1, backSum = this.options.roll.mode === \"horizontal\" ? Math.PI / 2 : 0, 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 (0, CanvasUtils_1.alterHsl)(color, this.roll.alter.type, this.roll.alter.value);\n }\n }\n }\n return color;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : (0, ColorUtils_1.getHslFromAnimation)(this.strokeColor)) !== null && _b !== void 0 ? _b : this.getFillColor();\n }\n destroy(override) {\n this.destroyed = true;\n this.bubble.inRange = false;\n if (this.unbreakable) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n if (override) {\n return;\n }\n const destroyOptions = this.options.destroy;\n if (destroyOptions.mode === \"split\") {\n this.split();\n }\n }\n reset() {\n if (this.opacity) {\n this.opacity.loops = 0;\n }\n this.size.loops = 0;\n }\n split() {\n const splitOptions = this.options.destroy.split;\n if (splitOptions.count >= 0 && this.splitCount++ > splitOptions.count) {\n return;\n }\n const rate = (0, NumberUtils_1.getRangeValue)(splitOptions.rate.value);\n for (let i = 0; i < rate; i++) {\n this.container.particles.addSplitParticle(this);\n }\n }\n calcPosition(container, position, zIndex, tryCount = 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_1.Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = (0, NumberUtils_1.calcExactPositionOrRandomFromSize)({\n size: canvasSize,\n position: position,\n }), pos = Vector3d_1.Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, 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 }, 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 checkOverlap(pos, tryCount = 0) {\n const collisionsOptions = this.options.collisions, 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 ((0, NumberUtils_1.getDistance)(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n calculateVelocity() {\n const baseVelocity = (0, NumberUtils_1.getParticleBaseVelocity)(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move, rad = (Math.PI / 180) * (0, NumberUtils_1.getRangeValue)(moveOptions.angle.value), radOffset = (Math.PI / 180) * (0, NumberUtils_1.getRangeValue)(moveOptions.angle.offset), range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2,\n };\n if (!moveOptions.straight) {\n res.angle += (0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= Math.random();\n }\n return res;\n }\n loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return (0, Utils_1.deepExtend)({}, shapeData instanceof Array ? (0, Utils_1.itemFromArray)(shapeData, this.id, reduceDuplicates) : shapeData);\n }\n }\n loadLife() {\n const container = this.container, particlesOptions = this.options, lifeOptions = particlesOptions.life, life = {\n delay: container.retina.reduceFactor\n ? (((0, NumberUtils_1.getRangeValue)(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor\n ? (((0, NumberUtils_1.getRangeValue)(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n time: 0,\n count: particlesOptions.life.count,\n };\n if (life.duration <= 0) {\n life.duration = -1;\n }\n if (life.count <= 0) {\n life.count = -1;\n }\n return life;\n }\n}\nexports.Particle = Particle;\n_Particle_engine = new WeakMap();\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particles_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Particles = void 0;\nconst NumberUtils_1 = require(\"../Utils/NumberUtils\");\nconst InteractionManager_1 = require(\"./Utils/InteractionManager\");\nconst Particle_1 = require(\"./Particle\");\nconst ParticlesOptions_1 = require(\"../Options/Classes/Particles/ParticlesOptions\");\nconst Point_1 = require(\"./Utils/Point\");\nconst QuadTree_1 = require(\"./Utils/QuadTree\");\nconst Rectangle_1 = require(\"./Utils/Rectangle\");\nclass Particles {\n constructor(engine, container) {\n this.container = container;\n _Particles_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particles_engine, engine, \"f\");\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n this.interactionManager = new InteractionManager_1.InteractionManager(__classPrivateFieldGet(this, _Particles_engine, \"f\"), container);\n const canvasSize = this.container.canvas.size;\n this.linksColors = new Map();\n this.quadTree = new QuadTree_1.QuadTree(new Rectangle_1.Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.movers = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getMovers(container, true);\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n init() {\n var _a;\n const container = this.container, options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n this.freqs.links = new Map();\n this.freqs.triangles = new Map();\n let handled = false;\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").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.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 container.pathGenerator.init(container);\n }\n async redraw() {\n this.clear();\n this.init();\n await this.draw({ value: 0, factor: 0 });\n }\n removeAt(index, quantity = 1, group, override) {\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 }\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n async update(delta) {\n const container = this.container, particlesToDelete = [];\n container.pathGenerator.update();\n for (const [, plugin] of container.plugins) {\n if (plugin.update !== undefined) {\n plugin.update(delta);\n }\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 particle.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n if (plugin.particleUpdate) {\n plugin.particleUpdate(particle, delta);\n }\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_1.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 async draw(delta) {\n const container = this.container, canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree_1.QuadTree(new Rectangle_1.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 clear() {\n this.array = [];\n this.zArray = [];\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 addParticle(position, overrideOptions, group) {\n const container = this.container, options = container.actualOptions, limit = options.particles.number.limit * container.density;\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);\n }\n addSplitParticle(parent) {\n const splitOptions = parent.options.destroy.split, options = new ParticlesOptions_1.ParticlesOptions();\n options.load(parent.options);\n const factor = (0, NumberUtils_1.getRangeValue)(splitOptions.factor.value);\n options.color.load({\n value: {\n hsl: parent.getFillColor(),\n },\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n }\n else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitOptions.particles);\n const offset = splitOptions.sizeOffset ? (0, NumberUtils_1.setRangeValue)(-parent.size.value, parent.size.value) : 0, position = {\n x: parent.position.x + (0, NumberUtils_1.randomInRange)(offset),\n y: parent.position.y + (0, NumberUtils_1.randomInRange)(offset),\n };\n return this.pushParticle(position, options, parent.group, (particle) => {\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = (0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(parent.velocity.length, particle.velocity.length));\n particle.splitCount = parent.splitCount + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n getLinkFrequency(p1, p2) {\n const range = (0, NumberUtils_1.setRangeValue)(p1.id, p2.id), key = `${(0, NumberUtils_1.getRangeMin)(range)}_${(0, NumberUtils_1.getRangeMax)(range)}`;\n let res = this.freqs.links.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.links.set(key, res);\n }\n return res;\n }\n getTriangleFrequency(p1, p2, p3) {\n let [id1, id2, id3] = [p1.id, p2.id, p3.id];\n if (id1 > id2) {\n [id2, id1] = [id1, id2];\n }\n if (id2 > id3) {\n [id3, id2] = [id2, id3];\n }\n if (id1 > id3) {\n [id3, id1] = [id1, id3];\n }\n const key = `${id1}_${id2}_${id3}`;\n let res = this.freqs.triangles.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.triangles.set(key, res);\n }\n return res;\n }\n addManualParticles() {\n const container = this.container, options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle((0, NumberUtils_1.calcPositionFromSize)({\n size: container.canvas.size,\n position: particle.position,\n }), particle.options);\n }\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 handleClickMode(mode) {\n this.interactionManager.handleClickMode(mode);\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, densityFactor = this.initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, 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 }\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, 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_1.Particle(__classPrivateFieldGet(this, _Particles_engine, \"f\"), 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 return particle;\n }\n catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}\nexports.Particles = Particles;\n_Particles_engine = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Retina = void 0;\nconst NumberUtils_1 = require(\"../Utils/NumberUtils\");\nconst Utils_1 = require(\"../Utils/Utils\");\nclass Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || (0, Utils_1.isSsr)() ? 1 : window.devicePixelRatio;\n const motionOptions = this.container.actualOptions.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n if ((0, Utils_1.isSsr)() || typeof matchMedia === \"undefined\" || !matchMedia) {\n this.reduceFactor = 1;\n }\n else {\n const mediaQuery = matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this.handleMotionChange(mediaQuery);\n const handleChange = () => {\n this.handleMotionChange(mediaQuery);\n container.refresh().catch(() => {\n });\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n }\n else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n }\n }\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 = (0, NumberUtils_1.getRangeValue)(particles.move.attract.distance) * ratio;\n this.linksDistance = particles.links.distance * ratio;\n this.linksWidth = particles.links.width * ratio;\n this.sizeAnimationSpeed = (0, NumberUtils_1.getRangeValue)(particles.size.animation.speed) * ratio;\n this.maxSpeed = (0, NumberUtils_1.getRangeValue)(particles.move.gravity.maxSpeed) * ratio;\n const modes = options.interactivity.modes;\n this.connectModeDistance = modes.connect.distance * ratio;\n this.connectModeRadius = modes.connect.radius * ratio;\n this.grabModeDistance = modes.grab.distance * ratio;\n this.repulseModeDistance = modes.repulse.distance * ratio;\n this.bounceModeDistance = modes.bounce.distance * ratio;\n this.attractModeDistance = modes.attract.distance * ratio;\n this.slowModeRadius = modes.slow.radius * ratio;\n this.bubbleModeDistance = modes.bubble.distance * ratio;\n if (modes.bubble.size) {\n this.bubbleModeSize = modes.bubble.size * ratio;\n }\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveDistance = options.move.distance, props = particle.retina;\n props.attractDistance = (0, NumberUtils_1.getRangeValue)(options.move.attract.distance) * ratio;\n props.linksDistance = options.links.distance * ratio;\n props.linksWidth = options.links.width * ratio;\n props.moveDrift = (0, NumberUtils_1.getRangeValue)(options.move.drift) * ratio;\n props.moveSpeed = (0, NumberUtils_1.getRangeValue)(options.move.speed) * ratio;\n props.sizeAnimationSpeed = (0, NumberUtils_1.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 = (0, NumberUtils_1.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 }\n else {\n this.reduceFactor = 1;\n }\n }\n}\nexports.Retina = Retina;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Circle = void 0;\nconst Range_1 = require(\"./Range\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass Circle extends Range_1.Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return (0, NumberUtils_1.getDistance)(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range, circle = range, pos1 = this.position, pos2 = range.position, xDist = Math.abs(pos2.x - pos1.x), yDist = Math.abs(pos2.y - pos1.y), r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius, dist = Math.sqrt(xDist * xDist + yDist + yDist);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width, h = rect.size.height, edges = Math.pow(xDist - w, 2) + Math.pow(yDist - h, 2);\n if (xDist > r + w || yDist > r + h) {\n return false;\n }\n if (xDist <= w || yDist <= h) {\n return true;\n }\n return edges <= r * r;\n }\n return false;\n }\n}\nexports.Circle = Circle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CircleWarp = void 0;\nconst Circle_1 = require(\"./Circle\");\nconst Rectangle_1 = require(\"./Rectangle\");\nclass CircleWarp extends Circle_1.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, circle = range, 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_1.Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle_1.Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\nexports.CircleWarp = CircleWarp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Constants = void 0;\nclass Constants {\n}\nexports.Constants = Constants;\nConstants.generatedAttribute = \"generated\";\nConstants.randomColorValue = \"random\";\nConstants.midColorValue = \"mid\";\nConstants.touchEndEvent = \"touchend\";\nConstants.mouseDownEvent = \"mousedown\";\nConstants.mouseUpEvent = \"mouseup\";\nConstants.mouseMoveEvent = \"mousemove\";\nConstants.touchStartEvent = \"touchstart\";\nConstants.touchMoveEvent = \"touchmove\";\nConstants.mouseLeaveEvent = \"mouseleave\";\nConstants.mouseOutEvent = \"mouseout\";\nConstants.touchCancelEvent = \"touchcancel\";\nConstants.resizeEvent = \"resize\";\nConstants.visibilityChangeEvent = \"visibilitychange\";\nConstants.noPolygonDataLoaded = \"No polygon data loaded.\";\nConstants.noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventListeners = void 0;\nconst Constants_1 = require(\"./Constants\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nclass 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 manageListeners(add) {\n var _a;\n const container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn;\n let mouseLeaveEvent = Constants_1.Constants.mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveEvent = Constants_1.Constants.mouseOutEvent;\n }\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 }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = !(0, Utils_1.isSsr)() && typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", this.themeChangeHandler, add);\n }\n else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(this.oldThemeChangeHandler);\n }\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, Constants_1.Constants.mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndHandler, add);\n }\n else {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.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 }\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 }\n else {\n manageListener(window, Constants_1.Constants.resizeEvent, this.resizeHandler, add);\n }\n }\n if (document) {\n manageListener(document, Constants_1.Constants.visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(async () => { var _a; return await ((_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize()); }, 500);\n }\n handleVisibilityChange() {\n const container = this.container, 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 }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw(true);\n }\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 mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container, 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(\"mouse\")) {\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 }\n else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target;\n const target = mouseEvent.currentTarget;\n const canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const 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 }\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 }\n else {\n 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 }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const 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 = Constants_1.Constants.mouseMoveEvent;\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 = Constants_1.Constants.mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchClick(e) {\n const container = this.container, options = container.actualOptions, 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 doMouseTouchClick(e) {\n const container = this.container, 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 = {\n x: mousePos.x,\n y: mousePos.y,\n };\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n if (onClick.mode instanceof Array) {\n for (const mode of onClick.mode) {\n this.handleClickMode(mode);\n }\n }\n else {\n this.handleClickMode(onClick.mode);\n }\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleThemeChange(e) {\n const mediaEvent = e, themeName = mediaEvent.matches\n ? this.container.options.defaultDarkTheme\n : this.container.options.defaultLightTheme, theme = this.container.options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n this.container.loadTheme(themeName);\n }\n }\n handleClickMode(mode) {\n this.container.handleClickMode(mode);\n }\n}\nexports.EventListeners = EventListeners;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExternalInteractorBase = void 0;\nclass ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 0;\n }\n}\nexports.ExternalInteractorBase = ExternalInteractorBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrameManager = void 0;\nclass 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.lastFrameTime !== undefined &&\n 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 deltaValue = timestamp - container.lastFrameTime, delta = {\n value: deltaValue,\n factor: (60 * deltaValue) / 1000,\n };\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (deltaValue > 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 }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\nexports.FrameManager = FrameManager;\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _InteractionManager_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InteractionManager = void 0;\nclass InteractionManager {\n constructor(engine, container) {\n this.container = container;\n _InteractionManager_engine.set(this, void 0);\n __classPrivateFieldSet(this, _InteractionManager_engine, engine, \"f\");\n this.externalInteractors = [];\n this.particleInteractors = [];\n this.init();\n }\n init() {\n const interactors = __classPrivateFieldGet(this, _InteractionManager_engine, \"f\").plugins.getInteractors(this.container, true);\n this.externalInteractors = [];\n this.particleInteractors = [];\n for (const interactor of 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 }\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 async particlesInteract(particle, delta) {\n for (const interactor of this.externalInteractors) {\n interactor.reset(particle);\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.interact(particle, 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}\nexports.InteractionManager = InteractionManager;\n_InteractionManager_engine = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParticlesInteractorBase = void 0;\nclass ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 1;\n }\n}\nexports.ParticlesInteractorBase = ParticlesInteractorBase;\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Plugins_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Plugins = void 0;\nclass Plugins {\n constructor(engine) {\n _Plugins_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Plugins_engine, engine, \"f\");\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 getPlugin(plugin) {\n return this.plugins.find((t) => t.id === plugin);\n }\n addPlugin(plugin) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\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 loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n addPreset(presetKey, options, override = false) {\n if (override || !this.getPreset(presetKey)) {\n this.presets.set(presetKey, options);\n }\n }\n getShapeDrawer(type) {\n return this.drawers.get(type);\n }\n addShapeDrawer(type, drawer) {\n if (!this.getShapeDrawer(type)) {\n this.drawers.set(type, drawer);\n }\n }\n getSupportedShapes() {\n return this.drawers.keys();\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n addPathGenerator(type, pathGenerator) {\n if (!this.getPathGenerator(type)) {\n this.pathGenerators.set(type, pathGenerator);\n }\n }\n getInteractors(container, force = false) {\n let res = this.interactors.get(container);\n if (!res || force) {\n res = [...this.interactorsInitializers.values()].map((t) => t(container));\n this.interactors.set(container, res);\n }\n return res;\n }\n addInteractor(name, initInteractor) {\n this.interactorsInitializers.set(name, initInteractor);\n }\n getUpdaters(container, force = false) {\n let res = this.updaters.get(container);\n if (!res || force) {\n res = [...this.updatersInitializers.values()].map((t) => t(container));\n this.updaters.set(container, res);\n }\n return res;\n }\n addParticleUpdater(name, initUpdater) {\n this.updatersInitializers.set(name, initUpdater);\n }\n getMovers(container, force = false) {\n let res = this.movers.get(container);\n if (!res || force) {\n res = [...this.moversInitializers.values()].map((t) => t(container));\n this.movers.set(container, res);\n }\n return res;\n }\n addParticleMover(name, initMover) {\n this.moversInitializers.set(name, initMover);\n }\n}\nexports.Plugins = Plugins;\n_Plugins_engine = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Point = void 0;\nclass Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\nexports.Point = Point;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuadTree = void 0;\nconst Circle_1 = require(\"./Circle\");\nconst CircleWarp_1 = require(\"./CircleWarp\");\nconst Rectangle_1 = require(\"./Rectangle\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass 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)) ||\n ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) ||\n ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) ||\n ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n queryCircle(position, radius) {\n return this.query(new Circle_1.Circle(position.x, position.y, radius));\n }\n queryCircleWarp(position, radius, containerOrSize) {\n const container = containerOrSize, size = containerOrSize;\n return this.query(new CircleWarp_1.CircleWarp(position.x, position.y, radius, container.canvas !== undefined ? container.canvas.size : size));\n }\n queryRectangle(position, size) {\n return this.query(new Rectangle_1.Rectangle(position.x, position.y, size.width, size.height));\n }\n query(range, 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) && (0, NumberUtils_1.getDistance)(range.position, p.position) > p.particle.getRadius()) {\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, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, res);\n }\n return res;\n }\n subdivide() {\n const x = this.rectangle.position.x, y = this.rectangle.position.y, w = this.rectangle.size.width, h = this.rectangle.size.height, capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle_1.Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle_1.Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n}\nexports.QuadTree = QuadTree;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Range = void 0;\nclass Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\nexports.Range = Range;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rectangle = void 0;\nconst Range_1 = require(\"./Range\");\nclass Rectangle extends Range_1.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, h = this.size.height, 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 const rect = range, circle = range, w = this.size.width, h = this.size.height, pos1 = this.position, pos2 = range.position;\n if (circle.radius !== undefined) {\n return circle.intersects(this);\n }\n if (!rect.size) {\n return false;\n }\n const size2 = rect.size, w2 = size2.width, 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}\nexports.Rectangle = Rectangle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vector = void 0;\nclass Vector {\n constructor(xOrCoords, y) {\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n }\n else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\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 static get origin() {\n return Vector.create(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 add(v) {\n return Vector.create(this.x + v.x, this.y + v.y);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n }\n sub(v) {\n return Vector.create(this.x - v.x, this.y - v.y);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n }\n mult(n) {\n return Vector.create(this.x * n, this.y * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n }\n div(n) {\n return Vector.create(this.x / n, this.y / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n manhattanDistanceTo(v) {\n return Math.abs(v.x - this.x) + Math.abs(v.y - this.y);\n }\n copy() {\n return Vector.clone(this);\n }\n setTo(v) {\n this.x = v.x;\n this.y = v.y;\n }\n rotate(angle) {\n return Vector.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle));\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}\nexports.Vector = Vector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vector3d = void 0;\nconst Vector_1 = require(\"./Vector\");\nclass Vector3d extends Vector_1.Vector {\n constructor(xOrCoords, y, z) {\n super(xOrCoords, y);\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.z = xOrCoords.z;\n }\n else if (z !== undefined) {\n this.z = z;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\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 static get origin() {\n return Vector3d.create(0, 0, 0);\n }\n add(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z) : super.add(v);\n }\n addTo(v) {\n super.addTo(v);\n if (v instanceof Vector3d) {\n this.z += v.z;\n }\n }\n sub(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z) : super.sub(v);\n }\n subFrom(v) {\n super.subFrom(v);\n if (v instanceof Vector3d) {\n this.z -= v.z;\n }\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n super.multTo(n);\n this.z *= n;\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n super.divTo(n);\n this.z /= n;\n }\n copy() {\n return Vector3d.clone(this);\n }\n setTo(v) {\n super.setTo(v);\n const v3d = v;\n if (v3d.z !== undefined) {\n this.z = v3d.z;\n }\n }\n}\nexports.Vector3d = Vector3d;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attractor = void 0;\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nconst Circle_1 = require(\"../../../Core/Utils/Circle\");\nconst Constants_1 = require(\"../../../Core/Utils/Constants\");\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst Vector_1 = require(\"../../../Core/Utils/Vector\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nclass Attractor extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions;\n if (mode !== \"attract\") {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\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 = { particles: [] };\n }\n container.attract.clicking = false;\n }\n }, options.interactivity.modes.attract.duration * 1000);\n };\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = 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, clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(\"attract\", hoverMode) || (0, Utils_1.isInArray)(\"attract\", clickMode);\n }\n reset() {\n }\n async interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Constants_1.Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(\"attract\", hoverMode)) {\n this.hoverAttract();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(\"attract\", clickMode)) {\n this.clickAttract();\n }\n }\n hoverAttract() {\n const container = this.container;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Circle_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n processAttract(position, attractRadius, area) {\n const container = this.container;\n const attractOptions = container.actualOptions.interactivity.modes.attract;\n const query = container.particles.quadTree.query(area);\n for (const particle of query) {\n const { dx, dy, distance } = (0, NumberUtils_1.getDistances)(particle.position, position);\n const velocity = attractOptions.speed * attractOptions.factor;\n const attractFactor = (0, NumberUtils_1.clamp)((0, NumberUtils_1.calcEasing)(1 - distance / attractRadius, attractOptions.easing) * velocity, 0, attractOptions.maxSpeed);\n const normVec = Vector_1.Vector.create(distance === 0 ? velocity : (dx / distance) * attractFactor, distance === 0 ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n }\n clickAttract() {\n const container = this.container;\n if (!container.attract) {\n container.attract = { particles: [] };\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 if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Circle_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n else if (container.attract.clicking === false) {\n container.attract.particles = [];\n }\n return;\n }\n}\nexports.Attractor = Attractor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalAttractInteraction = void 0;\nconst Attractor_1 = require(\"./Attractor\");\nasync function loadExternalAttractInteraction(engine) {\n await engine.addInteractor(\"externalAttract\", (container) => new Attractor_1.Attractor(container));\n}\nexports.loadExternalAttractInteraction = loadExternalAttractInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bouncer = void 0;\nconst Utils_1 = require(\"../../../Utils/Utils\");\nconst Circle_1 = require(\"../../../Core/Utils/Circle\");\nconst Constants_1 = require(\"../../../Core/Utils/Constants\");\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst Rectangle_1 = require(\"../../../Core/Utils/Rectangle\");\nconst Vector_1 = require(\"../../../Core/Utils/Vector\");\nclass Bouncer extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv;\n return ((mouse.position && events.onHover.enable && (0, Utils_1.isInArray)(\"bounce\", events.onHover.mode)) ||\n (0, Utils_1.isDivModeEnabled)(\"bounce\", divs));\n }\n async interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === Constants_1.Constants.mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(\"bounce\", hoverMode)) {\n this.processMouseBounce();\n }\n else {\n (0, Utils_1.divModeExecute)(\"bounce\", divs, (selector, div) => this.singleSelectorBounce(selector, div));\n }\n }\n reset() {\n }\n processMouseBounce() {\n const container = this.container, pxRatio = container.retina.pixelRatio, tolerance = 10 * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (mousePos) {\n this.processBounce(mousePos, radius, new Circle_1.Circle(mousePos.x, mousePos.y, radius + tolerance));\n }\n }\n singleSelectorBounce(selector, div) {\n const container = this.container, query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, radius = (elem.offsetWidth / 2) * pxRatio, tolerance = 10 * pxRatio, area = div.type === \"circle\"\n ? new Circle_1.Circle(pos.x, pos.y, radius + tolerance)\n : new Rectangle_1.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 processBounce(position, radius, area) {\n const query = this.container.particles.quadTree.query(area);\n for (const particle of query) {\n if (area instanceof Circle_1.Circle) {\n (0, Utils_1.circleBounce)((0, Utils_1.circleBounceDataFromParticle)(particle), {\n position,\n radius,\n mass: (radius ** 2 * Math.PI) / 2,\n velocity: Vector_1.Vector.origin,\n factor: Vector_1.Vector.origin,\n });\n }\n else if (area instanceof Rectangle_1.Rectangle) {\n (0, Utils_1.rectBounce)(particle, (0, Utils_1.calculateBounds)(position, radius));\n }\n }\n }\n}\nexports.Bouncer = Bouncer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalBounceInteraction = void 0;\nconst Bouncer_1 = require(\"./Bouncer\");\nasync function loadExternalBounceInteraction(engine) {\n await engine.addInteractor(\"externalBounce\", (container) => new Bouncer_1.Bouncer(container));\n}\nexports.loadExternalBounceInteraction = loadExternalBounceInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bubbler = void 0;\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nconst ColorUtils_1 = require(\"../../../Utils/ColorUtils\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nconst Circle_1 = require(\"../../../Core/Utils/Circle\");\nconst Constants_1 = require(\"../../../Core/Utils/Constants\");\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst Rectangle_1 = require(\"../../../Core/Utils/Rectangle\");\nfunction calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return (0, NumberUtils_1.clamp)(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return (0, NumberUtils_1.clamp)(value, modeValue, particleValue);\n }\n}\nclass Bubbler extends ExternalInteractorBase_1.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 isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv, divBubble = (0, Utils_1.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 (0, Utils_1.isInArray)(\"bubble\", hoverMode) || (0, Utils_1.isInArray)(\"bubble\", clickMode) || divBubble;\n }\n reset(particle, 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 async interact() {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && (0, Utils_1.isInArray)(\"bubble\", hoverMode)) {\n this.hoverBubble();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(\"bubble\", clickMode)) {\n this.clickBubble();\n }\n else {\n (0, Utils_1.divModeExecute)(\"bubble\", divs, (selector, div) => this.singleSelectorHover(selector, div));\n }\n }\n singleSelectorHover(selector, div) {\n const container = this.container, selectors = document.querySelectorAll(selector);\n if (!selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === \"circle\"\n ? new Circle_1.Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area);\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = container.actualOptions.interactivity.modes.bubble.divs;\n const divBubble = (0, Utils_1.divMode)(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.reset(particle, 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 process(particle, distMouse, timeSpent, data) {\n const container = this.container, bubbleParam = data.bubbleObj.optValue;\n if (bubbleParam === undefined) {\n return;\n }\n const options = container.actualOptions, bubbleDuration = options.interactivity.modes.bubble.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value || 0, type = data.type;\n if (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 }\n else {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\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 clickBubble() {\n var _a, _b;\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition;\n if (!mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mouseClickPos, distance);\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(), distMouse = (0, NumberUtils_1.getDistance)(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000;\n if (timeSpent > options.interactivity.modes.bubble.duration) {\n container.bubble.durationEnd = true;\n }\n if (timeSpent > options.interactivity.modes.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: (0, NumberUtils_1.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: options.interactivity.modes.bubble.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: (0, NumberUtils_1.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 <= container.retina.bubbleModeDistance) {\n this.hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n else {\n delete particle.bubble.color;\n }\n }\n }\n hoverBubble() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (mousePos === undefined) {\n return;\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = (0, NumberUtils_1.getDistance)(pos, mousePos), ratio = 1 - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= 0 && container.interactivity.status === Constants_1.Constants.mouseMoveEvent) {\n this.hoverBubbleSize(particle, ratio);\n this.hoverBubbleOpacity(particle, ratio);\n this.hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === Constants_1.Constants.mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n }\n hoverBubbleSize(particle, ratio, divBubble) {\n const container = this.container, 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 = (0, NumberUtils_1.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 hoverBubbleOpacity(particle, ratio, divBubble) {\n var _a, _b, _c;\n const container = this.container, options = container.actualOptions, modeOpacity = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.opacity) !== null && _a !== void 0 ? _a : options.interactivity.modes.bubble.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value;\n const pOpacity = (_c = (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1;\n const opacity = calculateBubbleValue(pOpacity, modeOpacity, (0, NumberUtils_1.getRangeMax)(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\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 (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = modeColor instanceof Array ? (0, Utils_1.itemFromArray)(modeColor) : modeColor;\n particle.bubble.finalColor = (0, ColorUtils_1.colorToHsl)(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\n ? (0, ColorUtils_1.rgbToHsl)((0, ColorUtils_1.colorMix)(pColor, particle.bubble.finalColor, 1 - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n }\n}\nexports.Bubbler = Bubbler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalBubbleInteraction = void 0;\nconst Bubbler_1 = require(\"./Bubbler\");\nasync function loadExternalBubbleInteraction(engine) {\n await engine.addInteractor(\"externalBubble\", (container) => new Bubbler_1.Bubbler(container));\n}\nexports.loadExternalBubbleInteraction = loadExternalBubbleInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connector = void 0;\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nclass Connector extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, mouse = container.interactivity.mouse, events = container.actualOptions.interactivity.events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return (0, Utils_1.isInArray)(\"connect\", events.onHover.mode);\n }\n reset() {\n }\n async interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"mousemove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = Math.abs(container.retina.connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance);\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(), distMax = Math.abs(container.retina.connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n container.canvas.drawConnectLine(p1, p2);\n }\n }\n ++i;\n }\n }\n }\n}\nexports.Connector = Connector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalConnectInteraction = void 0;\nconst Connector_1 = require(\"./Connector\");\nasync function loadExternalConnectInteraction(engine) {\n await engine.addInteractor(\"externalConnect\", (container) => new Connector_1.Connector(container));\n}\nexports.loadExternalConnectInteraction = loadExternalConnectInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grabber = void 0;\nconst ColorUtils_1 = require(\"../../../Utils/ColorUtils\");\nconst Constants_1 = require(\"../../../Core/Utils/Constants\");\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nclass Grabber extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled() {\n const container = this.container, mouse = container.interactivity.mouse, events = container.actualOptions.interactivity.events;\n return events.onHover.enable && !!mouse.position && (0, Utils_1.isInArray)(\"grab\", events.onHover.mode);\n }\n reset() {\n }\n async interact() {\n var _a;\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (!interactivity.events.onHover.enable || container.interactivity.status !== Constants_1.Constants.mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = (0, NumberUtils_1.getDistance)(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= 0) {\n continue;\n }\n const optColor = (_a = grabLineOptions.color) !== null && _a !== void 0 ? _a : particle.options.links.color;\n if (!container.particles.grabLineColor) {\n const linksOptions = options.interactivity.modes.grab.links;\n container.particles.grabLineColor = (0, ColorUtils_1.getLinkRandomColor)(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = (0, ColorUtils_1.getLinkColor)(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n return;\n }\n container.canvas.drawGrabLine(particle, colorLine, opacityLine, mousePos);\n }\n }\n}\nexports.Grabber = Grabber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalGrabInteraction = void 0;\nconst Grabber_1 = require(\"./Grabber\");\nasync function loadExternalGrabInteraction(engine) {\n await engine.addInteractor(\"externalGrab\", (container) => new Grabber_1.Grabber(container));\n}\nexports.loadExternalGrabInteraction = loadExternalGrabInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pauser = void 0;\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nclass Pauser extends ExternalInteractorBase_1.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 }\n else {\n container.play();\n }\n };\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n async interact() {\n }\n}\nexports.Pauser = Pauser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalPauseInteraction = void 0;\nconst Pauser_1 = require(\"./Pauser\");\nasync function loadExternalPauseInteraction(engine) {\n await engine.addInteractor(\"externalPause\", (container) => new Pauser_1.Pauser(container));\n}\nexports.loadExternalPauseInteraction = loadExternalPauseInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pusher = void 0;\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nclass Pusher extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== \"push\") {\n return;\n }\n const container = this.container;\n const options = container.actualOptions;\n const pushNb = options.interactivity.modes.push.quantity;\n if (pushNb <= 0) {\n return;\n }\n const pushOptions = options.interactivity.modes.push;\n const group = (0, Utils_1.itemFromArray)([undefined, ...pushOptions.groups]);\n const groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n container.particles.push(pushNb, container.interactivity.mouse, groupOptions, group);\n };\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n async interact() {\n }\n}\nexports.Pusher = Pusher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalPushInteraction = void 0;\nconst Pusher_1 = require(\"./Pusher\");\nasync function loadExternalPushInteraction(engine) {\n await engine.addInteractor(\"externalPush\", (container) => new Pusher_1.Pusher(container));\n}\nexports.loadExternalPushInteraction = loadExternalPushInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Remover = void 0;\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nclass Remover extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== \"remove\") {\n return;\n }\n const container = this.container;\n const options = container.actualOptions;\n const removeNb = options.interactivity.modes.remove.quantity;\n container.particles.removeQuantity(removeNb);\n };\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n async interact() {\n }\n}\nexports.Remover = Remover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalRemoveInteraction = void 0;\nconst Remover_1 = require(\"./Remover\");\nasync function loadExternalRemoveInteraction(engine) {\n await engine.addInteractor(\"externalRemove\", (container) => new Remover_1.Remover(container));\n}\nexports.loadExternalRemoveInteraction = loadExternalRemoveInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Repulser = void 0;\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nconst Circle_1 = require(\"../../../Core/Utils/Circle\");\nconst Constants_1 = require(\"../../../Core/Utils/Constants\");\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst Rectangle_1 = require(\"../../../Core/Utils/Rectangle\");\nconst Vector_1 = require(\"../../../Core/Utils/Vector\");\nclass Repulser extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions;\n if (mode !== \"repulse\") {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n container.repulse.clicking = true;\n container.repulse.count = 0;\n for (const particle of container.repulse.particles) {\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 = { particles: [] };\n }\n container.repulse.clicking = false;\n }\n }, options.interactivity.modes.repulse.duration * 1000);\n };\n }\n isEnabled() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events, divs = events.onDiv, divRepulse = (0, Utils_1.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, clickMode = events.onClick.mode;\n return (0, Utils_1.isInArray)(\"repulse\", hoverMode) || (0, Utils_1.isInArray)(\"repulse\", clickMode) || divRepulse;\n }\n reset() {\n }\n async interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === Constants_1.Constants.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && (0, Utils_1.isInArray)(\"repulse\", hoverMode)) {\n this.hoverRepulse();\n }\n else if (clickEnabled && (0, Utils_1.isInArray)(\"repulse\", clickMode)) {\n this.clickRepulse();\n }\n else {\n (0, Utils_1.divModeExecute)(\"repulse\", divs, (selector, div) => this.singleSelectorRepulse(selector, div));\n }\n }\n singleSelectorRepulse(selector, div) {\n const container = this.container, query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === \"circle\"\n ? new Circle_1.Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = container.actualOptions.interactivity.modes.repulse.divs, divRepulse = (0, Utils_1.divMode)(divs, elem);\n this.processRepulse(pos, repulseRadius, area, divRepulse);\n });\n }\n hoverRepulse() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const repulseRadius = container.retina.repulseModeDistance;\n this.processRepulse(mousePos, repulseRadius, new Circle_1.Circle(mousePos.x, mousePos.y, repulseRadius));\n }\n processRepulse(position, repulseRadius, area, divRepulse) {\n var _a;\n const container = this.container, query = container.particles.quadTree.query(area), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n for (const particle of query) {\n const { dx, dy, distance } = (0, NumberUtils_1.getDistances)(particle.position, position), velocity = ((_a = divRepulse === null || divRepulse === void 0 ? void 0 : divRepulse.speed) !== null && _a !== void 0 ? _a : repulseOptions.speed) * repulseOptions.factor, repulseFactor = (0, NumberUtils_1.clamp)((0, NumberUtils_1.calcEasing)(1 - distance / repulseRadius, repulseOptions.easing) * velocity, 0, repulseOptions.maxSpeed), normVec = Vector_1.Vector.create(distance === 0 ? velocity : (dx / distance) * repulseFactor, distance === 0 ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n }\n clickRepulse() {\n const container = this.container;\n if (!container.repulse) {\n container.repulse = { particles: [] };\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, repulseRadius = Math.pow(repulseDistance / 6, 3), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle_1.Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range);\n for (const particle of query) {\n const { dx, dy, distance } = (0, NumberUtils_1.getDistances)(mouseClickPos, particle.position), d = distance ** 2, velocity = container.actualOptions.interactivity.modes.repulse.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n container.repulse.particles.push(particle);\n const vect = Vector_1.Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\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}\nexports.Repulser = Repulser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalRepulseInteraction = void 0;\nconst Repulser_1 = require(\"./Repulser\");\nasync function loadExternalRepulseInteraction(engine) {\n await engine.addInteractor(\"externalRepulse\", (container) => new Repulser_1.Repulser(container));\n}\nexports.loadExternalRepulseInteraction = loadExternalRepulseInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TrailMaker = void 0;\nconst ExternalInteractorBase_1 = require(\"../../../Core/Utils/ExternalInteractorBase\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nclass TrailMaker extends ExternalInteractorBase_1.ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.delay = 0;\n }\n async interact(delta) {\n var _a, _b, _c, _d;\n if (!this.container.retina.reduceFactor) {\n return;\n }\n const container = this.container, options = container.actualOptions, trailOptions = options.interactivity.modes.trail, 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 ||\n (((_a = container.interactivity.mouse.position) === null || _a === void 0 ? void 0 : _a.x) === ((_b = this.lastPosition) === null || _b === void 0 ? void 0 : _b.x) &&\n ((_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 }\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() {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events;\n return ((mouse.clicking && mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(\"trail\", events.onClick.mode)) ||\n (mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(\"trail\", events.onHover.mode)));\n }\n reset() {\n }\n}\nexports.TrailMaker = TrailMaker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadExternalTrailInteraction = void 0;\nconst TrailMaker_1 = require(\"./TrailMaker\");\nasync function loadExternalTrailInteraction(engine) {\n await engine.addInteractor(\"externalTrail\", (container) => new TrailMaker_1.TrailMaker(container));\n}\nexports.loadExternalTrailInteraction = loadExternalTrailInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attractor = void 0;\nconst ParticlesInteractorBase_1 = require(\"../../../Core/Utils/ParticlesInteractorBase\");\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nclass Attractor extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n async interact(p1) {\n var _a;\n const container = this.container, distance = (_a = p1.retina.attractDistance) !== null && _a !== void 0 ? _a : container.retina.attractDistance, pos1 = p1.getPosition(), 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(), { dx, dy } = (0, NumberUtils_1.getDistances)(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * 1000), ay = dy / (rotate.y * 1000), p1Factor = p2.size.value / p1.size.value, 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 }\n}\nexports.Attractor = Attractor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadParticlesAttractInteraction = void 0;\nconst Attractor_1 = require(\"./Attractor\");\nasync function loadParticlesAttractInteraction(engine) {\n await engine.addInteractor(\"particlesAttract\", (container) => new Attractor_1.Attractor(container));\n}\nexports.loadParticlesAttractInteraction = loadParticlesAttractInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collider = void 0;\nconst Utils_1 = require(\"../../../Utils/Utils\");\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nconst ParticlesInteractorBase_1 = require(\"../../../Core/Utils/ParticlesInteractorBase\");\nfunction bounce(p1, p2) {\n (0, Utils_1.circleBounce)((0, Utils_1.circleBounceDataFromParticle)(p1), (0, Utils_1.circleBounceDataFromParticle)(p2));\n}\nfunction 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 }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n p2.destroy();\n }\n else {\n p1.destroy();\n }\n }\n}\nclass Collider extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n async interact(p1) {\n const container = this.container, pos1 = p1.getPosition(), radius1 = p1.getRadius(), query = container.particles.quadTree.queryCircle(pos1, radius1 * 2);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (Math.round(pos1.z) !== Math.round(pos2.z)) {\n continue;\n }\n const dist = (0, NumberUtils_1.getDistance)(pos1, pos2), radius2 = p2.getRadius(), distP = radius1 + radius2;\n if (dist <= distP) {\n this.resolveCollision(p1, p2);\n }\n }\n }\n resolveCollision(p1, p2) {\n switch (p1.options.collisions.mode) {\n case \"absorb\":\n this.absorb(p1, p2);\n break;\n case \"bounce\":\n bounce(p1, p2);\n break;\n case \"destroy\":\n destroy(p1, p2);\n break;\n }\n }\n absorb(p1, p2) {\n const container = this.container, fps = container.fpsLimit / 1000;\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n const factor = (0, NumberUtils_1.clamp)(p1.getRadius() / p2.getRadius(), 0, p2.getRadius()) * fps;\n p1.size.value += factor;\n p2.size.value -= factor;\n if (p2.getRadius() <= container.retina.pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n }\n else {\n const factor = (0, NumberUtils_1.clamp)(p2.getRadius() / p1.getRadius(), 0, p1.getRadius()) * fps;\n p1.size.value -= factor;\n p2.size.value += factor;\n if (p1.getRadius() <= container.retina.pixelRatio) {\n p1.size.value = 0;\n p1.destroy();\n }\n }\n }\n }\n}\nexports.Collider = Collider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadParticlesCollisionsInteraction = void 0;\nconst Collider_1 = require(\"./Collider\");\nasync function loadParticlesCollisionsInteraction(engine) {\n await engine.addInteractor(\"particlesCollisions\", (container) => new Collider_1.Collider(container));\n}\nexports.loadParticlesCollisionsInteraction = loadParticlesCollisionsInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkInstance = void 0;\nconst ColorUtils_1 = require(\"../../../Utils/ColorUtils\");\nconst CanvasUtils_1 = require(\"../../../Utils/CanvasUtils\");\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nclass LinkInstance {\n constructor(container) {\n this.container = container;\n }\n particleCreated(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n particleDestroyed(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n drawParticle(context, particle) {\n const linkParticle = particle, container = this.container, particles = container.particles, pOptions = particle.options;\n if (linkParticle.links.length <= 0) {\n return;\n }\n context.save();\n const p1Links = linkParticle.links.filter((l) => {\n const linkFreq = container.particles.getLinkFrequency(linkParticle, l.destination);\n return linkFreq <= pOptions.links.frequency;\n });\n for (const link of p1Links) {\n const p2 = link.destination;\n if (pOptions.links.triangles.enable) {\n const links = p1Links.map((l) => l.destination), vertices = p2.links.filter((t) => {\n const linkFreq = container.particles.getLinkFrequency(p2, t.destination);\n return linkFreq <= p2.options.links.frequency && links.indexOf(t.destination) >= 0;\n });\n if (vertices.length) {\n for (const vertex of vertices) {\n const p3 = vertex.destination, triangleFreq = particles.getTriangleFrequency(linkParticle, p2, p3);\n if (triangleFreq > pOptions.links.triangles.frequency) {\n continue;\n }\n this.drawLinkTriangle(linkParticle, link, vertex);\n }\n }\n }\n if (link.opacity > 0 && container.retina.linksWidth > 0) {\n this.drawLinkLine(linkParticle, link);\n }\n }\n context.restore();\n }\n drawLinkTriangle(p1, link1, link2) {\n var _a;\n const container = this.container, options = container.actualOptions, p2 = link1.destination, p3 = link2.destination, triangleOptions = p1.options.links.triangles, opacityTriangle = (_a = triangleOptions.opacity) !== null && _a !== void 0 ? _a : (link1.opacity + link2.opacity) / 2;\n if (opacityTriangle <= 0) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition(), pos3 = p3.getPosition();\n container.canvas.draw((ctx) => {\n if ((0, NumberUtils_1.getDistance)(pos1, pos2) > container.retina.linksDistance ||\n (0, NumberUtils_1.getDistance)(pos3, pos2) > container.retina.linksDistance ||\n (0, NumberUtils_1.getDistance)(pos3, pos1) > container.retina.linksDistance) {\n return;\n }\n let colorTriangle = (0, ColorUtils_1.colorToRgb)(triangleOptions.color);\n if (!colorTriangle) {\n const linksOptions = p1.options.links, linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = (0, ColorUtils_1.getLinkColor)(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n (0, CanvasUtils_1.drawLinkTriangle)(ctx, pos1, pos2, pos3, options.backgroundMask.enable, options.backgroundMask.composite, colorTriangle, opacityTriangle);\n });\n }\n drawLinkLine(p1, link) {\n const container = this.container, options = container.actualOptions, p2 = link.destination, pos1 = p1.getPosition(), pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw((ctx) => {\n var _a, _b;\n let colorLine;\n const twinkle = p1.options.twinkle.lines;\n if (twinkle.enable) {\n const twinkleFreq = twinkle.frequency, twinkleRgb = (0, ColorUtils_1.colorToRgb)(twinkle.color), twinkling = Math.random() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = (0, NumberUtils_1.getRangeValue)(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linksOptions = p1.options.links, linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorLine = (0, ColorUtils_1.getLinkColor)(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, maxDistance = (_b = p1.retina.linksDistance) !== null && _b !== void 0 ? _b : container.retina.linksDistance;\n (0, CanvasUtils_1.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}\nexports.LinkInstance = LinkInstance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Linker = void 0;\nconst Circle_1 = require(\"../../../Core/Utils/Circle\");\nconst CircleWarp_1 = require(\"../../../Core/Utils/CircleWarp\");\nconst ParticlesInteractorBase_1 = require(\"../../../Core/Utils/ParticlesInteractorBase\");\nconst NumberUtils_1 = require(\"../../../Utils/NumberUtils\");\nconst ColorUtils_1 = require(\"../../../Utils/ColorUtils\");\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n let distance = (0, NumberUtils_1.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 = (0, NumberUtils_1.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 = (0, NumberUtils_1.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 = (0, NumberUtils_1.getDistance)(pos1, pos2SW);\n return distance;\n}\nclass Linker extends ParticlesInteractorBase_1.ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n isEnabled(particle) {\n return particle.options.links.enable;\n }\n reset() {\n }\n async interact(p1) {\n var _a;\n p1.links = [];\n const pos1 = p1.getPosition(), container = this.container, 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, optOpacity = linkOpt1.opacity, optDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : container.retina.linksDistance, warp = linkOpt1.warp, range = warp\n ? new CircleWarp_1.CircleWarp(pos1.x, pos1.y, optDistance, canvasSize)\n : new Circle_1.Circle(pos1.x, pos1.y, optDistance), query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n p1.links.map((t) => t.destination).indexOf(p2) !== -1 ||\n 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 setColor(p1) {\n const container = this.container, linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (!linkColor) {\n const optColor = linksOptions.color;\n linkColor = (0, ColorUtils_1.getLinkRandomColor)(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n }\n }\n}\nexports.Linker = Linker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadParticlesLinksInteraction = void 0;\nconst interaction_1 = require(\"./interaction\");\nconst plugin_1 = require(\"./plugin\");\nasync function loadParticlesLinksInteraction(engine) {\n await (0, interaction_1.loadInteraction)(engine);\n await (0, plugin_1.loadPlugin)(engine);\n}\nexports.loadParticlesLinksInteraction = loadParticlesLinksInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadInteraction = void 0;\nconst Linker_1 = require(\"./Linker\");\nasync function loadInteraction(engine) {\n await engine.addInteractor(\"particlesLinks\", (container) => new Linker_1.Linker(container));\n}\nexports.loadInteraction = loadInteraction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadPlugin = void 0;\nconst LinkInstance_1 = require(\"./LinkInstance\");\nclass LinksPlugin {\n constructor() {\n this.id = \"links\";\n }\n getPlugin(container) {\n return new LinkInstance_1.LinkInstance(container);\n }\n needsPlugin() {\n return true;\n }\n loadOptions() {\n }\n}\nasync function loadPlugin(engine) {\n const plugin = new LinksPlugin();\n await engine.addPlugin(plugin);\n}\nexports.loadPlugin = loadPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseMover = void 0;\nconst Utils_1 = require(\"./Utils\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass BaseMover {\n init(particle) {\n var _a;\n const container = particle.container, options = particle.options, spinOptions = options.move.spin;\n if (spinOptions.enable) {\n const spinPos = (_a = spinOptions.position) !== null && _a !== void 0 ? _a : { x: 50, y: 50 };\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 = (0, NumberUtils_1.getDistance)(pos, spinCenter);\n const spinAcceleration = (0, NumberUtils_1.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, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, slowFactor = (0, Utils_1.getProximitySpeedFactor)(particle), baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : (_d.moveSpeed = (0, NumberUtils_1.getRangeValue)(moveOptions.speed) * container.retina.pixelRatio)) *\n container.retina.reduceFactor, moveDrift = ((_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : (_e.moveDrift = (0, NumberUtils_1.getRangeValue)(particle.options.move.drift) * container.retina.pixelRatio)), maxSize = (0, NumberUtils_1.getRangeMax)(particleOptions.size.value) * container.retina.pixelRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, speedFactor = sizeFactor * slowFactor * (delta.factor || 1), diffFactor = 2, moveSpeed = (baseSpeed * speedFactor) / diffFactor;\n (0, Utils_1.applyPath)(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = gravityOptions.enable && gravityOptions.inverse ? -1 : 1;\n if (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), maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;\n if (gravityOptions.enable &&\n maxSpeed > 0 &&\n ((!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed) ||\n (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, zVelocityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n if (moveOptions.spin.enable) {\n (0, Utils_1.spin)(particle, moveSpeed);\n }\n else {\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 (0, Utils_1.applyDistance)(particle);\n }\n}\nexports.BaseMover = BaseMover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProximitySpeedFactor = exports.applyPath = exports.spin = exports.applyDistance = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nfunction applyDistance(particle) {\n const initialPosition = particle.initialPosition;\n const { dx, dy } = (0, NumberUtils_1.getDistances)(initialPosition, particle.position);\n const dxFixed = Math.abs(dx), dyFixed = Math.abs(dy);\n const hDistance = particle.retina.maxDistance.horizontal;\n const 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 }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance && ((pos.x < initialPosition.x && vel.x < 0) || (pos.x > initialPosition.x && vel.x > 0))) {\n vel.x *= -Math.random();\n }\n if (vDistance && ((pos.y < initialPosition.y && vel.y < 0) || (pos.y > initialPosition.y && vel.y > 0))) {\n vel.y *= -Math.random();\n }\n }\n}\nexports.applyDistance = applyDistance;\nfunction 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 }\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}\nexports.spin = spin;\nfunction applyPath(particle, delta) {\n const particlesOptions = particle.options;\n const pathOptions = particlesOptions.move.path;\n const pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n const container = particle.container;\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = container.pathGenerator.generate(particle);\n particle.velocity.addTo(path);\n if (pathOptions.clamp) {\n particle.velocity.x = (0, NumberUtils_1.clamp)(particle.velocity.x, -1, 1);\n particle.velocity.y = (0, NumberUtils_1.clamp)(particle.velocity.y, -1, 1);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexports.applyPath = applyPath;\nfunction getProximitySpeedFactor(particle) {\n const container = particle.container;\n const options = container.actualOptions;\n const active = (0, Utils_1.isInArray)(\"slow\", options.interactivity.events.onHover.mode);\n if (!active) {\n return 1;\n }\n const mousePos = particle.container.interactivity.mouse.position;\n if (!mousePos) {\n return 1;\n }\n const particlePos = particle.getPosition();\n const dist = (0, NumberUtils_1.getDistance)(mousePos, particlePos);\n const radius = container.retina.slowModeRadius;\n if (dist > radius) {\n return 1;\n }\n const proximityFactor = dist / radius || 0;\n const slowFactor = options.interactivity.modes.slow.factor;\n return proximityFactor / slowFactor;\n}\nexports.getProximitySpeedFactor = getProximitySpeedFactor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadBaseMover = void 0;\nconst BaseMover_1 = require(\"./BaseMover\");\nasync function loadBaseMover(engine) {\n engine.addMover(\"base\", () => new BaseMover_1.BaseMover());\n}\nexports.loadBaseMover = loadBaseMover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParallaxMover = void 0;\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass ParallaxMover {\n init() {\n }\n isEnabled(particle) {\n return (!(0, Utils_1.isSsr)() &&\n !particle.destroyed &&\n particle.container.actualOptions.interactivity.events.onHover.parallax.enable);\n }\n move(particle) {\n const container = particle.container, options = container.actualOptions;\n if ((0, Utils_1.isSsr)() || !options.interactivity.events.onHover.parallax.enable) {\n return;\n }\n const parallaxForce = options.interactivity.events.onHover.parallax.force, 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 }, parallaxSmooth = options.interactivity.events.onHover.parallax.smooth, factor = particle.getRadius() / parallaxForce, 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}\nexports.ParallaxMover = ParallaxMover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadParallaxMover = void 0;\nconst ParallaxMover_1 = require(\"./ParallaxMover\");\nasync function loadParallaxMover(engine) {\n engine.addMover(\"parallax\", () => new ParallaxMover_1.ParallaxMover());\n}\nexports.loadParallaxMover = loadParallaxMover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnimatableColor = void 0;\nconst HslAnimation_1 = require(\"./HslAnimation\");\nconst OptionsColor_1 = require(\"./OptionsColor\");\nclass AnimatableColor extends OptionsColor_1.OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation_1.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({ 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 }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\nexports.AnimatableColor = AnimatableColor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GradientColorOpacityAnimation = exports.GradientAngleAnimation = exports.AnimatableGradientColor = exports.GradientColorOpacity = exports.GradientAngle = exports.AnimatableGradient = void 0;\nconst AnimatableColor_1 = require(\"./AnimatableColor\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass AnimatableGradient {\n constructor() {\n this.angle = new GradientAngle();\n this.colors = [];\n this.type = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load(data.angle);\n if (data.colors !== undefined) {\n this.colors = data.colors.map((s) => {\n const tmp = new AnimatableGradientColor();\n tmp.load(s);\n return tmp;\n });\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexports.AnimatableGradient = AnimatableGradient;\nclass GradientAngle {\n constructor() {\n this.value = 0;\n this.animation = new GradientAngleAnimation();\n this.direction = \"clockwise\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n }\n}\nexports.GradientAngle = GradientAngle;\nclass GradientColorOpacity {\n constructor() {\n this.value = 0;\n this.animation = new GradientColorOpacityAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = (0, NumberUtils_1.setRangeValue)(data.value);\n }\n }\n}\nexports.GradientColorOpacity = GradientColorOpacity;\nclass AnimatableGradientColor {\n constructor() {\n this.stop = 0;\n this.value = new AnimatableColor_1.AnimatableColor();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.stop !== undefined) {\n this.stop = data.stop;\n }\n this.value = AnimatableColor_1.AnimatableColor.create(this.value, data.value);\n if (data.opacity !== undefined) {\n this.opacity = new GradientColorOpacity();\n if (typeof data.opacity === \"number\") {\n this.opacity.value = data.opacity;\n }\n else {\n this.opacity.load(data.opacity);\n }\n }\n }\n}\nexports.AnimatableGradientColor = AnimatableGradientColor;\nclass GradientAngleAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = (0, NumberUtils_1.setRangeValue)(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.GradientAngleAnimation = GradientAngleAnimation;\nclass GradientColorOpacityAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n this.startValue = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = (0, NumberUtils_1.setRangeValue)(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\nexports.GradientColorOpacityAnimation = GradientColorOpacityAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnimationOptions = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = (0, NumberUtils_1.setRangeValue)(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.AnimationOptions = AnimationOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Background = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nclass Background {\n constructor() {\n this.color = new OptionsColor_1.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 === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.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}\nexports.Background = Background;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackgroundMask = void 0;\nconst BackgroundMaskCover_1 = require(\"./BackgroundMaskCover\");\nclass BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover_1.BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (data === undefined) {\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\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.BackgroundMask = BackgroundMask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackgroundMaskCover = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nclass BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.BackgroundMaskCover = BackgroundMaskCover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ColorAnimation = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.sync = true;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = (0, NumberUtils_1.setRangeValue)(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = (0, NumberUtils_1.setRangeValue)(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.ColorAnimation = ColorAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FullScreen = void 0;\nclass 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}\nexports.FullScreen = FullScreen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HslAnimation = void 0;\nconst ColorAnimation_1 = require(\"./ColorAnimation\");\nclass HslAnimation {\n constructor() {\n this.h = new ColorAnimation_1.ColorAnimation();\n this.s = new ColorAnimation_1.ColorAnimation();\n this.l = new ColorAnimation_1.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}\nexports.HslAnimation = HslAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClickEvent = void 0;\nclass ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (data === undefined) {\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}\nexports.ClickEvent = ClickEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DivEvent = void 0;\nclass DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = \"circle\";\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\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}\nexports.DivEvent = DivEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Events = void 0;\nconst ClickEvent_1 = require(\"./ClickEvent\");\nconst DivEvent_1 = require(\"./DivEvent\");\nconst HoverEvent_1 = require(\"./HoverEvent\");\nclass Events {\n constructor() {\n this.onClick = new ClickEvent_1.ClickEvent();\n this.onDiv = new DivEvent_1.DivEvent();\n this.onHover = new HoverEvent_1.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 === undefined) {\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 if (onDiv instanceof Array) {\n this.onDiv = onDiv.map((div) => {\n const tmp = new DivEvent_1.DivEvent();\n tmp.load(div);\n return tmp;\n });\n }\n else {\n this.onDiv = new DivEvent_1.DivEvent();\n this.onDiv.load(onDiv);\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}\nexports.Events = Events;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HoverEvent = void 0;\nconst Parallax_1 = require(\"./Parallax\");\nclass HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax_1.Parallax();\n }\n load(data) {\n if (data === undefined) {\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}\nexports.HoverEvent = HoverEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parallax = void 0;\nclass Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (data === undefined) {\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}\nexports.Parallax = Parallax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Interactivity = void 0;\nconst Events_1 = require(\"./Events/Events\");\nconst Modes_1 = require(\"./Modes/Modes\");\nclass Interactivity {\n constructor() {\n this.detectsOn = \"window\";\n this.events = new Events_1.Events();\n this.modes = new Modes_1.Modes();\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, _b, _c;\n if (data === undefined) {\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 if (((_c = (_b = data.modes) === null || _b === void 0 ? void 0 : _b.slow) === null || _c === void 0 ? void 0 : _c.active) === true) {\n if (this.events.onHover.mode instanceof Array) {\n if (this.events.onHover.mode.indexOf(\"slow\") < 0) {\n this.events.onHover.mode.push(\"slow\");\n }\n }\n else if (this.events.onHover.mode !== \"slow\") {\n this.events.onHover.mode = [this.events.onHover.mode, \"slow\"];\n }\n }\n }\n}\nexports.Interactivity = Interactivity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attract = void 0;\nclass 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}\nexports.Attract = Attract;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bounce = void 0;\nclass 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}\nexports.Bounce = Bounce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bubble = void 0;\nconst BubbleBase_1 = require(\"./BubbleBase\");\nconst BubbleDiv_1 = require(\"./BubbleDiv\");\nclass Bubble extends BubbleBase_1.BubbleBase {\n load(data) {\n super.load(data);\n if (!(data !== undefined && data.divs !== undefined)) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new BubbleDiv_1.BubbleDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new BubbleDiv_1.BubbleDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Bubble = Bubble;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BubbleBase = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (data === undefined) {\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 if (data.color instanceof Array) {\n this.color = data.color.map((s) => OptionsColor_1.OptionsColor.create(undefined, s));\n }\n else {\n if (this.color instanceof Array) {\n this.color = new OptionsColor_1.OptionsColor();\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\nexports.BubbleBase = BubbleBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BubbleDiv = void 0;\nconst BubbleBase_1 = require(\"./BubbleBase\");\nclass BubbleDiv extends BubbleBase_1.BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\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}\nexports.BubbleDiv = BubbleDiv;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connect = void 0;\nconst ConnectLinks_1 = require(\"./ConnectLinks\");\nclass Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks_1.ConnectLinks();\n this.radius = 60;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\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}\nexports.Connect = Connect;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectLinks = void 0;\nclass ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!(data !== undefined && data.opacity !== undefined)) {\n return;\n }\n this.opacity = data.opacity;\n }\n}\nexports.ConnectLinks = ConnectLinks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grab = void 0;\nconst GrabLinks_1 = require(\"./GrabLinks\");\nclass Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks_1.GrabLinks();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\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}\nexports.Grab = Grab;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrabLinks = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.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}\nexports.GrabLinks = GrabLinks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Light = void 0;\nconst LightArea_1 = require(\"./LightArea\");\nconst LightShadow_1 = require(\"./LightShadow\");\nclass Light {\n constructor() {\n this.area = new LightArea_1.LightArea();\n this.shadow = new LightShadow_1.LightShadow();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.area.load(data.area);\n this.shadow.load(data.shadow);\n }\n}\nexports.Light = Light;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightArea = void 0;\nconst LightGradient_1 = require(\"./LightGradient\");\nclass LightArea {\n constructor() {\n this.gradient = new LightGradient_1.LightGradient();\n this.radius = 1000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.gradient.load(data.gradient);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.LightArea = LightArea;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightGradient = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LightGradient {\n constructor() {\n this.start = new OptionsColor_1.OptionsColor();\n this.stop = new OptionsColor_1.OptionsColor();\n this.start.value = \"#ffffff\";\n this.stop.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.start = OptionsColor_1.OptionsColor.create(this.start, data.start);\n this.stop = OptionsColor_1.OptionsColor.create(this.stop, data.stop);\n }\n}\nexports.LightGradient = LightGradient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightShadow = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LightShadow {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#000000\";\n this.length = 2000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.LightShadow = LightShadow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Modes = void 0;\nconst Attract_1 = require(\"./Attract\");\nconst Bounce_1 = require(\"./Bounce\");\nconst Bubble_1 = require(\"./Bubble\");\nconst Connect_1 = require(\"./Connect\");\nconst Grab_1 = require(\"./Grab\");\nconst Light_1 = require(\"./Light\");\nconst Push_1 = require(\"./Push\");\nconst Remove_1 = require(\"./Remove\");\nconst Repulse_1 = require(\"./Repulse\");\nconst Slow_1 = require(\"./Slow\");\nconst Trail_1 = require(\"./Trail\");\nclass Modes {\n constructor() {\n this.attract = new Attract_1.Attract();\n this.bounce = new Bounce_1.Bounce();\n this.bubble = new Bubble_1.Bubble();\n this.connect = new Connect_1.Connect();\n this.grab = new Grab_1.Grab();\n this.light = new Light_1.Light();\n this.push = new Push_1.Push();\n this.remove = new Remove_1.Remove();\n this.repulse = new Repulse_1.Repulse();\n this.slow = new Slow_1.Slow();\n this.trail = new Trail_1.Trail();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.attract.load(data.attract);\n this.bubble.load(data.bubble);\n this.connect.load(data.connect);\n this.grab.load(data.grab);\n this.light.load(data.light);\n this.push.load(data.push);\n this.remove.load(data.remove);\n this.repulse.load(data.repulse);\n this.slow.load(data.slow);\n this.trail.load(data.trail);\n }\n}\nexports.Modes = Modes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Push = void 0;\nclass 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 === undefined) {\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}\nexports.Push = Push;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Remove = void 0;\nclass 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 === undefined) {\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}\nexports.Remove = Remove;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Repulse = void 0;\nconst RepulseBase_1 = require(\"./RepulseBase\");\nconst RepulseDiv_1 = require(\"./RepulseDiv\");\nclass Repulse extends RepulseBase_1.RepulseBase {\n load(data) {\n super.load(data);\n if ((data === null || data === void 0 ? void 0 : data.divs) === undefined) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new RepulseDiv_1.RepulseDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new RepulseDiv_1.RepulseDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Repulse = Repulse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RepulseBase = void 0;\nclass 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}\nexports.RepulseBase = RepulseBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RepulseDiv = void 0;\nconst RepulseBase_1 = require(\"./RepulseBase\");\nclass RepulseDiv extends RepulseBase_1.RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map(() => `#${value}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\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}\nexports.RepulseDiv = RepulseDiv;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slow = void 0;\nclass Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n get active() {\n return false;\n }\n set active(_value) {\n }\n load(data) {\n if (data === undefined) {\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}\nexports.Slow = Slow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Trail = void 0;\nconst Utils_1 = require(\"../../../../Utils/Utils\");\nclass Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (data === undefined) {\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 = (0, Utils_1.deepExtend)({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}\nexports.Trail = Trail;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ManualParticle = void 0;\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass 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 = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.ManualParticle = ManualParticle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Motion = void 0;\nconst MotionReduce_1 = require(\"./MotionReduce\");\nclass Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce_1.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}\nexports.Motion = Motion;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MotionReduce = void 0;\nclass 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}\nexports.MotionReduce = MotionReduce;\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Options_instances, _Options_engine, _Options_findDefaultTheme;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Options = void 0;\nconst Background_1 = require(\"./Background/Background\");\nconst BackgroundMask_1 = require(\"./BackgroundMask/BackgroundMask\");\nconst FullScreen_1 = require(\"./FullScreen/FullScreen\");\nconst Interactivity_1 = require(\"./Interactivity/Interactivity\");\nconst ManualParticle_1 = require(\"./ManualParticle\");\nconst Motion_1 = require(\"./Motion/Motion\");\nconst ParticlesOptions_1 = require(\"./Particles/ParticlesOptions\");\nconst Responsive_1 = require(\"./Responsive\");\nconst Theme_1 = require(\"./Theme/Theme\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass Options {\n constructor(engine) {\n _Options_instances.add(this);\n _Options_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Options_engine, engine, \"f\");\n this.autoPlay = true;\n this.background = new Background_1.Background();\n this.backgroundMask = new BackgroundMask_1.BackgroundMask();\n this.fullScreen = new FullScreen_1.FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity_1.Interactivity();\n this.manualParticles = [];\n this.motion = new Motion_1.Motion();\n this.particles = new ParticlesOptions_1.ParticlesOptions();\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\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 get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (data === undefined) {\n return;\n }\n if (data.preset !== undefined) {\n if (data.preset instanceof Array) {\n for (const preset of data.preset) {\n this.importPreset(preset);\n }\n }\n else {\n this.importPreset(data.preset);\n }\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 }\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_1.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 = (0, Utils_1.deepExtend)(this.style, data.style);\n __classPrivateFieldGet(this, _Options_engine, \"f\").plugins.loadOptions(this, data);\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive_1.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_1.Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n this.defaultDarkTheme = (_d = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"dark\")) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultLightTheme = (_e = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"light\")) === null || _e === void 0 ? void 0 : _e.name;\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 }\n else {\n const mediaMatch = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find((t) => t.mode === \"screen\" && screen\n ? t.maxWidth * pxRatio > screen.availWidth\n : 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 importPreset(preset) {\n this.load(__classPrivateFieldGet(this, _Options_engine, \"f\").plugins.getPreset(preset));\n }\n}\nexports.Options = Options;\n_Options_engine = new WeakMap(), _Options_instances = new WeakSet(), _Options_findDefaultTheme = function _Options_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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsColor = void 0;\nclass OptionsColor {\n constructor() {\n this.value = \"#fff\";\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({ 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}\nexports.OptionsColor = OptionsColor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bounce = void 0;\nconst BounceFactor_1 = require(\"./BounceFactor\");\nclass Bounce {\n constructor() {\n this.horizontal = new BounceFactor_1.BounceFactor();\n this.vertical = new BounceFactor_1.BounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\nexports.Bounce = Bounce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BounceFactor = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass BounceFactor extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\nexports.BounceFactor = BounceFactor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collisions = void 0;\nconst Bounce_1 = require(\"../Bounce/Bounce\");\nconst CollisionsOverlap_1 = require(\"./CollisionsOverlap\");\nclass Collisions {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.enable = false;\n this.mode = \"bounce\";\n this.overlap = new CollisionsOverlap_1.CollisionsOverlap();\n }\n load(data) {\n if (data === undefined) {\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}\nexports.Collisions = Collisions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CollisionsOverlap = void 0;\nclass 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}\nexports.CollisionsOverlap = CollisionsOverlap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Destroy = void 0;\nconst Split_1 = require(\"./Split\");\nclass Destroy {\n constructor() {\n this.mode = \"none\";\n this.split = new Split_1.Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.split.load(data.split);\n }\n}\nexports.Destroy = Destroy;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Split = void 0;\nconst SplitFactor_1 = require(\"./SplitFactor\");\nconst SplitRate_1 = require(\"./SplitRate\");\nconst Utils_1 = require(\"../../../../Utils/Utils\");\nclass Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor_1.SplitFactor();\n this.rate = new SplitRate_1.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 if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.particles);\n }\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n }\n}\nexports.Split = Split;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitFactor = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass SplitFactor extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}\nexports.SplitFactor = SplitFactor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitRate = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass SplitRate extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = { min: 4, max: 9 };\n }\n}\nexports.SplitRate = SplitRate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Life = void 0;\nconst LifeDelay_1 = require(\"./LifeDelay\");\nconst LifeDuration_1 = require(\"./LifeDuration\");\nclass Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay_1.LifeDelay();\n this.duration = new LifeDuration_1.LifeDuration();\n }\n load(data) {\n if (data === undefined) {\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}\nexports.Life = Life;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LifeDelay = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass LifeDelay extends ValueWithRandom_1.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}\nexports.LifeDelay = LifeDelay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LifeDuration = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass LifeDuration extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.LifeDuration = LifeDuration;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Links = void 0;\nconst LinksShadow_1 = require(\"./LinksShadow\");\nconst LinksTriangle_1 = require(\"./LinksTriangle\");\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor_1.OptionsColor();\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_1.LinksShadow();\n this.triangles = new LinksTriangle_1.LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (data === undefined) {\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_1.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}\nexports.Links = Links;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinksShadow = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.color.value = \"#00ff00\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.LinksShadow = LinksShadow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinksTriangle = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.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}\nexports.LinksTriangle = LinksTriangle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attract = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Attract {\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 = (0, NumberUtils_1.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}\nexports.Attract = Attract;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Move = void 0;\nconst Attract_1 = require(\"./Attract\");\nconst MoveAngle_1 = require(\"./MoveAngle\");\nconst MoveGravity_1 = require(\"./MoveGravity\");\nconst OutModes_1 = require(\"./OutModes\");\nconst Path_1 = require(\"./Path/Path\");\nconst Spin_1 = require(\"./Spin\");\nconst Trail_1 = require(\"./Trail\");\nconst Utils_1 = require(\"../../../../Utils/Utils\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Move {\n constructor() {\n this.angle = new MoveAngle_1.MoveAngle();\n this.attract = new Attract_1.Attract();\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity_1.MoveGravity();\n this.path = new Path_1.Path();\n this.outModes = new OutModes_1.OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin_1.Spin();\n this.straight = false;\n this.trail = new Trail_1.Trail();\n this.vibrate = false;\n this.warp = false;\n }\n get collisions() {\n return false;\n }\n set collisions(value) {\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n if (data.angle !== undefined) {\n if (typeof data.angle === \"number\") {\n this.angle.value = data.angle;\n }\n else {\n this.angle.load(data.angle);\n }\n }\n this.attract.load(data.attract);\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 =\n typeof data.distance === \"number\"\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : (0, Utils_1.deepExtend)({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = (0, NumberUtils_1.setRangeValue)(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outMode = (_a = data.outMode) !== null && _a !== void 0 ? _a : data.out_mode;\n if (data.outModes !== undefined || outMode !== undefined) {\n if (typeof data.outModes === \"string\" || (data.outModes === undefined && outMode !== undefined)) {\n this.outModes.load({\n default: (_b = data.outModes) !== null && _b !== void 0 ? _b : outMode,\n });\n }\n else {\n this.outModes.load(data.outModes);\n }\n }\n this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : 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 = (0, NumberUtils_1.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}\nexports.Move = Move;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveAngle = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = (0, NumberUtils_1.setRangeValue)(data.offset);\n }\n if (data.value !== undefined) {\n this.value = (0, NumberUtils_1.setRangeValue)(data.value);\n }\n }\n}\nexports.MoveAngle = MoveAngle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveGravity = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass 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 = (0, NumberUtils_1.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 = (0, NumberUtils_1.setRangeValue)(data.maxSpeed);\n }\n }\n}\nexports.MoveGravity = MoveGravity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutModes = void 0;\nclass 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}\nexports.OutModes = OutModes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Path = void 0;\nconst PathDelay_1 = require(\"./PathDelay\");\nconst Utils_1 = require(\"../../../../../Utils/Utils\");\nclass Path {\n constructor() {\n this.clamp = true;\n this.delay = new PathDelay_1.PathDelay();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (data === undefined) {\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 = (0, Utils_1.deepExtend)(this.options, data.options);\n }\n }\n}\nexports.Path = Path;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathDelay = void 0;\nconst ValueWithRandom_1 = require(\"../../../ValueWithRandom\");\nclass PathDelay extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n }\n}\nexports.PathDelay = PathDelay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Spin = void 0;\nconst Utils_1 = require(\"../../../../Utils/Utils\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass 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 = (0, NumberUtils_1.setRangeValue)(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? (0, Utils_1.deepExtend)({}, data.position) : undefined;\n }\n}\nexports.Spin = Spin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Trail = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass Trail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor_1.OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor_1.OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.Trail = Trail;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Density = void 0;\nclass Density {\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 === undefined) {\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}\nexports.Density = Density;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParticlesNumber = void 0;\nconst Density_1 = require(\"./Density\");\nclass ParticlesNumber {\n constructor() {\n this.density = new Density_1.Density();\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 === undefined) {\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}\nexports.ParticlesNumber = ParticlesNumber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Opacity = void 0;\nconst OpacityAnimation_1 = require(\"./OpacityAnimation\");\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Opacity extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation_1.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 = (0, NumberUtils_1.setRangeValue)(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\nexports.Opacity = Opacity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpacityAnimation = void 0;\nconst AnimationOptions_1 = require(\"../../AnimationOptions\");\nclass OpacityAnimation extends AnimationOptions_1.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 === undefined) {\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}\nexports.OpacityAnimation = OpacityAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Orbit = void 0;\nconst AnimationOptions_1 = require(\"../../AnimationOptions\");\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nconst OrbitRotation_1 = require(\"./OrbitRotation\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Orbit {\n constructor() {\n this.animation = new AnimationOptions_1.AnimationOptions();\n this.enable = false;\n this.opacity = 1;\n this.rotation = new OrbitRotation_1.OrbitRotation();\n this.width = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.animation.load(data.animation);\n this.rotation.load(data.rotation);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.opacity !== undefined) {\n this.opacity = (0, NumberUtils_1.setRangeValue)(data.opacity);\n }\n if (data.width !== undefined) {\n this.width = (0, NumberUtils_1.setRangeValue)(data.width);\n }\n if (data.radius !== undefined) {\n this.radius = (0, NumberUtils_1.setRangeValue)(data.radius);\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n }\n}\nexports.Orbit = Orbit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OrbitRotation = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass OrbitRotation extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.value = 45;\n this.random.enable = false;\n this.random.minimumValue = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n }\n}\nexports.OrbitRotation = OrbitRotation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParticlesOptions = void 0;\nconst AnimatableColor_1 = require(\"../AnimatableColor\");\nconst AnimatableGradient_1 = require(\"../AnimatableGradient\");\nconst Bounce_1 = require(\"./Bounce/Bounce\");\nconst Collisions_1 = require(\"./Collisions/Collisions\");\nconst Destroy_1 = require(\"./Destroy/Destroy\");\nconst Life_1 = require(\"./Life/Life\");\nconst Links_1 = require(\"./Links/Links\");\nconst Move_1 = require(\"./Move/Move\");\nconst Opacity_1 = require(\"./Opacity/Opacity\");\nconst Orbit_1 = require(\"./Orbit/Orbit\");\nconst ParticlesNumber_1 = require(\"./Number/ParticlesNumber\");\nconst Repulse_1 = require(\"./Repulse/Repulse\");\nconst Roll_1 = require(\"./Roll/Roll\");\nconst Rotate_1 = require(\"./Rotate/Rotate\");\nconst Shadow_1 = require(\"./Shadow\");\nconst Shape_1 = require(\"./Shape/Shape\");\nconst Size_1 = require(\"./Size/Size\");\nconst Stroke_1 = require(\"./Stroke\");\nconst Tilt_1 = require(\"./Tilt/Tilt\");\nconst Twinkle_1 = require(\"./Twinkle/Twinkle\");\nconst Wobble_1 = require(\"./Wobble/Wobble\");\nconst ZIndex_1 = require(\"./ZIndex/ZIndex\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nclass ParticlesOptions {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.collisions = new Collisions_1.Collisions();\n this.color = new AnimatableColor_1.AnimatableColor();\n this.destroy = new Destroy_1.Destroy();\n this.gradient = [];\n this.groups = {};\n this.life = new Life_1.Life();\n this.links = new Links_1.Links();\n this.move = new Move_1.Move();\n this.number = new ParticlesNumber_1.ParticlesNumber();\n this.opacity = new Opacity_1.Opacity();\n this.orbit = new Orbit_1.Orbit();\n this.reduceDuplicates = false;\n this.repulse = new Repulse_1.Repulse();\n this.roll = new Roll_1.Roll();\n this.rotate = new Rotate_1.Rotate();\n this.shadow = new Shadow_1.Shadow();\n this.shape = new Shape_1.Shape();\n this.size = new Size_1.Size();\n this.stroke = new Stroke_1.Stroke();\n this.tilt = new Tilt_1.Tilt();\n this.twinkle = new Twinkle_1.Twinkle();\n this.wobble = new Wobble_1.Wobble();\n this.zIndex = new ZIndex_1.ZIndex();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (data === undefined) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor_1.AnimatableColor.create(this.color, data.color));\n this.destroy.load(data.destroy);\n this.life.load(data.life);\n const links = (_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked;\n if (links !== undefined) {\n this.links.load(links);\n }\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] = (0, Utils_1.deepExtend)((_c = this.groups[group]) !== null && _c !== void 0 ? _c : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.orbit.load(data.orbit);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.repulse.load(data.repulse);\n this.roll.load(data.roll);\n this.rotate.load(data.rotate);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.tilt.load(data.tilt);\n this.twinkle.load(data.twinkle);\n this.wobble.load(data.wobble);\n this.zIndex.load(data.zIndex);\n const collisions = (_e = (_d = data.move) === null || _d === void 0 ? void 0 : _d.collisions) !== null && _e !== void 0 ? _e : (_f = data.move) === null || _f === void 0 ? void 0 : _f.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n const strokeToLoad = (_g = data.stroke) !== null && _g !== void 0 ? _g : (_h = data.shape) === null || _h === void 0 ? void 0 : _h.stroke;\n if (strokeToLoad) {\n if (strokeToLoad instanceof Array) {\n this.stroke = strokeToLoad.map((s) => {\n const tmp = new Stroke_1.Stroke();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.stroke instanceof Array) {\n this.stroke = new Stroke_1.Stroke();\n }\n this.stroke.load(strokeToLoad);\n }\n }\n const gradientToLoad = data.gradient;\n if (gradientToLoad) {\n if (gradientToLoad instanceof Array) {\n this.gradient = gradientToLoad.map((s) => {\n const tmp = new AnimatableGradient_1.AnimatableGradient();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.gradient instanceof Array) {\n this.gradient = new AnimatableGradient_1.AnimatableGradient();\n }\n this.gradient.load(gradientToLoad);\n }\n }\n }\n}\nexports.ParticlesOptions = ParticlesOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Repulse = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Repulse extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.enabled = false;\n this.distance = 1;\n this.duration = 1;\n this.factor = 1;\n this.speed = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.enabled !== undefined) {\n this.enabled = data.enabled;\n }\n if (data.distance !== undefined) {\n this.distance = (0, NumberUtils_1.setRangeValue)(data.distance);\n }\n if (data.duration !== undefined) {\n this.duration = (0, NumberUtils_1.setRangeValue)(data.duration);\n }\n if (data.factor !== undefined) {\n this.factor = (0, NumberUtils_1.setRangeValue)(data.factor);\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n }\n}\nexports.Repulse = Repulse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Roll = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nconst RollLight_1 = require(\"./RollLight\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Roll {\n constructor() {\n this.darken = new RollLight_1.RollLight();\n this.enable = false;\n this.enlighten = new RollLight_1.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_1.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 = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n }\n}\nexports.Roll = Roll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RollLight = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass 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 = (0, NumberUtils_1.setRangeValue)(data.value);\n }\n }\n}\nexports.RollLight = RollLight;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rotate = void 0;\nconst RotateAnimation_1 = require(\"./RotateAnimation\");\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass Rotate extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation_1.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}\nexports.Rotate = Rotate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RotateAnimation = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.RotateAnimation = RotateAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Shadow = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nclass Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.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}\nexports.Shadow = Shadow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Shape = void 0;\nconst Utils_1 = require(\"../../../../Utils/Utils\");\nclass Shape {\n constructor() {\n this.options = {};\n this.type = \"circle\";\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 custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\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 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 load(data) {\n var _a, _b, _c;\n if (data === undefined) {\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 !== undefined) {\n this.options[shape] = (0, Utils_1.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, _c, _d;\n if (item === undefined) {\n return;\n }\n if (item instanceof Array) {\n if (!(this.options[mainKey] instanceof Array)) {\n this.options[mainKey] = [];\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = [];\n }\n }\n this.options[mainKey] = (0, Utils_1.deepExtend)((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : [], item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = (0, Utils_1.deepExtend)((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : [], item);\n }\n }\n else {\n if (this.options[mainKey] instanceof Array) {\n this.options[mainKey] = {};\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = {};\n }\n }\n this.options[mainKey] = (0, Utils_1.deepExtend)((_c = this.options[mainKey]) !== null && _c !== void 0 ? _c : {}, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = (0, Utils_1.deepExtend)((_d = this.options[altKey]) !== null && _d !== void 0 ? _d : {}, item);\n }\n }\n }\n}\nexports.Shape = Shape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Size = void 0;\nconst SizeAnimation_1 = require(\"./SizeAnimation\");\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Size extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation_1.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 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 = (0, NumberUtils_1.setRangeValue)(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\nexports.Size = Size;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SizeAnimation = void 0;\nconst AnimationOptions_1 = require(\"../../AnimationOptions\");\nclass SizeAnimation extends AnimationOptions_1.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 if (data === undefined) {\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.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}\nexports.SizeAnimation = SizeAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stroke = void 0;\nconst AnimatableColor_1 = require(\"../AnimatableColor\");\nclass Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor_1.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}\nexports.Stroke = Stroke;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tilt = void 0;\nconst TiltAnimation_1 = require(\"./TiltAnimation\");\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass Tilt extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation_1.TiltAnimation();\n this.direction = \"clockwise\";\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\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}\nexports.Tilt = Tilt;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TiltAnimation = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.TiltAnimation = TiltAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Twinkle = void 0;\nconst TwinkleValues_1 = require(\"./TwinkleValues\");\nclass Twinkle {\n constructor() {\n this.lines = new TwinkleValues_1.TwinkleValues();\n this.particles = new TwinkleValues_1.TwinkleValues();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\nexports.Twinkle = Twinkle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TwinkleValues = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.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 = (0, NumberUtils_1.setRangeValue)(data.opacity);\n }\n }\n}\nexports.TwinkleValues = TwinkleValues;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wobble = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = (0, NumberUtils_1.setRangeValue)(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = (0, NumberUtils_1.setRangeValue)(data.speed);\n }\n }\n}\nexports.Wobble = Wobble;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZIndex = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass ZIndex extends ValueWithRandom_1.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}\nexports.ZIndex = ZIndex;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = void 0;\nclass 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}\nexports.Random = Random;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responsive = void 0;\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass 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 }\n else {\n this.mode = \"canvas\";\n }\n }\n if (data.options !== undefined) {\n this.options = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.Responsive = Responsive;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Theme = void 0;\nconst ThemeDefault_1 = require(\"./ThemeDefault\");\nconst Utils_1 = require(\"../../../Utils/Utils\");\nclass Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault_1.ThemeDefault();\n }\n load(data) {\n if (data === undefined) {\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 = (0, Utils_1.deepExtend)({}, data.options);\n }\n }\n}\nexports.Theme = Theme;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThemeDefault = void 0;\nclass 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}\nexports.ThemeDefault = ThemeDefault;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueWithRandom = void 0;\nconst Random_1 = require(\"./Random\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass ValueWithRandom {\n constructor() {\n this.random = new Random_1.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 }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = (0, NumberUtils_1.setRangeValue)(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}\nexports.ValueWithRandom = ValueWithRandom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsorberInstance = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\nconst Absorber_1 = require(\"./Options/Classes/Absorber\");\nconst Vector_1 = require(\"../../Core/Utils/Vector\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass 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_1.Vector.create(position.x, position.y) : undefined;\n if (options instanceof Absorber_1.Absorber) {\n this.options = options;\n }\n else {\n this.options = new Absorber_1.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 = (0, NumberUtils_1.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 = (0, ColorUtils_1.colorToRgb)(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, options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0, NumberUtils_1.getDistance)(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\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(), { dx, dy, distance } = (0, NumberUtils_1.getDistances)(this.position, pos), v = Vector_1.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()) ||\n (particle.absorberOrbit !== undefined && particle.absorberOrbit.length < 0)) {\n if (options.destroy) {\n particle.destroy();\n }\n else {\n particle.needsNewPosition = true;\n this.updateParticlePosition(particle, v);\n }\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 }\n else {\n this.updateParticlePosition(particle, v);\n }\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && (0, Utils_1.isPointInside)(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\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 = (0, ColorUtils_1.getStyleFromRgb)(this.color, this.opacity);\n context.fill();\n }\n calcPosition() {\n const exactPosition = (0, NumberUtils_1.calcPositionOrRandomFromSizeRanged)({\n size: this.container.canvas.size,\n position: this.options.position,\n });\n return Vector_1.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, canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n const newPosition = (0, NumberUtils_1.calcPositionOrRandomFromSize)({ size: canvasSize });\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_1.Vector.create(0, 0);\n particle.absorberOrbit.length = (0, NumberUtils_1.getDistance)(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = Math.random() * 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 + (Math.random() * 0.2 - 0.1));\n }\n if (particle.absorberOrbitDirection === undefined) {\n particle.absorberOrbitDirection =\n particle.velocity.x >= 0 ? \"clockwise\" : \"counter-clockwise\";\n }\n const orbitRadius = particle.absorberOrbit.length, orbitAngle = particle.absorberOrbit.angle, orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.setTo(Vector_1.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 +=\n ((((_a = particle.retina.moveSpeed) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio) / 100) *\n container.retina.reduceFactor;\n }\n else {\n const addV = Vector_1.Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n }\n}\nexports.AbsorberInstance = AbsorberInstance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Absorbers = void 0;\nconst Absorber_1 = require(\"./Options/Classes/Absorber\");\nconst AbsorberInstance_1 = require(\"./AbsorberInstance\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n const overridableContainer = container;\n overridableContainer.getAbsorber = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n overridableContainer.addAbsorber = (options, position) => this.addAbsorber(options, position);\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.absorbers) {\n if (options.absorbers instanceof Array) {\n this.absorbers = options.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.absorbers instanceof Array) {\n this.absorbers = new Absorber_1.Absorber();\n }\n this.absorbers.load(options.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = new Absorber_1.Absorber();\n }\n this.interactivityAbsorbers.load(interactivityAbsorbers);\n }\n }\n if (this.absorbers instanceof Array) {\n for (const absorberOptions of this.absorbers) {\n this.addAbsorber(absorberOptions);\n }\n }\n else {\n this.addAbsorber(this.absorbers);\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 draw(context) {\n for (const absorber of this.array) {\n context.save();\n absorber.draw(context);\n context.restore();\n }\n }\n stop() {\n this.array = [];\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n handleClickMode(mode) {\n const absorberOptions = this.absorbers, modeAbsorbers = this.interactivityAbsorbers;\n if (mode === \"absorber\") {\n let absorbersModeOptions;\n if (modeAbsorbers instanceof Array) {\n if (modeAbsorbers.length > 0) {\n absorbersModeOptions = (0, Utils_1.itemFromArray)(modeAbsorbers);\n }\n }\n else {\n absorbersModeOptions = modeAbsorbers;\n }\n const absorbersOptions = absorbersModeOptions !== null && absorbersModeOptions !== void 0 ? absorbersModeOptions : (absorberOptions instanceof Array ? (0, Utils_1.itemFromArray)(absorberOptions) : absorberOptions), aPosition = this.container.interactivity.mouse.clickPosition;\n this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n addAbsorber(options, position) {\n const absorber = new AbsorberInstance_1.AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Absorbers = Absorbers;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Absorber = void 0;\nconst AbsorberSize_1 = require(\"./AbsorberSize\");\nconst OptionsColor_1 = require(\"../../../../Options/Classes/OptionsColor\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Absorber {\n constructor() {\n this.color = new OptionsColor_1.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_1.AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.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 = (0, NumberUtils_1.setRangeValue)(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = (0, NumberUtils_1.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}\nexports.Absorber = Absorber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsorberSize = void 0;\nconst AbsorberSizeLimit_1 = require(\"./AbsorberSizeLimit\");\nconst ValueWithRandom_1 = require(\"../../../../Options/Classes/ValueWithRandom\");\nclass AbsorberSize extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.random.minimumValue = 1;\n this.value = 50;\n this.limit = new AbsorberSizeLimit_1.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 }\n else {\n this.limit.load(data.limit);\n }\n }\n}\nexports.AbsorberSize = AbsorberSize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsorberSizeLimit = void 0;\nclass 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}\nexports.AbsorberSizeLimit = AbsorberSizeLimit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadAbsorbersPlugin = void 0;\nconst Absorber_1 = require(\"./Options/Classes/Absorber\");\nconst Absorbers_1 = require(\"./Absorbers\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass AbsorbersPlugin {\n constructor() {\n this.id = \"absorbers\";\n }\n getPlugin(container) {\n return new Absorbers_1.Absorbers(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const absorbers = options.absorbers;\n if (absorbers instanceof Array) {\n return !!absorbers.length;\n }\n else if (absorbers) {\n return true;\n }\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) &&\n (0, Utils_1.isInArray)(\"absorber\", options.interactivity.events.onClick.mode)) {\n return true;\n }\n return false;\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 if ((source === null || source === void 0 ? void 0 : source.absorbers) instanceof Array) {\n optionsCast.absorbers = source === null || source === void 0 ? void 0 : source.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(source === null || source === void 0 ? void 0 : source.absorbers);\n }\n }\n const interactivityAbsorbers = (_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;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n optionsCast.interactivity.modes.absorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.interactivity.modes.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.interactivity.modes.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(interactivityAbsorbers);\n }\n }\n }\n}\nasync function loadAbsorbersPlugin(engine) {\n const plugin = new AbsorbersPlugin();\n await engine.addPlugin(plugin);\n}\nexports.loadAbsorbersPlugin = loadAbsorbersPlugin;\n__exportStar(require(\"./Enums/AbsorberClickMode\"), exports);\n__exportStar(require(\"./Options/Interfaces/IAbsorberOptions\"), exports);\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EmitterInstance_firstSpawn, _EmitterInstance_startParticlesAdded, _EmitterInstance_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterInstance = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nconst Emitter_1 = require(\"./Options/Classes/Emitter\");\nconst EmitterSize_1 = require(\"./Options/Classes/EmitterSize\");\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\nclass 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 _EmitterInstance_firstSpawn.set(this, void 0);\n _EmitterInstance_startParticlesAdded.set(this, void 0);\n _EmitterInstance_engine.set(this, void 0);\n __classPrivateFieldSet(this, _EmitterInstance_engine, engine, \"f\");\n this.currentDuration = 0;\n this.currentEmitDelay = 0;\n this.currentSpawnDelay = 0;\n this.initialPosition = position;\n if (options instanceof Emitter_1.Emitter) {\n this.options = options;\n }\n else {\n this.options = new Emitter_1.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 = __classPrivateFieldGet(this, _EmitterInstance_engine, \"f\").emitterShapeManager) === null || _c === void 0 ? void 0 : _c.getShape(this.options.shape);\n this.fill = this.options.fill;\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, !this.options.life.wait, \"f\");\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, false, \"f\");\n let particlesOptions = (0, Utils_1.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 = (0, ColorUtils_1.colorToHsl)(this.options.spawnColor);\n }\n this.paused = !this.options.autoPlay;\n this.particlesOptions = particlesOptions;\n this.size =\n (_f = this.options.size) !== null && _f !== void 0 ? _f : (() => {\n const size = new EmitterSize_1.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.play();\n }\n externalPlay() {\n this.paused = false;\n this.play();\n }\n externalPause() {\n this.paused = true;\n this.pause();\n }\n play() {\n var _a;\n if (this.paused) {\n return;\n }\n if (!(this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal || !this.options.life.count) &&\n (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\") || this.currentSpawnDelay >= ((_a = this.spawnDelay) !== null && _a !== void 0 ? _a : 0)))) {\n return;\n }\n if (this.emitDelay === undefined) {\n const delay = (0, NumberUtils_1.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 pause() {\n if (this.paused) {\n return;\n }\n delete this.emitDelay;\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && (0, Utils_1.isPointInside)(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\n }\n update(delta) {\n var _a, _b, _c;\n if (this.paused) {\n return;\n }\n if (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, false, \"f\");\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 (!__classPrivateFieldGet(this, _EmitterInstance_startParticlesAdded, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, true, \"f\");\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 }\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.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 getPosition() {\n if (this.options.domId) {\n const container = this.container, 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\"\n ? (container.canvas.size.width * this.size.width) / 100\n : this.size.width,\n height: this.size.mode === \"percent\"\n ? (container.canvas.size.height * this.size.height) / 100\n : this.size.height,\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 &&\n (this.lifeCount > 0 || this.immortal) &&\n duration !== undefined &&\n duration > 0) {\n this.duration = duration * 1000;\n }\n }\n destroy() {\n this.emitters.removeEmitter(this);\n }\n calcPosition() {\n return (0, NumberUtils_1.calcPositionOrRandomFromSizeRanged)({\n size: this.container.canvas.size,\n position: this.options.position,\n });\n }\n emit() {\n if (this.paused) {\n return;\n }\n const quantity = (0, NumberUtils_1.getRangeValue)(this.options.rate.quantity);\n this.emitParticles(quantity);\n }\n emitParticles(quantity) {\n var _a, _b, _c;\n const position = this.getPosition(), size = this.getSize();\n for (let i = 0; i < quantity; i++) {\n const particlesOptions = (0, Utils_1.deepExtend)({}, this.particlesOptions);\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 }\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 setColorAnimation(animation, initValue, maxValue) {\n var _a;\n const container = this.container;\n if (!animation.enable) {\n return initValue;\n }\n const colorOffset = (0, NumberUtils_1.randomInRange)(animation.offset), delay = (0, NumberUtils_1.getRangeValue)(this.options.rate.delay), emitFactor = (1000 * delay) / container.retina.reduceFactor, colorSpeed = (0, NumberUtils_1.getRangeValue)((_a = animation.speed) !== null && _a !== void 0 ? _a : 0);\n return (initValue + (colorSpeed * container.fpsLimit) / emitFactor + colorOffset * 3.6) % maxValue;\n }\n}\nexports.EmitterInstance = EmitterInstance;\n_EmitterInstance_firstSpawn = new WeakMap(), _EmitterInstance_startParticlesAdded = new WeakMap(), _EmitterInstance_engine = new WeakMap();\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Emitters_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitters = void 0;\nconst Utils_1 = require(\"../../Utils/Utils\");\nconst Emitter_1 = require(\"./Options/Classes/Emitter\");\nconst EmitterInstance_1 = require(\"./EmitterInstance\");\nclass Emitters {\n constructor(engine, container) {\n this.container = container;\n _Emitters_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Emitters_engine, engine, \"f\");\n this.array = [];\n this.emitters = [];\n this.interactivityEmitters = [];\n const overridableContainer = container;\n overridableContainer.getEmitter = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n overridableContainer.addEmitter = (options, position) => this.addEmitter(options, position);\n overridableContainer.removeEmitter = (idxOrName) => {\n const emitter = overridableContainer.getEmitter(idxOrName);\n if (emitter) {\n this.removeEmitter(emitter);\n }\n };\n overridableContainer.playEmitter = (idxOrName) => {\n const emitter = overridableContainer.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPlay();\n }\n };\n overridableContainer.pauseEmitter = (idxOrName) => {\n const emitter = overridableContainer.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPause();\n }\n };\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.emitters) {\n if (options.emitters instanceof Array) {\n this.emitters = options.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.emitters instanceof Array) {\n this.emitters = new Emitter_1.Emitter();\n }\n this.emitters.load(options.emitters);\n }\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 = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityEmitters instanceof Array) {\n this.interactivityEmitters = new Emitter_1.Emitter();\n }\n this.interactivityEmitters.load(interactivityEmitters);\n }\n }\n if (this.emitters instanceof Array) {\n for (const emitterOptions of this.emitters) {\n this.addEmitter(emitterOptions);\n }\n }\n else {\n this.addEmitter(this.emitters);\n }\n }\n play() {\n for (const emitter of this.array) {\n emitter.play();\n }\n }\n pause() {\n for (const emitter of this.array) {\n emitter.pause();\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 handleClickMode(mode) {\n const emitterOptions = this.emitters, modeEmitters = this.interactivityEmitters;\n if (mode === \"emitter\") {\n let emitterModeOptions;\n if (modeEmitters instanceof Array) {\n if (modeEmitters.length > 0) {\n emitterModeOptions = (0, Utils_1.itemFromArray)(modeEmitters);\n }\n }\n else {\n emitterModeOptions = modeEmitters;\n }\n const emittersOptions = emitterModeOptions !== null && emitterModeOptions !== void 0 ? emitterModeOptions : (emitterOptions instanceof Array ? (0, Utils_1.itemFromArray)(emitterOptions) : emitterOptions), ePosition = this.container.interactivity.mouse.clickPosition;\n this.addEmitter((0, Utils_1.deepExtend)({}, emittersOptions), ePosition);\n }\n }\n resize() {\n for (const emitter of this.array) {\n emitter.resize();\n }\n }\n addEmitter(options, position) {\n const emitterOptions = new Emitter_1.Emitter();\n emitterOptions.load(options);\n const emitter = new EmitterInstance_1.EmitterInstance(__classPrivateFieldGet(this, _Emitters_engine, \"f\"), this, this.container, emitterOptions, position);\n this.array.push(emitter);\n return emitter;\n }\n removeEmitter(emitter) {\n const index = this.array.indexOf(emitter);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Emitters = Emitters;\n_Emitters_engine = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = void 0;\nconst AnimatableColor_1 = require(\"../../../../Options/Classes/AnimatableColor\");\nconst EmitterLife_1 = require(\"./EmitterLife\");\nconst EmitterRate_1 = require(\"./EmitterRate\");\nconst EmitterSize_1 = require(\"./EmitterSize\");\nconst Utils_1 = require(\"../../../../Utils/Utils\");\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass Emitter {\n constructor() {\n this.autoPlay = true;\n this.fill = true;\n this.life = new EmitterLife_1.EmitterLife();\n this.rate = new EmitterRate_1.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_1.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 if (data.particles !== undefined) {\n this.particles = (0, Utils_1.deepExtend)({}, data.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 = (0, NumberUtils_1.setRangeValue)(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = (0, NumberUtils_1.setRangeValue)(data.position.y);\n }\n }\n if (data.spawnColor !== undefined) {\n if (this.spawnColor === undefined) {\n this.spawnColor = new AnimatableColor_1.AnimatableColor();\n }\n this.spawnColor.load(data.spawnColor);\n }\n if (data.startCount !== undefined) {\n this.startCount = data.startCount;\n }\n }\n}\nexports.Emitter = Emitter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterLife = void 0;\nclass 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}\nexports.EmitterLife = EmitterLife;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterRate = void 0;\nconst NumberUtils_1 = require(\"../../../../Utils/NumberUtils\");\nclass 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 = (0, NumberUtils_1.setRangeValue)(data.quantity);\n }\n if (data.delay !== undefined) {\n this.delay = (0, NumberUtils_1.setRangeValue)(data.delay);\n }\n }\n}\nexports.EmitterRate = EmitterRate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterSize = void 0;\nclass 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}\nexports.EmitterSize = EmitterSize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _ShapeManager_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShapeManager = void 0;\nconst shapes = new Map();\nclass ShapeManager {\n constructor(engine) {\n _ShapeManager_engine.set(this, void 0);\n __classPrivateFieldSet(this, _ShapeManager_engine, engine, \"f\");\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}\nexports.ShapeManager = ShapeManager;\n_ShapeManager_engine = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CircleShape = void 0;\nclass CircleShape {\n randomPosition(position, size, fill) {\n const generateTheta = (x, y) => {\n const u = Math.random() / 4.0, theta = Math.atan((y / x) * Math.tan(2 * Math.PI * u)), v = Math.random();\n if (v < 0.25) {\n return theta;\n }\n else if (v < 0.5) {\n return Math.PI - theta;\n }\n else if (v < 0.75) {\n return Math.PI + theta;\n }\n else {\n return -theta;\n }\n }, radius = (x, y, theta) => (x * y) / Math.sqrt((y * Math.cos(theta)) ** 2 + (x * Math.sin(theta)) ** 2), [a, b] = [size.width / 2, size.height / 2], randomTheta = generateTheta(a, b), maxRadius = radius(a, b, randomTheta), randomRadius = fill ? maxRadius * Math.sqrt(Math.random()) : maxRadius;\n return {\n x: position.x + randomRadius * Math.cos(randomTheta),\n y: position.y + randomRadius * Math.sin(randomTheta),\n };\n }\n}\nexports.CircleShape = CircleShape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SquareShape = void 0;\nfunction randomSquareCoordinate(position, offset) {\n return position + offset * (Math.random() - 0.5);\n}\nclass 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 }\n else {\n const halfW = size.width / 2, halfH = size.height / 2, side = Math.floor(Math.random() * 4), v = (Math.random() - 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}\nexports.SquareShape = SquareShape;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EmittersPlugin_engine;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadEmittersPlugin = void 0;\nconst CircleShape_1 = require(\"./Shapes/Circle/CircleShape\");\nconst Emitter_1 = require(\"./Options/Classes/Emitter\");\nconst Emitters_1 = require(\"./Emitters\");\nconst ShapeManager_1 = require(\"./ShapeManager\");\nconst SquareShape_1 = require(\"./Shapes/Square/SquareShape\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass EmittersPlugin {\n constructor(engine) {\n _EmittersPlugin_engine.set(this, void 0);\n __classPrivateFieldSet(this, _EmittersPlugin_engine, engine, \"f\");\n this.id = \"emitters\";\n }\n getPlugin(container) {\n return new Emitters_1.Emitters(__classPrivateFieldGet(this, _EmittersPlugin_engine, \"f\"), container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const emitters = options.emitters;\n return ((emitters instanceof Array && !!emitters.length) ||\n emitters !== undefined ||\n (!!((_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) &&\n (0, Utils_1.isInArray)(\"emitter\", options.interactivity.events.onClick.mode)));\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.emitters) {\n if ((source === null || source === void 0 ? void 0 : source.emitters) instanceof Array) {\n optionsCast.emitters = source === null || source === void 0 ? void 0 : source.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(source === null || source === void 0 ? void 0 : source.emitters);\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 = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.interactivity.modes.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.interactivity.modes.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(interactivityEmitters);\n }\n }\n }\n}\n_EmittersPlugin_engine = new WeakMap();\nasync function loadEmittersPlugin(engine) {\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new ShapeManager_1.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_1.CircleShape());\n engine.addEmitterShape(\"square\", new SquareShape_1.SquareShape());\n}\nexports.loadEmittersPlugin = loadEmittersPlugin;\n__exportStar(require(\"./EmittersEngine\"), exports);\n__exportStar(require(\"./Enums/EmitterClickMode\"), exports);\n__exportStar(require(\"./Enums/EmitterShapeType\"), exports);\n__exportStar(require(\"./Options/Interfaces/IEmitterOptions\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMask = void 0;\nconst PolygonMaskDraw_1 = require(\"./PolygonMaskDraw\");\nconst PolygonMaskInline_1 = require(\"./PolygonMaskInline\");\nconst PolygonMaskLocalSvg_1 = require(\"./PolygonMaskLocalSvg\");\nconst PolygonMaskMove_1 = require(\"./PolygonMaskMove\");\nconst Utils_1 = require(\"../../../../Utils/Utils\");\nclass PolygonMask {\n constructor() {\n this.draw = new PolygonMaskDraw_1.PolygonMaskDraw();\n this.enable = false;\n this.inline = new PolygonMaskInline_1.PolygonMaskInline();\n this.move = new PolygonMaskMove_1.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 var _a;\n if (!data) {\n return;\n }\n this.draw.load(data.draw);\n const inline = (_a = data.inline) !== null && _a !== void 0 ? _a : {\n arrangement: data.inlineArrangement,\n };\n if (inline !== undefined) {\n this.inline.load(inline);\n }\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 }\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 }\n else {\n this.data = new PolygonMaskLocalSvg_1.PolygonMaskLocalSvg();\n this.data.load(data.data);\n }\n }\n if (data.position !== undefined) {\n this.position = (0, Utils_1.deepExtend)({}, data.position);\n }\n }\n}\nexports.PolygonMask = PolygonMask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskDraw = void 0;\nconst OptionsColor_1 = require(\"../../../../Options/Classes/OptionsColor\");\nconst PolygonMaskDrawStroke_1 = require(\"./PolygonMaskDrawStroke\");\nclass PolygonMaskDraw {\n constructor() {\n this.enable = false;\n this.stroke = new PolygonMaskDrawStroke_1.PolygonMaskDrawStroke();\n }\n get lineWidth() {\n return this.stroke.width;\n }\n set lineWidth(value) {\n this.stroke.width = value;\n }\n get lineColor() {\n return this.stroke.color;\n }\n set lineColor(value) {\n this.stroke.color = OptionsColor_1.OptionsColor.create(this.stroke.color, 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}\nexports.PolygonMaskDraw = PolygonMaskDraw;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskDrawStroke = void 0;\nconst OptionsColor_1 = require(\"../../../../Options/Classes/OptionsColor\");\nconst ColorUtils_1 = require(\"../../../../Utils/ColorUtils\");\nclass PolygonMaskDrawStroke {\n constructor() {\n this.color = new OptionsColor_1.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_1.OptionsColor.create(this.color, data.color);\n if (typeof this.color.value === \"string\") {\n this.opacity = (_a = (0, ColorUtils_1.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}\nexports.PolygonMaskDrawStroke = PolygonMaskDrawStroke;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskInline = void 0;\nclass 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}\nexports.PolygonMaskInline = PolygonMaskInline;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskLocalSvg = void 0;\nclass 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}\nexports.PolygonMaskLocalSvg = PolygonMaskLocalSvg;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskMove = void 0;\nclass 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}\nexports.PolygonMaskMove = PolygonMaskMove;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskInstance = void 0;\nconst Utils_1 = require(\"./Utils\");\nconst Utils_2 = require(\"../../Utils/Utils\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nconst Constants_1 = require(\"../../Core/Utils/Constants\");\nconst PolygonMask_1 = require(\"./Options/Classes/PolygonMask\");\nclass PolygonMaskInstance {\n constructor(container) {\n this.container = container;\n this.dimension = {\n height: 0,\n width: 0,\n };\n this.path2DSupported = !!window.Path2D;\n this.options = new PolygonMask_1.PolygonMask();\n this.polygonMaskMoveRadius = this.options.move.radius * container.retina.pixelRatio;\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 resize() {\n const container = this.container, 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 particlesInitialization() {\n const options = this.options;\n if (options.enable &&\n options.type === \"inline\" &&\n (options.inline.arrangement === \"one-per-point\" ||\n options.inline.arrangement === \"per-point\")) {\n this.drawPoints();\n return true;\n }\n return false;\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 (0, Utils_2.deepExtend)({}, position ? position : this.randomPoint());\n }\n particleBounce(particle, delta, direction) {\n return this.polygonBounce(particle, delta, direction);\n }\n clickPositionValid(position) {\n const options = this.options;\n return (options.enable &&\n options.type !== \"none\" &&\n options.type !== \"inline\" &&\n 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, 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, path2dSupported = this.path2DSupported;\n if (!context) {\n continue;\n }\n if (path2dSupported && path2d && this.offset) {\n (0, Utils_1.drawPolygonMaskPath)(context, path2d, polygonDraw.stroke, this.offset);\n }\n else if (rawData) {\n (0, Utils_1.drawPolygonMask)(context, rawData, polygonDraw.stroke);\n }\n }\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(), 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], pj = this.raw[j];\n closest = (0, Utils_1.calcClosestPtOnSegment)(pi, pj, pos);\n const dist = (0, NumberUtils_1.getDistances)(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n (0, Utils_1.segmentBounce)(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this.checkInsidePolygon(pos)) {\n const factor = { x: 1, y: 1 };\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 }\n else if (options.type === \"inline\" && particle.initialPosition) {\n const dist = (0, NumberUtils_1.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 checkInsidePolygon(position) {\n var _a, _b;\n const container = this.container, 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(Constants_1.Constants.noPolygonFound);\n }\n const canvasSize = container.canvas.size, x = (_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * canvasSize.width, y = (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * 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], pj = this.raw[j], 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\"\n ? inside\n : options.type === \"outside\"\n ? !inside\n : false;\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, options = this.options, parser = new DOMParser(), doc = parser.parseFromString(xml, \"image/svg+xml\"), 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, 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 (0, Utils_1.parsePaths)(this.paths, scale, this.offset);\n }\n async downloadSvgPath(svgUrl, force) {\n const options = this.options, url = svgUrl || options.url, 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 randomPoint() {\n const container = this.container, 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 }\n else {\n position = {\n x: Math.random() * container.canvas.size.width,\n y: Math.random() * container.canvas.size.height,\n };\n }\n if (this.checkInsidePolygon(position)) {\n return position;\n }\n else {\n return this.randomPoint();\n }\n }\n getRandomPoint() {\n if (!this.raw || !this.raw.length) {\n throw new Error(Constants_1.Constants.noPolygonDataLoaded);\n }\n const coords = (0, Utils_2.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(Constants_1.Constants.noPolygonDataLoaded);\n }\n const path = (0, Utils_2.itemFromArray)(this.paths), distance = Math.floor(Math.random() * path.length) + 1, 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 getEquidistantPointByIndex(index) {\n var _a, _b, _c, _d, _e, _f, _g;\n const options = this.container.actualOptions, polygonMaskOptions = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length))\n throw new Error(Constants_1.Constants.noPolygonDataLoaded);\n let offset = 0, point;\n const totalLength = this.paths.reduce((tot, path) => tot + path.length, 0), 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 }\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(Constants_1.Constants.noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y,\n };\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), matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(), finalPath = new Path2D(), transform = matrix.scale(options.scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n }\n else {\n delete path.path2d;\n }\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 initRawData(force) {\n const options = this.options;\n if (options.url) {\n this.raw = await this.downloadSvgPath(options.url, force);\n }\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\n ? data.path.map((t) => ``).join(\"\")\n : ``;\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `${path}`;\n }\n else {\n svg = data;\n }\n this.raw = this.parseSvgPath(svg, force);\n }\n this.createPath2D();\n }\n}\nexports.PolygonMaskInstance = PolygonMaskInstance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.segmentBounce = exports.calcClosestPtOnSegment = exports.parsePaths = exports.drawPolygonMaskPath = exports.drawPolygonMask = void 0;\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\nconst Vector_1 = require(\"../../Core/Utils/Vector\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction drawPolygonMask(context, rawData, stroke) {\n const color = (0, ColorUtils_1.colorToRgb)(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 = (0, ColorUtils_1.getStyleFromRgb)(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nexports.drawPolygonMask = drawPolygonMask;\nfunction drawPolygonMaskPath(context, path, stroke, position) {\n context.translate(position.x, position.y);\n const color = (0, ColorUtils_1.colorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = (0, ColorUtils_1.getStyleFromRgb)(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n}\nexports.drawPolygonMaskPath = drawPolygonMaskPath;\nfunction parsePaths(paths, scale, offset) {\n var _a;\n const res = [];\n for (const path of paths) {\n const segments = path.element.pathSegList, len = (_a = segments === null || segments === void 0 ? void 0 : segments.numberOfItems) !== null && _a !== void 0 ? _a : 0, 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 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 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}\nexports.parsePaths = parsePaths;\nfunction calcClosestPtOnSegment(s1, s2, pos) {\n const { dx, dy } = (0, NumberUtils_1.getDistances)(pos, s1), { dx: dxx, dy: dyy } = (0, NumberUtils_1.getDistances)(s2, s1), t = (dx * dxx + dy * dyy) / (dxx ** 2 + dyy ** 2), 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 }\n else if (t > 1) {\n res.x = s2.x;\n res.y = s2.y;\n }\n return res;\n}\nexports.calcClosestPtOnSegment = calcClosestPtOnSegment;\nfunction segmentBounce(start, stop, velocity) {\n const { dx, dy } = (0, NumberUtils_1.getDistances)(start, stop), wallAngle = Math.atan2(dy, dx), wallNormal = Vector_1.Vector.create(Math.sin(wallAngle), -Math.cos(wallAngle)), d = 2 * (velocity.x * wallNormal.x + velocity.y * wallNormal.y);\n wallNormal.multTo(d);\n velocity.subFrom(wallNormal);\n}\nexports.segmentBounce = segmentBounce;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadPolygonMaskPlugin = void 0;\nconst PolygonMask_1 = require(\"./Options/Classes/PolygonMask\");\nconst PolygonMaskInstance_1 = require(\"./PolygonMaskInstance\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nclass PolygonMaskPlugin {\n constructor() {\n this.id = \"polygonMask\";\n }\n getPlugin(container) {\n return new PolygonMaskInstance_1.PolygonMaskInstance(container);\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 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_1.PolygonMask();\n }\n polygonOptions.load(source === null || source === void 0 ? void 0 : source.polygon);\n }\n}\nasync function loadPolygonMaskPlugin(engine) {\n if (!(0, Utils_1.isSsr)() && !(\"SVGPathSeg\" in window)) {\n await Promise.resolve().then(() => __importStar(require(\"./pathseg.js\")));\n }\n const plugin = new PolygonMaskPlugin();\n await engine.addPlugin(plugin);\n}\nexports.loadPolygonMaskPlugin = loadPolygonMaskPlugin;\n__exportStar(require(\"./Enums/PolygonMaskInlineArrangement\"), exports);\n__exportStar(require(\"./Enums/PolygonMaskMoveType\"), exports);\n__exportStar(require(\"./Enums/PolygonMaskType\"), exports);\n__exportStar(require(\"./Options/Interfaces/IPolygonMaskOptions\"), exports);\n","\"use strict\";\n(function () {\n \"use strict\";\n try {\n if (typeof window === \"undefined\")\n 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)\n 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 +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n 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 +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n 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 +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n 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 +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n 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))\n 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)\n return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength())\n 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 = { attributes: true, attributeFilter: [\"d\"] };\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)\n 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)\n return;\n let hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\")\n hasPathMutations = true;\n });\n if (hasPathMutations)\n 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)\n 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)\n 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 }\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)\n 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 <= \" \" &&\n (character == \" \" ||\n character == \"\\n\" ||\n character == \"\\t\" ||\n character == \"\\r\" ||\n character == \"\\f\"));\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace())\n this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex &&\n !this._isCurrentSpace() &&\n this._string.charAt(this._currentIndex) != \",\")\n 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 == \"+\" ||\n lookahead == \"-\" ||\n lookahead == \".\" ||\n (lookahead >= \"0\" && lookahead <= \"9\")) &&\n previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS)\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL)\n 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())\n return true;\n const command = this.peekSegmentType();\n return (command == window.SVGPathSeg.PATHSEG_MOVETO_ABS ||\n 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) == \"+\")\n this._currentIndex++;\n else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex ||\n ((this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\") &&\n this._string.charAt(this._currentIndex) != \".\"))\n return undefined;\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\")\n 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 ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n 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 &&\n this._currentIndex + 1 < this._endIndex &&\n (this._string.charAt(this._currentIndex) == \"e\" ||\n this._string.charAt(this._currentIndex) == \"E\") &&\n this._string.charAt(this._currentIndex + 1) != \"x\" &&\n this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n }\n else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n 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)\n number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex)\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex)\n return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\")\n flag = false;\n else if (flagChar == \"1\")\n flag = true;\n else\n 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)\n return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n }\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())\n return [];\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg)\n return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\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})();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CircleDrawer = void 0;\nclass CircleDrawer {\n getSidesCount() {\n return 12;\n }\n draw(context, particle, radius) {\n context.arc(0, 0, radius, 0, Math.PI * 2, false);\n }\n}\nexports.CircleDrawer = CircleDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadCircleShape = void 0;\nconst CircleDrawer_1 = require(\"./CircleDrawer\");\nasync function loadCircleShape(engine) {\n await engine.addShape(\"circle\", new CircleDrawer_1.CircleDrawer());\n}\nexports.loadCircleShape = loadCircleShape;\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ImageDrawer_images;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageDrawer = void 0;\nconst Utils_1 = require(\"./Utils\");\nclass ImageDrawer {\n constructor() {\n _ImageDrawer_images.set(this, void 0);\n __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n getSidesCount() {\n return 12;\n }\n getImages(container) {\n const containerImages = __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").find((t) => t.id === container.id);\n if (!containerImages) {\n __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").push({\n id: container.id,\n images: [],\n });\n return this.getImages(container);\n }\n else {\n return containerImages;\n }\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 __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n draw(context, particle, radius, opacity) {\n var _a, _b;\n const image = particle.image;\n const element = (_a = image === null || image === void 0 ? void 0 : image.data) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n }\n const ratio = (_b = image === null || image === void 0 ? void 0 : image.ratio) !== null && _b !== void 0 ? _b : 1;\n const pos = {\n x: -radius,\n y: -radius,\n };\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = opacity;\n }\n context.drawImage(element, pos.x, pos.y, radius * 2, (radius * 2) / ratio);\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = 1;\n }\n }\n loadShape(particle) {\n var _a, _b, _c;\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const images = this.getImages(particle.container).images;\n const imageData = particle.shapeData;\n const image = images.find((t) => t.source === imageData.src);\n let imageRes;\n if (!image) {\n this.loadImageShape(particle.container, imageData).then(() => {\n this.loadShape(particle);\n });\n return;\n }\n if (image.error) {\n return;\n }\n const color = particle.getFillColor();\n if (image.svgData && imageData.replaceColor && color) {\n imageRes = (0, Utils_1.replaceImageColor)(image, imageData, color, particle);\n }\n else {\n imageRes = {\n data: image,\n loaded: true,\n ratio: imageData.width / imageData.height,\n replaceColor: (_a = imageData.replaceColor) !== null && _a !== void 0 ? _a : imageData.replace_color,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = (_b = imageData.fill) !== null && _b !== void 0 ? _b : particle.fill;\n const close = (_c = imageData.close) !== null && _c !== void 0 ? _c : particle.close;\n const 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 async loadImageShape(container, imageShape) {\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.substr(source.length - 3),\n error: false,\n loading: true,\n };\n this.addImage(container, image);\n const imageFunc = imageShape.replaceColor ? Utils_1.downloadSvgImage : Utils_1.loadImage;\n await imageFunc(image);\n }\n catch (_a) {\n throw new Error(`tsParticles error - ${imageShape.src} not found`);\n }\n }\n}\nexports.ImageDrawer = ImageDrawer;\n_ImageDrawer_images = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceImageColor = exports.downloadSvgImage = exports.loadImage = void 0;\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\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 { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = (0, ColorUtils_1.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}\nasync function loadImage(image) {\n return new Promise((resolve) => {\n image.loading = true;\n const img = new Image();\n img.addEventListener(\"load\", () => {\n image.element = img;\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\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}\nexports.loadImage = loadImage;\nasync 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 image.loading = false;\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}\nexports.downloadSvgImage = downloadSvgImage;\nfunction 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 const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" });\n const domUrl = URL || window.URL || window.webkitURL || window;\n const url = domUrl.createObjectURL(svg);\n const img = new Image();\n const imageRes = {\n data: Object.assign(Object.assign({}, image), { svgData: svgColoredData }),\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 img.addEventListener(\"load\", () => {\n const pImage = particle.image;\n if (pImage) {\n pImage.loaded = true;\n image.element = img;\n }\n domUrl.revokeObjectURL(url);\n });\n img.addEventListener(\"error\", () => {\n domUrl.revokeObjectURL(url);\n const img2 = Object.assign(Object.assign({}, image), { error: false, loading: true });\n loadImage(img2).then(() => {\n const pImage = particle.image;\n if (pImage) {\n image.element = img2.element;\n pImage.loaded = true;\n }\n });\n });\n img.src = url;\n return imageRes;\n}\nexports.replaceImageColor = replaceImageColor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadImageShape = void 0;\nconst ImageDrawer_1 = require(\"./ImageDrawer\");\nasync function loadImageShape(engine) {\n const imageDrawer = new ImageDrawer_1.ImageDrawer();\n await engine.addShape(\"image\", imageDrawer);\n await engine.addShape(\"images\", imageDrawer);\n}\nexports.loadImageShape = loadImageShape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LineDrawer = void 0;\nclass LineDrawer {\n getSidesCount() {\n return 1;\n }\n draw(context, particle, radius) {\n context.moveTo(-radius / 2, 0);\n context.lineTo(radius / 2, 0);\n }\n}\nexports.LineDrawer = LineDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadLineShape = void 0;\nconst LineDrawer_1 = require(\"./LineDrawer\");\nasync function loadLineShape(engine) {\n await engine.addShape(\"line\", new LineDrawer_1.LineDrawer());\n}\nexports.loadLineShape = loadLineShape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonDrawer = void 0;\nconst PolygonDrawerBase_1 = require(\"./PolygonDrawerBase\");\nclass PolygonDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\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 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}\nexports.PolygonDrawer = PolygonDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonDrawerBase = void 0;\nclass PolygonDrawerBase {\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 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}\nexports.PolygonDrawerBase = PolygonDrawerBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TriangleDrawer = void 0;\nconst PolygonDrawerBase_1 = require(\"./PolygonDrawerBase\");\nclass TriangleDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\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 getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / 1.66,\n };\n }\n}\nexports.TriangleDrawer = TriangleDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadPolygonShape = exports.loadTriangleShape = exports.loadGenericPolygonShape = void 0;\nconst PolygonDrawer_1 = require(\"./PolygonDrawer\");\nconst TriangleDrawer_1 = require(\"./TriangleDrawer\");\nasync function loadGenericPolygonShape(engine) {\n await engine.addShape(\"polygon\", new PolygonDrawer_1.PolygonDrawer());\n}\nexports.loadGenericPolygonShape = loadGenericPolygonShape;\nasync function loadTriangleShape(engine) {\n await engine.addShape(\"triangle\", new TriangleDrawer_1.TriangleDrawer());\n}\nexports.loadTriangleShape = loadTriangleShape;\nasync function loadPolygonShape(engine) {\n await loadGenericPolygonShape(engine);\n await loadTriangleShape(engine);\n}\nexports.loadPolygonShape = loadPolygonShape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SquareDrawer = void 0;\nconst fixFactor = Math.sqrt(2);\nclass SquareDrawer {\n getSidesCount() {\n return 4;\n }\n draw(context, particle, radius) {\n context.rect(-radius / fixFactor, -radius / fixFactor, (radius * 2) / fixFactor, (radius * 2) / fixFactor);\n }\n}\nexports.SquareDrawer = SquareDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadSquareShape = void 0;\nconst SquareDrawer_1 = require(\"./SquareDrawer\");\nasync function loadSquareShape(engine) {\n const drawer = new SquareDrawer_1.SquareDrawer();\n await engine.addShape(\"edge\", drawer);\n await engine.addShape(\"square\", drawer);\n}\nexports.loadSquareShape = loadSquareShape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StarDrawer = void 0;\nclass StarDrawer {\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 draw(context, particle, radius) {\n var _a;\n const star = particle.shapeData;\n const sides = this.getSidesCount(particle);\n const 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}\nexports.StarDrawer = StarDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadStarShape = void 0;\nconst StarDrawer_1 = require(\"./StarDrawer\");\nasync function loadStarShape(engine) {\n await engine.addShape(\"star\", new StarDrawer_1.StarDrawer());\n}\nexports.loadStarShape = loadStarShape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TextDrawer = exports.validTypes = void 0;\nconst Utils_1 = require(\"../../Utils/Utils\");\nexports.validTypes = [\"text\", \"character\", \"char\"];\nclass TextDrawer {\n getSidesCount() {\n return 12;\n }\n async init(container) {\n const options = container.actualOptions;\n if (exports.validTypes.find((t) => (0, Utils_1.isInArray)(t, options.particles.shape.type))) {\n const shapeOptions = exports.validTypes.map((t) => options.particles.shape.options[t]).find((t) => !!t);\n if (shapeOptions instanceof Array) {\n const promises = [];\n for (const character of shapeOptions) {\n promises.push((0, Utils_1.loadFont)(character));\n }\n await Promise.allSettled(promises);\n }\n else {\n if (shapeOptions !== undefined) {\n await (0, Utils_1.loadFont)(shapeOptions);\n }\n }\n }\n }\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 =\n textData instanceof Array ? (0, Utils_1.itemFromArray)(textData, particle.randomIndexData) : textData;\n }\n const text = textParticle.text;\n const style = (_a = character.style) !== null && _a !== void 0 ? _a : \"\";\n const weight = (_b = character.weight) !== null && _b !== void 0 ? _b : \"400\";\n const size = Math.round(radius) * 2;\n const font = (_c = character.font) !== null && _c !== void 0 ? _c : \"Verdana\";\n const fill = particle.fill;\n const 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 }\n else {\n context.strokeText(text, pos.x, pos.y);\n }\n context.globalAlpha = 1;\n }\n}\nexports.TextDrawer = TextDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadTextShape = void 0;\nconst TextDrawer_1 = require(\"./TextDrawer\");\nasync function loadTextShape(engine) {\n const drawer = new TextDrawer_1.TextDrawer();\n for (const type of TextDrawer_1.validTypes) {\n await engine.addShape(type, drawer);\n }\n}\nexports.loadTextShape = loadTextShape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AngleUpdater = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction updateAngle(particle, delta) {\n var _a;\n const rotate = particle.rotate;\n if (!rotate) {\n return;\n }\n const rotateOptions = particle.options.rotate;\n const rotateAnimation = rotateOptions.animation;\n const speed = ((_a = rotate.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const max = 2 * Math.PI;\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}\nclass AngleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: ((0, NumberUtils_1.getRangeValue)(rotateOptions.value) * Math.PI) / 180,\n };\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === \"random\") {\n const index = Math.floor(Math.random() * 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 = particle.options.rotate.animation;\n if (rotateAnimation.enable) {\n particle.rotate.velocity =\n ((0, NumberUtils_1.getRangeValue)(rotateAnimation.speed) / 360) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n const rotateAnimation = rotate.animation;\n return !particle.destroyed && !particle.spawning && !rotate.path && rotateAnimation.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAngle(particle, delta);\n }\n}\nexports.AngleUpdater = AngleUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadAngleUpdater = void 0;\nconst AngleUpdater_1 = require(\"./AngleUpdater\");\nasync function loadAngleUpdater(engine) {\n await engine.addParticleUpdater(\"angle\", (container) => new AngleUpdater_1.AngleUpdater(container));\n}\nexports.loadAngleUpdater = loadAngleUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ColorUpdater = void 0;\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a;\n const colorValue = value;\n if (!colorValue || !valueAnimation.enable) {\n return;\n }\n const offset = (0, NumberUtils_1.randomInRange)(valueAnimation.offset);\n const velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6;\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 }\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.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}\nclass ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = (0, ColorUtils_1.colorToHsl)(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = (0, ColorUtils_1.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 &&\n !particle.spawning &&\n ((((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h.value) !== undefined && animationOptions.h.enable) ||\n (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s.value) !== undefined && animationOptions.s.enable) ||\n (((_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}\nexports.ColorUpdater = ColorUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadColorUpdater = void 0;\nconst ColorUpdater_1 = require(\"./ColorUpdater\");\nasync function loadColorUpdater(engine) {\n await engine.addParticleUpdater(\"color\", (container) => new ColorUpdater_1.ColorUpdater(container));\n}\nexports.loadColorUpdater = loadColorUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LifeUpdater = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init() {\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\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 }\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 }\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, widthRange = (0, NumberUtils_1.setRangeValue)(0, canvasSize.width), heightRange = (0, NumberUtils_1.setRangeValue)(0, canvasSize.width);\n particle.position.x = (0, NumberUtils_1.randomInRange)(widthRange);\n particle.position.y = (0, NumberUtils_1.randomInRange)(heightRange);\n particle.spawning = true;\n life.delayTime = 0;\n life.time = 0;\n particle.reset();\n const lifeOptions = particle.options.life;\n life.delay = (0, NumberUtils_1.getRangeValue)(lifeOptions.delay.value) * 1000;\n life.duration = (0, NumberUtils_1.getRangeValue)(lifeOptions.duration.value) * 1000;\n }\n}\nexports.LifeUpdater = LifeUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadLifeUpdater = void 0;\nconst LifeUpdater_1 = require(\"./LifeUpdater\");\nasync function loadLifeUpdater(engine) {\n await engine.addParticleUpdater(\"life\", (container) => new LifeUpdater_1.LifeUpdater(container));\n}\nexports.loadLifeUpdater = loadLifeUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpacityUpdater = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\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;\n if (!particle.opacity) {\n return;\n }\n const minValue = particle.opacity.min;\n const maxValue = particle.opacity.max;\n if (particle.destroyed ||\n !particle.opacity.enable ||\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) > 0 && ((_b = particle.opacity.loops) !== null && _b !== void 0 ? _b : 0) > ((_c = particle.opacity.maxLoops) !== null && _c !== void 0 ? _c : 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 }\n else {\n particle.opacity.value += ((_d = particle.opacity.velocity) !== null && _d !== void 0 ? _d : 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 }\n else {\n particle.opacity.value -= ((_e = particle.opacity.velocity) !== null && _e !== void 0 ? _e : 0) * delta.factor;\n }\n break;\n }\n checkDestroy(particle, particle.opacity.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.opacity.value = (0, NumberUtils_1.clamp)(particle.opacity.value, minValue, maxValue);\n }\n}\nclass 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: (0, NumberUtils_1.getRangeMax)(opacityOptions.value),\n min: (0, NumberUtils_1.getRangeMin)(opacityOptions.value),\n value: (0, NumberUtils_1.getRangeValue)(opacityOptions.value),\n loops: 0,\n maxLoops: (0, NumberUtils_1.getRangeValue)(opacityOptions.animation.count),\n };\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.status = 0;\n const opacityRange = opacityOptions.value;\n particle.opacity.min = (0, NumberUtils_1.getRangeMin)(opacityRange);\n particle.opacity.max = (0, NumberUtils_1.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 = (0, NumberUtils_1.randomInRange)(particle.opacity);\n particle.opacity.status =\n Math.random() >= 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 =\n ((0, NumberUtils_1.getRangeValue)(opacityAnimation.speed) / 100) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 ||\n (((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 &&\n ((_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}\nexports.OpacityUpdater = OpacityUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadOpacityUpdater = void 0;\nconst OpacityUpdater_1 = require(\"./OpacityUpdater\");\nasync function loadOpacityUpdater(engine) {\n await engine.addParticleUpdater(\"opacity\", (container) => new OpacityUpdater_1.OpacityUpdater(container));\n}\nexports.loadOpacityUpdater = loadOpacityUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutOfCanvasUpdater = void 0;\nconst Utils_1 = require(\"./Utils\");\nconst Utils_2 = require(\"../../Utils/Utils\");\nclass OutOfCanvasUpdater {\n constructor(container) {\n this.container = container;\n }\n init() {\n }\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 switch (outMode) {\n case \"bounce\":\n case \"bounce-vertical\":\n case \"bounce-horizontal\":\n case \"bounceVertical\":\n case \"bounceHorizontal\":\n case \"split\":\n this.bounce(particle, delta, direction, outMode);\n break;\n case \"destroy\":\n this.destroy(particle, direction);\n break;\n case \"out\":\n this.out(particle, direction);\n break;\n case \"none\":\n default:\n this.none(particle, direction);\n break;\n }\n }\n destroy(particle, direction) {\n const container = this.container;\n if ((0, Utils_2.isPointInside)(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n return;\n }\n container.particles.remove(particle, undefined, true);\n }\n out(particle, direction) {\n const container = this.container;\n if ((0, Utils_2.isPointInside)(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n return;\n }\n const wrap = particle.options.move.warp, canvasSize = container.canvas.size, 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 }, sizeValue = particle.getRadius(), nextBounds = (0, Utils_2.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 = Math.random() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\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 = Math.random() * 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 = Math.random() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === \"top\" && nextBounds.bottom < -particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * 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 }\n bounce(particle, delta, direction, outMode) {\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(), offset = particle.offset, size = particle.getRadius(), bounds = (0, Utils_2.calculateBounds)(pos, size), canvasSize = container.canvas.size;\n (0, Utils_1.bounceHorizontal)({ particle, outMode, direction, bounds, canvasSize, offset, size });\n (0, Utils_1.bounceVertical)({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n none(particle, direction) {\n if ((particle.options.move.distance.horizontal &&\n (direction === \"left\" || direction === \"right\")) ||\n (particle.options.move.distance.vertical &&\n (direction === \"top\" || direction === \"bottom\"))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, 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) ||\n (particle.velocity.y < 0 && particle.position.y >= -pRadius) ||\n (particle.velocity.x > 0 && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < 0 && particle.position.x >= -pRadius)) {\n return;\n }\n if (!(0, Utils_2.isPointInside)(particle.position, container.canvas.size, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === \"bottom\") ||\n (gravityOptions.inverse && position.y < -pRadius && direction === \"top\")) {\n container.particles.remove(particle);\n }\n }\n }\n}\nexports.OutOfCanvasUpdater = OutOfCanvasUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bounceVertical = exports.bounceHorizontal = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction bounceHorizontal(data) {\n if (!(data.outMode === \"bounce\" ||\n data.outMode === \"bounce-horizontal\" ||\n data.outMode === \"bounceHorizontal\" ||\n data.outMode === \"split\")) {\n return;\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) ||\n (data.direction === \"left\" && data.bounds.left <= 0 && velocity < 0)) {\n const newVelocity = (0, NumberUtils_1.getRangeValue)(data.particle.options.bounce.horizontal.value);\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 }\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}\nexports.bounceHorizontal = bounceHorizontal;\nfunction bounceVertical(data) {\n if (data.outMode === \"bounce\" ||\n data.outMode === \"bounce-vertical\" ||\n data.outMode === \"bounceVertical\" ||\n data.outMode === \"split\") {\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === \"bottom\" &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > 0) ||\n (data.direction === \"top\" && data.bounds.top <= 0 && velocity < 0)) {\n const newVelocity = (0, NumberUtils_1.getRangeValue)(data.particle.options.bounce.vertical.value);\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 }\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 }\n}\nexports.bounceVertical = bounceVertical;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadOutModesUpdater = void 0;\nconst OutOfCanvasUpdater_1 = require(\"./OutOfCanvasUpdater\");\nasync function loadOutModesUpdater(engine) {\n await engine.addParticleUpdater(\"outModes\", (container) => new OutOfCanvasUpdater_1.OutOfCanvasUpdater(container));\n}\nexports.loadOutModesUpdater = loadOutModesUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RollUpdater = void 0;\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction updateRoll(particle, delta) {\n const roll = particle.options.roll;\n if (!particle.roll || !roll.enable) {\n return;\n }\n const speed = particle.roll.speed * delta.factor;\n const max = 2 * Math.PI;\n particle.roll.angle += speed;\n if (particle.roll.angle > max) {\n particle.roll.angle -= max;\n }\n}\nclass RollUpdater {\n init(particle) {\n const rollOpt = particle.options.roll;\n if (rollOpt.enable) {\n particle.roll = {\n angle: Math.random() * Math.PI * 2,\n speed: (0, NumberUtils_1.getRangeValue)(rollOpt.speed) / 360,\n };\n if (rollOpt.backColor) {\n particle.backColor = (0, ColorUtils_1.colorToHsl)(rollOpt.backColor);\n }\n else if (rollOpt.darken.enable && rollOpt.enlighten.enable) {\n const alterType = Math.random() >= 0.5 ? \"darken\" : \"enlighten\";\n particle.roll.alter = {\n type: alterType,\n value: (0, NumberUtils_1.getRangeValue)(alterType === \"darken\" ? rollOpt.darken.value : rollOpt.enlighten.value),\n };\n }\n else if (rollOpt.darken.enable) {\n particle.roll.alter = {\n type: \"darken\",\n value: (0, NumberUtils_1.getRangeValue)(rollOpt.darken.value),\n };\n }\n else if (rollOpt.enlighten.enable) {\n particle.roll.alter = {\n type: \"enlighten\",\n value: (0, NumberUtils_1.getRangeValue)(rollOpt.enlighten.value),\n };\n }\n }\n else {\n particle.roll = { angle: 0, speed: 0 };\n }\n }\n isEnabled(particle) {\n const roll = particle.options.roll;\n return !particle.destroyed && !particle.spawning && roll.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateRoll(particle, delta);\n }\n}\nexports.RollUpdater = RollUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadRollUpdater = void 0;\nconst RollUpdater_1 = require(\"./RollUpdater\");\nasync function loadRollUpdater(engine) {\n await engine.addParticleUpdater(\"roll\", () => new RollUpdater_1.RollUpdater());\n}\nexports.loadRollUpdater = loadRollUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SizeUpdater = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\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;\n const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const minValue = particle.size.min;\n const maxValue = particle.size.max;\n if (particle.destroyed ||\n !particle.size.enable ||\n (((_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 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 }\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 }\n else {\n particle.size.value -= sizeVelocity;\n }\n }\n checkDestroy(particle, particle.size.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.size.value = (0, NumberUtils_1.clamp)(particle.size.value, minValue, maxValue);\n }\n}\nclass SizeUpdater {\n init() {\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n (((_a = particle.size.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 ||\n (((_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}\nexports.SizeUpdater = SizeUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadSizeUpdater = void 0;\nconst SizeUpdater_1 = require(\"./SizeUpdater\");\nasync function loadSizeUpdater(engine) {\n await engine.addParticleUpdater(\"size\", () => new SizeUpdater_1.SizeUpdater());\n}\nexports.loadSizeUpdater = loadSizeUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StrokeColorUpdater = void 0;\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\nconst Utils_1 = require(\"../../Utils/Utils\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a;\n const colorValue = value;\n if (!colorValue || !colorValue.enable) {\n return;\n }\n const offset = (0, NumberUtils_1.randomInRange)(valueAnimation.offset);\n const velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6;\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 }\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.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 const 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}\nclass StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a, _b;\n const container = this.container;\n particle.stroke =\n particle.options.stroke instanceof Array\n ? (0, Utils_1.itemFromArray)(particle.options.stroke, particle.id, particle.options.reduceDuplicates)\n : particle.options.stroke;\n particle.strokeWidth = particle.stroke.width * container.retina.pixelRatio;\n const strokeHslColor = (_a = (0, ColorUtils_1.colorToHsl)(particle.stroke.color)) !== null && _a !== void 0 ? _a : particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = (0, ColorUtils_1.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 &&\n !particle.spawning &&\n !!color &&\n ((((_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h.value) !== undefined && color.animation.h.enable) ||\n (((_c = particle.strokeColor) === null || _c === void 0 ? void 0 : _c.s.value) !== undefined && color.animation.s.enable) ||\n (((_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}\nexports.StrokeColorUpdater = StrokeColorUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadStrokeColorUpdater = void 0;\nconst StrokeColorUpdater_1 = require(\"./StrokeColorUpdater\");\nasync function loadStrokeColorUpdater(engine) {\n await engine.addParticleUpdater(\"strokeColor\", (container) => new StrokeColorUpdater_1.StrokeColorUpdater(container));\n}\nexports.loadStrokeColorUpdater = loadStrokeColorUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TiltUpdater = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction updateTilt(particle, delta) {\n var _a;\n if (!particle.tilt) {\n return;\n }\n const tilt = particle.options.tilt;\n const tiltAnimation = tilt.animation;\n const speed = ((_a = particle.tilt.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const max = 2 * Math.PI;\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}\nclass TiltUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const tiltOptions = particle.options.tilt;\n particle.tilt = {\n enable: tiltOptions.enable,\n value: ((0, NumberUtils_1.getRangeValue)(tiltOptions.value) * Math.PI) / 180,\n sinDirection: Math.random() >= 0.5 ? 1 : -1,\n cosDirection: Math.random() >= 0.5 ? 1 : -1,\n };\n let tiltDirection = tiltOptions.direction;\n if (tiltDirection === \"random\") {\n const index = Math.floor(Math.random() * 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 = particle.options.tilt.animation;\n if (tiltAnimation.enable) {\n particle.tilt.velocity = ((0, NumberUtils_1.getRangeValue)(tiltAnimation.speed) / 360) * this.container.retina.reduceFactor;\n if (!tiltAnimation.sync) {\n particle.tilt.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n const tilt = particle.options.tilt;\n const tiltAnimation = tilt.animation;\n return !particle.destroyed && !particle.spawning && tiltAnimation.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateTilt(particle, delta);\n }\n}\nexports.TiltUpdater = TiltUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadTiltUpdater = void 0;\nconst TiltUpdater_1 = require(\"./TiltUpdater\");\nasync function loadTiltUpdater(engine) {\n await engine.addParticleUpdater(\"tilt\", (container) => new TiltUpdater_1.TiltUpdater(container));\n}\nexports.loadTiltUpdater = loadTiltUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TwinkleUpdater = void 0;\nconst ColorUtils_1 = require(\"../../Utils/ColorUtils\");\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nclass TwinkleUpdater {\n getColorStyles(particle, context, radius, opacity) {\n const pOptions = particle.options, twinkle = pOptions.twinkle.particles, twinkling = twinkle.enable && Math.random() < twinkle.frequency, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, twinklingOpacity = twinkling ? (0, NumberUtils_1.getRangeValue)(twinkle.opacity) * zOpacityFactor : opacity, twinkleRgb = (0, ColorUtils_1.colorToHsl)(twinkle.color), twinkleStyle = twinkleRgb ? (0, ColorUtils_1.getStyleFromHsl)(twinkleRgb, twinklingOpacity) : undefined, res = {}, needsTwinkle = twinkling && twinkleStyle;\n res.fill = needsTwinkle ? twinkleStyle : undefined;\n res.stroke = needsTwinkle ? twinkleStyle : undefined;\n return res;\n }\n init() {\n }\n isEnabled(particle) {\n return particle.options.twinkle.particles.enable;\n }\n update() {\n }\n}\nexports.TwinkleUpdater = TwinkleUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadTwinkleUpdater = void 0;\nconst TwinkleUpdater_1 = require(\"./TwinkleUpdater\");\nasync function loadTwinkleUpdater(engine) {\n await engine.addParticleUpdater(\"twinkle\", () => new TwinkleUpdater_1.TwinkleUpdater());\n}\nexports.loadTwinkleUpdater = loadTwinkleUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WobbleUpdater = void 0;\nconst NumberUtils_1 = require(\"../../Utils/NumberUtils\");\nfunction updateWobble(particle, delta) {\n var _a;\n const wobble = particle.options.wobble;\n if (!wobble.enable || !particle.wobble) {\n return;\n }\n const speed = particle.wobble.speed * delta.factor;\n const distance = (((_a = particle.retina.wobbleDistance) !== null && _a !== void 0 ? _a : 0) * delta.factor) / (1000 / 60);\n const max = 2 * Math.PI;\n particle.wobble.angle += speed;\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}\nclass WobbleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const wobbleOpt = particle.options.wobble;\n if (wobbleOpt.enable) {\n particle.wobble = {\n angle: Math.random() * Math.PI * 2,\n speed: (0, NumberUtils_1.getRangeValue)(wobbleOpt.speed) / 360,\n };\n }\n else {\n particle.wobble = {\n angle: 0,\n speed: 0,\n };\n }\n particle.retina.wobbleDistance = (0, NumberUtils_1.getRangeValue)(wobbleOpt.distance) * this.container.retina.pixelRatio;\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning && particle.options.wobble.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateWobble(particle, delta);\n }\n}\nexports.WobbleUpdater = WobbleUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadWobbleUpdater = void 0;\nconst WobbleUpdater_1 = require(\"./WobbleUpdater\");\nasync function loadWobbleUpdater(engine) {\n await engine.addParticleUpdater(\"wobble\", (container) => new WobbleUpdater_1.WobbleUpdater(container));\n}\nexports.loadWobbleUpdater = loadWobbleUpdater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alterHsl = exports.drawEllipse = exports.drawParticlePlugin = exports.drawPlugin = exports.drawShapeAfterEffect = exports.drawShape = exports.drawParticle = exports.drawGrabLine = exports.gradient = exports.drawConnectLine = exports.drawLinkTriangle = exports.drawLinkLine = exports.clear = exports.paintBase = void 0;\nconst ColorUtils_1 = require(\"./ColorUtils\");\nconst NumberUtils_1 = require(\"./NumberUtils\");\nfunction 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}\nfunction 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}\nfunction 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}\nexports.paintBase = paintBase;\nfunction clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexports.clear = clear;\nfunction drawLinkLine(context, width, begin, end, maxDistance, canvasSize, warp, backgroundMask, composite, colorLine, opacity, shadow) {\n let drawn = false;\n if ((0, NumberUtils_1.getDistance)(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (warp) {\n let pi1, pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n }, d1 = (0, NumberUtils_1.getDistances)(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n }, d2 = (0, NumberUtils_1.getDistances)(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x, xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n }, d3 = (0, NumberUtils_1.getDistances)(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x, xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\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 = (0, ColorUtils_1.getStyleFromRgb)(colorLine, opacity);\n if (shadow.enable) {\n const shadowColor = (0, ColorUtils_1.colorToRgb)(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = (0, ColorUtils_1.getStyleFromRgb)(shadowColor);\n }\n }\n context.stroke();\n}\nexports.drawLinkLine = drawLinkLine;\nfunction 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 = (0, ColorUtils_1.getStyleFromRgb)(colorTriangle, opacityTriangle);\n context.fill();\n}\nexports.drawLinkTriangle = drawLinkTriangle;\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}\nexports.drawConnectLine = drawConnectLine;\nfunction gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = (0, ColorUtils_1.colorMix)(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, (0, ColorUtils_1.getStyleFromHsl)(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, (0, ColorUtils_1.getStyleFromRgb)(midRgb, opacity));\n grad.addColorStop(1, (0, ColorUtils_1.getStyleFromHsl)(color2, opacity));\n return grad;\n}\nexports.gradient = gradient;\nfunction drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = (0, ColorUtils_1.getStyleFromRgb)(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n}\nexports.drawGrabLine = drawGrabLine;\nfunction drawParticle(container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow) {\n var _a, _b, _c, _d;\n const pos = particle.getPosition(), tiltOptions = particle.options.tilt, rollOptions = particle.options.roll;\n context.save();\n if (tiltOptions.enable || rollOptions.enable) {\n const roll = rollOptions.enable && particle.roll, tilt = tiltOptions.enable && particle.tilt, rollHorizontal = roll && (rollOptions.mode === \"horizontal\" || rollOptions.mode === \"both\"), rollVertical = roll && (rollOptions.mode === \"vertical\" || rollOptions.mode === \"both\");\n context.setTransform(rollHorizontal ? Math.cos(particle.roll.angle) : 1, tilt ? Math.cos(particle.tilt.value) * particle.tilt.cosDirection : 0, tilt ? Math.sin(particle.tilt.value) * particle.tilt.sinDirection : 0, rollVertical ? Math.sin(particle.roll.angle) : 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n context.beginPath();\n const angle = ((_b = (_a = particle.rotate) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0) + (particle.options.rotate.path ? 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 = (0, ColorUtils_1.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 = (_c = particle.strokeWidth) !== null && _c !== void 0 ? _c : 0;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (((_d = stroke === null || stroke === void 0 ? void 0 : stroke.width) !== null && _d !== void 0 ? _d : 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 (tiltOptions.enable && particle.tilt) {\n context.setTransform(1, Math.cos(particle.tilt.value) * particle.tilt.cosDirection, Math.sin(particle.tilt.value) * particle.tilt.sinDirection, 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n}\nexports.drawParticle = drawParticle;\nfunction 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}\nexports.drawShape = drawShape;\nfunction 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}\nexports.drawShapeAfterEffect = drawShapeAfterEffect;\nfunction drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n context.save();\n plugin.draw(context, delta);\n context.restore();\n}\nexports.drawPlugin = drawPlugin;\nfunction 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}\nexports.drawParticlePlugin = drawParticlePlugin;\nfunction drawEllipse(context, particle, fillColorValue, radius, opacity, width, rotation, start, end) {\n if (width <= 0) {\n return;\n }\n const pos = particle.getPosition();\n if (fillColorValue) {\n context.strokeStyle = (0, ColorUtils_1.getStyleFromHsl)(fillColorValue, opacity);\n }\n context.lineWidth = width;\n const rotationRadian = (rotation * Math.PI) / 180;\n context.beginPath();\n context.ellipse(pos.x, pos.y, radius / 2, radius * 2, rotationRadian, start, end);\n context.stroke();\n}\nexports.drawEllipse = drawEllipse;\nfunction 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}\nexports.alterHsl = alterHsl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHslAnimationFromHsl = exports.getHslFromAnimation = exports.getLinkRandomColor = exports.getLinkColor = exports.colorMix = exports.getStyleFromHsv = exports.getStyleFromHsl = exports.getStyleFromRgb = exports.getRandomRgbColor = exports.rgbaToHsva = exports.rgbToHsv = exports.hsvaToRgba = exports.hsvToRgb = exports.hsvaToHsla = exports.hsvToHsl = exports.hslaToHsva = exports.hslToHsv = exports.hslaToRgba = exports.hslToRgb = exports.stringToRgb = exports.stringToAlpha = exports.rgbToHsl = exports.colorToHsl = exports.colorToRgb = void 0;\nconst NumberUtils_1 = require(\"./NumberUtils\");\nconst Constants_1 = require(\"../Core/Utils/Constants\");\nconst Utils_1 = require(\"./Utils\");\nfunction hue2rgb(p, q, t) {\n let tCalc = t;\n if (tCalc < 0) {\n tCalc += 1;\n }\n if (tCalc > 1) {\n tCalc -= 1;\n }\n if (tCalc < 1 / 6) {\n return p + (q - p) * 6 * tCalc;\n }\n if (tCalc < 1 / 2) {\n return q;\n }\n if (tCalc < 2 / 3) {\n return p + (q - p) * (2 / 3 - tCalc) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n if (input.startsWith(\"rgb\")) {\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n else if (input.startsWith(\"hsl\")) {\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hslaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n else if (input.startsWith(\"hsv\")) {\n const regex = /hsva?\\(\\s*(\\d+)°\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hsvaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n s: parseInt(result[2], 10),\n v: parseInt(result[3], 10),\n })\n : undefined;\n }\n else {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\n const hexFixed = input.replace(shorthandRegex, (_m, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n });\n const regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const result = regex.exec(hexFixed);\n return result\n ? {\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 }\n : undefined;\n }\n}\nfunction colorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n let res;\n if (typeof color.value === \"string\") {\n res = color.value === Constants_1.Constants.randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n else {\n if (color.value instanceof Array) {\n const colorSelected = (0, Utils_1.itemFromArray)(color.value, index, useIndex);\n res = colorToRgb({ value: colorSelected });\n }\n else {\n const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n res = rgbColor;\n }\n else {\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n res = hslToRgb(hslColor);\n }\n else {\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n res = hsvToRgb(hsvColor);\n }\n }\n }\n }\n }\n return res;\n}\nexports.colorToRgb = colorToRgb;\nfunction colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb !== undefined ? rgbToHsl(rgb) : undefined;\n}\nexports.colorToHsl = colorToHsl;\nfunction rgbToHsl(color) {\n const r1 = color.r / 255, g1 = color.g / 255, b1 = color.b / 255;\n const max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1);\n const 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 =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (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 return res;\n}\nexports.rgbToHsl = rgbToHsl;\nfunction stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexports.stringToAlpha = stringToAlpha;\nfunction stringToRgb(input) {\n return stringToRgba(input);\n}\nexports.stringToRgb = stringToRgb;\nfunction hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 }, hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (hslPercent.s === 0) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s, 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}\nexports.hslToRgb = hslToRgb;\nfunction 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}\nexports.hslaToRgba = hslaToRgba;\nfunction hslToHsv(hsl) {\n const l = hsl.l / 100, sl = hsl.s / 100, v = l + sl * Math.min(l, 1 - l), sv = !v ? 0 : 2 * (1 - l / v);\n return {\n h: hsl.h,\n s: sv * 100,\n v: v * 100,\n };\n}\nexports.hslToHsv = hslToHsv;\nfunction hslaToHsva(hsla) {\n const hsvResult = hslToHsv(hsla);\n return {\n a: hsla.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexports.hslaToHsva = hslaToHsva;\nfunction hsvToHsl(hsv) {\n const v = hsv.v / 100, sv = hsv.s / 100, l = v * (1 - sv / 2), sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h: hsv.h,\n l: l * 100,\n s: sl * 100,\n };\n}\nexports.hsvToHsl = hsvToHsl;\nfunction hsvaToHsla(hsva) {\n const hslResult = hsvToHsl(hsva);\n return {\n a: hsva.a,\n h: hslResult.h,\n l: hslResult.l,\n s: hslResult.s,\n };\n}\nexports.hsvaToHsla = hsvaToHsla;\nfunction hsvToRgb(hsv) {\n const result = { b: 0, g: 0, r: 0 }, hsvPercent = {\n h: hsv.h / 60,\n s: hsv.s / 100,\n v: hsv.v / 100,\n };\n const c = hsvPercent.v * hsvPercent.s, x = c * (1 - Math.abs((hsvPercent.h % 2) - 1));\n let tempRgb;\n if (hsvPercent.h >= 0 && hsvPercent.h <= 1) {\n tempRgb = {\n r: c,\n g: x,\n b: 0,\n };\n }\n else if (hsvPercent.h > 1 && hsvPercent.h <= 2) {\n tempRgb = {\n r: x,\n g: c,\n b: 0,\n };\n }\n else if (hsvPercent.h > 2 && hsvPercent.h <= 3) {\n tempRgb = {\n r: 0,\n g: c,\n b: x,\n };\n }\n else if (hsvPercent.h > 3 && hsvPercent.h <= 4) {\n tempRgb = {\n r: 0,\n g: x,\n b: c,\n };\n }\n else if (hsvPercent.h > 4 && hsvPercent.h <= 5) {\n tempRgb = {\n r: x,\n g: 0,\n b: c,\n };\n }\n else if (hsvPercent.h > 5 && hsvPercent.h <= 6) {\n tempRgb = {\n r: c,\n g: 0,\n b: x,\n };\n }\n if (tempRgb) {\n const m = hsvPercent.v - c;\n result.r = Math.floor((tempRgb.r + m) * 255);\n result.g = Math.floor((tempRgb.g + m) * 255);\n result.b = Math.floor((tempRgb.b + m) * 255);\n }\n return result;\n}\nexports.hsvToRgb = hsvToRgb;\nfunction hsvaToRgba(hsva) {\n const rgbResult = hsvToRgb(hsva);\n return {\n a: hsva.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexports.hsvaToRgba = hsvaToRgba;\nfunction rgbToHsv(rgb) {\n const rgbPercent = {\n r: rgb.r / 255,\n g: rgb.g / 255,\n b: rgb.b / 255,\n }, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;\n let h = 0;\n if (v === rgbPercent.r) {\n h = 60 * ((rgbPercent.g - rgbPercent.b) / c);\n }\n else if (v === rgbPercent.g) {\n h = 60 * (2 + (rgbPercent.b - rgbPercent.r) / c);\n }\n else if (v === rgbPercent.b) {\n h = 60 * (4 + (rgbPercent.r - rgbPercent.g) / c);\n }\n const s = !v ? 0 : c / v;\n return {\n h,\n s: s * 100,\n v: v * 100,\n };\n}\nexports.rgbToHsv = rgbToHsv;\nfunction rgbaToHsva(rgba) {\n const hsvResult = rgbToHsv(rgba);\n return {\n a: rgba.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexports.rgbaToHsva = rgbaToHsva;\nfunction getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n g: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n r: Math.floor((0, NumberUtils_1.randomInRange)((0, NumberUtils_1.setRangeValue)(fixedMin, 256))),\n };\n}\nexports.getRandomRgbColor = getRandomRgbColor;\nfunction getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexports.getStyleFromRgb = getStyleFromRgb;\nfunction getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexports.getStyleFromHsl = getStyleFromHsl;\nfunction getStyleFromHsv(color, opacity) {\n return getStyleFromHsl(hsvToHsl(color), opacity);\n}\nexports.getStyleFromHsv = getStyleFromHsv;\nfunction colorMix(color1, color2, size1, size2) {\n let rgb1 = color1, 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: (0, NumberUtils_1.mix)(rgb1.b, rgb2.b, size1, size2),\n g: (0, NumberUtils_1.mix)(rgb1.g, rgb2.g, size1, size2),\n r: (0, NumberUtils_1.mix)(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexports.colorMix = colorMix;\nfunction getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === Constants_1.Constants.randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === \"mid\") {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor(), 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 }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexports.getLinkColor = getLinkColor;\nfunction getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === Constants_1.Constants.randomColorValue) {\n if (consent) {\n return colorToRgb({\n value: color,\n });\n }\n else if (blink) {\n return Constants_1.Constants.randomColorValue;\n }\n else {\n return Constants_1.Constants.midColorValue;\n }\n }\n else {\n return colorToRgb({\n value: color,\n });\n }\n}\nexports.getLinkRandomColor = getLinkRandomColor;\nfunction getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexports.getHslFromAnimation = getHslFromAnimation;\nfunction 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}\nexports.getHslAnimationFromHsl = getHslAnimationFromHsl;\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = ((0, NumberUtils_1.getRangeValue)(colorAnimation.speed) / 100) * reduceFactor;\n if (colorAnimation.sync) {\n return;\n }\n colorValue.status = 0;\n colorValue.velocity *= Math.random();\n if (colorValue.value) {\n colorValue.value *= Math.random();\n }\n }\n else {\n colorValue.velocity = 0;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calcExactPositionOrRandomFromSizeRanged = exports.calcExactPositionOrRandomFromSize = exports.calcPositionOrRandomFromSizeRanged = exports.calcPositionOrRandomFromSize = exports.calcPositionFromSize = exports.calcEasing = exports.collisionVelocity = exports.getParticleBaseVelocity = exports.getParticleDirectionAngle = exports.getDistance = exports.getDistances = exports.getValue = exports.setRangeValue = exports.getRangeMax = exports.getRangeMin = exports.getRangeValue = exports.randomInRange = exports.mix = exports.clamp = void 0;\nconst Vector_1 = require(\"../Core/Utils/Vector\");\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexports.clamp = clamp;\nfunction mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexports.mix = mix;\nfunction randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return Math.random() * (max - min) + min;\n}\nexports.randomInRange = randomInRange;\nfunction getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexports.getRangeValue = getRangeValue;\nfunction getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexports.getRangeMin = getRangeMin;\nfunction getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexports.getRangeMax = getRangeMax;\nfunction setRangeValue(source, value) {\n if (source === value || (value === undefined && typeof source === \"number\")) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexports.setRangeValue = setRangeValue;\nfunction getValue(options) {\n const random = options.random, { enable, minimumValue } = typeof random === \"boolean\"\n ? {\n enable: random,\n minimumValue: 0,\n }\n : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexports.getValue = getValue;\nfunction getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx * dx + dy * dy) };\n}\nexports.getDistances = getDistances;\nfunction getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexports.getDistance = getDistance;\nfunction getParticleDirectionAngle(direction) {\n if (typeof direction === \"number\") {\n return (direction * Math.PI) / 180;\n }\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 \"none\":\n default:\n return Math.random() * Math.PI * 2;\n }\n }\n}\nexports.getParticleDirectionAngle = getParticleDirectionAngle;\nfunction getParticleBaseVelocity(direction) {\n const baseVelocity = Vector_1.Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexports.getParticleBaseVelocity = getParticleBaseVelocity;\nfunction collisionVelocity(v1, v2, m1, m2) {\n return Vector_1.Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);\n}\nexports.collisionVelocity = collisionVelocity;\nfunction calcEasing(value, type) {\n switch (type) {\n case \"ease-out-quad\":\n return 1 - (1 - value) ** 2;\n case \"ease-out-cubic\":\n return 1 - (1 - value) ** 3;\n case \"ease-out-quart\":\n return 1 - (1 - value) ** 4;\n case \"ease-out-quint\":\n return 1 - (1 - value) ** 5;\n case \"ease-out-expo\":\n return value === 1 ? 1 : 1 - Math.pow(2, -10 * value);\n case \"ease-out-sine\":\n return Math.sin((value * Math.PI) / 2);\n case \"ease-out-back\": {\n const c1 = 1.70158, c3 = c1 + 1;\n return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2);\n }\n case \"ease-out-circ\":\n return Math.sqrt(1 - Math.pow(value - 1, 2));\n default:\n return value;\n }\n}\nexports.calcEasing = calcEasing;\nfunction 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 ? {\n x: (data.position.x * data.size.width) / 100,\n y: (data.position.y * data.size.height) / 100,\n }\n : undefined;\n}\nexports.calcPositionFromSize = calcPositionFromSize;\nfunction 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 : Math.random() * 100) * data.size.width) / 100,\n y: (((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * 100) * data.size.height) / 100,\n };\n}\nexports.calcPositionOrRandomFromSize = calcPositionOrRandomFromSize;\nfunction 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({ size: data.size, position });\n}\nexports.calcPositionOrRandomFromSizeRanged = calcPositionOrRandomFromSizeRanged;\nfunction 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 : Math.random() * data.size.width,\n y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * data.size.height,\n };\n}\nexports.calcExactPositionOrRandomFromSize = calcExactPositionOrRandomFromSize;\nfunction 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({ size: data.size, position });\n}\nexports.calcExactPositionOrRandomFromSizeRanged = calcExactPositionOrRandomFromSizeRanged;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rectBounce = exports.circleBounce = exports.circleBounceDataFromParticle = exports.divMode = exports.singleDivModeExecute = exports.divModeExecute = exports.isDivModeEnabled = exports.deepExtend = exports.calculateBounds = exports.areBoundsInside = exports.isPointInside = exports.itemFromArray = exports.arrayRandomIndex = exports.loadFont = exports.isInArray = exports.cancelAnimation = exports.animate = exports.isSsr = void 0;\nconst NumberUtils_1 = require(\"./NumberUtils\");\nconst Vector_1 = require(\"../Core/Utils/Vector\");\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min < rectOtherSide.min ||\n pOtherSide.min > rectOtherSide.max ||\n pOtherSide.max < rectOtherSide.min ||\n pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0) ||\n (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 if (!(selectors instanceof Array)) {\n return element.matches(selectors);\n }\n for (const selector of selectors) {\n if (element.matches(selector)) {\n return true;\n }\n }\n return false;\n}\nfunction isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexports.isSsr = isSsr;\nfunction animate() {\n return isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.setTimeout)(callback);\n}\nexports.animate = animate;\nfunction cancelAnimation() {\n return isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout)(handle);\n}\nexports.cancelAnimation = cancelAnimation;\nfunction isInArray(value, array) {\n return value === array || (array instanceof Array && array.indexOf(value) > -1);\n}\nexports.isInArray = isInArray;\nasync function loadFont(character) {\n var _a, _b;\n try {\n await document.fonts.load(`${(_a = character.weight) !== null && _a !== void 0 ? _a : \"400\"} 36px '${(_b = character.font) !== null && _b !== void 0 ? _b : \"Verdana\"}'`);\n }\n catch (_c) {\n }\n}\nexports.loadFont = loadFont;\nfunction arrayRandomIndex(array) {\n return Math.floor(Math.random() * array.length);\n}\nexports.arrayRandomIndex = arrayRandomIndex;\nfunction itemFromArray(array, index, useIndex = true) {\n const fixedIndex = index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array);\n return array[fixedIndex];\n}\nexports.itemFromArray = itemFromArray;\nfunction isPointInside(point, size, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, direction);\n}\nexports.isPointInside = isPointInside;\nfunction areBoundsInside(bounds, size, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > 0;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > 0;\n }\n return inside;\n}\nexports.areBoundsInside = areBoundsInside;\nfunction 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}\nexports.calculateBounds = calculateBounds;\nfunction deepExtend(destination, ...sources) {\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 }\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, value = sourceDict[key], isObject = typeof value === \"object\", destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexports.deepExtend = deepExtend;\nfunction isDivModeEnabled(mode, divs) {\n return divs instanceof Array ? !!divs.find((t) => t.enable && isInArray(mode, t.mode)) : isInArray(mode, divs.mode);\n}\nexports.isDivModeEnabled = isDivModeEnabled;\nfunction divModeExecute(mode, divs, callback) {\n if (divs instanceof Array) {\n for (const div of divs) {\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n }\n }\n else {\n const divMode = divs.mode, divEnabled = divs.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(divs, callback);\n }\n }\n}\nexports.divModeExecute = divModeExecute;\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n callback(selector, div);\n }\n }\n else {\n callback(selectors, div);\n }\n}\nexports.singleDivModeExecute = singleDivModeExecute;\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n if (divs instanceof Array) {\n return divs.find((d) => checkSelector(element, d.selectors));\n }\n else if (checkSelector(element, divs.selectors)) {\n return divs;\n }\n}\nexports.divMode = divMode;\nfunction circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector_1.Vector.create((0, NumberUtils_1.getValue)(p.options.bounce.horizontal), (0, NumberUtils_1.getValue)(p.options.bounce.vertical)),\n };\n}\nexports.circleBounceDataFromParticle = circleBounceDataFromParticle;\nfunction circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = (0, NumberUtils_1.getDistances)(pos2, pos1);\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = (0, NumberUtils_1.collisionVelocity)(u1, u2, m1, m2), v2 = (0, NumberUtils_1.collisionVelocity)(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), 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}\nexports.circleBounce = circleBounce;\nfunction rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size);\n const 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, (0, NumberUtils_1.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, (0, NumberUtils_1.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}\nexports.rectBounce = rectBounce;\n","\"use strict\";\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Engine_initialized, _Engine_loader;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Engine = void 0;\nconst Loader_1 = require(\"./Core/Loader\");\nconst Plugins_1 = require(\"./Core/Utils/Plugins\");\nclass Engine {\n constructor() {\n _Engine_initialized.set(this, void 0);\n _Engine_loader.set(this, void 0);\n __classPrivateFieldSet(this, _Engine_initialized, false, \"f\");\n this.domArray = [];\n __classPrivateFieldSet(this, _Engine_loader, new Loader_1.Loader(this), \"f\");\n this.plugins = new Plugins_1.Plugins(this);\n }\n init() {\n if (!__classPrivateFieldGet(this, _Engine_initialized, \"f\")) {\n __classPrivateFieldSet(this, _Engine_initialized, true, \"f\");\n }\n }\n async loadFromArray(tagId, options, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options, index);\n }\n async load(tagId, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options);\n }\n async set(id, element, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").set(id, element, options);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").loadJSON(tagId, pathConfigJson, index);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").setOnClickHandler(callback);\n }\n dom() {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").dom();\n }\n domItem(index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").domItem(index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\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 }\n else {\n customDrawer = drawer;\n }\n this.plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n async addPreset(preset, options, override = false) {\n this.plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addPlugin(plugin) {\n this.plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n this.plugins.addPathGenerator(name, generator);\n await this.refresh();\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}\nexports.Engine = Engine;\n_Engine_initialized = new WeakMap(), _Engine_loader = new WeakMap();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadFull = void 0;\nconst Absorbers_1 = require(\"./Plugins/Absorbers\");\nconst Emitters_1 = require(\"./Plugins/Emitters\");\nconst Trail_1 = require(\"./Interactions/External/Trail\");\nconst PolygonMask_1 = require(\"./Plugins/PolygonMask\");\nconst Roll_1 = require(\"./Updaters/Roll\");\nconst slim_1 = require(\"./slim\");\nconst Tilt_1 = require(\"./Updaters/Tilt\");\nconst Twinkle_1 = require(\"./Updaters/Twinkle\");\nconst Wobble_1 = require(\"./Updaters/Wobble\");\nasync function loadFull(engine) {\n await (0, slim_1.loadSlim)(engine);\n await (0, Roll_1.loadRollUpdater)(engine);\n await (0, Tilt_1.loadTiltUpdater)(engine);\n await (0, Twinkle_1.loadTwinkleUpdater)(engine);\n await (0, Wobble_1.loadWobbleUpdater)(engine);\n await (0, Trail_1.loadExternalTrailInteraction)(engine);\n await (0, Absorbers_1.loadAbsorbersPlugin)(engine);\n await (0, Emitters_1.loadEmittersPlugin)(engine);\n await (0, PolygonMask_1.loadPolygonMaskPlugin)(engine);\n}\nexports.loadFull = loadFull;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tsParticles = exports.pJSDom = exports.particlesJS = exports.loadPolygonMaskPlugin = exports.loadEmittersPlugin = exports.loadAbsorbersPlugin = exports.Main = exports.Engine = void 0;\nconst engine_1 = require(\"./engine\");\nObject.defineProperty(exports, \"Engine\", { enumerable: true, get: function () { return engine_1.Engine; } });\nObject.defineProperty(exports, \"Main\", { enumerable: true, get: function () { return engine_1.Engine; } });\nconst pjs_1 = require(\"./pjs\");\nconst full_1 = require(\"./full\");\nconst tsParticles = new engine_1.Engine();\nexports.tsParticles = tsParticles;\ntsParticles.init();\nconst { particlesJS, pJSDom, } = (0, pjs_1.initPjs)(tsParticles);\nexports.particlesJS = particlesJS;\nexports.pJSDom = pJSDom;\n(0, full_1.loadFull)(tsParticles);\n__exportStar(require(\"./Core/Interfaces/Colors\"), exports);\n__exportStar(require(\"./Core/Interfaces/Gradients\"), exports);\n__exportStar(require(\"./Core/Interfaces/IBounds\"), exports);\n__exportStar(require(\"./Core/Interfaces/IBubbleParticleData\"), exports);\n__exportStar(require(\"./Core/Interfaces/ICircleBouncer\"), exports);\n__exportStar(require(\"./Core/Interfaces/IContainerInteractivity\"), exports);\n__exportStar(require(\"./Core/Interfaces/IContainerPlugin\"), exports);\n__exportStar(require(\"./Core/Interfaces/ICoordinates\"), exports);\n__exportStar(require(\"./Core/Interfaces/IDelta\"), exports);\n__exportStar(require(\"./Core/Interfaces/IDimension\"), exports);\n__exportStar(require(\"./Core/Interfaces/IDistance\"), exports);\n__exportStar(require(\"./Core/Interfaces/IExternalInteractor\"), exports);\n__exportStar(require(\"./Core/Interfaces/IInteractor\"), exports);\n__exportStar(require(\"./Core/Interfaces/IMouseData\"), exports);\n__exportStar(require(\"./Core/Interfaces/IMovePathGenerator\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticle\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleColorStyle\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleGravity\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleHslAnimation\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticlesInteractor\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleLife\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleLoops\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleRetinaProps\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleRoll\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleSpin\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleUpdater\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleValueAnimation\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticleWobble\"), exports);\n__exportStar(require(\"./Core/Interfaces/IParticlesMover\"), exports);\n__exportStar(require(\"./Core/Interfaces/IPlugin\"), exports);\n__exportStar(require(\"./Core/Interfaces/IRangeValue\"), exports);\n__exportStar(require(\"./Core/Interfaces/IRectSideResult\"), exports);\n__exportStar(require(\"./Core/Interfaces/IShapeDrawer\"), exports);\n__exportStar(require(\"./Core/Interfaces/IShapeValues\"), exports);\n__exportStar(require(\"./Core/Utils/Circle\"), exports);\n__exportStar(require(\"./Core/Utils/CircleWarp\"), exports);\n__exportStar(require(\"./Core/Utils/Constants\"), exports);\n__exportStar(require(\"./Core/Utils/EventListeners\"), exports);\n__exportStar(require(\"./Core/Utils/ExternalInteractorBase\"), exports);\n__exportStar(require(\"./Core/Utils/FrameManager\"), exports);\n__exportStar(require(\"./Core/Utils/InteractionManager\"), exports);\n__exportStar(require(\"./Core/Utils/ParticlesInteractorBase\"), exports);\n__exportStar(require(\"./Core/Utils/Plugins\"), exports);\n__exportStar(require(\"./Core/Utils/Point\"), exports);\n__exportStar(require(\"./Core/Utils/QuadTree\"), exports);\n__exportStar(require(\"./Core/Utils/Range\"), exports);\n__exportStar(require(\"./Core/Utils/Rectangle\"), exports);\n__exportStar(require(\"./Core/Utils/Vector\"), exports);\n__exportStar(require(\"./Core/Utils/Vector3d\"), exports);\n__exportStar(require(\"./Core/Canvas\"), exports);\n__exportStar(require(\"./Core/Container\"), exports);\n__exportStar(require(\"./Core/Loader\"), exports);\n__exportStar(require(\"./Core/Particle\"), exports);\n__exportStar(require(\"./Core/Particles\"), exports);\n__exportStar(require(\"./Core/Retina\"), exports);\n__exportStar(require(\"./Enums/Directions/MoveDirection\"), exports);\n__exportStar(require(\"./Enums/Directions/RotateDirection\"), exports);\n__exportStar(require(\"./Enums/Directions/OutModeDirection\"), exports);\n__exportStar(require(\"./Enums/Directions/TiltDirection\"), exports);\n__exportStar(require(\"./Enums/Modes/ClickMode\"), exports);\n__exportStar(require(\"./Enums/Modes/DestroyMode\"), exports);\n__exportStar(require(\"./Enums/Modes/DivMode\"), exports);\n__exportStar(require(\"./Enums/Modes/HoverMode\"), exports);\n__exportStar(require(\"./Enums/Modes/CollisionMode\"), exports);\n__exportStar(require(\"./Enums/Modes/OutMode\"), exports);\n__exportStar(require(\"./Enums/Modes/RollMode\"), exports);\n__exportStar(require(\"./Enums/Modes/SizeMode\"), exports);\n__exportStar(require(\"./Enums/Modes/ThemeMode\"), exports);\n__exportStar(require(\"./Enums/Modes/ResponsiveMode\"), exports);\n__exportStar(require(\"./Enums/Types/AlterType\"), exports);\n__exportStar(require(\"./Enums/Types/DestroyType\"), exports);\n__exportStar(require(\"./Enums/Types/GradientType\"), exports);\n__exportStar(require(\"./Enums/Types/InteractorType\"), exports);\n__exportStar(require(\"./Enums/Types/ShapeType\"), exports);\n__exportStar(require(\"./Enums/Types/StartValueType\"), exports);\n__exportStar(require(\"./Enums/Types/DivType\"), exports);\n__exportStar(require(\"./Enums/Types/EasingType\"), exports);\n__exportStar(require(\"./Enums/AnimationStatus\"), exports);\n__exportStar(require(\"./Enums/InteractivityDetect\"), exports);\n__exportStar(require(\"./Options/Classes/Options\"), exports);\n__exportStar(require(\"./Options/Classes/OptionsColor\"), exports);\n__exportStar(require(\"./Options/Interfaces/IOptionLoader\"), exports);\n__exportStar(require(\"./Types/RangeValue\"), exports);\n__exportStar(require(\"./Types/RecursivePartial\"), exports);\n__exportStar(require(\"./Types/ShapeData\"), exports);\n__exportStar(require(\"./Types/ShapeDrawerFunctions\"), exports);\n__exportStar(require(\"./Types/SingleOrMultiple\"), exports);\n__exportStar(require(\"./Types/PathOptions\"), exports);\n__exportStar(require(\"./Utils/CanvasUtils\"), exports);\n__exportStar(require(\"./Utils/ColorUtils\"), exports);\n__exportStar(require(\"./Utils/NumberUtils\"), exports);\n__exportStar(require(\"./Utils/Utils\"), exports);\nvar Absorbers_1 = require(\"./Plugins/Absorbers\");\nObject.defineProperty(exports, \"loadAbsorbersPlugin\", { enumerable: true, get: function () { return Absorbers_1.loadAbsorbersPlugin; } });\n__exportStar(require(\"./Plugins/Absorbers/Enums/AbsorberClickMode\"), exports);\nvar Emitters_1 = require(\"./Plugins/Emitters\");\nObject.defineProperty(exports, \"loadEmittersPlugin\", { enumerable: true, get: function () { return Emitters_1.loadEmittersPlugin; } });\n__exportStar(require(\"./Plugins/Emitters/Enums/EmitterClickMode\"), exports);\n__exportStar(require(\"./Plugins/Emitters/Enums/EmitterShapeType\"), exports);\nvar PolygonMask_1 = require(\"./Plugins/PolygonMask\");\nObject.defineProperty(exports, \"loadPolygonMaskPlugin\", { enumerable: true, get: function () { return PolygonMask_1.loadPolygonMaskPlugin; } });\n__exportStar(require(\"./Plugins/PolygonMask/Enums/PolygonMaskInlineArrangement\"), exports);\n__exportStar(require(\"./Plugins/PolygonMask/Enums/PolygonMaskMoveType\"), exports);\n__exportStar(require(\"./Plugins/PolygonMask/Enums/PolygonMaskType\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initPjs = void 0;\nconst initPjs = (engine) => {\n const particlesJS = (tagId, options) => {\n return engine.load(tagId, options);\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n engine\n .loadJSON(tagId, pathConfigJson)\n .then((container) => {\n if (container) {\n callback(container);\n }\n })\n .catch(() => {\n callback(undefined);\n });\n };\n particlesJS.setOnClickHandler = (callback) => {\n engine.setOnClickHandler(callback);\n };\n const pJSDom = engine.dom();\n return { particlesJS, pJSDom };\n};\nexports.initPjs = initPjs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadSlim = void 0;\nconst Angle_1 = require(\"./Updaters/Angle\");\nconst Base_1 = require(\"./Movers/Base\");\nconst Circle_1 = require(\"./Shapes/Circle\");\nconst Color_1 = require(\"./Updaters/Color\");\nconst Attract_1 = require(\"./Interactions/External/Attract\");\nconst Bounce_1 = require(\"./Interactions/External/Bounce\");\nconst Bubble_1 = require(\"./Interactions/External/Bubble\");\nconst Connect_1 = require(\"./Interactions/External/Connect\");\nconst Grab_1 = require(\"./Interactions/External/Grab\");\nconst Pause_1 = require(\"./Interactions/External/Pause\");\nconst Push_1 = require(\"./Interactions/External/Push\");\nconst Remove_1 = require(\"./Interactions/External/Remove\");\nconst Repulse_1 = require(\"./Interactions/External/Repulse\");\nconst Image_1 = require(\"./Shapes/Image\");\nconst Life_1 = require(\"./Updaters/Life\");\nconst Line_1 = require(\"./Shapes/Line\");\nconst Opacity_1 = require(\"./Updaters/Opacity\");\nconst OutModes_1 = require(\"./Updaters/OutModes\");\nconst Parallax_1 = require(\"./Movers/Parallax\");\nconst Attract_2 = require(\"./Interactions/Particles/Attract\");\nconst Collisions_1 = require(\"./Interactions/Particles/Collisions\");\nconst Links_1 = require(\"./Interactions/Particles/Links\");\nconst Polygon_1 = require(\"./Shapes/Polygon\");\nconst Size_1 = require(\"./Updaters/Size\");\nconst Square_1 = require(\"./Shapes/Square\");\nconst Star_1 = require(\"./Shapes/Star\");\nconst StrokeColor_1 = require(\"./Updaters/StrokeColor\");\nconst Text_1 = require(\"./Shapes/Text\");\nasync function loadSlim(engine) {\n await (0, Base_1.loadBaseMover)(engine);\n await (0, Parallax_1.loadParallaxMover)(engine);\n await (0, Attract_1.loadExternalAttractInteraction)(engine);\n await (0, Bounce_1.loadExternalBounceInteraction)(engine);\n await (0, Bubble_1.loadExternalBubbleInteraction)(engine);\n await (0, Connect_1.loadExternalConnectInteraction)(engine);\n await (0, Grab_1.loadExternalGrabInteraction)(engine);\n await (0, Pause_1.loadExternalPauseInteraction)(engine);\n await (0, Push_1.loadExternalPushInteraction)(engine);\n await (0, Remove_1.loadExternalRemoveInteraction)(engine);\n await (0, Repulse_1.loadExternalRepulseInteraction)(engine);\n await (0, Attract_2.loadParticlesAttractInteraction)(engine);\n await (0, Collisions_1.loadParticlesCollisionsInteraction)(engine);\n await (0, Links_1.loadParticlesLinksInteraction)(engine);\n await (0, Circle_1.loadCircleShape)(engine);\n await (0, Image_1.loadImageShape)(engine);\n await (0, Line_1.loadLineShape)(engine);\n await (0, Polygon_1.loadPolygonShape)(engine);\n await (0, Square_1.loadSquareShape)(engine);\n await (0, Star_1.loadStarShape)(engine);\n await (0, Text_1.loadTextShape)(engine);\n await (0, Life_1.loadLifeUpdater)(engine);\n await (0, Opacity_1.loadOpacityUpdater)(engine);\n await (0, Size_1.loadSizeUpdater)(engine);\n await (0, Angle_1.loadAngleUpdater)(engine);\n await (0, Color_1.loadColorUpdater)(engine);\n await (0, StrokeColor_1.loadStrokeColorUpdater)(engine);\n await (0, OutModes_1.loadOutModesUpdater)(engine);\n}\nexports.loadSlim = loadSlim;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnMissFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnMissFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnMiss?: AgnosticPatchRoutesOnMissFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnMissImpl = init.unstable_patchRoutesOnMiss;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnMissImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnMiss implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnMiss` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnMiss() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnMissImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n let leafRoute = matches[matches.length - 1].route;\n if (\n leafRoute.path &&\n (leafRoute.path === \"*\" || leafRoute.path.endsWith(\"/*\"))\n ) {\n // If we matched a splat, it might only be because we haven't yet fetched\n // the children that would match with a higher score, so let's fetch\n // around and find out\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n let route =\n partialMatches.length > 0\n ? partialMatches[partialMatches.length - 1].route\n : null;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnMissImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let matchedSplat = false;\n if (newMatches) {\n let leafRoute = newMatches[newMatches.length - 1].route;\n\n if (leafRoute.index) {\n // If we found an index route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n\n if (leafRoute.path && leafRoute.path.length > 0) {\n if (leafRoute.path === \"*\") {\n // If we found a splat route, we can't be sure there's not a\n // higher-scoring route down some partial matches trail so we need\n // to check that out\n matchedSplat = true;\n } else {\n // If we found a non-splat route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n }\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // If we are no longer partially matching anything, this was either a\n // legit splat match above, or it's a 404. Also avoid loops if the\n // second pass results in the same partial matches\n if (\n !newPartialMatches ||\n partialMatches.map((m) => m.route.id).join(\"-\") ===\n newPartialMatches.map((m) => m.route.id).join(\"-\")\n ) {\n return { type: \"success\", matches: matchedSplat ? newMatches : null };\n }\n\n partialMatches = newPartialMatches;\n route = partialMatches[partialMatches.length - 1].route;\n if (route.path === \"*\") {\n // The splat is still our most accurate partial, so run with it\n return { type: \"success\", matches: partialMatches };\n }\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnMiss() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnMissImpl: AgnosticPatchRoutesOnMissFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map>,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnMissImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnMiss()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnMiss`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a