@tsparticles/engine 3.9.1 → 4.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/638.min.js +2 -0
- package/638.min.js.LICENSE.txt +1 -0
- package/browser/Core/Canvas.js +126 -181
- package/browser/Core/Container.js +22 -18
- package/browser/Core/Engine.js +64 -54
- package/browser/Core/Particle.js +43 -48
- package/browser/Core/Particles.js +33 -24
- package/browser/Core/Retina.js +2 -3
- package/browser/Core/Utils/Constants.js +2 -2
- package/browser/Core/Utils/EventListeners.js +74 -64
- package/browser/Core/Utils/QuadTree.js +1 -1
- package/browser/Core/Utils/Ranges.js +2 -2
- package/browser/Core/Utils/Vectors.js +15 -21
- package/browser/Options/Classes/AnimatableColor.js +3 -3
- package/browser/Options/Classes/AnimationOptions.js +1 -1
- package/browser/Options/Classes/ColorAnimation.js +1 -1
- package/browser/Options/Classes/Options.js +13 -10
- package/browser/Options/Classes/Particles/Move/Move.js +1 -4
- package/browser/Options/Classes/Particles/Move/MoveAngle.js +1 -1
- package/browser/Options/Classes/Particles/Move/MoveAttract.js +1 -1
- package/browser/Options/Classes/Particles/Move/MoveGravity.js +1 -1
- package/browser/Options/Classes/Particles/Move/Spin.js +1 -1
- package/browser/Options/Classes/Particles/ParticlesOptions.js +0 -6
- package/browser/Options/Classes/Particles/Stroke.js +1 -1
- package/browser/Options/Classes/ValueWithRandom.js +1 -1
- package/browser/Utils/CanvasUtils.js +65 -21
- package/browser/Utils/ColorUtils.js +61 -45
- package/browser/Utils/EventDispatcher.js +3 -1
- package/browser/Utils/LogUtils.js +22 -0
- package/browser/Utils/{NumberUtils.js → MathUtils.js} +14 -7
- package/browser/Utils/Utils.js +23 -125
- package/browser/bundle.js +3 -3
- package/browser/export-types.js +1 -99
- package/browser/exports.js +2 -9
- package/browser/index.js +3 -7
- package/browser/initEngine.js +4 -0
- package/cjs/Core/Canvas.js +136 -195
- package/cjs/Core/Container.js +57 -57
- package/cjs/Core/Engine.js +77 -71
- package/cjs/Core/Interfaces/Colors.js +1 -2
- package/cjs/Core/Interfaces/IBounds.js +1 -2
- package/cjs/Core/Interfaces/IBubbleParticleData.js +1 -2
- package/cjs/Core/Interfaces/ICircleBouncer.js +1 -2
- package/cjs/Core/Interfaces/IColorManager.js +1 -2
- package/cjs/Core/Interfaces/IContainerInteractivity.js +1 -2
- package/cjs/Core/Interfaces/IContainerPlugin.js +1 -2
- package/cjs/Core/Interfaces/ICoordinates.js +1 -2
- package/cjs/Core/Interfaces/IDelta.js +1 -2
- package/cjs/Core/Interfaces/IDimension.js +1 -2
- package/cjs/Core/Interfaces/IDistance.js +1 -2
- package/cjs/Core/Interfaces/IDrawParticleParams.js +1 -2
- package/cjs/Core/Interfaces/IEffectDrawer.js +1 -2
- package/cjs/Core/Interfaces/IExternalInteractor.js +1 -2
- package/cjs/Core/Interfaces/IInteractor.js +1 -2
- package/cjs/Core/Interfaces/ILoadParams.js +1 -2
- package/cjs/Core/Interfaces/IMouseData.js +1 -2
- package/cjs/Core/Interfaces/IMovePathGenerator.js +1 -2
- package/cjs/Core/Interfaces/IParticleColorStyle.js +1 -2
- package/cjs/Core/Interfaces/IParticleHslAnimation.js +1 -2
- package/cjs/Core/Interfaces/IParticleLife.js +1 -2
- package/cjs/Core/Interfaces/IParticleMover.js +1 -2
- package/cjs/Core/Interfaces/IParticleRetinaProps.js +1 -2
- package/cjs/Core/Interfaces/IParticleRoll.js +1 -2
- package/cjs/Core/Interfaces/IParticleTransformValues.js +1 -2
- package/cjs/Core/Interfaces/IParticleUpdater.js +1 -2
- package/cjs/Core/Interfaces/IParticleValueAnimation.js +1 -2
- package/cjs/Core/Interfaces/IParticlesInteractor.js +1 -2
- package/cjs/Core/Interfaces/IPlugin.js +1 -2
- package/cjs/Core/Interfaces/IPositionFromSizeParams.js +1 -2
- package/cjs/Core/Interfaces/IRangeValue.js +1 -2
- package/cjs/Core/Interfaces/IShapeDrawData.js +1 -2
- package/cjs/Core/Interfaces/IShapeDrawer.js +1 -2
- package/cjs/Core/Interfaces/IShapeValues.js +1 -2
- package/cjs/Core/Interfaces/ISlowParticleData.js +1 -2
- package/cjs/Core/Particle.js +99 -108
- package/cjs/Core/Particles.js +63 -58
- package/cjs/Core/Retina.js +13 -18
- package/cjs/Core/Utils/Constants.js +3 -7
- package/cjs/Core/Utils/EventListeners.js +94 -88
- package/cjs/Core/Utils/ExternalInteractorBase.js +3 -7
- package/cjs/Core/Utils/InteractionManager.js +4 -8
- package/cjs/Core/Utils/ParticlesInteractorBase.js +3 -7
- package/cjs/Core/Utils/Point.js +1 -5
- package/cjs/Core/Utils/QuadTree.js +10 -14
- package/cjs/Core/Utils/Ranges.js +14 -20
- package/cjs/Core/Utils/Vectors.js +24 -35
- package/cjs/Enums/AnimationStatus.js +2 -5
- package/cjs/Enums/Directions/MoveDirection.js +2 -5
- package/cjs/Enums/Directions/OutModeDirection.js +2 -5
- package/cjs/Enums/Directions/RotateDirection.js +2 -5
- package/cjs/Enums/InteractivityDetect.js +2 -5
- package/cjs/Enums/Modes/AnimationMode.js +2 -5
- package/cjs/Enums/Modes/LimitMode.js +2 -5
- package/cjs/Enums/Modes/OutMode.js +2 -5
- package/cjs/Enums/Modes/PixelMode.js +2 -5
- package/cjs/Enums/Modes/ResponsiveMode.js +2 -5
- package/cjs/Enums/Modes/ThemeMode.js +2 -5
- package/cjs/Enums/Types/AlterType.js +2 -5
- package/cjs/Enums/Types/DestroyType.js +2 -5
- package/cjs/Enums/Types/DivType.js +2 -5
- package/cjs/Enums/Types/EasingType.js +2 -5
- package/cjs/Enums/Types/EventType.js +2 -5
- package/cjs/Enums/Types/GradientType.js +2 -5
- package/cjs/Enums/Types/InteractorType.js +2 -5
- package/cjs/Enums/Types/ParticleOutType.js +2 -5
- package/cjs/Enums/Types/StartValueType.js +2 -5
- package/cjs/Options/Classes/AnimatableColor.js +10 -14
- package/cjs/Options/Classes/AnimationOptions.js +14 -19
- package/cjs/Options/Classes/Background/Background.js +6 -10
- package/cjs/Options/Classes/ColorAnimation.js +6 -10
- package/cjs/Options/Classes/FullScreen/FullScreen.js +3 -7
- package/cjs/Options/Classes/HslAnimation.js +7 -11
- package/cjs/Options/Classes/Interactivity/Events/ClickEvent.js +3 -7
- package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +5 -9
- package/cjs/Options/Classes/Interactivity/Events/Events.js +14 -18
- package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +5 -9
- package/cjs/Options/Classes/Interactivity/Events/Parallax.js +3 -7
- package/cjs/Options/Classes/Interactivity/Events/ResizeEvent.js +3 -7
- package/cjs/Options/Classes/Interactivity/Interactivity.js +9 -13
- package/cjs/Options/Classes/Interactivity/Modes/Modes.js +3 -7
- package/cjs/Options/Classes/ManualParticle.js +10 -14
- package/cjs/Options/Classes/Options.js +41 -42
- package/cjs/Options/Classes/OptionsColor.js +5 -9
- package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +6 -10
- package/cjs/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js +2 -6
- package/cjs/Options/Classes/Particles/Effect/Effect.js +5 -9
- package/cjs/Options/Classes/Particles/Move/Move.js +26 -33
- package/cjs/Options/Classes/Particles/Move/MoveAngle.js +6 -10
- package/cjs/Options/Classes/Particles/Move/MoveAttract.js +5 -9
- package/cjs/Options/Classes/Particles/Move/MoveCenter.js +5 -9
- package/cjs/Options/Classes/Particles/Move/MoveGravity.js +6 -10
- package/cjs/Options/Classes/Particles/Move/OutModes.js +5 -9
- package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +7 -11
- package/cjs/Options/Classes/Particles/Move/Spin.js +7 -11
- package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +3 -7
- package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +7 -11
- package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +5 -9
- package/cjs/Options/Classes/Particles/Opacity/Opacity.js +6 -10
- package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +6 -10
- package/cjs/Options/Classes/Particles/ParticlesOptions.js +29 -39
- package/cjs/Options/Classes/Particles/Shape/Shape.js +5 -9
- package/cjs/Options/Classes/Particles/Size/Size.js +6 -10
- package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +6 -10
- package/cjs/Options/Classes/Particles/Stroke.js +8 -12
- package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +4 -8
- package/cjs/Options/Classes/Responsive.js +13 -17
- package/cjs/Options/Classes/Theme/Theme.js +7 -11
- package/cjs/Options/Classes/Theme/ThemeDefault.js +5 -9
- package/cjs/Options/Classes/ValueWithRandom.js +12 -18
- package/cjs/Options/Interfaces/Background/IBackground.js +1 -2
- package/cjs/Options/Interfaces/FullScreen/IFullScreen.js +1 -2
- package/cjs/Options/Interfaces/IAnimatable.js +1 -2
- package/cjs/Options/Interfaces/IAnimatableColor.js +1 -2
- package/cjs/Options/Interfaces/IAnimation.js +1 -2
- package/cjs/Options/Interfaces/IColorAnimation.js +1 -2
- package/cjs/Options/Interfaces/IHslAnimation.js +1 -2
- package/cjs/Options/Interfaces/IManualParticle.js +1 -2
- package/cjs/Options/Interfaces/IOptionLoader.js +1 -2
- package/cjs/Options/Interfaces/IOptions.js +1 -2
- package/cjs/Options/Interfaces/IOptionsColor.js +1 -2
- package/cjs/Options/Interfaces/IResponsive.js +1 -2
- package/cjs/Options/Interfaces/IValueWithRandom.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Events/IClickEvent.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Events/IDivEvent.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Events/IEvents.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Events/IHoverEvent.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Events/IParallax.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Events/IResizeEvent.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/IInteractivity.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Modes/IModeDiv.js +1 -2
- package/cjs/Options/Interfaces/Interactivity/Modes/IModes.js +1 -2
- package/cjs/Options/Interfaces/Particles/Bounce/IParticlesBounce.js +1 -2
- package/cjs/Options/Interfaces/Particles/Effect/IEffect.js +1 -2
- package/cjs/Options/Interfaces/Particles/IParticlesOptions.js +1 -2
- package/cjs/Options/Interfaces/Particles/IStroke.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/IMove.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/IMoveAngle.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/IMoveAttract.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/IMoveCenter.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/IMoveGravity.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/IOutModes.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/ISpin.js +1 -2
- package/cjs/Options/Interfaces/Particles/Move/Path/IMovePath.js +1 -2
- package/cjs/Options/Interfaces/Particles/Number/IParticlesDensity.js +1 -2
- package/cjs/Options/Interfaces/Particles/Number/IParticlesNumber.js +1 -2
- package/cjs/Options/Interfaces/Particles/Number/IParticlesNumberLimit.js +1 -2
- package/cjs/Options/Interfaces/Particles/Opacity/IOpacity.js +1 -2
- package/cjs/Options/Interfaces/Particles/Opacity/IOpacityAnimation.js +1 -2
- package/cjs/Options/Interfaces/Particles/Shape/IShape.js +1 -2
- package/cjs/Options/Interfaces/Particles/Size/ISize.js +1 -2
- package/cjs/Options/Interfaces/Particles/Size/ISizeAnimation.js +1 -2
- package/cjs/Options/Interfaces/Particles/ZIndex/IZIndex.js +1 -2
- package/cjs/Options/Interfaces/Theme/ITheme.js +1 -2
- package/cjs/Options/Interfaces/Theme/IThemeDefault.js +1 -2
- package/cjs/Types/CustomEventArgs.js +1 -2
- package/cjs/Types/CustomEventListener.js +1 -2
- package/cjs/Types/EasingFunction.js +1 -2
- package/cjs/Types/ExportResult.js +1 -2
- package/cjs/Types/ISourceOptions.js +1 -2
- package/cjs/Types/ParticlesGroups.js +1 -2
- package/cjs/Types/PathOptions.js +1 -2
- package/cjs/Types/RangeValue.js +1 -2
- package/cjs/Types/RecursivePartial.js +1 -2
- package/cjs/Types/ShapeData.js +1 -2
- package/cjs/Types/SingleOrMultiple.js +1 -2
- package/cjs/Utils/CanvasUtils.js +86 -55
- package/cjs/Utils/ColorUtils.js +136 -141
- package/cjs/Utils/EventDispatcher.js +8 -10
- package/cjs/Utils/LogUtils.js +22 -0
- package/{esm/Utils/NumberUtils.js → cjs/Utils/MathUtils.js} +14 -7
- package/cjs/Utils/OptionsUtils.js +4 -8
- package/cjs/Utils/TypeUtils.js +7 -16
- package/cjs/Utils/Utils.js +104 -239
- package/cjs/bundle.js +5 -22
- package/cjs/export-types.js +1 -115
- package/cjs/exports.js +77 -100
- package/cjs/index.js +5 -26
- package/cjs/initEngine.js +4 -0
- package/dist_browser_Core_Container_js.js +102 -0
- package/esm/Core/Canvas.js +126 -181
- package/esm/Core/Container.js +22 -18
- package/esm/Core/Engine.js +64 -54
- package/esm/Core/Particle.js +43 -48
- package/esm/Core/Particles.js +33 -24
- package/esm/Core/Retina.js +2 -3
- package/esm/Core/Utils/Constants.js +2 -2
- package/esm/Core/Utils/EventListeners.js +74 -64
- package/esm/Core/Utils/QuadTree.js +1 -1
- package/esm/Core/Utils/Ranges.js +2 -2
- package/esm/Core/Utils/Vectors.js +15 -21
- package/esm/Enums/RangeType.js +5 -0
- package/esm/Options/Classes/AnimatableColor.js +3 -3
- package/esm/Options/Classes/AnimationOptions.js +1 -1
- package/esm/Options/Classes/ColorAnimation.js +1 -1
- package/esm/Options/Classes/Options.js +13 -10
- package/esm/Options/Classes/Particles/Move/Move.js +1 -4
- package/esm/Options/Classes/Particles/Move/MoveAngle.js +1 -1
- package/esm/Options/Classes/Particles/Move/MoveAttract.js +1 -1
- package/esm/Options/Classes/Particles/Move/MoveGravity.js +1 -1
- package/esm/Options/Classes/Particles/Move/Spin.js +1 -1
- package/esm/Options/Classes/Particles/ParticlesOptions.js +0 -6
- package/esm/Options/Classes/Particles/Stroke.js +1 -1
- package/esm/Options/Classes/ValueWithRandom.js +1 -1
- package/esm/Utils/CanvasUtils.js +65 -21
- package/esm/Utils/ColorUtils.js +61 -45
- package/esm/Utils/EventDispatcher.js +3 -1
- package/esm/Utils/LogUtils.js +22 -0
- package/esm/Utils/MathUtils.js +158 -0
- package/esm/Utils/Utils.js +23 -125
- package/esm/bundle.js +3 -3
- package/esm/export-types.js +1 -99
- package/esm/exports.js +2 -9
- package/esm/index.js +3 -7
- package/esm/initEngine.js +4 -0
- package/package.json +3 -2
- package/report.html +5 -4
- package/scripts/install.js +98 -17
- package/tsparticles.engine.js +492 -451
- package/tsparticles.engine.min.js +1 -1
- package/tsparticles.engine.min.js.LICENSE.txt +1 -1
- package/types/Core/Canvas.d.ts +6 -9
- package/types/Core/Container.d.ts +1 -0
- package/types/Core/Engine.d.ts +20 -16
- package/types/Core/Interfaces/Colors.d.ts +46 -2
- package/types/Core/Interfaces/IColorManager.d.ts +1 -1
- package/types/Core/Interfaces/IContainerPlugin.d.ts +4 -0
- package/types/Core/Interfaces/IDrawParticleParams.d.ts +0 -4
- package/types/Core/Interfaces/IEffectDrawer.d.ts +2 -1
- package/types/Core/Interfaces/IShapeDrawData.d.ts +2 -0
- package/types/Core/Interfaces/IShapeDrawer.d.ts +1 -0
- package/types/Core/Particle.d.ts +4 -5
- package/types/Core/Particles.d.ts +1 -1
- package/types/Core/Utils/Constants.d.ts +2 -2
- package/types/Core/Utils/EventListeners.d.ts +1 -0
- package/types/Core/Utils/Vectors.d.ts +3 -3
- package/types/Options/Classes/Options.d.ts +1 -2
- package/types/Options/Classes/OptionsColor.d.ts +2 -2
- package/types/Options/Classes/Particles/Move/Move.d.ts +0 -2
- package/types/Options/Classes/Particles/ParticlesOptions.d.ts +0 -4
- package/types/Options/Interfaces/IOptions.d.ts +1 -2
- package/types/Options/Interfaces/Particles/IParticlesOptions.d.ts +0 -4
- package/types/Options/Interfaces/Particles/Move/IMove.d.ts +0 -2
- package/types/Utils/CanvasUtils.d.ts +4 -1
- package/types/Utils/ColorUtils.d.ts +2 -2
- package/types/Utils/LogUtils.d.ts +11 -0
- package/types/Utils/{NumberUtils.d.ts → MathUtils.d.ts} +2 -1
- package/types/Utils/TypeUtils.d.ts +2 -2
- package/types/Utils/Utils.d.ts +4 -16
- package/types/export-types.d.ts +91 -101
- package/types/exports.d.ts +2 -9
- package/types/index.d.ts +1 -1
- package/types/initEngine.d.ts +2 -0
- package/umd/Core/Canvas.js +123 -178
- package/umd/Core/Container.js +25 -21
- package/umd/Core/Engine.js +97 -53
- package/umd/Core/Particle.js +54 -59
- package/umd/Core/Particles.js +33 -24
- package/umd/Core/Retina.js +9 -10
- package/umd/Core/Utils/Constants.js +3 -3
- package/umd/Core/Utils/EventListeners.js +72 -62
- package/umd/Core/Utils/QuadTree.js +3 -3
- package/umd/Core/Utils/Ranges.js +4 -4
- package/umd/Core/Utils/Vectors.js +15 -21
- package/umd/Options/Classes/AnimatableColor.js +3 -3
- package/umd/Options/Classes/AnimationOptions.js +6 -6
- package/umd/Options/Classes/ColorAnimation.js +3 -3
- package/umd/Options/Classes/Options.js +16 -13
- package/umd/Options/Classes/Particles/Move/Move.js +5 -8
- package/umd/Options/Classes/Particles/Move/MoveAngle.js +4 -4
- package/umd/Options/Classes/Particles/Move/MoveAttract.js +3 -3
- package/umd/Options/Classes/Particles/Move/MoveGravity.js +4 -4
- package/umd/Options/Classes/Particles/Move/Spin.js +3 -3
- package/umd/Options/Classes/Particles/ParticlesOptions.js +1 -7
- package/umd/Options/Classes/Particles/Stroke.js +4 -4
- package/umd/Options/Classes/ValueWithRandom.js +3 -3
- package/umd/Utils/CanvasUtils.js +69 -22
- package/umd/Utils/ColorUtils.js +72 -56
- package/umd/Utils/EventDispatcher.js +3 -1
- package/umd/Utils/LogUtils.js +36 -0
- package/umd/Utils/{NumberUtils.js → MathUtils.js} +16 -8
- package/umd/Utils/Utils.js +36 -141
- package/umd/bundle.js +4 -4
- package/umd/export-types.js +1 -114
- package/umd/exports.js +3 -10
- package/umd/index.js +4 -8
- package/umd/{init.js → initEngine.js} +3 -5
- package/browser/Core/Interfaces/IRectSideResult.js +0 -1
- package/browser/Core/Interfaces/ITrailFillData.js +0 -1
- package/browser/Enums/Modes/CollisionMode.js +0 -6
- package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +0 -24
- package/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -21
- package/browser/Options/Classes/Particles/Collisions/Collisions.js +0 -33
- package/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -14
- package/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -18
- package/browser/Options/Classes/Particles/Move/MoveTrail.js +0 -23
- package/browser/Options/Classes/Particles/Move/MoveTrailFill.js +0 -15
- package/browser/Options/Classes/Particles/Shadow.js +0 -35
- package/browser/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -1
- package/browser/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -1
- package/browser/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -1
- package/browser/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -1
- package/browser/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -1
- package/browser/Options/Interfaces/Particles/IShadow.js +0 -1
- package/browser/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -1
- package/browser/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -1
- package/browser/init.js +0 -6
- package/cjs/Core/Interfaces/IRectSideResult.js +0 -2
- package/cjs/Core/Interfaces/ITrailFillData.js +0 -2
- package/cjs/Enums/Modes/CollisionMode.js +0 -9
- package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +0 -28
- package/cjs/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -25
- package/cjs/Options/Classes/Particles/Collisions/Collisions.js +0 -37
- package/cjs/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -18
- package/cjs/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -22
- package/cjs/Options/Classes/Particles/Move/MoveTrail.js +0 -27
- package/cjs/Options/Classes/Particles/Move/MoveTrailFill.js +0 -19
- package/cjs/Options/Classes/Particles/Shadow.js +0 -39
- package/cjs/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -2
- package/cjs/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -2
- package/cjs/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -2
- package/cjs/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -2
- package/cjs/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -2
- package/cjs/Options/Interfaces/Particles/IShadow.js +0 -2
- package/cjs/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -2
- package/cjs/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -2
- package/cjs/Types/RangeType.js +0 -8
- package/cjs/Utils/NumberUtils.js +0 -177
- package/cjs/init.js +0 -9
- package/esm/Core/Interfaces/IRectSideResult.js +0 -1
- package/esm/Core/Interfaces/ITrailFillData.js +0 -1
- package/esm/Enums/Modes/CollisionMode.js +0 -6
- package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +0 -24
- package/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -21
- package/esm/Options/Classes/Particles/Collisions/Collisions.js +0 -33
- package/esm/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -14
- package/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -18
- package/esm/Options/Classes/Particles/Move/MoveTrail.js +0 -23
- package/esm/Options/Classes/Particles/Move/MoveTrailFill.js +0 -15
- package/esm/Options/Classes/Particles/Shadow.js +0 -35
- package/esm/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -1
- package/esm/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -1
- package/esm/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -1
- package/esm/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -1
- package/esm/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -1
- package/esm/Options/Interfaces/Particles/IShadow.js +0 -1
- package/esm/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -1
- package/esm/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -1
- package/esm/init.js +0 -6
- package/types/Core/Interfaces/IRectSideResult.d.ts +0 -5
- package/types/Core/Interfaces/ITrailFillData.d.ts +0 -6
- package/types/Enums/Modes/CollisionMode.d.ts +0 -5
- package/types/Options/Classes/BackgroundMask/BackgroundMask.d.ts +0 -11
- package/types/Options/Classes/BackgroundMask/BackgroundMaskCover.d.ts +0 -11
- package/types/Options/Classes/Particles/Collisions/Collisions.d.ts +0 -18
- package/types/Options/Classes/Particles/Collisions/CollisionsAbsorb.d.ts +0 -8
- package/types/Options/Classes/Particles/Collisions/CollisionsOverlap.d.ts +0 -9
- package/types/Options/Classes/Particles/Move/MoveTrail.d.ts +0 -11
- package/types/Options/Classes/Particles/Move/MoveTrailFill.d.ts +0 -9
- package/types/Options/Classes/Particles/Shadow.d.ts +0 -13
- package/types/Options/Interfaces/BackgroundMask/IBackgroundMask.d.ts +0 -8
- package/types/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.d.ts +0 -6
- package/types/Options/Interfaces/Particles/Collisions/ICollisions.d.ts +0 -13
- package/types/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.d.ts +0 -3
- package/types/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.d.ts +0 -4
- package/types/Options/Interfaces/Particles/IShadow.d.ts +0 -8
- package/types/Options/Interfaces/Particles/Move/IMoveTrail.d.ts +0 -6
- package/types/Options/Interfaces/Particles/Move/IMoveTrailFill.d.ts +0 -5
- package/types/init.d.ts +0 -2
- package/umd/Core/Interfaces/IRectSideResult.js +0 -12
- package/umd/Core/Interfaces/ITrailFillData.js +0 -12
- package/umd/Enums/Modes/CollisionMode.js +0 -19
- package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +0 -38
- package/umd/Options/Classes/BackgroundMask/BackgroundMaskCover.js +0 -35
- package/umd/Options/Classes/Particles/Collisions/Collisions.js +0 -47
- package/umd/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +0 -28
- package/umd/Options/Classes/Particles/Collisions/CollisionsOverlap.js +0 -32
- package/umd/Options/Classes/Particles/Move/MoveTrail.js +0 -37
- package/umd/Options/Classes/Particles/Move/MoveTrailFill.js +0 -29
- package/umd/Options/Classes/Particles/Shadow.js +0 -49
- package/umd/Options/Interfaces/BackgroundMask/IBackgroundMask.js +0 -12
- package/umd/Options/Interfaces/BackgroundMask/IBackgroundMaskCover.js +0 -12
- package/umd/Options/Interfaces/Particles/Collisions/ICollisions.js +0 -12
- package/umd/Options/Interfaces/Particles/Collisions/ICollisionsAbsorb.js +0 -12
- package/umd/Options/Interfaces/Particles/Collisions/ICollisionsOverlap.js +0 -12
- package/umd/Options/Interfaces/Particles/IShadow.js +0 -12
- package/umd/Options/Interfaces/Particles/Move/IMoveTrail.js +0 -12
- package/umd/Options/Interfaces/Particles/Move/IMoveTrailFill.js +0 -12
- /package/browser/{Types → Enums}/RangeType.js +0 -0
- /package/{esm/Types → cjs/Enums}/RangeType.js +0 -0
- /package/types/{Types → Enums}/RangeType.d.ts +0 -0
- /package/umd/{Types → Enums}/RangeType.js +0 -0
package/cjs/Utils/Utils.js
CHANGED
|
@@ -1,65 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
exports.loadFont = loadFont;
|
|
13
|
-
exports.arrayRandomIndex = arrayRandomIndex;
|
|
14
|
-
exports.itemFromArray = itemFromArray;
|
|
15
|
-
exports.isPointInside = isPointInside;
|
|
16
|
-
exports.areBoundsInside = areBoundsInside;
|
|
17
|
-
exports.calculateBounds = calculateBounds;
|
|
18
|
-
exports.deepExtend = deepExtend;
|
|
19
|
-
exports.isDivModeEnabled = isDivModeEnabled;
|
|
20
|
-
exports.divModeExecute = divModeExecute;
|
|
21
|
-
exports.singleDivModeExecute = singleDivModeExecute;
|
|
22
|
-
exports.divMode = divMode;
|
|
23
|
-
exports.circleBounceDataFromParticle = circleBounceDataFromParticle;
|
|
24
|
-
exports.circleBounce = circleBounce;
|
|
25
|
-
exports.rectBounce = rectBounce;
|
|
26
|
-
exports.executeOnSingleOrMultiple = executeOnSingleOrMultiple;
|
|
27
|
-
exports.itemFromSingleOrMultiple = itemFromSingleOrMultiple;
|
|
28
|
-
exports.findItemFromSingleOrMultiple = findItemFromSingleOrMultiple;
|
|
29
|
-
exports.initParticleNumericAnimationValue = initParticleNumericAnimationValue;
|
|
30
|
-
exports.getPosition = getPosition;
|
|
31
|
-
exports.getSize = getSize;
|
|
32
|
-
exports.updateAnimation = updateAnimation;
|
|
33
|
-
exports.cloneStyle = cloneStyle;
|
|
34
|
-
const NumberUtils_js_1 = require("./NumberUtils.js");
|
|
35
|
-
const Constants_js_1 = require("../Core/Utils/Constants.js");
|
|
36
|
-
const TypeUtils_js_1 = require("./TypeUtils.js");
|
|
37
|
-
const AnimationMode_js_1 = require("../Enums/Modes/AnimationMode.js");
|
|
38
|
-
const AnimationStatus_js_1 = require("../Enums/AnimationStatus.js");
|
|
39
|
-
const DestroyType_js_1 = require("../Enums/Types/DestroyType.js");
|
|
40
|
-
const OutModeDirection_js_1 = require("../Enums/Directions/OutModeDirection.js");
|
|
41
|
-
const PixelMode_js_1 = require("../Enums/Modes/PixelMode.js");
|
|
42
|
-
const StartValueType_js_1 = require("../Enums/Types/StartValueType.js");
|
|
43
|
-
const Vectors_js_1 = require("../Core/Utils/Vectors.js");
|
|
44
|
-
const _logger = {
|
|
45
|
-
debug: console.debug,
|
|
46
|
-
error: console.error,
|
|
47
|
-
info: console.info,
|
|
48
|
-
log: console.log,
|
|
49
|
-
verbose: console.log,
|
|
50
|
-
warning: console.warn,
|
|
51
|
-
};
|
|
52
|
-
function setLogger(logger) {
|
|
53
|
-
_logger.debug = logger.debug || _logger.debug;
|
|
54
|
-
_logger.error = logger.error || _logger.error;
|
|
55
|
-
_logger.info = logger.info || _logger.info;
|
|
56
|
-
_logger.log = logger.log || _logger.log;
|
|
57
|
-
_logger.verbose = logger.verbose || _logger.verbose;
|
|
58
|
-
_logger.warning = logger.warning || _logger.warning;
|
|
59
|
-
}
|
|
60
|
-
function getLogger() {
|
|
61
|
-
return _logger;
|
|
62
|
-
}
|
|
1
|
+
import { clamp, collisionVelocity, getDistances, getRandom, getRangeMax, getRangeMin, getRangeValue, randomInRangeValue, } from "./MathUtils.js";
|
|
2
|
+
import { half, millisecondsToSeconds, percentDenominator } from "../Core/Utils/Constants.js";
|
|
3
|
+
import { isArray, isNull, isObject } from "./TypeUtils.js";
|
|
4
|
+
import { AnimationMode } from "../Enums/Modes/AnimationMode.js";
|
|
5
|
+
import { AnimationStatus } from "../Enums/AnimationStatus.js";
|
|
6
|
+
import { DestroyType } from "../Enums/Types/DestroyType.js";
|
|
7
|
+
import { OutModeDirection } from "../Enums/Directions/OutModeDirection.js";
|
|
8
|
+
import { PixelMode } from "../Enums/Modes/PixelMode.js";
|
|
9
|
+
import { StartValueType } from "../Enums/Types/StartValueType.js";
|
|
10
|
+
import { Vector } from "../Core/Utils/Vectors.js";
|
|
11
|
+
const minRadius = 0;
|
|
63
12
|
function memoize(fn) {
|
|
64
13
|
const cache = new Map();
|
|
65
14
|
return (...args) => {
|
|
@@ -72,89 +21,72 @@ function memoize(fn) {
|
|
|
72
21
|
return result;
|
|
73
22
|
};
|
|
74
23
|
}
|
|
75
|
-
function rectSideBounce(data) {
|
|
76
|
-
const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data;
|
|
77
|
-
if (pOtherSide.min < rectOtherSide.min ||
|
|
78
|
-
pOtherSide.min > rectOtherSide.max ||
|
|
79
|
-
pOtherSide.max < rectOtherSide.min ||
|
|
80
|
-
pOtherSide.max > rectOtherSide.max) {
|
|
81
|
-
return res;
|
|
82
|
-
}
|
|
83
|
-
if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) * Constants_js_1.half && velocity > Constants_js_1.minVelocity) ||
|
|
84
|
-
(pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) * Constants_js_1.half && velocity < Constants_js_1.minVelocity)) {
|
|
85
|
-
res.velocity = velocity * -factor;
|
|
86
|
-
res.bounced = true;
|
|
87
|
-
}
|
|
88
|
-
return res;
|
|
89
|
-
}
|
|
90
24
|
function checkSelector(element, selectors) {
|
|
91
25
|
const res = executeOnSingleOrMultiple(selectors, selector => {
|
|
92
26
|
return element.matches(selector);
|
|
93
27
|
});
|
|
94
|
-
return
|
|
28
|
+
return isArray(res) ? res.some(t => t) : res;
|
|
95
29
|
}
|
|
96
|
-
function
|
|
97
|
-
return typeof
|
|
30
|
+
export function hasMatchMedia() {
|
|
31
|
+
return typeof matchMedia !== "undefined";
|
|
98
32
|
}
|
|
99
|
-
function
|
|
100
|
-
return
|
|
33
|
+
export function safeDocument() {
|
|
34
|
+
return globalThis.document;
|
|
101
35
|
}
|
|
102
|
-
function safeMatchMedia(query) {
|
|
36
|
+
export function safeMatchMedia(query) {
|
|
103
37
|
if (!hasMatchMedia()) {
|
|
104
38
|
return;
|
|
105
39
|
}
|
|
106
40
|
return matchMedia(query);
|
|
107
41
|
}
|
|
108
|
-
function safeIntersectionObserver(callback) {
|
|
109
|
-
if (
|
|
42
|
+
export function safeIntersectionObserver(callback) {
|
|
43
|
+
if (typeof IntersectionObserver === "undefined") {
|
|
110
44
|
return;
|
|
111
45
|
}
|
|
112
46
|
return new IntersectionObserver(callback);
|
|
113
47
|
}
|
|
114
|
-
function safeMutationObserver(callback) {
|
|
115
|
-
if (
|
|
48
|
+
export function safeMutationObserver(callback) {
|
|
49
|
+
if (typeof MutationObserver === "undefined") {
|
|
116
50
|
return;
|
|
117
51
|
}
|
|
118
52
|
return new MutationObserver(callback);
|
|
119
53
|
}
|
|
120
|
-
function isInArray(value, array) {
|
|
121
|
-
|
|
122
|
-
return value === array || ((0, TypeUtils_js_1.isArray)(array) && array.indexOf(value) > invalidIndex);
|
|
54
|
+
export function isInArray(value, array) {
|
|
55
|
+
return value === array || (isArray(array) && array.includes(value));
|
|
123
56
|
}
|
|
124
|
-
async function loadFont(font, weight) {
|
|
57
|
+
export async function loadFont(font, weight) {
|
|
125
58
|
try {
|
|
126
|
-
await
|
|
59
|
+
await safeDocument().fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`);
|
|
127
60
|
}
|
|
128
61
|
catch {
|
|
129
62
|
}
|
|
130
63
|
}
|
|
131
|
-
function arrayRandomIndex(array) {
|
|
132
|
-
return Math.floor(
|
|
64
|
+
export function arrayRandomIndex(array) {
|
|
65
|
+
return Math.floor(getRandom() * array.length);
|
|
133
66
|
}
|
|
134
|
-
function itemFromArray(array, index, useIndex = true) {
|
|
67
|
+
export function itemFromArray(array, index, useIndex = true) {
|
|
135
68
|
return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];
|
|
136
69
|
}
|
|
137
|
-
function isPointInside(point, size, offset, radius, direction) {
|
|
138
|
-
const minRadius = 0;
|
|
70
|
+
export function isPointInside(point, size, offset, radius, direction) {
|
|
139
71
|
return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);
|
|
140
72
|
}
|
|
141
|
-
function areBoundsInside(bounds, size, offset, direction) {
|
|
73
|
+
export function areBoundsInside(bounds, size, offset, direction) {
|
|
142
74
|
let inside = true;
|
|
143
|
-
if (!direction || direction ===
|
|
75
|
+
if (!direction || direction === OutModeDirection.bottom) {
|
|
144
76
|
inside = bounds.top < size.height + offset.x;
|
|
145
77
|
}
|
|
146
|
-
if (inside && (!direction || direction ===
|
|
78
|
+
if (inside && (!direction || direction === OutModeDirection.left)) {
|
|
147
79
|
inside = bounds.right > offset.x;
|
|
148
80
|
}
|
|
149
|
-
if (inside && (!direction || direction ===
|
|
81
|
+
if (inside && (!direction || direction === OutModeDirection.right)) {
|
|
150
82
|
inside = bounds.left < size.width + offset.y;
|
|
151
83
|
}
|
|
152
|
-
if (inside && (!direction || direction ===
|
|
84
|
+
if (inside && (!direction || direction === OutModeDirection.top)) {
|
|
153
85
|
inside = bounds.bottom > offset.y;
|
|
154
86
|
}
|
|
155
87
|
return inside;
|
|
156
88
|
}
|
|
157
|
-
function calculateBounds(point, radius) {
|
|
89
|
+
export function calculateBounds(point, radius) {
|
|
158
90
|
return {
|
|
159
91
|
bottom: point.y + radius,
|
|
160
92
|
left: point.x - radius,
|
|
@@ -162,20 +94,20 @@ function calculateBounds(point, radius) {
|
|
|
162
94
|
top: point.y - radius,
|
|
163
95
|
};
|
|
164
96
|
}
|
|
165
|
-
function deepExtend(destination, ...sources) {
|
|
97
|
+
export function deepExtend(destination, ...sources) {
|
|
166
98
|
for (const source of sources) {
|
|
167
99
|
if (source === undefined || source === null) {
|
|
168
100
|
continue;
|
|
169
101
|
}
|
|
170
|
-
if (!
|
|
102
|
+
if (!isObject(source)) {
|
|
171
103
|
destination = source;
|
|
172
104
|
continue;
|
|
173
105
|
}
|
|
174
106
|
const sourceIsArray = Array.isArray(source);
|
|
175
|
-
if (sourceIsArray && (
|
|
107
|
+
if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {
|
|
176
108
|
destination = [];
|
|
177
109
|
}
|
|
178
|
-
else if (!sourceIsArray && (
|
|
110
|
+
else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {
|
|
179
111
|
destination = {};
|
|
180
112
|
}
|
|
181
113
|
for (const key in source) {
|
|
@@ -184,17 +116,17 @@ function deepExtend(destination, ...sources) {
|
|
|
184
116
|
}
|
|
185
117
|
const sourceDict = source, value = sourceDict[key], destDict = destination;
|
|
186
118
|
destDict[key] =
|
|
187
|
-
|
|
119
|
+
isObject(value) && Array.isArray(value)
|
|
188
120
|
? value.map(v => deepExtend(destDict[key], v))
|
|
189
121
|
: deepExtend(destDict[key], value);
|
|
190
122
|
}
|
|
191
123
|
}
|
|
192
124
|
return destination;
|
|
193
125
|
}
|
|
194
|
-
function isDivModeEnabled(mode, divs) {
|
|
126
|
+
export function isDivModeEnabled(mode, divs) {
|
|
195
127
|
return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));
|
|
196
128
|
}
|
|
197
|
-
function divModeExecute(mode, divs, callback) {
|
|
129
|
+
export function divModeExecute(mode, divs, callback) {
|
|
198
130
|
executeOnSingleOrMultiple(divs, div => {
|
|
199
131
|
const divMode = div.mode, divEnabled = div.enable;
|
|
200
132
|
if (divEnabled && isInArray(mode, divMode)) {
|
|
@@ -202,13 +134,13 @@ function divModeExecute(mode, divs, callback) {
|
|
|
202
134
|
}
|
|
203
135
|
});
|
|
204
136
|
}
|
|
205
|
-
function singleDivModeExecute(div, callback) {
|
|
137
|
+
export function singleDivModeExecute(div, callback) {
|
|
206
138
|
const selectors = div.selectors;
|
|
207
139
|
executeOnSingleOrMultiple(selectors, selector => {
|
|
208
140
|
callback(selector, div);
|
|
209
141
|
});
|
|
210
142
|
}
|
|
211
|
-
function divMode(divs, element) {
|
|
143
|
+
export function divMode(divs, element) {
|
|
212
144
|
if (!element || !divs) {
|
|
213
145
|
return;
|
|
214
146
|
}
|
|
@@ -216,141 +148,83 @@ function divMode(divs, element) {
|
|
|
216
148
|
return checkSelector(element, div.selectors);
|
|
217
149
|
});
|
|
218
150
|
}
|
|
219
|
-
function circleBounceDataFromParticle(p) {
|
|
151
|
+
export function circleBounceDataFromParticle(p) {
|
|
220
152
|
return {
|
|
221
153
|
position: p.getPosition(),
|
|
222
154
|
radius: p.getRadius(),
|
|
223
155
|
mass: p.getMass(),
|
|
224
156
|
velocity: p.velocity,
|
|
225
|
-
factor:
|
|
157
|
+
factor: Vector.create(getRangeValue(p.options.bounce.horizontal.value), getRangeValue(p.options.bounce.vertical.value)),
|
|
226
158
|
};
|
|
227
159
|
}
|
|
228
|
-
function circleBounce(p1, p2) {
|
|
229
|
-
const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } =
|
|
160
|
+
export function circleBounce(p1, p2) {
|
|
161
|
+
const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1), minimumDistance = 0;
|
|
230
162
|
if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {
|
|
231
163
|
return;
|
|
232
164
|
}
|
|
233
|
-
const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 =
|
|
165
|
+
const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);
|
|
234
166
|
p1.velocity.x = vFinal1.x * p1.factor.x;
|
|
235
167
|
p1.velocity.y = vFinal1.y * p1.factor.y;
|
|
236
168
|
p2.velocity.x = vFinal2.x * p2.factor.x;
|
|
237
169
|
p2.velocity.y = vFinal2.y * p2.factor.y;
|
|
238
170
|
}
|
|
239
|
-
function
|
|
240
|
-
const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), bounceOptions = particle.options.bounce, resH = rectSideBounce({
|
|
241
|
-
pSide: {
|
|
242
|
-
min: bounds.left,
|
|
243
|
-
max: bounds.right,
|
|
244
|
-
},
|
|
245
|
-
pOtherSide: {
|
|
246
|
-
min: bounds.top,
|
|
247
|
-
max: bounds.bottom,
|
|
248
|
-
},
|
|
249
|
-
rectSide: {
|
|
250
|
-
min: divBounds.left,
|
|
251
|
-
max: divBounds.right,
|
|
252
|
-
},
|
|
253
|
-
rectOtherSide: {
|
|
254
|
-
min: divBounds.top,
|
|
255
|
-
max: divBounds.bottom,
|
|
256
|
-
},
|
|
257
|
-
velocity: particle.velocity.x,
|
|
258
|
-
factor: (0, NumberUtils_js_1.getRangeValue)(bounceOptions.horizontal.value),
|
|
259
|
-
});
|
|
260
|
-
if (resH.bounced) {
|
|
261
|
-
if (resH.velocity !== undefined) {
|
|
262
|
-
particle.velocity.x = resH.velocity;
|
|
263
|
-
}
|
|
264
|
-
if (resH.position !== undefined) {
|
|
265
|
-
particle.position.x = resH.position;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
const resV = rectSideBounce({
|
|
269
|
-
pSide: {
|
|
270
|
-
min: bounds.top,
|
|
271
|
-
max: bounds.bottom,
|
|
272
|
-
},
|
|
273
|
-
pOtherSide: {
|
|
274
|
-
min: bounds.left,
|
|
275
|
-
max: bounds.right,
|
|
276
|
-
},
|
|
277
|
-
rectSide: {
|
|
278
|
-
min: divBounds.top,
|
|
279
|
-
max: divBounds.bottom,
|
|
280
|
-
},
|
|
281
|
-
rectOtherSide: {
|
|
282
|
-
min: divBounds.left,
|
|
283
|
-
max: divBounds.right,
|
|
284
|
-
},
|
|
285
|
-
velocity: particle.velocity.y,
|
|
286
|
-
factor: (0, NumberUtils_js_1.getRangeValue)(bounceOptions.vertical.value),
|
|
287
|
-
});
|
|
288
|
-
if (resV.bounced) {
|
|
289
|
-
if (resV.velocity !== undefined) {
|
|
290
|
-
particle.velocity.y = resV.velocity;
|
|
291
|
-
}
|
|
292
|
-
if (resV.position !== undefined) {
|
|
293
|
-
particle.position.y = resV.position;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
function executeOnSingleOrMultiple(obj, callback) {
|
|
171
|
+
export function executeOnSingleOrMultiple(obj, callback) {
|
|
298
172
|
const defaultIndex = 0;
|
|
299
|
-
return
|
|
173
|
+
return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);
|
|
300
174
|
}
|
|
301
|
-
function itemFromSingleOrMultiple(obj, index, useIndex) {
|
|
302
|
-
return
|
|
175
|
+
export function itemFromSingleOrMultiple(obj, index, useIndex) {
|
|
176
|
+
return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;
|
|
303
177
|
}
|
|
304
|
-
function findItemFromSingleOrMultiple(obj, callback) {
|
|
305
|
-
if (
|
|
178
|
+
export function findItemFromSingleOrMultiple(obj, callback) {
|
|
179
|
+
if (isArray(obj)) {
|
|
306
180
|
return obj.find((t, index) => callback(t, index));
|
|
307
181
|
}
|
|
308
182
|
const defaultIndex = 0;
|
|
309
183
|
return callback(obj, defaultIndex) ? obj : undefined;
|
|
310
184
|
}
|
|
311
|
-
function initParticleNumericAnimationValue(options, pxRatio) {
|
|
185
|
+
export function initParticleNumericAnimationValue(options, pxRatio) {
|
|
312
186
|
const valueRange = options.value, animationOptions = options.animation, res = {
|
|
313
|
-
delayTime:
|
|
187
|
+
delayTime: getRangeValue(animationOptions.delay) * millisecondsToSeconds,
|
|
314
188
|
enable: animationOptions.enable,
|
|
315
|
-
value:
|
|
316
|
-
max:
|
|
317
|
-
min:
|
|
189
|
+
value: getRangeValue(options.value) * pxRatio,
|
|
190
|
+
max: getRangeMax(valueRange) * pxRatio,
|
|
191
|
+
min: getRangeMin(valueRange) * pxRatio,
|
|
318
192
|
loops: 0,
|
|
319
|
-
maxLoops:
|
|
193
|
+
maxLoops: getRangeValue(animationOptions.count),
|
|
320
194
|
time: 0,
|
|
321
195
|
}, decayOffset = 1;
|
|
322
196
|
if (animationOptions.enable) {
|
|
323
|
-
res.decay = decayOffset -
|
|
197
|
+
res.decay = decayOffset - getRangeValue(animationOptions.decay);
|
|
324
198
|
switch (animationOptions.mode) {
|
|
325
|
-
case
|
|
326
|
-
res.status =
|
|
199
|
+
case AnimationMode.increase:
|
|
200
|
+
res.status = AnimationStatus.increasing;
|
|
327
201
|
break;
|
|
328
|
-
case
|
|
329
|
-
res.status =
|
|
202
|
+
case AnimationMode.decrease:
|
|
203
|
+
res.status = AnimationStatus.decreasing;
|
|
330
204
|
break;
|
|
331
|
-
case
|
|
332
|
-
res.status =
|
|
205
|
+
case AnimationMode.random:
|
|
206
|
+
res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;
|
|
333
207
|
break;
|
|
334
208
|
}
|
|
335
|
-
const autoStatus = animationOptions.mode ===
|
|
209
|
+
const autoStatus = animationOptions.mode === AnimationMode.auto;
|
|
336
210
|
switch (animationOptions.startValue) {
|
|
337
|
-
case
|
|
211
|
+
case StartValueType.min:
|
|
338
212
|
res.value = res.min;
|
|
339
213
|
if (autoStatus) {
|
|
340
|
-
res.status =
|
|
214
|
+
res.status = AnimationStatus.increasing;
|
|
341
215
|
}
|
|
342
216
|
break;
|
|
343
|
-
case
|
|
217
|
+
case StartValueType.max:
|
|
344
218
|
res.value = res.max;
|
|
345
219
|
if (autoStatus) {
|
|
346
|
-
res.status =
|
|
220
|
+
res.status = AnimationStatus.decreasing;
|
|
347
221
|
}
|
|
348
222
|
break;
|
|
349
|
-
case
|
|
223
|
+
case StartValueType.random:
|
|
350
224
|
default:
|
|
351
|
-
res.value = (
|
|
225
|
+
res.value = randomInRangeValue(res);
|
|
352
226
|
if (autoStatus) {
|
|
353
|
-
res.status =
|
|
227
|
+
res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;
|
|
354
228
|
}
|
|
355
229
|
break;
|
|
356
230
|
}
|
|
@@ -359,7 +233,7 @@ function initParticleNumericAnimationValue(options, pxRatio) {
|
|
|
359
233
|
return res;
|
|
360
234
|
}
|
|
361
235
|
function getPositionOrSize(positionOrSize, canvasSize) {
|
|
362
|
-
const isPercent = positionOrSize.mode ===
|
|
236
|
+
const isPercent = positionOrSize.mode === PixelMode.percent;
|
|
363
237
|
if (!isPercent) {
|
|
364
238
|
const { mode: _, ...rest } = positionOrSize;
|
|
365
239
|
return rest;
|
|
@@ -367,49 +241,46 @@ function getPositionOrSize(positionOrSize, canvasSize) {
|
|
|
367
241
|
const isPosition = "x" in positionOrSize;
|
|
368
242
|
if (isPosition) {
|
|
369
243
|
return {
|
|
370
|
-
x: (positionOrSize.x /
|
|
371
|
-
y: (positionOrSize.y /
|
|
244
|
+
x: (positionOrSize.x / percentDenominator) * canvasSize.width,
|
|
245
|
+
y: (positionOrSize.y / percentDenominator) * canvasSize.height,
|
|
372
246
|
};
|
|
373
247
|
}
|
|
374
248
|
else {
|
|
375
249
|
return {
|
|
376
|
-
width: (positionOrSize.width /
|
|
377
|
-
height: (positionOrSize.height /
|
|
250
|
+
width: (positionOrSize.width / percentDenominator) * canvasSize.width,
|
|
251
|
+
height: (positionOrSize.height / percentDenominator) * canvasSize.height,
|
|
378
252
|
};
|
|
379
253
|
}
|
|
380
254
|
}
|
|
381
|
-
function getPosition(position, canvasSize) {
|
|
255
|
+
export function getPosition(position, canvasSize) {
|
|
382
256
|
return getPositionOrSize(position, canvasSize);
|
|
383
257
|
}
|
|
384
|
-
function getSize(size, canvasSize) {
|
|
258
|
+
export function getSize(size, canvasSize) {
|
|
385
259
|
return getPositionOrSize(size, canvasSize);
|
|
386
260
|
}
|
|
387
261
|
function checkDestroy(particle, destroyType, value, minValue, maxValue) {
|
|
388
262
|
switch (destroyType) {
|
|
389
|
-
case
|
|
263
|
+
case DestroyType.max:
|
|
390
264
|
if (value >= maxValue) {
|
|
391
265
|
particle.destroy();
|
|
392
266
|
}
|
|
393
267
|
break;
|
|
394
|
-
case
|
|
268
|
+
case DestroyType.min:
|
|
395
269
|
if (value <= minValue) {
|
|
396
270
|
particle.destroy();
|
|
397
271
|
}
|
|
398
272
|
break;
|
|
399
273
|
}
|
|
400
274
|
}
|
|
401
|
-
function updateAnimation(particle, data, changeDirection, destroyType, delta) {
|
|
275
|
+
export function updateAnimation(particle, data, changeDirection, destroyType, delta) {
|
|
402
276
|
const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minDecay = 1;
|
|
403
277
|
if (particle.destroyed ||
|
|
404
|
-
!data ||
|
|
405
278
|
!data.enable ||
|
|
406
279
|
((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops))) {
|
|
407
280
|
return;
|
|
408
281
|
}
|
|
409
282
|
const velocity = (data.velocity ?? minVelocity) * delta.factor, minValue = data.min, maxValue = data.max, decay = data.decay ?? minDecay;
|
|
410
|
-
|
|
411
|
-
data.time = 0;
|
|
412
|
-
}
|
|
283
|
+
data.time ??= 0;
|
|
413
284
|
if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {
|
|
414
285
|
data.time += delta.value;
|
|
415
286
|
}
|
|
@@ -417,34 +288,30 @@ function updateAnimation(particle, data, changeDirection, destroyType, delta) {
|
|
|
417
288
|
return;
|
|
418
289
|
}
|
|
419
290
|
switch (data.status) {
|
|
420
|
-
case
|
|
291
|
+
case AnimationStatus.increasing:
|
|
421
292
|
if (data.value >= maxValue) {
|
|
422
293
|
if (changeDirection) {
|
|
423
|
-
data.status =
|
|
294
|
+
data.status = AnimationStatus.decreasing;
|
|
424
295
|
}
|
|
425
296
|
else {
|
|
426
297
|
data.value -= maxValue;
|
|
427
298
|
}
|
|
428
|
-
|
|
429
|
-
data.loops = minLoops;
|
|
430
|
-
}
|
|
299
|
+
data.loops ??= minLoops;
|
|
431
300
|
data.loops++;
|
|
432
301
|
}
|
|
433
302
|
else {
|
|
434
303
|
data.value += velocity;
|
|
435
304
|
}
|
|
436
305
|
break;
|
|
437
|
-
case
|
|
306
|
+
case AnimationStatus.decreasing:
|
|
438
307
|
if (data.value <= minValue) {
|
|
439
308
|
if (changeDirection) {
|
|
440
|
-
data.status =
|
|
309
|
+
data.status = AnimationStatus.increasing;
|
|
441
310
|
}
|
|
442
311
|
else {
|
|
443
312
|
data.value += maxValue;
|
|
444
313
|
}
|
|
445
|
-
|
|
446
|
-
data.loops = minLoops;
|
|
447
|
-
}
|
|
314
|
+
data.loops ??= minLoops;
|
|
448
315
|
data.loops++;
|
|
449
316
|
}
|
|
450
317
|
else {
|
|
@@ -455,18 +322,13 @@ function updateAnimation(particle, data, changeDirection, destroyType, delta) {
|
|
|
455
322
|
data.velocity *= decay;
|
|
456
323
|
}
|
|
457
324
|
checkDestroy(particle, destroyType, data.value, minValue, maxValue);
|
|
458
|
-
|
|
459
|
-
data.value = (0, NumberUtils_js_1.clamp)(data.value, minValue, maxValue);
|
|
460
|
-
}
|
|
325
|
+
data.value = clamp(data.value, minValue, maxValue);
|
|
461
326
|
}
|
|
462
|
-
function cloneStyle(style) {
|
|
463
|
-
const clonedStyle =
|
|
464
|
-
if (!style) {
|
|
465
|
-
return clonedStyle;
|
|
466
|
-
}
|
|
327
|
+
export function cloneStyle(style) {
|
|
328
|
+
const clonedStyle = safeDocument().createElement("div").style;
|
|
467
329
|
for (const key in style) {
|
|
468
330
|
const styleKey = style[key];
|
|
469
|
-
if (!Object.prototype.hasOwnProperty.call(style, key) ||
|
|
331
|
+
if (!Object.prototype.hasOwnProperty.call(style, key) || isNull(styleKey)) {
|
|
470
332
|
continue;
|
|
471
333
|
}
|
|
472
334
|
const styleValue = style.getPropertyValue?.(styleKey);
|
|
@@ -475,16 +337,16 @@ function cloneStyle(style) {
|
|
|
475
337
|
}
|
|
476
338
|
const stylePriority = style.getPropertyPriority?.(styleKey);
|
|
477
339
|
if (!stylePriority) {
|
|
478
|
-
clonedStyle.setProperty
|
|
340
|
+
clonedStyle.setProperty(styleKey, styleValue);
|
|
479
341
|
}
|
|
480
342
|
else {
|
|
481
|
-
clonedStyle.setProperty
|
|
343
|
+
clonedStyle.setProperty(styleKey, styleValue, stylePriority);
|
|
482
344
|
}
|
|
483
345
|
}
|
|
484
346
|
return clonedStyle;
|
|
485
347
|
}
|
|
486
348
|
function computeFullScreenStyle(zIndex) {
|
|
487
|
-
const fullScreenStyle =
|
|
349
|
+
const fullScreenStyle = safeDocument().createElement("div").style, radix = 10, style = {
|
|
488
350
|
width: "100%",
|
|
489
351
|
height: "100%",
|
|
490
352
|
margin: "0",
|
|
@@ -498,8 +360,11 @@ function computeFullScreenStyle(zIndex) {
|
|
|
498
360
|
};
|
|
499
361
|
for (const key in style) {
|
|
500
362
|
const value = style[key];
|
|
363
|
+
if (value === undefined) {
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
501
366
|
fullScreenStyle.setProperty(key, value);
|
|
502
367
|
}
|
|
503
368
|
return fullScreenStyle;
|
|
504
369
|
}
|
|
505
|
-
|
|
370
|
+
export const getFullScreenStyle = memoize(computeFullScreenStyle);
|
package/cjs/bundle.js
CHANGED
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.tsParticles = void 0;
|
|
18
|
-
const init_js_1 = require("./init.js");
|
|
19
|
-
const tsParticles = (0, init_js_1.init)();
|
|
20
|
-
exports.tsParticles = tsParticles;
|
|
21
|
-
window.tsParticles = tsParticles;
|
|
22
|
-
__exportStar(require("./exports.js"), exports);
|
|
1
|
+
import { initEngine } from "./initEngine.js";
|
|
2
|
+
const tsParticles = initEngine();
|
|
3
|
+
globalThis.tsParticles = tsParticles;
|
|
4
|
+
export * from "./exports.js";
|
|
5
|
+
export { tsParticles };
|