UNPKG

@tsparticles/editor

Version:

tsParticles Configuration Editor

129 lines (128 loc) 4.71 kB
import { EditorType } from "object-gui"; import { BounceOptionsEditor } from "./Bounce/BounceOptionsEditor"; import { CollisionsOptionsEditor } from "./Collisions/CollisionsOptionsEditor"; import { ColorOptionsEditor } from "./Color/ColorOptionsEditor"; import { DestroyOptionsEditor } from "./Destroy/DestroyOptionsEditor"; import { EditorBase } from "../../../EditorBase"; import { LifeOptionsEditor } from "./Life/LifeOptionsEditor"; import { LinksOptionsEditor } from "./Links/LinksOptionsEditor"; import { MoveOptionsEditor } from "./Move/MoveOptionsEditor"; import { NumberOptionsEditor } from "./Number/NumberOptionsEditor"; import { OpacityOptionsEditor } from "./Opacity/OpacityOptionsEditor"; import { RollOptionsEditor } from "./Roll/RollOptionsEditor"; import { RotateOptionsEditor } from "./Rotate/RotateOptionsEditor"; import { ShadowOptionsEditor } from "./Shadow/ShadowOptionsEditor"; import { ShapeOptionsEditor } from "./Shape/ShapeOptionsEditor"; import { SizeOptionsEditor } from "./Size/SizeOptionsEditor"; import { StrokeOptionsEditor } from "./Stroke/StrokeOptionsEditor"; import { TiltOptionsEditor } from "./Tilt/TiltOptionsEditor"; import { TwinkleOptionsEditor } from "./Twinkle/TwinkleOptionsEditor"; import { WobbleOptionsEditor } from "./Wobble/WobbleOptionsEditor"; export class ParticlesOptionsEditor extends EditorBase { constructor(particles) { super(particles); } addParticlesToGroup(parent, customName, parentData) { this.group = parent.addGroup(customName ?? "particles", "Particles", true, parentData); this.options = this.group.data; this.addBounce(); this.addCollisions(); this.addColor(); this.addDestroy(); this.addLife(); this.addLinks(); this.addMove(); this.addNumber(); this.addOpacity(); this.addRoll(); this.addRotate(); this.addShadow(); this.addShape(); this.addSize(); this.addStroke(); this.addTilt(); this.addTwinkle(); this.addWobble(); this.addProperties(); } addToGroup(parent, options) { this.addParticlesToGroup(parent, undefined, options); } addBounce() { const options = new BounceOptionsEditor(this.particles); options.addToGroup(this.group); } addCollisions() { const options = new CollisionsOptionsEditor(this.particles); options.addToGroup(this.group); } addColor() { const options = new ColorOptionsEditor(this.particles); options.addToGroup(this.group); } addDestroy() { const options = new DestroyOptionsEditor(this.particles); options.addToGroup(this.group); } addLife() { const options = new LifeOptionsEditor(this.particles); options.addToGroup(this.group); } addLinks() { const options = new LinksOptionsEditor(this.particles); options.addToGroup(this.group); } addMove() { const options = new MoveOptionsEditor(this.particles); options.addToGroup(this.group); } addNumber() { const options = new NumberOptionsEditor(this.particles); options.addToGroup(this.group); } addOpacity() { const options = new OpacityOptionsEditor(this.particles); options.addToGroup(this.group); } addProperties() { this.group.addProperty("reduceDuplicates", "Reduce Duplicates", EditorType.boolean).change(() => { void this.particles().refresh(); }); } addRoll() { const options = new RollOptionsEditor(this.particles); options.addToGroup(this.group); } addRotate() { const options = new RotateOptionsEditor(this.particles); options.addToGroup(this.group); } addShadow() { const options = new ShadowOptionsEditor(this.particles); options.addToGroup(this.group); } addShape() { const options = new ShapeOptionsEditor(this.particles); options.addToGroup(this.group); } addSize() { const options = new SizeOptionsEditor(this.particles); options.addToGroup(this.group); } addStroke() { const options = new StrokeOptionsEditor(this.particles); options.addToGroup(this.group); } addTilt() { const options = new TiltOptionsEditor(this.particles); options.addToGroup(this.group); } addTwinkle() { const options = new TwinkleOptionsEditor(this.particles); options.addToGroup(this.group); } addWobble() { const options = new WobbleOptionsEditor(this.particles); options.addToGroup(this.group); } }